diff --git a/.github/workflows/coveralls.yml b/.github/workflows/coveralls.yml new file mode 100755 index 000000000..4d2654c84 --- /dev/null +++ b/.github/workflows/coveralls.yml @@ -0,0 +1,42 @@ +on: + push: + paths: + - "**.php" + - "phpunit.xml" + - ".github/workflows/coveralls.yml" + pull_request: + paths: + - "**.php" + - "phpunit.xml" + - ".github/workflows/coveralls.yml" + +name: Test Coveralls +env: + github-token: ${{ secrets.GITHUB_TOKEN }} + +jobs: + + build: + name: Build + runs-on: ubuntu-latest + steps: + + - name: Fetch Pull Request branch + uses: actions/checkout@v4 + with: + repository: pengovbr/sei + token: ${{ secrets.GH_PAT }} # `GH_PAT` is a secret that contains your PAT + path: sei + - name: Checkout + uses: actions/checkout@v4 + with: + path: sei/src/sei/web/modulos/mod-sei-pen + + - name: make test-unit + run: | + cd sei/src/sei/web/modulos/mod-sei-pen + make test-unit + - name: Coveralls + uses: coverallsapp/github-action@v2 + with: + file: sei/src/sei/web/modulos/mod-sei-pen/tests_super/unitario/cobertura.xml \ No newline at end of file diff --git a/.github/workflows/phpcs.yml b/.github/workflows/phpcs.yml index 4eff7715a..a9b933e47 100755 --- a/.github/workflows/phpcs.yml +++ b/.github/workflows/phpcs.yml @@ -12,7 +12,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.3' + php-version: '8.2' coverage: none tools: composer diff --git a/.github/workflows/testes.yml b/.github/workflows/testes.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore index 64a8a8b8f..bddcffd98 100755 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ src/config/supervisor.ini .vscode +cobertura.xml .env *.pem *.cache diff --git a/Makefile b/Makefile index 2d692f38a..855362f45 100755 --- a/Makefile +++ b/Makefile @@ -1,8 +1,10 @@ .PHONY: .env help clean dist all install destroy up update down test test-functional test-functional-parallel test-unit bash_org1 bash_org2 verify-config # Parâmetros de execução do comando MAKE -# Opções possíveis para spe (sistema de proc eletronico): sei3, sei4, sei41, super -sistema=super +# Opções possíveis para spe (sistema de proc eletronico): sei5 +sistema=sei5 + +#Opções possívei para BD (mysql, sqlserver, oracle, postgresql) base=mysql teste= @@ -101,6 +103,7 @@ dist: @mkdir -p $(SEI_BIN_DIR) @mkdir -p $(SEI_MODULO_DIR) @mkdir -p $(SIP_SCRIPTS_DIR) + @php composer.phar install --no-dev @cp -R src/* $(SEI_MODULO_DIR)/ @cp docs/INSTALL.md dist/INSTALACAO.md @cp docs/UPGRADE.md dist/ATUALIZACAO.md @@ -144,6 +147,10 @@ install: check-isalive $(CMD_COMPOSE_FUNC) exec org1-http chown -R root:root /etc/cron.d/ $(CMD_COMPOSE_FUNC) exec org1-http chmod 0644 /etc/cron.d/sei $(CMD_COMPOSE_FUNC) exec org1-http chmod 0644 /etc/cron.d/sip + $(CMD_COMPOSE_FUNC) exec -w /opt/sei/web/modulos/pen org1-http bash -c './composer.phar update' + $(CMD_COMPOSE_FUNC) exec -w /opt/sei/web/modulos/pen org2-http bash -c './composer.phar update' + $(CMD_COMPOSE_FUNC) exec -w /opt/sei/web/modulos/pen org1-http bash -c './composer.phar install' + $(CMD_COMPOSE_FUNC) exec -w /opt/sei/web/modulos/pen org2-http bash -c './composer.phar install' $(CMD_COMPOSE_FUNC) exec -w /opt/sei/scripts/$(MODULO_PASTAS_CONFIG) org1-http bash -c "$(CMD_INSTALACAO_SEI_MODULO)" $(CMD_COMPOSE_FUNC) exec -w /opt/sip/scripts/$(MODULO_PASTAS_CONFIG) org1-http bash -c "$(CMD_INSTALACAO_SIP_MODULO)" @@ -153,13 +160,8 @@ install: check-isalive $(CMD_COMPOSE_FUNC) exec org2-http chmod 0644 /etc/cron.d/sip $(CMD_COMPOSE_FUNC) exec -w /opt/sei/scripts/$(MODULO_PASTAS_CONFIG) org2-http bash -c "$(CMD_INSTALACAO_SEI_MODULO)" $(CMD_COMPOSE_FUNC) exec -w /opt/sip/scripts/$(MODULO_PASTAS_CONFIG) org2-http bash -c "$(CMD_INSTALACAO_SIP_MODULO)" - - @if [ -e tests_$(sistema)/funcional/assets/config/ConfiguracaoModPEN.php ]; then rm tests_$(sistema)/funcional/assets/config/ConfiguracaoModPEN.php; fi; - @cp tests_$(sistema)/funcional/assets/config/ConfiguracaoModPEN.exemplo.php tests_$(sistema)/funcional/assets/config/ConfiguracaoModPEN.php - @echo "\nArquivo 'ConfiguracaoModPEN.php' restaurado conforme 'ConfiguracaoModPEN.exemplo.php'.\n"; wget -nc -i $(PEN_TEST_FUNC)/assets/arquivos/test_files_index.txt -P $(PEN_TEST_FUNC)/.tmp - cp $(PEN_TEST_FUNC)/.tmp/* /tmp .env: @@ -190,10 +192,9 @@ down: .env $(CMD_COMPOSE_FUNC) stop -# make teste=TramiteProcessoComDevolucaoTest test-functional +# make test-functional teste=TramiteProcessoComDevolucaoTest 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)) ; - + $(CMD_COMPOSE_FUNC) run --rm php-test-functional /tests/vendor/bin/phpunit -c /tests/phpunit.xml --testdox /tests/tests/$(addsuffix .php,$(teste)); test-functional-parallel: .env $(FILE_VENDOR_FUNCIONAL) up $(CMD_COMPOSE_FUNC) run --rm php-test-functional /tests/vendor/bin/paratest -c /tests/phpunit.xml --testsuite $(TEST_SUIT) -p $(PARALLEL_TEST_NODES) $(TEST_GROUP_EXCLUIR) $(TEST_GROUP_INCLUIR) @@ -203,8 +204,8 @@ test-parallel-otimizado: .env $(FILE_VENDOR_FUNCIONAL) up make -j2 test-functional-parallel tramitar-pendencias-silent -test-unit: $(FILE_VENDOR_UNITARIO) - $(CMD_DOCKER_COMPOSE) -f $(PEN_TEST_FUNC)/docker-compose.yml run --rm -w /tests php-test-unit bash -c 'vendor/bin/phpunit rn/ProcessoEletronicoRNTest.php' +test-unit: .env $(FILE_VENDOR_UNITARIO) + $(CMD_DOCKER_COMPOSE) -f $(PEN_TEST_FUNC)/docker-compose.yml run --rm -w /tests php-test-unit bash -c 'XDEBUG_MODE=coverage vendor/bin/phpunit --testdox --coverage-html html rn/$(addsuffix .php,$(teste))' test: test-unit test-functional diff --git a/composer.json b/composer.json index dd34e0a4b..f7606427f 100755 --- a/composer.json +++ b/composer.json @@ -1,21 +1,21 @@ { "config": { - "vendor-dir": "./vendor", + "vendor-dir": "./src/vendor", "platform": { - "php": "7.3.12" + "php": "8.2" } }, "autoload-dev": { "psr-4": { "Tests\\": "sei/" } + }, + "require": { + "guzzlehttp/guzzle": "^7.0" }, + "require-dev": { - "php": "7.3.12", - "phpunit/phpunit": "*", - "squizlabs/php_codesniffer": "*", - "mockery/mockery": "^1.5", - "phpcompatibility/php-compatibility": "^9.3", - "pheromone/phpcs-security-audit": "*" - } + "pheromone/phpcs-security-audit": "*" , + "phpcompatibility/php-compatibility": "^9.3" +} } \ No newline at end of file diff --git a/docs/changelogs/CHANGELOG-3.3.1.md b/docs/changelogs/CHANGELOG-3.3.1.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-3.3.2.md b/docs/changelogs/CHANGELOG-3.3.2.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-3.4.0.md b/docs/changelogs/CHANGELOG-3.4.0.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-3.5.0.md b/docs/changelogs/CHANGELOG-3.5.0.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-3.6.0.md b/docs/changelogs/CHANGELOG-3.6.0.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-3.6.1.md b/docs/changelogs/CHANGELOG-3.6.1.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-3.6.2.md b/docs/changelogs/CHANGELOG-3.6.2.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-3.7.0.md b/docs/changelogs/CHANGELOG-3.7.0.md old mode 100644 new mode 100755 diff --git a/docs/changelogs/CHANGELOG-4.0.0.md b/docs/changelogs/CHANGELOG-4.0.0.md new file mode 100755 index 000000000..718bcf0e5 --- /dev/null +++ b/docs/changelogs/CHANGELOG-4.0.0.md @@ -0,0 +1,57 @@ +# NOTAS DE VERSÃO MOD-SEI-PEN (versão 4.0.0) + +Este documento descreve as principais mudanças aplicadas nesta versão do módulo de integração do SEI com o TRAMITA.GOV.BR. + +As melhorias entregues em cada uma das versões são cumulativas, ou seja, contêm todas as implementações realizadas em versões anteriores. + +## Compatibilidade de versões +* O módulo é compatível com a seguinte versão do **SEI**: + * SEI 5.0.0 + +Para maiores informações sobre os procedimentos de instalação ou atualização, acesse os seguintes documentos localizados no pacote de distribuição mod-sei-pen-VERSAO.zip: +> Atenção: É impreterível seguir rigorosamente o disposto no README.md do Módulo para instalação ou atualização com sucesso. +* **INSTALACAO.md** - Procedimento de instalação e configuração do módulo +* **ATUALIZACAO.md** - Procedimento específicos para atualização de uma versão anterior + +### Lista de melhorias e correções de problemas + +Todas as atualizações podem incluir itens referentes à segurança, requisito em permanente monitoramento e evolução, motivo pelo qual a atualização com a maior brevidade possível é sempre recomendada. + +#### **MELHORIAS** + +#### As melhorias implementadas nesta versão incluem: + +* **Compatibilidade com o SEI v.5.0.0:** Compatibilização do Tramita com o módulo SEI v. 5.0.0 [#764](https://github.com/pengovbr/mod-sei-pen/issues/764); + + +Para obter informações detalhadas sobre cada um dos passos de atualização, vide arquivo **ATUALIZACAO.md**. + +#### Instruções + +1. Baixar a última versão do módulo de instalação do sistema (arquivo `mod-sei-pen-[VERSÃO].zip`) localizado na página de [Releases do projeto MOD-SEI-PEN](https://github.com/spbgovbr/mod-sei-pen/releases), seção **Assets**. _Somente usuários autorizados previamente pela Coordenação-Geral do Processo Eletrônico Nacional podem ter acesso às versões._ + +2. Fazer backup dos diretórios "sei", "sip" e "infra" do servidor web; + +3. Descompactar o pacote de instalação `mod-sei-pen-[VERSÃO].zip`; + +4. Copiar os diretórios descompactados "sei", "sip" para os servidores, sobrescrevendo os arquivos existentes; + +5. Executar o script de instalação/atualização `sei_atualizar_versao_modulo_pen.php` do módulo para o SEI localizado no diretório `sei/scripts/mod-pen/` + +```bash +php -c /etc/php.ini /sei/scripts/mod-pen/sei_atualizar_versao_modulo_pen.php +``` + +6. Executar o script de instalação/atualização `sip_atualizar_versao_modulo_pen.php` do módulo para o SIP localizado no diretório `sip/scripts/mod-pen/` + +```bash +php -c /etc/php.ini /sip/scripts/mod-pen/sip_atualizar_versao_modulo_pen.php +``` + +7. Verificar a correta instalação e configuração do módulo + +Para executar a verificação, execute o script ```verifica_instalacao_modulo_pen.php``` localizado no diretório de scripts do SEI ```/sei/scripts/mod-pen/```. + +```bash +$ php -c /etc/php.ini /sei/scripts/mod-pen/verifica_instalacao_modulo_pen.php +``` diff --git a/docs/schema/README.md b/docs/schema/README.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_bloco.md b/docs/schema/md_pen_bloco.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_bloco.svg b/docs/schema/md_pen_bloco.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_bloco_protocolo.md b/docs/schema/md_pen_bloco_protocolo.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_bloco_protocolo.svg b/docs/schema/md_pen_bloco_protocolo.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_componente_digital.md b/docs/schema/md_pen_componente_digital.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_componente_digital.svg b/docs/schema/md_pen_componente_digital.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_envio_comp_digitais.md b/docs/schema/md_pen_envio_comp_digitais.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_envio_comp_digitais.svg b/docs/schema/md_pen_envio_comp_digitais.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_especie_documental.md b/docs/schema/md_pen_especie_documental.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_especie_documental.svg b/docs/schema/md_pen_especie_documental.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_expedir_lote.md b/docs/schema/md_pen_expedir_lote.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_expedir_lote.svg b/docs/schema/md_pen_expedir_lote.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_hipotese_legal.md b/docs/schema/md_pen_hipotese_legal.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_hipotese_legal.svg b/docs/schema/md_pen_hipotese_legal.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_map_tipo_processo.md b/docs/schema/md_pen_map_tipo_processo.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_map_tipo_processo.svg b/docs/schema/md_pen_map_tipo_processo.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_orgao_externo.md b/docs/schema/md_pen_orgao_externo.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_orgao_externo.svg b/docs/schema/md_pen_orgao_externo.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_parametro.md b/docs/schema/md_pen_parametro.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_parametro.svg b/docs/schema/md_pen_parametro.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_procedimento_andamento.md b/docs/schema/md_pen_procedimento_andamento.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_procedimento_andamento.svg b/docs/schema/md_pen_procedimento_andamento.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_processo_eletronico.md b/docs/schema/md_pen_processo_eletronico.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_processo_eletronico.svg b/docs/schema/md_pen_processo_eletronico.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_protocolo.md b/docs/schema/md_pen_protocolo.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_protocolo.svg b/docs/schema/md_pen_protocolo.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite.md b/docs/schema/md_pen_recibo_tramite.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite.svg b/docs/schema/md_pen_recibo_tramite.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite_enviado.md b/docs/schema/md_pen_recibo_tramite_enviado.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite_enviado.svg b/docs/schema/md_pen_recibo_tramite_enviado.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite_hash.md b/docs/schema/md_pen_recibo_tramite_hash.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite_hash.svg b/docs/schema/md_pen_recibo_tramite_hash.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite_recebido.md b/docs/schema/md_pen_recibo_tramite_recebido.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_recibo_tramite_recebido.svg b/docs/schema/md_pen_recibo_tramite_recebido.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_doc_map_enviado.md b/docs/schema/md_pen_rel_doc_map_enviado.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_doc_map_enviado.svg b/docs/schema/md_pen_rel_doc_map_enviado.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_doc_map_recebido.md b/docs/schema/md_pen_rel_doc_map_recebido.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_doc_map_recebido.svg b/docs/schema/md_pen_rel_doc_map_recebido.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_expedir_lote.md b/docs/schema/md_pen_rel_expedir_lote.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_expedir_lote.svg b/docs/schema/md_pen_rel_expedir_lote.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_hipotese_legal.md b/docs/schema/md_pen_rel_hipotese_legal.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_hipotese_legal.svg b/docs/schema/md_pen_rel_hipotese_legal.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_processo_apensado.md b/docs/schema/md_pen_rel_processo_apensado.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_processo_apensado.svg b/docs/schema/md_pen_rel_processo_apensado.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_tarefa_operacao.md b/docs/schema/md_pen_rel_tarefa_operacao.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_tarefa_operacao.svg b/docs/schema/md_pen_rel_tarefa_operacao.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_tipo_doc_map_rec.md b/docs/schema/md_pen_rel_tipo_doc_map_rec.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_rel_tipo_doc_map_rec.svg b/docs/schema/md_pen_rel_tipo_doc_map_rec.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_bloco.md b/docs/schema/md_pen_seq_bloco.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_bloco.svg b/docs/schema/md_pen_seq_bloco.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_bloco_protocolo.md b/docs/schema/md_pen_seq_bloco_protocolo.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_bloco_protocolo.svg b/docs/schema/md_pen_seq_bloco_protocolo.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_envio_comp_digitais.md b/docs/schema/md_pen_seq_envio_comp_digitais.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_envio_comp_digitais.svg b/docs/schema/md_pen_seq_envio_comp_digitais.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_expedir_lote.md b/docs/schema/md_pen_seq_expedir_lote.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_expedir_lote.svg b/docs/schema/md_pen_seq_expedir_lote.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_hipotese_legal.md b/docs/schema/md_pen_seq_hipotese_legal.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_hipotese_legal.svg b/docs/schema/md_pen_seq_hipotese_legal.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_map_tp_procedimento.md b/docs/schema/md_pen_seq_map_tp_procedimento.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_map_tp_procedimento.svg b/docs/schema/md_pen_seq_map_tp_procedimento.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_orgao_externo.md b/docs/schema/md_pen_seq_orgao_externo.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_orgao_externo.svg b/docs/schema/md_pen_seq_orgao_externo.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_procedimento_andam.md b/docs/schema/md_pen_seq_procedimento_andam.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_procedimento_andam.svg b/docs/schema/md_pen_seq_procedimento_andam.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_recibo_tramite_hash.md b/docs/schema/md_pen_seq_recibo_tramite_hash.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_recibo_tramite_hash.svg b/docs/schema/md_pen_seq_recibo_tramite_hash.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_rel_doc_map_enviado.md b/docs/schema/md_pen_seq_rel_doc_map_enviado.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_rel_doc_map_enviado.svg b/docs/schema/md_pen_seq_rel_doc_map_enviado.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_rel_doc_map_recebid.md b/docs/schema/md_pen_seq_rel_doc_map_recebid.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_rel_doc_map_recebid.svg b/docs/schema/md_pen_seq_rel_doc_map_recebid.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_rel_hipotese_legal.md b/docs/schema/md_pen_seq_rel_hipotese_legal.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_rel_hipotese_legal.svg b/docs/schema/md_pen_seq_rel_hipotese_legal.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_tramite_pendente.md b/docs/schema/md_pen_seq_tramite_pendente.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_seq_tramite_pendente.svg b/docs/schema/md_pen_seq_tramite_pendente.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite.md b/docs/schema/md_pen_tramite.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite.svg b/docs/schema/md_pen_tramite.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite_pendente.md b/docs/schema/md_pen_tramite_pendente.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite_pendente.svg b/docs/schema/md_pen_tramite_pendente.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite_processado.md b/docs/schema/md_pen_tramite_processado.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite_processado.svg b/docs/schema/md_pen_tramite_processado.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite_recibo_envio.md b/docs/schema/md_pen_tramite_recibo_envio.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_tramite_recibo_envio.svg b/docs/schema/md_pen_tramite_recibo_envio.svg old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_unidade.md b/docs/schema/md_pen_unidade.md old mode 100644 new mode 100755 diff --git a/docs/schema/md_pen_unidade.svg b/docs/schema/md_pen_unidade.svg old mode 100644 new mode 100755 diff --git a/docs/schema/schema.json b/docs/schema/schema.json old mode 100644 new mode 100755 diff --git a/docs/schema/schema.svg b/docs/schema/schema.svg old mode 100644 new mode 100755 diff --git a/jenkins/01-Teste-Unico-ou-Grupo.groovy b/jenkins/01-Teste-Unico-ou-Grupo.groovy old mode 100644 new mode 100755 diff --git a/jenkins/02-Teste-Todos-os-Grupos.groovy b/jenkins/02-Teste-Todos-os-Grupos.groovy old mode 100644 new mode 100755 diff --git a/jenkins/03-Teste-Todos-os-Grupos-em-Serie.groovy b/jenkins/03-Teste-Todos-os-Grupos-em-Serie.groovy old mode 100644 new mode 100755 diff --git a/phpcs.xml b/phpcs.xml index 66b3cfdf2..ba38862a0 100755 --- a/phpcs.xml +++ b/phpcs.xml @@ -4,9 +4,9 @@ Padrão de codificação para o projeto SEI, SIP e INFRA + value="src/vendor/pheromone/phpcs-security-audit,src/vendor/phpcompatibility/php-compatibility" /> - + src tests @@ -23,7 +23,7 @@ - + diff --git a/rector.php b/rector.php new file mode 100755 index 000000000..2526453c7 --- /dev/null +++ b/rector.php @@ -0,0 +1,15 @@ +withPaths([ + __DIR__ . '/src', + ]) + + ->withPreparedSets(deadCode: true) + ->withSets([LevelSetList::UP_TO_PHP_82]) + ->withTypeCoverageLevel(0); \ No newline at end of file diff --git a/src/LogPenWs.php b/src/LogPenWs.php index 03ca49a35..fbca781ab 100755 --- a/src/LogPenWs.php +++ b/src/LogPenWs.php @@ -4,10 +4,9 @@ * * Adicionar no arquivo ConfiguracaoSEI.php [SEI][LogPenWs] um array com a lista * de mtodos, do api-pen.wsdl, que sero logados - * - * */ -class LogPenWs { +class LogPenWs +{ /** * Instncia do webservice @@ -23,9 +22,9 @@ class LogPenWs { * Construtor */ // phpcs:ignore PEAR.Functions.ValidDefaultValue.NotAtEnd - public function __construct($config = array(), $wsdl, $options) + public function __construct($wsdl, $options, $config = []) { - $this->arrListaMetodos = is_array($config) ? $config : array(); + $this->arrListaMetodos = is_array($config) ? $config : []; $this->objSoapClient = new \BeSimple\SoapClient\SoapClient($wsdl, $options); } @@ -35,7 +34,7 @@ public function __construct($config = array(), $wsdl, $options) */ public function __call($method, $arguments) { - $mixResultado = call_user_func_array(array($this->objSoapClient, $method), $arguments); + $mixResultado = call_user_func_array([$this->objSoapClient, $method], $arguments); if(in_array($method, $this->arrListaMetodos)) { diff --git a/src/PENIntegracao.php b/src/PENIntegracao.php index faec849ab..d33734877 100755 --- a/src/PENIntegracao.php +++ b/src/PENIntegracao.php @@ -1,171 +1,169 @@ verificarPermissao('pen_incluir_processo_em_bloco_tramite'); + $bolAcaoIncluirProcessoEmBloco = $objSessaoSEI->verificarPermissao('pen_incluir_processo_em_bloco_tramite'); - $bolBlocoAbertoUnidade = false; - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); - $objTramiteEmBlocoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objTramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoDTO->retNumIdUnidade(); - $objTramiteEmBlocoDTO->retStrDescricao(); + $bolBlocoAbertoUnidade = false; + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); + $objTramiteEmBlocoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retNumIdUnidade(); + $objTramiteEmBlocoDTO->retStrDescricao(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); if (count($objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO)) > 0) { - $bolBlocoAbertoUnidade = true; + $bolBlocoAbertoUnidade = true; } if ($bolAcaoIncluirProcessoEmBloco && $bolBlocoAbertoUnidade) { - $objPaginaSEI = PaginaSEI::getInstance(); + $objPaginaSEI = PaginaSEI::getInstance(); - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDistinct(true); - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objAtividadeDTO->setDthConclusao(null); - $objAtividadeDTO->retNumIdUnidade(); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDistinct(true); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setDthConclusao(null); + $objAtividadeDTO->retNumIdUnidade(); - $objAtividadeRN = new AtividadeRN(); - $numRegistros = $objAtividadeRN->contarRN0035($objAtividadeDTO); + $objAtividadeRN = new AtividadeRN(); + $numRegistros = $objAtividadeRN->contarRN0035($objAtividadeDTO); - // Verifica se existe uma unidade mapeada - $bolUnidadeMapeada = $objTramiteEmBlocoRN->existeUnidadeMapeadaParaUnidadeLogada(); + // Verifica se existe uma unidade mapeada + $bolUnidadeMapeada = $objTramiteEmBlocoRN->existeUnidadeMapeadaParaUnidadeLogada(); if ($numRegistros > 0 && $bolUnidadeMapeada) { - $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); - $strAcoesProcedimento .= ''; - $strAcoesProcedimento .= 'getDiretorioImagens()) . '" class="infraCorBarraSistema" alt="Incluir Processos no Bloco de Trmite" title="Incluir Processos no Bloco de Trmite" />'; + $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); + $strAcoesProcedimento .= ''; + $strAcoesProcedimento .= 'getDiretorioImagens()) . '" class="infraCorBarraSistema" alt="Incluir Processos no Bloco de Trmite" title="Incluir Processos no Bloco de Trmite" />'; } } - return array($strAcoesProcedimento); + return [$strAcoesProcedimento]; } public function montarBotaoProcesso(ProcedimentoAPI $objSeiIntegracaoDTO) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->setDblIdProcedimento($objSeiIntegracaoDTO->getIdProcedimento()); - $objProcedimentoDTO->retTodos(); - - $objProcedimentoRN = new ProcedimentoRN(); - $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - - $objSessaoSEI = SessaoSEI::getInstance(); - $objPaginaSEI = PaginaSEI::getInstance(); - $strAcoesProcedimento = ""; - - $dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); - $numIdUsuario = SessaoSEI::getInstance()->getNumIdUsuario(); - $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); - $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - - //Verifica se o processo encontra-se aberto na unidade atual - $objAtividadeRN = new AtividadeRN(); - $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO(); - $objPesquisaPendenciaDTO->setDblIdProtocolo($dblIdProcedimento); - $objPesquisaPendenciaDTO->setNumIdUsuario($numIdUsuario); - $objPesquisaPendenciaDTO->setNumIdUnidade($numIdUnidadeAtual); - $objPesquisaPendenciaDTO->setStrSinMontandoArvore('N'); - $arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO); - $bolFlagAberto = count($arrObjProcedimentoDTO) == 1; - - //Verificao da Restrio de Acesso a Funcionalidade - $bolAcaoExpedirProcesso = $objSessaoSEI->verificarPermissao('pen_procedimento_expedir'); + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->setDblIdProcedimento($objSeiIntegracaoDTO->getIdProcedimento()); + $objProcedimentoDTO->retTodos(); + + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); + + $objSessaoSEI = SessaoSEI::getInstance(); + $objPaginaSEI = PaginaSEI::getInstance(); + $strAcoesProcedimento = ""; + + $dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); + $numIdUsuario = SessaoSEI::getInstance()->getNumIdUsuario(); + $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); + + //Verifica se o processo encontra-se aberto na unidade atual + $objAtividadeRN = new AtividadeRN(); + $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO(); + $objPesquisaPendenciaDTO->setDblIdProtocolo($dblIdProcedimento); + $objPesquisaPendenciaDTO->setNumIdUsuario($numIdUsuario); + $objPesquisaPendenciaDTO->setNumIdUnidade($numIdUnidadeAtual); + $objPesquisaPendenciaDTO->setStrSinMontandoArvore('N'); + $arrObjProcedimentoDTO = $objAtividadeRN->listarPendenciasRN0754($objPesquisaPendenciaDTO); + $bolFlagAberto = count($arrObjProcedimentoDTO) == 1; + + //Verificao da Restrio de Acesso a Funcionalidade + $bolAcaoExpedirProcesso = $objSessaoSEI->verificarPermissao('pen_procedimento_expedir'); - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); - $objProcedimentoDTO = $objExpedirProcedimentoRN->consultarProcedimento($dblIdProcedimento); - - $bolProcessoEstadoNormal = !in_array($objProcedimentoDTO->getStrStaEstadoProtocolo(), array( - ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO, - ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO - )); - - $bolBlocoAbertoUnidade = false; - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); - $objTramiteEmBlocoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objTramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoDTO->retNumIdUnidade(); - $objTramiteEmBlocoDTO->retStrDescricao(); - PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); + $objProcedimentoDTO = $objExpedirProcedimentoRN->consultarProcedimento($dblIdProcedimento); + + $bolProcessoEstadoNormal = !in_array($objProcedimentoDTO->getStrStaEstadoProtocolo(), [ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO, ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO]); + + $bolBlocoAbertoUnidade = false; + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); + $objTramiteEmBlocoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retNumIdUnidade(); + $objTramiteEmBlocoDTO->retStrDescricao(); + PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); if (count($objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO)) > 0) { - $bolBlocoAbertoUnidade = true; + $bolBlocoAbertoUnidade = true; } - $bolProcessoEmBloco = false; - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); - $objPenBlocoProcessoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objPenBlocoProcessoDTO->retNumIdAndamento(); - $objPenBlocoProcessoDTO->retNumIdBloco(); - - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); - if (count($arrObjPenBlocoProcessoDTO) > 0){ - $concluido = array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE - ); + $bolProcessoEmBloco = false; + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenBlocoProcessoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objPenBlocoProcessoDTO->retNumIdAndamento(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + if (count($arrObjPenBlocoProcessoDTO) > 0) { + $concluido = [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE]; foreach ($arrObjPenBlocoProcessoDTO as $objBlocoProcessoDTO) { if (!in_array($objBlocoProcessoDTO->getNumIdAndamento(), $concluido)) { $bolProcessoEmBloco = true; @@ -173,83 +171,82 @@ public function montarBotaoProcesso(ProcedimentoAPI $objSeiIntegracaoDTO) } } - // Verifica se existe uma unidade mapeada - $bolUnidadeMapeada = $objTramiteEmBlocoRN->existeUnidadeMapeadaParaUnidadeLogada(); + // Verifica se existe uma unidade mapeada + $bolUnidadeMapeada = $objTramiteEmBlocoRN->existeUnidadeMapeadaParaUnidadeLogada(); - //Apresenta o boto de expedir processo + //Apresenta o boto de expedir processo if ($bolUnidadeMapeada && !$bolProcessoEmBloco && $bolFlagAberto && $bolAcaoExpedirProcesso && $bolProcessoEstadoNormal && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_SIGILOSO) { $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); $strAcoesProcedimento .= 'Envio Externo de Processo'; } - //Apresenta o boto de cancelar trmite - $objAtividadeDTO = $objExpedirProcedimentoRN->verificarProcessoEmExpedicao($objSeiIntegracaoDTO->getIdProcedimento()); - if ( - $objAtividadeDTO && - $objAtividadeDTO->getNumIdTarefa() == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) && - $objAtividadeDTO->getNumIdUnidade() == $numIdUnidadeAtual - ) { + //Apresenta o boto de cancelar trmite + $objAtividadeDTO = $objExpedirProcedimentoRN->verificarProcessoEmExpedicao($objSeiIntegracaoDTO->getIdProcedimento()); + if ($objAtividadeDTO + && $objAtividadeDTO->getNumIdTarefa() == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) + && $objAtividadeDTO->getNumIdUnidade() == $numIdUnidadeAtual + ) { $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); $strAcoesProcedimento .= ''; $strAcoesProcedimento .= 'Cancelar Tramitao Externa'; $strAcoesProcedimento .= ''; } - //Apresenta o boto de incluir processo no bloco de trmite - $bolAcaoIncluirProcessoEmBloco = $objSessaoSEI->verificarPermissao('pen_incluir_processo_em_bloco_tramite'); + //Apresenta o boto de incluir processo no bloco de trmite + $bolAcaoIncluirProcessoEmBloco = $objSessaoSEI->verificarPermissao('pen_incluir_processo_em_bloco_tramite'); if ($bolUnidadeMapeada && !$bolProcessoEmBloco && $bolBlocoAbertoUnidade && $bolFlagAberto && $bolAcaoIncluirProcessoEmBloco && $bolProcessoEstadoNormal && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_SIGILOSO) { - $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); - $strAcoesProcedimento .= ' getDiretorioImagens()) .'" title="Incluir Processo no Bloco de Trmite" alt="Incluir Processo no Bloco de Trmite"/>'; + $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); + $strAcoesProcedimento .= ' getDiretorioImagens()) .'" title="Incluir Processo no Bloco de Trmite" alt="Incluir Processo no Bloco de Trmite"/>'; } - //Apresenta o boto de excluir processo no bloco de trmite - $bolAcaoExcluirProcessoEmBloco = $objSessaoSEI->verificarPermissao('pen_tramita_em_bloco_protocolo_excluir'); + //Apresenta o boto de excluir processo no bloco de trmite + $bolAcaoExcluirProcessoEmBloco = $objSessaoSEI->verificarPermissao('pen_tramita_em_bloco_protocolo_excluir'); if ($bolUnidadeMapeada && $bolProcessoEmBloco && $bolFlagAberto && $bolAcaoExcluirProcessoEmBloco && $bolProcessoEstadoNormal && $objProcedimentoDTO->getStrStaNivelAcessoGlobalProtocolo() != ProtocoloRN::$NA_SIGILOSO) { - $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); - $strAcoesProcedimento .= ' getDiretorioImagens()) .'" title="Remover Processo do Bloco de Trmite" alt="Remover Processo do Bloco de Trmite"/>'; + $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); + $strAcoesProcedimento .= ' getDiretorioImagens()) .'" title="Remover Processo do Bloco de Trmite" alt="Remover Processo do Bloco de Trmite"/>'; } - //Apresenta o boto da pgina de recibos - if($bolAcaoExpedirProcesso){ - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoDTO->retDblIdProcedimento(); - $objProcessoEletronicoDTO->setDblIdProcedimento($dblIdProcedimento); - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - if($objProcessoEletronicoRN->contar($objProcessoEletronicoDTO) != 0){ - $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); - $strAcoesProcedimento .= ''; - $strAcoesProcedimento .= 'Consultar Recibos'; - $strAcoesProcedimento .= ''; + //Apresenta o boto da pgina de recibos + if($bolAcaoExpedirProcesso) { + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoDTO->retDblIdProcedimento(); + $objProcessoEletronicoDTO->setDblIdProcedimento($dblIdProcedimento); + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + if($objProcessoEletronicoRN->contar($objProcessoEletronicoDTO) != 0) { + $numTabBotao = $objPaginaSEI->getProxTabBarraComandosSuperior(); + $strAcoesProcedimento .= ''; + $strAcoesProcedimento .= 'Consultar Recibos'; + $strAcoesProcedimento .= ''; } } - return array($strAcoesProcedimento); + return [$strAcoesProcedimento]; } public function excluirHipoteseLegal($arrObjHipoteseLegalDTO) - { - $this->validarExcluirDesativarHipoteseLegal($arrObjHipoteseLegalDTO, 'excluso'); + { + $this->validarExcluirDesativarHipoteseLegal($arrObjHipoteseLegalDTO, 'excluso'); } public function desativarHipoteseLegal($arrObjHipoteseLegalDTO) - { - $this->validarExcluirDesativarHipoteseLegal($arrObjHipoteseLegalDTO, 'inativao'); + { + $this->validarExcluirDesativarHipoteseLegal($arrObjHipoteseLegalDTO, 'inativao'); } public function validarExcluirDesativarHipoteseLegal($arrObjHipoteseLegalAPI, $strAcao) - { - $excecao = new InfraException(); + { + $excecao = new InfraException(); foreach ($arrObjHipoteseLegalAPI as $objHipoteseLegalAPI) { - $objPenHipoteseLegalDTO = new PenRelHipoteseLegalDTO(); - $objPenHipoteseLegalDTO->setNumIdHipoteseLegal($objHipoteseLegalAPI->getIdHipoteseLegal()); - $objPenHipoteseLegalDTO->retNumIdHipoteseLegal(); - $objPenHipoteseLegalDTO->setNumMaxRegistrosRetorno(1); + $objPenHipoteseLegalDTO = new PenRelHipoteseLegalDTO(); + $objPenHipoteseLegalDTO->setNumIdHipoteseLegal($objHipoteseLegalAPI->getIdHipoteseLegal()); + $objPenHipoteseLegalDTO->retNumIdHipoteseLegal(); + $objPenHipoteseLegalDTO->setNumMaxRegistrosRetorno(1); - $objPenRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN(); - $objPenRelHipoteseLegalEnvioDTO = $objPenRelHipoteseLegalEnvioRN->consultar($objPenHipoteseLegalDTO); + $objPenRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN(); + $objPenRelHipoteseLegalEnvioDTO = $objPenRelHipoteseLegalEnvioRN->consultar($objPenHipoteseLegalDTO); - $objPenRelHipoteseLegalRecebidoRN = new PenRelHipoteseLegalRecebidoRN(); - $objPenRelHipoteseLegalRecebidoDTO = $objPenRelHipoteseLegalRecebidoRN->consultar($objPenHipoteseLegalDTO); + $objPenRelHipoteseLegalRecebidoRN = new PenRelHipoteseLegalRecebidoRN(); + $objPenRelHipoteseLegalRecebidoDTO = $objPenRelHipoteseLegalRecebidoRN->consultar($objPenHipoteseLegalDTO); if (!is_null($objPenRelHipoteseLegalEnvioDTO) || !is_null($objPenRelHipoteseLegalRecebidoDTO)) { @@ -260,7 +257,8 @@ public function validarExcluirDesativarHipoteseLegal($arrObjHipoteseLegalAPI, $s $objPenHipoteseLegalRN = new PenHipoteseLegalRN(); $objPenHipoteseLegalDTO = $objPenHipoteseLegalRN->consultar($objPenHipoteseLegalDTO); $nome = $objPenHipoteseLegalDTO->getStrNome(); - $excecao->lancarValidacao($this->getNome().": + $excecao->lancarValidacao( + $this->getNome().": A $strAcao da hiptese legal $nome no permitida. A referida hiptese legal est relacionada a uma hiptese legal do Tramita." ); @@ -268,33 +266,32 @@ public function validarExcluirDesativarHipoteseLegal($arrObjHipoteseLegalAPI, $s } } - public function montarIconeControleProcessos($arrObjProcedimentoAPI = array()) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + public function montarIconeControleProcessos($arrObjProcedimentoAPI = []) + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } - $arrStrIcone = array(); - $arrDblIdProcedimento = array(); + $arrStrIcone = []; + $arrDblIdProcedimento = []; foreach ($arrObjProcedimentoAPI as $ObjProcedimentoAPI) { $arrDblIdProcedimento[] = $ObjProcedimentoAPI->getIdProcedimento(); } $arrStrIcone = $this->montarIconeRecusa($arrDblIdProcedimento, $arrStrIcone); - $arrStrIcone = $this->montarIconeTramite($arrDblIdProcedimento, $arrStrIcone); - return $arrStrIcone; + return $this->montarIconeTramite($arrDblIdProcedimento, $arrStrIcone); } - private function montarIconeRecusa($arrDblIdProcedimento = array(), $arrStrIcone = array()) - { - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->setDblIdProcedimento($arrDblIdProcedimento, InfraDTO::$OPER_IN); - $objProcedimentoDTO->retDblIdProcedimento(); - $objProcedimentoDTO->retStrStaEstadoProtocolo(); - $objProcedimentoBD = new ProcedimentoBD(BancoSEI::getInstance()); - $arrObjProcedimentoDTO = $objProcedimentoBD->listar($objProcedimentoDTO); + private function montarIconeRecusa($arrDblIdProcedimento = [], $arrStrIcone = []) + { + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->setDblIdProcedimento($arrDblIdProcedimento, InfraDTO::$OPER_IN); + $objProcedimentoDTO->retDblIdProcedimento(); + $objProcedimentoDTO->retStrStaEstadoProtocolo(); + $objProcedimentoBD = new ProcedimentoBD(BancoSEI::getInstance()); + $arrObjProcedimentoDTO = $objProcedimentoBD->listar($objProcedimentoDTO); if (!empty($arrObjProcedimentoDTO)) { @@ -308,41 +305,35 @@ private function montarIconeRecusa($arrDblIdProcedimento = array(), $arrStrIcone $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); if (!empty($objPenProtocoloDTO) && $objPenProtocoloDTO->getStrSinObteveRecusa() == 'S') { - $arrStrIcone[$dblIdProcedimento] = array(''); + $arrStrIcone[$dblIdProcedimento] = ['']; } } } - return $arrStrIcone; + return $arrStrIcone; } - private function montarIconeTramite($arrDblIdProcedimento = array(), $arrStrIcone = array()) - { - $arrTiProcessoEletronico = array( - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO) - ); + private function montarIconeTramite($arrDblIdProcedimento = [], $arrStrIcone = []) + { + $arrTiProcessoEletronico = [ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO)]; foreach ($arrDblIdProcedimento as $dblIdProcedimento) { - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); - $objAtividadeDTO->setNumIdTarefa($arrTiProcessoEletronico, InfraDTO::$OPER_IN); - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); - $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeDTO->retNumIdTarefa(); - $objAtividadeDTO->retDblIdProcedimentoProtocolo(); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); + $objAtividadeDTO->setNumIdTarefa($arrTiProcessoEletronico, InfraDTO::$OPER_IN); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeDTO->retDblIdProcedimentoProtocolo(); - $objAtividadeRN = new AtividadeRN(); - $ObjAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); + $objAtividadeRN = new AtividadeRN(); + $ObjAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); if (!empty($ObjAtividadeDTO)) { switch ($ObjAtividadeDTO->getNumIdTarefa()) { case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): - $arrayIcone = array(''); + $arrayIcone = ['']; if (!isset($arrStrIcone[$dblIdProcedimento])) { $arrStrIcone[$dblIdProcedimento] = $arrayIcone; } else { @@ -351,17 +342,17 @@ private function montarIconeTramite($arrDblIdProcedimento = array(), $arrStrIcon break; case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO): case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO): - $arrayIcone = array(''); + $arrayIcone = ['']; if (!isset($arrStrIcone[$dblIdProcedimento])) { $arrStrIcone[$dblIdProcedimento] = $arrayIcone; } else { - $arrStrIcone[$dblIdProcedimento] = array_merge($arrStrIcone[$dblIdProcedimento], $arrayIcone); + $arrStrIcone[$dblIdProcedimento] = array_merge($arrStrIcone[$dblIdProcedimento], $arrayIcone); } break; case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO): case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO): if ($this->consultarProcessoRecebido($dblIdProcedimento)) { - $arrayIcone = array(''); + $arrayIcone = ['']; if (!isset($arrStrIcone[$dblIdProcedimento])) { $arrStrIcone[$dblIdProcedimento] = $arrayIcone; } else { @@ -375,113 +366,107 @@ private function montarIconeTramite($arrDblIdProcedimento = array(), $arrStrIcon } } - return $arrStrIcone; + return $arrStrIcone; } private function consultarProcessoRecebido($dblIdProtocolo) - { - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($dblIdProtocolo); - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); - $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeDTO->retNumIdTarefa(); - $objAtividadeDTO->retDblIdProcedimentoProtocolo(); - $objAtividadeRN = new AtividadeRN(); - $arrObjAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); - - return !empty($arrObjAtividadeDTO); + { + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($dblIdProtocolo); + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO)); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeDTO->retDblIdProcedimentoProtocolo(); + $objAtividadeRN = new AtividadeRN(); + $arrObjAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); + + return !empty($arrObjAtividadeDTO); } public function montarIconeProcesso(ProcedimentoAPI $objProcedimentoAP) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } - $dblIdProcedimento = $objProcedimentoAP->getIdProcedimento(); + $dblIdProcedimento = $objProcedimentoAP->getIdProcedimento(); - $objArvoreAcaoItemAPI = new ArvoreAcaoItemAPI(); - $objArvoreAcaoItemAPI->setTipo('MD_TRAMITE_PROCESSO'); - $objArvoreAcaoItemAPI->setId('MD_TRAMITE_PROC_' . $dblIdProcedimento); - $objArvoreAcaoItemAPI->setIdPai($dblIdProcedimento); - $objArvoreAcaoItemAPI->setTitle('Um trmite para esse processo foi recusado'); - $objArvoreAcaoItemAPI->setIcone($this->getDiretorioImagens() . '/pen_tramite_recusado.png'); + $objArvoreAcaoItemAPI = new ArvoreAcaoItemAPI(); + $objArvoreAcaoItemAPI->setTipo('MD_TRAMITE_PROCESSO'); + $objArvoreAcaoItemAPI->setId('MD_TRAMITE_PROC_' . $dblIdProcedimento); + $objArvoreAcaoItemAPI->setIdPai($dblIdProcedimento); + $objArvoreAcaoItemAPI->setTitle('Um trmite para esse processo foi recusado'); + $objArvoreAcaoItemAPI->setIcone($this->getDiretorioImagens() . '/pen_tramite_recusado.png'); - $objArvoreAcaoItemAPI->setTarget(null); - $objArvoreAcaoItemAPI->setHref('javascript:alert(\'Um trmite para esse processo foi recusado\');'); + $objArvoreAcaoItemAPI->setTarget(null); + $objArvoreAcaoItemAPI->setHref('javascript:alert(\'Um trmite para esse processo foi recusado\');'); - $objArvoreAcaoItemAPI->setSinHabilitado('S'); + $objArvoreAcaoItemAPI->setSinHabilitado('S'); - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento); - $objProcedimentoDTO->retDblIdProcedimento(); - $objProcedimentoDTO->retStrStaEstadoProtocolo(); + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->setDblIdProcedimento($dblIdProcedimento); + $objProcedimentoDTO->retDblIdProcedimento(); + $objProcedimentoDTO->retStrStaEstadoProtocolo(); - $objProcedimentoBD = new ProcedimentoBD(BancoSEI::getInstance()); - $arrObjProcedimentoDTO = $objProcedimentoBD->consultar($objProcedimentoDTO); + $objProcedimentoBD = new ProcedimentoBD(BancoSEI::getInstance()); + $arrObjProcedimentoDTO = $objProcedimentoBD->consultar($objProcedimentoDTO); if (!empty($arrObjProcedimentoDTO)) { - $dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); - $objPenProtocoloDTO = new PenProtocoloDTO(); - $objPenProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); - $objPenProtocoloDTO->retStrSinObteveRecusa(); - $objPenProtocoloDTO->setNumMaxRegistrosRetorno(1); + $dblIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); + $objPenProtocoloDTO = new PenProtocoloDTO(); + $objPenProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenProtocoloDTO->retStrSinObteveRecusa(); + $objPenProtocoloDTO->setNumMaxRegistrosRetorno(1); - $objProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); - $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); + $objProtocoloBD = new ProtocoloBD(BancoSEI::getInstance()); + $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); if (!empty($objPenProtocoloDTO) && $objPenProtocoloDTO->getStrSinObteveRecusa() == 'S') { - $arrObjArvoreAcaoItemAPI[] = $objArvoreAcaoItemAPI; + $arrObjArvoreAcaoItemAPI[] = $objArvoreAcaoItemAPI; } - $arrObjArvoreAcaoItemAPI = $this->getObjArvoreAcao( - $dblIdProcedimento, - $arrObjArvoreAcaoItemAPI - ); + $arrObjArvoreAcaoItemAPI = $this->getObjArvoreAcao( + $dblIdProcedimento, + $arrObjArvoreAcaoItemAPI + ); } else { - return array(); + return []; } - return $arrObjArvoreAcaoItemAPI; + return $arrObjArvoreAcaoItemAPI; } private function getObjArvoreAcao($dblIdProcedimento, $arrObjArvoreAcaoItemAPI) - { - - $arrTiProcessoEletronico = array( - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO) - ); - - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); - $objAtividadeDTO->setNumIdTarefa($arrTiProcessoEletronico, InfraDTO::$OPER_IN); - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); - $objAtividadeDTO->retNumIdTarefa(); - $objAtividadeDTO->retNumIdAtividade(); + { + + $arrTiProcessoEletronico = [ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO)]; + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); + $objAtividadeDTO->setNumIdTarefa($arrTiProcessoEletronico, InfraDTO::$OPER_IN); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->retNumIdTarefa(); + $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeRN = new AtividadeRN(); - $objAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); + $objAtividadeRN = new AtividadeRN(); + $objAtividadeDTO = $objAtividadeRN->consultarRN0033($objAtividadeDTO); if (!empty($objAtividadeDTO)) { switch ($objAtividadeDTO->getNumIdTarefa()) { case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): - $arrObjArvoreAcaoItemAPI[] = $this->getObjArvoreAcaoEnviado($dblIdProcedimento); + $arrObjArvoreAcaoItemAPI[] = $this->getObjArvoreAcaoEnviado($dblIdProcedimento); break; case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO): case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO): - $arrObjArvoreAcaoItemAPI[] = $this->getObjArvoreAcaoRecebido($dblIdProcedimento); + $arrObjArvoreAcaoItemAPI[] = $this->getObjArvoreAcaoRecebido($dblIdProcedimento); break; case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO): case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO): if ($this->consultarProcessoRecebido($dblIdProcedimento)) { - $arrObjArvoreAcaoItemAPI[] = $this->getObjArvoreAcaoRecebido($dblIdProcedimento); + $arrObjArvoreAcaoItemAPI[] = $this->getObjArvoreAcaoRecebido($dblIdProcedimento); } break; default: @@ -489,95 +474,95 @@ private function getObjArvoreAcao($dblIdProcedimento, $arrObjArvoreAcaoItemAPI) } } - return $arrObjArvoreAcaoItemAPI; + return $arrObjArvoreAcaoItemAPI; } private function getObjArvoreAcaoRecebido($dblIdProcedimento) - { - $objArvoreAcaoItemAPI = new ArvoreAcaoItemAPI(); - $objArvoreAcaoItemAPI->setTipo('MD_TRAMITE_PROCESSO'); - $objArvoreAcaoItemAPI->setId('MD_TRAMITE_PROC_' . $dblIdProcedimento); - $objArvoreAcaoItemAPI->setIdPai($dblIdProcedimento); - $objArvoreAcaoItemAPI->setTitle('Um trmite para esse processo foi recebido'); - $objArvoreAcaoItemAPI->setIcone($this->getDiretorioImagens() . '/icone-RECEBIDO-tramita.png'); + { + $objArvoreAcaoItemAPI = new ArvoreAcaoItemAPI(); + $objArvoreAcaoItemAPI->setTipo('MD_TRAMITE_PROCESSO'); + $objArvoreAcaoItemAPI->setId('MD_TRAMITE_PROC_' . $dblIdProcedimento); + $objArvoreAcaoItemAPI->setIdPai($dblIdProcedimento); + $objArvoreAcaoItemAPI->setTitle('Um trmite para esse processo foi recebido'); + $objArvoreAcaoItemAPI->setIcone($this->getDiretorioImagens() . '/icone-RECEBIDO-tramita.png'); - $objArvoreAcaoItemAPI->setTarget(null); - $objArvoreAcaoItemAPI->setHref('javascript:alert(\'Um trmite para esse processo foi recebido\');'); + $objArvoreAcaoItemAPI->setTarget(null); + $objArvoreAcaoItemAPI->setHref('javascript:alert(\'Um trmite para esse processo foi recebido\');'); - $objArvoreAcaoItemAPI->setSinHabilitado('S'); + $objArvoreAcaoItemAPI->setSinHabilitado('S'); - return $objArvoreAcaoItemAPI; + return $objArvoreAcaoItemAPI; } private function getObjArvoreAcaoEnviado($dblIdProcedimento) - { - $objArvoreAcaoItemAPI = new ArvoreAcaoItemAPI(); - $objArvoreAcaoItemAPI->setTipo('MD_TRAMITE_PROCESSO'); - $objArvoreAcaoItemAPI->setId('MD_TRAMITE_PROC_' . $dblIdProcedimento); - $objArvoreAcaoItemAPI->setIdPai($dblIdProcedimento); - $objArvoreAcaoItemAPI->setTitle('Um trmite para esse processo foi enviado'); - $objArvoreAcaoItemAPI->setIcone($this->getDiretorioImagens() . '/icone-ENVIADO-tramita.png'); + { + $objArvoreAcaoItemAPI = new ArvoreAcaoItemAPI(); + $objArvoreAcaoItemAPI->setTipo('MD_TRAMITE_PROCESSO'); + $objArvoreAcaoItemAPI->setId('MD_TRAMITE_PROC_' . $dblIdProcedimento); + $objArvoreAcaoItemAPI->setIdPai($dblIdProcedimento); + $objArvoreAcaoItemAPI->setTitle('Um trmite para esse processo foi enviado'); + $objArvoreAcaoItemAPI->setIcone($this->getDiretorioImagens() . '/icone-ENVIADO-tramita.png'); - $objArvoreAcaoItemAPI->setTarget(null); - $objArvoreAcaoItemAPI->setHref('javascript:alert(\'Um trmite para esse processo foi enviado\');'); + $objArvoreAcaoItemAPI->setTarget(null); + $objArvoreAcaoItemAPI->setHref('javascript:alert(\'Um trmite para esse processo foi enviado\');'); - $objArvoreAcaoItemAPI->setSinHabilitado('S'); + $objArvoreAcaoItemAPI->setSinHabilitado('S'); - return $objArvoreAcaoItemAPI; + return $objArvoreAcaoItemAPI; } public function montarIconeAcompanhamentoEspecial($arrObjProcedimentoDTO) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } } public function getDiretorioImagens() - { - return static::getDiretorio() . '/imagens'; + { + return static::getDiretorio() . '/imagens'; } public function montarMensagemProcesso(ProcedimentoAPI $objProcedimentoAPI) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); - $objAtividadeDTO = $objExpedirProcedimentoRN->verificarProcessoEmExpedicao($objProcedimentoAPI->getIdProcedimento()); + $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); + $objAtividadeDTO = $objExpedirProcedimentoRN->verificarProcessoEmExpedicao($objProcedimentoAPI->getIdProcedimento()); if ($objAtividadeDTO && $objAtividadeDTO->getNumIdTarefa() == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)) { - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); - $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade()); - $objAtributoAndamentoDTO->retStrValor(); + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); + $objAtributoAndamentoDTO->setNumIdAtividade($objAtividadeDTO->getNumIdAtividade()); + $objAtributoAndamentoDTO->retStrValor(); - $objAtributoAndamentoRN = new AtributoAndamentoRN(); - $objAtributoAndamentoDTO = $objAtributoAndamentoRN->consultarRN1366($objAtributoAndamentoDTO); + $objAtributoAndamentoRN = new AtributoAndamentoRN(); + $objAtributoAndamentoDTO = $objAtributoAndamentoRN->consultarRN1366($objAtributoAndamentoDTO); - return sprintf('Processo em trmite externo para "%s".', $objAtributoAndamentoDTO->getStrValor()); + return sprintf('Processo em trmite externo para "%s".', $objAtributoAndamentoDTO->getStrValor()); } } public function montarIconeDocumento(ProcedimentoAPI $objProcedimentoAPI, $arrObjDocumentoAPI) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } - $arrIcones = array(); + $arrIcones = []; if ($objProcedimentoAPI->getCodigoAcesso() > 0) { - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $objPenRelTipoDocMapRecebidoRN = new PenRelTipoDocMapRecebidoRN(); + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $objPenRelTipoDocMapRecebidoRN = new PenRelTipoDocMapRecebidoRN(); - $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($objProcedimentoAPI->getIdProcedimento()); - $objUltimoTramiteRecebidoDTO = $objProcessoEletronicoRN->consultarUltimoTramiteRecebido($objProcessoEletronicoPesquisaDTO); + $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($objProcedimentoAPI->getIdProcedimento()); + $objUltimoTramiteRecebidoDTO = $objProcessoEletronicoRN->consultarUltimoTramiteRecebido($objProcessoEletronicoPesquisaDTO); if (!is_null($objUltimoTramiteRecebidoDTO)) { if ($objProcessoEletronicoRN->possuiComponentesComDocumentoReferenciado($objUltimoTramiteRecebidoDTO)) { @@ -585,27 +570,28 @@ public function montarIconeDocumento(ProcedimentoAPI $objProcedimentoAPI, $arrOb $arrObjCompIndexadoPorOrdemDTO = InfraArray::indexarArrInfraDTO($arrObjComponentesDigitaisDTO, 'OrdemDocumento'); $arrObjCompIndexadoPorIdDocumentoDTO = InfraArray::indexarArrInfraDTO($arrObjComponentesDigitaisDTO, 'IdDocumento'); - $arrObjDocumentoAPIIndexado = array(); + $arrObjDocumentoAPIIndexado = []; foreach ($arrObjDocumentoAPI as $objDocumentoAPI) { - $arrObjDocumentoAPIIndexado[$objDocumentoAPI->getIdDocumento()] = $objDocumentoAPI; + $arrObjDocumentoAPIIndexado[$objDocumentoAPI->getIdDocumento()] = $objDocumentoAPI; if ($objDocumentoAPI->getCodigoAcesso() > 0) { $dblIdDocumento = $objDocumentoAPI->getIdDocumento(); if (array_key_exists($dblIdDocumento, $arrObjCompIndexadoPorIdDocumentoDTO)) { - $objComponenteDTO = $arrObjCompIndexadoPorIdDocumentoDTO[$dblIdDocumento]; + $objComponenteDTO = $arrObjCompIndexadoPorIdDocumentoDTO[$dblIdDocumento]; if (!is_null($objComponenteDTO->getNumOrdemDocumentoReferenciado())) { - $arrIcones[$dblIdDocumento] = array(); + $arrIcones[$dblIdDocumento] = []; $objComponenteReferenciadoDTO = $arrObjCompIndexadoPorOrdemDTO[$objComponenteDTO->getNumOrdemDocumentoReferenciado()]; $objDocumentoReferenciadoAPI = $arrObjDocumentoAPIIndexado[$objComponenteReferenciadoDTO->getDblIdDocumento()]; - $strTextoInformativo = sprintf("Anexo do %s \(%s\)", + $strTextoInformativo = sprintf( + "Anexo do %s \(%s\)", $objDocumentoReferenciadoAPI->getNomeSerie(), $objDocumentoReferenciadoAPI->getNumeroProtocolo() ); $objSerieDTO = $objPenRelTipoDocMapRecebidoRN->obterSerieMapeada($objComponenteDTO->getNumCodigoEspecie()); - if(!is_null($objSerieDTO)){ + if(!is_null($objSerieDTO)) { $strTextoInformativo .= " - " . $objSerieDTO->getStrNome(); } @@ -628,251 +614,250 @@ public function montarIconeDocumento(ProcedimentoAPI $objProcedimentoAPI, $arrOb } } - return $arrIcones; + return $arrIcones; } - /** - * @param array $arrObjTipoProcedimentoDTO - * @return void - */ + /** + * @param array $arrObjTipoProcedimentoDTO + * @return void + */ public function desativarTipoProcesso($arrObjTipoProcedimentoDTO) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } - $mensagem = "Prezado(a) usurio(a), voc est tentando desativar um Tipo de Processo que se encontra mapeado para o(s) relacionamento(s) " - ."\"%s\". Para continuar com essa ao necessrio remover do(s) mapeamentos " - ."mencionados o Tipo de Processo: \"%s\"."; + $mensagem = "Prezado(a) usurio(a), voc est tentando desativar um Tipo de Processo que se encontra mapeado para o(s) relacionamento(s) " + ."\"%s\". Para continuar com essa ao necessrio remover do(s) mapeamentos " + ."mencionados o Tipo de Processo: \"%s\"."; - $objMapeamentoTipoProcedimentoRN = new PenMapTipoProcedimentoRN(); - $objMapeamentoTipoProcedimentoRN->validarAcaoTipoProcesso($arrObjTipoProcedimentoDTO, $mensagem); + $objMapeamentoTipoProcedimentoRN = new PenMapTipoProcedimentoRN(); + $objMapeamentoTipoProcedimentoRN->validarAcaoTipoProcesso($arrObjTipoProcedimentoDTO, $mensagem); - $mensagem = 'Prezado(a) usurio(a), voc est tentando desativar o Tipo de Processo "%s" ' + $mensagem = 'Prezado(a) usurio(a), voc est tentando desativar o Tipo de Processo "%s" ' . 'que se encontra mapeado para o Tipo de Processo Padro. ' . 'Para continuar com essa ao necessrio alterar o Tipo de Processo Padro. ' . 'O Tipo de Processo padro se encontra disponvel em: ' . 'Administrao -> Tramita GOV.BR -> Mapeamento de Tipos de Processo -> Relacionamento entre Unidades'; - $objPenParametroRN = new PenParametroRN(); - $objPenParametroRN->validarAcaoTipoProcessoPadrao($arrObjTipoProcedimentoDTO, $mensagem); + $objPenParametroRN = new PenParametroRN(); + $objPenParametroRN->validarAcaoTipoProcessoPadrao($arrObjTipoProcedimentoDTO, $mensagem); } - /** - * @param array $arrObjTipoProcedimentoDTO - * @return void - */ + /** + * @param array $arrObjTipoProcedimentoDTO + * @return void + */ public function excluirTipoProcesso($arrObjTipoProcedimentoDTO) - { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + { + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } - $mensagem = "Prezado(a) usurio(a), voc est tentando excluir um Tipo de Processo que se encontra mapeado para o(s) relacionamento(s) " + $mensagem = "Prezado(a) usurio(a), voc est tentando excluir um Tipo de Processo que se encontra mapeado para o(s) relacionamento(s) " ."\"%s\". Para continuar com essa ao necessrio remover do(s) mapeamentos " ."mencionados o Tipo de Processo: \"%s\"."; - $objMapeamentoTipoProcedimentoRN = new PenMapTipoProcedimentoRN(); - $objMapeamentoTipoProcedimentoRN->validarAcaoTipoProcesso($arrObjTipoProcedimentoDTO, $mensagem); + $objMapeamentoTipoProcedimentoRN = new PenMapTipoProcedimentoRN(); + $objMapeamentoTipoProcedimentoRN->validarAcaoTipoProcesso($arrObjTipoProcedimentoDTO, $mensagem); - $mensagem = 'Prezado(a) usurio(a), voc est tentando excluir o Tipo de Processo "%s" ' + $mensagem = 'Prezado(a) usurio(a), voc est tentando excluir o Tipo de Processo "%s" ' . 'que se encontra mapeado para o Tipo de Processo Padro. ' . 'Para continuar com essa ao necessrio alterar o Tipo de Processo Padro. ' . 'O Tipo de Processo padro se encontra disponvel em: ' . 'Administrao -> Tramita GOV.BR -> Mapeamento de Tipos de Processo -> Relacionamento entre Unidades'; - $objPenParametroRN = new PenParametroRN(); - $objPenParametroRN->validarAcaoTipoProcessoPadrao($arrObjTipoProcedimentoDTO, $mensagem); + $objPenParametroRN = new PenParametroRN(); + $objPenParametroRN->validarAcaoTipoProcessoPadrao($arrObjTipoProcedimentoDTO, $mensagem); } - /** - * Mtodo responsvel de criar listagem de item para XML - */ + /** + * Mtodo responsvel de criar listagem de item para XML + */ public static function gerarXMLItensArrInfraDTOAutoCompletar( - $arr, - $strAtributoId, - $strAtributoDescricao, - $strAtributoComplemento = null, - $strAtributoGrupo = null - ) { - $xml = ''; - $xml .= ''; + $arr, + $strAtributoId, + $strAtributoDescricao, + $strAtributoComplemento = null, + $strAtributoGrupo = null + ) { + $xml = ''; + $xml .= ''; if ($arr !== null && $arr['itens']) { foreach ($arr['itens'] as $dto) { $xml .= 'get($strAtributoDescricao)) . '"'; if ($strAtributoComplemento !== null) { - $xml .= ' complemento="' . self::formatarXMLAjax($dto->get($strAtributoComplemento)) . '"'; + $xml .= ' complemento="' . self::formatarXMLAjax($dto->get($strAtributoComplemento)) . '"'; } if ($strAtributoGrupo !== null) { - $xml .= ' grupo="' . self::formatarXMLAjax($dto->get($strAtributoGrupo)) . '"'; + $xml .= ' grupo="' . self::formatarXMLAjax($dto->get($strAtributoGrupo)) . '"'; } $xml .= '>'; } } if ($arr !== null && $arr['diferencaDeRegistros'] && $arr['diferencaDeRegistros'] > 0) { - $xml .= ''; } - /** - * Método de formatação para caracteres especiais XML - */ + /** + * Método de formatação para caracteres especiais XML + */ private static function formatarXMLAjax($str) - { - if (!is_numeric($str)){ - $str = str_replace('&', '&', $str); - $str = str_replace('<', '&lt;', $str); - $str = str_replace('>', '&gt;', $str); - $str = str_replace('\"', '&quot;', $str); - $str = str_replace('"', '&quot;', $str); + { + if (!is_numeric($str)) { + $str = str_replace('&', '&', $str); + $str = str_replace('<', '&lt;', $str); + $str = str_replace('>', '&gt;', $str); + $str = str_replace('\"', '&quot;', $str); + $str = str_replace('"', '&quot;', $str); } - return $str; + return $str; } // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded public function processarControlador($strAcao) - { - //Configurao de pginas do contexto da rvore do processo para apresentao de erro de forma correta - $bolArvore = in_array($strAcao, array('pen_procedimento_estado')); - PaginaSEI::getInstance()->setBolArvore($bolArvore); + { + //Configurao de pginas do contexto da rvore do processo para apresentao de erro de forma correta + $bolArvore = in_array($strAcao, ['pen_procedimento_estado']); + PaginaSEI::getInstance()->setBolArvore($bolArvore); if (strpos($strAcao, 'pen_') === false) { - return false; + return false; } - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ - return false; + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { + return false; } switch ($strAcao) { case 'pen_procedimento_expedir': - require_once dirname(__FILE__) . '/pen_procedimento_expedir.php'; + include_once __DIR__ . '/pen_procedimento_expedir.php'; break; case 'pen_tramite_bloco_listar': case 'md_pen_tramita_em_bloco': case 'md_pen_tramita_em_bloco_excluir': case 'pen_tramite_em_bloco_cancelar': - require_once dirname(__FILE__) . '/pen_tramite_bloco_listar.php'; + include_once __DIR__ . '/pen_tramite_bloco_listar.php'; break; case 'pen_tramite_em_bloco_cadastrar': case 'pen_tramite_em_bloco_alterar': - require_once dirname(__FILE__) . '/pen_tramite_em_bloco_cadastrar.php'; + include_once __DIR__ . '/pen_tramite_em_bloco_cadastrar.php'; break; case 'pen_tramita_em_bloco_protocolo_excluir': case 'pen_tramita_em_bloco_protocolo_listar': - require_once dirname(__FILE__) . '/pen_tramita_em_bloco_protocolo_listar.php'; + include_once __DIR__ . '/pen_tramita_em_bloco_protocolo_listar.php'; break; case 'pen_excluir_processo_em_bloco_tramite': case 'pen_incluir_processo_em_bloco_tramite': case 'pen_tramita_em_bloco_adicionar': - require_once dirname(__FILE__) . '/pen_tramite_processo_em_bloco_cadastrar.php'; + include_once __DIR__ . '/pen_tramite_processo_em_bloco_cadastrar.php'; break; case 'pen_unidade_sel_expedir_procedimento': - require_once dirname(__FILE__) . '/pen_unidade_sel_expedir_procedimento.php'; + include_once __DIR__ . '/pen_unidade_sel_expedir_procedimento.php'; break; case 'pen_procedimento_processo_anexado': - require_once dirname(__FILE__) . '/pen_procedimento_processo_anexado.php'; + include_once __DIR__ . '/pen_procedimento_processo_anexado.php'; break; case 'pen_procedimento_cancelar_expedir': - require_once dirname(__FILE__) . '/pen_procedimento_cancelar_expedir.php'; + include_once __DIR__ . '/pen_procedimento_cancelar_expedir.php'; break; case 'pen_procedimento_expedido_listar': - require_once dirname(__FILE__) . '/pen_procedimento_expedido_listar.php'; + include_once __DIR__ . '/pen_procedimento_expedido_listar.php'; break; case 'pen_map_tipo_documento_envio_listar': case 'pen_map_tipo_documento_envio_excluir': case 'pen_map_tipo_documento_envio_desativar': case 'pen_map_tipo_documento_envio_ativar': - require_once dirname(__FILE__) . '/pen_map_tipo_documento_envio_listar.php'; + include_once __DIR__ . '/pen_map_tipo_documento_envio_listar.php'; break; case 'pen_map_tipo_documento_envio_cadastrar': case 'pen_map_tipo_documento_envio_visualizar': - require_once dirname(__FILE__) . '/pen_map_tipo_documento_envio_cadastrar.php'; + include_once __DIR__ . '/pen_map_tipo_documento_envio_cadastrar.php'; break; case 'pen_map_tipo_documento_recebimento_listar': case 'pen_map_tipo_documento_recebimento_excluir': - require_once dirname(__FILE__) . '/pen_map_tipo_documento_recebimento_listar.php'; + include_once __DIR__ . '/pen_map_tipo_documento_recebimento_listar.php'; break; case 'pen_map_tipo_documento_recebimento_cadastrar': case 'pen_map_tipo_documento_recebimento_visualizar': - require_once dirname(__FILE__) . '/pen_map_tipo_documento_recebimento_cadastrar.php'; + include_once __DIR__ . '/pen_map_tipo_documento_recebimento_cadastrar.php'; break; case 'pen_apensados_selecionar_expedir_procedimento': - require_once dirname(__FILE__) . '/apensados_selecionar_expedir_procedimento.php'; + include_once __DIR__ . '/apensados_selecionar_expedir_procedimento.php'; break; case 'pen_unidades_administrativas_externas_selecionar_expedir_procedimento': - //verifica qual o tipo de seleo passado para carregar o arquivo especifico. - if($_GET['tipo_pesquisa'] == 1){ - require_once dirname(__FILE__) . '/pen_unidades_administrativas_selecionar_expedir_procedimento.php'; + //verifica qual o tipo de seleo passado para carregar o arquivo especifico. + if($_GET['tipo_pesquisa'] == 1) { + include_once __DIR__ . '/pen_unidades_administrativas_selecionar_expedir_procedimento.php'; }else { - require_once dirname(__FILE__) . '/pen_unidades_administrativas_pesquisa_textual_expedir_procedimento.php'; + include_once __DIR__ . '/pen_unidades_administrativas_pesquisa_textual_expedir_procedimento.php'; } break; case 'pen_procedimento_estado': - require_once dirname(__FILE__) . '/pen_procedimento_estado.php'; + include_once __DIR__ . '/pen_procedimento_estado.php'; break; - // Mapeamento de Hipteses Legais de Envio + // Mapeamento de Hipteses Legais de Envio case 'pen_map_hipotese_legal_envio_cadastrar': case 'pen_map_hipotese_legal_envio_visualizar': - require_once dirname(__FILE__) . '/pen_map_hipotese_legal_envio_cadastrar.php'; + include_once __DIR__ . '/pen_map_hipotese_legal_envio_cadastrar.php'; break; case 'pen_map_hipotese_legal_envio_listar': case 'pen_map_hipotese_legal_envio_excluir': - require_once dirname(__FILE__) . '/pen_map_hipotese_legal_envio_listar.php'; + include_once __DIR__ . '/pen_map_hipotese_legal_envio_listar.php'; break; - // Mapeamento de Hipteses Legais de Recebimento + // Mapeamento de Hipteses Legais de Recebimento case 'pen_map_hipotese_legal_recebimento_cadastrar': case 'pen_map_hipotese_legal_recebimento_visualizar': - require_once dirname(__FILE__) . '/pen_map_hipotese_legal_recebimento_cadastrar.php'; + include_once __DIR__ . '/pen_map_hipotese_legal_recebimento_cadastrar.php'; break; case 'pen_map_hipotese_legal_recebimento_listar': case 'pen_map_hipotese_legal_recebimento_excluir': - require_once dirname(__FILE__) . '/pen_map_hipotese_legal_recebimento_listar.php'; + include_once __DIR__ . '/pen_map_hipotese_legal_recebimento_listar.php'; break; case 'pen_map_hipotese_legal_padrao_cadastrar': case 'pen_map_hipotese_legal_padrao_visualizar': - require_once dirname(__FILE__) . '/pen_map_hipotese_legal_padrao_cadastrar.php'; + include_once __DIR__ . '/pen_map_hipotese_legal_padrao_cadastrar.php'; break; case 'pen_map_unidade_cadastrar': case 'pen_map_unidade_visualizar': - require_once dirname(__FILE__) . '/pen_map_unidade_cadastrar.php'; + include_once __DIR__ . '/pen_map_unidade_cadastrar.php'; break; case 'pen_map_orgaos_externos_salvar': case 'pen_map_orgaos_externos_atualizar': case 'pen_map_orgaos_externos_cadastrar': case 'pen_map_orgaos_externos_visualizar': - require_once dirname(__FILE__) . '/pen_map_orgaos_externos_cadastrar.php'; + include_once __DIR__ . '/pen_map_orgaos_externos_cadastrar.php'; break; case 'pen_map_orgaos_externos_reativar': @@ -880,103 +865,103 @@ public function processarControlador($strAcao) case 'pen_map_orgaos_externos_listar': case 'pen_map_orgaos_externos_excluir': case 'pen_map_orgaos_importar_tipos_processos': - require_once dirname(__FILE__) . '/pen_map_orgaos_externos_listar.php'; + include_once __DIR__ . '/pen_map_orgaos_externos_listar.php'; break; case 'pen_map_tipo_processo_padrao': case 'pen_map_tipo_processo_padrao_salvar': - require_once dirname(__FILE__) . '/pen_map_tipo_processo_padrao.php'; + include_once __DIR__ . '/pen_map_tipo_processo_padrao.php'; break; case 'pen_map_tipo_processo_reativar': - require_once dirname(__FILE__) . '/pen_map_tipo_processo_reativar.php'; + include_once __DIR__ . '/pen_map_tipo_processo_reativar.php'; break; case 'pen_map_orgaos_exportar_tipos_processos': - require_once dirname(__FILE__) . '/pen_tipo_procedimento_lista.php'; + include_once __DIR__ . '/pen_tipo_procedimento_lista.php'; break; case 'pen_map_orgaos_externos_mapeamento_desativar': case 'pen_map_orgaos_externos_mapeamento': case 'pen_map_orgaos_externos_mapeamento_gerenciar': case 'pen_map_orgaos_externos_mapeamento_excluir': - require_once dirname(__FILE__) . '/pen_map_orgaos_mapeamento_tipo_listar.php'; + include_once __DIR__ . '/pen_map_orgaos_mapeamento_tipo_listar.php'; break; case 'pen_map_unidade_listar': case 'pen_map_unidade_excluir': - require_once dirname(__FILE__) . '/pen_map_unidade_listar.php'; + include_once __DIR__ . '/pen_map_unidade_listar.php'; break; case 'pen_parametros_configuracao': case 'pen_parametros_configuracao_salvar': - require_once dirname(__FILE__) . '/pen_parametros_configuracao.php'; + include_once __DIR__ . '/pen_parametros_configuracao.php'; break; case 'pen_map_tipo_documento_envio_padrao_atribuir': case 'pen_map_tipo_documento_envio_padrao_consultar': - require_once dirname(__FILE__) . '/pen_map_tipo_documento_envio_padrao.php'; + include_once __DIR__ . '/pen_map_tipo_documento_envio_padrao.php'; break; case 'pen_map_tipo_doc_recebimento_padrao_atribuir': case 'pen_map_tipo_doc_recebimento_padrao_consultar': - require_once dirname(__FILE__) . '/pen_map_tipo_doc_recebimento_padrao.php'; + include_once __DIR__ . '/pen_map_tipo_doc_recebimento_padrao.php'; break; case 'pen_envio_processo_lote_cadastrar': - require_once dirname(__FILE__) . '/pen_envio_processo_lote_cadastrar.php'; + include_once __DIR__ . '/pen_envio_processo_lote_cadastrar.php'; break; case 'pen_expedir_bloco': - require_once dirname(__FILE__) . '/pen_expedir_bloco.php'; + include_once __DIR__ . '/pen_expedir_bloco.php'; break; case 'pen_map_envio_parcial_listar': case 'pen_map_envio_parcial_excluir': - require_once dirname(__FILE__) . '/pen_map_envio_parcial_listar.php'; + include_once __DIR__ . '/pen_map_envio_parcial_listar.php'; break; case 'pen_map_envio_parcial_salvar': case 'pen_map_envio_parcial_cadastrar': case 'pen_map_envio_parcial_visualizar': - require_once dirname(__FILE__) . '/pen_map_envio_parcial_cadastrar.php'; + include_once __DIR__ . '/pen_map_envio_parcial_cadastrar.php'; break; default: return false; } - return true; + return true; } public function autoCompletarUnidadesCadastrar($bolPermiteEnvio = false) - { - $arrObjEstruturaDTO = (array) ProcessoEletronicoINT::autoCompletarEstruturasAutoCompletar($_POST['id_repositorio'], $_POST['palavras_pesquisa'], $bolPermiteEnvio); + { + $arrObjEstruturaDTO = (array) ProcessoEletronicoINT::autoCompletarEstruturasAutoCompletar($_POST['id_repositorio'], $_POST['palavras_pesquisa'], $bolPermiteEnvio); if (count($arrObjEstruturaDTO['itens']) == 0) { - return ''; + return ''; } - return self::gerarXMLItensArrInfraDTOAutoCompletar($arrObjEstruturaDTO, 'NumeroDeIdentificacaoDaEstrutura', 'Nome'); + return self::gerarXMLItensArrInfraDTOAutoCompletar($arrObjEstruturaDTO, 'NumeroDeIdentificacaoDaEstrutura', 'Nome'); } public function autoCompletarExpedirProcedimento() - { - $xml = null; - $bolPermiteEnvio = false; + { + $xml = null; + $bolPermiteEnvio = false; if ($_GET['acao'] != 'pen_procedimento_expedir' && $_GET['acao_ajax'] != 'pen_unidade_auto_completar_expedir_procedimento') { - $bolPermiteEnvio = true; + $bolPermiteEnvio = true; } - $restricaoCadastrada = false; + $restricaoCadastrada = false; if ($bolPermiteEnvio == false) { - $objUnidadeDTO = new PenUnidadeDTO(); - $objUnidadeDTO->retNumIdUnidadeRH(); - $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->retNumIdUnidadeRH(); + $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objUnidadeRN = new UnidadeRN(); - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); - $arrObjEstruturaDTO = array(); + $arrObjEstruturaDTO = []; if (!is_null($objUnidadeDTO)) { try { $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); @@ -992,12 +977,12 @@ public function autoCompletarExpedirProcedimento() $restricaoCadastrada = $restricaoCadastrada > 0; if ($restricaoCadastrada) { - $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao('%' . $_POST['palavras_pesquisa'] . '%', InfraDTO::$OPER_LIKE); - $arrEstruturas = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); + $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao('%' . $_POST['palavras_pesquisa'] . '%', InfraDTO::$OPER_LIKE); + $arrEstruturas = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); - foreach ($arrEstruturas as $key => $unidade) { + foreach ($arrEstruturas as $unidade) { if ($unidade->getNumIdUnidadeRHRestricao() != null) { - $arrObjEstruturaDTO[] = $unidade; + $arrObjEstruturaDTO[] = $unidade; } } } @@ -1006,128 +991,127 @@ public function autoCompletarExpedirProcedimento() } if (count($arrObjEstruturaDTO) > 0) { - $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjEstruturaDTO, 'IdUnidadeRHRestricao', 'NomeUnidadeRHRestricao'); + $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjEstruturaDTO, 'IdUnidadeRHRestricao', 'NomeUnidadeRHRestricao'); } else if ($restricaoCadastrada) { return ''; } } if (!$restricaoCadastrada && (is_null($arrObjEstruturaDTO) || count($arrObjEstruturaDTO) == 0)) { - $xml = $this->autoCompletarUnidadesCadastrar($bolPermiteEnvio); + $xml = $this->autoCompletarUnidadesCadastrar($bolPermiteEnvio); } - return $xml; + return $xml; } public function penUnidadeAutoCompletarMapeados() - { - // DTO de paginao - $objPenUnidadeDTOFiltro = new PenUnidadeDTO(); - $objPenUnidadeDTOFiltro->retStrSiglaUnidadeRH(); - $objPenUnidadeDTOFiltro->retStrNomeUnidadeRH(); - $objPenUnidadeDTOFiltro->retNumIdUnidade(); - $objPenUnidadeDTOFiltro->retNumIdUnidadeRH(); - - // Filtragem + { + // DTO de paginao + $objPenUnidadeDTOFiltro = new PenUnidadeDTO(); + $objPenUnidadeDTOFiltro->retStrSiglaUnidadeRH(); + $objPenUnidadeDTOFiltro->retStrNomeUnidadeRH(); + $objPenUnidadeDTOFiltro->retNumIdUnidade(); + $objPenUnidadeDTOFiltro->retNumIdUnidadeRH(); + + // Filtragem if (!empty($_POST['palavras_pesquisa']) && $_POST['palavras_pesquisa'] !== 'null') { - $objPenUnidadeDTOFiltro->setStrNomeUnidadeRH('%' . $_POST['palavras_pesquisa'] . '%', InfraDTO::$OPER_LIKE); + $objPenUnidadeDTOFiltro->setStrNomeUnidadeRH('%' . $_POST['palavras_pesquisa'] . '%', InfraDTO::$OPER_LIKE); } - $objPenUnidadeRN = new PenUnidadeRN(); - $objArrPenUnidadeDTO = (array) $objPenUnidadeRN->listar($objPenUnidadeDTOFiltro); + $objPenUnidadeRN = new PenUnidadeRN(); + $objArrPenUnidadeDTO = (array) $objPenUnidadeRN->listar($objPenUnidadeDTOFiltro); if (count($objArrPenUnidadeDTO) == 0) { - return ''; + return ''; } foreach ($objArrPenUnidadeDTO as $dto) { - $dto->setNumIdUnidadeMap($dto->getNumIdUnidadeRH()); - $dto->setStrDescricaoMap($dto->getStrNomeUnidadeRH() . '-' . $dto->getStrSiglaUnidadeRH()); + $dto->setNumIdUnidadeMap($dto->getNumIdUnidadeRH()); + $dto->setStrDescricaoMap($dto->getStrNomeUnidadeRH() . '-' . $dto->getStrSiglaUnidadeRH()); } - return InfraAjax::gerarXMLItensArrInfraDTO($objArrPenUnidadeDTO, 'IdUnidadeMap', 'DescricaoMap'); + return InfraAjax::gerarXMLItensArrInfraDTO($objArrPenUnidadeDTO, 'IdUnidadeMap', 'DescricaoMap'); } - public function processarControladorAjax($strAcao) { - $xml = null; + public function processarControladorAjax($strAcao) + { + $xml = null; switch ($_GET['acao_ajax']) { case 'pen_listar_repositorios_estruturas_auto_completar': try { - $arrObjEstruturaDTO = (array) ProcessoEletronicoINT::autoCompletarRepositorioEstruturas($_POST['palavras_pesquisa']); + $arrObjEstruturaDTO = (array) ProcessoEletronicoINT::autoCompletarRepositorioEstruturas($_POST['palavras_pesquisa']); if (count($arrObjEstruturaDTO) > 0) { $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjEstruturaDTO, 'Id', 'Nome'); } else { - return ''; + return ''; } }catch(Throwable $e){ - $mensagem = "Falha na obteno dos Repositrios de Estruturas Organizacionais"; - throw new InfraException($mensagem, $e); + $mensagem = "Falha na obteno dos Repositrios de Estruturas Organizacionais"; + throw new InfraException($mensagem, $e); } break; case 'pen_unidade_auto_completar_cadastro': - $xml = $this->autoCompletarUnidadesCadastrar(); + $xml = $this->autoCompletarUnidadesCadastrar(); break; case 'pen_unidade_auto_completar_expedir_procedimento': - $xml = $this->autoCompletarExpedirProcedimento(); + $xml = $this->autoCompletarExpedirProcedimento(); break; case 'pen_unidade_auto_completar_mapeados': - $xml = $this->penUnidadeAutoCompletarMapeados(); + $xml = $this->penUnidadeAutoCompletarMapeados(); break; case 'pen_apensados_auto_completar_expedir_procedimento': - $dblIdProcedimentoAtual = $_POST['id_procedimento_atual']; - $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); - $arrObjProcedimentoDTO = ProcessoEletronicoINT::autoCompletarProcessosApensados($dblIdProcedimentoAtual, $numIdUnidadeAtual, $_POST['palavras_pesquisa']); - $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjProcedimentoDTO, 'IdProtocolo', 'ProtocoloFormatadoProtocolo'); + $dblIdProcedimentoAtual = $_POST['id_procedimento_atual']; + $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); + $arrObjProcedimentoDTO = ProcessoEletronicoINT::autoCompletarProcessosApensados($dblIdProcedimentoAtual, $numIdUnidadeAtual, $_POST['palavras_pesquisa']); + $xml = InfraAjax::gerarXMLItensArrInfraDTO($arrObjProcedimentoDTO, 'IdProtocolo', 'ProtocoloFormatadoProtocolo'); break; case 'pen_procedimento_expedir_validar': - require_once dirname(__FILE__) . '/pen_procedimento_expedir_validar.php'; + include_once __DIR__ . '/pen_procedimento_expedir_validar.php'; break; case 'pen_validar_expedir_lote': - require_once dirname(__FILE__) . '/pen_validar_expedir_lote.php'; + include_once __DIR__ . '/pen_validar_expedir_lote.php'; break; case 'pen_procedimento_expedir_cancelar': - $numIdTramite = $_POST['id_tramite']; - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $result = json_encode($objProcessoEletronicoRN->cancelarTramite($numIdTramite)); - InfraAjax::enviarJSON($result); + $numIdTramite = $_POST['id_tramite']; + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $result = json_encode($objProcessoEletronicoRN->cancelarTramite($numIdTramite)); + InfraAjax::enviarJSON($result); exit(0); - break; case 'pen_pesquisar_unidades_administrativas_estrutura_pai': - $idRepositorioEstruturaOrganizacional = $_POST['idRepositorioEstruturaOrganizacional']; - $numeroDeIdentificacaoDaEstrutura = $_POST['numeroDeIdentificacaoDaEstrutura']; + $idRepositorioEstruturaOrganizacional = $_POST['idRepositorioEstruturaOrganizacional']; + $numeroDeIdentificacaoDaEstrutura = $_POST['numeroDeIdentificacaoDaEstrutura']; - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $arrEstruturas = $objProcessoEletronicoRN->consultarEstruturasPorEstruturaPai($idRepositorioEstruturaOrganizacional, $numeroDeIdentificacaoDaEstrutura == "" ? null : $numeroDeIdentificacaoDaEstrutura); + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $arrEstruturas = $objProcessoEletronicoRN->consultarEstruturasPorEstruturaPai($idRepositorioEstruturaOrganizacional, $numeroDeIdentificacaoDaEstrutura == "" ? null : $numeroDeIdentificacaoDaEstrutura); - print json_encode($arrEstruturas); + print json_encode($arrEstruturas); exit(0); - break; case 'pen_pesquisar_unidades_administrativas_estrutura_pai_textual': - $registrosPorPagina = 50; - $idRepositorioEstruturaOrganizacional = $_POST['idRepositorioEstruturaOrganizacional']; - $numeroDeIdentificacaoDaEstrutura = $_POST['numeroDeIdentificacaoDaEstrutura']; - $siglaUnidade = ($_POST['siglaUnidade'] == '') ? null : mb_convert_encoding($_POST['siglaUnidade'], 'UTF-8', 'ISO-8859-1'); - $nomeUnidade = ($_POST['nomeUnidade'] == '') ? null : mb_convert_encoding($_POST['nomeUnidade'], 'UTF-8', 'ISO-8859-1'); - $offset = $_POST['offset'] * $registrosPorPagina; + $registrosPorPagina = 50; + $idRepositorioEstruturaOrganizacional = $_POST['idRepositorioEstruturaOrganizacional']; + $numeroDeIdentificacaoDaEstrutura = $_POST['numeroDeIdentificacaoDaEstrutura']; + $siglaUnidade = ($_POST['siglaUnidade'] == '') ? null : mb_convert_encoding($_POST['siglaUnidade'], 'UTF-8', 'ISO-8859-1'); + $nomeUnidade = ($_POST['nomeUnidade'] == '') ? null : mb_convert_encoding($_POST['nomeUnidade'], 'UTF-8', 'ISO-8859-1'); + $offset = $_POST['offset'] * $registrosPorPagina; - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $arrObjEstruturaDTO = $objProcessoEletronicoRN->listarEstruturasBuscaTextual($idRepositorioEstruturaOrganizacional, null, $numeroDeIdentificacaoDaEstrutura, $nomeUnidade, $siglaUnidade, $offset, $registrosPorPagina); + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $arrObjEstruturaDTO = $objProcessoEletronicoRN->listarEstruturasBuscaTextual($idRepositorioEstruturaOrganizacional, null, $numeroDeIdentificacaoDaEstrutura, $nomeUnidade, $siglaUnidade, $offset, $registrosPorPagina); - $interface = new ProcessoEletronicoINT(); - //Gera a hierarquia de SIGLAS das estruturas - $arrHierarquiaEstruturaDTO = $interface->gerarHierarquiaEstruturas($arrObjEstruturaDTO); + $interface = new ProcessoEletronicoINT(); + //Gera a hierarquia de SIGLAS das estruturas + $arrHierarquiaEstruturaDTO = $interface->gerarHierarquiaEstruturas($arrObjEstruturaDTO); - $arrEstruturas['estrutura'] = []; - if(!is_null($arrHierarquiaEstruturaDTO[0])){ + $arrEstruturas['estrutura'] = []; + if(!is_null($arrHierarquiaEstruturaDTO[0])) { foreach ($arrHierarquiaEstruturaDTO as $key => $estrutura) { //Monta um array com as estruturas para retornar o JSON $arrEstruturas['estrutura'][$key]['nome'] = mb_convert_encoding($estrutura->get('Nome'), 'UTF-8', 'ISO-8859-1'); @@ -1138,89 +1122,63 @@ public function processarControladorAjax($strAcao) { $arrEstruturas['estrutura'][$key]['codigoNoOrgaoEntidade'] = $estrutura->get('CodigoNoOrgaoEntidade'); } - $arrEstruturas['totalDeRegistros'] = $estrutura->get('TotalDeRegistros'); - $arrEstruturas['registrosPorPagina'] = $registrosPorPagina; + $arrEstruturas['totalDeRegistros'] = $estrutura->get('TotalDeRegistros'); + $arrEstruturas['registrosPorPagina'] = $registrosPorPagina; } - print json_encode($arrEstruturas); + print json_encode($arrEstruturas); exit(0); - break; } - return $xml; + return $xml; } public function processarControladorWebServices($servico) - { - $strArq = null; + { + $strArq = null; switch ($_GET['servico']) { case 'modpen': - $strArq = dirname(__FILE__) . '/ws/modpen.wsdl'; + $strArq = __DIR__ . '/ws/modpen.wsdl'; break; } - return $strArq; - } - - - /** - * Mtodo responsvel por recuperar a hierarquia da unidade e montar o seu nome com as SIGLAS da hierarquia - * @param $idRepositorioEstruturaOrganizacional - * @param $arrEstruturas - * @return mixed - * @throws InfraException - */ - private function obterHierarquiaEstruturaDeUnidadeExterna($idRepositorioEstruturaOrganizacional, $arrEstruturas) - { - //Monta o nome da unidade com a hierarquia de SIGLAS - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - foreach ($arrEstruturas as $key => $estrutura) { - if(!is_null($estrutura)) { - $arrObjEstruturaDTO = $objProcessoEletronicoRN->listarEstruturas($idRepositorioEstruturaOrganizacional, $estrutura->numeroDeIdentificacaoDaEstrutura); - if (!is_null($arrObjEstruturaDTO[0])) { - $interface = new ProcessoEletronicoINT(); - $arrHierarquiaEstruturaDTO = $interface->gerarHierarquiaEstruturas($arrObjEstruturaDTO); - $arrEstruturas[$key]->nome = mb_convert_encoding($arrHierarquiaEstruturaDTO[0]->get('Nome'), 'UTF-8', 'ISO-8859-1'); - } - } - } - - return $arrEstruturas; + return $strArq; } public static function getDiretorio() - { - $arrConfig = ConfiguracaoSEI::getInstance()->getValor('SEI', 'Modulos'); - $strModulo = $arrConfig['PENIntegracao']; + { + $arrConfig = ConfiguracaoSEI::getInstance()->getValor('SEI', 'Modulos'); + $strModulo = $arrConfig['PENIntegracao']; return "modulos/".$strModulo; } - /** - * Verifica a compatibilidade e correta configuracao do mdulo de Barramento, registrando mensagem de alerta no log do sistema - * - * Regras de verificao da disponibilidade do PEN no devem ser aplicadas neste ponto pelo risco de erro geral no sistema em - * caso de indisponibilidade momentnea do Barramento de Servios. - */ - public static function verificarCompatibilidadeConfiguracoes(){ - $objVerificadorInstalacaoRN = new VerificadorInstalacaoRN(); + /** + * Verifica a compatibilidade e correta configuracao do mdulo de Barramento, registrando mensagem de alerta no log do sistema + * + * Regras de verificao da disponibilidade do PEN no devem ser aplicadas neste ponto pelo risco de erro geral no sistema em + * caso de indisponibilidade momentnea do Barramento de Servios. + */ + public static function verificarCompatibilidadeConfiguracoes() + { + $objVerificadorInstalacaoRN = new VerificadorInstalacaoRN(); try { - $objVerificadorInstalacaoRN->verificarArquivoConfiguracao(); + $objVerificadorInstalacaoRN->verificarArquivoConfiguracao(); } catch (\Exception $e) { - LogSEI::getInstance()->gravar($e, LogSEI::$ERRO); - return false; + LogSEI::getInstance()->gravar($e, LogSEI::$ERRO); + return false; } try { - $objVerificadorInstalacaoRN->verificarCompatibilidadeModulo(); + $objVerificadorInstalacaoRN->verificarCompatibilidadeModulo(); } catch (\Exception $e) { - LogSEI::getInstance()->gravar($e, LogSEI::$AVISO); - return false; + LogSEI::getInstance()->gravar($e, LogSEI::$AVISO); + return false; } - // Desativado verificações de compatibilidade do banco de dados por não ser todas as versões - // que necessitam mudanças no banco de dados + // Desativado verificações de compatibilidade do banco de dados por não ser todas as versões + // que necessitam mudanças no banco de dados try { $objVerificadorInstalacaoRN->verificarCompatibilidadeBanco(); } catch (\Exception $e) { @@ -1228,60 +1186,68 @@ public static function verificarCompatibilidadeConfiguracoes(){ return false; } - return true; + return true; } - /** - * Compara duas diferentes versões do sistem para avaliar a precedência de ambas - * - * Normaliza o formato de número de versão considerando dois caracteres para cada item (3.0.15 -> 030015) - * - Se resultado for IGUAL a 0, versões iguais - * - Se resultado for MAIOR que 0, versão 1 é posterior a versão 2 - * - Se resultado for MENOR que 0, versão 1 é anterior a versão 2 - */ - public static function compararVersoes($strVersao1, $strVersao2){ - $numVersao1 = explode('.', $strVersao1); - $numVersao1 = array_map(function($item){ return str_pad($item, 2, '0', STR_PAD_LEFT); - }, $numVersao1); - $numVersao1 = intval(join($numVersao1)); - - $numVersao2 = explode('.', $strVersao2); - $numVersao2 = array_map(function($item){ return str_pad($item, 2, '0', STR_PAD_LEFT); - }, $numVersao2); - $numVersao2 = intval(join($numVersao2)); - - return $numVersao1 - $numVersao2; + /** + * Compara duas diferentes versões do sistem para avaliar a precedência de ambas + * + * Normaliza o formato de número de versão considerando dois caracteres para cada item (3.0.15 -> 030015) + * - Se resultado for IGUAL a 0, versões iguais + * - Se resultado for MAIOR que 0, versão 1 é posterior a versão 2 + * - Se resultado for MENOR que 0, versão 1 é anterior a versão 2 + */ + public static function compararVersoes($strVersao1, $strVersao2) + { + $numVersao1 = explode('.', $strVersao1); + $numVersao1 = array_map( + function ($item) { + return str_pad($item, 2, '0', STR_PAD_LEFT); + }, $numVersao1 + ); + $numVersao1 = intval(join('', $numVersao1)); + + $numVersao2 = explode('.', $strVersao2); + $numVersao2 = array_map( + function ($item) { + return str_pad($item, 2, '0', STR_PAD_LEFT); + }, $numVersao2 + ); + $numVersao2 = intval(join('', $numVersao2)); + + return $numVersao1 - $numVersao2; } public function processarPendencias() - { - SessaoSEI::getInstance(false); - ProcessarPendenciasRN::getInstance()->processarPendencias(); + { + SessaoSEI::getInstance(false); + ProcessarPendenciasRN::getInstance()->processarPendencias(); } - public function assinarDocumento($arrObjDocumentoAPI = array()){ + public function assinarDocumento($arrObjDocumentoAPI = []) + { - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); foreach($arrObjDocumentoAPI as $objDocumentoAPI){ - //Pode ser assinado documentos de mais de um processo - $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($objDocumentoAPI->getIdProcedimento()); - $objUltimoTramiteRecebidoDTO = $objProcessoEletronicoRN->consultarUltimoTramite($objProcessoEletronicoPesquisaDTO); + //Pode ser assinado documentos de mais de um processo + $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($objDocumentoAPI->getIdProcedimento()); + $objUltimoTramiteRecebidoDTO = $objProcessoEletronicoRN->consultarUltimoTramite($objProcessoEletronicoPesquisaDTO); - //Se no tiver trmite no h o que se checar - if(!is_null($objUltimoTramiteRecebidoDTO)){ + //Se no tiver trmite no h o que se checar + if(!is_null($objUltimoTramiteRecebidoDTO)) { $arrObjComponentesDigitais = $objProcessoEletronicoRN->listarComponentesDigitais($objUltimoTramiteRecebidoDTO); - if(!is_null($arrObjComponentesDigitais)){ + if(!is_null($arrObjComponentesDigitais)) { foreach($arrObjComponentesDigitais as $objComponentesDigitais){ - if ($objComponentesDigitais->getDblIdDocumento() == $objDocumentoAPI->getIdDocumento()){ - $nomeModulo = $this->getNome(); - $mensagem = "$nomeModulo: Prezado(a) usurio(a) esse documento j foi tramitado externamente via Tramita GOV.BR. Por esse motivo, este documento no pode receber uma nova assinatura."; - LogSEI::getInstance()->gravar($mensagem, LogSEI::$AVISO); - $objInfraException = new InfraException(); - $objInfraException->adicionarValidacao($mensagem); - $objInfraException->lancarValidacoes(); + if ($objComponentesDigitais->getDblIdDocumento() == $objDocumentoAPI->getIdDocumento()) { + $nomeModulo = $this->getNome(); + $mensagem = "$nomeModulo: Prezado(a) usurio(a) esse documento j foi tramitado externamente via Tramita GOV.BR. Por esse motivo, este documento no pode receber uma nova assinatura."; + LogSEI::getInstance()->gravar($mensagem, LogSEI::$AVISO); + $objInfraException = new InfraException(); + $objInfraException->adicionarValidacao($mensagem); + $objInfraException->lancarValidacoes(); } } } @@ -1289,4 +1255,7 @@ public function assinarDocumento($arrObjDocumentoAPI = array()){ } } } -class ModuloIncompativelException extends InfraException { } \ No newline at end of file +class ModuloIncompativelException extends InfraException +{ + +} \ No newline at end of file diff --git a/src/apensados_selecionar_expedir_procedimento.php b/src/apensados_selecionar_expedir_procedimento.php index b821933a8..17dd1427d 100755 --- a/src/apensados_selecionar_expedir_procedimento.php +++ b/src/apensados_selecionar_expedir_procedimento.php @@ -134,17 +134,17 @@ function inicializar(){ PaginaSEI::getInstance()->fecharHead(); PaginaSEI::getInstance()->abrirBody($strTitulo, 'onload="inicializar();"'); ?> -
+ montarBarraLocalizacao($strTitulo); PaginaSEI::getInstance()->montarBarraComandosSuperior($arrComandos); PaginaSEI::getInstance()->abrirAreaDados('5em'); ?> - + - + fecharAreaDados(); diff --git a/src/bd/GenericoBD.php b/src/bd/GenericoBD.php index 6d5f17b1d..c3d34d32b 100755 --- a/src/bd/GenericoBD.php +++ b/src/bd/GenericoBD.php @@ -4,12 +4,12 @@ /** * Classe gererica de persistncia com o banco de dados - * - * */ -class GenericoBD extends InfraBD { +class GenericoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } diff --git a/src/bd/PenBlocoProcessoBD.php b/src/bd/PenBlocoProcessoBD.php old mode 100644 new mode 100755 index 14fd83d61..90df13391 --- a/src/bd/PenBlocoProcessoBD.php +++ b/src/bd/PenBlocoProcessoBD.php @@ -5,9 +5,11 @@ /** * Classe gererica de persistncia com o banco de dados */ -class PenBlocoProcessoBD extends InfraBD { +class PenBlocoProcessoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } diff --git a/src/bd/PenHipoteseLegalBD.php b/src/bd/PenHipoteseLegalBD.php index cd6d786f3..3ba0b815d 100755 --- a/src/bd/PenHipoteseLegalBD.php +++ b/src/bd/PenHipoteseLegalBD.php @@ -4,9 +4,8 @@ /** * Description of PenHipoteseLegalBD - * - * */ -class PenHipoteseLegalBD extends InfraBD { +class PenHipoteseLegalBD extends InfraBD +{ } diff --git a/src/bd/PenImportacaoTiposProcessoBD.php b/src/bd/PenImportacaoTiposProcessoBD.php old mode 100644 new mode 100755 index 1b59c21d2..7371d1079 --- a/src/bd/PenImportacaoTiposProcessoBD.php +++ b/src/bd/PenImportacaoTiposProcessoBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenImportacaoTiposProcessoBD extends InfraBD { +class PenImportacaoTiposProcessoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } \ No newline at end of file diff --git a/src/bd/PenMapTipoProcedimentoBD.php b/src/bd/PenMapTipoProcedimentoBD.php old mode 100644 new mode 100755 index 8fb4d704e..81c743631 --- a/src/bd/PenMapTipoProcedimentoBD.php +++ b/src/bd/PenMapTipoProcedimentoBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenMapTipoProcedimentoBD extends InfraBD { +class PenMapTipoProcedimentoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } diff --git a/src/bd/PenMetaBD.php b/src/bd/PenMetaBD.php index 93f630a18..b666a4bf8 100755 --- a/src/bd/PenMetaBD.php +++ b/src/bd/PenMetaBD.php @@ -4,10 +4,9 @@ /** * Mapeamento dos metadados sobre a estrutura do banco de dados - * - * */ -class PenMetaBD extends InfraMetaBD { +class PenMetaBD extends InfraMetaBD +{ const NNULLO = 'NOT NULL'; const SNULLO = 'NULL'; @@ -16,7 +15,8 @@ class PenMetaBD extends InfraMetaBD { * * @return string */ - public function adicionarValorPadraoParaColuna($strNomeTabela, $strNomeColuna, $strValorPadrao, $bolRetornarQuery = false){ + public function adicionarValorPadraoParaColuna($strNomeTabela, $strNomeColuna, $strValorPadrao, $bolRetornarQuery = false) + { $objInfraBanco = $this->getObjInfraIBanco(); $strTableDrive = get_parent_class($objInfraBanco); @@ -25,7 +25,7 @@ public function adicionarValorPadraoParaColuna($strNomeTabela, $strNomeColuna, $ switch($strTableDrive) { case 'InfraMySqli': - $strQuery = sprintf("ALTER TABLE `%s` ALTER COLUMN `%s` SET DEFAULT '%s'", $strNomeTabela, $strNomeColuna, $strValorPadrao); + $strQuery = sprintf("ALTER TABLE `%s` ALTER COLUMN `%s` SET DEFAULT '%s'", $strNomeTabela, $strNomeColuna, $strValorPadrao); break; case 'InfraSqlServer': @@ -37,7 +37,7 @@ public function adicionarValorPadraoParaColuna($strNomeTabela, $strNomeColuna, $ break; case 'InfraPostgreSql': - $strQuery = sprintf("ALTER TABLE %s ALTER COLUMN %s SET DEFAULT '%s'", $strNomeTabela, $strNomeColuna, $strValorPadrao); + $strQuery = sprintf("ALTER TABLE %s ALTER COLUMN %s SET DEFAULT '%s'", $strNomeTabela, $strNomeColuna, $strValorPadrao); break; } @@ -55,11 +55,12 @@ public function adicionarValorPadraoParaColuna($strNomeTabela, $strNomeColuna, $ * * @return PenMetaBD */ - public function isDriverPermissao(){ + public function isDriverPermissao() + { $objInfraBanco = $this->getObjInfraIBanco(); - if(count($this->obterTabelas('sei_teste'))==0){ + if(count($this->obterTabelas('sei_teste'))==0) { $objInfraBanco->executarSql('CREATE TABLE sei_teste (id '.$this->tipoNumero().' NULL)'); } @@ -74,18 +75,19 @@ public function isDriverPermissao(){ * @throws InfraException * @return PenMetaBD */ - public function isDriverSuportado(){ + public function isDriverSuportado() + { $strTableDrive = get_parent_class($this->getObjInfraIBanco()); switch($strTableDrive) { case 'InfraMySqli': // Fix para bug de MySQL verso inferior ao 5.5 o default engine - // MyISAM e no tem suporte a FOREING KEYS - $version = $this->getObjInfraIBanco()->consultarSql('SELECT VERSION() as versao'); - $version = $version[0]['versao']; - $arrVersion = explode('.', $version); - if($arrVersion[0].$arrVersion[1] < 56){ + // MyISAM e no tem suporte a FOREING KEYS + $version = $this->getObjInfraIBanco()->consultarSql('SELECT VERSION() as versao'); + $version = $version[0]['versao']; + $arrVersion = explode('.', $version); + if($arrVersion[0].$arrVersion[1] < 56) { $this->getObjInfraIBanco()->executarSql('@SET STORAGE_ENGINE=InnoDB'); } break; @@ -108,25 +110,28 @@ public function isDriverSuportado(){ * @throws InfraException * @return PenMetaBD */ - public function isVersaoSuportada($strRegexVersaoSistema, $strVerMinRequirida){ + public function isVersaoSuportada($strRegexVersaoSistema, $strVerMinRequirida) + { $numVersaoRequerida = intval(preg_replace('/\D+/', '', $strVerMinRequirida)); $numVersaoSistema = intval(preg_replace('/\D+/', '', $strRegexVersaoSistema)); - if($numVersaoRequerida > $numVersaoSistema){ + if($numVersaoRequerida > $numVersaoSistema) { throw new InfraException('VERSAO DO FRAMEWORK PHP INCOMPATIVEL (VERSAO ATUAL '.$strRegexVersaoSistema.', VERSAO REQUERIDA '.$strVerMinRequirida.')'); } return $this; } - public function adicionarChaveUnica($strNomeTabela = '', $arrNomeChave = array()){ + public function adicionarChaveUnica($strNomeTabela = '', $arrNomeChave = []) + { $this->getObjInfraIBanco() - ->executarSql('ALTER TABLE '.$strNomeTabela.' ADD CONSTRAINT UK_'.$strNomeTabela.' UNIQUE('.implode(', ', $arrNomeChave).')'); + ->executarSql('ALTER TABLE '.$strNomeTabela.' ADD CONSTRAINT UK_'.$strNomeTabela.' UNIQUE('.implode(', ', $arrNomeChave).')'); } - public function novoRenomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ + public function novoRenomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo) + { if($this->isTabelaExiste($strNomeTabelaAtual)) { @@ -136,19 +141,19 @@ public function novoRenomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ switch ($strTableDrive) { case 'InfraMySqli': - $strQuery = sprintf("ALTER TABLE `%s` RENAME TO `%s`", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("ALTER TABLE `%s` RENAME TO `%s`", $strNomeTabelaAtual, $strNomeTabelaNovo); break; case 'InfraSqlServer': - $strQuery = sprintf("sp_rename '%s', '%s'", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("sp_rename '%s', '%s'", $strNomeTabelaAtual, $strNomeTabelaNovo); break; case 'InfraOracle': - $strQuery = sprintf("RENAME %s TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("RENAME %s TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); break; case 'InfraPostgreSql': - $strQuery = sprintf("ALTER TABLE %s RENAME TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("ALTER TABLE %s RENAME TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); break; } @@ -156,7 +161,8 @@ public function novoRenomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ } } - public function renomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ + public function renomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo) + { if($this->isTabelaExiste($strNomeTabelaAtual)) { @@ -166,19 +172,19 @@ public function renomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ switch ($strTableDrive) { case 'InfraMySqli': - $strQuery = sprintf("ALTER TABLE `%s` RENAME TO `%s`", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("ALTER TABLE `%s` RENAME TO `%s`", $strNomeTabelaAtual, $strNomeTabelaNovo); break; case 'InfraSqlServer': - $strQuery = sprintf("sp_rename '%s', '%s'", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("sp_rename '%s', '%s'", $strNomeTabelaAtual, $strNomeTabelaNovo); break; case 'InfraOracle': - $strQuery = sprintf("RENAME TABLE %s TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("RENAME TABLE %s TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); break; case 'InfraPostgreSql': - $strQuery = sprintf("ALTER TABLE %s RENAME TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); + $strQuery = sprintf("ALTER TABLE %s RENAME TO %s", $strNomeTabelaAtual, $strNomeTabelaNovo); break; } @@ -186,7 +192,8 @@ public function renomearTabela($strNomeTabelaAtual, $strNomeTabelaNovo){ } } - public function renomearColuna($strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova, $strTipo){ + public function renomearColuna($strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova, $strTipo) + { if($this->isColunaExiste($strNomeTabela, $strNomeColunaAtual)) { @@ -197,11 +204,11 @@ public function renomearColuna($strNomeTabela, $strNomeColunaAtual, $strNomeColu switch ($strTableDrive) { case 'InfraMySqli': - $strQuery = sprintf("ALTER TABLE `%s` CHANGE `%s` `%s` %s", $strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova, $strTipo); + $strQuery = sprintf("ALTER TABLE `%s` CHANGE `%s` `%s` %s", $strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova, $strTipo); break; case 'InfraSqlServer': - $strQuery = sprintf("SP_RENAME '%s.%s', '%s', 'COLUMN'", $strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova); + $strQuery = sprintf("SP_RENAME '%s.%s', '%s', 'COLUMN'", $strNomeTabela, $strNomeColunaAtual, $strNomeColunaNova); break; case 'InfraOracle': @@ -220,16 +227,18 @@ public function renomearColuna($strNomeTabela, $strNomeColunaAtual, $strNomeColu * @throws InfraException * @return bool */ - public function isTabelaExiste($strNomeTabela = ''){ + public function isTabelaExiste($strNomeTabela = '') + { return count($this->obterTabelas($strNomeTabela)) != 0; } - public function isColunaExiste($strNomeTabela = '', $strNomeColuna = ''){ + public function isColunaExiste($strNomeTabela = '', $strNomeColuna = '') + { $arrColunas = $this->obterColunasTabela($strNomeTabela); foreach ($arrColunas as $objColuna) { - if($objColuna['column_name'] == $strNomeColuna){ + if($objColuna['column_name'] == $strNomeColuna) { return true; } } @@ -237,11 +246,12 @@ public function isColunaExiste($strNomeTabela = '', $strNomeColuna = ''){ return false; } - public function isChaveExiste($strNomeTabela = '', $strNomeChave = ''){ + public function isChaveExiste($strNomeTabela = '', $strNomeChave = '') + { $arrConstraints = $this->obterConstraints($strNomeTabela); foreach ($arrConstraints as $objConstraint) { - if($objConstraint['constraint_name'] == $strNomeChave){ + if($objConstraint['constraint_name'] == $strNomeChave) { return true; } } @@ -255,7 +265,8 @@ public function isChaveExiste($strNomeTabela = '', $strNomeChave = ''){ * @throws InfraException * @return PenMetaBD */ - public function criarTabela($arrSchema = array()){ + public function criarTabela($arrSchema = []) + { $strNomeTabela = $arrSchema['tabela']; @@ -264,12 +275,12 @@ public function criarTabela($arrSchema = array()){ } $objInfraBanco = $this->getObjInfraIBanco(); - $arrColunas = array(); - $arrStrQuery = array(); + $arrColunas = []; + $arrStrQuery = []; foreach($arrSchema['cols'] as $strNomeColuna => $arrColunaConfig) { - list($strTipoDado, $strValorPadrao) = $arrColunaConfig; + [$strTipoDado, $strValorPadrao] = $arrColunaConfig; if($strValorPadrao != self::SNULLO && $strValorPadrao != self::NNULLO) { @@ -283,9 +294,9 @@ public function criarTabela($arrSchema = array()){ $objInfraBanco->executarSql('CREATE TABLE '.$strNomeTabela.' ('.implode(', ', $arrColunas).')'); if(!empty($arrSchema['pk'])) { - $strNomePK = array_key_exists('nome', $arrSchema['pk']) ? $arrSchema['pk']['nome'] : 'pk_' . $strNomeTabela; - $arrColunas = array_key_exists('cols', $arrSchema['pk']) ? $arrSchema['pk']['cols'] : $arrSchema['pk']; - $this->adicionarChavePrimaria($strNomeTabela, $strNomePK, $arrColunas); + $strNomePK = array_key_exists('nome', $arrSchema['pk']) ? $arrSchema['pk']['nome'] : 'pk_' . $strNomeTabela; + $arrColunas = array_key_exists('cols', $arrSchema['pk']) ? $arrSchema['pk']['cols'] : $arrSchema['pk']; + $this->adicionarChavePrimaria($strNomeTabela, $strNomePK, $arrColunas); if(count($arrColunas) > 1) { for ($i=0; $i < count($arrColunas); $i++) { $strPk = $arrColunas[$i]; @@ -315,11 +326,8 @@ public function criarTabela($arrSchema = array()){ } } - if(!empty($arrStrQuery)) { - - foreach($arrStrQuery as $strQuery) { - $objInfraBanco->executarSql($strQuery); - } + foreach($arrStrQuery as $strQuery) { + $objInfraBanco->executarSql($strQuery); } return $this; @@ -331,13 +339,15 @@ public function criarTabela($arrSchema = array()){ * @throws InfraException * @return PenMetaBD */ - public function removerTabela($strNomeTabela = ''){ + public function removerTabela($strNomeTabela = '') + { $this->getObjInfraIBanco()->executarSql('DROP TABLE '.$strNomeTabela); return $this; } - public function adicionarChaveEstrangeira($strNomeFK, $strTabela, $arrCampos, $strTabelaOrigem, $arrCamposOrigem, $bolCriarIndice = false) { + public function adicionarChaveEstrangeira($strNomeFK, $strTabela, $arrCampos, $strTabelaOrigem, $arrCamposOrigem, $bolCriarIndice = false) + { if(!$this->isChaveExiste($strTabela, $strNomeFK)) { parent::adicionarChaveEstrangeira($strNomeFK, $strTabela, $arrCampos, $strTabelaOrigem, $arrCamposOrigem, $bolCriarIndice); @@ -345,7 +355,8 @@ public function adicionarChaveEstrangeira($strNomeFK, $strTabela, $arrCampos, $s return $this; } - public function adicionarChavePrimaria($strTabela, $strNomePK, $arrCampos) { + public function adicionarChavePrimaria($strTabela, $strNomePK, $arrCampos) + { if(!$this->isChaveExiste($strTabela, $strNomePK)) { parent::adicionarChavePrimaria($strTabela, $strNomePK, $arrCampos); @@ -353,19 +364,22 @@ public function adicionarChavePrimaria($strTabela, $strNomePK, $arrCampos) { return $this; } - public function alterarColuna($strTabela, $strColuna, $strTipo, $strNull = '') { + public function alterarColuna($strTabela, $strColuna, $strTipo, $strNull = '') + { parent::alterarColuna($strTabela, $strColuna, $strTipo, $strNull); return $this; } - public function excluirIndice($strTabela, $strIndex) { + public function excluirIndice($strTabela, $strIndex) + { if($this->isChaveExiste($strTabela, $strFk)) { parent::excluirIndice($strTabela, $strIndex); } return $this; } - public function excluirChaveEstrangeira($strTabela, $strFk) { + public function excluirChaveEstrangeira($strTabela, $strFk) + { if($this->isChaveExiste($strTabela, $strFk)) { parent::excluirChaveEstrangeira($strTabela, $strFk); } diff --git a/src/bd/PenOrgaoExternoBD.php b/src/bd/PenOrgaoExternoBD.php old mode 100644 new mode 100755 index b3278d299..1646c4116 --- a/src/bd/PenOrgaoExternoBD.php +++ b/src/bd/PenOrgaoExternoBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenOrgaoExternoBD extends InfraBD { +class PenOrgaoExternoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } diff --git a/src/bd/PenParametroBD.php b/src/bd/PenParametroBD.php index 545ca39b4..cfecd4d97 100755 --- a/src/bd/PenParametroBD.php +++ b/src/bd/PenParametroBD.php @@ -4,12 +4,12 @@ /** * Classe gererica de persistncia com o banco de dados - * - * */ -class PenParametroBD extends InfraBD { +class PenParametroBD extends InfraBD +{ - public function setValor($strNome, $strValor) { + public function setValor($strNome, $strValor) + { $sql = ''; $sql .= ' SELECT count(*) as existe'; @@ -36,12 +36,11 @@ public function setValor($strNome, $strValor) { $sql .= ' WHERE nome = ' . $this->getObjInfraIBanco()->formatarGravacaoStr($strNome); } - $ret = $this->getObjInfraIBanco()->executarSql($sql); - - return $ret; + return $this->getObjInfraIBanco()->executarSql($sql); } - public function isSetValor($strNome) { + public function isSetValor($strNome) + { $sql = ''; $sql .= ' SELECT valor'; diff --git a/src/bd/PenRelTipoDocMapEnviadoBD.php b/src/bd/PenRelTipoDocMapEnviadoBD.php index c1a6905c8..707bf0d0f 100755 --- a/src/bd/PenRelTipoDocMapEnviadoBD.php +++ b/src/bd/PenRelTipoDocMapEnviadoBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenRelTipoDocMapEnviadoBD extends InfraBD { +class PenRelTipoDocMapEnviadoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco){ + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } diff --git a/src/bd/PenRelTipoDocMapRecebidoBD.php b/src/bd/PenRelTipoDocMapRecebidoBD.php index be31fb4dc..53cf0a8fc 100755 --- a/src/bd/PenRelTipoDocMapRecebidoBD.php +++ b/src/bd/PenRelTipoDocMapRecebidoBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenRelTipoDocMapRecebidoBD extends InfraBD { +class PenRelTipoDocMapRecebidoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco){ + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } diff --git a/src/bd/PenRestricaoEnvioComponentesDigitaisBD.php b/src/bd/PenRestricaoEnvioComponentesDigitaisBD.php old mode 100644 new mode 100755 index 45263ce2d..864012cf9 --- a/src/bd/PenRestricaoEnvioComponentesDigitaisBD.php +++ b/src/bd/PenRestricaoEnvioComponentesDigitaisBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenRestricaoEnvioComponentesDigitaisBD extends InfraBD { +class PenRestricaoEnvioComponentesDigitaisBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } \ No newline at end of file diff --git a/src/bd/PenUnidadeRestricaoBD.php b/src/bd/PenUnidadeRestricaoBD.php old mode 100644 new mode 100755 diff --git a/src/bd/ProcedimentoAndamentoBD.php b/src/bd/ProcedimentoAndamentoBD.php index b0862303f..76181f5cb 100755 --- a/src/bd/ProcedimentoAndamentoBD.php +++ b/src/bd/ProcedimentoAndamentoBD.php @@ -4,12 +4,12 @@ /** * Persistncia de dados no banco de dados - * - * */ -class ProcedimentoAndamentoBD extends InfraBD { +class ProcedimentoAndamentoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } diff --git a/src/bd/ProcessoExpedidoBD.php b/src/bd/ProcessoExpedidoBD.php index 812ed02dc..6ffb387bf 100755 --- a/src/bd/ProcessoExpedidoBD.php +++ b/src/bd/ProcessoExpedidoBD.php @@ -4,4 +4,6 @@ /** * */ -class ProcessoExpedidoBD extends InfraBD {} +class ProcessoExpedidoBD extends InfraBD +{ +} diff --git a/src/bd/ReceberTramiteRecusadoBD.php b/src/bd/ReceberTramiteRecusadoBD.php index cdf7be257..bad200ae8 100755 --- a/src/bd/ReceberTramiteRecusadoBD.php +++ b/src/bd/ReceberTramiteRecusadoBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ReceberTramiteRecusadoBD extends InfraBD { +class ReceberTramiteRecusadoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } diff --git a/src/bd/ReciboTramiteRecebidoBD.php b/src/bd/ReciboTramiteRecebidoBD.php index 8dbc83219..e5edc9d3b 100755 --- a/src/bd/ReciboTramiteRecebidoBD.php +++ b/src/bd/ReciboTramiteRecebidoBD.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ReciboTramiteRecebidoBD extends InfraBD { +class ReciboTramiteRecebidoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } diff --git a/src/bd/TramiteBD.php b/src/bd/TramiteBD.php index cd837ca24..3796bcac3 100755 --- a/src/bd/TramiteBD.php +++ b/src/bd/TramiteBD.php @@ -2,25 +2,26 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class TramiteBD extends InfraBD { +class TramiteBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco){ + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } /** * Recupera os dados do ltimo trmite vlido realizado para determinado nmero de processo eletrnico * - * @param ProcessoEletronicoDTO $parObjProcessoEletronicoDTO * @return void */ public function consultarUltimoTramite(ProcessoEletronicoDTO $parObjProcessoEletronicoDTO, $parStrStaTipoTramite = null) { - if(is_null($parObjProcessoEletronicoDTO)){ + if(is_null($parObjProcessoEletronicoDTO)) { throw new InfraException('Parmetro [parObjProcessoEletronicoDTO] no informado'); } - if(!$parObjProcessoEletronicoDTO->isSetDblIdProcedimento() && !$parObjProcessoEletronicoDTO->isSetStrNumeroRegistro()){ + if(!$parObjProcessoEletronicoDTO->isSetDblIdProcedimento() && !$parObjProcessoEletronicoDTO->isSetStrNumeroRegistro()) { throw new InfraException('Nenhuma das chaves de localizao do processo eletrnico foi atribudo. Informe o IdProcedimento ou NumeroRegistro.'); } @@ -29,22 +30,19 @@ public function consultarUltimoTramite(ProcessoEletronicoDTO $parObjProcessoElet $objTramiteDTOPesquisa->setNumMaxRegistrosRetorno(1); $objTramiteDTOPesquisa->setOrdNumIdTramite(InfraDTO::$TIPO_ORDENACAO_DESC); $objTramiteDTOPesquisa->setStrStaTipoProtocolo( - array( - ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO, - ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_DOCUMENTO_AVULSO - ), + [ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO, ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_DOCUMENTO_AVULSO], InfraDTO::$OPER_IN ); - if(!is_null($parStrStaTipoTramite)){ + if(!is_null($parStrStaTipoTramite)) { $objTramiteDTOPesquisa->setStrStaTipoTramite($parStrStaTipoTramite); } - if($parObjProcessoEletronicoDTO->isSetDblIdProcedimento()){ + if($parObjProcessoEletronicoDTO->isSetDblIdProcedimento()) { $objTramiteDTOPesquisa->setNumIdProcedimento($parObjProcessoEletronicoDTO->getDblIdProcedimento()); } - if($parObjProcessoEletronicoDTO->isSetStrNumeroRegistro()){ + if($parObjProcessoEletronicoDTO->isSetStrNumeroRegistro()) { $objTramiteDTOPesquisa->setStrNumeroRegistro($parObjProcessoEletronicoDTO->getStrNumeroRegistro()); } diff --git a/src/bd/TramiteEmBlocoBD.php b/src/bd/TramiteEmBlocoBD.php old mode 100644 new mode 100755 index f3efb4442..c65ba04ff --- a/src/bd/TramiteEmBlocoBD.php +++ b/src/bd/TramiteEmBlocoBD.php @@ -5,9 +5,11 @@ /** * Classe gererica de persistncia com o banco de dados */ -class TramiteEmBlocoBD extends InfraBD { +class TramiteEmBlocoBD extends InfraBD +{ - public function __construct(InfraIBanco $objInfraIBanco) { + public function __construct(InfraIBanco $objInfraIBanco) + { parent::__construct($objInfraIBanco); } } \ No newline at end of file diff --git a/src/composer.json b/src/composer.json new file mode 100755 index 000000000..e69de29bb diff --git a/src/composer.phar b/src/composer.phar new file mode 100755 index 000000000..e69de29bb diff --git a/src/config/ConfiguracaoModPEN.php b/src/config/ConfiguracaoModPEN.php index c2b14ffaf..1528c197d 100755 --- a/src/config/ConfiguracaoModPEN.php +++ b/src/config/ConfiguracaoModPEN.php @@ -36,9 +36,9 @@ public function getArrConfiguracoes() "PEN" => array( // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", + // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/ + // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/rest/v3/ + "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/", // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema diff --git a/src/console.php b/src/console.php index bf2e03783..3b1c760da 100755 --- a/src/console.php +++ b/src/console.php @@ -2,10 +2,7 @@ set_time_limit(0); -set_include_path(implode(PATH_SEPARATOR, array( - realpath(__DIR__.'/../../../infra/infra_php'), - get_include_path(), -))); +set_include_path(implode(PATH_SEPARATOR, [realpath(__DIR__.'/../../../infra/infra_php'), get_include_path()])); require_once DIR_SEI_WEB.'/SEI.php'; require_once DIR_SEI_WEB.'/SEI.php'; @@ -29,7 +26,7 @@ if(empty($_SERVER['argv'])) { - print PenConsoleRN::format('Sucesso: ', 'blue', true); + print PenConsoleRN::format('Sucesso: ', 'blue', true); } print $strRetorno.PHP_EOL; } diff --git a/src/dto/ComponenteDigitalDTO.php b/src/dto/ComponenteDigitalDTO.php index 9e1ff42be..b1044791c 100755 --- a/src/dto/ComponenteDigitalDTO.php +++ b/src/dto/ComponenteDigitalDTO.php @@ -2,55 +2,58 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ComponenteDigitalDTO extends InfraDTO { +class ComponenteDigitalDTO extends InfraDTO +{ - public function getStrNomeTabela() { - return 'md_pen_componente_digital'; + public function getStrNomeTabela() + { + return 'md_pen_componente_digital'; } - public function montar() { - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimento', 'id_procedimento'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimentoAnexado', 'id_procedimento_anexado'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdDocumento', 'id_documento'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdAnexo', 'id_anexo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Nome', 'nome'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'HashConteudo', 'hash_conteudo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Protocolo', 'protocolo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'ProtocoloProcedimentoAnexado', 'protocolo_procedimento_anexado'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'AlgoritmoHash', 'algoritmo_hash'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'TipoConteudo', 'tipo_conteudo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'MimeType', 'mime_type'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'DadosComplementares', 'dados_complementares'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Tamanho', 'tamanho'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'CodigoEspecie', 'codigo_especie'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeEspecieProdutor', 'nome_especie_produtor'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Ordem', 'ordem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'OrdemDocumento', 'ordem_documento'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'OrdemDocumentoReferenciado', 'ordem_documento_referenciado'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'OrdemDocumentoAnexado', 'ordem_documento_anexado'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'SinEnviar', 'sin_enviar'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdAnexoImutavel', 'id_anexo_imutavel'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'TarjaLegada', 'tarja_legada'); - - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaTipoTramite', 'sta_tipo_tramite', 'md_pen_tramite'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'TicketEnvioComponentes', 'ticket_envio_componentes', 'md_pen_tramite'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ConteudoAssinaturaDocumento', 'conteudo_assinatura', 'documento_conteudo'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ProtocoloDocumentoFormatado', 'protocolo_formatado', 'protocolo'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaProtocolo', 'sta_protocolo', 'protocolo'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoProtocolo', 'sta_estado', 'protocolo'); - - - $this->configurarPK('NumeroRegistro', InfraDTO::$TIPO_PK_INFORMADO); - $this->configurarPK('IdProcedimento', InfraDTO::$TIPO_PK_INFORMADO); - $this->configurarPK('IdDocumento', InfraDTO::$TIPO_PK_INFORMADO); - $this->configurarPK('IdTramite', InfraDTO::$TIPO_PK_INFORMADO); - - $this->configurarFK('NumeroRegistro', 'md_pen_tramite', 'numero_registro', InfraDTO::$TIPO_FK_OBRIGATORIA); - $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OBRIGATORIA); - $this->configurarFK('IdDocumento', 'documento', 'id_documento', InfraDTO::$TIPO_FK_OBRIGATORIA); - $this->configurarFK('IdDocumento', 'protocolo', 'id_protocolo', InfraDTO::$TIPO_FK_OBRIGATORIA); - $this->configurarFK('IdDocumento', 'documento_conteudo', 'id_documento', InfraDTO::$TIPO_FK_OBRIGATORIA); + public function montar() + { + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimento', 'id_procedimento'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimentoAnexado', 'id_procedimento_anexado'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdDocumento', 'id_documento'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdAnexo', 'id_anexo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Nome', 'nome'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'HashConteudo', 'hash_conteudo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Protocolo', 'protocolo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'ProtocoloProcedimentoAnexado', 'protocolo_procedimento_anexado'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'AlgoritmoHash', 'algoritmo_hash'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'TipoConteudo', 'tipo_conteudo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'MimeType', 'mime_type'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'DadosComplementares', 'dados_complementares'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Tamanho', 'tamanho'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'CodigoEspecie', 'codigo_especie'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeEspecieProdutor', 'nome_especie_produtor'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Ordem', 'ordem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'OrdemDocumento', 'ordem_documento'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'OrdemDocumentoReferenciado', 'ordem_documento_referenciado'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'OrdemDocumentoAnexado', 'ordem_documento_anexado'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'SinEnviar', 'sin_enviar'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdAnexoImutavel', 'id_anexo_imutavel'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'TarjaLegada', 'tarja_legada'); + + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaTipoTramite', 'sta_tipo_tramite', 'md_pen_tramite'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_NUM, 'TicketEnvioComponentes', 'ticket_envio_componentes', 'md_pen_tramite'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ConteudoAssinaturaDocumento', 'conteudo_assinatura', 'documento_conteudo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'ProtocoloDocumentoFormatado', 'protocolo_formatado', 'protocolo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaProtocolo', 'sta_protocolo', 'protocolo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'StaEstadoProtocolo', 'sta_estado', 'protocolo'); + + + $this->configurarPK('NumeroRegistro', InfraDTO::$TIPO_PK_INFORMADO); + $this->configurarPK('IdProcedimento', InfraDTO::$TIPO_PK_INFORMADO); + $this->configurarPK('IdDocumento', InfraDTO::$TIPO_PK_INFORMADO); + $this->configurarPK('IdTramite', InfraDTO::$TIPO_PK_INFORMADO); + + $this->configurarFK('NumeroRegistro', 'md_pen_tramite', 'numero_registro', InfraDTO::$TIPO_FK_OBRIGATORIA); + $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OBRIGATORIA); + $this->configurarFK('IdDocumento', 'documento', 'id_documento', InfraDTO::$TIPO_FK_OBRIGATORIA); + $this->configurarFK('IdDocumento', 'protocolo', 'id_protocolo', InfraDTO::$TIPO_FK_OBRIGATORIA); + $this->configurarFK('IdDocumento', 'documento_conteudo', 'id_documento', InfraDTO::$TIPO_FK_OBRIGATORIA); } } diff --git a/src/dto/EspecieDocumentalDTO.php b/src/dto/EspecieDocumentalDTO.php index 945783042..1ecb01dda 100755 --- a/src/dto/EspecieDocumentalDTO.php +++ b/src/dto/EspecieDocumentalDTO.php @@ -4,16 +4,17 @@ /** * Classe de transporte de dados de Especie de Documento - * - * */ -class EspecieDocumentalDTO extends InfraDTO { +class EspecieDocumentalDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_especie_documental'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdEspecie', 'id_especie'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeEspecie', 'nome_especie'); diff --git a/src/dto/EstruturaDTO.php b/src/dto/EstruturaDTO.php index 1fd869bd8..27fd31528 100755 --- a/src/dto/EstruturaDTO.php +++ b/src/dto/EstruturaDTO.php @@ -2,20 +2,23 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class EstruturaDTO extends InfraDTO { +class EstruturaDTO extends InfraDTO +{ - public function getStrNomeTabela() { - return null; + public function getStrNomeTabela() + { + return null; } - public function montar() { - $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'NumeroDeIdentificacaoDaEstrutura'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Nome'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Sigla'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_BOL, 'Ativo'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_BOL, 'AptoParaReceberTramites'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'CodigoNoOrgaoEntidade'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'Hierarquia'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'TotalDeRegistros'); + public function montar() + { + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'NumeroDeIdentificacaoDaEstrutura'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Nome'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'Sigla'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_BOL, 'Ativo'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_BOL, 'AptoParaReceberTramites'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'CodigoNoOrgaoEntidade'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'Hierarquia'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'TotalDeRegistros'); } } diff --git a/src/dto/PenAtributoAndamentoDTO.php b/src/dto/PenAtributoAndamentoDTO.php index 78da22bb9..1c6f9ff52 100755 --- a/src/dto/PenAtributoAndamentoDTO.php +++ b/src/dto/PenAtributoAndamentoDTO.php @@ -5,9 +5,11 @@ */ require_once DIR_SEI_WEB.'/SEI.php'; -class PenAtributoAndamentoDTO extends AtributoAndamentoDTO { +class PenAtributoAndamentoDTO extends AtributoAndamentoDTO +{ - public function montar() { + public function montar() + { parent::montar(); diff --git a/src/dto/PenBlocoProcessoDTO.php b/src/dto/PenBlocoProcessoDTO.php old mode 100644 new mode 100755 index 14785702c..a3adf667e --- a/src/dto/PenBlocoProcessoDTO.php +++ b/src/dto/PenBlocoProcessoDTO.php @@ -4,8 +4,6 @@ /** * Data Transfer Object de parmetros do mdulo PEN - * - * */ class PenBlocoProcessoDTO extends InfraDTO { @@ -15,7 +13,8 @@ public function getStrNomeTabela() return 'md_pen_bloco_processo'; } - public function getStrNomeSequenciaNativa() { + public function getStrNomeSequenciaNativa() + { return 'md_pen_seq_bloco_processo'; } diff --git a/src/dto/PenHipoteseLegalDTO.php b/src/dto/PenHipoteseLegalDTO.php index 0af87abfe..ccedc0afa 100755 --- a/src/dto/PenHipoteseLegalDTO.php +++ b/src/dto/PenHipoteseLegalDTO.php @@ -3,13 +3,13 @@ require_once DIR_SEI_WEB.'/SEI.php'; /** * DTO de cadastro do Hipotese Legal no Barramento - * - * */ -class PenHipoteseLegalDTO extends InfraDTO { +class PenHipoteseLegalDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_hipotese_legal'; } @@ -18,7 +18,8 @@ public function getStrNomeSequenciaNativa() return 'md_pen_seq_hipotese_legal'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdHipoteseLegal', 'id_hipotese_legal'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Nome', 'nome'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Identificacao', 'identificacao'); diff --git a/src/dto/PenImportacaoTiposProcessoDTO.php b/src/dto/PenImportacaoTiposProcessoDTO.php old mode 100644 new mode 100755 index 6a2cca88b..cb37c4e4b --- a/src/dto/PenImportacaoTiposProcessoDTO.php +++ b/src/dto/PenImportacaoTiposProcessoDTO.php @@ -5,29 +5,33 @@ /** * Classe reaponsvel por manipulao */ -class PenImportacaoTiposProcessoDTO extends InfraDTO { +class PenImportacaoTiposProcessoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_map_tipo_processo'; } - public function getStrNomeSequenciaNativa() { - return 'md_pen_seq_orgao_externo'; + public function getStrNomeSequenciaNativa() + { + return 'md_pen_seq_orgao_externo'; } - public function montar() { + public function montar() + { - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'Id'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdMapOrgao', 'id_map_orgao'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoOrigem', 'id_tipo_processo_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoDestino', 'id_tipo_processo_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeTipoProcesso', 'nome_tipo_processo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Criacao', 'dth_criacao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'Id'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdMapOrgao', 'id_map_orgao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoOrigem', 'id_tipo_processo_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoDestino', 'id_tipo_processo_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeTipoProcesso', 'nome_tipo_processo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Criacao', 'dth_criacao'); - $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); - $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); } } \ No newline at end of file diff --git a/src/dto/PenMapTipoProcedimentoDTO.php b/src/dto/PenMapTipoProcedimentoDTO.php old mode 100644 new mode 100755 index 72c3fe54f..5b52470e5 --- a/src/dto/PenMapTipoProcedimentoDTO.php +++ b/src/dto/PenMapTipoProcedimentoDTO.php @@ -5,40 +5,44 @@ /** * Classe reaponsvel por manipulao */ -class PenMapTipoProcedimentoDTO extends InfraDTO { +class PenMapTipoProcedimentoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_map_tipo_processo'; } - public function getStrNomeSequenciaNativa() { - return 'md_pen_seq_map_tp_procedimento'; + public function getStrNomeSequenciaNativa() + { + return 'md_pen_seq_map_tp_procedimento'; } - public function montar() { + public function montar() + { - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'id'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'id'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdMapOrgao', 'id_map_orgao'); - $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdMapOrgao', 'id_map_orgao'); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoOrigem', 'id_tipo_processo_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoDestino', 'id_tipo_processo_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoOrigem', 'id_tipo_processo_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTipoProcessoDestino', 'id_tipo_processo_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeTipoProcesso', 'nome_tipo_processo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeTipoProcesso', 'nome_tipo_processo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_criacao'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_criacao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'OrgaoOrigem', 'str_orgao_origem', 'md_pen_orgao_externo'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'OrgaoDestino', 'str_orgao_destino', 'md_pen_orgao_externo'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeTipoProcedimento', 'nome', 'tipo_procedimento'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'OrgaoOrigem', 'str_orgao_origem', 'md_pen_orgao_externo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'OrgaoDestino', 'str_orgao_destino', 'md_pen_orgao_externo'); + $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, 'NomeTipoProcedimento', 'nome', 'tipo_procedimento'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); - $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); - $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); - $this->configurarFK('IdMapOrgao', 'md_pen_orgao_externo', 'id', InfraDTO::$TIPO_FK_OBRIGATORIA); - $this->configurarFK('IdTipoProcessoDestino', 'tipo_procedimento', 'id_tipo_procedimento', InfraDTO::$TIPO_FK_OPCIONAL); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); + $this->configurarFK('IdMapOrgao', 'md_pen_orgao_externo', 'id', InfraDTO::$TIPO_FK_OBRIGATORIA); + $this->configurarFK('IdTipoProcessoDestino', 'tipo_procedimento', 'id_tipo_procedimento', InfraDTO::$TIPO_FK_OPCIONAL); } } diff --git a/src/dto/PenOrgaoExternoDTO.php b/src/dto/PenOrgaoExternoDTO.php old mode 100644 new mode 100755 index 590a59bca..142d96493 --- a/src/dto/PenOrgaoExternoDTO.php +++ b/src/dto/PenOrgaoExternoDTO.php @@ -5,35 +5,39 @@ /** * Classe reaponsvel por manipulao */ -class PenOrgaoExternoDTO extends InfraDTO { +class PenOrgaoExternoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_orgao_externo'; } - public function getStrNomeSequenciaNativa() { - return 'md_pen_seq_orgao_externo'; + public function getStrNomeSequenciaNativa() + { + return 'md_pen_seq_orgao_externo'; } - public function montar() { + public function montar() + { - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'Id'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'Id'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdOrgaoOrigem', 'id_orgao_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'OrgaoOrigem', 'str_orgao_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstrutaOrganizacionalOrigem', 'id_estrutura_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'EstrutaOrganizacionalOrigem', 'str_estrutura_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdOrgaoOrigem', 'id_orgao_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'OrgaoOrigem', 'str_orgao_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstrutaOrganizacionalOrigem', 'id_estrutura_origem'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'EstrutaOrganizacionalOrigem', 'str_estrutura_origem'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdOrgaoDestino', 'id_orgao_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'OrgaoDestino', 'str_orgao_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdOrgaoDestino', 'id_orgao_destino'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'OrgaoDestino', 'str_orgao_destino'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_criacao'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Registro', 'dth_criacao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Ativo', 'sin_ativo'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); - $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); - $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); } } diff --git a/src/dto/PenParametroDTO.php b/src/dto/PenParametroDTO.php index b0117ec4d..175eddea7 100755 --- a/src/dto/PenParametroDTO.php +++ b/src/dto/PenParametroDTO.php @@ -4,17 +4,18 @@ /** * Data Transfer Object de parmtros do mdulo PEN - * - * */ -class PenParametroDTO extends InfraDTO { +class PenParametroDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_parametro'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Nome', 'nome'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Valor', 'valor'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Descricao', 'descricao'); diff --git a/src/dto/PenProtocoloDTO.php b/src/dto/PenProtocoloDTO.php index d31adf801..2387a3ed9 100755 --- a/src/dto/PenProtocoloDTO.php +++ b/src/dto/PenProtocoloDTO.php @@ -3,13 +3,16 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenProtocoloDTO extends InfraDTO { +class PenProtocoloDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_protocolo'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProtocolo', 'id_protocolo'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'SinObteveRecusa', 'sin_obteve_recusa'); diff --git a/src/dto/PenRelTipoDocMapEnviadoDTO.php b/src/dto/PenRelTipoDocMapEnviadoDTO.php index 1e2d9b68d..cb8dbb019 100755 --- a/src/dto/PenRelTipoDocMapEnviadoDTO.php +++ b/src/dto/PenRelTipoDocMapEnviadoDTO.php @@ -2,17 +2,21 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenRelTipoDocMapEnviadoDTO extends InfraDTO { +class PenRelTipoDocMapEnviadoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return "md_pen_rel_doc_map_enviado"; } - public function getStrNomeSequenciaNativa() { + public function getStrNomeSequenciaNativa() + { return 'md_pen_seq_rel_doc_map_enviado'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdMap', 'id_mapeamento'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'CodigoEspecie', 'codigo_especie'); diff --git a/src/dto/PenRelTipoDocMapRecebidoDTO.php b/src/dto/PenRelTipoDocMapRecebidoDTO.php index e2370cc9d..7ec6cbc56 100755 --- a/src/dto/PenRelTipoDocMapRecebidoDTO.php +++ b/src/dto/PenRelTipoDocMapRecebidoDTO.php @@ -2,17 +2,21 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenRelTipoDocMapRecebidoDTO extends InfraDTO { +class PenRelTipoDocMapRecebidoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_rel_doc_map_recebido'; } - public function getStrNomeSequenciaNativa() { + public function getStrNomeSequenciaNativa() + { return 'md_pen_seq_rel_doc_map_recebid'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdMap', 'id_mapeamento'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'CodigoEspecie', 'codigo_especie'); diff --git a/src/dto/PenRestricaoEnvioComponentesDigitaisDTO.php b/src/dto/PenRestricaoEnvioComponentesDigitaisDTO.php old mode 100644 new mode 100755 index 631a0c018..1f7b11545 --- a/src/dto/PenRestricaoEnvioComponentesDigitaisDTO.php +++ b/src/dto/PenRestricaoEnvioComponentesDigitaisDTO.php @@ -6,23 +6,23 @@ class PenRestricaoEnvioComponentesDigitaisDTO extends InfraDTO { public function getStrNomeTabela() - { - return 'md_pen_envio_comp_digitais'; + { + return 'md_pen_envio_comp_digitais'; } public function getStrNomeSequenciaNativa() - { - return 'md_pen_seq_envio_comp_digitais'; + { + return 'md_pen_seq_envio_comp_digitais'; } public function montar() - { - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'id_comp_digitais'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstrutura', 'id_estrutura'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'StrEstrutura', 'str_estrutura'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadePen', 'id_unidade_pen'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'StrUnidadePen', 'str_unidade_pen'); + { + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'Id', 'id_comp_digitais'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdEstrutura', 'id_estrutura'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'StrEstrutura', 'str_estrutura'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadePen', 'id_unidade_pen'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'StrUnidadePen', 'str_unidade_pen'); - $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); } } \ No newline at end of file diff --git a/src/dto/PenTipoProcedimentoDTO.php b/src/dto/PenTipoProcedimentoDTO.php index 589e53b43..073e8d95a 100755 --- a/src/dto/PenTipoProcedimentoDTO.php +++ b/src/dto/PenTipoProcedimentoDTO.php @@ -4,9 +4,11 @@ */ require_once DIR_SEI_WEB.'/SEI.php'; -class PenTipoProcedimentoDTO extends TipoProcedimentoDTO { +class PenTipoProcedimentoDTO extends TipoProcedimentoDTO +{ - public function montar() { + public function montar() + { parent::montar(); diff --git a/src/dto/PenTramiteProcessadoDTO.php b/src/dto/PenTramiteProcessadoDTO.php index 6d358ac86..295204cf0 100755 --- a/src/dto/PenTramiteProcessadoDTO.php +++ b/src/dto/PenTramiteProcessadoDTO.php @@ -6,13 +6,16 @@ * * */ -class PenTramiteProcessadoDTO extends InfraDTO { +class PenTramiteProcessadoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_tramite_processado'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdTramite', 'id_tramite'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Ultimo', 'dth_ultimo_processamento'); diff --git a/src/dto/PenUnidadeDTO.php b/src/dto/PenUnidadeDTO.php index 31d25fee4..a18a9b6dc 100755 --- a/src/dto/PenUnidadeDTO.php +++ b/src/dto/PenUnidadeDTO.php @@ -10,32 +10,34 @@ * Crio a classe com extendida de UnidadeDTO em funo dos mtodos de UnidadeRN, * que fora o hinting para UnidadeDTO, ento no gera erro usar PenUnidadeDTO * com o UnidadeBD e UnidadeRN - * * * @see http://php.net/manual/pt_BR/language.oop5.typehinting.php */ -class PenUnidadeDTO extends UnidadeDTO { +class PenUnidadeDTO extends UnidadeDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela(): string + { return 'md_pen_unidade'; } - public function montar() { + public function montar(): void + { - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRH', 'id_unidade_rh'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeUnidadeRH', 'nome_unidade_rh'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'SiglaUnidadeRH', 'sigla_unidade_rh'); - $this->configurarPK('IdUnidade', InfraDTO::$TIPO_PK_INFORMADO); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRH', 'id_unidade_rh'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeUnidadeRH', 'nome_unidade_rh'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'SiglaUnidadeRH', 'sigla_unidade_rh'); + $this->configurarPK('IdUnidade', InfraDTO::$TIPO_PK_INFORMADO); - $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'IdUnidadeMap'); - $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'DescricaoMap'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'IdUnidadeMap'); + $this->adicionarAtributo(InfraDTO::$PREFIXO_STR, 'DescricaoMap'); - // Infelizmente no funciona com parent::getArrAtributos(), pois o arrAtributos - // esta na InfraDTO e ela confunde em funo do extends, ento tenho que - // criar uma nova instncia - $objUnidadeDTO = new UnidadeDTO(); - $objUnidadeDTO->retTodos(); + // Infelizmente no funciona com parent::getArrAtributos(), pois o arrAtributos + // esta na InfraDTO e ela confunde em funo do extends, ento tenho que + // criar uma nova instncia + $objUnidadeDTO = new UnidadeDTO(); + $objUnidadeDTO->retTodos(); foreach($objUnidadeDTO->getArrAtributos() as $arrAtrib) { diff --git a/src/dto/PenUnidadeRestricaoDTO.php b/src/dto/PenUnidadeRestricaoDTO.php old mode 100644 new mode 100755 index 1fc8fe25b..5ee1cbac1 --- a/src/dto/PenUnidadeRestricaoDTO.php +++ b/src/dto/PenUnidadeRestricaoDTO.php @@ -10,34 +10,33 @@ * Crio a classe com extendida de UnidadeDTO em funo dos mtodos de UnidadeRN, * que fora o hinting para UnidadeDTO, ento no gera erro usar PenUnidadeDTO * com o UnidadeBD e UnidadeRN - * * * @see http://php.net/manual/pt_BR/language.oop5.typehinting.php */ class PenUnidadeRestricaoDTO extends UnidadeDTO { - public function getStrNomeTabela() - { - return 'md_pen_uni_restr'; + public function getStrNomeTabela(): string + { + return 'md_pen_uni_restr'; } - public function getStrNomeSequenciaNativa() - { - return 'md_pen_seq_uni_restr'; + public function getStrNomeSequenciaNativa(): string + { + return 'md_pen_seq_uni_restr'; } - public function montar() - { - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Id', 'id'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRH', 'id_unidade_rh'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRestricao', 'id_unidade_restricao'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeUnidadeRestricao', 'nome_unidade_restricao'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRHRestricao', 'id_unidade_rh_restricao'); - $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeUnidadeRHRestricao', 'nome_unidade_rh_restricao'); - $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); + public function montar(): void + { + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'Id', 'id'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidade', 'id_unidade'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRH', 'id_unidade_rh'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRestricao', 'id_unidade_restricao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeUnidadeRestricao', 'nome_unidade_restricao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdUnidadeRHRestricao', 'id_unidade_rh_restricao'); + $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NomeUnidadeRHRestricao', 'nome_unidade_rh_restricao'); + $this->configurarPK('Id', InfraDTO::$TIPO_PK_NATIVA); - $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); + $this->configurarFK('IdUnidade', 'unidade', 'id_unidade'); } } diff --git a/src/dto/ProcedimentoAndamentoDTO.php b/src/dto/ProcedimentoAndamentoDTO.php index 117249a3a..cf833d90f 100755 --- a/src/dto/ProcedimentoAndamentoDTO.php +++ b/src/dto/ProcedimentoAndamentoDTO.php @@ -4,20 +4,22 @@ /** * Persistncia de dados no banco de dados - * - * */ -class ProcedimentoAndamentoDTO extends InfraDTO { +class ProcedimentoAndamentoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_procedimento_andamento'; } - public function getStrNomeSequenciaNativa() { + public function getStrNomeSequenciaNativa() + { return 'md_pen_seq_procedimento_andam'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdAndamento', 'id_andamento'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimento', 'id_procedimento'); @@ -38,7 +40,8 @@ public function montar() { $this->configurarFK('IdTramite', 'md_pen_tramite', 'id_tramite', InfraDTO::$TIPO_FK_OPCIONAL); } - public static function criarAndamento($strMensagem = 'No informado', $strSituacao = 'N') { + public static function criarAndamento($strMensagem = 'No informado', $strSituacao = 'N') + { $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); $objProcedimentoAndamentoDTO->setStrSituacao($strSituacao); $objProcedimentoAndamentoDTO->setStrMensagem($strMensagem); diff --git a/src/dto/ProcessoEletronicoDTO.php b/src/dto/ProcessoEletronicoDTO.php index 3213b7bb0..a6c292e36 100755 --- a/src/dto/ProcessoEletronicoDTO.php +++ b/src/dto/ProcessoEletronicoDTO.php @@ -1,12 +1,15 @@ adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimento', 'id_procedimento'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimentoApensacao', 'id_procedimento_apensacao'); @@ -16,7 +19,8 @@ public function montar() { $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'ObjTramiteDTO'); $this->adicionarAtributo(InfraDTO::$PREFIXO_ARR, 'ObjRelProcessoEletronicoApensado'); - $this->adicionarAtributoTabelaRelacionada(InfraDTO::$PREFIXO_STR, + $this->adicionarAtributoTabelaRelacionada( + InfraDTO::$PREFIXO_STR, 'ProtocoloProcedimentoFormatado', 'protocolo_formatado', 'protocolo' diff --git a/src/dto/ProcessoExpedidoDTO.php b/src/dto/ProcessoExpedidoDTO.php index 308a935fd..2ca67a666 100755 --- a/src/dto/ProcessoExpedidoDTO.php +++ b/src/dto/ProcessoExpedidoDTO.php @@ -4,18 +4,22 @@ /** * */ -class ProcessoExpedidoDTO extends InfraDTO { +class ProcessoExpedidoDTO extends InfraDTO +{ - public function __construct($bolComposto = false) { + public function __construct() + { // Fora o JOIN com todas as tabelas parent::__construct(true); } - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'protocolo'; } - public function montar() { + public function montar() + { // Protocolo $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProtocolo', 'id_protocolo'); diff --git a/src/dto/ReceberTramiteRecusadoDTO.php b/src/dto/ReceberTramiteRecusadoDTO.php index f4ce5355b..0547a52fc 100755 --- a/src/dto/ReceberTramiteRecusadoDTO.php +++ b/src/dto/ReceberTramiteRecusadoDTO.php @@ -2,13 +2,16 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ReceberTramiteRecusadoDTO extends InfraDTO { +class ReceberTramiteRecusadoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return null; } - public function montar() { + public function montar() + { $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite'); $this->adicionarAtributo(InfraDTO::$PREFIXO_NUM, 'IdProtocolo', 'id_protocolo'); diff --git a/src/dto/ReciboTramiteEnviadoDTO.php b/src/dto/ReciboTramiteEnviadoDTO.php index 0225ed141..dbdd8a574 100755 --- a/src/dto/ReciboTramiteEnviadoDTO.php +++ b/src/dto/ReciboTramiteEnviadoDTO.php @@ -2,13 +2,16 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ReciboTramiteEnviadoDTO extends InfraDTO { +class ReciboTramiteEnviadoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return "md_pen_recibo_tramite_enviado"; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DTH, 'Recebimento', 'dth_recebimento'); diff --git a/src/dto/ReciboTramiteRecebidoDTO.php b/src/dto/ReciboTramiteRecebidoDTO.php index 1b9cc4ef8..7d82c6102 100755 --- a/src/dto/ReciboTramiteRecebidoDTO.php +++ b/src/dto/ReciboTramiteRecebidoDTO.php @@ -2,13 +2,16 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ReciboTramiteRecebidoDTO extends InfraDTO { +class ReciboTramiteRecebidoDTO extends InfraDTO +{ - public function getStrNomeTabela() { + public function getStrNomeTabela() + { return 'md_pen_recibo_tramite_recebido'; } - public function montar() { + public function montar() + { $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite'); diff --git a/src/dto/RelProcessoEletronicoApensadoDTO.php b/src/dto/RelProcessoEletronicoApensadoDTO.php index 1607cd4ae..bf98704f6 100755 --- a/src/dto/RelProcessoEletronicoApensadoDTO.php +++ b/src/dto/RelProcessoEletronicoApensadoDTO.php @@ -1,12 +1,15 @@ adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_DBL, 'IdProcedimentoApensado', 'id_procedimento_apensado'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'Protocolo', 'protocolo'); diff --git a/src/dto/TramiteDTO.php b/src/dto/TramiteDTO.php index 203084119..9c5bb0c4b 100755 --- a/src/dto/TramiteDTO.php +++ b/src/dto/TramiteDTO.php @@ -1,12 +1,15 @@ adicionarAtributoTabela(InfraDTO::$PREFIXO_STR, 'NumeroRegistro', 'numero_registro'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'IdTramite', 'id_tramite'); $this->adicionarAtributoTabela(InfraDTO::$PREFIXO_NUM, 'TicketEnvioComponentes', 'ticket_envio_componentes'); diff --git a/src/dto/TramiteEmBlocoDTO.php b/src/dto/TramiteEmBlocoDTO.php old mode 100644 new mode 100755 index 76622c4bb..e7ce749a1 --- a/src/dto/TramiteEmBlocoDTO.php +++ b/src/dto/TramiteEmBlocoDTO.php @@ -6,114 +6,114 @@ class TramiteEmBlocoDTO extends InfraDTO { public function getStrNomeTabela() - { - return 'md_pen_bloco'; + { + return 'md_pen_bloco'; } public function getStrNomeSequenciaNativa() - { - return 'md_pen_seq_bloco'; + { + return 'md_pen_seq_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->adicionarAtributoTabela( - InfraDTO::$PREFIXO_NUM, - 'Ordem', - 'ordem' - ); - - $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'); + { + + $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->adicionarAtributoTabela( + InfraDTO::$PREFIXO_NUM, + 'Ordem', + 'ordem' + ); + + $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'); } } diff --git a/src/imagens/consultar_recibo.png b/src/imagens/consultar_recibo.png old mode 100644 new mode 100755 diff --git a/src/imagens/em_processamento.png b/src/imagens/em_processamento.png old mode 100644 new mode 100755 diff --git a/src/imagens/falhou.png b/src/imagens/falhou.png old mode 100644 new mode 100755 diff --git a/src/imagens/icone-ENVIADO-tramita.png b/src/imagens/icone-ENVIADO-tramita.png old mode 100644 new mode 100755 diff --git a/src/imagens/icone-RECEBIDO-tramita.png b/src/imagens/icone-RECEBIDO-tramita.png old mode 100644 new mode 100755 diff --git a/src/imagens/icone-concluido.svg b/src/imagens/icone-concluido.svg old mode 100644 new mode 100755 diff --git a/src/imagens/icone-recusa.svg b/src/imagens/icone-recusa.svg old mode 100644 new mode 100755 diff --git a/src/imagens/importar.svg b/src/imagens/importar.svg old mode 100644 new mode 100755 diff --git a/src/imagens/nao_iniciado.png b/src/imagens/nao_iniciado.png old mode 100644 new mode 100755 diff --git a/src/imagens/pen_cancelar_envio.svg b/src/imagens/pen_cancelar_envio.svg old mode 100644 new mode 100755 diff --git a/src/imagens/pen_expedir_procedimento.png b/src/imagens/pen_expedir_procedimento.png old mode 100644 new mode 100755 diff --git a/src/imagens/pen_processo_bloco.svg b/src/imagens/pen_processo_bloco.svg old mode 100644 new mode 100755 diff --git a/src/imagens/pen_processo_bloco_excluir.svg b/src/imagens/pen_processo_bloco_excluir.svg old mode 100644 new mode 100755 diff --git a/src/imagens/share-nodes-solid.svg b/src/imagens/share-nodes-solid.svg old mode 100644 new mode 100755 diff --git a/src/int/ProcessoEletronicoINT.php b/src/int/ProcessoEletronicoINT.php index 62d58ceee..07825defd 100755 --- a/src/int/ProcessoEletronicoINT.php +++ b/src/int/ProcessoEletronicoINT.php @@ -2,7 +2,8 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ProcessoEletronicoINT extends InfraINT { +class ProcessoEletronicoINT extends InfraINT +{ //Situao de cada uma das etapas da envio externo de processos const NEE_EXPEDICAO_ETAPA_PROCEDIMENTO = 1; @@ -15,10 +16,11 @@ class ProcessoEletronicoINT extends InfraINT { /** * Concate as siglas das hierarquias no nome da unidade * - * @param array(EstruturaDTO) $estruturas + * @param array(EstruturaDTO) $estruturas * @return array */ - public static function gerarHierarquiaEstruturas($estruturas = array()){ + public static function gerarHierarquiaEstruturas($estruturas = []) + { if(empty($estruturas)) { return $estruturas; @@ -29,9 +31,9 @@ public static function gerarHierarquiaEstruturas($estruturas = array()){ $nome = $estrutura->getStrNome(); $nome .= ' - '; - $array = array($estrutura->getStrSigla()); + $array = [$estrutura->getStrSigla()]; foreach($estrutura->getArrHierarquia() as $sigla) { - if(trim($sigla) !== '' && !in_array($sigla, array('PR', 'PE', 'UNIAO'))) { + if(trim($sigla) !== '' && !in_array($sigla, ['PR', 'PE', 'UNIAO'])) { $array[] = $sigla; } } @@ -44,42 +46,41 @@ public static function gerarHierarquiaEstruturas($estruturas = array()){ return $estruturas; } - /** - * Concate as siglas das hierarquias no nome da unidade - * - * @param array(EstruturaDTO) $estruturas - * @return array - */ - public static function gerarHierarquiaEstruturasAutoCompletar($estruturas = array()) - { + /** + * Concate as siglas das hierarquias no nome da unidade + * + * @param array(EstruturaDTO) $estruturas + * @return array + */ + public static function gerarHierarquiaEstruturasAutoCompletar($estruturas = []) + { if (empty($estruturas['itens'])) { - return $estruturas; + return $estruturas; } foreach ($estruturas['itens'] as &$estrutura) { if ($estrutura->isSetArrHierarquia()) { - $nome = $estrutura->getStrNome(); - $nome .= ' - '; + $nome = $estrutura->getStrNome(); + $nome .= ' - '; - $array = array($estrutura->getStrSigla()); + $array = [$estrutura->getStrSigla()]; foreach ($estrutura->getArrHierarquia() as $sigla) { - if (trim($sigla) !== '' && !in_array($sigla, array( - 'PR', 'PE', 'UNIAO' - ))) { - $array[] = $sigla; + if (trim($sigla) !== '' && !in_array($sigla, ['PR', 'PE', 'UNIAO'])) { + $array[] = $sigla; } } - $nome .= implode(' / ', $array); - $estrutura->setStrNome($nome); + $nome .= implode(' / ', $array); + $estrutura->setStrNome($nome); } } - return $estruturas; + return $estruturas; } - public static function autoCompletarEstruturas($idRepositorioEstrutura, $strPalavrasPesquisa, $bolPermiteEnvio = false) { + public static function autoCompletarEstruturas($idRepositorioEstrutura, $strPalavrasPesquisa, $bolPermiteEnvio = false) + { $objConecaoWebServerRN = new ProcessoEletronicoRN(); @@ -93,44 +94,45 @@ public static function autoCompletarEstruturas($idRepositorioEstrutura, $strPala } public static function autoCompletarEstruturasAutoCompletar($idRepositorioEstrutura, $strPalavrasPesquisa, $bolPermiteEnvio = false) - { - - $objConecaoWebServerRN = new ProcessoEletronicoRN(); - $arrObjEstruturas = $objConecaoWebServerRN->listarEstruturasAutoCompletar( - $idRepositorioEstrutura, - $strPalavrasPesquisa, - null, - null, - null, - null, - null, - true, - $bolPermiteEnvio - ); - - return static::gerarHierarquiaEstruturasAutoCompletar($arrObjEstruturas); + { + + $objConecaoWebServerRN = new ProcessoEletronicoRN(); + $arrObjEstruturas = $objConecaoWebServerRN->listarEstruturasAutoCompletar( + $idRepositorioEstrutura, + $strPalavrasPesquisa, + null, + null, + null, + null, + null, + true, + $bolPermiteEnvio + ); + + return static::gerarHierarquiaEstruturasAutoCompletar($arrObjEstruturas); } - /** - * Auto completar repositorio de estruturas - * - * @param string $strPalavrasPesquisa - * @return array - */ + /** + * Auto completar repositorio de estruturas + * + * @param string $strPalavrasPesquisa + * @return array + */ public static function autoCompletarRepositorioEstruturas($strPalavrasPesquisa) - { - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $arrObjRepositorioDTO = (array) $objProcessoEletronicoRN->listarRepositoriosDeEstruturas(); - $arrayRepositorioEstruturas = array(); + { + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $arrObjRepositorioDTO = (array) $objProcessoEletronicoRN->listarRepositoriosDeEstruturas(); + $arrayRepositorioEstruturas = []; foreach ($arrObjRepositorioDTO as $value) { if (strpos(strtoupper($value->getStrNome()), strtoupper($strPalavrasPesquisa)) !== false) { $arrayRepositorioEstruturas[] = $value; } } - return $arrayRepositorioEstruturas; + return $arrayRepositorioEstruturas; } - public static function autoCompletarProcessosApensados($dblIdProcedimentoAtual, $numIdUnidadeAtual, $strPalavrasPesquisa) { + public static function autoCompletarProcessosApensados($dblIdProcedimentoAtual, $numIdUnidadeAtual, $strPalavrasPesquisa) + { $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); return $objExpedirProcedimentoRN->listarProcessosApensados($dblIdProcedimentoAtual, $numIdUnidadeAtual, $strPalavrasPesquisa); } @@ -142,23 +144,23 @@ public static function formatarHierarquia($ObjEstrutura) if(isset($ObjEstrutura->hierarquia)) { - $arrObjNivel = $ObjEstrutura->hierarquia->nivel; + $arrObjNivel = $ObjEstrutura->hierarquia; - $siglasUnidades = array(); + $siglasUnidades = []; $siglasUnidades[] = $ObjEstrutura->sigla; foreach($arrObjNivel as $key => $objNivel){ - $siglasUnidades[] = $objNivel->sigla ; + $siglasUnidades[] = $objNivel->sigla; } for($i = 1; $i <= 3; $i++){ - if(isset($siglasUnidades[count($siglasUnidades) - 1])){ + if(isset($siglasUnidades[count($siglasUnidades) - 1])) { unset($siglasUnidades[count($siglasUnidades) - 1]); } } foreach($siglasUnidades as $key => $nomeUnidade){ - if($key == (count($siglasUnidades) - 1)){ + if($key == (count($siglasUnidades) - 1)) { $nome .= $nomeUnidade." "; }else{ $nome .= $nomeUnidade." / "; @@ -168,60 +170,49 @@ public static function formatarHierarquia($ObjEstrutura) $objNivel=current($arrObjNivel); } - $dados=["nome"=>$nome,"objNivel"=>$objNivel]; - return $dados; + return ["nome"=>$nome,"objNivel"=>$objNivel]; } - public static function getCaminhoIcone($imagem, $relPath = null) { + public static function getCaminhoIcone($imagem, $relPath = null) + { $arrConfig = ConfiguracaoSEI::getInstance()->getValor('SEI', 'Modulos'); $strModulo = $arrConfig['PENIntegracao']; - if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0")){ + if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0")) { switch ($imagem) { case 'imagens/consultar.gif': return '/infra_css/svg/consultar.svg'; - break; case 'imagens/alterar.gif': return '/infra_css/svg/alterar.svg'; - break; case 'imagens/excluir.gif': return '/infra_css/svg/excluir.svg'; - break; case '/pen_expedir_procedimento.gif': return 'modulos/' . $strModulo . '/imagens/pen_expedir_procedimento.png'; - break; case '/pen_consultar_recibos.png': return 'modulos/' . $strModulo . '/imagens/consultar_recibo.png'; - break; case '/pen_cancelar_tramite.gif': return 'modulos/' . $strModulo . '/imagens/pen_cancelar_envio.svg'; - break; case '/infra_js/arvore/plus.gif': return '/infra_css/svg/mais.svg'; - break; case '/infra_js/arvore/minus.gif': return '/infra_css/svg/menos.svg'; - break; case 'imagens/anexos.gif': return '/infra_css/imagens/anexos.gif'; - break; case 'imagens/sei_erro.png': return 'modulos/' . $strModulo . '/imagens/sei_erro.png'; - break; default: - if($relPath==null){ + if($relPath==null) { return $imagem; } return $relPath . $imagem; - break; } } - if($relPath==null){ + if($relPath==null) { return $imagem; } @@ -235,77 +226,73 @@ public static function getCssCompatibilidadeSEI4($arquivo) switch ($arquivo) { case 'pen_procedimento_expedir.css': return 'pen_procedimento_expedir_sei4.css'; - break; default: return $arquivo; - break; } }elseif (InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1")) { switch ($arquivo) { case 'pen_procedimento_expedir.css': return 'pen_procedimento_expedir_sei402.css'; - break; default: return $arquivo; - break; } } return $arquivo; } - /** - * Monta a regra de restrio do tramite.gov.br - * - * @param string $idUnidade - * @param string $strCss - * @param string $strHtml - * @param string $strJsGlobal - * @param string $strJsicializar - * @return string - */ + /** + * Monta a regra de restrio do tramite.gov.br + * + * @param string $idUnidade + * @param string $strCss + * @param string $strHtml + * @param string $strJsGlobal + * @param string $strJsicializar + * @return string + */ public static function montarRestricaoTramitaGovBr($idUnidade, &$strCss, &$strHtml, &$strJsGlobal, &$strJsInicializar) - { + { try { - $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); - $objPenUnidadeRestricaoDTO->setNumIdUnidade($idUnidade); - $objPenUnidadeRestricaoDTO->retTodos(); - - $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); - $arrObjPenUnidadeRestricaoDTO = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); - $items = array(); - $arrayKeys = array(); - $arrObjPenUnidadeDTO = array(); - $itemsUnidades = array(); - $hdnRepoEstruturas = array(); - $strHtmlRepoEstruturasUnidades = ""; + $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); + $objPenUnidadeRestricaoDTO->setNumIdUnidade($idUnidade); + $objPenUnidadeRestricaoDTO->retTodos(); + + $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); + $arrObjPenUnidadeRestricaoDTO = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); + $items = []; + $arrayKeys = []; + $arrObjPenUnidadeDTO = []; + $itemsUnidades = []; + $hdnRepoEstruturas = []; + $strHtmlRepoEstruturasUnidades = ""; foreach ($arrObjPenUnidadeRestricaoDTO as $item) { if (!in_array($item->getNumIdUnidadeRestricao(), $arrayKeys)) { - //IdUnidadeRestricao NomeUnidadeRestricao - $arrayKeys[] = $item->getNumIdUnidadeRestricao(); - $items[] = array($item->getNumIdUnidadeRestricao(), $item->getStrNomeUnidadeRestricao()); - $hdnRepoEstruturas[$item->getNumIdUnidadeRestricao()] = array(); + //IdUnidadeRestricao NomeUnidadeRestricao + $arrayKeys[] = $item->getNumIdUnidadeRestricao(); + $items[] = [$item->getNumIdUnidadeRestricao(), $item->getStrNomeUnidadeRestricao()]; + $hdnRepoEstruturas[$item->getNumIdUnidadeRestricao()] = []; } if ($item->getNumIdUnidadeRHRestricao() != null) { - $arrObjPenUnidadeDTO[] = $item; - $itemsUnidades[] = array($item->getNumIdUnidadeRHRestricao(), $item->getStrNomeUnidadeRHRestricao()); - $hdnRepoEstruturas[$item->getNumIdUnidadeRestricao()][] = $item->getNumIdUnidadeRHRestricao() . '' . $item->getStrNomeUnidadeRHRestricao(); + $arrObjPenUnidadeDTO[] = $item; + $itemsUnidades[] = [$item->getNumIdUnidadeRHRestricao(), $item->getStrNomeUnidadeRHRestricao()]; + $hdnRepoEstruturas[$item->getNumIdUnidadeRestricao()][] = $item->getNumIdUnidadeRHRestricao() . '' . $item->getStrNomeUnidadeRHRestricao(); } } foreach ($hdnRepoEstruturas as $key => $unidades) { - $value = implode('', $unidades); - $strHtmlRepoEstruturasUnidades .= '' . "\n"; } - $arrRepoEstruturasSelecionados = PaginaSEI::getInstance()->gerarItensLupa($items); - $arrUnidadesSelecionadas = PaginaSEI::getInstance()->gerarItensLupa($itemsUnidades); - $strItensSelRepoEstruturasRestricao = parent::montarSelectArrInfraDTO(null, null, null, $arrObjPenUnidadeRestricaoDTO, 'IdUnidadeRestricao', 'NomeUnidadeRestricao'); - $strItensSelUnidadesRestricao = parent::montarSelectArrInfraDTO(null, null, null, $arrObjPenUnidadeDTO, 'IdUnidadeRHRestricao', 'NomeUnidadeRHRestricao'); + $arrRepoEstruturasSelecionados = PaginaSEI::getInstance()->gerarItensLupa($items); + $arrUnidadesSelecionadas = PaginaSEI::getInstance()->gerarItensLupa($itemsUnidades); + $strItensSelRepoEstruturasRestricao = parent::montarSelectArrInfraDTO(null, null, null, $arrObjPenUnidadeRestricaoDTO, 'IdUnidadeRestricao', 'NomeUnidadeRestricao'); + $strItensSelUnidadesRestricao = parent::montarSelectArrInfraDTO(null, null, null, $arrObjPenUnidadeDTO, 'IdUnidadeRHRestricao', 'NomeUnidadeRHRestricao'); - $strCss = '' + $strCss = '' . ' #lblRepoEstruturas {position:absolute;left:0%;top:0%;width:20%;}' . ' #txtRepoEstruturas {position:absolute;left:0%;top:13%;width:19.5%;}' . ' #selRepoEstruturas {position:absolute;left:0%;top:29%;width:20%;}' @@ -316,7 +303,7 @@ public static function montarRestricaoTramitaGovBr($idUnidade, &$strCss, &$strHt . ' #selUnidades {position:absolute;left:25%;top:29%;width:55%;}' . ' #divOpcoesUnidades {position:absolute;left:81%;top:29%;}'; - $strJsGlobal = '' + $strJsGlobal = '' . ' var objLupaRepositoriosEstruturas = null;' . ' var objAutoCompletarOrgao = null;' . ' var objLupaUnidades = null;' @@ -327,7 +314,7 @@ public static function montarRestricaoTramitaGovBr($idUnidade, &$strCss, &$strHt . ' objLupaUnidades.montar();' . ' };'; - $strJsInicializar = '' + $strJsInicializar = '' . ' objLupaRepositoriosEstruturas = new infraLupaSelect(\'selRepoEstruturas\',\'hdnRepoEstruturas\',\'' . /*SessaoSEI::getInstance()->assinarLink('controlador.php?acao=orgao_selecionar&tipo_selecao=2&id_object=objLupaRepositoriosEstruturas') .*/ '\');' . ' objLupaRepositoriosEstruturas.processarRemocao = function(itens){' . ' for(var i=0;i < itens.length;i++){' @@ -406,7 +393,7 @@ public static function montarRestricaoTramitaGovBr($idUnidade, &$strCss, &$strHt . ' };'; - $strHtml = '' + $strHtml = '' . '
' . ' ' . ' ' @@ -431,7 +418,7 @@ public static function montarRestricaoTramitaGovBr($idUnidade, &$strCss, &$strHt . ' ' . $strHtmlRepoEstruturasUnidades . '' . '
'; } catch (Exception $e) { - // no grava nada e no retorna objeto restrio mapeamento de unidades + // no grava nada e no retorna objeto restrio mapeamento de unidades } } } diff --git a/src/js/expedir_processo/expedir-processo.js b/src/js/expedir_processo/expedir-processo.js index ef9a6b99b..d82223fe3 100755 --- a/src/js/expedir_processo/expedir-processo.js +++ b/src/js/expedir_processo/expedir-processo.js @@ -1,6 +1,8 @@ -$(function () { +$( + function () { - $.ajax({ + $.ajax( + { url: PEN_BASE_PATH + '/util/url.php', type: 'post', dataType: 'json', @@ -9,9 +11,8 @@ $(function () { 'class': 'ExpedirProcedimentoRN', 'action': 'consultarUnidadesHierarquia', 'selRepositorioEstruturas': opener.document.frmExpedirProcedimento.selRepositorioEstruturas.value - }, - success: function (data) - { + }, + success: function (data) { var html ='

'; html += '
'; html += ''; @@ -41,97 +42,107 @@ $(function () { } - $('#recebeUnudadesHierarquias').html(html); + $('#recebeUnudadesHierarquias').html(html); - $('.selecionar-sub-categoria').click(function () { - var idSel = $(this).attr('id'); + $('.selecionar-sub-categoria').click( + function () { + var idSel = $(this).attr('id'); - $('.row-colplay-oculdo').css({'display': 'none'}); - $('#estruturaFilha' + idSel).css({'display': 'block'}); + $('.row-colplay-oculdo').css({'display': 'none'}); + $('#estruturaFilha' + idSel).css({'display': 'block'}); - }); + } + ); - $('#selecionarHirarquiaPai').on('keyup', function (event) { - event.preventDefault(); + $('#selecionarHirarquiaPai').on( + 'keyup', function (event) { + event.preventDefault(); - var encontrou = false; - var termo = $('#selecionarHirarquiaPai').val().toLowerCase(); + var encontrou = false; + var termo = $('#selecionarHirarquiaPai').val().toLowerCase(); - $('.selecionar-sub-categoria').each(function () { + $('.selecionar-sub-categoria').each( + function () { - if ($(this).text().toLowerCase().indexOf(termo) > -1) - { - encontrou = true; + if ($(this).text().toLowerCase().indexOf(termo) > -1) { + encontrou = true; - } + } - if (!encontrou) - { - $(this).hide(); - } - else - { - $(this).show(); - } - encontrou = false; - }); + if (!encontrou) { + $(this).hide(); + } + else + { + $(this).show(); + } + encontrou = false; + } + ); - }); + } + ); - $('#selecionarHirarquiaFilho').on('keyup', function (event) { - event.preventDefault(); + $('#selecionarHirarquiaFilho').on( + 'keyup', function (event) { + event.preventDefault(); - var encontrou = false; - var termo = $('#selecionarHirarquiaFilho').val().toLowerCase(); + var encontrou = false; + var termo = $('#selecionarHirarquiaFilho').val().toLowerCase(); - $('.selecionar-filter-hierarquia-filho').each(function () { + $('.selecionar-filter-hierarquia-filho').each( + function () { - if ($(this).text().toLowerCase().indexOf(termo) > -1) - { - encontrou = true; + if ($(this).text().toLowerCase().indexOf(termo) > -1) { + encontrou = true; - } + } - if (!encontrou) - { - $(this).hide(); - } - else - { - $(this).show(); - } - encontrou = false; - }); + if (!encontrou) { + $(this).hide(); + } + else + { + $(this).show(); + } + encontrou = false; + } + ); - }); + } + ); - $('.selecionar-link-unidade').click(function(event){ - event.preventDefault(); - var numeroDeIdentificacaoDaEstrutura = $(this).attr('id'); + $('.selecionar-link-unidade').click( + function (event) { + event.preventDefault(); + var numeroDeIdentificacaoDaEstrutura = $(this).attr('id'); - opener.document.frmExpedirProcedimento.txtUnidade.value= $(this).text(); - opener.document.frmExpedirProcedimento.hdnIdUnidade.value= numeroDeIdentificacaoDaEstrutura; + opener.document.frmExpedirProcedimento.txtUnidade.value= $(this).text(); + opener.document.frmExpedirProcedimento.hdnIdUnidade.value= numeroDeIdentificacaoDaEstrutura; - window.close(); - }); + window.close(); + } + ); } - }); + } + ); -}) \ No newline at end of file + } +) \ No newline at end of file diff --git a/src/js/expedir_processo/form-expedir-processo.js b/src/js/expedir_processo/form-expedir-processo.js index 22b40483e..a6769921d 100755 --- a/src/js/expedir_processo/form-expedir-processo.js +++ b/src/js/expedir_processo/form-expedir-processo.js @@ -1,39 +1,42 @@ -$(function () { +$( + function () { -var idProcedimento = $('#hdnIdProcedimento').val(); + var idProcedimento = $('#hdnIdProcedimento').val(); - $('#txtProcedimentoApensado').on('keyup', function (event) { - event.preventDefault(); + $('#txtProcedimentoApensado').on( + 'keyup', function (event) { + event.preventDefault(); - var encontrou = false; - var termo = $('#txtProcedimentoApensado').val().toLowerCase(); + var encontrou = false; + var termo = $('#txtProcedimentoApensado').val().toLowerCase(); -$('#selProcedimentosApensados').find('option').each(function(){ - if ($(this).text().toLowerCase().indexOf(termo) > -1) - { - encontrou = true; - } - - if (!encontrou) - { - $(this).hide(); - } - else - { - $(this).show(); - } - encontrou = false; -}) + $('#selProcedimentosApensados').find('option').each( + function () { + if ($(this).text().toLowerCase().indexOf(termo) > -1) { + encontrou = true; + } + + if (!encontrou) { + $(this).hide(); + } + else + { + $(this).show(); + } + encontrou = false; + } + ) - }); + } + ); @@ -47,6 +50,7 @@ $('#selProcedimentosApensados').find('option').each(function(){ -}) + } +) diff --git a/src/js/expedir_processo/pen_procedimento_expedir.js b/src/js/expedir_processo/pen_procedimento_expedir.js index 03368b5e9..4f9b522df 100755 --- a/src/js/expedir_processo/pen_procedimento_expedir.js +++ b/src/js/expedir_processo/pen_procedimento_expedir.js @@ -4,15 +4,16 @@ * * @param {string} linkProcedimento Link para visualização do procedimento */ -function sinalizarStatusConclusao(linkProcedimento,versao402=false){ +function sinalizarStatusConclusao(linkProcedimento,versao402=false) +{ let componente = document.querySelector('div.infraBarraProgresso'); - if(componente){ + if(componente) { componente.querySelector('.infraBarraProgressoMiolo').style.display = "none"; componente.querySelector(".infraBarraProgressoBorda").style.backgroundColor = "green"; let btnFechar = _criarBotaoFechar(linkProcedimento); btnFechar.classList.add('acaoBarraProgresso'); - if(!versao402){ + if(!versao402) { btnFechar.classList.remove('infraButton'); } document.getElementById('divInfraAreaDadosDinamica').appendChild(btnFechar); @@ -26,7 +27,8 @@ function sinalizarStatusConclusao(linkProcedimento,versao402=false){ * @param {string} linkCancelarEnvioAjax * @param {string} linkProcedimento Link para visualização do procedimento */ -function cancelarEnvioProcesso(idTramite, linkCancelarEnvioAjax, linkProcedimento){ +function cancelarEnvioProcesso(idTramite, linkCancelarEnvioAjax, linkProcedimento) +{ let btnCancelarEnvio = document.getElementById('btnCancelarEnvio'); btnCancelarEnvio.disabled = true; btnCancelarEnvio.value = 'Cancelando...'; @@ -34,15 +36,17 @@ function cancelarEnvioProcesso(idTramite, linkCancelarEnvioAjax, linkProcediment window.stop(); // Executa o procedimento de cancelamento do trâmite - $.ajax({ - type:"POST", - url: linkCancelarEnvioAjax, - dataType: "json", - data: "id_tramite="+idTramite, - success: function(result){ - window.top.location = linkProcedimento; + $.ajax( + { + type:"POST", + url: linkCancelarEnvioAjax, + dataType: "json", + data: "id_tramite="+idTramite, + success: function (result) { + window.top.location = linkProcedimento; + } } - }); + ); } /** @@ -50,9 +54,10 @@ function cancelarEnvioProcesso(idTramite, linkCancelarEnvioAjax, linkProcediment * * @param {string} linkProcedimento Link para visualização do procedimento */ -function adicionarBotaoFecharErro(linkProcedimento){ +function adicionarBotaoFecharErro(linkProcedimento) +{ let barraComandos = document.getElementById('divInfraBarraComandosSuperior') - if(barraComandos){ + if(barraComandos) { barraComandos.appendChild(_criarBotaoFechar(linkProcedimento)); } } @@ -64,18 +69,21 @@ function adicionarBotaoFecharErro(linkProcedimento){ * @param {string} linkCancelarEnvioAjax * @param {string} linkProcedimento Link para visualização do procedimento */ -function adicionarBotaoCancelarEnvio(idTramite, linkCancelarEnvioAjax, linkProcedimento){ +function adicionarBotaoCancelarEnvio(idTramite, linkCancelarEnvioAjax, linkProcedimento) +{ let btnCancelar = document.createElement('input'); btnCancelar.id = 'btnCancelarEnvio'; btnCancelar.type = 'button'; btnCancelar.value = 'Cancelar'; btnCancelar.classList.add('infraButton', 'acaoBarraProgresso'); - btnCancelar.addEventListener("click", function(event){ - cancelarEnvioProcesso(idTramite, linkCancelarEnvioAjax, linkProcedimento); - }); + btnCancelar.addEventListener( + "click", function (event) { + cancelarEnvioProcesso(idTramite, linkCancelarEnvioAjax, linkProcedimento); + } + ); let barraComandos = document.getElementById('divInfraAreaDadosDinamica') - if(barraComandos){ + if(barraComandos) { barraComandos.appendChild(btnCancelar); } } @@ -85,15 +93,18 @@ function adicionarBotaoCancelarEnvio(idTramite, linkCancelarEnvioAjax, linkProce * * @param {string} linkProcedimento Link para visualização do procedimento */ -function _criarBotaoFechar(linkProcedimento){ +function _criarBotaoFechar(linkProcedimento) +{ let btnFechar = document.createElement('input'); btnFechar.id = 'btnFechar'; btnFechar.type = 'button'; btnFechar.value = 'Fechar'; btnFechar.className = 'infraButton'; - btnFechar.addEventListener("click", function(event){ - window.top.location = linkProcedimento; - }); + btnFechar.addEventListener( + "click", function (event) { + window.top.location = linkProcedimento; + } + ); return btnFechar; } diff --git a/src/pen_expedir_bloco.php b/src/pen_expedir_bloco.php index 40d800187..58013dcb5 100755 --- a/src/pen_expedir_bloco.php +++ b/src/pen_expedir_bloco.php @@ -1,157 +1,157 @@ validarLink(); - $objSessaoSEI->validarPermissao($_GET['acao']); + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao($_GET['acao']); - $strParametros = ''; - $bolErrosValidacao = false; - $executarExpedicao = false; - $arrComandos = array(); + $strParametros = ''; + $bolErrosValidacao = false; + $executarExpedicao = false; + $arrComandos = []; - $strDiretorioModulo = PENIntegracao::getDiretorio(); + $strDiretorioModulo = PENIntegracao::getDiretorio(); - $arrProtocolosOrigem = array(); - $tramiteEmBloco = isset($_GET['tramite_em_bloco']) ? $_GET['tramite_em_bloco'] : null; + $arrProtocolosOrigem = []; + $tramiteEmBloco = $_GET['tramite_em_bloco'] ?? null; if ($tramiteEmBloco == 1) { - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); if (isset($_GET['id_tramita_em_bloco'])) { - $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_tramita_em_bloco']); + $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_tramita_em_bloco']); } else { - $arrIdRelBlocoProtocoloSelecionado = $objPaginaSEI->getArrStrItensSelecionados(); - $objPenBlocoProcessoDTO->setNumIdBloco($arrIdRelBlocoProtocoloSelecionado, InfraDTO::$OPER_IN); + $arrIdRelBlocoProtocoloSelecionado = $objPaginaSEI->getArrStrItensSelecionados(); + $objPenBlocoProcessoDTO->setNumIdBloco($arrIdRelBlocoProtocoloSelecionado, InfraDTO::$OPER_IN); } - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); - $idTramiteEmBloco = $arrPenBlocoProcesso[0]->getNumIdBloco(); - $strParametros .= '&id_bloco=' . $idTramiteEmBloco; - foreach ($arrPenBlocoProcesso as $i => $PenBlocoProcesso) { - $arrProtocolosOrigem[] = $PenBlocoProcesso->getDblIdProtocolo(); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + $idTramiteEmBloco = $arrPenBlocoProcesso[0]->getNumIdBloco(); + $strParametros .= '&id_bloco=' . $idTramiteEmBloco; + foreach ($arrPenBlocoProcesso as $PenBlocoProcesso) { + $arrProtocolosOrigem[] = $PenBlocoProcesso->getDblIdProtocolo(); } } else { - $idTramiteEmBloco = null; - $arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), $objPaginaSEI->getArrStrItensSelecionados('Detalhado')); + $idTramiteEmBloco = null; + $arrProtocolosOrigem = array_merge($objPaginaSEI->getArrStrItensSelecionados('Gerados'), $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), $objPaginaSEI->getArrStrItensSelecionados('Detalhado')); } if (count($arrProtocolosOrigem) == 0) { - $arrProtocolosOrigem = explode(',', $_POST['hdnIdProcedimento']); + $arrProtocolosOrigem = explode(',', $_POST['hdnIdProcedimento']); } if (count($arrProtocolosOrigem) == 0) { - throw new InfraException('Processo no informado.'); + throw new InfraException('Processo no informado.'); } - $strItensSelProcedimentos = ProcedimentoINT::conjuntoCompletoFormatadoRI0903($arrProtocolosOrigem); + $strItensSelProcedimentos = ProcedimentoINT::conjuntoCompletoFormatadoRI0903($arrProtocolosOrigem); if (isset($_GET['arvore'])) { - $objPaginaSEI->setBolArvore($_GET['arvore']); - $strParametros .= '&arvore=' . $_GET['arvore']; + $objPaginaSEI->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore=' . $_GET['arvore']; } if (isset($_GET['executar'])) { - $executarExpedicao = filter_var($_GET['executar'], FILTER_VALIDATE_BOOLEAN); + $executarExpedicao = filter_var($_GET['executar'], FILTER_VALIDATE_BOOLEAN); } - $strLinkValidacao = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $_GET['acao'] . '&acao_origem=' . $_GET['acao'] . $strParametros)); - $strLinkProcedimento = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $objPaginaSEI->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'] . '&acao_destino=' . $_GET['acao'] . $strParametros)); + $strLinkValidacao = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $_GET['acao'] . '&acao_origem=' . $_GET['acao'] . $strParametros)); + $strLinkProcedimento = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink('controlador.php?acao=' . $objPaginaSEI->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'] . '&acao_destino=' . $_GET['acao'] . $strParametros)); switch ($_GET['acao']) { case 'pen_expedir_bloco': - $strTitulo = $tramiteEmBloco == 1 ? 'Envio Externo de Processos do Bloco de Trmite' : 'Envio Externo de Processo em Lote'; - $arrComandos[] = ''; - $arrComandos[] = ''; + $strTitulo = $tramiteEmBloco == 1 ? 'Envio Externo de Processos do Bloco de Trmite' : 'Envio Externo de Processo em Lote'; + $arrComandos[] = ''; + $arrComandos[] = ''; - //Obter dados do repositrio em que o SEI est registrado (Repositrio de Origem) - $objPenParametroRN = new PenParametroRN(); - $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); + //Obter dados do repositrio em que o SEI est registrado (Repositrio de Origem) + $objPenParametroRN = new PenParametroRN(); + $numIdRepositorioOrigem = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); - //Preparao dos dados para montagem da tela de expedio de processos - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); + //Preparao dos dados para montagem da tela de expedio de processos + $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); try { - $objUnidadeDTO = new PenUnidadeDTO(); - $objUnidadeDTO->retNumIdUnidadeRH(); - $objUnidadeDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->retNumIdUnidadeRH(); + $objUnidadeDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objUnidadeRN = new UnidadeRN(); - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); - $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); - $objPenUnidadeRestricaoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($objUnidadeDTO->getNumIdUnidadeRH()); - $objPenUnidadeRestricaoDTO->retNumIdUnidadeRestricao(); - $objPenUnidadeRestricaoDTO->retStrNomeUnidadeRestricao(); + $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); + $objPenUnidadeRestricaoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($objUnidadeDTO->getNumIdUnidadeRH()); + $objPenUnidadeRestricaoDTO->retNumIdUnidadeRestricao(); + $objPenUnidadeRestricaoDTO->retStrNomeUnidadeRestricao(); - $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); - $arrIdUnidadeRestricao = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); + $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); + $arrIdUnidadeRestricao = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); - //Preparao dos dados para montagem da tela de expedio de processos + //Preparao dos dados para montagem da tela de expedio de processos if ($arrIdUnidadeRestricao != null) { - $repositorios = array(); + $repositorios = []; foreach ($arrIdUnidadeRestricao as $value) { $repositorios[$value->getNumIdUnidadeRestricao()] = $value->getStrNomeUnidadeRestricao(); } } else { - $repositorios = $objExpedirProcedimentoRN->listarRepositoriosDeEstruturas(); + $repositorios = $objExpedirProcedimentoRN->listarRepositoriosDeEstruturas(); } } catch (Exception $e) { - $repositorios = $objExpedirProcedimentoRN->listarRepositoriosDeEstruturas(); + $repositorios = $objExpedirProcedimentoRN->listarRepositoriosDeEstruturas(); } - $idRepositorioSelecionado = (isset($numIdRepositorio)) ? $numIdRepositorio : ''; - $strItensSelRepositorioEstruturas = InfraINT::montarSelectArray('', 'Selecione', $idRepositorioSelecionado, $repositorios); + $idRepositorioSelecionado = $numIdRepositorio ?? ''; + $strItensSelRepositorioEstruturas = InfraINT::montarSelectArray('', 'Selecione', $idRepositorioSelecionado, $repositorios); - $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento'); - $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas&idRepositorioEstrutura=1'); + $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento'); + $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas&idRepositorioEstrutura=1'); - $objUnidadeDTO = new PenUnidadeDTO(); - $objUnidadeDTO->retNumIdUnidadeRH(); - $objUnidadeDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->retNumIdUnidadeRH(); + $objUnidadeDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objUnidadeRN = new UnidadeRN(); - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); if (!$objUnidadeDTO) { - throw new InfraException("A unidade atual no foi mapeada."); + throw new InfraException("A unidade atual no foi mapeada."); } - $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH(); - $numIdRepositorio = $_POST['selRepositorioEstruturas']; - $strRepositorio = (array_key_exists($numIdRepositorio, $repositorios) ? $repositorios[$numIdRepositorio] : ''); - $numIdUnidadeDestino = $_POST['hdnIdUnidade']; - $strNomeUnidadeDestino = $_POST['txtUnidade']; - $numIdUsuario = $objSessaoSEI->getNumIdUsuario(); + $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH(); + $numIdRepositorio = $_POST['selRepositorioEstruturas']; + $strRepositorio = (array_key_exists($numIdRepositorio, $repositorios) ? $repositorios[$numIdRepositorio] : ''); + $numIdUnidadeDestino = $_POST['hdnIdUnidade']; + $strNomeUnidadeDestino = $_POST['txtUnidade']; + $numIdUsuario = $objSessaoSEI->getNumIdUsuario(); if (isset($_POST['sbmExpedir'])) { - $numVersao = $objPaginaSEI->getNumVersao(); - echo "\n"; - echo ""; + $numVersao = $objPaginaSEI->getNumVersao(); + echo "\n"; + echo ""; - $strTituloPagina = "Cadastro de processos em Bloco"; - $objPaginaSEI->prepararBarraProgresso($strTitulo, $strTituloPagina); + $strTituloPagina = "Cadastro de processos em Bloco"; + $objPaginaSEI->prepararBarraProgresso($strTitulo, $strTituloPagina); try { - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdBloco(); - $objPenBlocoProcessoDTO->retDthRegistro(); - $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_bloco']); - - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); - $arrProcedimentos = array(); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO->retDthRegistro(); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_bloco']); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + $arrProcedimentos = []; foreach ($arrPenBlocoProcesso as $objDTO) { $objDTO->setNumIdRepositorioOrigem($numIdRepositorioOrigem); $objDTO->setNumIdUnidadeOrigem($numIdUnidadeOrigem); @@ -172,33 +172,33 @@ $arrProcedimentos[] = $objDTO->getDblIdProtocolo(); } - $arrPenBlocoProcesso[0]->setArrListaProcedimento($arrProcedimentos); - $objPenExpedirBlocoRN = new PenExpedirBlocoRN(); - $ret = $objPenExpedirBlocoRN->cadastrarBloco($arrPenBlocoProcesso[0]); + $arrPenBlocoProcesso[0]->setArrListaProcedimento($arrProcedimentos); + $objPenExpedirBlocoRN = new PenExpedirBlocoRN(); + $ret = $objPenExpedirBlocoRN->cadastrarBloco($arrPenBlocoProcesso[0]); - $bolBotaoFecharCss = InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1"); + $bolBotaoFecharCss = InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1"); - // Atualiza estado do bloco em tramite para em processamento + // 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)); + $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); + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($_POST['hdIdTramiteEmBloco']); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_DISPONIBILIZADO); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); } - // Muda situao da barra de progresso para Concludo - echo " "; + // Muda situao da barra de progresso para Concludo + echo " "; } catch (\Exception $e) { - $objPaginaSEI->processarExcecao($e); - echo " "; + $objPaginaSEI->processarExcecao($e); + echo " "; } - $objPaginaSEI->finalizarBarraProgresso(null, false); + $objPaginaSEI->finalizarBarraProgresso(null, false); } break; @@ -206,7 +206,7 @@ throw new InfraException("Ao '" . $_GET['acao'] . "' no reconhecida."); } } catch (Exception $e) { - throw new InfraException("Erro processando requisio de envio externo de processo", $e); + throw new InfraException("Erro processando requisio de envio externo de processo", $e); } $objPaginaSEI->montarDocType(); @@ -255,9 +255,9 @@ function inicializar() { - objLupaUnidadesAdministrativas = new infraLupaSelect('selRepositorioEstruturas', 'hdnUnidadesAdministrativas', ''); + objLupaUnidadesAdministrativas = new infraLupaSelect('selRepositorioEstruturas', 'hdnUnidadesAdministrativas', ''); - objAutoCompletarEstrutura = new infraAjaxAutoCompletar('hdnIdUnidade', 'txtUnidade', '', "Nenhuma unidade foi encontrada"); + objAutoCompletarEstrutura = new infraAjaxAutoCompletar('hdnIdUnidade', 'txtUnidade', '', "Nenhuma unidade foi encontrada"); objAutoCompletarEstrutura.bolExecucaoAutomatica = false; objAutoCompletarEstrutura.mostrarAviso = true; objAutoCompletarEstrutura.limparCampo = false; @@ -405,7 +405,7 @@ function tratarResultadoValidacao(resp, textStatus, jqXHR) { alert(strRespMensagem); return false; } - var strAction = ''; + var strAction = ''; abrirBarraProgresso(document.forms['frmLote'], strAction, 600, 200); } @@ -443,42 +443,42 @@ function enviarForm(event) { $objPaginaSEI->fecharHead(); $objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); ?> - + montarBarraComandosSuperior($arrComandos); + $objPaginaSEI->montarBarraComandosSuperior($arrComandos); ?>
- +
- +
- +
- +
- - + + - + validarLink(); - $objSessaoSEI->validarPermissao($_GET['acao']); + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao($_GET['acao']); - $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); + $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); - $id = null; + $id = null; if (array_key_exists('Id', $_GET) && !empty($_GET['Id'])) { - $id = $_GET['Id']; - $strParametros .= "&Id=" . $id; + $id = $_GET['Id']; + $strParametros .= "&Id=" . $id; } - $strLinkValidacao = $objPaginaSEI->formatarXHTML($objSessaoSEI->assinarLink( - 'controlador.php?acao=pen_map_envio_parcial_salvar&acao_=' - . $_GET['acao'] - . $strParametros - )); + $strLinkValidacao = $objPaginaSEI->formatarXHTML( + $objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_map_envio_parcial_salvar&acao_=' + . $_GET['acao'] + . $strParametros + ) + ); - $disabilitarVisualizar = ""; + $disabilitarVisualizar = ""; switch ($_GET['acao']) { case 'pen_map_envio_parcial_salvar': - $acao = !empty($id) ? + $acao = !empty($id) ? 'pen_map_envio_parcial_atualizar' : 'pen_map_envio_parcial_cadastrar'; if (empty($_POST['selRepositorioEstruturas']) || empty($_POST['txtRepositorioEstruturas']) || $_POST['txtRepositorioEstruturas'] == "0") { - $objPaginaSEI->adicionarMensagem('O Repositrio de Estruturas Organizacionais no foi selecionado', InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=' . $acao . '&acao_=' . $_GET['acao_'])); - exit(0); + $objPaginaSEI->adicionarMensagem('O Repositrio de Estruturas Organizacionais no foi selecionado', InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=' . $acao . '&acao_=' . $_GET['acao_'])); + exit(0); } if (empty($_POST['hdnIdUnidade']) || empty($_POST['txtUnidade']) || $_POST['txtUnidade'] == "0") { - $objPaginaSEI->adicionarMensagem('O rgao no foi selecionado.', InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=' . $acao . '&acao_=' . $_GET['acao_'])); - exit(0); + $objPaginaSEI->adicionarMensagem('O rgao no foi selecionado.', InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=' . $acao . '&acao_=' . $_GET['acao_'])); + exit(0); } - $numIdUnidadePen = $_POST['hdnIdUnidade']; - $strUnidadePen = $_POST['txtUnidade']; - $numIdRepositorio = $_POST['selRepositorioEstruturas']; - $txtRepositorioEstruturas = $_POST['txtRepositorioEstruturas']; + $numIdUnidadePen = $_POST['hdnIdUnidade']; + $strUnidadePen = $_POST['txtUnidade']; + $numIdRepositorio = $_POST['selRepositorioEstruturas']; + $txtRepositorioEstruturas = $_POST['txtRepositorioEstruturas']; - $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); - $objDTO->setNumIdEstrutura($numIdRepositorio); - $objDTO->setNumIdUnidadePen($numIdUnidadePen); + $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objDTO->setNumIdEstrutura($numIdRepositorio); + $objDTO->setNumIdUnidadePen($numIdUnidadePen); if (!empty($id)) { - $objDTO->setDblId(array($id), InfraDTO::$OPER_NOT_IN); + $objDTO->setDblId([$id], InfraDTO::$OPER_NOT_IN); } - $objDTO->setNumMaxRegistrosRetorno(1); + $objDTO->setNumMaxRegistrosRetorno(1); - $objDTO = $objPenRestricaoEnvioComponentesDigitaisRN->contar($objDTO); + $objDTO = $objPenRestricaoEnvioComponentesDigitaisRN->contar($objDTO); if ($objDTO > 0) { - $objPaginaSEI->adicionarMensagem( - TITULO_PAGINA . ' j existente.', - InfraPagina::$TIPO_MSG_ERRO - ); - header('Location: ' . $objSessaoSEI->assinarLink( - 'controlador.php?acao=pen_map_envio_parcial_cadastrar&acao_=' . $_GET['acao_'] - )); - exit(0); + $objPaginaSEI->adicionarMensagem( + TITULO_PAGINA . ' j existente.', + InfraPagina::$TIPO_MSG_ERRO + ); + header( + 'Location: ' . $objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_map_envio_parcial_cadastrar&acao_=' . $_GET['acao_'] + ) + ); + exit(0); } - $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); - $objDTO->setNumIdEstrutura($numIdRepositorio); - $objDTO->setStrStrEstrutura($txtRepositorioEstruturas); - $objDTO->setNumIdUnidadePen($numIdUnidadePen); - $objDTO->setStrStrUnidadePen($strUnidadePen); + $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objDTO->setNumIdEstrutura($numIdRepositorio); + $objDTO->setStrStrEstrutura($txtRepositorioEstruturas); + $objDTO->setNumIdUnidadePen($numIdUnidadePen); + $objDTO->setStrStrUnidadePen($strUnidadePen); - $messagem = TITULO_PAGINA . " cadastrado com sucesso."; + $messagem = TITULO_PAGINA . " cadastrado com sucesso."; if (!empty($_GET['Id'])) { - $objDTO->setDblId($id); - $objPenRestricaoEnvioComponentesDigitaisRN->alterar($objDTO); - $messagem = TITULO_PAGINA . " atualizado com sucesso."; + $objDTO->setDblId($id); + $objPenRestricaoEnvioComponentesDigitaisRN->alterar($objDTO); + $messagem = TITULO_PAGINA . " atualizado com sucesso."; } else { if ($objPenRestricaoEnvioComponentesDigitaisRN->contar($objDTO) > 0) { - $objPaginaSEI->adicionarMensagem( 'J existe um registro cadastrado para a estrutura selecionada.', InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=' . $acao . '&acao_=' . $_GET['acao_'])); - exit(0); + $objPaginaSEI->adicionarMensagem('J existe um registro cadastrado para a estrutura selecionada.', InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . $objSessaoSEI->assinarLink('controlador.php?acao=' . $acao . '&acao_=' . $_GET['acao_'])); + exit(0); } - $objPenRestricaoEnvioComponentesDigitaisRN->cadastrar($objDTO); + $objPenRestricaoEnvioComponentesDigitaisRN->cadastrar($objDTO); } - $objPaginaSEI->adicionarMensagem($messagem, 5); - header('Location: ' . $objSessaoSEI->assinarLink( - 'controlador.php?acao=pen_map_envio_parcial_listar&acao_=' . $_GET['acao_'] - )); + $objPaginaSEI->adicionarMensagem($messagem, 5); + header( + 'Location: ' . $objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_map_envio_parcial_listar&acao_=' . $_GET['acao_'] + ) + ); exit(0); - break; case 'pen_map_envio_parcial_visualizar': case 'pen_map_envio_parcial_atualizar': case 'pen_map_envio_parcial_cadastrar': if (array_key_exists('Id', $_GET) && !empty($_GET['Id'])) { - $nomeTitle = 'Editar'; + $nomeTitle = 'Editar'; if ($_GET['acao'] == 'pen_map_envio_parcial_visualizar') { - $nomeTitle = 'Visualizar'; + $nomeTitle = 'Visualizar'; } - $strTitulo = $nomeTitle . ' Mapeamento de Envio Parcial'; + $strTitulo = $nomeTitle . ' Mapeamento de Envio Parcial'; } else { - $strTitulo = 'Novo Mapeamento de Envio Parcial'; + $strTitulo = 'Novo Mapeamento de Envio Parcial'; } - //Monta os botes do topo - if ( - $_GET['acao'] != 'pen_map_envio_parcial_visualizar' - && $objSessaoSEI->verificarPermissao('pen_map_envio_parcial_cadastrar') - && $objSessaoSEI->verificarPermissao('pen_map_envio_parcial_atualizar') - ) { - $arrComandos[] = ''; - $arrComandos[] = ''; + $arrComandos[] = ''; } else { - $disabilitarVisualizar = " disabled='disabled' "; - $arrComandos[] = ''; + $disabilitarVisualizar = " disabled='disabled' "; + $arrComandos[] = ''; } - //Preparao dos dados para montagem da tela de expedio de processos - $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); - $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); + //Preparao dos dados para montagem da tela de expedio de processos + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); if (array_key_exists('Id', $_GET) && !empty($_GET['Id'])) { - $objPenRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); - $objPenRestricaoEnvioComponentesDigitaisDTO->retDblId(); - $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdEstrutura(); - $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrEstrutura(); - $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUnidadePen(); - $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrUnidadePen(); - $objPenRestricaoEnvioComponentesDigitaisDTO->setDblId($_GET['Id']); - - $objPenRestricaoEnvioComponentesDigitaisDTO = + $objPenRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retDblId(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdEstrutura(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrEstrutura(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retNumIdUnidadePen(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retStrStrUnidadePen(); + $objPenRestricaoEnvioComponentesDigitaisDTO->setDblId($_GET['Id']); + + $objPenRestricaoEnvioComponentesDigitaisDTO = $objPenRestricaoEnvioComponentesDigitaisRN->consultar($objPenRestricaoEnvioComponentesDigitaisDTO); if (!is_null($objPenRestricaoEnvioComponentesDigitaisDTO)) { - $numIdRepositorio = $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdEstrutura(); - $hdnIdUnidade = $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadePen(); - $strNomeUnidade = $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadePen(); + $numIdRepositorio = $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdEstrutura(); + $hdnIdUnidade = $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadePen(); + $strNomeUnidade = $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadePen(); } } - $idRepositorioSelecionado = (isset($numIdRepositorio)) ? $numIdRepositorio : ''; - $strItensSelRepositorioEstruturas = InfraINT::montarSelectArray( - '', - 'Selecione', - $idRepositorioSelecionado, - $repositorios - ); - - $strLinkAjaxProcedimentoApensado = $objSessaoSEI->assinarLink( - 'controlador_ajax.php?acao_ajax=pen_apensados_auto_completar_expedir_procedimento' - ); - $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink( - 'controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento' - . '&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas&idRepositorioEstrutura=1' - ); + $idRepositorioSelecionado = $numIdRepositorio ?? ''; + $strItensSelRepositorioEstruturas = InfraINT::montarSelectArray( + '', + 'Selecione', + $idRepositorioSelecionado, + $repositorios + ); + + $strLinkAjaxProcedimentoApensado = $objSessaoSEI->assinarLink( + 'controlador_ajax.php?acao_ajax=pen_apensados_auto_completar_expedir_procedimento' + ); + $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink( + 'controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento' + . '&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas&idRepositorioEstrutura=1' + ); break; default: throw new InfraException("Ao '" . $_GET['acao'] . "' no reconhecida."); } - $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento&acao=' . $_GET['acao']); + $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento&acao=' . $_GET['acao']); } catch (Exception $e) { - $objPaginaSEI->adicionarMensagem( - 'Falha no cadastro do relacionamento. Consulte o log do SEI para mais informaes.', - InfraPagina::$TIPO_MSG_ERRO - ); - throw new InfraException("Erro processando requisio de envio externo de processo", $e); + $objPaginaSEI->adicionarMensagem( + 'Falha no cadastro do relacionamento. Consulte o log do SEI para mais informaes.', + InfraPagina::$TIPO_MSG_ERRO + ); + throw new InfraException("Erro processando requisio de envio externo de processo", $e); } $objPaginaSEI->montarDocType(); @@ -331,11 +339,11 @@ function inicializar() { objLupaUnidadesAdministrativas = new infraLupaSelect( 'selRepositorioEstruturas', 'hdnUnidadesAdministrativas', - '' + '' ); objAutoCompletarEstrutura = new infraAjaxAutoCompletar( - 'hdnIdUnidade', 'txtUnidade', '', "Nenhuma unidade foi encontrada" + 'hdnIdUnidade', 'txtUnidade', '', "Nenhuma unidade foi encontrada" ); objAutoCompletarEstrutura.bolExecucaoAutomatica = false; objAutoCompletarEstrutura.mostrarAviso = true; @@ -383,10 +391,10 @@ function iniciarRepositorio() { var txtUnidadeEnabled = selRepositorioEstruturas.val() > 0; txtUnidade.prop('disabled', !txtUnidadeEnabled); - + $('#hdnIdUnidade').val(''); txtUnidade.val(''); - + if (!txtUnidadeEnabled) { txtUnidade.addClass('infraReadOnly'); @@ -463,32 +471,32 @@ function redimencionarBarraProgresso() { $objPaginaSEI->fecharHead(); $objPaginaSEI->abrirBody($strTitulo, 'onload="infraEfeitoTabelas(); inicializar();"'); ?> -
+ montarBarraComandosSuperior($arrComandos); ?>
- tabindex="getProxTabDados() ?>"> + - class="infraText" value="" /> + class="infraText" value="" />
- placeholder="Digite o nome/sigla da unidade e pressione ENTER para iniciar a pesquisa rpida" value="" tabindex="getProxTabDados() ?>" /> + placeholder="Digite o nome/sigla da unidade e pressione ENTER para iniciar a pesquisa rpida" value="" tabindex="getProxTabDados() ?>" />
- +
- +
diff --git a/src/pen_map_envio_parcial_listar.php b/src/pen_map_envio_parcial_listar.php old mode 100644 new mode 100755 index 6aee18e13..655162d2d --- a/src/pen_map_envio_parcial_listar.php +++ b/src/pen_map_envio_parcial_listar.php @@ -23,150 +23,149 @@ . $_GET['acao_retorno']; try { - $objSessaoSEI->validarLink(); - $objSessaoSEI->validarPermissao('pen_map_envio_parcial_listar'); + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao('pen_map_envio_parcial_listar'); - $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); + $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); - //-------------------------------------------------------------------------- - // Aes + //-------------------------------------------------------------------------- + // Aes if (array_key_exists('acao', $_GET)) { - $arrParam = array_merge($_GET, $_POST); + $arrParam = array_merge($_GET, $_POST); switch ($_GET['acao']) { case 'pen_map_envio_parcial_excluir': if (array_key_exists('hdnInfraItensSelecionados', $arrParam) && !empty($arrParam['hdnInfraItensSelecionados'])) { - $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); - $arrParam['hdnInfraItensSelecionados'] = explode(',', $arrParam['hdnInfraItensSelecionados']); + $objDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $arrParam['hdnInfraItensSelecionados'] = explode(',', $arrParam['hdnInfraItensSelecionados']); if (is_array($arrParam['hdnInfraItensSelecionados'])) { foreach ($arrParam['hdnInfraItensSelecionados'] as $id) { - $objDTO->setDblId($id); - $objPenRestricaoEnvioComponentesDigitaisRN->excluir($objDTO); + $objDTO->setDblId($id); + $objPenRestricaoEnvioComponentesDigitaisRN->excluir($objDTO); } } else { - $objDTO->setDblId($arrParam['hdnInfraItensSelecionados']); - $objPenRestricaoEnvioComponentesDigitaisRN->excluir($objDTO); + $objDTO->setDblId($arrParam['hdnInfraItensSelecionados']); + $objPenRestricaoEnvioComponentesDigitaisRN->excluir($objDTO); } - $objPaginaSEI->adicionarMensagem('Mapeamento excludo com sucesso.', InfraPagina::$TIPO_MSG_AVISO); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . $_GET['acao_retorno'] . '&acao_origem=' . $_GET['acao_origem'])); - exit(0); + $objPaginaSEI->adicionarMensagem('Mapeamento excludo com sucesso.', InfraPagina::$TIPO_MSG_AVISO); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . $_GET['acao_retorno'] . '&acao_origem=' . $_GET['acao_origem'])); + exit(0); } else { - throw new InfraException('Nenhum registro foi selecionado para executar esta ao'); + throw new InfraException('Nenhum registro foi selecionado para executar esta ao'); } - break; case 'pen_map_envio_parcial_listar': - // Ao padro desta tela + // Ao padro desta tela break; default: throw new InfraException('Ao no permitida nesta tela'); } } - //-------------------------------------------------------------------------- + //-------------------------------------------------------------------------- - $strTitulo = 'Lista dos Mapeamentos de Envio Parcial'; + $strTitulo = 'Lista dos Mapeamentos de Envio Parcial'; - $strBotaoEspeciePadrao = ""; + $strBotaoEspeciePadrao = ""; if (SessaoSEI::getInstance()->verificarPermissao('pen_map_envio_parcial_atribuir')) { - $bolPadraoNaoAtribuido = empty((new PenParametroRN())->getParametro("PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO")); - $strClassePendencia = ($bolPadraoNaoAtribuido) ? "pendencia" : ""; - $strAltPendencia = ($bolPadraoNaoAtribuido) ? "Pendente atribuio de espcie documental padro para envio de processos" : ""; - $strBotaoEspeciePadrao = ''; + $bolPadraoNaoAtribuido = empty((new PenParametroRN())->getParametro("PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO")); + $strClassePendencia = ($bolPadraoNaoAtribuido) ? "pendencia" : ""; + $strAltPendencia = ($bolPadraoNaoAtribuido) ? "Pendente atribuio de espcie documental padro para envio de processos" : ""; + $strBotaoEspeciePadrao = ''; } - $arrComandos = array(); - $btnPesquisar = ''; - $btnNovo = ''; - $btnExcluir = ''; - $btnImprimir = ''; + $arrComandos = []; + $btnPesquisar = ''; + $btnNovo = ''; + $btnExcluir = ''; + $btnImprimir = ''; - $arrComandos = array($btnPesquisar, $strBotaoEspeciePadrao, $btnNovo, $btnExcluir, $btnImprimir); - $arrComandosFinal = array($btnPesquisar, $btnNovo, $btnExcluir, $btnImprimir); + $arrComandos = [$btnPesquisar, $strBotaoEspeciePadrao, $btnNovo, $btnExcluir, $btnImprimir]; + $arrComandosFinal = [$btnPesquisar, $btnNovo, $btnExcluir, $btnImprimir]; - $objPenRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); - $objPenRestricaoEnvioComponentesDigitaisDTO->retTodos(true); - $objPenRestricaoEnvioComponentesDigitaisDTO->setOrdDblId(InfraDTO::$TIPO_ORDENACAO_ASC); + $objPenRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + $objPenRestricaoEnvioComponentesDigitaisDTO->retTodos(true); + $objPenRestricaoEnvioComponentesDigitaisDTO->setOrdDblId(InfraDTO::$TIPO_ORDENACAO_ASC); if (array_key_exists('nome_estrutura', $_POST) && ((!empty($_POST['nome_estrutura']) && $_POST['nome_estrutura'] !== 'null') || $_POST['nome_estrutura'] == "0")) { - $objPenRestricaoEnvioComponentesDigitaisDTO->setStrStrEstrutura('%' . $_POST['nome_estrutura'] . '%', InfraDTO::$OPER_LIKE); + $objPenRestricaoEnvioComponentesDigitaisDTO->setStrStrEstrutura('%' . $_POST['nome_estrutura'] . '%', InfraDTO::$OPER_LIKE); } if (array_key_exists('nome_unidade', $_POST) && ((!empty($_POST['nome_unidade']) && $_POST['nome_unidade'] !== 'null') || $_POST['nome_unidade'] == "0")) { - $objPenRestricaoEnvioComponentesDigitaisDTO->setStrStrUnidadePen('%' . $_POST['nome_unidade'] . '%', InfraDTO::$OPER_LIKE); + $objPenRestricaoEnvioComponentesDigitaisDTO->setStrStrUnidadePen('%' . $_POST['nome_unidade'] . '%', InfraDTO::$OPER_LIKE); } - $objPaginaSEI->prepararOrdenacao( - $objPenRestricaoEnvioComponentesDigitaisDTO, - 'Id', - InfraDTO::$TIPO_ORDENACAO_ASC - ); - $objPaginaSEI->prepararPaginacao($objPenRestricaoEnvioComponentesDigitaisDTO); + $objPaginaSEI->prepararOrdenacao( + $objPenRestricaoEnvioComponentesDigitaisDTO, + 'Id', + InfraDTO::$TIPO_ORDENACAO_ASC + ); + $objPaginaSEI->prepararPaginacao($objPenRestricaoEnvioComponentesDigitaisDTO); - $arrObjPenRestricaoEnvioComponentesDigitaisDTO = $objPenRestricaoEnvioComponentesDigitaisRN->listar( - $objPenRestricaoEnvioComponentesDigitaisDTO - ); + $arrObjPenRestricaoEnvioComponentesDigitaisDTO = $objPenRestricaoEnvioComponentesDigitaisRN->listar( + $objPenRestricaoEnvioComponentesDigitaisDTO + ); - $objPaginaSEI->processarPaginacao($objPenRestricaoEnvioComponentesDigitaisDTO); - $numRegistros = count($arrObjPenRestricaoEnvioComponentesDigitaisDTO); + $objPaginaSEI->processarPaginacao($objPenRestricaoEnvioComponentesDigitaisDTO); + $numRegistros = count($arrObjPenRestricaoEnvioComponentesDigitaisDTO); if (!empty($arrObjPenRestricaoEnvioComponentesDigitaisDTO)) { - $strResultado = ''; - $strResultado .= '' . "\n"; - $strResultado .= '
' + $strResultado = ''; + $strResultado .= '' . "\n"; + $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strCssTr = ''; - - $index = 0; + $strResultado .= ''; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strCssTr = ''; + + $index = 0; foreach ($arrObjPenRestricaoEnvioComponentesDigitaisDTO as $objPenRestricaoEnvioComponentesDigitaisDTO) { - $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara'; + $strCssTr = ($strCssTr == 'infraTrClara') ? 'infraTrEscura' : 'infraTrClara'; - $strResultado .= ''; - $strResultado .= ''; + $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; + $strResultado .= ''; + $strResultado .= '' . "\n"; - $index++; + $index++; } - $strResultado .= '
' . $objPaginaSEI->gerarCaptionTabela('estados do processo', $numRegistros) . '
' . $objPaginaSEI->getThCheck() . 'ID do RepositrioNome do RepositrioID da UnidadeNome da UnidadeAes
' . $objPaginaSEI->getThCheck() . 'ID do RepositrioNome do RepositrioID da UnidadeNome da UnidadeAes
' + $strResultado .= '
' . $objPaginaSEI->getTrCheck( - $index, - $objPenRestricaoEnvioComponentesDigitaisDTO->getDblId(), - '' + $index, + $objPenRestricaoEnvioComponentesDigitaisDTO->getDblId(), + '' ) . '' + $strResultado .= '' . $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdEstrutura() . '' + $strResultado .= '' . $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrEstrutura() . '' + $strResultado .= '' . $objPenRestricaoEnvioComponentesDigitaisDTO->getNumIdUnidadePen() . '' + $strResultado .= '' . $objPenRestricaoEnvioComponentesDigitaisDTO->getStrStrUnidadePen() . ''; + $strResultado .= ''; if ($objSessaoSEI->verificarPermissao('pen_map_envio_parcial_atualizar')) { $strResultado .= 'Alterar Mapeamento'; + . '">Alterar Mapeamento'; } if ($objSessaoSEI->verificarPermissao('pen_map_envio_parcial_excluir')) { $strResultado .= ''; } - $strResultado .= '
'; + $strResultado .= '
'; } } catch (InfraException $e) { - $objPaginaSEI->processarExcecao($e); + $objPaginaSEI->processarExcecao($e); } $objPaginaSEI->montarDocType(); @@ -283,9 +282,9 @@ function onCLickLinkDelete(url, link) { } function onClickBtnNovo() { - window.location = 'assinarLink( - 'controlador.php?acao=pen_map_envio_parcial_cadastrar&acao_origem=' + 'controlador.php?acao=pen_map_envio_parcial_cadastrar&acao_origem=' . $acaoOrigem . '&acao_retorno=' . $acaoOrigem @@ -332,10 +331,10 @@ function onClickBtnExcluir() { fecharAreaDados(); ?> 0) { ?> - montarAreaTabela($strResultado, $numRegistros); ?> + montarAreaTabela($strResultado, $numRegistros); ?> - + montarBarraComandosSuperior($arrComandosFinal); ?> fecharBody(); ?> diff --git a/src/pen_map_hipotese_legal_envio_cadastrar.php b/src/pen_map_hipotese_legal_envio_cadastrar.php index 6e9b920b4..fa1916ab1 100755 --- a/src/pen_map_hipotese_legal_envio_cadastrar.php +++ b/src/pen_map_hipotese_legal_envio_cadastrar.php @@ -18,7 +18,7 @@ $objSessao->validarLink(); $objSessao->validarPermissao(PEN_RECURSO_ATUAL); - $arrComandos = array(); + $arrComandos = []; $bolSomenteLeitura = false; @@ -27,8 +27,8 @@ $arrComandos[] = ''; $arrComandos[] = ''; - if(array_key_exists(PEN_PAGINA_GET_ID, $_GET) && !empty($_GET[PEN_PAGINA_GET_ID])){ - $strTitulo = sprintf('Editar %s', PEN_PAGINA_TITULO); + if(array_key_exists(PEN_PAGINA_GET_ID, $_GET) && !empty($_GET[PEN_PAGINA_GET_ID])) { + $strTitulo = sprintf('Editar %s', PEN_PAGINA_TITULO); } else { $strTitulo = sprintf('Novo %s', PEN_PAGINA_TITULO); @@ -38,7 +38,7 @@ case PEN_RECURSO_BASE.'_visualizar': $arrComandos[] = ''; $bolSomenteLeitura = true; - $strTitulo = sprintf('Consultar %s', PEN_PAGINA_TITULO); + $strTitulo = sprintf('Consultar %s', PEN_PAGINA_TITULO); break; @@ -80,7 +80,7 @@ exit(0); } // Ao por GET + ID esta carregando o formulrio - else if(array_key_exists(PEN_PAGINA_GET_ID, $_GET) && !empty($_GET[PEN_PAGINA_GET_ID])){ + else if(array_key_exists(PEN_PAGINA_GET_ID, $_GET) && !empty($_GET[PEN_PAGINA_GET_ID])) { $objPenRelHipoteseLegalDTO = new PenRelHipoteseLegalDTO(); $objPenRelHipoteseLegalDTO->setDblIdMap($_GET[PEN_PAGINA_GET_ID]); @@ -90,7 +90,7 @@ $objPenRelHipoteseLegalDTO = $objPenRelHipoteseLegalEnvioRN->consultar($objPenRelHipoteseLegalDTO); } - if(empty($objPenRelHipoteseLegalDTO)){ + if(empty($objPenRelHipoteseLegalDTO)) { $objPenRelHipoteseLegalDTO = new PenRelHipoteseLegalDTO(); $objPenRelHipoteseLegalDTO->setNumIdHipoteseLegal(0); $objPenRelHipoteseLegalDTO->setNumIdBarramento(0); @@ -132,10 +132,7 @@ $objPenHipoteseLegalRN = new PenHipoteseLegalRN(); $arrMapIdBarramento = InfraArray::converterArrInfraDTO($objPenHipoteseLegalRN->listar($objPenHipoteseLegalDTO), 'Nome', 'IdHipoteseLegal'); } -catch (InfraException $e) { - $objPagina->processarExcecao($e); -} -catch(Exception $e) { +catch(InfraException|Exception $e) { $objPagina->processarExcecao($e); } @@ -172,7 +169,7 @@ function onSubmit() { var field = jQuery('select[name=id_hipotese_legal]', form); if(field.val() === 'null'){ - alert('Nenhuma "Hiptese Legal SEI - getStrSiglaOrgaoUnidadeAtual())?>" foi selecionada'); + alert('Nenhuma "Hiptese Legal SEI - getStrSiglaOrgaoUnidadeAtual())?>" foi selecionada'); field.focus(); return false; } @@ -196,13 +193,15 @@ function onSubmit() { montarAreaValidacao(); ?> abrirAreaDados('12em'); ?> - - disabled="disabled" readonly="readonly"> getNumIdHipoteseLegal(), $arrMapIdHipoteseLegal); ?> - disabled="disabled" readonly="readonly"> getNumIdBarramento(), $arrMapIdBarramento); ?> diff --git a/src/pen_map_hipotese_legal_envio_listar.php b/src/pen_map_hipotese_legal_envio_listar.php index a78511698..53ee4f0a0 100755 --- a/src/pen_map_hipotese_legal_envio_listar.php +++ b/src/pen_map_hipotese_legal_envio_listar.php @@ -4,8 +4,6 @@ /** * Consulta os logs do estado do procedimento ao ser expedido - * - * */ session_start(); @@ -20,71 +18,70 @@ $objBanco = BancoSEI::getInstance(); $objSessao = SessaoSEI::getInstance(); $objDebug = InfraDebug::getInstance(); - + try { - + $objDebug->setBolLigado(false); $objDebug->setBolDebugInfra(true); $objDebug->limpar(); $objSessao->validarLink(); $objSessao->validarPermissao(PEN_RECURSO_ATUAL); - - + + //-------------------------------------------------------------------------- // Aes if(array_key_exists('acao', $_GET)) { - + $arrParam = array_merge($_GET, $_POST); - + switch($_GET['acao']) { - + case PEN_RECURSO_BASE.'_excluir': if(array_key_exists('hdnInfraItensSelecionados', $arrParam) && !empty($arrParam['hdnInfraItensSelecionados'])) { - + $objPenRelHipoteseLegalDTO = new PenRelHipoteseLegalDTO(); $objPenRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); - + $arrParam['hdnInfraItensSelecionados'] = explode(',', $arrParam['hdnInfraItensSelecionados']); - + if(is_array($arrParam['hdnInfraItensSelecionados'])) { - + foreach($arrParam['hdnInfraItensSelecionados'] as $dblIdMap) { - - $objPenRelHipoteseLegalDTO->setDblIdMap($dblIdMap); - $objPenRelHipoteseLegalRN->excluir($objPenRelHipoteseLegalDTO); + + $objPenRelHipoteseLegalDTO->setDblIdMap($dblIdMap); + $objPenRelHipoteseLegalRN->excluir($objPenRelHipoteseLegalDTO); } } else { - - $objPenRelHipoteseLegalDTO->setDblIdMap($arrParam['hdnInfraItensSelecionados']); - $objPenRelHipoteseLegalRN->excluir($objPenRelHipoteseLegalDTO); + + $objPenRelHipoteseLegalDTO->setDblIdMap($arrParam['hdnInfraItensSelecionados']); + $objPenRelHipoteseLegalRN->excluir($objPenRelHipoteseLegalDTO); } - + $objPagina->adicionarMensagem(sprintf('%s foi excluido com sucesso.', PEN_PAGINA_TITULO), InfraPagina::$TIPO_MSG_AVISO); - + header('Location: '.SessaoSEI::getInstance()->assinarLink('controlador.php?acao='.$_GET['acao_retorno'].'&acao_origem='.$_GET['acao_origem'])); exit(0); } else { - + throw new InfraException('Nenhum Registro foi selecionado para executar esta ao'); } - break; - + case PEN_RECURSO_BASE.'_listar': // Ao padro desta tela break; - + default: throw new InfraException('Ao no permitida nesta tela'); - + } } //-------------------------------------------------------------------------- - - $arrComandos = array(); + + $arrComandos = []; $arrComandos[] = ''; $arrComandos[] = ''; $arrComandos[] = ''; @@ -92,7 +89,7 @@ //-------------------------------------------------------------------------- // DTO de paginao - + $objPenRelHipoteseLegalDTO = new PenRelHipoteseLegalDTO(); $objPenRelHipoteseLegalDTO->setStrTipo('E'); $objPenRelHipoteseLegalDTO->retTodos(); @@ -101,13 +98,13 @@ if(array_key_exists('id_barramento', $_POST) && (!empty($_POST['id_barramento']) && $_POST['id_barramento'] !== 'null')) { $objPenRelHipoteseLegalDTO->setNumIdBarramento($_POST['id_barramento']); } - + if(array_key_exists('id_hipotese_legal', $_POST) && (!empty($_POST['id_hipotese_legal']) && $_POST['id_barramento'] !== 'null')) { $objPenRelHipoteseLegalDTO->setNumIdHipoteseLegal($_POST['id_hipotese_legal']); } - + $objFiltroDTO = clone $objPenRelHipoteseLegalDTO; - + if(!$objFiltroDTO->isSetNumIdBarramento()) { $objFiltroDTO->setNumIdBarramento(''); } @@ -117,7 +114,7 @@ } //-------------------------------------------------------------------------- $objGenericoBD = new GenericoBD($objBanco); - + // Mapeamento da hipotese legal remota $objPenHipoteseLegalDTO = new PenHipoteseLegalDTO(); $objPenHipoteseLegalDTO->setDistinct(true); @@ -125,7 +122,7 @@ $objPenHipoteseLegalDTO->retNumIdHipoteseLegal(); $objPenHipoteseLegalDTO->setStrAtivo('S'); $objPenHipoteseLegalDTO->retStrNome(); - + $objPenHipoteseLegalRN = new PenHipoteseLegalRN(); $arrMapIdBarramento = InfraArray::converterArrInfraDTO($objPenHipoteseLegalRN->listar($objPenHipoteseLegalDTO), 'Nome', 'IdHipoteseLegal'); @@ -148,8 +145,8 @@ $numRegistros = count($arrObjPenRelHipoteseLegalDTO); - if(!empty($arrObjPenRelHipoteseLegalDTO)){ - + if(!empty($arrObjPenRelHipoteseLegalDTO)) { + $strResultado = ''; $strResultado .= ''."\n"; @@ -173,15 +170,15 @@ $strResultado .= ''; $strResultado .= ''; $strResultado .= ''; $strResultado .= ''."\n"; @@ -191,7 +188,7 @@ } } catch(InfraException $e){ - + print '
';
     print_r($e);
     print '
'; @@ -220,7 +217,7 @@ montarJavaScript(); ?> fecharHtml(); ?> diff --git a/src/pen_map_unidade_listar.php b/src/pen_map_unidade_listar.php index 6b7d1ccf0..ff35bae8c 100755 --- a/src/pen_map_unidade_listar.php +++ b/src/pen_map_unidade_listar.php @@ -4,8 +4,6 @@ /** * Consulta os logs do estado do procedimento ao ser expedido - * - * */ session_start(); @@ -52,14 +50,14 @@ foreach($arrParam['hdnInfraItensSelecionados'] as $NumIdUnidade) { - $objPenUnidadeDTO->setNumIdUnidade($NumIdUnidade); - $objPenUnidadeRN->excluir($objPenUnidadeDTO); + $objPenUnidadeDTO->setNumIdUnidade($NumIdUnidade); + $objPenUnidadeRN->excluir($objPenUnidadeDTO); } } else { - $objPenUnidadeDTO->setNumIdUnidade($arrParam['hdnInfraItensSelecionados']); - $objPenUnidadeRN->excluir($objPenUnidadeDTO); + $objPenUnidadeDTO->setNumIdUnidade($arrParam['hdnInfraItensSelecionados']); + $objPenUnidadeRN->excluir($objPenUnidadeDTO); } $objPagina->adicionarMensagem(sprintf('%s foi excluido com sucesso.', PEN_PAGINA_TITULO), InfraPagina::$TIPO_MSG_AVISO); @@ -71,7 +69,6 @@ throw new InfraException('Nenhum Registro foi selecionado para executar esta ao'); } - break; case PEN_RECURSO_BASE.'_listar': // Ao padro desta tela @@ -84,7 +81,7 @@ } //-------------------------------------------------------------------------- - $arrComandos = array(); + $arrComandos = []; $arrComandos[] = ''; $arrComandos[] = ''; $arrComandos[] = ''; @@ -140,7 +137,7 @@ $objPagina->processarPaginacao($objPenUnidadeDTOFiltro); $numRegistros = count($arrObjPenUnidadeDTO); - if(!empty($arrObjPenUnidadeDTO)){ + if(!empty($arrObjPenUnidadeDTO)) { $strResultado = ''; @@ -308,20 +305,20 @@ function onClickBtnExcluir(){ abrirAreaDados('5em'); ?> - + - + fecharAreaDados(); ?> - 0): ?> + 0) : ?> montarAreaTabela($strResultado, $numRegistros); ?> montarAreaDebug(); ?> - +

Nenhum mapeamento foi encontrado

- +fecharBody(); ?> fecharHtml(); ?> diff --git a/src/pen_parametros_configuracao.php b/src/pen_parametros_configuracao.php index 335226033..d93a0be36 100755 --- a/src/pen_parametros_configuracao.php +++ b/src/pen_parametros_configuracao.php @@ -145,7 +145,7 @@ ?> function inicializar(){ - if (''=='pen_parametros_configuracao_selecionar'){ + if (''=='pen_parametros_configuracao_selecionar'){ infraReceberSelecao(); document.getElementById('btnFecharSelecao').focus(); }else{ @@ -183,7 +183,7 @@ function validarPreenchimentoCampo(campoValidacao){ $objPagina->abrirBody($strTitulo, 'onload="inicializar();"'); ?> - +montarBarraComandosSuperior($arrComandos); $objPagina->getInstance()->abrirAreaDados('30em'); @@ -191,7 +191,7 @@ function validarPreenchimentoCampo(campoValidacao){ //Esse parmetro no aparece, por j existencia de uma tela s para alterao do prprio. if ($parametro->getStrNome() != 'HIPOTESE_LEGAL_PADRAO' && $parametro->getStrNome() != 'PEN_TIPO_PROCESSO_EXTERNO') { - ?> setBolLigado(false); - InfraDebug::getInstance()->setBolDebugInfra(false); - InfraDebug::getInstance()->limpar(); + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->limpar(); - SessaoSEI::getInstance()->validarLink(); + SessaoSEI::getInstance()->validarLink(); - $objPaginaSEI = PaginaSEI::getInstance(); + $objPaginaSEI = PaginaSEI::getInstance(); - $strParametros = ''; + $strParametros = ''; if (isset($_GET['arvore'])) { - $objPaginaSEI->setBolArvore($_GET['arvore']); - $strParametros .= '&arvore=' . $_GET['arvore']; + $objPaginaSEI->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore=' . $_GET['arvore']; } if (isset($_GET['id_procedimento'])) { - $strParametros .= '&id_procedimento=' . $_GET['id_procedimento']; + $strParametros .= '&id_procedimento=' . $_GET['id_procedimento']; } - $idProcedimento = filter_var($_GET['id_procedimento'], FILTER_SANITIZE_NUMBER_INT); + $idProcedimento = filter_var($_GET['id_procedimento'], FILTER_SANITIZE_NUMBER_INT); - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($idProcedimento); - $objPenBlocoProcessoDTO->setOrdNumIdBloco(InfraDTO::$TIPO_ORDENACAO_DESC); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdBloco(); - $objPenBlocoProcessoDTO->setNumIdAtividade( - array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE - ), - InfraDTO::$OPER_NOT_IN - ); - $objPenBlocoProcessoDTO->setNumMaxRegistrosRetorno(1); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($idProcedimento); + $objPenBlocoProcessoDTO->setOrdNumIdBloco(InfraDTO::$TIPO_ORDENACAO_DESC); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO->setNumIdAtividade( + [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE], + InfraDTO::$OPER_NOT_IN + ); + $objPenBlocoProcessoDTO->setNumMaxRegistrosRetorno(1); - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $PenBlocoProcessoDTO = $objPenBlocoProcessoRN->consultar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $PenBlocoProcessoDTO = $objPenBlocoProcessoRN->consultar($objPenBlocoProcessoDTO); - $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); - $objExpedirProcedimentosRN->cancelarTramite($idProcedimento); + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + $objExpedirProcedimentosRN->cancelarTramite($idProcedimento); if ($PenBlocoProcessoDTO != null) { - // TODO: tratar atualizao a partir de um metodo - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $objPenBlocoProcessoRN->atualizarEstadoDoBloco($PenBlocoProcessoDTO->getNumIdBloco()); + // TODO: tratar atualizao a partir de um metodo + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $objPenBlocoProcessoRN->atualizarEstadoDoBloco($PenBlocoProcessoDTO->getNumIdBloco()); } } catch (InfraException $e) { - $strMensagem = $e->getStrDescricao(); + $strMensagem = $e->getStrDescricao(); } catch (Exception $e) { - $strMensagem = $e->getMessage(); + $strMensagem = $e->getMessage(); } ?> downloadReciboEnvio($_GET['id_tramite']); if(empty($arrObjReciboTramiteDTO)) { - throw new InfraException('O recibo ainda no foi recebido.'); + throw new InfraException('O recibo ainda no foi recebido.'); } $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); @@ -52,24 +50,24 @@ foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) { - $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento()); + $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento()); - print ''; - print ''.$objReciboTramiteDTO->getNumIdTramite().''; - print ''.$objReciboTramiteDTO->getStrNumeroRegistro().''; - print ''.date('c', $dthTimeStamp).''; + print ''; + print ''.$objReciboTramiteDTO->getNumIdTramite().''; + print ''.$objReciboTramiteDTO->getStrNumeroRegistro().''; + print ''.date('c', $dthTimeStamp).''; - if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)){ - $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital'); - ksort($arrObjReciboTramiteHashDTO); + if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)) { + $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital'); + ksort($arrObjReciboTramiteHashDTO); foreach($arrObjReciboTramiteHashDTO as $hash){ - print ''.$hash.''; + print ''.$hash.''; } } - print ''; - print ''.$objReciboTramiteDTO->getStrCadeiaCertificado().''; - print ''.$objReciboTramiteDTO->getStrHashAssinatura().''; + print ''; + print ''.$objReciboTramiteDTO->getStrCadeiaCertificado().''; + print ''.$objReciboTramiteDTO->getStrHashAssinatura().''; } } @@ -92,56 +90,53 @@ if(array_key_exists('id_tramite', $_GET) && array_key_exists('id_tarefa', $_GET)) { - $objReciboTramiteRN = new ReciboTramiteRN(); - $arrParametros = array( - "id_tramite" => $_GET['id_tramite'], - "id_tarefa" => $_GET['id_tarefa'] - ); - $arrObjReciboTramiteDTO = $objReciboTramiteRN->listarPorAtividade($arrParametros); + $objReciboTramiteRN = new ReciboTramiteRN(); + $arrParametros = ["id_tramite" => $_GET['id_tramite'], "id_tarefa" => $_GET['id_tarefa']]; + $arrObjReciboTramiteDTO = $objReciboTramiteRN->listarPorAtividade($arrParametros); - if(empty($arrObjReciboTramiteDTO)) { - throw new InfraException('O recibo ainda no foi recebido.'); - } + if(empty($arrObjReciboTramiteDTO)) { + throw new InfraException('O recibo ainda no foi recebido.'); + } - $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); - $objReciboTramiteHashDTO->setNumIdTramite($_GET['id_tramite']); - $objReciboTramiteHashDTO->retStrHashComponenteDigital(); + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); + $objReciboTramiteHashDTO->setNumIdTramite($_GET['id_tramite']); + $objReciboTramiteHashDTO->retStrHashComponenteDigital(); - if($_GET['id_tarefa'] == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)){ - $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO); + if($_GET['id_tarefa'] == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)) { + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO); - }else{ - $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_ENVIADO); + }else{ + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_ENVIADO); - } + } - $arrObjReciboTramiteHashDTO = $objGenericoBD->listar($objReciboTramiteHashDTO); + $arrObjReciboTramiteHashDTO = $objGenericoBD->listar($objReciboTramiteHashDTO); - foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) { + foreach($arrObjReciboTramiteDTO as $objReciboTramiteDTO) { - $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento()); + $dthTimeStamp = InfraData::getTimestamp($objReciboTramiteDTO->getDthRecebimento()); - print ''; - print ''.$objReciboTramiteDTO->getNumIdTramite().''; - print ''.$objReciboTramiteDTO->getStrNumeroRegistro().''; - print ''.date('c', $dthTimeStamp).''; + print ''; + print ''.$objReciboTramiteDTO->getNumIdTramite().''; + print ''.$objReciboTramiteDTO->getStrNumeroRegistro().''; + print ''.date('c', $dthTimeStamp).''; - $strHashAssinatura = $objReciboTramiteDTO->getStrHashAssinatura(); + $strHashAssinatura = $objReciboTramiteDTO->getStrHashAssinatura(); - if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)){ - $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital'); - ksort($arrObjReciboTramiteHashDTO); + if($arrObjReciboTramiteHashDTO && is_array($arrObjReciboTramiteHashDTO)) { + $arrObjReciboTramiteHashDTO = InfraArray::converterArrInfraDTO($arrObjReciboTramiteHashDTO, 'HashComponenteDigital'); + ksort($arrObjReciboTramiteHashDTO); - foreach($arrObjReciboTramiteHashDTO as $hash){ - print ''.$hash.''; - } + foreach($arrObjReciboTramiteHashDTO as $hash){ + print ''.$hash.''; } - - print ''; - print ''.$objReciboTramiteDTO->getStrCadeiaCertificado().''; - print ''.$objReciboTramiteDTO->getStrHashAssinatura().''; } + print ''; + print ''.$objReciboTramiteDTO->getStrCadeiaCertificado().''; + print ''.$objReciboTramiteDTO->getStrHashAssinatura().''; + } + } } catch(InfraException $e){ @@ -189,12 +184,12 @@ $numRegistros = count($arrObjProcedimentoAndamentoDTO); - if(!empty($arrObjProcedimentoAndamentoDTO)){ + if(!empty($arrObjProcedimentoAndamentoDTO)) { - $arrAgruparProcedimentoAndamentoDTO = array(); + $arrAgruparProcedimentoAndamentoDTO = []; foreach($arrObjProcedimentoAndamentoDTO as &$objProcedimentoAndamentoDTO){ if(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) == $objProcedimentoAndamentoDTO->getNumTarefa()) { - $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaDestino(); + $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaDestino(); } elseif (ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) == $objProcedimentoAndamentoDTO->getNumTarefa()) { $numIdEstrutura = $objProcedimentoAndamentoDTO->getNumIdEstruturaOrigem(); } elseif (ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO) == $objProcedimentoAndamentoDTO->getNumTarefa()) { @@ -203,7 +198,7 @@ $key = $objProcedimentoAndamentoDTO->getDblIdTramite() . '-' . $numIdEstrutura . '-' . $objProcedimentoAndamentoDTO->getNumTarefa(); - $arrAgruparProcedimentoAndamentoDTO[$key][] = $objProcedimentoAndamentoDTO; + $arrAgruparProcedimentoAndamentoDTO[$key][] = $objProcedimentoAndamentoDTO; } $strResultado = ''; @@ -217,15 +212,15 @@ $idCount = 1; foreach($arrAgruparProcedimentoAndamentoDTO as $key => $arrObjProcedimentoAndamentoDTO) { - list($dblIdTramite, $numIdEstrutura, $numTarefa) = explode('-', $key); + [$dblIdTramite, $numIdEstrutura, $numTarefa] = explode('-', $key); $objReturn = PenAtividadeRN::retornaAtividadeDoTramiteFormatado($dblIdTramite, $numIdEstrutura, $numTarefa); $strResultado .= ''; $strResultado .= ''; + . '' + . ''.$objReturn->strMensagem.''; $strResultado .= ''; @@ -319,7 +314,7 @@ function tratarEnter(ev){ $objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); ?> - 0): ?> + 0) : ?> montarAreaTabela($strResultado, $numRegistros); ?>
diff --git a/src/pen_procedimento_expedido_listar.php b/src/pen_procedimento_expedido_listar.php index 3c01b3a22..8caa7029b 100755 --- a/src/pen_procedimento_expedido_listar.php +++ b/src/pen_procedimento_expedido_listar.php @@ -13,7 +13,7 @@ $objSessaoSEI->validarLink(); $objSessaoSEI->validarPermissao($_GET['acao']); - $arrComandos = array(); + $arrComandos = []; $strTitulo = 'Processos em Tramitao Externa'; @@ -47,7 +47,7 @@ $strSumarioTabela = 'Tabela de Processos'; $strCaptionTabela = 'Processos'; - $strResultado .= "
'.$arrMapIdHipoteseLegal[$objPenRelHipoteseLegalDTO->getNumIdHipoteseLegal()].''.$arrMapIdBarramento[$objPenRelHipoteseLegalDTO->getNumIdBarramento()].''; - + if($objSessao->verificarPermissao('pen_map_hipotese_legal_envio_alterar')) { $strResultado .= 'Alterar Mapeamento'; } - + if($objSessao->verificarPermissao('pen_map_hipotese_legal_envio_excluir')) { $strResultado .= 'Excluir Mapeamento'; } - + $strResultado .= '
' - . '' - . ''.$objReturn->strMensagem.''; - if($numTarefa == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)){ + if($numTarefa == ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)) { $strResultado .= 'Recibo de Confirmao de Envio'; } @@ -247,7 +242,7 @@ $strResultado .= 'Concludo'; } else { - $strResultado .= 'Falhou'; + $strResultado .= 'Falhou'; } $strResultado .= '
" . "\n"; + $strResultado .= '
' . "\n"; $strResultado .= ''; $strResultado .= ""; @@ -89,23 +89,23 @@ foreach($arrObjProcessoExpedidoDTO as $objProcessoExpedidoDTO) { - $strCssTr = ($strCssTr == '') ? '' : ''; - $strResultado .= $strCssTr; + $strCssTr = ($strCssTr == '') ? '' : ''; + $strResultado .= $strCssTr; - $strResultado .= ''."\n"; - $strResultado .= '' . "\n"; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''."\n"; + $strResultado .= '' . "\n"; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; - $numIndice++; + $strResultado .= '' . "\n"; + $numIndice++; } - $strResultado .= '
' . $objPaginaSEI->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
'.$objPaginaSEI->getTrCheck($numIndice, $objProcessoExpedidoDTO->getDblIdProtocolo(), $objProcessoExpedidoDTO->getStrProtocoloFormatado()).''.$objProcessoExpedidoDTO->getStrProtocoloFormatado().'' . $objProcessoExpedidoDTO->getStrNomeUsuario() . '' . $objProcessoExpedidoDTO->getDthExpedido() . '' . $objProcessoExpedidoDTO->getStrDestino(); + $strResultado .= ''.$objPaginaSEI->getTrCheck($numIndice, $objProcessoExpedidoDTO->getDblIdProtocolo(), $objProcessoExpedidoDTO->getStrProtocoloFormatado()).''.$objProcessoExpedidoDTO->getStrProtocoloFormatado().'' . $objProcessoExpedidoDTO->getStrNomeUsuario() . '' . $objProcessoExpedidoDTO->getDthExpedido() . '' . $objProcessoExpedidoDTO->getStrDestino(); if ($bolAcaoRemoverSobrestamento) { - $strResultado .= 'Remover Sobrestamento '; + $strResultado .= 'Remover Sobrestamento '; } - $strResultado .= '
'; + $strResultado .= ''; } } catch (Exception $e) { @@ -205,7 +205,7 @@ } .dataTables_paginate .paginate_button.current { - background-color: var(--color-primary-default); + background-color: var(--infra-esquema-cor-clara); color: #fff; } @@ -215,6 +215,9 @@ opacity: 0; } + #frmProcedimentoExpedido #tblBlocos_wrapper label:first-of-type{font-size: 12px;} + #frmProcedimentoExpedido #tblBlocos_wrapper select:first-of-type{font-size: 11px;} + montarJavaScript(); ?> @@ -257,7 +260,7 @@ function abrirProcesso(link){ $objPaginaSEI->fecharHead(); $objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); ?> - + montarBarraComandosSuperior($arrComandos); $objPaginaSEI->montarAreaTabela($strResultado, $numRegistros, true); diff --git a/src/pen_procedimento_expedir.php b/src/pen_procedimento_expedir.php index c837a97ae..737af0e10 100755 --- a/src/pen_procedimento_expedir.php +++ b/src/pen_procedimento_expedir.php @@ -1,6 +1,6 @@ getParametro('PEN_ID_REPOSITORIO_ORIGEM'); try { - $objUnidadeDTO = new PenUnidadeDTO(); - $objUnidadeDTO->retNumIdUnidadeRH(); - $objUnidadeDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->retNumIdUnidadeRH(); + $objUnidadeDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objUnidadeRN = new UnidadeRN(); - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); - $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); - $objPenUnidadeRestricaoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($objUnidadeDTO->getNumIdUnidadeRH()); - $objPenUnidadeRestricaoDTO->retNumIdUnidadeRestricao(); - $objPenUnidadeRestricaoDTO->retStrNomeUnidadeRestricao(); + $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); + $objPenUnidadeRestricaoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($objUnidadeDTO->getNumIdUnidadeRH()); + $objPenUnidadeRestricaoDTO->retNumIdUnidadeRestricao(); + $objPenUnidadeRestricaoDTO->retStrNomeUnidadeRestricao(); - $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); - $arrIdUnidadeRestricao = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); + $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); + $arrIdUnidadeRestricao = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); - //Preparao dos dados para montagem da tela de expedio de processos + //Preparao dos dados para montagem da tela de expedio de processos if ($arrIdUnidadeRestricao != null) { - $repositorios = array(); + $repositorios = []; foreach ($arrIdUnidadeRestricao as $value) { $repositorios[$value->getNumIdUnidadeRestricao()] = $value->getStrNomeUnidadeRestricao(); } } else { - $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); + $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); } } catch (Exception $e) { - $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); + $repositorios = $objExpedirProcedimentosRN->listarRepositoriosDeEstruturas(); } $motivosDeUrgencia = $objExpedirProcedimentosRN->consultarMotivosUrgencia(); - $idRepositorioSelecionado = (isset($numIdRepositorio)) ? $numIdRepositorio : ''; + $idRepositorioSelecionado = $numIdRepositorio ?? ''; $strItensSelRepositorioEstruturas = InfraINT::montarSelectArray('', 'Selecione', $idRepositorioSelecionado, $repositorios); - $idMotivosUrgenciaSelecionado = (isset($idMotivosUrgenciaSelecionado)) ? $idMotivosUrgenciaSelecionado : ''; + $idMotivosUrgenciaSelecionado = $idMotivosUrgenciaSelecionado ?? ''; $strItensSelMotivosUrgencia = InfraINT::montarSelectArray('', 'Selecione', $idMotivosUrgenciaSelecionado, $motivosDeUrgencia); $strLinkAjaxUnidade = $objSessaoSEI->assinarLink('controlador_ajax.php?acao_ajax=pen_unidade_auto_completar_expedir_procedimento&acao=' . $_GET['acao']); @@ -101,7 +101,7 @@ $strLinkUnidadesAdministrativasSelecao = $objSessaoSEI->assinarLink('controlador.php?acao=pen_unidades_administrativas_externas_selecionar_expedir_procedimento&tipo_pesquisa=1&id_object=objLupaUnidadesAdministrativas'); if (!$objUnidadeDTO) { - throw new InfraException("A unidade atual no foi mapeada."); + throw new InfraException("A unidade atual no foi mapeada."); } $numIdUnidadeOrigem = $objUnidadeDTO->getNumIdUnidadeRH(); @@ -117,10 +117,10 @@ //Carregar dados do procedimento na primeiro acesso pgina if (!isset($_POST['hdnIdProcedimento'])) { - $objProcedimentoRN = new ProcedimentoRN(); - $objProcedimentoDTO = $objExpedirProcedimentosRN->consultarProcedimento($idProcedimento); - $numIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); - $strProtocoloProcedimentoFormatado = $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoDTO = $objExpedirProcedimentosRN->consultarProcedimento($idProcedimento); + $numIdProcedimento = $objProcedimentoDTO->getDblIdProcedimento(); + $strProtocoloProcedimentoFormatado = $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); } if(isset($_POST['sbmExpedir'])) { @@ -149,10 +149,12 @@ $objExpedirProcedimentoDTO->setNumIdUnidade(null); try { - $objExpedirProcedimentosRN->setEventoEnvioMetadados(function($parNumIdTramite) use ($strLinkProcedimento){ - $strLinkCancelarAjax = SessaoSEI::getInstance()->assinarLink('controlador_ajax.php?acao_ajax=pen_procedimento_expedir_cancelar&id_tramite='.$parNumIdTramite); - echo " "; - }); + $objExpedirProcedimentosRN->setEventoEnvioMetadados( + function ($parNumIdTramite) use ($strLinkProcedimento): void { + $strLinkCancelarAjax = SessaoSEI::getInstance()->assinarLink('controlador_ajax.php?acao_ajax=pen_procedimento_expedir_cancelar&id_tramite='.$parNumIdTramite); + echo " "; + } + ); $respostaExpedir = $objExpedirProcedimentosRN->expedirProcedimento($objExpedirProcedimentoDTO); $bolBotaoFecharCss = InfraUtil::compararVersoes(SEI_VERSAO, ">", "4.0.1"); @@ -241,10 +243,10 @@ function inicializar() { - objLupaProcedimentosApensados = new infraLupaSelect('selProcedimentosApensados','hdnProcedimentosApensados',''); - objLupaUnidadesAdministrativas = new infraLupaSelect('selRepositorioEstruturas','hdnUnidadesAdministrativas',''); + objLupaProcedimentosApensados = new infraLupaSelect('selProcedimentosApensados','hdnProcedimentosApensados',''); + objLupaUnidadesAdministrativas = new infraLupaSelect('selRepositorioEstruturas','hdnUnidadesAdministrativas',''); - objAutoCompletarEstrutura = new infraAjaxAutoCompletar('hdnIdUnidade','txtUnidade','', "Nenhuma unidade foi encontrada"); + objAutoCompletarEstrutura = new infraAjaxAutoCompletar('hdnIdUnidade','txtUnidade','', "Nenhuma unidade foi encontrada"); objAutoCompletarEstrutura.bolExecucaoAutomatica = false; objAutoCompletarEstrutura.mostrarAviso = true; objAutoCompletarEstrutura.limparCampo = false; @@ -282,7 +284,7 @@ function inicializar() { return parametros; }; - objAutoCompletarApensados = new infraAjaxAutoCompletar('hdnIdProcedimentoApensado','txtProcedimentoApensado',''); + objAutoCompletarApensados = new infraAjaxAutoCompletar('hdnIdProcedimentoApensado','txtProcedimentoApensado',''); objAutoCompletarApensados.mostrarAviso = true; objAutoCompletarApensados.tamanhoMinimo = 3; objAutoCompletarApensados.limparCampo = true; @@ -466,7 +468,7 @@ function tratarResultadoValidacao(resp, textStatus, jqXHR){ alert(strRespMensagem); return false; } - var strAction = ''; + var strAction = ''; abrirBarraProgresso(document.forms['frmExpedirProcedimento'], strAction, 600, 200); } @@ -505,7 +507,7 @@ function enviarForm(event){ $objPaginaSEI->fecharHead(); $objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); ?> - +
- +
- +
@@ -528,34 +530,34 @@ function enviarForm(event){
+ value="" tabindex="getProxTabDados() ?>" value="" />
- +
- - - + + + diff --git a/src/pen_procedimento_expedir_validar.php b/src/pen_procedimento_expedir_validar.php index da72f6c07..40a19591c 100755 --- a/src/pen_procedimento_expedir_validar.php +++ b/src/pen_procedimento_expedir_validar.php @@ -4,7 +4,7 @@ session_start(); -$arrResponse = array('sucesso' => false, 'mensagem' => '', 'erros' => array()); +$arrResponse = ['sucesso' => false, 'mensagem' => '', 'erros' => []]; $objInfraException = new InfraException(); @@ -46,7 +46,7 @@ $objExpedirProcedimentosRN->validarProcessoIncluidoBlocoEmAndamento($objInfraException, $objProcedimentoDTO, $strProtocoloFormatado); // Processos apensados - if(array_key_exists('selProcedimentosApensados', $_POST) && is_array($_POST['selProcedimentosApensados'])){ + if(array_key_exists('selProcedimentosApensados', $_POST) && is_array($_POST['selProcedimentosApensados'])) { foreach($_POST['selProcedimentosApensados'] as $dblIdProcedimento) { $objProcedimentoDTO = $objExpedirProcedimentosRN->consultarProcedimento($dblIdProcedimento); $strProtocoloFormatado = $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); @@ -66,11 +66,11 @@ if($objInfraException->contemValidacoes()) { - $arrErros = array(); + $arrErros = []; foreach($objInfraException->getArrObjInfraValidacao() as $objInfraValidacao) { $strAtributo = $objInfraValidacao->getStrAtributo(); - if(!array_key_exists($strAtributo, $arrErros)){ - $arrErros[$strAtributo] = array(); + if(!array_key_exists($strAtributo, $arrErros)) { + $arrErros[$strAtributo] = []; } $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); } diff --git a/src/pen_procedimento_processo_anexado.php b/src/pen_procedimento_processo_anexado.php index 16ca5d8b5..4c7615956 100755 --- a/src/pen_procedimento_processo_anexado.php +++ b/src/pen_procedimento_processo_anexado.php @@ -81,7 +81,7 @@ Protocolo:
@@ -90,7 +90,7 @@ Data Gerao:
@@ -104,7 +104,7 @@ Unidade Geradora:
@@ -113,7 +113,7 @@ Criado por:
@@ -129,7 +129,7 @@ Descrio:
diff --git a/src/pen_tipo_procedimento_lista.php b/src/pen_tipo_procedimento_lista.php old mode 100644 new mode 100755 index e742e69bb..7b0bcc435 --- a/src/pen_tipo_procedimento_lista.php +++ b/src/pen_tipo_procedimento_lista.php @@ -1,63 +1,60 @@ setBolLigado(false); - //InfraDebug::getInstance()->setBolDebugInfra(true); - //InfraDebug::getInstance()->limpar(); - ////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////// + //InfraDebug::getInstance()->setBolLigado(false); + //InfraDebug::getInstance()->setBolDebugInfra(true); + //InfraDebug::getInstance()->limpar(); + ////////////////////////////////////////////////////////////////////////////// - SessaoSEI::getInstance()->validarLink(); + SessaoSEI::getInstance()->validarLink(); - SessaoSEI::getInstance()->validarPermissao($_GET['acao']); + SessaoSEI::getInstance()->validarPermissao($_GET['acao']); switch ($_GET['acao']) { case 'pen_map_orgaos_exportar_tipos_processos': - $strTitulo = 'Exportao de Tipos de Processo'; + $strTitulo = 'Exportao de Tipos de Processo'; if ($_POST['dadosInput']) { try { - $arrStrIds = explode(',', $_POST['dadosInput']); - $qtdSelecao = count($arrStrIds); + $arrStrIds = explode(',', $_POST['dadosInput']); + $qtdSelecao = count($arrStrIds); - $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); - $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); - $objTipoProcedimentoDTO->retStrNome(); - $objTipoProcedimentoDTO->setNumIdTipoProcedimento($arrStrIds, InfraDTO::$OPER_IN); - PaginaSEI::getInstance()->prepararOrdenacao($objTipoProcedimentoDTO, 'Nome', InfraDTO::$TIPO_ORDENACAO_ASC); + $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); + $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); + $objTipoProcedimentoDTO->retStrNome(); + $objTipoProcedimentoDTO->setNumIdTipoProcedimento($arrStrIds, InfraDTO::$OPER_IN); + PaginaSEI::getInstance()->prepararOrdenacao($objTipoProcedimentoDTO, 'Nome', InfraDTO::$TIPO_ORDENACAO_ASC); - $objTipoProcedimentoRN = new TipoProcedimentoRN(); + $objTipoProcedimentoRN = new TipoProcedimentoRN(); if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0")) { $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->pesquisar($objTipoProcedimentoDTO); } else { - $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->listarRN0244($objTipoProcedimentoDTO); + $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->listarRN0244($objTipoProcedimentoDTO); } - $dados = array(); - $dados[] = ['ID', 'Nome']; + $dados = []; + $dados[] = ['ID', 'Nome']; - foreach ($arrObjTipoProcedimentoDTO as $key => $value) { - $dados[] = array( - $value->getNumIdTipoProcedimento(), - $value->getStrNome(), - ); + foreach ($arrObjTipoProcedimentoDTO as $value) { + $dados[] = [$value->getNumIdTipoProcedimento(), $value->getStrNome()]; } - $nomeArquivo = 'tipos_processos.csv'; - header('Content-Type: text/csv'); - header('Content-Disposition: attachment; filename="' . $nomeArquivo . '";'); - $fp = fopen('php://output', 'w'); + $nomeArquivo = 'tipos_processos.csv'; + header('Content-Type: text/csv'); + header('Content-Disposition: attachment; filename="' . $nomeArquivo . '";'); + $fp = fopen('php://output', 'w'); foreach ($dados as $linha) { - fputcsv($fp, $linha, ';'); + fputcsv($fp, $linha, ';'); } - fclose($fp); - exit(0); + fclose($fp); + exit(0); } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } } break; @@ -65,104 +62,104 @@ throw new InfraException("Ao '" . $_GET['acao'] . "' no reconhecida."); } - $arrComandosModal = array(); - $arrComandosModal[] = ''; - $arrComandosModal[] = ''; - $arrComandosModalFinal = array(); - $arrComandosModalFinal[] = ''; - $arrComandosModalFinal[] = ''; + $arrComandosModal = []; + $arrComandosModal[] = ''; + $arrComandosModal[] = ''; + $arrComandosModalFinal = []; + $arrComandosModalFinal[] = ''; + $arrComandosModalFinal[] = ''; - $strResultadoExportar = ''; + $strResultadoExportar = ''; - $strResultadoExportar .= '' . "\n"; - $strResultadoExportar .= ''; + $strResultadoExportar .= '
' . "\n"; + $strResultadoExportar .= ''; - $strResultadoExportar .= ''; - $strResultadoExportar .= '' . "\n"; - $strResultadoExportar .= '' . "\n"; - $strResultadoExportar .= '' . "\n"; - $strResultadoExportar .= '
IDTipo de Processo
'; + $strResultadoExportar .= ''; + $strResultadoExportar .= 'ID' . "\n"; + $strResultadoExportar .= 'Tipo de Processo' . "\n"; + $strResultadoExportar .= '' . "\n"; + $strResultadoExportar .= ''; - $arrComandos = array(); + $arrComandos = []; - $arrComandos[] = ''; - $arrComandos[] = ''; + $arrComandos[] = ''; + $arrComandos[] = ''; - $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); - $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); - $objTipoProcedimentoDTO->retStrNome(); + $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); + $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); + $objTipoProcedimentoDTO->retStrNome(); if ($_GET['acao'] == 'tipo_procedimento_reativar') { - //Lista somente inativos - $objTipoProcedimentoDTO->setBolExclusaoLogica(false); - $objTipoProcedimentoDTO->setStrSinAtivo('N'); + //Lista somente inativos + $objTipoProcedimentoDTO->setBolExclusaoLogica(false); + $objTipoProcedimentoDTO->setStrSinAtivo('N'); } - $strNomeTipoProcessoPesquisa = !empty($_POST['txtNomeTipoProcessoPesquisa']) && !is_null($_POST['txtNomeTipoProcessoPesquisa']) + $strNomeTipoProcessoPesquisa = !empty($_POST['txtNomeTipoProcessoPesquisa']) && !is_null($_POST['txtNomeTipoProcessoPesquisa']) ? $_POST['txtNomeTipoProcessoPesquisa'] : ""; if (trim($strNomeTipoProcessoPesquisa) != '') { - $objTipoProcedimentoDTO->setStrNome('%' . trim($strNomeTipoProcessoPesquisa) . '%', InfraDTO::$OPER_LIKE); + $objTipoProcedimentoDTO->setStrNome('%' . trim($strNomeTipoProcessoPesquisa) . '%', InfraDTO::$OPER_LIKE); } - $strIdAssunto = !empty($_POST['hdnIdAssuntoTipoProcesso']) && !is_null($_POST['hdnIdAssuntoTipoProcesso']) + $strIdAssunto = !empty($_POST['hdnIdAssuntoTipoProcesso']) && !is_null($_POST['hdnIdAssuntoTipoProcesso']) ? $_POST['hdnIdAssuntoTipoProcesso'] : ""; if (!InfraString::isBolVazia($strIdAssunto)) { - $objTipoProcedimentoDTO->setNumIdAssunto($strIdAssunto); + $objTipoProcedimentoDTO->setNumIdAssunto($strIdAssunto); } - PaginaSEI::getInstance()->prepararOrdenacao($objTipoProcedimentoDTO, 'Nome', InfraDTO::$TIPO_ORDENACAO_ASC); + PaginaSEI::getInstance()->prepararOrdenacao($objTipoProcedimentoDTO, 'Nome', InfraDTO::$TIPO_ORDENACAO_ASC); - $objTipoProcedimentoRN = new TipoProcedimentoRN(); + $objTipoProcedimentoRN = new TipoProcedimentoRN(); if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0")) { - $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->pesquisar($objTipoProcedimentoDTO); + $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->pesquisar($objTipoProcedimentoDTO); } else { - $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->listarRN0244($objTipoProcedimentoDTO); + $arrObjTipoProcedimentoDTO = $objTipoProcedimentoRN->listarRN0244($objTipoProcedimentoDTO); } - $numRegistros = count($arrObjTipoProcedimentoDTO); + $numRegistros = count($arrObjTipoProcedimentoDTO); if ($numRegistros > 0) { - $strResultado = ''; + $strResultado = ''; if ($_GET['acao'] != 'tipo_procedimento_reativar') { - $strSumarioTabela = 'Tabela de Tipos de Processo.'; - $strCaptionTabela = 'Tipos de Processo'; + $strSumarioTabela = 'Tabela de Tipos de Processo.'; + $strCaptionTabela = 'Tipos de Processo'; } else { - $strSumarioTabela = 'Tabela de Tipos de Processo Inativos.'; - $strCaptionTabela = 'Tipos de Processo Inativos'; + $strSumarioTabela = 'Tabela de Tipos de Processo Inativos.'; + $strCaptionTabela = 'Tipos de Processo Inativos'; } - $strResultado .= '' . "\n"; //70 - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; + $strResultado .= '
' . PaginaSEI::getInstance()->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . PaginaSEI::getInstance()->getThCheck() . '
' . "\n"; //70 + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strCssTr = ''; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strCssTr = ''; for ($i = 0; $i < $numRegistros; $i++) { - $idTipoProcedimento = $arrObjTipoProcedimentoDTO[$i]->getNumIdTipoProcedimento(); + $idTipoProcedimento = $arrObjTipoProcedimentoDTO[$i]->getNumIdTipoProcedimento(); - $strCssTr = ($strCssTr == '') ? '' : ''; + $strCssTr = ($strCssTr == '') ? '' : ''; - $strResultado .= $strCssTr; + $strResultado .= $strCssTr; - $strResultado .= ''; + $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; } - $strResultado .= '
' . PaginaSEI::getInstance()->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . PaginaSEI::getInstance()->getThCheck() . '' . PaginaSEI::getInstance()->getThOrdenacao($objTipoProcedimentoDTO, 'ID', 'IdTipoProcedimento', $arrObjTipoProcedimentoDTO) . '' . PaginaSEI::getInstance()->getThOrdenacao($objTipoProcedimentoDTO, 'Nome', 'Nome', $arrObjTipoProcedimentoDTO) . '
' . PaginaSEI::getInstance()->getThOrdenacao($objTipoProcedimentoDTO, 'ID', 'IdTipoProcedimento', $arrObjTipoProcedimentoDTO) . '' . PaginaSEI::getInstance()->getThOrdenacao($objTipoProcedimentoDTO, 'Nome', 'Nome', $arrObjTipoProcedimentoDTO) . '
' . PaginaSEI::getInstance()->getTrCheck($i, $arrObjTipoProcedimentoDTO[$i]->getNumIdTipoProcedimento(), $arrObjTipoProcedimentoDTO[$i]->getStrNome()) . '' . PaginaSEI::getInstance()->getTrCheck($i, $arrObjTipoProcedimentoDTO[$i]->getNumIdTipoProcedimento(), $arrObjTipoProcedimentoDTO[$i]->getStrNome()) . '' . $arrObjTipoProcedimentoDTO[$i]->getNumIdTipoProcedimento() . '' . PaginaSEI::tratarHTML($arrObjTipoProcedimentoDTO[$i]->getStrNome()) . '
' . $arrObjTipoProcedimentoDTO[$i]->getNumIdTipoProcedimento() . '' . PaginaSEI::tratarHTML($arrObjTipoProcedimentoDTO[$i]->getStrNome()) . '
'; + $strResultado .= ''; } - $arrComandos[] = ''; + $arrComandos[] = ''; - $strLinkAjaxAssuntoRI1223 = SessaoSEI::getInstance()->assinarLink('controlador_ajax.php?acao_ajax=assunto_auto_completar_RI1223'); + $strLinkAjaxAssuntoRI1223 = SessaoSEI::getInstance()->assinarLink('controlador_ajax.php?acao_ajax=assunto_auto_completar_RI1223'); } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } PaginaSEI::getInstance()->montarDocType(); @@ -197,12 +194,12 @@ function inicializar() { setTimeout("document.getElementById('btnFechar').focus()", 50); =", "4.0.0")) { ?> - objAutoCompletarAssuntoRI1223 = new infraAjaxAutoCompletar('hdnIdAssuntoTipoProcesso', 'txtAssuntoTipoProcesso', ''); + objAutoCompletarAssuntoRI1223 = new infraAjaxAutoCompletar('hdnIdAssuntoTipoProcesso', 'txtAssuntoTipoProcesso', ''); objAutoCompletarAssuntoRI1223.limparCampo = true; objAutoCompletarAssuntoRI1223.prepararExecucao = function() { return 'palavras_pesquisa=' + document.getElementById('txtAssuntoTipoProcesso').value; }; - objAutoCompletarAssuntoRI1223.selecionar('', 'formatarParametrosJavaScript($strDescricaoAssunto, false) ?>'); + objAutoCompletarAssuntoRI1223.selecionar('', 'formatarParametrosJavaScript($strDescricaoAssunto, false) ?>'); infraEfeitoTabelas(); } @@ -267,21 +264,21 @@ function clonarSelecionados(hdnInfraItensSelecionados) { PaginaSEI::getInstance()->abrirBody($strTitulo, 'onload="inicializar();"'); ?> -
+ montarBarraComandosSuperior($arrComandos); PaginaSEI::getInstance()->abrirAreaDados('10em'); ?> - + =", "4.0.0")) { ?> - + - + fecharAreaDados(); PaginaSEI::getInstance()->montarAreaTabela($strResultado, $numRegistros); @@ -289,13 +286,13 @@ function clonarSelecionados(hdnInfraItensSelecionados) { PaginaSEI::getInstance()->montarBarraComandosInferior($arrComandos); ?>
- validarLink(); - $objSessaoSEI->validarPermissao($_GET['acao']); + include_once DIR_SEI_WEB . '/SEI.php'; + session_start(); + $objSessaoSEI = SessaoSEI::getInstance(); + $objPaginaSEI = PaginaSEI::getInstance(); + $objSessaoSEI->validarLink(); + $objSessaoSEI->validarPermissao($_GET['acao']); - $objPaginaSEI->salvarCamposPost(array('txtProcedimentoFormatado')); + $objPaginaSEI->salvarCamposPost(array('txtProcedimentoFormatado')); switch ($_GET['acao']) { case 'pen_tramita_em_bloco_protocolo_excluir': - $arrExcluidos = array(); + $arrExcluidos = array(); try { - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrStrIds = $objPaginaSEI->getArrStrItensSelecionados(); - $arrObjTramiteBlocoProtocoloDTO = array(); + $arrStrIds = $objPaginaSEI->getArrStrItensSelecionados(); + $arrObjTramiteBlocoProtocoloDTO = array(); if (count($arrStrIds) > 0) { for ($i = 0; $i < count($arrStrIds); $i++) { $arrStrIdComposto = explode('-', $arrStrIds[$i]); @@ -30,209 +30,208 @@ } } elseif (isset($_GET['hdnInfraItensSelecionados'])) { - $arrStrIdComposto = explode('-', $_GET['hdnInfraItensSelecionados']); - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setNumIdBlocoProcesso($arrStrIdComposto[0]); - $objPenBlocoProcessoDTO->setDblIdProtocolo($arrStrIdComposto[1]); - $objPenBlocoProcessoDTO->setNumIdBloco($arrStrIdComposto[2]); - $objPenBlocoProcessoDTO->retNumIdAndamento(); - $arrObjTramiteBlocoProtocoloDTO[] = $objPenBlocoProcessoDTO; + $arrStrIdComposto = explode('-', $_GET['hdnInfraItensSelecionados']); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setNumIdBlocoProcesso($arrStrIdComposto[0]); + $objPenBlocoProcessoDTO->setDblIdProtocolo($arrStrIdComposto[1]); + $objPenBlocoProcessoDTO->setNumIdBloco($arrStrIdComposto[2]); + $objPenBlocoProcessoDTO->retNumIdAndamento(); + $arrObjTramiteBlocoProtocoloDTO[] = $objPenBlocoProcessoDTO; } $contemValidacoes = $objPenBlocoProcessoRN->verificarExclusaoBloco($arrObjTramiteBlocoProtocoloDTO); $arrExcluidos = $objPenBlocoProcessoRN->excluir($arrObjTramiteBlocoProtocoloDTO); if (!empty($arrExcluidos)) { - $dblIdBloco = $arrObjTramiteBlocoProtocoloDTO[0]->getNumIdBloco(); - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setNumId($dblIdBloco); - $objTramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoDTO->retStrStaEstado(); - $objTramiteEmBlocoDTO->retNumOrdem(); + $dblIdBloco = $arrObjTramiteBlocoProtocoloDTO[0]->getNumIdBloco(); + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($dblIdBloco); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retStrStaEstado(); + $objTramiteEmBlocoDTO->retNumOrdem(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); if ($blocoResultado != null) { - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $objPenBlocoProcessoRN->atualizarEstadoDoBloco($dblIdBloco); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $objPenBlocoProcessoRN->atualizarEstadoDoBloco($dblIdBloco); } } if (!is_null($contemValidacoes)) { - PaginaSEI::getInstance()->setStrMensagem($contemValidacoes); + PaginaSEI::getInstance()->setStrMensagem($contemValidacoes); } else { - PaginaSEI::getInstance()->setStrMensagem('Operao realizada com sucesso.'); + PaginaSEI::getInstance()->setStrMensagem('Operao realizada com sucesso.'); } } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'].'&id_bloco='.$_GET['id_bloco'])); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'].'&id_bloco='.$_GET['id_bloco'])); die; case 'pen_tramita_em_bloco_protocolo_listar': - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setNumId($_GET['id_bloco']); - $objTramiteEmBlocoDTO->retNumOrdem(); + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($_GET['id_bloco']); + $objTramiteEmBlocoDTO->retNumOrdem(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); - $strTitulo = 'Processos do Bloco ' . $blocoResultado->getNumOrdem() . ':'; + $strTitulo = 'Processos do Bloco ' . $blocoResultado->getNumOrdem() . ':'; break; default: throw new InfraException("Ao '" . $_GET['acao'] . "' no reconhecida."); } - $arrComandos = array(); - $arrComandos[] = ''; - $arrComandos[] = ''; - - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_bloco']); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdBloco(); - $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcessoDTO->retNumSequencia(); - $objPenBlocoProcessoDTO->retStrNomeUsuario(); - $objPenBlocoProcessoDTO->retDthEnvio(); - $objPenBlocoProcessoDTO->retStrUnidadeDestino(); - $objPenBlocoProcessoDTO->retNumIdUsuario(); - $objPenBlocoProcessoDTO->retNumIdUnidadeBloco(); - $objPenBlocoProcessoDTO->retStrStaEstadoProtocolo(); - $objPenBlocoProcessoDTO->retStrStaEstadoBloco(); - $objPenBlocoProcessoDTO->retNumIdAndamento(); - - $strPalavrasPesquisa = PaginaSEI::getInstance()->recuperarCampo('txtProcedimentoFormatado'); - if ($strPalavrasPesquisa!=''){ - $objPenBlocoProcessoDTO->setStrPalavrasPesquisa($strPalavrasPesquisa); + $arrComandos = array(); + $arrComandos[] = ''; + $arrComandos[] = ''; + + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setNumIdBloco($_GET['id_bloco']); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->retNumSequencia(); + $objPenBlocoProcessoDTO->retStrNomeUsuario(); + $objPenBlocoProcessoDTO->retDthEnvio(); + $objPenBlocoProcessoDTO->retStrUnidadeDestino(); + $objPenBlocoProcessoDTO->retNumIdUsuario(); + $objPenBlocoProcessoDTO->retNumIdUnidadeBloco(); + $objPenBlocoProcessoDTO->retStrStaEstadoProtocolo(); + $objPenBlocoProcessoDTO->retStrStaEstadoBloco(); + $objPenBlocoProcessoDTO->retNumIdAndamento(); + + $strPalavrasPesquisa = PaginaSEI::getInstance()->recuperarCampo('txtProcedimentoFormatado'); + if ($strPalavrasPesquisa!='') { + $objPenBlocoProcessoDTO->setStrPalavrasPesquisa($strPalavrasPesquisa); } - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listarProtocolosBloco($objPenBlocoProcessoDTO); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listarProtocolosBloco($objPenBlocoProcessoDTO); - $arrComandos = array(); + $arrComandos = array(); - $arrComandos[] = ''; - $arrComandos[] = ''; + $arrComandos[] = ''; + $arrComandos[] = ''; - $objPaginaSEI->prepararPaginacao($objPenBlocoProcessoDTO); - $objPaginaSEI->processarPaginacao($objPenBlocoProcessoDTO); - $objPaginaSEI->prepararOrdenacao($objPenBlocoProcessoDTO, 'IdProtocolo', InfraDTO::$TIPO_ORDENACAO_DESC); + $objPaginaSEI->prepararPaginacao($objPenBlocoProcessoDTO); + $objPaginaSEI->processarPaginacao($objPenBlocoProcessoDTO); + $objPaginaSEI->prepararOrdenacao($objPenBlocoProcessoDTO, 'IdProtocolo', InfraDTO::$TIPO_ORDENACAO_DESC); - $numRegistros = count($arrPenBlocoProcessoDTO); + $numRegistros = count($arrPenBlocoProcessoDTO); if ($numRegistros > 0) { - $arrComandos[] = ''; - $strResultado = ''; - $strSumarioTabela = 'Tabela de Processo em Bloco.'; - $strCaptionTabela = 'Processo em Bloco'; - $strResultado .= '' . "\n"; - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - $strCssTr = ''; - - $situacaoPodeExcluir = array( + $arrComandos[] = ''; + $strResultado = ''; + $strSumarioTabela = 'Tabela de Processo em Bloco.'; + $strCaptionTabela = 'Processo em Bloco'; + $strResultado .= '
' . $objPaginaSEI->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . $objPaginaSEI->getThCheck() . ''; - $strResultado .= '
'; - $strResultado .= '
Seq
'; - $strResultado .= '
Ordenar Processo Ascendente
'; - $strResultado .= '
Ordenar Processo Descendente
'; - $strResultado .= '
'; - $strResultado .= '
'; - $strResultado .= '
'; - $strResultado .= '
Processo
'; - $strResultado .= '
Ordenar Processo Ascendente
'; - $strResultado .= '
Ordenar Processo Descendente
'; - $strResultado .= '
'; - $strResultado .= '
UsurioData do EnvioUnidade DestinoSituaoAes
' . "\n"; + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; + $strCssTr = ''; + + $situacaoPodeExcluir = array( ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ); + ); - foreach ($arrPenBlocoProcessoDTO as $i => $objPenBlocoProcessoDTO) { - $strCssTr = ($strCssTr == '') ? '' : ''; - $strResultado .= $strCssTr; + foreach ($arrPenBlocoProcessoDTO as $i => $objPenBlocoProcessoDTO) { + $strCssTr = ($strCssTr == '') ? '' : ''; + $strResultado .= $strCssTr; - $numIdBlocoProtocolo = $objPenBlocoProcessoDTO->getNumIdBlocoProcesso().'-'.$objPenBlocoProcessoDTO->getDblIdProtocolo().'-'.$_GET['id_bloco']; - $strResultado .= ''; - $strResultado .= ''; + $numIdBlocoProtocolo = $objPenBlocoProcessoDTO->getNumIdBlocoProcesso().'-'.$objPenBlocoProcessoDTO->getDblIdProtocolo().'-'.$_GET['id_bloco']; + $strResultado .= ''; + $strResultado .= ''; - $strResultado .= ''; + $strResultado .= '' . $procedimento->getStrProtocoloProcedimentoFormatado() . ''; + $strResultado .= ''; - if ($objPenBlocoProcessoDTO->getStrStaEstadoBloco() != TramiteEmBlocoRN::$TE_ABERTO) { - $strResultado .= ''; - $strResultado .= ''; - $strResultado .= ''; - } else { - $strResultado .= str_repeat('' . "\n", 3); - } + if ($objPenBlocoProcessoDTO->getStrStaEstadoBloco() != TramiteEmBlocoRN::$TE_ABERTO) { + $strResultado .= ''; + $strResultado .= ''; + $strResultado .= ''; + } else { + $strResultado .= str_repeat('' . "\n", 3); + } - $strResultado .= '' . "\n"; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: + $strResultado .= ''; + break; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA: + $strResultado .= ''; + break; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE: + $strResultado .= ''; + break; + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO: + if(is_null($objPenBlocoProcessoDTO->getNumIdAndamento())) { + $strResultado .= 'Em aberto'; + break; + } + $strResultado .= ''; + break; + default: + $strResultado .= 'Em aberto'; + break; + } + $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; + $strResultado .= '' . "\n"; } - $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - } - $strResultado .= '
' . $objPaginaSEI->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . $objPaginaSEI->getThCheck() . ''; + $strResultado .= '
'; + $strResultado .= '
Seq
'; + $strResultado .= '
Ordenar Processo Ascendente
'; + $strResultado .= '
Ordenar Processo Descendente
'; + $strResultado .= '
'; + $strResultado .= '
'; + $strResultado .= '
'; + $strResultado .= '
Processo
'; + $strResultado .= '
Ordenar Processo Ascendente
'; + $strResultado .= '
Ordenar Processo Descendente
'; + $strResultado .= '
'; + $strResultado .= '
UsurioData do EnvioUnidade DestinoSituaoAes
' . $objPaginaSEI->getTrCheck($i, $numIdBlocoProtocolo, $numIdBlocoProtocolo) . '' . ($i + 1) . '' . $objPaginaSEI->getTrCheck($i, $numIdBlocoProtocolo, $numIdBlocoProtocolo) . '' . ($i + 1) . ''; - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); - $objProcedimentoDTO->setDblIdProcedimento($objPenBlocoProcessoDTO->getDblIdProtocolo()); + $strResultado .= ''; + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->setDblIdProcedimento($objPenBlocoProcessoDTO->getDblIdProtocolo()); - $objProcedimentoRN = new ProcedimentoRN(); - $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); + $objProcedimentoRN = new ProcedimentoRN(); + $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - $strResultado .= '' . $procedimento->getStrProtocoloProcedimentoFormatado() . ''; - $strResultado .= ''. PaginaSEI::tratarHTML($objPenBlocoProcessoDTO->getStrNomeUsuario()) . ''. PaginaSEI::tratarHTML($objPenBlocoProcessoDTO->getDthEnvio()) . ''. PaginaSEI::tratarHTML($objPenBlocoProcessoDTO->getStrUnidadeDestino()) . ''. PaginaSEI::tratarHTML($objPenBlocoProcessoDTO->getStrNomeUsuario()) . ''. PaginaSEI::tratarHTML($objPenBlocoProcessoDTO->getDthEnvio()) . ''. PaginaSEI::tratarHTML($objPenBlocoProcessoDTO->getStrUnidadeDestino()) . '' . "\n"; - switch ($objPenBlocoProcessoDTO->getNumIdAndamento()) { - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO: - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE: - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO: - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO: - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: - $strResultado .= ''; - break; - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: - $strResultado .= ''; - break; - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA: - $strResultado .= ''; - break; - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO: - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE: - $strResultado .= ''; - break; - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO: - if(is_null($objPenBlocoProcessoDTO->getNumIdAndamento())){ - $strResultado .= 'Em aberto'; + $strResultado .= '' . "\n"; + switch ($objPenBlocoProcessoDTO->getNumIdAndamento()) { + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: + $strResultado .= ''; break; - } - $strResultado .= ''; - break; - default: - $strResultado .= 'Em aberto'; - break; - } - $strResultado .= ''. "\n"; + $strResultado .= ''. "\n"; - if ( - $objPenBlocoProcessoDTO->getNumIdUnidadeBloco() == SessaoSEI::getInstance()->getNumIdUnidadeAtual() - && $objPenBlocoProcessoDTO->getNumIdAndamento() === null - ) { - $strResultado .= 'Excluir processo '; + if ($objPenBlocoProcessoDTO->getNumIdUnidadeBloco() == SessaoSEI::getInstance()->getNumIdUnidadeAtual() + && $objPenBlocoProcessoDTO->getNumIdAndamento() === null + ) { + $strResultado .= 'Excluir processo '; + } + $strResultado .= '
'; + $strResultado .= ''; } - $arrComandos[] = ''; + $arrComandos[] = ''; } catch (Exception $e) { - $objPaginaSEI->processarExcecao($e); + $objPaginaSEI->processarExcecao($e); } $objPaginaSEI->montarDocType(); @@ -269,7 +268,7 @@ } .dataTables_paginate .paginate_button.current { - background-color: var(--color-primary-default); + background-color: var(--infra-esquema-cor-clara); color: #fff; } @@ -402,14 +401,14 @@ function onClickBtnTramitarProcessos() { $objPaginaSEI->fecharHead(); $objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); ?> -
+ montarBarraComandosSuperior($arrComandos); $objPaginaSEI->abrirAreaDados('4.5em'); ?> - + fecharAreaDados(); $objPaginaSEI->montarAreaTabela($strResultado, $numRegistros); diff --git a/src/pen_tramite_bloco_listar.php b/src/pen_tramite_bloco_listar.php old mode 100644 new mode 100755 index 0b5a8bc2d..d0d10090a --- a/src/pen_tramite_bloco_listar.php +++ b/src/pen_tramite_bloco_listar.php @@ -4,239 +4,239 @@ try { - session_start(); + session_start(); - $objPaginaSEI = PaginaSEI::getInstance(); - $objSessaoSEI = SessaoSEI::getInstance(); + $objPaginaSEI = PaginaSEI::getInstance(); + $objSessaoSEI = SessaoSEI::getInstance(); - $strActionPadrao = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . $_GET['acao'] . '&acao_origem=' . $_GET['acao'] . '&id_documento=' . $_GET['id_documento']); - PaginaSEI::getInstance()->salvarCamposPost(array('txtPalavrasPesquisaBloco', 'chakSinEstadoGerado', 'selUnidadeGeradora', 'hdnMeusBlocos')); + $strActionPadrao = SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . $_GET['acao'] . '&acao_origem=' . $_GET['acao'] . '&id_documento=' . $_GET['id_documento']); + PaginaSEI::getInstance()->salvarCamposPost(array('txtPalavrasPesquisaBloco', 'chakSinEstadoGerado', 'selUnidadeGeradora', 'hdnMeusBlocos')); - $strTitulo = 'Blocos de Trmite Externo'; + $strTitulo = 'Blocos de Trmite Externo'; switch ($_GET['acao']) { case 'md_pen_tramita_em_bloco_excluir': try { - $arrStrIds = PaginaSEI::getInstance()->getArrStrItensSelecionados(); - $arrObjTramiteEmBlocoDTO = array(); - $arrIds = array(); + $arrStrIds = PaginaSEI::getInstance()->getArrStrItensSelecionados(); + $arrObjTramiteEmBlocoDTO = array(); + $arrIds = array(); if (count($arrStrIds) > 0) { for ($i = 0; $i < count($arrStrIds); $i++) { $arrIds[] = $arrStrIds[$i]; } } elseif (isset($_GET['hdnInfraItensSelecionados'])) { - $arrIds[] = intval($_GET['hdnInfraItensSelecionados']); + $arrIds[] = intval($_GET['hdnInfraItensSelecionados']); } - $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $tramiteEmBlocoDTO->setNumId($arrIds, InfraDTO::$OPER_IN); - $tramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); - $tramiteEmBlocoDTO->retNumId(); + $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $tramiteEmBlocoDTO->setNumId($arrIds, InfraDTO::$OPER_IN); + $tramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); + $tramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $arrTramiteEmBloco = $objTramiteEmBlocoRN->listar($tramiteEmBlocoDTO); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $arrTramiteEmBloco = $objTramiteEmBlocoRN->listar($tramiteEmBlocoDTO); if ($arrTramiteEmBloco == null) { - $objPaginaSEI->adicionarMensagem('Blocos que no esto no estado "aberto" no podem ser excludos.', InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); - exit(0); + $objPaginaSEI->adicionarMensagem('Blocos que no esto no estado "aberto" no podem ser excludos.', InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + exit(0); } - $arrObjTramiteEmBloco = []; - $excluir = true; + $arrObjTramiteEmBloco = []; + $excluir = true; foreach ($arrTramiteEmBloco as $objTramiteEmBloco) { - $PenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $PenBlocoProcessoDTO->setNumIdBloco($objTramiteEmBloco->getNumId()); - $PenBlocoProcessoDTO->retNumIdBloco(); - $PenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $PenBlocoProcessoDTO->retDblIdProtocolo(); - - $PenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrPenBlocoProcessoRN = $PenBlocoProcessoRN->listar($PenBlocoProcessoDTO); + $PenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $PenBlocoProcessoDTO->setNumIdBloco($objTramiteEmBloco->getNumId()); + $PenBlocoProcessoDTO->retNumIdBloco(); + $PenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $PenBlocoProcessoDTO->retDblIdProtocolo(); + + $PenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcessoRN = $PenBlocoProcessoRN->listar($PenBlocoProcessoDTO); if ($arrPenBlocoProcessoRN == null) { - $arrObjTramiteEmBloco[] = $objTramiteEmBloco; + $arrObjTramiteEmBloco[] = $objTramiteEmBloco; } else { - $excluir = false; + $excluir = false; } } - $objTramiteEmBlocoRN->excluir($arrObjTramiteEmBloco); + $objTramiteEmBlocoRN->excluir($arrObjTramiteEmBloco); if ($excluir == false) { - $objPaginaSEI->adicionarMensagem('Prezado(a) usurio(a), existe(m) Bloco(s) de Trmite Externo com processos. Realize a excluso desses processos, antes de realizar a excluso do bloco.', InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); - exit(0); + $objPaginaSEI->adicionarMensagem('Prezado(a) usurio(a), existe(m) Bloco(s) de Trmite Externo com processos. Realize a excluso desses processos, antes de realizar a excluso do bloco.', InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + exit(0); } - $objPaginaSEI->adicionarMensagem('Bloco excludo com sucesso!', 5); + $objPaginaSEI->adicionarMensagem('Bloco excludo com sucesso!', 5); } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); exit(0); case 'md_pen_tramita_em_bloco': - $arrEstadosSelecionados = []; - $checkboxesEstados = [ + $arrEstadosSelecionados = []; + $checkboxesEstados = [ 'chkSinEstadoGerado' => TramiteEmBlocoRN::$TE_ABERTO, 'chkSinEstadoDisponibilizado' => TramiteEmBlocoRN::$TE_DISPONIBILIZADO, 'chkSinEstadoConcluido' => TramiteEmBlocoRN::$TE_CONCLUIDO - ]; + ]; - foreach ($checkboxesEstados as $checkbox => $strEstado) { - if (isset($_POST[$checkbox])) { - $arrEstadosSelecionados[] = $strEstado; + foreach ($checkboxesEstados as $checkbox => $strEstado) { + if (isset($_POST[$checkbox])) { + $arrEstadosSelecionados[] = $strEstado; + } } - } - $strPalavrasPesquisa = PaginaSEI::getInstance()->recuperarCampo('txtPalavrasPesquisa'); - $setStrPalavrasPesquisa = $strPalavrasPesquisa != '' ? $objBlocoDTOPesquisa->setStrPalavrasPesquisa($strPalavrasPesquisa) : ''; + $strPalavrasPesquisa = PaginaSEI::getInstance()->recuperarCampo('txtPalavrasPesquisa'); + $setStrPalavrasPesquisa = $strPalavrasPesquisa != '' ? $objBlocoDTOPesquisa->setStrPalavrasPesquisa($strPalavrasPesquisa) : ''; break; case 'pen_tramite_em_bloco_cancelar': - $arrEstadosSelecionados = []; - $arrStrIds = isset($_GET['id_tramita_em_bloco']) ? [$_GET['id_tramita_em_bloco']] : PaginaSEI::getInstance()->getArrStrItensSelecionados(); + $arrEstadosSelecionados = []; + $arrStrIds = isset($_GET['id_tramita_em_bloco']) ? [$_GET['id_tramita_em_bloco']] : PaginaSEI::getInstance()->getArrStrItensSelecionados(); if (count($arrStrIds) > 0) { - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoRN->cancelar($arrStrIds); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->cancelar($arrStrIds); - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setNumId($_GET['id_tramita_em_bloco']); - $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($_GET['id_tramita_em_bloco']); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); } - PaginaSEI::getInstance()->setStrMensagem('Operao realizada com sucesso.'); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + PaginaSEI::getInstance()->setStrMensagem('Operao realizada com sucesso.'); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); break; default: throw new InfraException("Ao '" . $_GET['acao'] . "' no reconhecida."); } - $objFiltroDTO = new TramiteEmBlocoDTO(); - $objFiltroDTO->retNumId(); - $objFiltroDTO->retNumOrdem(); - $objFiltroDTO->retStrStaEstado(); - $objFiltroDTO->retStrDescricao(); - $objFiltroDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objFiltroDTO->setStrPalavrasPesquisa($setStrPalavrasPesquisa); + $objFiltroDTO = new TramiteEmBlocoDTO(); + $objFiltroDTO->retNumId(); + $objFiltroDTO->retNumOrdem(); + $objFiltroDTO->retStrStaEstado(); + $objFiltroDTO->retStrDescricao(); + $objFiltroDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objFiltroDTO->setStrPalavrasPesquisa($setStrPalavrasPesquisa); if (count($arrEstadosSelecionados)) { - $objFiltroDTO->setStrStaEstado($arrEstadosSelecionados, InfraDTO::$OPER_IN); + $objFiltroDTO->setStrStaEstado($arrEstadosSelecionados, InfraDTO::$OPER_IN); } - PaginaSEI::getInstance()->prepararOrdenacao($objFiltroDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + PaginaSEI::getInstance()->prepararOrdenacao($objFiltroDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); - $objTramiteEmBloco = new TramiteEmBlocoRN(); - $arrObjBlocosListar = $objTramiteEmBloco->listar($objFiltroDTO); + $objTramiteEmBloco = new TramiteEmBlocoRN(); + $arrObjBlocosListar = $objTramiteEmBloco->listar($objFiltroDTO); - // Cabealho da tabela - $colunas = [ + // Cabealho da tabela + $colunas = [ 'id' => 'Id', 'ordem' => 'Nmero', 'estado' => 'Estado', 'descricao' => 'Descrio', - ]; - - // Corpo da tabela - $tabelaLinhas = []; - foreach ($arrObjBlocosListar as $objFiltro) { - $tabelaLinhas[] = [ - 'id' => $objFiltro->getNumId(), - 'ordem' => $objFiltro->getNumOrdem(), - 'estado' => $objTramiteEmBloco->retornarEstadoDescricao($objFiltro->getStrStaEstado()), - 'descricao' => $objFiltro->getStrDescricao(), ]; - } - $numRegistros = count($arrObjBlocosListar); - - $arrComandos = []; - $arrComandos[] = ''; - $arrComandos[] = ''; - $arrComandos[] = ''; - if ($numRegistros > 0) { - $arrComandos[] = ''; - } + // Corpo da tabela + $tabelaLinhas = []; + foreach ($arrObjBlocosListar as $objFiltro) { + $tabelaLinhas[] = [ + 'id' => $objFiltro->getNumId(), + 'ordem' => $objFiltro->getNumOrdem(), + 'estado' => $objTramiteEmBloco->retornarEstadoDescricao($objFiltro->getStrStaEstado()), + 'descricao' => $objFiltro->getStrDescricao(), + ]; + } - // Incio da tabela - $strSumarioTabela = 'Tabela de Blocos Tramitados.'; - $strCaptionTabela = 'Blocos'; + $numRegistros = count($arrObjBlocosListar); - $strResultado = "" . "\n"; - $strResultado .= ''; - $strResultado .= ""; - $strResultado .= '' . "\n"; + $arrComandos = []; + $arrComandos[] = ''; + $arrComandos[] = ''; + $arrComandos[] = ''; + if ($numRegistros > 0) { + $arrComandos[] = ''; + } - // Adicionar colunas dinamicamente - foreach ($colunas as $key => $coluna) { - if ($key != 'id') { - $strResultado .= '
' . PaginaSEI::getInstance()->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . PaginaSEI::getInstance()->getThCheck() . ''; + // Incio da tabela + $strSumarioTabela = 'Tabela de Blocos Tramitados.'; + $strCaptionTabela = 'Blocos'; - $strResultado .= '
'; - $strResultado .= "
{$coluna}
"; - $strResultado .= '
Ordenar Processo Ascendente
'; - $strResultado .= '
Ordenar Processo Descendente
'; - $strResultado .= '
'; + $strResultado = '' . "\n"; + $strResultado .= ''; + $strResultado .= ""; + $strResultado .= '' . "\n"; - $strResultado .= '' . "\n"; - } - } - // Adicionar coluna aes - $strResultado .= '' . "\n"; - $strResultado .= ""; - foreach ($tabelaLinhas as $cont => $linha) { - - $strResultado .= ""; - $strResultado .= ''; - $idBlocoTramite = ''; + // Adicionar colunas dinamicamente foreach ($colunas as $key => $coluna) { - $idBlocoTramite = $linha['id']; + if ($key != 'id') { + $strResultado .= '"; + $strResultado .= '
'; + $strResultado .= "
{$coluna}
"; + $strResultado .= '
Ordenar Processo Ascendente
'; + $strResultado .= '
Ordenar Processo Descendente
'; + $strResultado .= '
'; + + $strResultado .= '' . "\n"; } - } + // Adicionar coluna aes + $strResultado .= '' . "\n"; + $strResultado .= ""; + foreach ($tabelaLinhas as $cont => $linha) { + + $strResultado .= ""; + $strResultado .= ''; + $idBlocoTramite = ''; + foreach ($colunas as $key => $coluna) { + $idBlocoTramite = $linha['id']; + + if (!is_null($linha[$key]) && $key != 'id') { + $strResultado .= ""; + } + + } - $strResultado .= ""; - $strResultado .= ""; - } + $strResultado .= ""; + $strResultado .= ""; + } - // Fim da tabela - $strResultado .= "
' . PaginaSEI::getInstance()->gerarCaptionTabela($strCaptionTabela, $numRegistros) . '
' . PaginaSEI::getInstance()->getThCheck() . ''; - $strResultado .= "
Aes
"; - $strResultado .= '
' . PaginaSEI::getInstance()->getTrCheck($cont, $linha['id'], $linha['id']) . ''; - if (!is_null($linha[$key]) && $key != 'id') { - $strResultado .= " {$linha[$key]} '; + $strResultado .= "
Aes
"; + $strResultado .= '
' . PaginaSEI::getInstance()->getTrCheck($cont, $linha['id'], $linha['id']) . ' {$linha[$key]} "; - // Tramitar bloco - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoTramite); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdBloco(); + $strResultado .= ""; + // Tramitar bloco + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoTramite); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBloco(); - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); - $bolUnidadeMapeada = $objTramiteEmBloco->existeUnidadeMapeadaParaUnidadeLogada(); - if (!empty($arrPenBlocoProcesso) && $bolUnidadeMapeada && $linha['estado'] == $objTramiteEmBloco->retornarEstadoDescricao(TramiteEmBlocoRN::$TE_ABERTO)) { - $strResultado .= 'getDiretorioImagens()) . '" title="Tramitar Bloco" alt="Bloco-' . $cont . '" class="infraImg iconTramita" /> '; - } + $bolUnidadeMapeada = $objTramiteEmBloco->existeUnidadeMapeadaParaUnidadeLogada(); + if (!empty($arrPenBlocoProcesso) && $bolUnidadeMapeada && $linha['estado'] == $objTramiteEmBloco->retornarEstadoDescricao(TramiteEmBlocoRN::$TE_ABERTO)) { + $strResultado .= 'getDiretorioImagens()) . '" title="Tramitar Bloco" alt="Bloco-' . $cont . '" class="infraImg iconTramita" /> '; + } - // visualizar - $strResultado .= 'Visualizar Processos '; - // alterar - $strResultado .= 'Alterar Bloco '; - if ($linha['estado'] == $objTramiteEmBloco->retornarEstadoDescricao(TramiteEmBlocoRN::$TE_ABERTO)) { - // Excluir - $strResultado .= 'Excluir Bloco '; - } + // visualizar + $strResultado .= 'Visualizar Processos '; + // alterar + $strResultado .= 'Alterar Bloco '; + if ($linha['estado'] == $objTramiteEmBloco->retornarEstadoDescricao(TramiteEmBlocoRN::$TE_ABERTO)) { + // Excluir + $strResultado .= 'Excluir Bloco '; + } - $strResultado .= "
"; + // Fim da tabela + $strResultado .= "
"; } catch (Exception $e) { - $objPaginaSEI->processarExcecao($e); + $objPaginaSEI->processarExcecao($e); } $objPaginaSEI->montarDocType(); @@ -340,7 +340,7 @@ } .dataTables_paginate .paginate_button.current { - background-color: var(--color-primary-default); + background-color: var(--infra-esquema-cor-clara); color: #fff; } @@ -348,7 +348,10 @@ #tblBlocos_filter { position: absolute; opacity: 0; - } + } + + #frmBlocoLista #tblBlocos_wrapper label:first-of-type{font-size: 12px;} + #frmBlocoLista #tblBlocos_wrapper select:first-of-type{font-size: 11px;} montarJavaScript(); $acaoOrigem=$_GET['acao_origem']; ?> @@ -476,14 +479,14 @@ function onClickBtnExcluir() { $objPaginaSEI->fecharHead(); $objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); ?> - + montarBarraComandosSuperior($arrComandos); + $objPaginaSEI->montarBarraComandosSuperior($arrComandos); ?>
- +
@@ -491,17 +494,17 @@ function onClickBtnExcluir() { Estado
- id="chkSinEstadoGerado" name="chkSinEstadoGerado" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoGerado) ?> tabindex="getProxTabDados() ?>" /> + id="chkSinEstadoGerado" name="chkSinEstadoGerado" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoGerado) ?> tabindex="getProxTabDados() ?>" />
- id="chkSinEstadoDisponibilizado" name="chkSinEstadoDisponibilizado" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoDisponibilizado) ?> tabindex="getProxTabDados() ?>" /> + id="chkSinEstadoDisponibilizado" name="chkSinEstadoDisponibilizado" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoDisponibilizado) ?> tabindex="getProxTabDados() ?>" />
- name="chkSinEstadoConcluido" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoConcluido) ?> tabindex="getProxTabDados() ?>" /> + name="chkSinEstadoConcluido" class="infraCheckbox CheckboxEstado" setCheckbox($strSinEstadoConcluido) ?> tabindex="getProxTabDados() ?>" />
@@ -510,12 +513,12 @@ function onClickBtnExcluir() {
- + montarAreaTabela($strResultado, $numRegistros, true); - $objPaginaSEI->montarAreaDebug(); - $objPaginaSEI->montarBarraComandosInferior($arrComandos); + $objPaginaSEI->montarAreaTabela($strResultado, $numRegistros, true); + $objPaginaSEI->montarAreaDebug(); + $objPaginaSEI->montarBarraComandosInferior($arrComandos); ?> salvarCamposPost(array('txtDescricao', 'hdnIdBloco')); + $objPaginaSEI->salvarCamposPost(['txtDescricao', 'hdnIdBloco']); - $strParametros = ''; + $strParametros = ''; if (isset($_GET['arvore'])) { - PaginaSEI::getInstance()->setBolArvore($_GET['arvore']); - $strParametros .= '&arvore=' . $_GET['arvore']; + PaginaSEI::getInstance()->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore=' . $_GET['arvore']; } if (isset($_GET['id_procedimento'])) { - $strParametros .= "&id_procedimento=" . $_GET['id_procedimento']; + $strParametros .= "&id_procedimento=" . $_GET['id_procedimento']; } if (isset($_GET['id_documento'])) { - $strParametros .= "&id_documento=" . $_GET['id_documento']; + $strParametros .= "&id_documento=" . $_GET['id_documento']; } - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $strDesabilitar = ''; - $arrComandos = array(); + $strDesabilitar = ''; + $arrComandos = []; switch ($_GET['acao']) { case 'pen_tramite_em_bloco_cadastrar': - $strTitulo = 'Novo Bloco de Trmite Externo'; - $arrComandos[] = ''; - $arrComandos[] = ''; - - $objTramiteEmBlocoDTO->setNumId(null); - $objTramiteEmBlocoDTO->setStrStaTipo(TramiteEmBlocoRN::$TB_INTERNO); - $objTramiteEmBlocoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objTramiteEmBlocoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); - $objTramiteEmBlocoDTO->setStrDescricao(null); - $objTramiteEmBlocoDTO->setStrIdxBloco(null); - $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); + $strTitulo = 'Novo Bloco de Trmite Externo'; + $arrComandos[] = ''; + $arrComandos[] = ''; + + $objTramiteEmBlocoDTO->setNumId(null); + $objTramiteEmBlocoDTO->setStrStaTipo(TramiteEmBlocoRN::$TB_INTERNO); + $objTramiteEmBlocoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objTramiteEmBlocoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objTramiteEmBlocoDTO->setStrDescricao(null); + $objTramiteEmBlocoDTO->setStrIdxBloco(null); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); if (isset($_POST['sbmCadastrarTramiteEmBloco'])) { - // Calcula a ordem do novo bloco - $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $tramiteEmBlocoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $tramiteEmBlocoDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_DESC); - $tramiteEmBlocoDTO->retNumOrdem(); - $tramiteEmBlocoDTO->setNumMaxRegistrosRetorno(1); + // Calcula a ordem do novo bloco + $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $tramiteEmBlocoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $tramiteEmBlocoDTO->setOrdNumOrdem(InfraDTO::$TIPO_ORDENACAO_DESC); + $tramiteEmBlocoDTO->retNumOrdem(); + $tramiteEmBlocoDTO->setNumMaxRegistrosRetorno(1); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $tramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($tramiteEmBlocoDTO); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $tramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($tramiteEmBlocoDTO); if ($tramiteEmBlocoDTO == null) { - $ordem = 1; + $ordem = 1; } else { - $ordem = $tramiteEmBlocoDTO->getNumOrdem() + 1; + $ordem = $tramiteEmBlocoDTO->getNumOrdem() + 1; } - $strNovaDescricao = 'Novo Bloco'; - $strDescricao = $objPaginaSEI->recuperarCampo('txtDescricao'); + $strNovaDescricao = 'Novo Bloco'; + $strDescricao = $objPaginaSEI->recuperarCampo('txtDescricao'); if ($strDescricao) { - $strNovaDescricao = $strDescricao; + $strNovaDescricao = $strDescricao; } - $objTramiteEmBlocoDTO->setStrDescricao($strNovaDescricao); - $objTramiteEmBlocoDTO->setNumOrdem($ordem); + $objTramiteEmBlocoDTO->setStrDescricao($strNovaDescricao); + $objTramiteEmBlocoDTO->setNumOrdem($ordem); try { - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->cadastrar($objTramiteEmBlocoDTO); - $objPaginaSEI->adicionarMensagem('Bloco de Trmite externo criado com sucesso!', 5); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->cadastrar($objTramiteEmBlocoDTO); + $objPaginaSEI->adicionarMensagem('Bloco de Trmite externo criado com sucesso!', 5); } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=md_pen_tramita_em_bloco&acao_origem=' . $_GET['acao'] . '&id_bloco=' . $objTramiteEmBlocoDTO->getNumId() . $strParametros . PaginaSEI::getInstance()->montarAncora($objTramiteEmBlocoDTO->getNumId()))); - exit(0); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=md_pen_tramita_em_bloco&acao_origem=' . $_GET['acao'] . '&id_bloco=' . $objTramiteEmBlocoDTO->getNumId() . $strParametros . PaginaSEI::getInstance()->montarAncora($objTramiteEmBlocoDTO->getNumId()))); + exit(0); } break; case 'pen_tramite_em_bloco_alterar': - $strTitulo = 'Alterar Trmite em Bloco'; - $arrComandos[] = ''; - $strDesabilitar = 'disabled="disabled"'; - - $hdnIdBloco = $objPaginaSEI->recuperarCampo('hdnIdBloco'); - $objTramiteEmBlocoDTO->setNumId($_GET['id_bloco'] ?: $hdnIdBloco); - $objTramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoDTO->retStrDescricao(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + $strTitulo = 'Alterar Trmite em Bloco'; + $arrComandos[] = ''; + $strDesabilitar = 'disabled="disabled"'; + + $hdnIdBloco = $objPaginaSEI->recuperarCampo('hdnIdBloco'); + $objTramiteEmBlocoDTO->setNumId($_GET['id_bloco'] ?: $hdnIdBloco); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retStrDescricao(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); if ($objTramiteEmBlocoDTO == null) { - throw new InfraException("Registro no encontrado."); + throw new InfraException("Registro no encontrado."); } - $arrComandos[] = ''; + $arrComandos[] = ''; if (isset($_POST['sbmAlterarBloco'])) { try { - $strDescricao = $objPaginaSEI->recuperarCampo('txtDescricao'); + $strDescricao = $objPaginaSEI->recuperarCampo('txtDescricao'); if ($strDescricao) { $objTramiteEmBlocoDTO->setStrDescricao($strDescricao); } - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); - PaginaSEI::getInstance()->setStrMensagem('Trmite em Bloco "' . $objTramiteEmBlocoDTO->getNumId() . '" alterado com sucesso.'); - $objPaginaSEI->adicionarMensagem('Bloco de trmite externo alterado com sucesso!', 5); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + PaginaSEI::getInstance()->setStrMensagem('Trmite em Bloco "' . $objTramiteEmBlocoDTO->getNumId() . '" alterado com sucesso.'); + $objPaginaSEI->adicionarMensagem('Bloco de trmite externo alterado com sucesso!', 5); } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'] . PaginaSEI::getInstance()->montarAncora($objTramiteEmBlocoDTO->getNumId()))); - exit(0); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'] . PaginaSEI::getInstance()->montarAncora($objTramiteEmBlocoDTO->getNumId()))); + exit(0); } break; default: throw new InfraException("Ao '" . $_GET['acao'] . "' no reconhecida."); } } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } PaginaSEI::getInstance()->montarDocType(); @@ -146,12 +146,12 @@ function inicializar(){ -if (''=='pen_tramite_em_bloco_consultar') { +if (''=='pen_tramite_em_bloco_consultar') { document.getElementById('divIdentificacao').style.display = 'block'; infraDesabilitarCamposAreaDados(); document.getElementById('btnFechar').focus(); return; -} else if (''=='pen_tramite_em_bloco_cadastrar') { +} else if (''=='pen_tramite_em_bloco_cadastrar') { document.getElementById('divIdentificacao').style.display = 'none'; document.getElementById('txtDescricao').focus(); } else { @@ -167,7 +167,7 @@ function inicializar(){ PaginaSEI::getInstance()->fecharHead(); PaginaSEI::getInstance()->abrirBody($strTitulo, 'onload="inicializar();"'); ?> -
+ montarBarraComandosSuperior($arrComandos); ?> @@ -175,14 +175,14 @@ function inicializar(){

- +
- +
- + montarAreaDebug(); diff --git a/src/pen_tramite_processo_em_bloco_cadastrar.php b/src/pen_tramite_processo_em_bloco_cadastrar.php index d3d0b30fb..3ac89cc5c 100755 --- a/src/pen_tramite_processo_em_bloco_cadastrar.php +++ b/src/pen_tramite_processo_em_bloco_cadastrar.php @@ -1,98 +1,92 @@ validarLink(); + $objSessaoSEI->validarLink(); - $objPaginaSEI->salvarCamposPost(array('hdnIdProtocolo', 'selBlocos')); - $strIdItensSelecionados = $objPaginaSEI->recuperarCampo('hdnIdProtocolo'); - $idBlocoExterno = $objPaginaSEI->recuperarCampo('selBlocos'); + $objPaginaSEI->salvarCamposPost(['hdnIdProtocolo', 'selBlocos']); + $strIdItensSelecionados = $objPaginaSEI->recuperarCampo('hdnIdProtocolo'); + $idBlocoExterno = $objPaginaSEI->recuperarCampo('selBlocos'); - $strParametros = ''; + $strParametros = ''; if (isset($_GET['arvore'])) { - PaginaSEI::getInstance()->setBolArvore($_GET['arvore']); - $strParametros .= '&arvore=' . $_GET['arvore']; + PaginaSEI::getInstance()->setBolArvore($_GET['arvore']); + $strParametros .= '&arvore=' . $_GET['arvore']; } if (isset($_GET['id_procedimento'])) { - $strParametros .= "&id_procedimento=" . $_GET['id_procedimento']; + $strParametros .= "&id_procedimento=" . $_GET['id_procedimento']; } if (isset($strIdItensSelecionados)) { - $strParametros .= "&processos=" . $strIdItensSelecionados; + $strParametros .= "&processos=" . $strIdItensSelecionados; } if (isset($_GET['processos']) && !empty($_GET['processos'])) { - $strParametros .= "&processos=" . $_GET['processos']; + $strParametros .= "&processos=" . $_GET['processos']; } - $arrComandos = []; - $arrComandos[] = ''; - $arrComandos[] = ''; + $arrComandos = []; + $arrComandos[] = ''; + $arrComandos[] = ''; switch ($_GET['acao']) { case 'pen_excluir_processo_em_bloco_tramite': try { - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); - $objProcedimentoDTO->setDblIdProcedimento($_GET['id_procedimento']); + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->setDblIdProcedimento($_GET['id_procedimento']); - $objProcedimentoRN = new ProcedimentoRN(); - $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); + $objProcedimentoRN = new ProcedimentoRN(); + $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($_GET['id_procedimento']); - $objPenBlocoProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objPenBlocoProcessoDTO->retNumIdAndamento(); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($_GET['id_procedimento']); + $objPenBlocoProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objPenBlocoProcessoDTO->retNumIdAndamento(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->retNumIdBloco(); - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); foreach($arrObjPenBlocoProcessoDTO as $objPenBlocoProcessoDTO){ - $concluido = array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE - ); + $concluido = [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE]; if ($objPenBlocoProcessoDTO->getNumIdAndamento() === null || !in_array($objPenBlocoProcessoDTO->getNumIdAndamento(), $concluido)) { - $objPenBlocoProcessoRN->excluir(array($objPenBlocoProcessoDTO)); + $objPenBlocoProcessoRN->excluir([$objPenBlocoProcessoDTO]); $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); $objPenBlocoProcessoRN->atualizarEstadoDoBloco($objPenBlocoProcessoDTO->getNumIdBloco()); } } - $strMensagem = 'O processo "' . $procedimento->getStrProtocoloProcedimentoFormatado() . '" foi removido com sucesso do bloco de trmite externo'; + $strMensagem = 'O processo "' . $procedimento->getStrProtocoloProcedimentoFormatado() . '" foi removido com sucesso do bloco de trmite externo'; } catch (Exception $e) { - $strMensagem = $e->getMessage(); - PaginaSEI::getInstance()->processarExcecao($e); + $strMensagem = $e->getMessage(); + PaginaSEI::getInstance()->processarExcecao($e); } ?> - validarPermissao($_GET['acao']); + $objSessaoSEI->validarPermissao($_GET['acao']); - $strTitulo = 'Incluir Processo no Bloco de Trmite'; + $strTitulo = 'Incluir Processo no Bloco de Trmite'; - $objProcedimentoDTO = new ProcedimentoDTO(); - $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); - $objProcedimentoDTO->setDblIdProcedimento($_GET['id_procedimento']); + $objProcedimentoDTO = new ProcedimentoDTO(); + $objProcedimentoDTO->retStrProtocoloProcedimentoFormatado(); + $objProcedimentoDTO->setDblIdProcedimento($_GET['id_procedimento']); - $objProcedimentoRN = new ProcedimentoRN(); - $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); + $objProcedimentoRN = new ProcedimentoRN(); + $procedimento = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); if (isset($_POST['sbmCadastrarProcessoEmBloco'])) { try { @@ -101,88 +95,88 @@ exit(0); } - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $validar = $objPenBlocoProcessoRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, [$_GET['id_procedimento']]); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $validar = $objPenBlocoProcessoRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, [$_GET['id_procedimento']]); if ($validar !== false) { - $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_ERRO); + $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); - exit(0); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + exit(0); } - // Esse quem vai ficar - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setNumIdBlocoProcesso(null); - $objPenBlocoProcessoDTO->setDblIdProtocolo($_GET['id_procedimento']); - $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoExterno); - $dthRegistro = date('d/m/Y H:i:s'); - $objPenBlocoProcessoDTO->setDthRegistro($dthRegistro); - $objPenBlocoProcessoDTO->setDthAtualizado($dthRegistro); - $objPenBlocoProcessoDTO->setNumIdUsuario($objSessaoSEI->getNumIdUsuario()); - $objPenBlocoProcessoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + // Esse quem vai ficar + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setNumIdBlocoProcesso(null); + $objPenBlocoProcessoDTO->setDblIdProtocolo($_GET['id_procedimento']); + $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoExterno); + $dthRegistro = date('d/m/Y H:i:s'); + $objPenBlocoProcessoDTO->setDthRegistro($dthRegistro); + $objPenBlocoProcessoDTO->setDthAtualizado($dthRegistro); + $objPenBlocoProcessoDTO->setNumIdUsuario($objSessaoSEI->getNumIdUsuario()); + $objPenBlocoProcessoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $validar = $objPenBlocoProcessoRN->validarBlocoDeTramite($_GET['id_procedimento']); + $validar = $objPenBlocoProcessoRN->validarBlocoDeTramite($_GET['id_procedimento']); if ($validar) { - $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_AVISO); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); - exit(0); + $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_AVISO); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + exit(0); } - //Verifica processo aberto em outra unidade. - $objInfraException = new InfraException(); - $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); - $objExpedirProcedimentosRN->verificarProcessosAbertoNaUnidade($objInfraException, array($_GET['id_procedimento'])); - $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); + //Verifica processo aberto em outra unidade. + $objInfraException = new InfraException(); + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + $objExpedirProcedimentosRN->verificarProcessosAbertoNaUnidade($objInfraException, [$_GET['id_procedimento']]); + $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); if (!is_null($mensagemDeErro)) { - $objPaginaSEI->adicionarMensagem($mensagemDeErro, InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); - exit(0); + $objPaginaSEI->adicionarMensagem($mensagemDeErro, InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + exit(0); } - $objExpedirProcedimentosRN->validarProcessoAbertoEmOutraUnidade($objInfraException, array($_GET['id_procedimento'])); - $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); + $objExpedirProcedimentosRN->validarProcessoAbertoEmOutraUnidade($objInfraException, [$_GET['id_procedimento']]); + $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); if (!is_null($mensagemDeErro)) { - $objPaginaSEI->adicionarMensagem($mensagemDeErro, InfraPagina::$TIPO_MSG_ERRO); - header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); - exit(0); + $objPaginaSEI->adicionarMensagem($mensagemDeErro, InfraPagina::$TIPO_MSG_ERRO); + header('Location: ' . SessaoSEI::getInstance()->assinarLink('controlador.php?acao=' . PaginaSEI::getInstance()->getAcaoRetorno() . '&acao_origem=' . $_GET['acao'])); + exit(0); } - $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->cadastrar($objPenBlocoProcessoDTO); - $strMensagem = 'Processo "' . $procedimento->getStrProtocoloProcedimentoFormatado() . '" adicionado ao bloco'; + $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->cadastrar($objPenBlocoProcessoDTO); + $strMensagem = 'Processo "' . $procedimento->getStrProtocoloProcedimentoFormatado() . '" adicionado ao bloco'; } catch (Exception $e) { - $strMensagem = $e->getMessage(); - PaginaSEI::getInstance()->processarExcecao($e); + $strMensagem = $e->getMessage(); + PaginaSEI::getInstance()->processarExcecao($e); } ?> - getArrStrItensSelecionados('Gerados'), - $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), - $objPaginaSEI->getArrStrItensSelecionados('Detalhado') - ); - $strIdItensSelecionados = $strIdItensSelecionados ?: $_GET['processos']; - $strTitulo = 'Incluir Processo(s) no Bloco de Trmite'; + $arrProtocolosOrigem = array_merge( + $objPaginaSEI->getArrStrItensSelecionados('Gerados'), + $objPaginaSEI->getArrStrItensSelecionados('Recebidos'), + $objPaginaSEI->getArrStrItensSelecionados('Detalhado') + ); + $strIdItensSelecionados = $strIdItensSelecionados ?: $_GET['processos']; + $strTitulo = 'Incluir Processo(s) no Bloco de Trmite'; if (isset($_POST['sbmCadastrarProcessoEmBloco'])) { try { - $bolInclusaoSucesso = false; - $arrMensagensErros = []; - $arrProtocolosOrigemProtocolo = explode(',', $strIdItensSelecionados); + $bolInclusaoSucesso = false; + $arrMensagensErros = []; + $arrProtocolosOrigemProtocolo = explode(',', $strIdItensSelecionados); - // Refatorar validarQuantidadeDeItensNoBloco - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $validar = $objPenBlocoProcessoRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, $arrProtocolosOrigemProtocolo); + // Refatorar validarQuantidadeDeItensNoBloco + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $validar = $objPenBlocoProcessoRN->validarQuantidadeDeItensNoBloco($idBlocoExterno, $arrProtocolosOrigemProtocolo); if ($validar !== false) { $objPaginaSEI->adicionarMensagem($validar, InfraPagina::$TIPO_MSG_ERRO); @@ -192,71 +186,69 @@ } foreach ($arrProtocolosOrigemProtocolo as $idItensSelecionados) { - $bolInclusaoErro = false; - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($idItensSelecionados); - $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoExterno); - $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcessoDTO->retNumIdBloco(); - $dtRegistro = date('d/m/Y H:i:s'); - $objPenBlocoProcessoDTO->setDthRegistro($dtRegistro); - $objPenBlocoProcessoDTO->setDthAtualizado($dtRegistro); - $objPenBlocoProcessoDTO->setNumIdUsuario($objSessaoSEI->getNumIdUsuario()); - $objPenBlocoProcessoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - - $validarPreCondicoesIncluir = $objPenBlocoProcessoRN->validarBlocoDeTramite($idItensSelecionados); + $bolInclusaoErro = false; + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($idItensSelecionados); + $objPenBlocoProcessoDTO->setNumIdBloco($idBlocoExterno); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $dtRegistro = date('d/m/Y H:i:s'); + $objPenBlocoProcessoDTO->setDthRegistro($dtRegistro); + $objPenBlocoProcessoDTO->setDthAtualizado($dtRegistro); + $objPenBlocoProcessoDTO->setNumIdUsuario($objSessaoSEI->getNumIdUsuario()); + $objPenBlocoProcessoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + + $validarPreCondicoesIncluir = $objPenBlocoProcessoRN->validarBlocoDeTramite($idItensSelecionados); if ($validarPreCondicoesIncluir != false) { $bolInclusaoErro = true; $arrMensagensErros[] = $validarPreCondicoesIncluir; }else{ - $objInfraException = new InfraException(); - $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); - $objExpedirProcedimentosRN->verificarProcessosAbertoNaUnidade($objInfraException, array($idItensSelecionados)); - $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); + $objInfraException = new InfraException(); + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + $objExpedirProcedimentosRN->verificarProcessosAbertoNaUnidade($objInfraException, [$idItensSelecionados]); + $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); if (!is_null($mensagemDeErro)) { $bolInclusaoErro = true; $arrMensagensErros[] = $mensagemDeErro; } - $objExpedirProcedimentosRN->validarProcessoAbertoEmOutraUnidade($objInfraException, array($idItensSelecionados)); - $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); + $objExpedirProcedimentosRN->validarProcessoAbertoEmOutraUnidade($objInfraException, [$idItensSelecionados]); + $mensagemDeErro = $objExpedirProcedimentosRN->trazerTextoSeContemValidacoes($objInfraException); if (!is_null($mensagemDeErro)) { - $bolInclusaoErro = true; - $arrMensagensErros[] = $mensagemDeErro; + $bolInclusaoErro = true; + $arrMensagensErros[] = $mensagemDeErro; } if ($bolInclusaoErro === false) { - $bolInclusaoSucesso = true; - $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->cadastrar($objPenBlocoProcessoDTO); + $bolInclusaoSucesso = true; + $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->cadastrar($objPenBlocoProcessoDTO); } } } - if (!empty($arrMensagensErros)) { - foreach ($arrMensagensErros as $mensagemErro) { + foreach ($arrMensagensErros as $mensagemErro) { $objPaginaSEI->adicionarMensagem($mensagemErro, InfraPagina::$TIPO_MSG_ERRO); - } } - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setNumId($idBlocoExterno); - $objTramiteEmBlocoDTO->retNumOrdem(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($idBlocoExterno); + $objTramiteEmBlocoDTO->retNumOrdem(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); if ($bolInclusaoSucesso) { - $mensagemSucesso = "Processo(s) includo(s) com sucesso no bloco {$blocoResultado->getNumOrdem()}"; + $mensagemSucesso = "Processo(s) includo(s) com sucesso no bloco {$blocoResultado->getNumOrdem()}"; } if ($bolInclusaoSucesso && !empty($arrMensagensErros)) { - $mensagemSucesso = "Os demais processos selecionados foram includos com sucesso no bloco {$blocoResultado->getNumOrdem()}"; + $mensagemSucesso = "Os demais processos selecionados foram includos com sucesso no bloco {$blocoResultado->getNumOrdem()}"; } - $objPaginaSEI->adicionarMensagem($mensagemSucesso, 5); + $objPaginaSEI->adicionarMensagem($mensagemSucesso, 5); } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } } break; @@ -264,26 +256,26 @@ throw new InfraException("Ao '" . $_GET['acao'] . "' no reconhecida."); } - //Monta o select dos blocos - $arrMapIdBloco = array(); + //Monta o select dos blocos + $arrMapIdBloco = []; - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); //($objSessaoSEI->getNumIdUnidadeAtual()); - $objTramiteEmBlocoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); - $objTramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoDTO->retNumOrdem(); - $objTramiteEmBlocoDTO->retNumIdUnidade(); - $objTramiteEmBlocoDTO->retStrDescricao(); + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_ABERTO); //($objSessaoSEI->getNumIdUnidadeAtual()); + $objTramiteEmBlocoDTO->setNumIdUnidade($objSessaoSEI->getNumIdUnidadeAtual()); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retNumOrdem(); + $objTramiteEmBlocoDTO->retNumIdUnidade(); + $objTramiteEmBlocoDTO->retStrDescricao(); if ($_GET['acao'] != 'pen_tramita_em_bloco_adicionar') { - PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); + PaginaSEI::getInstance()->prepararOrdenacao($objTramiteEmBlocoDTO, 'Id', InfraDTO::$TIPO_ORDENACAO_DESC); } - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); foreach ($objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO) as $dados) { - $arrMapIdBloco[$dados->getNumId()] = "{$dados->getNumOrdem()} - {$dados->getStrDescricao()}"; + $arrMapIdBloco[$dados->getNumId()] = "{$dados->getNumOrdem()} - {$dados->getStrDescricao()}"; } } catch (Exception $e) { - PaginaSEI::getInstance()->processarExcecao($e); + PaginaSEI::getInstance()->processarExcecao($e); } // View ob_clean(); @@ -310,7 +302,7 @@ function inicializar(){ -if (''=='pen_incluir_processo_em_bloco_tramite') { +if (''=='pen_incluir_processo_em_bloco_tramite') { document.getElementById('divIdentificacao').style.display = 'none'; document.getElementById('selBlocos').focus(); } else { @@ -325,14 +317,14 @@ function inicializar(){ $objPaginaSEI->abrirBody($strTitulo, 'onload="inicializar();"'); ?> - + montarBarraComandosSuperior($arrComandos); - $objPaginaSEI->abrirAreaDados('15em'); - $padrao = null; + $objPaginaSEI->montarBarraComandosSuperior($arrComandos); + $objPaginaSEI->abrirAreaDados('15em'); + $padrao = null; if (isset($arrMapIdBloco[$idBlocoExterno])) { - $padrao = $idBlocoExterno; + $padrao = $idBlocoExterno; } ?> @@ -340,11 +332,11 @@ function inicializar(){ - + fecharAreaDados(); - $objPaginaSEI->montarBarraComandosInferior($arrComandos); + $objPaginaSEI->fecharAreaDados(); + $objPaginaSEI->montarBarraComandosInferior($arrComandos); ?>
diff --git a/src/pen_unidade_sel_expedir_procedimento.php b/src/pen_unidade_sel_expedir_procedimento.php index aea74df4e..346ae5159 100755 --- a/src/pen_unidade_sel_expedir_procedimento.php +++ b/src/pen_unidade_sel_expedir_procedimento.php @@ -55,7 +55,7 @@ -
+ montarBarraLocalizacao($strTitulo); PaginaSEI::getInstance()->montarBarraComandosSuperior($arrComandos); diff --git a/src/pen_unidades_administrativas_pesquisa_textual_expedir_procedimento.php b/src/pen_unidades_administrativas_pesquisa_textual_expedir_procedimento.php index 6dd41c3e9..f858adcac 100755 --- a/src/pen_unidades_administrativas_pesquisa_textual_expedir_procedimento.php +++ b/src/pen_unidades_administrativas_pesquisa_textual_expedir_procedimento.php @@ -1,7 +1,7 @@ -**/ + * 10/04/2019 - criado por Josinaldo Jnior + **/ require_once DIR_SEI_WEB.'/SEI.php'; try { @@ -19,7 +19,7 @@ SessaoSEI::getInstance()->validarLink(); $strTitulo = 'Seleo de Unidade Externa (Pesquisa Textual)'; - $arrComandos = array(); + $arrComandos = []; $arrComandos[] = ''; $arrComandos[] = ''; $arrComandos[] = ''; @@ -339,24 +339,24 @@ function selecionarUnidade(idElemento){ ?>
Pesquisa textual de unidades externas
  - + montarBarraComandosSuperior($arrComandos); PaginaSEI::getInstance()->abrirAreaDados('10em'); ?> - + - + - + fecharAreaDados(); PaginaSEI::getInstance()->montarAreaTabela($strResultado, $numRegistros); PaginaSEI::getInstance()->montarAreaDebug(); - #PaginaSEI::getInstance()->montarBarraComandosInferior($arrComandos); + // PaginaSEI::getInstance()->montarBarraComandosInferior($arrComandos); ?>
diff --git a/src/pen_unidades_administrativas_selecionar_expedir_procedimento.php b/src/pen_unidades_administrativas_selecionar_expedir_procedimento.php index 427a49842..20a5b4297 100755 --- a/src/pen_unidades_administrativas_selecionar_expedir_procedimento.php +++ b/src/pen_unidades_administrativas_selecionar_expedir_procedimento.php @@ -1,10 +1,10 @@ =", "4.0.0"); $strImagensArvore = ($bolVersaoSuperior4) ? '24/' : ''; $strTitulo = "Seleo de Unidade Externa (Pesquisa em rvore)"; - $arrComandos = array(); + $arrComandos = []; $arrComandos[] = ''; $arrComandos[] = ''; $arrComandos[] = ''; @@ -87,7 +87,7 @@ var nivelEstrutura = 1; var mais = '/infra_css/imagens/seta_abaixo.gif'; var menos = '/infra_css/imagens/seta_acima.gif'; - var dirImagensArvore = ''; + var dirImagensArvore = ''; var vazio = `/infra_js/arvore/${dirImagensArvore}empty.gif`; var joinBottonImg = `/infra_js/arvore/${dirImagensArvore}joinbottom.gif`; var joinImg = `/infra_js/arvore/${dirImagensArvore}join.gif`; diff --git a/src/pen_validar_expedir_lote.php b/src/pen_validar_expedir_lote.php index 36d5d6ace..861284fb3 100755 --- a/src/pen_validar_expedir_lote.php +++ b/src/pen_validar_expedir_lote.php @@ -4,7 +4,7 @@ session_start(); -$arrResponse = array('sucesso' => false, 'mensagem' => '', 'erros' => array()); +$arrResponse = ['sucesso' => false, 'mensagem' => '', 'erros' => []]; $objInfraException = new InfraException(); @@ -16,21 +16,21 @@ throw new InfraException('Nenhum procedimento foi informado', 'Desconhecido'); } - $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); - $objExpedirProcedimentosRN->verificarProcessosAbertoNaUnidade($objInfraException, $arrProtocolosOrigem); + $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); + $objExpedirProcedimentosRN->verificarProcessosAbertoNaUnidade($objInfraException, $arrProtocolosOrigem); if ($objInfraException->contemValidacoes()) { - $arrErros = array(); + $arrErros = []; foreach ($objInfraException->getArrObjInfraValidacao() as $objInfraValidacao) { - $strAtributo = $objInfraValidacao->getStrAtributo(); + $strAtributo = $objInfraValidacao->getStrAtributo(); if (!array_key_exists($strAtributo, $arrErros)) { - $arrErros[$strAtributo] = array(); + $arrErros[$strAtributo] = []; } - $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); + $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); } - $arrResponse['erros'] = $arrErros; - print json_encode($arrResponse); - exit(0); + $arrResponse['erros'] = $arrErros; + print json_encode($arrResponse); + exit(0); } foreach ($arrProtocolosOrigem as $dblIdProcedimento) { @@ -58,9 +58,9 @@ $objInfraException->adicionarValidacao('Informe Unidade de destino', $strProtocoloFormatado); } - $objProcedimentoDTO->setArrObjDocumentoDTO($objExpedirProcedimentosRN->listarDocumentos($dblIdProcedimento)); - $objProcedimentoDTO->setArrObjParticipanteDTO($objExpedirProcedimentosRN->listarInteressados($dblIdProcedimento)); - $objExpedirProcedimentosRN->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO); + $objProcedimentoDTO->setArrObjDocumentoDTO($objExpedirProcedimentosRN->listarDocumentos($dblIdProcedimento)); + $objProcedimentoDTO->setArrObjParticipanteDTO($objExpedirProcedimentosRN->listarInteressados($dblIdProcedimento)); + $objExpedirProcedimentosRN->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO); } } catch(\InfraException $e) { @@ -71,18 +71,18 @@ if ($objInfraException->contemValidacoes()) { - $arrErros = array(); + $arrErros = []; foreach ($objInfraException->getArrObjInfraValidacao() as $objInfraValidacao) { - $strAtributo = $objInfraValidacao->getStrAtributo(); + $strAtributo = $objInfraValidacao->getStrAtributo(); if (!array_key_exists($strAtributo, $arrErros)) { - $arrErros[$strAtributo] = array(); + $arrErros[$strAtributo] = []; } - $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); + $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); } - $arrResponse['erros'] = $arrErros; + $arrResponse['erros'] = $arrErros; } else { - $arrResponse['sucesso'] = true; + $arrResponse['sucesso'] = true; } print json_encode($arrResponse); diff --git a/src/rn/AssinaturaHashRN.php b/src/rn/AssinaturaHashRN.php index 5b389195c..5ee18bef5 100755 --- a/src/rn/AssinaturaHashRN.php +++ b/src/rn/AssinaturaHashRN.php @@ -1,39 +1,43 @@ retStrNome(); - $objAssinaturaDTO->retNumIdAssinatura(); - $objAssinaturaDTO->retNumIdTarjaAssinatura(); - $objAssinaturaDTO->retStrTratamento(); - $objAssinaturaDTO->retStrStaFormaAutenticacao(); - $objAssinaturaDTO->retStrNumeroSerieCertificado(); - $objAssinaturaDTO->retDthAberturaAtividade(); + $objAssinaturaDTO = new AssinaturaDTO(); + $objAssinaturaDTO->retStrNome(); + $objAssinaturaDTO->retNumIdAssinatura(); + $objAssinaturaDTO->retNumIdTarjaAssinatura(); + $objAssinaturaDTO->retStrTratamento(); + $objAssinaturaDTO->retStrStaFormaAutenticacao(); + $objAssinaturaDTO->retStrNumeroSerieCertificado(); + $objAssinaturaDTO->retDthAberturaAtividade(); - $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); - $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); + $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); - $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); + $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); if (count($arrObjAssinaturaDTO)) { @@ -54,19 +58,19 @@ protected function montarTarjasURLConectado($dados) { throw new InfraException('Tarja associada com a assinatura "' . $objAssinaturaDTO->getNumIdAssinatura() . '" no encontrada.'); } - $objTarjaAutenticacaoDTOAplicavel = $arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()]; - - $strTarja = $objTarjaAutenticacaoDTOAplicavel->getStrTexto(); - $strTarja = preg_replace("/@logo_assinatura@/s", 'logotipo', $strTarja); - $strTarja = preg_replace("/@nome_assinante@/s", $objAssinaturaDTO->getStrNome(), $strTarja); - $strTarja = preg_replace("/@tratamento_assinante@/s", $objAssinaturaDTO->getStrTratamento(), $strTarja); - $strTarja = preg_replace("/@data_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 0, 10), $strTarja); - $strTarja = preg_replace("/@hora_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 11, 5), $strTarja); - $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); - $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); - $strTarja = preg_replace("/@numero_serie_certificado_digital@/s", $objAssinaturaDTO->getStrNumeroSerieCertificado(), $strTarja); - $strTarja = preg_replace("/@tipo_conferencia@/s", InfraString::transformarCaixaBaixa($objDocumentoDTO->getStrDescricaoTipoConferencia()), $strTarja); - $strRet .= $strTarja; + $objTarjaAutenticacaoDTOAplicavel = $arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()]; + + $strTarja = $objTarjaAutenticacaoDTOAplicavel->getStrTexto(); + $strTarja = preg_replace("/@logo_assinatura@/s", 'logotipo', $strTarja); + $strTarja = preg_replace("/@nome_assinante@/s", $objAssinaturaDTO->getStrNome(), $strTarja); + $strTarja = preg_replace("/@tratamento_assinante@/s", $objAssinaturaDTO->getStrTratamento(), $strTarja); + $strTarja = preg_replace("/@data_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 0, 10), $strTarja); + $strTarja = preg_replace("/@hora_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 11, 5), $strTarja); + $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); + $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); + $strTarja = preg_replace("/@numero_serie_certificado_digital@/s", $objAssinaturaDTO->getStrNumeroSerieCertificado(), $strTarja); + $strTarja = preg_replace("/@tipo_conferencia@/s", InfraString::transformarCaixaBaixa($objDocumentoDTO->getStrDescricaoTipoConferencia()), $strTarja); + $strRet .= $strTarja; } $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); @@ -75,64 +79,65 @@ protected function montarTarjasURLConectado($dados) { $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); - if ($objTarjaAssinaturaDTO != null){ + if ($objTarjaAssinaturaDTO != null) { - $strLinkAcessoExterno = ''; - if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@')!==false){ - $objEditorRN = new EditorRN(); - $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); + $strLinkAcessoExterno = ''; + if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@')!==false) { + $objEditorRN = new EditorRN(); + $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); } - $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); - $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); - $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); - $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); - $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); - $strTarja = str_replace($controleURL["atual"], $controleURL["antigo"], $strTarja); - $strRet .= $strTarja; + $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); + $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); + $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); + $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); + $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); + $strTarja = str_replace($controleURL["atual"], $controleURL["antigo"], $strTarja); + $strRet .= $strTarja; } } - return EditorRN::converterHTML($strRet); + return EditorRN::converterHTML($strRet); } catch (Exception $e) { - throw new InfraException('Erro montando tarja de assinatura.', $e); + throw new InfraException('Erro montando tarja de assinatura.', $e); } } - //sei 403 + //sei 403 - protected function montarTarjasURL403Conectado($dados) { + protected function montarTarjasURL403Conectado($dados) + { try { - $objDocumentoDTO=$dados["objDocumentoDTO"]; - $controleURL=$dados["controleURL"]; - - $strRet = ''; - - $objAssinaturaDTO = new AssinaturaDTO(); - $objAssinaturaDTO->setBolExclusaoLogica(false); - $objAssinaturaDTO->retStrNome(); - $objAssinaturaDTO->retNumIdAssinatura(); - $objAssinaturaDTO->retNumIdTarjaAssinatura(); - $objAssinaturaDTO->retStrTratamento(); - $objAssinaturaDTO->retStrStaFormaAutenticacao(); - $objAssinaturaDTO->retStrNumeroSerieCertificado(); - $objAssinaturaDTO->retDthAberturaAtividade(); - $objAssinaturaDTO->retNumIdAtividade(); - $objAssinaturaDTO->retStrSinAtivo(); - - $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); - $objAssinaturaDTO->setNumIdAtividade(null, InfraDTO::$OPER_DIFERENTE); + $objDocumentoDTO=$dados["objDocumentoDTO"]; + $controleURL=$dados["controleURL"]; + + $strRet = ''; + + $objAssinaturaDTO = new AssinaturaDTO(); + $objAssinaturaDTO->setBolExclusaoLogica(false); + $objAssinaturaDTO->retStrNome(); + $objAssinaturaDTO->retNumIdAssinatura(); + $objAssinaturaDTO->retNumIdTarjaAssinatura(); + $objAssinaturaDTO->retStrTratamento(); + $objAssinaturaDTO->retStrStaFormaAutenticacao(); + $objAssinaturaDTO->retStrNumeroSerieCertificado(); + $objAssinaturaDTO->retDthAberturaAtividade(); + $objAssinaturaDTO->retNumIdAtividade(); + $objAssinaturaDTO->retStrSinAtivo(); + + $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + $objAssinaturaDTO->setNumIdAtividade(null, InfraDTO::$OPER_DIFERENTE); - $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); + $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); - $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); + $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); if (count($arrObjAssinaturaDTO)) { @@ -164,7 +169,7 @@ protected function montarTarjasURL403Conectado($dados) { if ($objAssinaturaDTO->getStrSinAtivo()=='S' || $objDocumentoDTO->getNumIdUnidadeGeradoraProtocolo() == SessaoSEI::getInstance()->getNumIdUnidadeAtual()) { if (!isset($arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()])) { - throw new InfraException('Tarja associada com a assinatura "'.$objAssinaturaDTO->getNumIdAssinatura().'" no encontrada.'); + throw new InfraException('Tarja associada com a assinatura "'.$objAssinaturaDTO->getNumIdAssinatura().'" no encontrada.'); } $objTarjaAutenticacaoDTOAplicavel = $arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()]; @@ -186,66 +191,67 @@ protected function montarTarjasURL403Conectado($dados) { } if ($numAssinaturas) { - $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); - $objTarjaAssinaturaDTO->retStrTexto(); - $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura(TarjaAssinaturaRN::$TT_INSTRUCOES_VALIDACAO); + $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); + $objTarjaAssinaturaDTO->retStrTexto(); + $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura(TarjaAssinaturaRN::$TT_INSTRUCOES_VALIDACAO); - $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); + $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); if ($objTarjaAssinaturaDTO != null) { - $strLinkAcessoExterno = ''; + $strLinkAcessoExterno = ''; if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@') !== false) { $objEditorRN = new EditorRN(); $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); } - $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); - $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); - $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); - $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); - $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); - $strTarja = str_replace($controleURL["atual"], $controleURL["antigo"], $strTarja); - $strRet .= $strTarja; + $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); + $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); + $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); + $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); + $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); + $strTarja = str_replace($controleURL["atual"], $controleURL["antigo"], $strTarja); + $strRet .= $strTarja; } } $strRet .= '
'; } - return EditorRN::converterHTML($strRet); + return EditorRN::converterHTML($strRet); } catch (Exception $e) { - throw new InfraException('Erro montando tarja de assinatura.', $e); + throw new InfraException('Erro montando tarja de assinatura.', $e); } } - protected function montarTarjasURL404Conectado($dados) { + protected function montarTarjasURL404Conectado($dados) + { try { - $objDocumentoDTO=$dados["objDocumentoDTO"]; - $controleURL=$dados["controleURL"]; - - $strRet = ''; - - $objAssinaturaDTO = new AssinaturaDTO(); - $objAssinaturaDTO->setBolExclusaoLogica(false); - $objAssinaturaDTO->retStrNome(); - $objAssinaturaDTO->retNumIdAssinatura(); - $objAssinaturaDTO->retNumIdTarjaAssinatura(); - $objAssinaturaDTO->retStrTratamento(); - $objAssinaturaDTO->retStrStaFormaAutenticacao(); - $objAssinaturaDTO->retStrNumeroSerieCertificado(); - $objAssinaturaDTO->retDthAberturaAtividade(); - $objAssinaturaDTO->retNumIdAtividade(); - $objAssinaturaDTO->retStrSinAtivo(); - - $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); - $objAssinaturaDTO->setNumIdAtividade(null, InfraDTO::$OPER_DIFERENTE); + $objDocumentoDTO=$dados["objDocumentoDTO"]; + $controleURL=$dados["controleURL"]; + + $strRet = ''; + + $objAssinaturaDTO = new AssinaturaDTO(); + $objAssinaturaDTO->setBolExclusaoLogica(false); + $objAssinaturaDTO->retStrNome(); + $objAssinaturaDTO->retNumIdAssinatura(); + $objAssinaturaDTO->retNumIdTarjaAssinatura(); + $objAssinaturaDTO->retStrTratamento(); + $objAssinaturaDTO->retStrStaFormaAutenticacao(); + $objAssinaturaDTO->retStrNumeroSerieCertificado(); + $objAssinaturaDTO->retDthAberturaAtividade(); + $objAssinaturaDTO->retNumIdAtividade(); + $objAssinaturaDTO->retStrSinAtivo(); + + $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + $objAssinaturaDTO->setNumIdAtividade(null, InfraDTO::$OPER_DIFERENTE); - $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); + $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); - $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); + $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); if (count($arrObjAssinaturaDTO)) { @@ -267,7 +273,7 @@ protected function montarTarjasURL404Conectado($dados) { if ($objAssinaturaDTO->getStrSinAtivo()=='S' || $objDocumentoDTO->getNumIdUnidadeGeradoraProtocolo() == SessaoSEI::getInstance()->getNumIdUnidadeAtual()) { if (!isset($arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()])) { - throw new InfraException('Tarja associada com a assinatura "'.$objAssinaturaDTO->getNumIdAssinatura().'" no encontrada.'); + throw new InfraException('Tarja associada com a assinatura "'.$objAssinaturaDTO->getNumIdAssinatura().'" no encontrada.'); } $objTarjaAutenticacaoDTOAplicavel = $arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()]; @@ -289,60 +295,61 @@ protected function montarTarjasURL404Conectado($dados) { } if ($numAssinaturas) { - $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); - $objTarjaAssinaturaDTO->retStrTexto(); - $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura(TarjaAssinaturaRN::$TT_INSTRUCOES_VALIDACAO); + $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); + $objTarjaAssinaturaDTO->retStrTexto(); + $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura(TarjaAssinaturaRN::$TT_INSTRUCOES_VALIDACAO); - $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); + $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); if ($objTarjaAssinaturaDTO != null) { - $strLinkAcessoExterno = ''; + $strLinkAcessoExterno = ''; if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@') !== false) { $objEditorRN = new EditorRN(); $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); } - $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); - $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); - $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); - $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); - $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); - $strTarja = str_replace($controleURL["atual"], $controleURL["antigo"], $strTarja); - $strRet .= $strTarja; + $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); + $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); + $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); + $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); + $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); + $strTarja = str_replace($controleURL["atual"], $controleURL["antigo"], $strTarja); + $strRet .= $strTarja; } } $strRet = EditorINT::formatarNaoSelecionavel($strRet); } - return EditorRN::converterHTML($strRet); + return EditorRN::converterHTML($strRet); } catch (Exception $e) { - throw new InfraException('Erro montando tarja de assinatura.', $e); + throw new InfraException('Erro montando tarja de assinatura.', $e); } } - protected function montarTarjasLegadoConectado($objDocumentoDTO) { - //utilizado ate a versao 4.0.2 do SEI, sem alterar URL + protected function montarTarjasLegadoConectado($objDocumentoDTO) + { + //utilizado ate a versao 4.0.2 do SEI, sem alterar URL try { - $strRet = ''; + $strRet = ''; - $objAssinaturaDTO = new AssinaturaDTO(); - $objAssinaturaDTO->retStrNome(); - $objAssinaturaDTO->retNumIdAssinatura(); - $objAssinaturaDTO->retNumIdTarjaAssinatura(); - $objAssinaturaDTO->retStrTratamento(); - $objAssinaturaDTO->retStrStaFormaAutenticacao(); - $objAssinaturaDTO->retStrNumeroSerieCertificado(); - $objAssinaturaDTO->retDthAberturaAtividade(); + $objAssinaturaDTO = new AssinaturaDTO(); + $objAssinaturaDTO->retStrNome(); + $objAssinaturaDTO->retNumIdAssinatura(); + $objAssinaturaDTO->retNumIdTarjaAssinatura(); + $objAssinaturaDTO->retStrTratamento(); + $objAssinaturaDTO->retStrStaFormaAutenticacao(); + $objAssinaturaDTO->retStrNumeroSerieCertificado(); + $objAssinaturaDTO->retDthAberturaAtividade(); - $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); - $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); + $objAssinaturaDTO->setOrdNumIdAssinatura(InfraDTO::$TIPO_ORDENACAO_ASC); - $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); + $arrObjAssinaturaDTO = $this->listarRN1323($objAssinaturaDTO); if (count($arrObjAssinaturaDTO)) { @@ -363,19 +370,19 @@ protected function montarTarjasLegadoConectado($objDocumentoDTO) { throw new InfraException('Tarja associada com a assinatura "' . $objAssinaturaDTO->getNumIdAssinatura() . '" no encontrada.'); } - $objTarjaAutenticacaoDTOAplicavel = $arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()]; - - $strTarja = $objTarjaAutenticacaoDTOAplicavel->getStrTexto(); - $strTarja = preg_replace("/@logo_assinatura@/s", 'logotipo', $strTarja); - $strTarja = preg_replace("/@nome_assinante@/s", $objAssinaturaDTO->getStrNome(), $strTarja); - $strTarja = preg_replace("/@tratamento_assinante@/s", $objAssinaturaDTO->getStrTratamento(), $strTarja); - $strTarja = preg_replace("/@data_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 0, 10), $strTarja); - $strTarja = preg_replace("/@hora_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 11, 5), $strTarja); - $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); - $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); - $strTarja = preg_replace("/@numero_serie_certificado_digital@/s", $objAssinaturaDTO->getStrNumeroSerieCertificado(), $strTarja); - $strTarja = preg_replace("/@tipo_conferencia@/s", InfraString::transformarCaixaBaixa($objDocumentoDTO->getStrDescricaoTipoConferencia()), $strTarja); - $strRet .= $strTarja; + $objTarjaAutenticacaoDTOAplicavel = $arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()]; + + $strTarja = $objTarjaAutenticacaoDTOAplicavel->getStrTexto(); + $strTarja = preg_replace("/@logo_assinatura@/s", 'logotipo', $strTarja); + $strTarja = preg_replace("/@nome_assinante@/s", $objAssinaturaDTO->getStrNome(), $strTarja); + $strTarja = preg_replace("/@tratamento_assinante@/s", $objAssinaturaDTO->getStrTratamento(), $strTarja); + $strTarja = preg_replace("/@data_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 0, 10), $strTarja); + $strTarja = preg_replace("/@hora_assinatura@/s", substr($objAssinaturaDTO->getDthAberturaAtividade(), 11, 5), $strTarja); + $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); + $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); + $strTarja = preg_replace("/@numero_serie_certificado_digital@/s", $objAssinaturaDTO->getStrNumeroSerieCertificado(), $strTarja); + $strTarja = preg_replace("/@tipo_conferencia@/s", InfraString::transformarCaixaBaixa($objDocumentoDTO->getStrDescricaoTipoConferencia()), $strTarja); + $strRet .= $strTarja; } $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); @@ -384,30 +391,30 @@ protected function montarTarjasLegadoConectado($objDocumentoDTO) { $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); - if ($objTarjaAssinaturaDTO != null){ + if ($objTarjaAssinaturaDTO != null) { - $strLinkAcessoExterno = ''; - if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@')!==false){ - $objEditorRN = new EditorRN(); - $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); + $strLinkAcessoExterno = ''; + if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@')!==false) { + $objEditorRN = new EditorRN(); + $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); } - $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); - $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); - $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); - $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); - $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); - $strRet .= $strTarja; + $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); + $strTarja = preg_replace("/@qr_code@/s", 'QRCode Assinatura', $strTarja); + $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); + $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); + $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); + $strRet .= $strTarja; } } - return EditorRN::converterHTML($strRet); + return EditorRN::converterHTML($strRet); } catch (Exception $e) { - throw new InfraException('Erro montando tarja de assinatura.', $e); + throw new InfraException('Erro montando tarja de assinatura.', $e); } } diff --git a/src/rn/EnviarReciboTramiteRN.php b/src/rn/EnviarReciboTramiteRN.php index 29a8efcd4..4152cdd62 100755 --- a/src/rn/EnviarReciboTramiteRN.php +++ b/src/rn/EnviarReciboTramiteRN.php @@ -4,40 +4,36 @@ class EnviarReciboTramiteRN extends InfraRN { - private $objProcessoEletronicoRN; - private $objInfraParametro; - private $objPenParametroRN; + private $objProcessoEletronicoRN; public function __construct() - { - parent::__construct(); - - $this->objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $this->objPenParametroRN = new PenParametroRN(); + { + parent::__construct(); + $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); } protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } /** * Gera o recibo do tramite para o destinrio informando o recebimento * do procedimento. * - * @param int $numIdTramite + * @param int $numIdTramite * @return array */ - protected function gerarReciboTramite($numIdTramite){ + protected function gerarReciboTramite($numIdTramite) + { - $arrStrHashConteudo = array(); + $arrStrHashConteudo = []; $objMetaRetorno = $this->objProcessoEletronicoRN->solicitarMetadados($numIdTramite); $objMetaProcesso = $objMetaRetorno->metadados->processo; - $arrObjMetaDocumento = is_array($objMetaProcesso->documento) ? $objMetaProcesso->documento : array($objMetaProcesso->documento); + $arrObjMetaDocumento = is_array($objMetaProcesso->documentos) ? $objMetaProcesso->documentos : [$objMetaProcesso->documentos]; $objDTO = new ComponenteDigitalDTO(); $objBD = new ComponenteDigitalBD($this->inicializarObjInfraIBanco()); @@ -57,14 +53,14 @@ protected function gerarReciboTramite($numIdTramite){ return $arrStrHashConteudo; } - protected function cadastrarReciboTramiteRecebimento($strNumeroRegistro = '', $parNumIdTramite = 0, $strHashConteudo = '', $parArrayHash = array()) + protected function cadastrarReciboTramiteRecebimento($strNumeroRegistro = '', $parNumIdTramite = 0, $strHashConteudo = '', $parArrayHash = []) { try { - $objBD = new ReciboTramiteRecebidoBD($this->inicializarObjInfraIBanco()); + $objBD = new ReciboTramiteRecebidoBD($this->inicializarObjInfraIBanco()); - $objDTO = new ReciboTramiteRecebidoDTO(); - $objDTO->setStrNumeroRegistro($strNumeroRegistro); - $objDTO->setNumIdTramite($parNumIdTramite); + $objDTO = new ReciboTramiteRecebidoDTO(); + $objDTO->setStrNumeroRegistro($strNumeroRegistro); + $objDTO->setNumIdTramite($parNumIdTramite); if(!empty($strHashConteudo)) { $objDTO->setStrHashAssinatura($strHashConteudo); } @@ -85,13 +81,13 @@ protected function cadastrarReciboTramiteRecebimento($strNumeroRegistro = '', $p $objBD->cadastrar($objReciboTramiteHashDTO); } } catch (Exception $e) { - $strMensagem = "Falha na obteno do recibo de recebimento de protocolo do trmite $parNumIdTramite. $e"; - LogSEI::getInstance()->gravar($strMensagem, InfraLog::$ERRO); + $strMensagem = "Falha na obteno do recibo de recebimento de protocolo do trmite $parNumIdTramite. $e"; + LogSEI::getInstance()->gravar($strMensagem, InfraLog::$ERRO); } } public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash, $parDthRecebimento = null) - { + { try{ ModPenUtilsRN::simularLoginUnidadeRecebimento(); date_default_timezone_set('America/Sao_Paulo'); @@ -103,14 +99,14 @@ public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash, $pa //Verifica se todos os componentes digitais j foram devidamente recebido $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdTramite); if(!isset($arrObjTramite) || count($arrObjTramite) != 1) { - throw new InfraException("Trmite no pode ser localizado pelo identificador $parNumIdTramite."); + throw new InfraException("Trmite no pode ser localizado pelo identificador $parNumIdTramite."); } $objTramite = $arrObjTramite[0]; $strNumeroRegistro = $objTramite->NRE; if($objTramite->situacaoAtual != ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO) { - throw new InfraException(sprintf('Situao do Trmite diferente da permitida para o envio do recibo de concluso de trmite (%s).', $objTramite->situacaoAtual)); + throw new InfraException(sprintf('Situao do Trmite diferente da permitida para o envio do recibo de concluso de trmite (%s).', $objTramite->situacaoAtual)); } $dthRecebimentoComponentesDigitais = $this->obterDataRecebimentoComponentesDigitais($objTramite); @@ -124,8 +120,8 @@ public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash, $pa sort($parArrayHash); foreach ($parArrayHash as $strHashConteudo) { - if(!empty($strHashConteudo)){ - $strReciboTramite .= "$strHashConteudo"; + if(!empty($strHashConteudo)) { + $strReciboTramite .= "$strHashConteudo"; } } $strReciboTramite .= ""; @@ -138,7 +134,7 @@ public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash, $pa $detalhes = null; $mensagem = InfraException::inspecionar($e); - if(isset($strReciboTramite)){ + if(isset($strReciboTramite)) { $detalhes = "Falha na validao do recibo de concluso do trmite do processo. Recibo: \n" . $strReciboTramite; } @@ -146,22 +142,23 @@ public function enviarReciboTramiteProcesso($parNumIdTramite, $parArrayHash, $pa } } - private function obterDataRecebimentoComponentesDigitais($parObjTramite){ + private function obterDataRecebimentoComponentesDigitais($parObjTramite) + { if(!isset($parObjTramite)) { - throw new InfraException('Parmetro $parObjTramite no informado.'); + throw new InfraException('Parmetro $parObjTramite no informado.'); } - if(!is_array($parObjTramite->historico->operacao)) { - $parObjTramite->historico->operacao = array($parObjTramite->historico->operacao); + if(!is_array($parObjTramite->itensHistorico->operacao)) { + $parObjTramite->itensHistorico->operacao = [$parObjTramite->itensHistorico->operacao]; } - foreach ($parObjTramite->historico->operacao as $operacao) { + foreach ($parObjTramite->itensHistorico->operacao as $operacao) { if($operacao->situacao == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO) { - return ProcessoEletronicoRN::converterDataSEI($operacao->dataHora); + return ProcessoEletronicoRN::converterDataSEI($operacao->dataHora); } } - return null; + return null; } } diff --git a/src/rn/ExpedirProcedimentoRN.php b/src/rn/ExpedirProcedimentoRN.php index 5f889b7c9..aef3919d9 100755 --- a/src/rn/ExpedirProcedimentoRN.php +++ b/src/rn/ExpedirProcedimentoRN.php @@ -2,7 +2,8 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ExpedirProcedimentoRN extends InfraRN { +class ExpedirProcedimentoRN extends InfraRN +{ const STA_SIGILO_PUBLICO = '1'; const STA_SIGILO_RESTRITO = '2'; @@ -52,207 +53,185 @@ class ExpedirProcedimentoRN extends InfraRN { private $objProcedimentoAndamentoRN; private $fnEventoEnvioMetadados; private $objPenDebug; - private $objCacheMetadadosProtocolo=array(); - - private $arrPenMimeTypes = array( - "application/pdf", - "application/vnd.oasis.opendocument.text", - "application/vnd.oasis.opendocument.formula", - "application/vnd.oasis.opendocument.spreadsheet", - "application/vnd.oasis.opendocument.presentation", - "text/xml", - "text/rtf", - "text/html", - "text/plain", - "text/csv", - "image/gif", - "image/jpeg", - "image/png", - "image/svg+xml", - "image/tiff", - "image/bmp", - "audio/mp4", - "audio/midi", - "audio/ogg", - "audio/vnd.wave", - "video/avi", - "video/mpeg", - "video/mp4", - "video/ogg", - "video/webm" - ); + private $objCacheMetadadosProtocolo=[]; + private $arrPenMimeTypes = ["application/pdf", "application/vnd.oasis.opendocument.text", "application/vnd.oasis.opendocument.formula", "application/vnd.oasis.opendocument.spreadsheet", "application/vnd.oasis.opendocument.presentation", "text/xml", "text/rtf", "text/html", "text/plain", "text/csv", "image/gif", "image/jpeg", "image/png", "image/svg+xml", "image/tiff", "image/bmp", "audio/mp4", "audio/midi", "audio/ogg", "audio/vnd.wave", "video/avi", "video/mpeg", "video/mp4", "video/ogg", "video/webm"]; - private $contadorDaBarraDeProgresso; - - public function __construct(){ - parent::__construct(); - - //TODO: Remover criao de objetos de negcio no construtor da classe para evitar problemas de performance desnecessrios - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $this->objParticipanteRN = new ParticipanteRN(); - $this->objProcedimentoRN = new ProcedimentoRN(); - $this->objProtocoloRN = new ProtocoloRN(); - $this->objDocumentoRN = new DocumentoRN(); - $this->objAtividadeRN = new AtividadeRN(); - $this->objUsuarioRN = new UsuarioRN(); - $this->objUnidadeRN = new UnidadeRN(); - $this->objOrgaoRN = new OrgaoRN(); - $this->objSerieRN = new SerieRN(); - $this->objAnexoRN = new AnexoRN(); - $this->objPenParametroRN = new PenParametroRN(); - $this->objPenRelTipoDocMapEnviadoRN = new PenRelTipoDocMapEnviadoRN(); - $this->objAssinaturaRN = new AssinaturaRN(); - $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); - $this->objPenDebug = DebugPen::getInstance("PROCESSAMENTO"); - $this->barraProgresso = new InfraBarraProgresso(); - $this->barraProgresso->setNumMin(0); - } + private $contadorDaBarraDeProgresso; - protected function inicializarObjInfraIBanco() + public function __construct() { - return BancoSEI::getInstance(); - } + parent::__construct(); + + //TODO: Remover criao de objetos de negcio no construtor da classe para evitar problemas de performance desnecessrios + $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $this->objParticipanteRN = new ParticipanteRN(); + $this->objProcedimentoRN = new ProcedimentoRN(); + $this->objProtocoloRN = new ProtocoloRN(); + $this->objDocumentoRN = new DocumentoRN(); + $this->objAtividadeRN = new AtividadeRN(); + $this->objUsuarioRN = new UsuarioRN(); + $this->objUnidadeRN = new UnidadeRN(); + $this->objOrgaoRN = new OrgaoRN(); + $this->objSerieRN = new SerieRN(); + $this->objAnexoRN = new AnexoRN(); + $this->objPenParametroRN = new PenParametroRN(); + $this->objPenRelTipoDocMapEnviadoRN = new PenRelTipoDocMapEnviadoRN(); + $this->objAssinaturaRN = new AssinaturaRN(); + $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); + $this->objPenDebug = DebugPen::getInstance("PROCESSAMENTO"); + + $this->barraProgresso = new InfraBarraProgresso(); + $this->barraProgresso->setNumMin(0); + } + + protected function inicializarObjInfraIBanco() + { + return BancoSEI::getInstance(); + } - private function gravarLogDebug($parStrMensagem, $parNumIdentacao = 0, $parBolLogTempoProcessamento = true) + private function gravarLogDebug($parStrMensagem, $parNumIdentacao = 0, $parBolLogTempoProcessamento = true) { - $this->objPenDebug->gravar($parStrMensagem, $parNumIdentacao, $parBolLogTempoProcessamento); - } + $this->objPenDebug->gravar($parStrMensagem, $parNumIdentacao, $parBolLogTempoProcessamento); + } - protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO) + protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO) { - $numIdTramite = 0; - try { - //Valida Permisso - SessaoSEI::getInstance()->validarAuditarPermissao('pen_procedimento_expedir', __METHOD__, $objExpedirProcedimentoDTO); - $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento(); + $numIdTramite = 0; + try { + //Valida Permisso + SessaoSEI::getInstance()->validarAuditarPermissao('pen_procedimento_expedir', __METHOD__, $objExpedirProcedimentoDTO); + $dblIdProcedimento = $objExpedirProcedimentoDTO->getDblIdProcedimento(); - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $bolSinProcessamentoEmBloco = $objExpedirProcedimentoDTO->getBolSinProcessamentoEmBloco(); - $numIdBloco = $objExpedirProcedimentoDTO->getNumIdBloco(); - $numIdAtividade = $objExpedirProcedimentoDTO->getNumIdAtividade(); - $numIdUnidade = $objExpedirProcedimentoDTO->getNumIdUnidade(); - - if(!$bolSinProcessamentoEmBloco){ - $this->barraProgresso->exibir(); - $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); - }else{ - $this->gravarLogDebug("Processando envio de processo [expedirProcedimento] com Procedimento $dblIdProcedimento", 0, true); - $numTempoInicialRecebimento = microtime(true); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $bolSinProcessamentoEmBloco = $objExpedirProcedimentoDTO->getBolSinProcessamentoEmBloco(); + $numIdBloco = $objExpedirProcedimentoDTO->getNumIdBloco(); + $numIdAtividade = $objExpedirProcedimentoDTO->getNumIdAtividade(); + $numIdUnidade = $objExpedirProcedimentoDTO->getNumIdUnidade(); + + if(!$bolSinProcessamentoEmBloco) { + $this->barraProgresso->exibir(); + $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO); + }else{ + $this->gravarLogDebug("Processando envio de processo [expedirProcedimento] com Procedimento $dblIdProcedimento", 0, true); + $numTempoInicialRecebimento = microtime(true); - $this->gravarLogDebug(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO, 2); - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); - $objPenBlocoProcessoDTO->setNumIdBlocoProcesso($numIdBloco); - $objPenBlocoProcessoDTO->retTodos(); + $this->gravarLogDebug(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_VALIDACAO, 2); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenBlocoProcessoDTO->setNumIdBlocoProcesso($numIdBloco); + $objPenBlocoProcessoDTO->retTodos(); - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->consultar($objPenBlocoProcessoDTO); - } + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->consultar($objPenBlocoProcessoDTO); + } - $objInfraException = new InfraException(); - //Carregamento dos dados de processo e documento para validao e envio externo - $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento); - $objProcedimentoDTO->setArrObjDocumentoDTO($this->listarDocumentos($dblIdProcedimento)); - $objProcedimentoDTO->setArrObjParticipanteDTO($this->listarInteressados($dblIdProcedimento)); - $this->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO, null, $bolSinProcessamentoEmBloco); - $this->validarParametrosExpedicao($objInfraException, $objExpedirProcedimentoDTO); - - //Apresentao da mensagens de validao na janela da barra de progresso - if($objInfraException->contemValidacoes()){ - if(!$bolSinProcessamentoEmBloco){ - $this->barraProgresso->mover(0); - $this->barraProgresso->setStrRotulo('Erro durante validao dos dados do processo.'); - $objInfraException->lancarValidacoes(); - }else{ + $objInfraException = new InfraException(); + //Carregamento dos dados de processo e documento para validao e envio externo + $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento); + $objProcedimentoDTO->setArrObjDocumentoDTO($this->listarDocumentos($dblIdProcedimento)); + $objProcedimentoDTO->setArrObjParticipanteDTO($this->listarInteressados($dblIdProcedimento)); + $this->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO, null, $bolSinProcessamentoEmBloco); + $this->validarParametrosExpedicao($objInfraException, $objExpedirProcedimentoDTO); + + //Apresentao da mensagens de validao na janela da barra de progresso + if($objInfraException->contemValidacoes()) { + if(!$bolSinProcessamentoEmBloco) { + $this->barraProgresso->mover(0); + $this->barraProgresso->setStrRotulo('Erro durante validao dos dados do processo.'); + $objInfraException->lancarValidacoes(); + }else{ - $arrErros = array(); - foreach($objInfraException->getArrObjInfraValidacao() as $objInfraValidacao) { - $strAtributo = $objInfraValidacao->getStrAtributo(); - if(!array_key_exists($strAtributo, $arrErros)){ - $arrErros[$strAtributo] = array(); - } - $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); + $arrErros = []; + foreach($objInfraException->getArrObjInfraValidacao() as $objInfraValidacao) { + $strAtributo = $objInfraValidacao->getStrAtributo(); + if(!array_key_exists($strAtributo, $arrErros)) { + $arrErros[$strAtributo] = []; } + $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); + } - $this->gravarLogDebug(sprintf('Erro durante validao dos dados do processo %s.', $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(), $arrErros), 2); - LogSEI::getInstance()->gravar("Erro(s) observado(s) na validao do trmite de bloco externo $numIdBloco: ".InfraException::inspecionar($objInfraException)); + $this->gravarLogDebug(sprintf('Erro durante validao dos dados do processo %s.', $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(), $arrErros), 2); + LogSEI::getInstance()->gravar("Erro(s) observado(s) na validao do trmite de bloco externo $numIdBloco: ".InfraException::inspecionar($objInfraException)); - $objPenBlocoProcessoRN->desbloquearProcessoBloco($dblIdProcedimento); - return false; - } + $objPenBlocoProcessoRN->desbloquearProcessoBloco($dblIdProcedimento); + return false; } + } - //Busca metadados do processo registrado em trmite anterior - $objMetadadosProcessoTramiteAnterior = $this->consultarMetadadosPEN($dblIdProcedimento); + //Busca metadados do processo registrado em trmite anterior + $objMetadadosProcessoTramiteAnterior = $this->consultarMetadadosPEN($dblIdProcedimento); - //Construo do cabealho para envio do processo - $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($dblIdProcedimento); - $objUltimoTramiteRecebidoDTO = $this->objProcessoEletronicoRN->consultarUltimoTramiteRecebido($objProcessoEletronicoPesquisaDTO); + //Construo do cabealho para envio do processo + $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($dblIdProcedimento); + $objUltimoTramiteRecebidoDTO = $this->objProcessoEletronicoRN->consultarUltimoTramiteRecebido($objProcessoEletronicoPesquisaDTO); - if(isset($objMetadadosProcessoTramiteAnterior->documento)){ + if(isset($objMetadadosProcessoTramiteAnterior->documento)) { $strNumeroRegistro = null; - }else{ - $strNumeroRegistro = isset($objUltimoTramiteRecebidoDTO) ? $objUltimoTramiteRecebidoDTO->getStrNumeroRegistro() : $objMetadadosProcessoTramiteAnterior->NRE; - } + }else{ + $strNumeroRegistro = isset($objUltimoTramiteRecebidoDTO) ? $objUltimoTramiteRecebidoDTO->getStrNumeroRegistro() : $objMetadadosProcessoTramiteAnterior?->NRE; + } - $objCabecalho = $this->construirCabecalho($objExpedirProcedimentoDTO, $strNumeroRegistro, $dblIdProcedimento); + $objCabecalho = $this->construirCabecalho($objExpedirProcedimentoDTO, $strNumeroRegistro, $dblIdProcedimento); - //Construo do processo para envio - $objProcesso = $this->construirProcesso($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado(), $objMetadadosProcessoTramiteAnterior); + //Construo do processo para envio + $arrProcesso = $this->construirProcessoREST($dblIdProcedimento, $objExpedirProcedimentoDTO->getArrIdProcessoApensado(), $objMetadadosProcessoTramiteAnterior); - //Obtm o tamanho total da barra de progreso - $nrTamanhoTotalBarraProgresso = $this->obterTamanhoTotalDaBarraDeProgresso($objProcesso); + //Obtm o tamanho total da barra de progreso + $nrTamanhoTotalBarraProgresso = $this->obterTamanhoTotalDaBarraDeProgressoREST($arrProcesso); - if(!$bolSinProcessamentoEmBloco){ - //Atribui o tamanho mximo da barra de progresso - $this->barraProgresso->setNumMax($nrTamanhoTotalBarraProgresso); + if(!$bolSinProcessamentoEmBloco) { + //Atribui o tamanho mximo da barra de progresso + $this->barraProgresso->setNumMax($nrTamanhoTotalBarraProgresso); - //Exibe a barra de progresso aps definir o seu tamanho - $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_PROCEDIMENTO); - $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_PROCEDIMENTO, $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado())); - }else{ - $this->gravarLogDebug(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_PROCEDIMENTO, $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()), 2); - } + //Exibe a barra de progresso aps definir o seu tamanho + $this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_PROCEDIMENTO); + $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_PROCEDIMENTO, $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado())); + }else{ + $this->gravarLogDebug(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_PROCEDIMENTO, $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()), 2); + } - //Cancela trmite anterior caso este esteja travado em status inconsistente 1 - STA_SITUACAO_TRAMITE_INICIADO - $objTramitesAnteriores = $this->consultarTramitesAnteriores($strNumeroRegistro); - if($objTramiteInconsistente = $this->necessitaCancelamentoTramiteAnterior($objTramitesAnteriores)){ - $this->objProcessoEletronicoRN->cancelarTramite($objTramiteInconsistente->IDT); - } + //Cancela trmite anterior caso este esteja travado em status inconsistente 1 - STA_SITUACAO_TRAMITE_INICIADO + $objTramitesAnteriores = $this->consultarTramitesAnteriores($strNumeroRegistro); + if($objTramiteInconsistente = $this->necessitaCancelamentoTramiteAnterior($objTramitesAnteriores)) { + $this->objProcessoEletronicoRN->cancelarTramite($objTramiteInconsistente->IDT); + } + + $param = [ + 'novoTramiteDeProcesso' => [ + 'cabecalho' => $objCabecalho, + 'processo' => $arrProcesso + ], + 'dblIdProcedimento' => $dblIdProcedimento + ]; - $param = new stdClass(); - $param->novoTramiteDeProcesso = new stdClass(); - $param->novoTramiteDeProcesso->cabecalho = $objCabecalho; - $param->novoTramiteDeProcesso->processo = $objProcesso; - $param->dblIdProcedimento = $dblIdProcedimento; - $novoTramite = $this->objProcessoEletronicoRN->enviarProcesso($param); + $novoTramite = $this->objProcessoEletronicoRN->enviarProcessoREST($param); - $numIdTramite = $novoTramite->dadosTramiteDeProcessoCriado->IDT; - $this->lancarEventoEnvioMetadados($numIdTramite); + $numIdTramite = $novoTramite->IDT; + $this->lancarEventoEnvioMetadados($numIdTramite); - $this->atualizarPenProtocolo($dblIdProcedimento); + $this->atualizarPenProtocolo($dblIdProcedimento); - if (isset($novoTramite->dadosTramiteDeProcessoCriado)) { - $objTramite = $novoTramite->dadosTramiteDeProcessoCriado; + if (isset($novoTramite)) { + $objTramite = $novoTramite; $this->objProcedimentoAndamentoRN->setOpts($objTramite->NRE, $objTramite->IDT, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), $dblIdProcedimento); try { $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Envio do metadados do processo', 'S')); - if($bolSinProcessamentoEmBloco){ + if($bolSinProcessamentoEmBloco) { $this->gravarLogDebug(sprintf('Envio do metadados do processo %s', $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()), 2); $objPenBlocoProcessoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); $objPenBlocoProcessoRN->alterar($objPenBlocoProcessoDTO); $idAtividadeExpedicao = $numIdAtividade; }else{ - $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $objProcesso->idProcedimentoSEI); + $idAtividadeExpedicao = $this->bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $arrProcesso['idProcedimentoSEI']); } $this->objProcessoEletronicoRN->cadastrarTramiteDeProcesso( - $objProcesso->idProcedimentoSEI, + $arrProcesso['idProcedimentoSEI'], $objTramite->NRE, $objTramite->IDT, ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO, @@ -261,35 +240,36 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe $objExpedirProcedimentoDTO->getNumIdUnidadeOrigem(), $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), - $objProcesso, + $arrProcesso, $objTramite->ticketParaEnvioDeComponentesDigitais, - $objTramite->componentesDigitaisSolicitados, + $objTramite->processosComComponentesDigitaisSolicitados, $bolSinProcessamentoEmBloco, - $numIdUnidade); + $numIdUnidade + ); - $this->objProcessoEletronicoRN->cadastrarTramitePendente($objTramite->IDT, $idAtividadeExpedicao); + $this->objProcessoEletronicoRN->cadastrarTramitePendente($objTramite->IDT, $idAtividadeExpedicao); - //TODO: Erro no BARRAMENTO: Processo no pode ser enviado se possuir 2 documentos iguais(mesmo hash) - //TODO: Melhoria no barramento de servios. O mtodo solicitar metadados no deixa claro quais os componentes digitais que - //precisam ser baixados. No cenrio de retorno de um processo existente, a nica forma consultar o status do trmite para - //saber quais precisam ser baixados. O processo poderia ser mais otimizado se o retorno nos metadados j informasse quais os - //componentes precisam ser baixados, semelhante ao que ocorre no enviarProcesso onde o barramento informa quais os componentes - //que precisam ser enviados + //TODO: Erro no BARRAMENTO: Processo no pode ser enviado se possuir 2 documentos iguais(mesmo hash) + //TODO: Melhoria no barramento de servios. O mtodo solicitar metadados no deixa claro quais os componentes digitais que + //precisam ser baixados. No cenrio de retorno de um processo existente, a nica forma consultar o status do trmite para + //saber quais precisam ser baixados. O processo poderia ser mais otimizado se o retorno nos metadados j informasse quais os + //componentes precisam ser baixados, semelhante ao que ocorre no enviarProcesso onde o barramento informa quais os componentes + //que precisam ser enviados - $this->enviarComponentesDigitais($objTramite->NRE, $objTramite->IDT, $objProcesso->protocolo, $bolSinProcessamentoEmBloco); + $this->enviarComponentesDigitais($objTramite->NRE, $objTramite->IDT, $arrProcesso['protocolo'], $bolSinProcessamentoEmBloco); - //TODO: Ao enviar o processo e seus documentos, necessrio bloquear os documentos para alterao - //pois eles j foram visualizados - //$objDocumentoRN = new DocumentoRN(); - //$objDocumentoRN->bloquearConsultado($objDocumentoRN->consultarRN0005($objDocumentoDTO)); + //TODO: Ao enviar o processo e seus documentos, necessrio bloquear os documentos para alterao + //pois eles j foram visualizados + //$objDocumentoRN = new DocumentoRN(); + //$objDocumentoRN->bloquearConsultado($objDocumentoRN->consultarRN0005($objDocumentoDTO)); - //TODO: Implementar o registro de auditoria, armazenando os metadados xml enviados para o PEN + //TODO: Implementar o registro de auditoria, armazenando os metadados xml enviados para o PEN - //TODO: Alterar atualizao para somente apresentar ao final de todo o trmite - //$this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_CONCLUSAO); + //TODO: Alterar atualizao para somente apresentar ao final de todo o trmite + //$this->barraProgresso->mover(ProcessoEletronicoINT::NEE_EXPEDICAO_ETAPA_CONCLUSAO); - if(!$bolSinProcessamentoEmBloco){ + if(!$bolSinProcessamentoEmBloco) { $this->barraProgresso->mover($this->barraProgresso->getNumMax()); $this->barraProgresso->setStrRotulo(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_CONCLUSAO); }else{ @@ -298,169 +278,176 @@ protected function expedirProcedimentoControlado(ExpedirProcedimentoDTO $objExpe $objPenBlocoProcessoRN->alterar($objPenBlocoProcessoDTO); } - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concludo envio dos componentes do processo', 'S')); + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concludo envio dos componentes do processo', 'S')); - $this->receberReciboDeEnvio($objTramite->IDT); + $this->receberReciboDeEnvio($objTramite->IDT); - $this->gravarLogDebug(sprintf('Trmite do processo %s foi concludo', $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()), 2); + $this->gravarLogDebug(sprintf('Trmite do processo %s foi concludo', $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()), 2); - $numTempoTotalRecebimento = round(microtime(true) - $numTempoInicialRecebimento, 2); - $this->gravarLogDebug("Finalizado o envio de protocolo nmero " . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado() . " (Tempo total: {$numTempoTotalRecebimento}s)", 0, true); + $numTempoTotalRecebimento = round(microtime(true) - $numTempoInicialRecebimento, 2); + $this->gravarLogDebug("Finalizado o envio de protocolo nmero " . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado() . " (Tempo total: {$numTempoTotalRecebimento}s)", 0, true); } catch (\Exception $e) { - //Realiza o desbloqueio do processo - try{ $this->desbloquearProcessoExpedicao($objProcesso->idProcedimentoSEI); } catch (Exception $ex) { } + //Realiza o desbloqueio do processo + try{ $this->desbloquearProcessoExpedicao($arrProcesso['idProcedimentoSEI']); + } catch (Exception $ex) { + } - //Realiza o cancelamento do tramite + //Realiza o cancelamento do tramite try{ - if($numIdTramite != 0){ - $this->objProcessoEletronicoRN->cancelarTramite($numIdTramite); + if($numIdTramite != 0) { + $this->objProcessoEletronicoRN->cancelarTramite($numIdTramite); } - } catch (InfraException $ex) { } + } catch (InfraException $ex) { + } - $this->registrarAndamentoExpedicaoAbortada($objProcesso->idProcedimentoSEI); + $this->registrarAndamentoExpedicaoAbortada($arrProcesso['idProcedimentoSEI']); - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concludo envio dos componentes do processo', 'N')); - throw $e; + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento('Concludo envio dos componentes do processo', 'N')); + throw $e; } } - } catch (\Exception $e) { + } catch (\Exception $e) { $this->gravarLogDebug("Erro processando envio de processo: $e", 0, true); - if($bolSinProcessamentoEmBloco){ - $objPenBlocoProcessoRN->desbloquearProcessoBloco($dblIdProcedimento); - } else { - throw new InfraException('Falha de comunicao com o servios de integrao. Por favor, tente novamente mais tarde.', $e); - } + if($bolSinProcessamentoEmBloco) { + $objPenBlocoProcessoRN->desbloquearProcessoBloco($dblIdProcedimento); + } else { + throw new InfraException('Falha de comunicao com o servios de integrao. Por favor, tente novamente mais tarde.', $e); } } + } /** - * Busca metadados do processo registrado no Barramento de Servios do PEN em trmites anteriores - * @return stdClass Metadados do Processo - */ - private function consultarMetadadosPEN($parDblIdProcedimento) - { - $objMetadadosProtocolo = null; - if(array_key_exists($parDblIdProcedimento, $this->objCacheMetadadosProtocolo)){ - $objMetadadosProtocolo = $this->objCacheMetadadosProtocolo[$parDblIdProcedimento]; - } else { - try{ - $objTramiteDTO = new TramiteDTO(); - $objTramiteDTO->setNumIdProcedimento($parDblIdProcedimento); - $objTramiteDTO->setStrStaTipoTramite(ProcessoEletronicoRN::$STA_TIPO_TRAMITE_RECEBIMENTO); - $objTramiteDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); - $objTramiteDTO->setNumMaxRegistrosRetorno(1); - $objTramiteDTO->retNumIdTramite(); + * Busca metadados do processo registrado no Barramento de Servios do PEN em trmites anteriores + * + * @return stdClass Metadados do Processo + */ + private function consultarMetadadosPEN($parDblIdProcedimento) + { + $objMetadadosProtocolo = null; + if(array_key_exists($parDblIdProcedimento, $this->objCacheMetadadosProtocolo)) { + $objMetadadosProtocolo = $this->objCacheMetadadosProtocolo[$parDblIdProcedimento]; + } else { + try{ + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->setNumIdProcedimento($parDblIdProcedimento); + $objTramiteDTO->setStrStaTipoTramite(ProcessoEletronicoRN::$STA_TIPO_TRAMITE_RECEBIMENTO); + $objTramiteDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteDTO->setNumMaxRegistrosRetorno(1); + $objTramiteDTO->retNumIdTramite(); - $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); - $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - if(isset($objTramiteDTO)) { - $parNumIdentificacaoTramite = $objTramiteDTO->getNumIdTramite(); - $objRetorno = $this->objProcessoEletronicoRN->solicitarMetadados($parNumIdentificacaoTramite); + if(isset($objTramiteDTO)) { + $parNumIdentificacaoTramite = $objTramiteDTO->getNumIdTramite(); + $objRetorno = $this->objProcessoEletronicoRN->solicitarMetadados($parNumIdentificacaoTramite); - if(isset($objRetorno)){ + if(isset($objRetorno)) { $objMetadadosProtocolo = $objRetorno->metadados; - } } } - catch(Exception $e){ - //Em caso de falha na comunicao com o barramento neste ponto, o procedimento deve serguir em frente considerando - //que os metadados do protocolo no pode ser obtida - LogSEI::getInstance()->gravar("Falha na obteno dos metadados de trmites anteriores do processo ($parDblIdProcedimento) durante trmite externo.", LogSEI::$AVISO); - } } - - $this->objCacheMetadadosProtocolo[$parDblIdProcedimento] = $objMetadadosProtocolo; - return $objMetadadosProtocolo; + catch(Exception $e){ + //Em caso de falha na comunicao com o barramento neste ponto, o procedimento deve serguir em frente considerando + //que os metadados do protocolo no pode ser obtida + LogSEI::getInstance()->gravar("Falha na obteno dos metadados de trmites anteriores do processo ($parDblIdProcedimento) durante trmite externo.", LogSEI::$AVISO); + } } + $this->objCacheMetadadosProtocolo[$parDblIdProcedimento] = $objMetadadosProtocolo; + return $objMetadadosProtocolo; + } + /** - * Mtodo responsvel por obter o tamanho total que ter a barra de progresso, considerando os diversos componentes digitais - * a quantidade de partes em que cada um ser particionado - * @author Josinaldo Jnior - * @param $parObjProcesso - * @return float|int $totalBarraProgresso - */ - private function obterTamanhoTotalDaBarraDeProgresso($parObjProcesso) { - - $nrTamanhoMegasMaximo = ProcessoEletronicoRN::obterTamanhoBlocoTransferencia(); - $nrTamanhoBytesMaximo = ($nrTamanhoMegasMaximo * pow(1024, 2)); //Qtd de MB definido como parametro - - $totalBarraProgresso = 2; - $this->contadorDaBarraDeProgresso = 2; - $arrHashIndexados = array(); - foreach ($parObjProcesso->documento as $objDoc) - { - $arrComponentesDigitais = is_array($objDoc->componenteDigital) ? $objDoc->componenteDigital : array($objDoc->componenteDigital); - foreach ($arrComponentesDigitais as $objComponenteDigital) { - $strHashComponente = ProcessoEletronicoRN::getHashFromMetaDados($objComponenteDigital->hash); - if(!in_array($strHashComponente, $arrHashIndexados)){ - $arrHashIndexados[] = $strHashComponente; - $nrTamanhoComponente = $objComponenteDigital->tamanhoEmBytes; - if($nrTamanhoComponente > $nrTamanhoBytesMaximo){ - $qtdPartes = ceil($nrTamanhoComponente / $nrTamanhoBytesMaximo); - $totalBarraProgresso += $qtdPartes; - continue; - } - $totalBarraProgresso++; + * Mtodo responsvel por obter o tamanho total que ter a barra de progresso, considerando os diversos componentes digitais + * a quantidade de partes em que cada um ser particionado + * + * @author Josinaldo Jnior + * @param $parObjProcesso + * @return float|int $totalBarraProgresso + */ + private function obterTamanhoTotalDaBarraDeProgressoREST($parObjProcesso) + { + + $nrTamanhoMegasMaximo = ProcessoEletronicoRN::obterTamanhoBlocoTransferencia(); + $nrTamanhoBytesMaximo = ($nrTamanhoMegasMaximo * 1024 ** 2); //Qtd de MB definido como parametro + + $totalBarraProgresso = 2; + $this->contadorDaBarraDeProgresso = 2; + $arrHashIndexados = []; + foreach ($parObjProcesso['documentos'] as $objDoc) + { + $arrComponentesDigitais = is_array($objDoc['componentesDigitais']) ? $objDoc['componentesDigitais'] : [$objDoc['componentesDigitais']]; + foreach ($arrComponentesDigitais as $objComponenteDigital) { + $strHashComponente = ProcessoEletronicoRN::getHashFromMetaDadosREST($objComponenteDigital['hash']); + if(!in_array($strHashComponente, $arrHashIndexados)) { + $arrHashIndexados[] = $strHashComponente; + $nrTamanhoComponente = $objComponenteDigital['tamanhoEmBytes']; + if($nrTamanhoComponente > $nrTamanhoBytesMaximo) { + $qtdPartes = ceil($nrTamanhoComponente / $nrTamanhoBytesMaximo); + $totalBarraProgresso += $qtdPartes; + continue; } + $totalBarraProgresso++; } } - - return $totalBarraProgresso; } - public function listarRepositoriosDeEstruturas() - { - $dadosArray = array(); - $arrObjRepositorioDTO = $this->objProcessoEletronicoRN->listarRepositoriosDeEstruturas(); - foreach ($arrObjRepositorioDTO as $repositorio) { - $dadosArray[$repositorio->getNumId()] = $repositorio->getStrNome(); - } - - return $dadosArray; - } + return $totalBarraProgresso; + } - public function consultarMotivosUrgencia() - { - return $this->objProcessoEletronicoRN->consultarMotivosUrgencia(); + public function listarRepositoriosDeEstruturas() + { + $dadosArray = []; + $arrObjRepositorioDTO = $this->objProcessoEletronicoRN->listarRepositoriosDeEstruturas(); + foreach ($arrObjRepositorioDTO as $repositorio) { + $dadosArray[$repositorio->getNumId()] = $repositorio->getStrNome(); } - private function construirCabecalho(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO, $strNumeroRegistro, $dblIdProcedimento = null){ - if(!isset($objExpedirProcedimentoDTO)){ - throw new InfraException('Parmetro $objExpedirProcedimentoDTO no informado.'); - } + return $dadosArray; + } - // Ateno: Comportamento desativado at que seja tratado o recebimento de um processo recebendo um novo documento - // com mesmo arquivo/hash de outro documento j existente no processo - $bolObrigarEnvioDeTodosOsComponentesDigitais = !$this->enviarApenasComponentesDigitaisPendentes( - $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), - $objExpedirProcedimentoDTO->getNumIdUnidadeDestino() - ); + public function consultarMotivosUrgencia() + { + return $this->objProcessoEletronicoRN->consultarMotivosUrgencia(); + } - return $this->objProcessoEletronicoRN->construirCabecalho( - $strNumeroRegistro, - $objExpedirProcedimentoDTO->getNumIdRepositorioOrigem(), - $objExpedirProcedimentoDTO->getNumIdUnidadeOrigem(), - $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), - $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), - $objExpedirProcedimentoDTO->getBolSinUrgente(), - $objExpedirProcedimentoDTO->getNumIdMotivoUrgencia(), - $bolObrigarEnvioDeTodosOsComponentesDigitais, - $dblIdProcedimento - ); + private function construirCabecalho(ExpedirProcedimentoDTO $objExpedirProcedimentoDTO, $strNumeroRegistro, $dblIdProcedimento = null) + { + if(!isset($objExpedirProcedimentoDTO)) { + throw new InfraException('Parmetro $objExpedirProcedimentoDTO no informado.'); } + // Ateno: Comportamento desativado at que seja tratado o recebimento de um processo recebendo um novo documento + // com mesmo arquivo/hash de outro documento j existente no processo + $bolObrigarEnvioDeTodosOsComponentesDigitais = !$this->enviarApenasComponentesDigitaisPendentes( + $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), + $objExpedirProcedimentoDTO->getNumIdUnidadeDestino() + ); + + return $this->objProcessoEletronicoRN->construirCabecalho( + $strNumeroRegistro, + $objExpedirProcedimentoDTO->getNumIdRepositorioOrigem(), + $objExpedirProcedimentoDTO->getNumIdUnidadeOrigem(), + $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), + $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), + $objExpedirProcedimentoDTO->getBolSinUrgente(), + $objExpedirProcedimentoDTO->getNumIdMotivoUrgencia(), + $bolObrigarEnvioDeTodosOsComponentesDigitais, + $dblIdProcedimento + ); + } + /** * Verifica se a unidade tem mapeamento de apenas envio de componentes digitais pendentes * - * @param $numIdRepositorioDestino - * @param $numIdUnidadeDestino + * @param $numIdRepositorioDestino + * @param $numIdUnidadeDestino * @return bool */ - private function enviarApenasComponentesDigitaisPendentes($numIdRepositorioDestino, $numIdUnidadeDestino) + private function enviarApenasComponentesDigitaisPendentes($numIdRepositorioDestino, $numIdUnidadeDestino) { $objEnvioParcialDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); $objEnvioParcialDTO->retNumIdEstrutura(); @@ -470,59 +457,71 @@ private function enviarApenasComponentesDigitaisPendentes($numIdRepositorioDesti $objEnvioParcialRN = new PenRestricaoEnvioComponentesDigitaisRN(); $arrObjEnvioParcialDTO = $objEnvioParcialRN->listar($objEnvioParcialDTO); - if (!is_null($arrObjEnvioParcialDTO) && count($arrObjEnvioParcialDTO) > 0) { - if (count($arrObjEnvioParcialDTO) > 1) { - $arrIdUnidadesParaEnvioPendentes = array(); - foreach ($arrObjEnvioParcialDTO as $value) { + if (!is_null($arrObjEnvioParcialDTO) && count($arrObjEnvioParcialDTO) > 0) { + if (count($arrObjEnvioParcialDTO) > 1) { + $arrIdUnidadesParaEnvioPendentes = []; + foreach ($arrObjEnvioParcialDTO as $value) { $arrIdUnidadesParaEnvioPendentes[] = $value->getNumIdUnidadePen(); - } + } - return in_array($numIdUnidadeDestino, $arrIdUnidadesParaEnvioPendentes); - } elseif (!empty($arrObjEnvioParcialDTO[0]->getNumIdUnidadePen())) { + return in_array($numIdUnidadeDestino, $arrIdUnidadesParaEnvioPendentes); + } elseif (!empty($arrObjEnvioParcialDTO[0]->getNumIdUnidadePen())) { return $arrObjEnvioParcialDTO[0]->getNumIdUnidadePen() == $numIdUnidadeDestino; - } + } return true; - } + } return false; - } + } - private function construirProcesso($dblIdProcedimento, $arrIdProcessoApensado = null, $parObjMetadadosTramiteAnterior = null) - { - if(!isset($dblIdProcedimento)){ + public function construirProcessoREST($dblIdProcedimento, $arrIdProcessoApensado = null, $parObjMetadadosTramiteAnterior = null) + { + if(!isset($dblIdProcedimento)) { throw new InfraException('Parmetro $dblIdProcedimento no informado.'); - } + } + $objProcedimentoDTO = $this->consultarProcedimento($dblIdProcedimento); $objPenRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); - $objProcesso = new stdClass(); - $objProcesso->staTipoProtocolo = ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO; - $objProcesso->protocolo = mb_convert_encoding($objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(), 'UTF-8', 'ISO-8859-1'); - $objProcesso->nivelDeSigilo = $this->obterNivelSigiloPEN($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo()); - $objProcesso->processoDeNegocio = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objProcedimentoDTO->getStrNomeTipoProcedimento(), 100), 'UTF-8', 'ISO-8859-1'); - $objProcesso->descricao = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objProcedimentoDTO->getStrDescricaoProtocolo(), 100), 'UTF-8', 'ISO-8859-1'); - $objProcesso->dataHoraDeProducao = $this->objProcessoEletronicoRN->converterDataWebService($objProcedimentoDTO->getDtaGeracaoProtocolo()); - if($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ - $objProcesso->hipoteseLegal = new stdClass(); - $objProcesso->hipoteseLegal->identificacao = $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()); - } - - $this->atribuirProdutorProcesso($objProcesso, $objProcedimentoDTO->getNumIdUsuarioGeradorProtocolo(), $objProcedimentoDTO->getNumIdUnidadeGeradoraProtocolo()); - $this->atribuirDataHoraDeRegistro($objProcesso, $objProcedimentoDTO->getDblIdProcedimento()); - $this->atribuirDocumentos($objProcesso, $dblIdProcedimento, $parObjMetadadosTramiteAnterior); - $this->atribuirDadosInteressados($objProcesso, $dblIdProcedimento); - $this->adicionarProcessosApensados($objProcesso, $arrIdProcessoApensado); - $this->atribuirDadosHistorico($objProcesso, $dblIdProcedimento); - - $objProcesso->idProcedimentoSEI = $dblIdProcedimento; + $objProcesso = [ + 'staTipoProtocolo' => ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO, + 'protocolo' => mb_convert_encoding($objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(), 'UTF-8', 'ISO-8859-1'), + 'nivelDeSigilo' => $this->obterNivelSigiloPEN($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo()), + 'processoDeNegocio' => mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objProcedimentoDTO->getStrNomeTipoProcedimento(), 100), 'UTF-8', 'ISO-8859-1'), + 'descricao' => mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objProcedimentoDTO->getStrDescricaoProtocolo(), 100), 'UTF-8', 'ISO-8859-1'), + 'dataHoraDeProducao' => $this->objProcessoEletronicoRN->converterDataWebService($objProcedimentoDTO->getDtaGeracaoProtocolo()) + ]; + + + + if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO) { + $objProcesso['hipoteseLegal'] = [ + 'identificacao' => $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()) + ]; + } + + $objProcesso = $this->atribuirProdutorProcessoREST($objProcesso, $objProcedimentoDTO->getNumIdUsuarioGeradorProtocolo()); + + $objProcesso = $this->atribuirDataHoraDeRegistroREST($objProcesso, $objProcedimentoDTO->getDblIdProcedimento()); + + $objProcesso = $this->atribuirDocumentosREST($objProcesso, $dblIdProcedimento, $parObjMetadadosTramiteAnterior); + + $objProcesso = $this->atribuirDadosInteressadosREST($objProcesso, $dblIdProcedimento); + + $objProcesso = $this->adicionarProcessosApensadosREST($objProcesso, $arrIdProcessoApensado); + + $objProcesso = $this->atribuirDadosHistoricoREST($objProcesso, $dblIdProcedimento); + + $objProcesso['idProcedimentoSEI'] = $dblIdProcedimento; return $objProcesso; - } + } + //TODO: Implementar mapeamento de atividades que sero enviadas para barramento (semelhante Protocolo Integrado) - private function atribuirDadosHistorico($objProcesso, $dblIdProcedimento) - { + private function atribuirDadosHistoricoREST($objProcesso, $dblIdProcedimento) + { $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO(); $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento); $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_TOTAL); @@ -532,45 +531,50 @@ private function atribuirDadosHistorico($objProcesso, $dblIdProcedimento) $objProcedimentoDTO = $objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO); $arrObjAtividadeDTO = $objProcedimentoDTO->getArrObjAtividadeDTO(); - if($arrObjAtividadeDTO == null || count($arrObjAtividadeDTO) == 0) { - throw new InfraException("No foi possvel obter andamentos do processo {$objProcesso->protocolo}"); - } + if($arrObjAtividadeDTO == null || count($arrObjAtividadeDTO) == 0) { + throw new InfraException("No foi possvel obter andamentos do processo {$objProcesso['protocolo']}"); + } - $arrObjOperacao = array(); - foreach ($arrObjAtividadeDTO as $objAtividadeDTO) { + $arrObjOperacao = []; + foreach ($arrObjAtividadeDTO as $objAtividadeDTO) { + + $objOperacao = [ + 'dataHoraOperacao' => $this->objProcessoEletronicoRN->converterDataWebService($objAtividadeDTO->getDthAbertura()), + 'unidadeOperacao' => $objAtividadeDTO->getStrDescricaoUnidade() ? mb_convert_encoding($objAtividadeDTO->getStrDescricaoUnidade(), 'UTF-8', 'ISO-8859-1') : "NA", + 'operacao' => $objAtividadeDTO->getStrNomeTarefa() ? $this->objProcessoEletronicoRN->reduzirCampoTexto(strip_tags(mb_convert_encoding($objAtividadeDTO->getStrNomeTarefa(), 'UTF-8', 'ISO-8859-1')), 1000) : "NA", + 'usuario' => $objAtividadeDTO->getStrNomeUsuarioOrigem() ? mb_convert_encoding($objAtividadeDTO->getStrNomeUsuarioOrigem(), 'UTF-8', 'ISO-8859-1') : "NA" + ]; - $objOperacao = new stdClass(); - $objOperacao->dataHoraOperacao = $this->objProcessoEletronicoRN->converterDataWebService($objAtividadeDTO->getDthAbertura()); - $objOperacao->unidadeOperacao = $objAtividadeDTO->getStrDescricaoUnidade()?mb_convert_encoding($objAtividadeDTO->getStrDescricaoUnidade(), 'UTF-8', 'ISO-8859-1'):"NA"; - $objOperacao->operacao = $objAtividadeDTO->getStrNomeTarefa()?$this->objProcessoEletronicoRN->reduzirCampoTexto(strip_tags(mb_convert_encoding($objAtividadeDTO->getStrNomeTarefa(), 'UTF-8', 'ISO-8859-1')), 1000):"NA"; - $objOperacao->usuario = $objAtividadeDTO->getStrNomeUsuarioOrigem()?mb_convert_encoding($objAtividadeDTO->getStrNomeUsuarioOrigem(), 'UTF-8', 'ISO-8859-1'):"NA"; $arrObjOperacao[] = $objOperacao; - } + } - usort($arrObjOperacao, function($obj1, $obj2){ - $dt1=new DateTime($obj1->dataHoraOperacao); - $dt2=new DateTime($obj2->dataHoraOperacao); - return $dt1>$dt2; - }); + usort( + $arrObjOperacao, function ($obj1, $obj2) { + $dt1 = new DateTime($obj1['dataHoraOperacao']); + $dt2 = new DateTime($obj2['dataHoraOperacao']); + return $dt1 > $dt2; + } + ); - $objProcesso->historico = $arrObjOperacao; - } + $objProcesso['itensHistorico'] = $arrObjOperacao; + + return $objProcesso; + } /** - * Muda o estado de um procedimento - * - * @param object $objProcesso - * @param string $strStaEstado - * @throws InfraException - * @return null - */ - public static function mudarEstadoProcedimento($objProcesso, $strStaEstado) - { - if(!isset($objProcesso)) { + * Muda o estado de um procedimento + * + * @param object $objProcesso + * @param string $strStaEstado + * @throws InfraException + */ + public static function mudarEstadoProcedimento($objProcesso, $strStaEstado) + { + if(!isset($objProcesso)) { throw new InfraException('Parmetro $objProcesso no informado.'); - } + } - try { + try { //muda estado do protocolo $objProtocoloDTO = new ProtocoloDTO(); @@ -589,32 +593,31 @@ public static function mudarEstadoProcedimento($objProcesso, $strStaEstado) $objAtributoAndamentoDTO->setStrNome('MOTIVO'); $objAtributoAndamentoDTO->setStrIdOrigem(null); $objAtributoAndamentoDTO->setStrValor('Processo est em processamento devido ao seu trmite externo para outra unidade.'); - $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array($objAtributoAndamentoDTO)); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO([$objAtributoAndamentoDTO]); $objAtividadeRN = new AtividadeRN(); $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); - } - catch(Exception $e){ + } + catch(Exception $e){ throw new InfraException('Erro ao mudar o estado do processo.', $e); - } + } - if (isset($objProcesso->processoApensado) && is_array($objProcesso->processoApensado)) { - foreach ($objProcesso->processoApensado as $objProcessoApensado) { + if (isset($objProcesso->processoApensado) && is_array($objProcesso->processoApensado)) { + foreach ($objProcesso->processoApensado as $objProcessoApensado) { static::mudarEstadoProcedimento($objProcessoApensado, $strStaEstado); - } } } + } /** - * Muda o estado de um procedimento - * - * @param object $objProcesso - * @param string $strStaEstado - * @throws InfraException - * @return null - */ - public static function mudarEstadoProcedimentoNormal($objProcesso, $strStaEstado) - { + * Muda o estado de um procedimento + * + * @param object $objProcesso + * @param string $strStaEstado + * @throws InfraException + */ + public static function mudarEstadoProcedimentoNormal($objProcesso, $strStaEstado) + { //Muda o estado do Protocolo para normal $objProtocoloDTO = new ProtocoloDTO(); $objProtocoloDTO->setStrStaEstado($strStaEstado); @@ -622,11 +625,11 @@ public static function mudarEstadoProcedimentoNormal($objProcesso, $strStaEstado $objProtocoloRN = new ProtocoloRN(); $objProtocoloRN->alterarRN0203($objProtocoloDTO); - } + } - public function bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $numIdProcedimento) - { + public function bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $numIdProcedimento) + { //Instancia a API do SEI para bloquei do processo $objEntradaBloquearProcessoAPI = new EntradaBloquearProcessoAPI(); $objEntradaBloquearProcessoAPI->setIdProcedimento($numIdProcedimento); @@ -635,7 +638,7 @@ public function bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $numId $objSeiRN = new SeiRN(); $objSeiRN->bloquearProcesso($objEntradaBloquearProcessoAPI); - $arrObjAtributoAndamentoDTO = array(); + $arrObjAtributoAndamentoDTO = []; //Seta o repositrio de destino para constar no histrico $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); @@ -648,16 +651,14 @@ public function bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $numId $objEstrutura = $this->objProcessoEletronicoRN->consultarEstrutura( $objExpedirProcedimentoDTO->getNumIdRepositorioDestino(), $objExpedirProcedimentoDTO->getNumIdUnidadeDestino(), true ); + $nome=$objEstrutura->nome; + $numeroDeIdentificacaoDaEstrutura=$objEstrutura->numeroDeIdentificacaoDaEstrutura; - $dados=ProcessoEletronicoINT::formatarHierarquia($objEstrutura); - $nome=$dados['nome']; - $objNivel=$dados['objNivel']; - - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO_HIRARQUIA'); - $objAtributoAndamentoDTO->setStrValor($nome); - $objAtributoAndamentoDTO->setStrIdOrigem($objNivel->numeroDeIdentificacaoDaEstrutura); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO_HIRARQUIA'); + $objAtributoAndamentoDTO->setStrValor($nome); + $objAtributoAndamentoDTO->setStrIdOrigem($numeroDeIdentificacaoDaEstrutura); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; //Seta a unidade de destino @@ -683,33 +684,33 @@ public function bloquearProcedimentoExpedicao($objExpedirProcedimentoDTO, $numId $atividade = $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); return $atividade->getNumIdAtividade(); - } + } - public function desbloquearProcessoExpedicao($numIdProcedimento) - { + public function desbloquearProcessoExpedicao($numIdProcedimento) + { ProcessoEletronicoRN::desbloquearProcesso($numIdProcedimento); - } + } - public function registrarAndamentoExpedicaoAbortada($dblIdProtocolo) - { + public function registrarAndamentoExpedicaoAbortada($dblIdProtocolo) + { //Seta todos os atributos do histrico de aborto da expedio $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo($dblIdProtocolo); $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO)); - $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array()); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO([]); //Gera o andamento de expedio abortada $objAtividadeRN = new AtividadeRN(); $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); - } + } - public static function receberRecusaProcedimento($motivo, $unidade_destino, $idProtocolo, $numUnidadeDestino = null) - { - try{ + public static function receberRecusaProcedimento($motivo, $unidade_destino, $idProtocolo, $numUnidadeDestino = null) + { + try{ //Muda o status do protocolo para "Normal" - $arrObjAtributoAndamentoDTO = array(); + $arrObjAtributoAndamentoDTO = []; $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); $objAtributoAndamentoDTO->setStrNome('MOTIVO'); @@ -740,247 +741,272 @@ public static function receberRecusaProcedimento($motivo, $unidade_destino, $idP $objProtocoloRN->alterarRN0203($objProtocoloDTO); - }catch (InfraException $e){ + }catch (InfraException $e){ throw new InfraException($e->getStrDescricao()); - } - catch(Exception $e){ + } + catch(Exception $e){ throw new InfraException($e->getMessage()); - } } + } - private function atribuirDataHoraDeRegistro($objContexto, $dblIdProcedimento, $dblIdDocumento = null) - { + private function atribuirDataHoraDeRegistroREST($objContexto, $dblIdProcedimento, $dblIdDocumento = null) + { //Validar parmetro $objContexto - if(!isset($objContexto)) { + if(!isset($objContexto)) { throw new InfraException('Parmetro $objContexto no informado.'); - } + } //Validar parmetro $dbIdProcedimento - if(!isset($dblIdProcedimento)) { + if(!isset($dblIdProcedimento)) { throw new InfraException('Parmetro $dbIdProcedimento no informado.'); - } + } $objProcedimentoHistoricoDTO = new ProcedimentoHistoricoDTO(); $objProcedimentoHistoricoDTO->setDblIdProcedimento($dblIdProcedimento); $objProcedimentoHistoricoDTO->setStrStaHistorico(ProcedimentoRN::$TH_TOTAL); - $objProcedimentoHistoricoDTO->adicionarCriterio(array('IdTarefa','IdTarefa'), array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL), array(TarefaRN::$TI_GERACAO_PROCEDIMENTO, ProcessoeletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), InfraDTO::$OPER_LOGICO_OR); + $objProcedimentoHistoricoDTO->adicionarCriterio(['IdTarefa', 'IdTarefa'], [InfraDTO::$OPER_IGUAL, InfraDTO::$OPER_IGUAL], [TarefaRN::$TI_GERACAO_PROCEDIMENTO, ProcessoeletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO], InfraDTO::$OPER_LOGICO_OR); $objProcedimentoHistoricoDTO->setStrSinGerarLinksHistorico('N'); $objProcedimentoHistoricoDTO->setNumMaxRegistrosRetorno(1); $objProcedimentoHistoricoDTO->setOrdNumIdTarefa(InfraDTO::$TIPO_ORDENACAO_ASC); - if(isset($dblIdDocumento)){ + if(isset($dblIdDocumento)) { $objProcedimentoHistoricoDTO->setDblIdDocumento($dblIdDocumento); - $objProcedimentoHistoricoDTO->setNumIdTarefa(array(TarefaRN::$TI_GERACAO_DOCUMENTO, TarefaRN::$TI_RECEBIMENTO_DOCUMENTO, TarefaRN::$TI_DOCUMENTO_MOVIDO_DO_PROCESSO), InfraDTO::$OPER_IN); - } + $objProcedimentoHistoricoDTO->setNumIdTarefa([TarefaRN::$TI_GERACAO_DOCUMENTO, TarefaRN::$TI_RECEBIMENTO_DOCUMENTO, TarefaRN::$TI_DOCUMENTO_MOVIDO_DO_PROCESSO], InfraDTO::$OPER_IN); + } $objProcedimentoDTOHistorico = $this->objProcedimentoRN->consultarHistoricoRN1025($objProcedimentoHistoricoDTO); $arrObjAtividadeDTOHistorico = $objProcedimentoDTOHistorico->getArrObjAtividadeDTO(); - if(isset($arrObjAtividadeDTOHistorico) && count($arrObjAtividadeDTOHistorico) == 1){ - $objContexto->dataHoraDeRegistro = $this->objProcessoEletronicoRN->converterDataWebService($arrObjAtividadeDTOHistorico[0]->getDthAbertura()); - } + if(isset($arrObjAtividadeDTOHistorico) && count($arrObjAtividadeDTOHistorico) == 1) { + $objContexto['dataHoraDeRegistro'] = $this->objProcessoEletronicoRN->converterDataWebService($arrObjAtividadeDTOHistorico[0]->getDthAbertura()); } - private function atribuirProdutorProcesso($objProcesso, $dblIdProcedimento, $numIdUnidadeGeradora) - { - if(!isset($objProcesso)){ + return $objContexto; + } + + private function atribuirProdutorProcessoREST($objProcesso, $dblIdProcedimento) + { + if(!isset($objProcesso)) { throw new InfraException('Parmetro $objProcesso no informado.'); - } + } - $objProcesso->produtor = new stdClass(); $objUsuarioProdutor = $this->consultarUsuario($dblIdProcedimento); - if(isset($objUsuarioProdutor)) { - //Dados do produtor do processo - $objProcesso->produtor->nome = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objUsuarioProdutor->getStrNome(), 150), 'UTF-8', 'ISO-8859-1'); - //TODO: Obter tipo de pessoa fsica dos contatos do SEI - $objProcesso->produtor->numeroDeIdentificacao = $objUsuarioProdutor->getDblCpfContato(); - $objProcesso->produtor->tipo = self::STA_TIPO_PESSOA_FISICA; - //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) - } + if (isset($objUsuarioProdutor)) { + // Dados do produtor do processo + $objProcesso['produtor'] = [ + 'nome' => mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objUsuarioProdutor->getStrNome(), 150), 'UTF-8', 'ISO-8859-1'), + 'tipo' => self::STA_TIPO_PESSOA_FISICA + ]; + if ($objUsuarioProdutor->getDblCpfContato()) { + $objProcesso['produtor']['numeroDeIdentificacao'] = $objUsuarioProdutor->getDblCpfContato(); + } + // TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) + } + $objUnidadeGeradora = $this->consultarUnidade($dblIdProcedimento); - if(isset($objUnidadeGeradora)){ - $objProcesso->produtor->unidade = new stdClass(); - $objProcesso->produtor->unidade->nome = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objUnidadeGeradora->getStrDescricao(), 150), 'UTF-8', 'ISO-8859-1'); - $objProcesso->produtor->unidade->tipo = self::STA_TIPO_PESSOA_ORGAOPUBLICO; - //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) - } + if (isset($objUnidadeGeradora)) { + $objProcesso['produtor']['unidade'] = [ + 'nome' => mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objUnidadeGeradora->getStrDescricao(), 150), 'UTF-8', 'ISO-8859-1'), + 'tipo' => self::STA_TIPO_PESSOA_ORGAOPUBLICO + ]; + // TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) } - private function atribuirDadosInteressados($objProcesso, $dblIdProcedimento) - { - if(!isset($objProcesso)){ - throw new InfraException('Parmetro $objProcesso no informado.'); - } - - $arrParticipantesDTO = $this->listarInteressados($dblIdProcedimento); + return $objProcesso; + } - if(isset($arrParticipantesDTO) && count($arrParticipantesDTO) > 0){ - $objProcesso->interessado = array(); - foreach ($arrParticipantesDTO as $participanteDTO) { - $interessado = new stdClass(); - $interessado->nome = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($participanteDTO->getStrNomeContato(), 150), 'UTF-8', 'ISO-8859-1'); - $objProcesso->interessado[] = $interessado; - } - } + private function atribuirDadosInteressadosREST($objProcesso, $dblIdProcedimento) + { + if (!isset($objProcesso)) { + throw new InfraException('Parmetro $objProcesso no informado.'); } + + $arrParticipantesDTO = $this->listarInteressados($dblIdProcedimento); + + if (isset($arrParticipantesDTO) && count($arrParticipantesDTO) > 0) { + $objProcesso['interessados'] = []; + + foreach ($arrParticipantesDTO as $participanteDTO) { + $interessado = [ + 'nome' => mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($participanteDTO->getStrNomeContato(), 150), 'UTF-8', 'ISO-8859-1') + ]; + $objProcesso['interessados'][] = $interessado; + } + } + + return $objProcesso; + } - private function atribuirDocumentos($objProcesso, $dblIdProcedimento, $parObjMetadadosTramiteAnterior) - { - if(!isset($objProcesso)) { + private function atribuirDocumentosREST($objProcesso, $dblIdProcedimento, $parObjMetadadosTramiteAnterior) + { + + + if(!isset($objProcesso)) { throw new InfraException('Parmetro $objProcesso no informado.'); - } + } $arrDocumentosRelacionados = $this->listarDocumentosRelacionados($dblIdProcedimento); - if(!isset($arrDocumentosRelacionados)) { + if(!isset($arrDocumentosRelacionados)) { throw new InfraException('Documentos no encontrados.'); - } + } - $arrObjCompIndexadoPorIdDocumentoDTO = array(); + $arrObjCompIndexadoPorIdDocumentoDTO = []; $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($dblIdProcedimento); $objUltimoTramiteRecebidoDTO = $this->objProcessoEletronicoRN->consultarUltimoTramiteRecebido($objProcessoEletronicoPesquisaDTO); - if(!is_null($objUltimoTramiteRecebidoDTO)){ - if ($this->objProcessoEletronicoRN->possuiComponentesComDocumentoReferenciado($objUltimoTramiteRecebidoDTO)) { + if(!is_null($objUltimoTramiteRecebidoDTO)) { + if ($this->objProcessoEletronicoRN->possuiComponentesComDocumentoReferenciado($objUltimoTramiteRecebidoDTO)) { $arrObjComponentesDigitaisDTO = $this->objProcessoEletronicoRN->listarComponentesDigitais($objUltimoTramiteRecebidoDTO); $arrObjCompIndexadoPorIdDocumentoDTO = InfraArray::indexarArrInfraDTO($arrObjComponentesDigitaisDTO, 'IdDocumento'); - } } - - $objProcesso->documento = array(); - foreach ($arrDocumentosRelacionados as $ordem => $objDocumentosRelacionados) { + } + + $objProcesso['documentos'] = []; + foreach ($arrDocumentosRelacionados as $ordem => $objDocumentosRelacionados) { $documentoDTO = $objDocumentosRelacionados["Documento"]; $staAssociacao = $objDocumentosRelacionados["StaAssociacao"]; - $documento = new stdClass(); $objPenRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); //Considera o nmero/nome do documento externo para descrio do documento $boolDocumentoRecebidoComNumero = $documentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO && $documentoDTO->getStrNumero() != null; $strDescricaoDocumento = ($boolDocumentoRecebidoComNumero) ? $documentoDTO->getStrNumero() : "***"; - $documento->ordem = $ordem + 1; - $documento->descricao = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($strDescricaoDocumento, 100), 'UTF-8', 'ISO-8859-1'); - $documento->retirado = ($documentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_DOCUMENTO_CANCELADO) ? true : false; - $documento->nivelDeSigilo = $this->obterNivelSigiloPEN($documentoDTO->getStrStaNivelAcessoLocalProtocolo()); + $documento = []; // Inicializando $documento como um array + $documento['ordem'] = $ordem + 1; + $documento['descricao'] = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($strDescricaoDocumento, 100), 'UTF-8', 'ISO-8859-1'); + + + $documento['retirado'] = ($documentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_DOCUMENTO_CANCELADO) ? true : false; + $documento['nivelDeSigilo'] = $this->obterNivelSigiloPEN($documentoDTO->getStrStaNivelAcessoLocalProtocolo()); + //Verifica se o documento faz parte de outro processo devido sua anexao ou sua movimentao - if($staAssociacao != RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO){ - if($documentoDTO->getStrProtocoloProcedimentoFormatado() != $objProcesso->protocolo){ - // Caso o documento no tenha sido movido, seu protocolo diferente devido sua anexao outro processo - $documento->protocoloDoProcessoAnexado = $documentoDTO->getStrProtocoloProcedimentoFormatado(); - $documento->idProcedimentoAnexadoSEI = $documentoDTO->getDblIdProcedimento(); - } - } else { - // Em caso de documento movido, ele ser tratado como cancelado para trmites externos - $documento->retirado = true; + if($staAssociacao != RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO) { + if ($documentoDTO->getStrProtocoloProcedimentoFormatado() != $objProcesso['protocolo']) { + // Caso o documento no tenha sido movido, seu protocolo diferente devido sua anexao outro processo + $documento['protocoloDoProcessoAnexado'] = $documentoDTO->getStrProtocoloProcedimentoFormatado(); + $documento['idProcedimentoAnexadoSEI'] = $documentoDTO->getDblIdProcedimento(); + } - - if($documentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO){ - $documento->hipoteseLegal = new stdClass(); - $documento->hipoteseLegal->identificacao = $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($documentoDTO->getNumIdHipoteseLegalProtocolo()); + } else { + // Em caso de documento movido, ele ser tratado como cancelado para trmites externos + $documento['retirado'] = true; + } + if($documentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO) { + $documento['hipoteseLegal'] = []; // Inicializando a chave 'hipoteseLegal' como um array + $documento['hipoteseLegal']['identificacao'] = $objPenRelHipoteseLegalRN->getIdHipoteseLegalPEN($documentoDTO->getNumIdHipoteseLegalProtocolo()); //TODO: Adicionar nome da hiptese legal atribuida ao documento - } - $documento->dataHoraDeProducao = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo()); - $documento->produtor = new stdClass(); + } + $documento['dataHoraDeProducao'] = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo()); + $documento['dataHoraDeRegistro'] = $this->objProcessoEletronicoRN->converterDataWebService($documentoDTO->getDtaGeracaoProtocolo()); + $documento['produtor'] = []; // Inicializando a chave 'produtor' como um array $usuarioDTO = $this->consultarUsuario($documentoDTO->getNumIdUsuarioGeradorProtocolo()); - if(isset($usuarioDTO)) { - $documento->produtor->nome = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($usuarioDTO->getStrNome(), 150), 'UTF-8', 'ISO-8859-1'); - $documento->produtor->numeroDeIdentificacao = $usuarioDTO->getDblCpfContato(); - //TODO: Obter tipo de pessoa fsica dos contextos/contatos do SEI - $documento->produtor->tipo = self::STA_TIPO_PESSOA_FISICA; - ; - } - + if(isset($usuarioDTO)) { + $documento['produtor']['nome'] = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($usuarioDTO->getStrNome(), 150), 'UTF-8', 'ISO-8859-1'); + $documento['produtor']['numeroDeIdentificacao'] = $usuarioDTO->getDblCpfContato(); + // TODO: Obter tipo de pessoa fsica dos contextos/contatos do SEI + $documento['produtor']['tipo'] = self::STA_TIPO_PESSOA_FISICA; + + } $unidadeDTO = $this->consultarUnidade($documentoDTO->getNumIdUnidadeResponsavel()); - if(isset($unidadeDTO)) { - $documento->produtor->unidade = new stdClass(); - $documento->produtor->unidade->nome = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($unidadeDTO->getStrDescricao(), 150), 'UTF-8', 'ISO-8859-1'); - $documento->produtor->unidade->tipo = self::STA_TIPO_PESSOA_ORGAOPUBLICO; - //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) - } + if(isset($unidadeDTO)) { + $documento['produtor']['unidade'] = []; // Inicializando a chave 'unidade' como um array + $documento['produtor']['unidade']['nome'] = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($unidadeDTO->getStrDescricao(), 150), 'UTF-8', 'ISO-8859-1'); + $documento['produtor']['unidade']['tipo'] = self::STA_TIPO_PESSOA_ORGAOPUBLICO; - if(array_key_exists($documentoDTO->getDblIdDocumento(), $arrObjCompIndexadoPorIdDocumentoDTO)){ + //TODO: Informar dados da estrutura organizacional (estruturaOrganizacional) + } + if(array_key_exists($documentoDTO->getDblIdDocumento(), $arrObjCompIndexadoPorIdDocumentoDTO)) { $objComponenteDigitalDTO = $arrObjCompIndexadoPorIdDocumentoDTO[$documentoDTO->getDblIdDocumento()]; - if(!empty($objComponenteDigitalDTO->getNumOrdemDocumentoReferenciado())){ - $documento->ordemDoDocumentoReferenciado = $objComponenteDigitalDTO->getNumOrdemDocumentoReferenciado(); - } + if(!empty($objComponenteDigitalDTO->getNumOrdemDocumentoReferenciado())) { + $documento['ordemDoDocumentoReferenciado'] = $objComponenteDigitalDTO->getNumOrdemDocumentoReferenciado(); } - - $documento->produtor->numeroDeIdentificacao = $documentoDTO->getStrProtocoloDocumentoFormatado(); - $this->atribuirDataHoraDeRegistro($documento, $documentoDTO->getDblIdProcedimento(), $documentoDTO->getDblIdDocumento()); - $this->atribuirEspecieDocumental($documento, $documentoDTO, $parObjMetadadosTramiteAnterior); - - $this->atribuirNumeracaoDocumento($documento, $documentoDTO); - if($documento->retirado === true){ + } + $documento['produtor']['numeroDeIdentificacao'] = $documentoDTO->getStrProtocoloDocumentoFormatado(); + $this->atribuirDataHoraDeRegistroREST($documento, $documentoDTO->getDblIdProcedimento(), $documentoDTO->getDblIdDocumento()); + $documento = $this->atribuirEspecieDocumentalREST($documento, $documentoDTO, $parObjMetadadosTramiteAnterior); + $documento = $this->atribuirNumeracaoDocumentoREST($documento, $documentoDTO); + + if($documento['retirado'] === true) { $objComponenteDigitalDTO = new ComponenteDigitalDTO(); $objComponenteDigitalDTO->retTodos(); $objComponenteDigitalDTO->setDblIdDocumento($documentoDTO->getDblIdDocumento()); $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); - - if($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0){ + + if($objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0) { $arrobjComponenteDigitalDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); $componenteDigital = $arrobjComponenteDigitalDTO[0]; - $documento->componenteDigital = new stdClass(); - $documento->componenteDigital->ordem = 1; - $documento->componenteDigital->nome = mb_convert_encoding($componenteDigital->getStrNome(), 'UTF-8', 'ISO-8859-1'); - $documento->componenteDigital->hash = new SoapVar("{$componenteDigital->getStrHashConteudo()}", XSD_ANYXML); - $documento->componenteDigital->tamanhoEmBytes = $componenteDigital->getNumTamanho(); - $documento->componenteDigital->mimeType = $componenteDigital->getStrMimeType(); - $documento->componenteDigital->tipoDeConteudo = $componenteDigital->getStrTipoConteudo(); - $documento->componenteDigital->idAnexo = $componenteDigital->getNumIdAnexo(); - $documento->componenteDigital = $this->atribuirDadosAssinaturaDigital($documentoDTO, $documento->componenteDigital, $componenteDigital->getStrHashConteudo()); - - if($componenteDigital->getStrMimeType() == 'outro'){ - $documento->componenteDigital->dadosComplementaresDoTipoDeArquivo = 'outro'; + $arrComponentesDigitais = []; + + $documento['componentesDigitais'] = []; // Inicializando 'componentesDigitais' como um array + $arrComponentesDigitais['ordem'] = 1; + $arrComponentesDigitais['nome'] = mb_convert_encoding($componenteDigital->getStrNome(), 'UTF-8', 'ISO-8859-1'); + $arrComponentesDigitais['hash'] = [ + 'algoritmo' => $componenteDigital->getStrAlgoritmoHash(), + 'conteudo' => $componenteDigital->getStrHashConteudo() + ]; + + $arrComponentesDigitais['tamanhoEmBytes'] = $componenteDigital->getNumTamanho(); + $arrComponentesDigitais['mimeType'] = $componenteDigital->getStrMimeType(); + $arrComponentesDigitais['tipoDeConteudo'] = $componenteDigital->getStrTipoConteudo(); + $arrComponentesDigitais['idAnexo'] = $componenteDigital->getNumIdAnexo(); + + if($componenteDigital->getStrMimeType() == 'outro') { + $arrComponentesDigitais['dadosComplementaresDoTipoDeArquivo'] = 'outro'; } - }else{ - $this->atribuirComponentesDigitais($documento, $documentoDTO, $dblIdProcedimento); - } + + $documento['componentesDigitais'][] = $arrComponentesDigitais; + $arrComponentesDigitais = $this->atribuirDadosAssinaturaDigitalREST($documentoDTO, $documento['componentesDigitais'], $componenteDigital->getStrHashConteudo()); + }else{ - $this->atribuirComponentesDigitais($documento, $documentoDTO, $dblIdProcedimento); + $documento = $this->atribuirComponentesDigitaisREST($documento, $documentoDTO, $dblIdProcedimento); } - + }else{ + $documento = $this->atribuirComponentesDigitaisREST($documento, $documentoDTO, $dblIdProcedimento); + } // TODO: Necessrio tratar informaes abaixo //- protocoloDoDocumentoAnexado //- protocoloDoProcessoAnexado //- protocoloAnterior //- historico - $documento->idDocumentoSEI = $documentoDTO->getDblIdDocumento(); - $objProcesso->documento[] = $documento; - } + $documento['idDocumentoSEI'] = $documentoDTO->getDblIdDocumento(); + $objProcesso['documentos'][] = $documento; } + return $objProcesso; + } - public function atribuirComponentesDigitaisRetirados($documentoDTO){ - } + public function atribuirComponentesDigitaisRetirados($documentoDTO) + { + + } /** - * Obtm a espcie documental relacionada ao documento do processo. - * A espcie documental, por padro, obtida do mapeamento de espcies realizado pelo administrador - * nas configuraes do mdulo. - * Caso o documento tenha sido produzido por outro rgo externamente, a espcie a ser considerada ser - * aquela definida originalmente pelo seu produtor - * - * @param int $parDblIdProcedimento Identificador do processo - * @param int $parDblIdDocumento Identificador do documento - * @return int Cdigo da espcie documental - * - */ - private function atribuirEspecieDocumental($parMetaDocumento, $parDocumentoDTO, $parObjMetadadosTramiteAnterior) - { + * Obtm a espcie documental relacionada ao documento do processo. + * A espcie documental, por padro, obtida do mapeamento de espcies realizado pelo administrador + * nas configuraes do mdulo. + * Caso o documento tenha sido produzido por outro rgo externamente, a espcie a ser considerada ser + * aquela definida originalmente pelo seu produtor + * + * @param int $parDblIdProcedimento Identificador do processo + * @param int $parDblIdDocumento Identificador do documento + * @return int Cdigo da espcie documental + */ + private function atribuirEspecieDocumentalREST($parMetaDocumento, $parDocumentoDTO, $parObjMetadadosTramiteAnterior) + { //Validao dos parmetros da funo - if(!isset($parDocumentoDTO)){ + if(!isset($parDocumentoDTO)) { throw new InfraException('Parmetro $parDocumentoDTO no informado.'); - } + } - if(!isset($parMetaDocumento)){ + if(!isset($parMetaDocumento)) { throw new InfraException('Parmetro $parMetaDocumento no informado.'); - } - + } $numCodigoEspecie = null; $strNomeEspecieProdutor = null; $dblIdProcedimento = $parDocumentoDTO->getDblIdProcedimento(); @@ -993,74 +1019,73 @@ private function atribuirEspecieDocumental($parMetaDocumento, $parDocumentoDTO, // Verifica se o documento de um processo anexado ou no e busca no // campo correto - if(isset($parMetaDocumento->idProcedimentoAnexadoSEI)){ + if(isset($parMetaDocumento['idProcedimentoAnexadoSEI'])) { $objComponenteDigitalDTO->setDblIdProcedimentoAnexado($dblIdProcedimento); - } - else{ + } + else{ $objComponenteDigitalDTO->setDblIdProcedimento($dblIdProcedimento); - } - + } $objComponenteDigitalDTO->setDblIdDocumento($dblIdDocumento); $objComponenteDigitalDTO->setNumMaxRegistrosRetorno(1); $objComponenteDigitalDTO->setOrd('IdTramite', InfraDTO::$TIPO_ORDENACAO_DESC); - $objComponenteDigitalBD = new ComponenteDigitalBD($this->inicializarObjInfraIBanco()); + $objComponenteDigitalBD = new ComponenteDigitalBD(BancoSEI::getInstance()); $objComponenteDigitalDTO = $objComponenteDigitalBD->consultar($objComponenteDigitalDTO); - if($objComponenteDigitalDTO != null){ + if($objComponenteDigitalDTO != null) { $numCodigoEspecie = $objComponenteDigitalDTO->getNumCodigoEspecie(); $strNomeEspecieProdutor = mb_convert_encoding($objComponenteDigitalDTO->getStrNomeEspecieProdutor(), 'UTF-8', 'ISO-8859-1'); - } - + } //Caso a informao sobre mapeamento esteja nulo, necessrio buscar tal informao no Barramento //A lista de documentos recuperada do trmite anterior ser indexada pela sua ordem no protocolo e //a espcie documental e o nome do produtor sero obtidos para atribuio ao documento - if($objComponenteDigitalDTO != null && $numCodigoEspecie == null) { - if(isset($parObjMetadadosTramiteAnterior)){ - $arrObjMetaDocumentosTramiteAnterior = array(); + if($objComponenteDigitalDTO != null && $numCodigoEspecie == null) { + if(isset($parObjMetadadosTramiteAnterior)) { + $arrObjMetaDocumentosTramiteAnterior = []; //Obteno de lista de documentos do processo $objProcesso = $parObjMetadadosTramiteAnterior->processo; $objDocumento = $parObjMetadadosTramiteAnterior->documento; - $objProtocolo = isset($objProcesso) ? $objProcesso : $objDocumento; + $objProtocolo = $objProcesso ?? $objDocumento; $arrObjMetaDocumentosTramiteAnterior = ProcessoEletronicoRN::obterDocumentosProtocolo($objProtocolo); - if(isset($arrObjMetaDocumentosTramiteAnterior) && !is_array($arrObjMetaDocumentosTramiteAnterior)){ - $arrObjMetaDocumentosTramiteAnterior = array($arrObjMetaDocumentosTramiteAnterior); - } + if(isset($arrObjMetaDocumentosTramiteAnterior) && !is_array($arrObjMetaDocumentosTramiteAnterior)) { + $arrObjMetaDocumentosTramiteAnterior = [$arrObjMetaDocumentosTramiteAnterior]; + } //Indexao dos documentos pela sua ordem - $arrMetaDocumentosAnteriorIndexado = array(); - foreach ($arrObjMetaDocumentosTramiteAnterior as $objMetaDoc) { + $arrMetaDocumentosAnteriorIndexado = []; + foreach ($arrObjMetaDocumentosTramiteAnterior as $objMetaDoc) { $arrMetaDocumentosAnteriorIndexado[$objMetaDoc->ordem] = $objMetaDoc; - } + } //Atribui espcie documental definida pelo produtor do documento e registrado no PEN, caso exista - if(count($arrMetaDocumentosAnteriorIndexado) > 0 && array_key_exists($parMetaDocumento->ordem, $arrMetaDocumentosAnteriorIndexado)){ - $numCodigoEspecie = $arrMetaDocumentosAnteriorIndexado[$parMetaDocumento->ordem]->especie->codigo; - $strNomeEspecieProdutor = mb_convert_encoding($arrMetaDocumentosAnteriorIndexado[$parMetaDocumento->ordem]->especie->nomeNoProdutor, 'UTF-8', 'ISO-8859-1'); + if(count($arrMetaDocumentosAnteriorIndexado) > 0 && array_key_exists($parMetaDocumento['ordem'], $arrMetaDocumentosAnteriorIndexado)) { + if (is_array($arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie)) { + $arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie = (object) $arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie; } + $numCodigoEspecie = $arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie->codigo; + $strNomeEspecieProdutor = mb_convert_encoding($arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie->nomeNoProdutor, 'UTF-8', 'ISO-8859-1'); } } - + } //Aplica o mapeamento de espcies definida pelo administrador para os novos documentos - if($numCodigoEspecie == null) { + if($numCodigoEspecie == null) { $numCodigoEspecie = $this->obterEspecieMapeada($parDocumentoDTO->getNumIdSerie()); $strNomeEspecieProdutor = mb_convert_encoding($parDocumentoDTO->getStrNomeSerie(), 'UTF-8', 'ISO-8859-1'); - } + } - $parMetaDocumento->especie = new stdClass(); - $parMetaDocumento->especie->codigo = $numCodigoEspecie; - $parMetaDocumento->especie->nomeNoProdutor = $strNomeEspecieProdutor; + $parMetaDocumento['especie'] = ['codigo' => $numCodigoEspecie, 'nomeNoProdutor' => $strNomeEspecieProdutor]; + return $parMetaDocumento; - } + } - private function obterEspecieMapeada($parNumIdSerie) - { - if(!isset($parNumIdSerie) || $parNumIdSerie == 0) { + private function obterEspecieMapeada($parNumIdSerie) + { + if(!isset($parNumIdSerie) || $parNumIdSerie == 0) { throw new InfraException('Parmetro $parNumIdSerie no informado.'); - } + } $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapEnviadoDTO(); $objPenRelTipoDocMapEnviadoDTO->setNumIdSerie($parNumIdSerie); @@ -1073,77 +1098,60 @@ private function obterEspecieMapeada($parNumIdSerie) $numCodigoEspecieMapeada = isset($objPenRelTipoDocMapEnviadoDTO) ? $objPenRelTipoDocMapEnviadoDTO->getNumCodigoEspecie() : null; $numCodigoEspecieMapeada = $numCodigoEspecieMapeada ?: $this->objPenRelTipoDocMapEnviadoRN->consultarEspeciePadrao(); //O padro de recebimento est nulo e no achou mapeamento - if($numCodigoEspecieMapeada == null) { + if($numCodigoEspecieMapeada == null) { $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapEnviadoDTO(); $objPenRelTipoDocMapEnviadoDTO->retNumCodigoEspecie(); $objPenRelTipoDocMapEnviadoDTO->setNumMaxRegistrosRetorno(1); $objPenRelTipoDocMapEnviadoDTO = $objGenericoBD->consultar($objPenRelTipoDocMapEnviadoDTO); $numCodigoEspecieMapeada = isset($objPenRelTipoDocMapEnviadoDTO) ? $objPenRelTipoDocMapEnviadoDTO->getNumCodigoEspecie() : null; - } + } - if(!isset($numCodigoEspecieMapeada)) { + if(!isset($numCodigoEspecieMapeada)) { throw new InfraException("No foi encontrado nenhum mapeamento de tipo documental. Cdigo de identificao da espcie documental no pode ser localizada para o tipo de documento {$parNumIdSerie}."); - } - - return $numCodigoEspecieMapeada; } + return $numCodigoEspecieMapeada; + } - private function atribuirAssinaturaEletronica($objComponenteDigital, AssinaturaDTO $objAssinaturaDTO) - { - if(!isset($objComponenteDigital)){ - throw new InfraException('Parmetro $objComponenteDigital no informado.'); - } - - //TODO: Obter as informaes corretas dos metadados da assinatura digital - if(isset($objAssinaturaDTO)) { - $objComponenteDigital->assinaturaDigital = new stdClass(); - $objComponenteDigital->assinaturaDigital->dataHora = $this->objProcessoEletronicoRN->converterDataWebService($objComponenteDigital->getDthAberturaAtividade()); - $objComponenteDigital->assinaturaDigital->cadeiaDoCertificado = new SoapVar('', XSD_ANYXML); - $objComponenteDigital->assinaturaDigital->hash = new SoapVar("{$objAssinaturaDTO->getStrP7sBase64()}", XSD_ANYXML); - } - } - - private function atribuirComponentesDigitais($objDocumento, DocumentoDTO $objDocumentoDTO, $dblIdProcedimento = null) - { - if(!isset($objDocumento)){ + private function atribuirComponentesDigitaisREST($objDocumento, DocumentoDTO $objDocumentoDTO, $dblIdProcedimento = null) + { + if(!isset($objDocumento)) { throw new InfraException('Parmetro $objDocumento no informado.'); - } + } - if(!isset($objDocumentoDTO)){ + if(!isset($objDocumentoDTO)) { throw new InfraException('Parmetro $objDocumentoDTO no informado.'); - } - + } $arrObjDocumentoDTOAssociacao = $this->listarDocumentosRelacionados($dblIdProcedimento, $objDocumentoDTO->getDblIdDocumento()); $strStaAssociacao = count($arrObjDocumentoDTOAssociacao) == 1 ? $arrObjDocumentoDTOAssociacao[0]['StaAssociacao'] : null; $arrObjDadosArquivos = $this->listarDadosArquivos($objDocumentoDTO, $strStaAssociacao); + $objDocumento['componentesDigitais'] = []; + foreach ($arrObjDadosArquivos as $numOrdemComponente => $objDadosArquivos) { - $objDocumento->componenteDigital = array(); - foreach ($arrObjDadosArquivos as $numOrdemComponente => $objDadosArquivos) { - - if(!isset($objDadosArquivos) || count($objDadosArquivos) == 0){ + if(!isset($objDadosArquivos) || count($objDadosArquivos) == 0) { throw new InfraException('Erro durante obteno de informaes sobre o componente digital do documento {$objDocumentoDTO->getStrProtocoloDocumentoFormatado()}.'); - } + } $strAlgoritmoHash = self::ALGORITMO_HASH_DOCUMENTO; $hashDoComponenteDigital = $objDadosArquivos['HASH_CONTEUDO']; $strAlgoritmoHash = $objDadosArquivos['ALGORITMO_HASH_CONTEUDO']; //TODO: Revisar tal implementao para atender a gerao de hash de arquivos grandes - $objComponenteDigital = new stdClass(); - $objComponenteDigital->ordem = $numOrdemComponente; - $objComponenteDigital->nome = mb_convert_encoding($objDadosArquivos["NOME"], 'UTF-8', 'ISO-8859-1'); - $objComponenteDigital->hash = new SoapVar("{$hashDoComponenteDigital}", XSD_ANYXML); - $objComponenteDigital->tamanhoEmBytes = $objDadosArquivos['TAMANHO']; - + $objComponenteDigital = []; + $objComponenteDigital['ordem'] = $numOrdemComponente; + $objComponenteDigital['nome'] = mb_convert_encoding($objDadosArquivos["NOME"], 'UTF-8', 'ISO-8859-1'); + $objComponenteDigital['hash'] = [ + 'algoritmo' => $strAlgoritmoHash, + 'conteudo' => $hashDoComponenteDigital + ]; + $objComponenteDigital['tamanhoEmBytes'] = $objDadosArquivos['TAMANHO']; //TODO: Validar os tipos de mimetype de acordo com o WSDL do SEI //Caso no identifique o tipo correto, informar o valor [outro] - $objComponenteDigital->mimeType = $objDadosArquivos['MIME_TYPE']; - $objComponenteDigital->tipoDeConteudo = $this->obterTipoDeConteudo($objDadosArquivos['MIME_TYPE']); - $objComponenteDigital = $this->atribuirDadosAssinaturaDigital($objDocumentoDTO, $objComponenteDigital, $hashDoComponenteDigital); - - if($objDadosArquivos['MIME_TYPE'] == 'outro'){ - $objComponenteDigital->dadosComplementaresDoTipoDeArquivo = $objDadosArquivos['dadosComplementaresDoTipoDeArquivo']; + $objComponenteDigital['mimeType'] = $objDadosArquivos['MIME_TYPE']; + $objComponenteDigital['tipoDeConteudo'] = $this->obterTipoDeConteudo($objDadosArquivos['MIME_TYPE']); + $objComponenteDigital = $this->atribuirDadosAssinaturaDigitalREST($objDocumentoDTO, $objComponenteDigital, $hashDoComponenteDigital); + if($objDadosArquivos['MIME_TYPE'] == 'outro') { + $objComponenteDigital['dadosComplementaresDoTipoDeArquivo'] = $objDadosArquivos['dadosComplementaresDoTipoDeArquivo']; } //TODO: Preencher dados complementares do tipo de arquivo @@ -1152,25 +1160,26 @@ private function atribuirComponentesDigitais($objDocumento, DocumentoDTO $objDoc //TODO: Carregar informaes da assinatura digital //$this->atribuirAssinaturaEletronica($objComponenteDigital, $objDocumentoDTO); - $objComponenteDigital->idAnexo = $objDadosArquivos['ID_ANEXO']; - - $objDocumento->componenteDigital[] = $objComponenteDigital; - } + if (isset($objDadosArquivos['ID_ANEXO']) && !empty($objDadosArquivos['ID_ANEXO'])) { + $objComponenteDigital['idAnexo'] = $objDadosArquivos['ID_ANEXO']; + } - return $objDocumento; + $objDocumento['componentesDigitais'][] = $objComponenteDigital; } + return $objDocumento; + } /** * Atribui a informao textual das tarjas de assinatura em metadados para envio, removendo os contedos de script e html * - * @param DocumentoDTO $objDocumentoDTO - * @param stdClass $objDocumento - * @param string $strHashDocumento + * @param DocumentoDTO $objDocumentoDTO + * @param stdClass $objDocumento + * @param string $strHashDocumento * @return void */ - public function atribuirDadosAssinaturaDigital($objDocumentoDTO, $objComponenteDigital, $strHashDocumento) - { + public function atribuirDadosAssinaturaDigitalREST($objDocumentoDTO, $objComponenteDigital, $strHashDocumento) + { $objDocumentoDTOTarjas = new DocumentoDTO(); $objDocumentoDTOTarjas->retDblIdDocumento(); $objDocumentoDTOTarjas->retStrNomeSerie(); @@ -1190,14 +1199,14 @@ public function atribuirDadosAssinaturaDigital($objDocumentoDTO, $objComponenteD $objDocumentoRN = new DocumentoRN(); $objDocumentoDTOTarjas = $objDocumentoRN->consultarRN0005($objDocumentoDTOTarjas); - $dataTarjas = array(); + $dataTarjas = []; $arrObjTarjas = $this->listarTarjasHTML($objDocumentoDTOTarjas); - foreach ($arrObjTarjas as $strConteudoTarja) { + foreach ($arrObjTarjas as $strConteudoTarja) { $strConteudoTarja = trim(strip_tags($strConteudoTarja)); - if (!empty($strConteudoTarja)) { - $dataTarjas[] = html_entity_decode($strConteudoTarja); - } + if (!empty($strConteudoTarja)) { + $dataTarjas[] = html_entity_decode($strConteudoTarja); } + } $objAssinaturaDTO = new AssinaturaDTO(); $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); @@ -1206,38 +1215,53 @@ public function atribuirDadosAssinaturaDigital($objDocumentoDTO, $objComponenteD $objAssinaturaDTO->retStrP7sBase64(); $resAssinatura = $this->objAssinaturaRN->listarRN1323($objAssinaturaDTO); - $objComponenteDigital->assinaturaDigital = array(); - foreach ($resAssinatura as $keyOrder => $assinatura) { + foreach ($resAssinatura as $keyOrder => $assinatura) { $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setNumIdAtividade($assinatura->getNumIdAtividade()); //7 - $objAtividadeDTO->setNumIdTarefa(array(TarefaRN::$TI_ASSINATURA_DOCUMENTO, TarefaRN::$TI_AUTENTICACAO_DOCUMENTO), InfraDTO::$OPER_IN); // 5, 115 + $objAtividadeDTO->setNumIdTarefa([TarefaRN::$TI_ASSINATURA_DOCUMENTO, TarefaRN::$TI_AUTENTICACAO_DOCUMENTO], InfraDTO::$OPER_IN); // 5, 115 $objAtividadeDTO->retDthAbertura(); $objAtividadeDTO->retNumIdAtividade(); $objAtividadeRN = new AtividadeRN(); $objAtividade = $objAtividadeRN->consultarRN0033($objAtividadeDTO); - $objAssinaturaDigital = new stdClass(); - $objAssinaturaDigital->razao = mb_convert_encoding($dataTarjas[$keyOrder], 'UTF-8', 'ISO-8859-1'); - $objAssinaturaDigital->observacao = mb_convert_encoding($dataTarjas[count($dataTarjas) - 1], 'UTF-8', 'ISO-8859-1'); - $objAssinaturaDigital->dataHora = $this->objProcessoEletronicoRN->converterDataWebService($objAtividade->getDthAbertura()); - - if($assinatura->getStrStaFormaAutenticacao() == AssinaturaRN::$TA_CERTIFICADO_DIGITAL){ - $objAssinaturaDigital->hash = new SoapVar("{$strHashDocumento}", XSD_ANYXML); - $objAssinaturaDigital->cadeiaDoCertificado = new SoapVar(''.($assinatura->getStrP7sBase64() ? $assinatura->getStrP7sBase64() : 'null').'', XSD_ANYXML); - } else { - $objAssinaturaDigital->hash = new SoapVar("null", XSD_ANYXML); - $objAssinaturaDigital->cadeiaDoCertificado = new SoapVar('null', XSD_ANYXML); - } + $objAssinaturaDigital = []; + $objAssinaturaDigital['razao'] = mb_convert_encoding($dataTarjas[$keyOrder], 'UTF-8', 'ISO-8859-1'); + $objAssinaturaDigital['observacao'] = mb_convert_encoding($dataTarjas[count($dataTarjas) - 1], 'UTF-8', 'ISO-8859-1'); + $objAssinaturaDigital['dataHora'] = $this->objProcessoEletronicoRN->converterDataWebService($objAtividade->getDthAbertura()); + + if($assinatura->getStrStaFormaAutenticacao() == AssinaturaRN::$TA_CERTIFICADO_DIGITAL) { + $objAssinaturaDigital['hash'] = [ + 'algoritmo' => self::ALGORITMO_HASH_ASSINATURA, + 'conteudo' => $strHashDocumento + ]; + $objAssinaturaDigital['cadeiaDoCertificado'] = [ + 'formato' => 'PKCS7', + 'conteudo' => $assinatura->getStrP7sBase64() ?: 'vazio' + ]; + } else { + $objAssinaturaDigital['hash'] = [ + 'algoritmo' => self::ALGORITMO_HASH_ASSINATURA, + 'conteudo' => 'vazio' + ]; + + $objAssinaturaDigital['cadeiaDoCertificado'] = [ + 'formato' => 'PKCS7', + 'conteudo' => 'vazio' + ]; + } + } - $objComponenteDigital->assinaturaDigital[] = $objAssinaturaDigital; - } + + if ($objAssinaturaDigital != null) { + $objComponenteDigital['assinaturasDigitais'][] = $objAssinaturaDigital; + } return $objComponenteDigital; - } + } - private function consultarComponenteDigital($parDblIdDocumento) - { + private function consultarComponenteDigital($parDblIdDocumento) + { $objComponenteDigitalDTO = new ComponenteDigitalDTO(); $objComponenteDigitalDTO->setDblIdDocumento($parDblIdDocumento); $objComponenteDigitalDTO->setNumMaxRegistrosRetorno(1); @@ -1247,20 +1271,20 @@ private function consultarComponenteDigital($parDblIdDocumento) $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); $arrObjComponenteDigitalDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); return (count($arrObjComponenteDigitalDTO) > 0) ? $arrObjComponenteDigitalDTO[0] : null; - } + } // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded - private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAssociacao, $bolMultiplosComponentes = false, $numOrdemComponenteDigital = 1) - { - if(!isset($objDocumentoDTO)){ + private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAssociacao, $bolMultiplosComponentes = false, $numOrdemComponenteDigital = 1) + { + if(!isset($objDocumentoDTO)) { throw new InfraException('Parmetro $objDocumentoDTO no informado.'); - } + } - $objInformacaoArquivo = array(); + $objInformacaoArquivo = []; $objInformacaoArquivo['ALGORITMO_HASH_CONTEUDO'] = self::ALGORITMO_HASH_DOCUMENTO; $strProtocoloDocumentoFormatado = $objDocumentoDTO->getStrProtocoloDocumentoFormatado(); - if($objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_INTERNO) { + if($objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_INTERNO) { $strConteudoAssinatura = null; $objComponenteDigital = $this->consultarComponenteDigital($objDocumentoDTO->getDblIdDocumento()); $hashDoComponenteDigitalAnterior = (isset($objComponenteDigital)) ? $objComponenteDigital->getStrHashConteudo() : null; @@ -1268,106 +1292,106 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs // Inicialmente, busca o contedo original que foi enviado anteriormente pelo Tramita.gov.br, evitando a gerao // dinmica de uma nova verso do documento, o que pode acarretar falhas de hash $strConteudoFS = $this->recuperarConteudoComponenteImutavel($objDocumentoDTO); - if(!empty($strConteudoFS)){ + if(!empty($strConteudoFS)) { $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoFS, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital == $hashDoComponenteDigitalAnterior){ - $strConteudoAssinatura = $strConteudoFS; - } + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital == $hashDoComponenteDigitalAnterior) { + $strConteudoAssinatura = $strConteudoFS; } + } - if(empty($strConteudoAssinatura)){ + if(empty($strConteudoAssinatura)) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO); $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); //Busca registro de tramitaes anteriores para este componente digital para identificar se o Barramento do PEN j havia registrado o hash do documento gerado da //forma antiga, ou seja, considerando o link do Nmero SEI. Este link foi removido para manter o padro de contedo de documentos utilizado pelo SEI para assinatura //Para no bloquear os documentos gerados anteriormente, aqueles j registrados pelo Barramento com o hash antigo devero manter a gerao de contedo anteriormente utilizada. - if(isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)){ + if(isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, true); - } + } //Testa o hash com a tarja de validao contendo antigos URLs do rgo $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); $arrControleURL = $objConfiguracaoModPEN->getValor("PEN", "ControleURL", false); - if($arrControleURL!=null && isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if($arrControleURL!=null && isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { - foreach($arrControleURL["antigos"] as $urlAntigos){ + foreach($arrControleURL["antigos"] as $urlAntigos){ $dadosURL=[ - "atual"=>$arrControleURL["atual"], - "antigo"=>$urlAntigos, + "atual"=>$arrControleURL["atual"], + "antigo"=>$urlAntigos, ]; $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)){ + if(isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, $dadosURL); } //verificar versao SEI4 $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)){ + if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, $dadosURL, true); } //verificar versao SEI4 e verificar se a sigla do sistema mudou para SUPER $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)){ + if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && ($hashDoComponenteDigitalAnterior <> $hashDoComponenteDigital)) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, $dadosURL, true, false, true); } - } } + } //Caso o hash ainda esteja inconsistente iremos usar a logica do SEI 3.1.0 $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, true); - } + } //Caso o hash ainda esteja inconsistente iremos usar a logica do SEI 3.1.0 // e verificar se a sigla do sistema mudou para SUPER $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, true, null, false, false, true); - } + } //Caso o hash ainda esteja inconsistente testaremos o caso de uso envio SEI4 e atualizado pra SEI4.0.3 $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, null, true, true); - } + } //Caso o hash ainda esteja inconsistente testaremos o caso de uso envio SEI4 e atualizado pra SEI4.0.3 // e verificar se a sigla do sistema mudou para SUPER $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ - $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, null, true, true, true, true); - } + if(InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0") && isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { + $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, null, true, true, true); + } //Caso o hash ainda esteja inconsistente testaremos o caso de uso envio SEI3 e atualizado pra SEI4.0.3 $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, null, false, true); - } + } //Caso o hash ainda esteja inconsistente testaremos o caso de uso envio SEI3 e atualizado pra SEI4.0.3 // e verificar se a sigla do sistema mudou para SUPER $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, false, false, null, false, true, true); - } + } //Caso o hash ainda esteja inconsistente teremos que forcar a geracao do arquivo usando as funes do sei 3.0.11 $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, true, true); - } + } //Caso o hash ainda esteja inconsistente teremos que forcar a geracao do arquivo usando as funes do sei 3.0.11 $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { $strConteudoAssinatura = $this->obterConteudoInternoAssinatura($objDocumentoDTO, true, true, null, false, false, true); - } } + } $objInformacaoArquivo['NOME'] = $strProtocoloDocumentoFormatado . ".html"; @@ -1377,24 +1401,24 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs $objInformacaoArquivo['ID_ANEXO'] = null; $objInformacaoArquivo['HASH_CONTEUDO'] = $hashDoComponenteDigitalAnterior ?: $hashDoComponenteDigital; - } else if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO) { + } else if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO) { $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento()); - if(isset($objAnexoDTO)){ + if(isset($objAnexoDTO)) { $strCaminhoAnexoTemporario = null; $strNomeComponenteDigital = ""; - if($bolMultiplosComponentes){ - $strCaminhoAnexoCompactado = $this->objAnexoRN->obterLocalizacao($objAnexoDTO); - list($strCaminhoAnexoTemporario, $strNomeComponenteDigital) = ProcessoEletronicoRN::descompactarComponenteDigital($strCaminhoAnexoCompactado, $numOrdemComponenteDigital); - $strCaminhoAnexo = $strCaminhoAnexoTemporario; - } else { + if($bolMultiplosComponentes) { + $strCaminhoAnexoCompactado = $this->objAnexoRN->obterLocalizacao($objAnexoDTO); + [$strCaminhoAnexoTemporario, $strNomeComponenteDigital] = ProcessoEletronicoRN::descompactarComponenteDigital($strCaminhoAnexoCompactado, $numOrdemComponenteDigital); + $strCaminhoAnexo = $strCaminhoAnexoTemporario; + } else { $strCaminhoAnexo = $this->objAnexoRN->obterLocalizacao($objAnexoDTO); $strNomeComponenteDigital = $objAnexoDTO->getStrNome(); - } + } $strConteudoAssinatura = null; $nrTamanhoBytesArquivo = filesize($strCaminhoAnexo); - list($strDadosComplementares, $strMimeType) = $this->obterDadosComplementaresDoTipoDeArquivo($strCaminhoAnexo, $this->arrPenMimeTypes, $strProtocoloDocumentoFormatado); + [$strDadosComplementares, $strMimeType] = $this->obterDadosComplementaresDoTipoDeArquivo($strCaminhoAnexo, $this->arrPenMimeTypes, $strProtocoloDocumentoFormatado); $objInformacaoArquivo['NOME'] = $strNomeComponenteDigital; $objInformacaoArquivo['CONTEUDO'] = $strConteudoAssinatura; @@ -1405,15 +1429,15 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs $strHashConteudoAssinatura = hash_file("sha256", $strCaminhoAnexo, true); $objInformacaoArquivo['HASH_CONTEUDO'] = base64_encode($strHashConteudoAssinatura); - if(file_exists($strCaminhoAnexoTemporario)){ - try { + if(file_exists($strCaminhoAnexoTemporario)) { + try { unlink(DIR_SEI_TEMP . "/" . basename($strCaminhoAnexoTemporario)); - } catch (Exception $e) { + } catch (Exception $e) { LogSEI::getInstance()->gravar($e, InfraLog::$ERRO); - } } + } - } elseif ($objDocumentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_DOCUMENTO_CANCELADO || $paramStrStaAssociacao == RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO) { + } elseif ($objDocumentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_DOCUMENTO_CANCELADO || $paramStrStaAssociacao == RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO) { //Quando no localizado um Anexo para um documento cancelado, os dados de componente digital precisam ser enviados //pois o Barramento considera o componente digital do documento de forma obrigatria $objInformacaoArquivo['NOME'] = 'cancelado.html'; @@ -1424,22 +1448,22 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs $objInformacaoArquivo['dadosComplementaresDoTipoDeArquivo'] = 'outro'; $hashDoComponenteDigital = hash(self::ALGORITMO_HASH_DOCUMENTO, $objInformacaoArquivo['CONTEUDO'], true); $objInformacaoArquivo['HASH_CONTEUDO'] = base64_encode($hashDoComponenteDigital); - } else { + } else { throw new InfraException("Componente digital do documento {$strProtocoloDocumentoFormatado} no pode ser localizado."); - } - } elseif(in_array($objDocumentoDTO->getStrStaDocumento(), array(DocumentoRN::$TD_FORMULARIO_GERADO, DocumentoRN::$TD_FORMULARIO_AUTOMATICO))) { + } + } elseif(in_array($objDocumentoDTO->getStrStaDocumento(), [DocumentoRN::$TD_FORMULARIO_GERADO, DocumentoRN::$TD_FORMULARIO_AUTOMATICO])) { $strConteudoAssinatura = null; $strConteudoFS = $this->recuperarConteudoComponenteImutavel($objDocumentoDTO); - if(!empty($strConteudoFS)){ + if(!empty($strConteudoFS)) { $objComponenteDigital = $this->consultarComponenteDigital($objDocumentoDTO->getDblIdDocumento()); $hashDoComponenteDigitalAnterior = (isset($objComponenteDigital)) ? $objComponenteDigital->getStrHashConteudo() : null; $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoFS, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital == $hashDoComponenteDigitalAnterior){ - $strConteudoAssinatura = $strConteudoFS; - } + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital == $hashDoComponenteDigitalAnterior) { + $strConteudoAssinatura = $strConteudoFS; } + } - if(empty($strConteudoAssinatura)){ + if(empty($strConteudoAssinatura)) { $objDocumentoDTO2 = new DocumentoDTO(); $objDocumentoDTO2->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); $objDocumentoDTO2->setObjInfraSessao(SessaoSEI::getInstance()); @@ -1450,15 +1474,15 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs $hashDoComponenteDigitalAnterior = (isset($objComponenteDigital)) ? $objComponenteDigital->getStrHashConteudo() : null; $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strConteudoAssinatura, true)); - if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior){ + if(isset($hashDoComponenteDigitalAnterior) && $hashDoComponenteDigital <> $hashDoComponenteDigitalAnterior) { // Caso 1: Verificar se a diferena de hash foi causada por mudana no fechamento das tags meta $strConteudoAssinatura = str_replace( - '', - '', - $strConteudoAssinatura + '', + '', + $strConteudoAssinatura ); - } } + } $objInformacaoArquivo['NOME'] = $strProtocoloDocumentoFormatado . ".html"; $objInformacaoArquivo['TAMANHO'] = strlen($strConteudoAssinatura); @@ -1466,13 +1490,13 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs $objInformacaoArquivo['ID_ANEXO'] = null; $objInformacaoArquivo['CONTEUDO'] = $strConteudoAssinatura; $objInformacaoArquivo['HASH_CONTEUDO'] = $hashDoComponenteDigitalAnterior ?: $hashDoComponenteDigital; - } else { + } else { $strStaDocumento = $objDocumentoDTO->getStrStaDocumento(); throw new InfraException("Tipo interno do documento no reconhecido pelo mdulo de integrao com o Tramita.gov.br (StaDocumento: $strStaDocumento)"); - } + } return $objInformacaoArquivo; - } + } /** @@ -1480,14 +1504,14 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs * Tramita.gov.br, garantindo o envio da verso correta enviado originalmente e impedindo erros de hash por conta de * mudana na forma dinmica de recuperao do contedo do documento * - * @param DocumentoDTO $objDocumentoDTO * @return str String contendo o contedo do documento */ - private function recuperarConteudoComponenteImutavel(DocumentoDTO $objDocumentoDTO){ + private function recuperarConteudoComponenteImutavel(DocumentoDTO $objDocumentoDTO) + { $strConteudoFS = null; $arrComponenteDigital = $this->retornaComponentesImutaveis($objDocumentoDTO); - if(!empty($arrComponenteDigital)){ + if(!empty($arrComponenteDigital)) { $objAnexoRN = new AnexoRN(); $objAnexoDTO = new AnexoDTO(); $objAnexoDTO->setNumIdAnexo($arrComponenteDigital[0]->getDblIdAnexoImutavel()); @@ -1496,52 +1520,55 @@ private function recuperarConteudoComponenteImutavel(DocumentoDTO $objDocumentoD $objAnexoDTO = $objAnexoRN->consultarRN0736($objAnexoDTO); $strConteudoFS = file_get_contents($objAnexoRN->obterLocalizacao($objAnexoDTO)); - } + } return $strConteudoFS; - } + } - private function obterDadosComplementaresDoTipoDeArquivo($strCaminhoAnexo, $arrPenMimeTypes, $strProtocoloDocumentoFormatado){ + private function obterDadosComplementaresDoTipoDeArquivo($strCaminhoAnexo, $arrPenMimeTypes, $strProtocoloDocumentoFormatado) + { $strDadosComplementaresDoTipoDeArquivo = ""; $finfo = finfo_open(FILEINFO_MIME_TYPE); - try { + try { $strMimeType = finfo_file($finfo, $strCaminhoAnexo); - if(array_search($strMimeType, $arrPenMimeTypes) === false){ - $strDadosComplementaresDoTipoDeArquivo = $strMimeType; - $strMimeType = 'outro'; - } - } catch(Exception $e) { - throw new InfraException("Erro obtendo informaes do anexo do documento {$strProtocoloDocumentoFormatado}", $e); + if(array_search($strMimeType, $arrPenMimeTypes) === false) { + $strDadosComplementaresDoTipoDeArquivo = $strMimeType; + $strMimeType = 'outro'; } - finally{ + } catch(Exception $e) { + throw new InfraException("Erro obtendo informaes do anexo do documento {$strProtocoloDocumentoFormatado}", $e); + } + finally{ finfo_close($finfo); - } + } return [$strDadosComplementaresDoTipoDeArquivo, $strMimeType]; - } + } - private function listarDadosArquivos($objDocumentoDTO, $strStaAssociacao){ + private function listarDadosArquivos($objDocumentoDTO, $strStaAssociacao) + { $numOrdemComponenteInicial = 1; - $arrObjInformacaoArquivo = array(); + $arrObjInformacaoArquivo = []; $arrObjComponentesDigitaisDTO = $this->listarComponentesDigitaisUltimoTramite($objDocumentoDTO); - if(empty($arrObjComponentesDigitaisDTO)){ + if(empty($arrObjComponentesDigitaisDTO)) { $arrObjInformacaoArquivo[$numOrdemComponenteInicial] = $this->obterDadosArquivo($objDocumentoDTO, $strStaAssociacao); - } else { + } else { $bolMultiplosComponentes = count($arrObjComponentesDigitaisDTO) > 1; $this->corrigirNumeroOrdemComponentes($arrObjComponentesDigitaisDTO, $objDocumentoDTO->getStrProtocoloDocumentoFormatado()); - foreach ($arrObjComponentesDigitaisDTO as $objComponentesDigitaisDTO) { + foreach ($arrObjComponentesDigitaisDTO as $objComponentesDigitaisDTO) { $numOrdemComponenteDigital = $objComponentesDigitaisDTO->getNumOrdem(); $arrObjInformacaoArquivo[$numOrdemComponenteDigital] = $this->obterDadosArquivo($objDocumentoDTO, $strStaAssociacao, $bolMultiplosComponentes, $numOrdemComponenteDigital); - } } + } return $arrObjInformacaoArquivo; - } + } - private function listarComponentesDigitaisUltimoTramite($objDocumentoDTO){ + private function listarComponentesDigitaisUltimoTramite($objDocumentoDTO) + { $arrObjComponentesDigitais = null; $dblIdProcedimento = $objDocumentoDTO->getDblIdProcedimento(); $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); @@ -1550,31 +1577,31 @@ private function listarComponentesDigitaisUltimoTramite($objDocumentoDTO){ $objProcessoEletronicoRN = new ProcessoEletronicoRN(); $objUltimoTramiteDTO = $objProcessoEletronicoRN->consultarUltimoTramiteRecebido($objProcessoEletronicoDTO); - if(!is_null($objUltimoTramiteDTO)){ + if(!is_null($objUltimoTramiteDTO)) { $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); $arrObjComponentesDigitais = $objComponenteDigitalBD->listarComponentesDigitaisPeloTramite($objUltimoTramiteDTO->getNumIdTramite(), $objDocumentoDTO->getDblIdDocumento()); - } + } return $arrObjComponentesDigitais; - } + } /** - * Mtodo de obteno do contedo do documento interno para envio e clculo de hash - * - * Anteriormente, os documentos enviados para o Barramento de Servios do PEN continham o link para o nmero SEI do documento. - * Este link passou a no ser mais considerado pois uma informao dinmica e pertinente apenas quando o documento visualizado - * dentro do sistema SEI. Quando o documento tramitado externamente, este link no possui mais sentido. - * - * Para tratar esta transio entre os formatos de documentos, existe o parmetro $bolFormatoLegado para indicar qual formato dever - * ser utilizado na montagem dos metadados para envio. * - * - * @param Double $parDblIdDocumento Identificador do documento - * @param boolean $bolFormatoLegado Flag indicando se a forma antiga de recuperao de contedo para envio dever ser utilizada - * @return String Contedo completo do documento para envio - */ - private function obterConteudoInternoAssinatura(DocumentoDTO $objDocumentoDTO, $bolFormatoLegado = false, $bolFormatoLegado3011 = false, $dadosURL = null, $bolSeiVersao4 = false, $bolTarjaLegada402 = false, $bolSiglaSistemaSUPER = false) - { + * Mtodo de obteno do contedo do documento interno para envio e clculo de hash + * + * Anteriormente, os documentos enviados para o Barramento de Servios do PEN continham o link para o nmero SEI do documento. + * Este link passou a no ser mais considerado pois uma informao dinmica e pertinente apenas quando o documento visualizado + * dentro do sistema SEI. Quando o documento tramitado externamente, este link no possui mais sentido. + * + * Para tratar esta transio entre os formatos de documentos, existe o parmetro $bolFormatoLegado para indicar qual formato dever + * ser utilizado na montagem dos metadados para envio. * + * + * @param Double $parDblIdDocumento Identificador do documento + * @param boolean $bolFormatoLegado Flag indicando se a forma antiga de recuperao de contedo para envio dever ser utilizada + * @return String Contedo completo do documento para envio + */ + private function obterConteudoInternoAssinatura(DocumentoDTO $objDocumentoDTO, $bolFormatoLegado = false, $bolFormatoLegado3011 = false, $dadosURL = null, $bolSeiVersao4 = false, $bolTarjaLegada402 = false, $bolSiglaSistemaSUPER = false) + { $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); $arrSiglaOrgaoLegado = $objConfiguracaoModPEN->getValor("PEN", "SiglaOrgaoLegado", false); @@ -1585,35 +1612,35 @@ private function obterConteudoInternoAssinatura(DocumentoDTO $objDocumentoDTO, $ $objEditorDTO->setStrSinRodape('S'); $objEditorDTO->setStrSinIdentificacaoVersao('N'); - if($bolFormatoLegado) { + if($bolFormatoLegado) { $objEditorDTO->setStrSinIdentificacaoVersao('S'); $objEditorDTO->setStrSinProcessarLinks('S'); - } + } - if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", self::VERSAO_CARIMBO_PUBLICACAO_OBRIGATORIO)) { + if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", self::VERSAO_CARIMBO_PUBLICACAO_OBRIGATORIO)) { $objEditorDTO->setStrSinCarimboPublicacao('N'); - } + } //para o caso de URLs antigos do rgo, ele testa o html com a tarja antiga $dados=[ - "parObjEditorDTO" => $objEditorDTO, - "montarTarja" => $dadosURL==null?false:true, - "controleURL" => $dadosURL, - "bolTarjaLegada402" => $bolTarjaLegada402, - "bolSiglaSistemaSUPER" => $bolSiglaSistemaSUPER + "parObjEditorDTO" => $objEditorDTO, + "montarTarja" => $dadosURL==null?false:true, + "controleURL" => $dadosURL, + "bolTarjaLegada402" => $bolTarjaLegada402, + "bolSiglaSistemaSUPER" => $bolSiglaSistemaSUPER ]; $objEditorRN = new EditorRN(); - if($dadosURL!=null && $bolSeiVersao4==false){ + if($dadosURL!=null && $bolSeiVersao4==false) { $objEditorRN = new Editor3011RN(); - }elseif($dadosURL!=null && $bolSeiVersao4==true){ - $objEditorRN = new EditorSEI4RN(); - }elseif($bolSeiVersao4 && $bolTarjaLegada402){ - $objEditorRN = new EditorSEI4RN(); - }elseif(!$bolSeiVersao4 && $bolTarjaLegada402){ + }elseif($dadosURL!=null && $bolSeiVersao4==true) { + $objEditorRN = new EditorSEI4RN(); + }elseif($bolSeiVersao4 && $bolTarjaLegada402) { + $objEditorRN = new EditorSEI4RN(); + }elseif(!$bolSeiVersao4 && $bolTarjaLegada402) { $objEditorRN = new Editor3011RN(); - }elseif($bolFormatoLegado3011){ + }elseif($bolFormatoLegado3011) { //fix-107. Gerar doc exatamente da forma como estava na v3.0.11 $objEditorRN = new Editor3011RN(); }else{ @@ -1623,7 +1650,7 @@ private function obterConteudoInternoAssinatura(DocumentoDTO $objDocumentoDTO, $ SessaoSEI::getInstance()->setBolHabilitada(false); $strResultado = $objEditorRN->consultarHtmlVersao($dados); SessaoSEI::getInstance()->setBolHabilitada($bolSessao); - if(!empty($arrSiglaOrgaoLegado)){ + if(!empty($arrSiglaOrgaoLegado)) { $alterarTitle = true; //Busca metadados do processo registrado em trmite anterior @@ -1632,21 +1659,21 @@ private function obterConteudoInternoAssinatura(DocumentoDTO $objDocumentoDTO, $ //gerar o hash do contedo do documento $hashDoComponenteDigital = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $strResultado, true)); - if(!empty($objMetadadosProcessoTramiteAnterior)){ + if(!empty($objMetadadosProcessoTramiteAnterior)) { foreach($objMetadadosProcessoTramiteAnterior->processo->documento as $documento){ - $strHashConteudo = ProcessoEletronicoRN::getHashFromMetaDados($documento->componenteDigital->hash); - if($strHashConteudo == $hashDoComponenteDigital){ - $alterarTitle = false; + $strHashConteudo = ProcessoEletronicoRN::getHashFromMetaDados($documento->componenteDigital->hash); + if($strHashConteudo == $hashDoComponenteDigital) { + $alterarTitle = false; } } - if($alterarTitle && $bolSiglaSistemaSUPER){ + if($alterarTitle && $bolSiglaSistemaSUPER) { $pattern = '/SUPER\/'.$arrSiglaOrgaoLegado["atual"].'/'; $replacement = "<title>SEI/".$arrSiglaOrgaoLegado["antiga"]; $strResultado = preg_replace($pattern, $replacement, $strResultado); } - if($alterarTitle && !$bolSiglaSistemaSUPER){ + if($alterarTitle && !$bolSiglaSistemaSUPER) { $pattern = '/<title>SEI\/'.$arrSiglaOrgaoLegado["atual"].'/'; $replacement = "<title>SEI/".$arrSiglaOrgaoLegado["antiga"]; $strResultado = preg_replace($pattern, $replacement, $strResultado); @@ -1655,82 +1682,83 @@ private function obterConteudoInternoAssinatura(DocumentoDTO $objDocumentoDTO, $ } return $strResultado; - } + } - private function obterTipoDeConteudo($strMimeType) - { - if(!isset($strMimeType)){ + private function obterTipoDeConteudo($strMimeType) + { + if(!isset($strMimeType)) { throw new InfraException('Parmetro $strMimeType no informado.'); - } + } $resultado = self::TC_TIPO_CONTEUDO_OUTROS; - if(preg_match(self::REGEX_ARQUIVO_TEXTO, $strMimeType)){ + if(preg_match(self::REGEX_ARQUIVO_TEXTO, $strMimeType)) { $resultado = self::TC_TIPO_CONTEUDO_TEXTO; - } else if(preg_match(self::REGEX_ARQUIVO_IMAGEM, $strMimeType)){ + } else if(preg_match(self::REGEX_ARQUIVO_IMAGEM, $strMimeType)) { $resultado = self::TC_TIPO_CONTEUDO_IMAGEM; - } else if(preg_match(self::REGEX_ARQUIVO_AUDIO, $strMimeType)){ + } else if(preg_match(self::REGEX_ARQUIVO_AUDIO, $strMimeType)) { $resultado = self::TC_TIPO_CONTEUDO_AUDIO; - } else if(preg_match(self::REGEX_ARQUIVO_VIDEO, $strMimeType)){ + } else if(preg_match(self::REGEX_ARQUIVO_VIDEO, $strMimeType)) { $resultado = self::TC_TIPO_CONTEUDO_VIDEO; - } + } return $resultado; - } + } - private function atribuirNumeracaoDocumento($objDocumento, DocumentoDTO $parObjDocumentoDTO) - { + private function atribuirNumeracaoDocumentoREST($objDocumento, DocumentoDTO $parObjDocumentoDTO) + { $objSerieDTO = $this->consultarSerie($parObjDocumentoDTO->getNumIdSerie()); - if(!isset($objSerieDTO)){ + if(!isset($objSerieDTO)) { throw new InfraException("Tipo de Documento no pode ser localizado. (Cdigo: ".$parObjDocumentoDTO->getNumIdSerie().")"); - } + } $strStaNumeracao = $objSerieDTO->getStrStaNumeracao(); - if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_UNIDADE) { - $objDocumento->identificacao = new stdClass(); - $objDocumento->identificacao->numero = mb_convert_encoding($parObjDocumentoDTO->getStrNumero(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->siglaDaUnidadeProdutora = mb_convert_encoding($parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->complemento = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo(), 100), 'UTF-8', 'ISO-8859-1'); - }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ORGAO){ + if ($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_UNIDADE) { + $objDocumento['identificacao']['numero'] = utf8_encode($parObjDocumentoDTO->getStrNumero()); + $objDocumento['identificacao']['siglaDaUnidadeProdutora'] = utf8_encode($parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo()); + $objDocumento['identificacao']['complemento'] = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo(), 100)); + } elseif ($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ORGAO) { $objOrgaoDTO = $this->consultarOrgao($parObjDocumentoDTO->getNumIdOrgaoUnidadeGeradoraProtocolo()); - $objDocumento->identificacao = new stdClass(); - $objDocumento->identificacao->numero = mb_convert_encoding($parObjDocumentoDTO->getStrNumero(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->siglaDaUnidadeProdutora = mb_convert_encoding($objOrgaoDTO->getStrSigla(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->complemento = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objOrgaoDTO->getStrDescricao(), 100), 'UTF-8', 'ISO-8859-1'); - }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_UNIDADE){ - $objDocumento->identificacao = new stdClass(); - $objDocumento->identificacao->siglaDaUnidadeProdutora = mb_convert_encoding($parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->complemento = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo(), 100), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->numero = mb_convert_encoding($parObjDocumentoDTO->getStrNumero(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(), 6, 4); - }else if($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_ORGAO){ + $objDocumento['identificacao']['numero'] = utf8_encode($parObjDocumentoDTO->getStrNumero()); + $objDocumento['identificacao']['siglaDaUnidadeProdutora'] = utf8_encode($objOrgaoDTO->getStrSigla()); + $objDocumento['identificacao']['complemento'] = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($objOrgaoDTO->getStrDescricao(), 100)); + } elseif ($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_UNIDADE) { + $objDocumento['identificacao']['siglaDaUnidadeProdutora'] = utf8_encode($parObjDocumentoDTO->getStrSiglaUnidadeGeradoraProtocolo()); + $objDocumento['identificacao']['complemento'] = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($parObjDocumentoDTO->getStrDescricaoUnidadeGeradoraProtocolo(), 100)); + $objDocumento['identificacao']['numero'] = utf8_encode($parObjDocumentoDTO->getStrNumero()); + $objDocumento['identificacao']['ano'] = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(), 6, 4); + } elseif ($strStaNumeracao == SerieRN::$TN_SEQUENCIAL_ANUAL_ORGAO) { $objOrgaoDTO = $this->consultarOrgao($parObjDocumentoDTO->getNumIdOrgaoUnidadeGeradoraProtocolo()); - $objDocumento->identificacao = new stdClass(); - $objDocumento->identificacao->numero = mb_convert_encoding($parObjDocumentoDTO->getStrNumero(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->siglaDaUnidadeProdutora = mb_convert_encoding($objOrgaoDTO->getStrSigla(), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->complemento = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objOrgaoDTO->getStrDescricao(), 100), 'UTF-8', 'ISO-8859-1'); - $objDocumento->identificacao->ano = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(), 6, 4); - } + $objDocumento['identificacao']['numero'] = utf8_encode($parObjDocumentoDTO->getStrNumero()); + $objDocumento['identificacao']['siglaDaUnidadeProdutora'] = utf8_encode($objOrgaoDTO->getStrSigla()); + $objDocumento['identificacao']['complemento'] = utf8_encode($this->objProcessoEletronicoRN->reduzirCampoTexto($objOrgaoDTO->getStrDescricao(), 100)); + $objDocumento['identificacao']['ano'] = substr($parObjDocumentoDTO->getDtaGeracaoProtocolo(), 6, 4); } + + return $objDocumento; + } - private function adicionarProcessosApensados($objProcesso, $arrIdProcessoApensado) - { - if(isset($arrIdProcessoApensado) && is_array($arrIdProcessoApensado) && count($arrIdProcessoApensado) > 0) { - $objProcesso->processoApensado = array(); - foreach($arrIdProcessoApensado as $idProcedimentoApensado) { - $objProcesso->processoApensado[] = $this->construirProcesso($idProcedimentoApensado); - } + private function adicionarProcessosApensadosREST($objProcesso, $arrIdProcessoApensado) + { + if (isset($arrIdProcessoApensado) && is_array($arrIdProcessoApensado) && count($arrIdProcessoApensado) > 0) { + $objProcesso['processoApensado'] = []; + + foreach ($arrIdProcessoApensado as $idProcedimentoApensado) { + $objProcesso['processoApensado'][] = $this->construirProcessoREST($idProcedimentoApensado); } } - private function consultarUnidade($numIdUnidade) - { - if(!isset($numIdUnidade)){ + return $objProcesso; + } + + private function consultarUnidade($numIdUnidade) + { + if(!isset($numIdUnidade)) { throw new InfraException('Parmetro $numIdUnidade no informado.'); - } + } $objUnidadeDTO = new UnidadeDTO(); $objUnidadeDTO->setNumIdUnidade($numIdUnidade); @@ -1738,13 +1766,13 @@ private function consultarUnidade($numIdUnidade) $objUnidadeDTO->retStrDescricao(); return $this->objUnidadeRN->consultarRN0125($objUnidadeDTO); - } + } - private function consultarSerie($numIdSerie) - { - if(!isset($numIdSerie)){ + private function consultarSerie($numIdSerie) + { + if(!isset($numIdSerie)) { throw new InfraException('Parmetro $numIdSerie no informado.'); - } + } $objSerieDTO = new SerieDTO(); $objSerieDTO->setNumIdSerie($numIdSerie); @@ -1752,10 +1780,10 @@ private function consultarSerie($numIdSerie) $objSerieDTO->retStrStaNumeracao(); return $this->objSerieRN->consultarRN0644($objSerieDTO); - } + } - private function consultarOrgao($numIdOrgao) - { + private function consultarOrgao($numIdOrgao) + { $objOrgaoDTO = new OrgaoDTO(); $objOrgaoDTO->setNumIdOrgao($numIdOrgao); $objOrgaoDTO->retStrSigla(); @@ -1763,13 +1791,13 @@ private function consultarOrgao($numIdOrgao) $objOrgaoDTO->setBolExclusaoLogica(false); return $this->objOrgaoRN->consultarRN1352($objOrgaoDTO); - } + } - public function consultarProcedimento($numIdProcedimento) - { - if(!isset($numIdProcedimento)){ + public function consultarProcedimento($numIdProcedimento) + { + if(!isset($numIdProcedimento)) { throw new InfraException('Parmetro $numIdProcedimento no informado.'); - } + } $objProcedimentoDTO = new ProcedimentoDTO(); $objProcedimentoDTO->setDblIdProcedimento($numIdProcedimento); @@ -1787,13 +1815,13 @@ public function consultarProcedimento($numIdProcedimento) $objProcedimentoDTO->retStrProtocoloProcedimentoFormatadoPesquisa(); return $this->objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - } + } - public function listarInteressados($numIdProtocolo) - { - if(!isset($numIdProtocolo)){ + public function listarInteressados($numIdProtocolo) + { + if(!isset($numIdProtocolo)) { throw new InfraException('Parmetro $numIdProtocolo no informado.'); - } + } $objParticipanteDTO = new ParticipanteDTO(); $objParticipanteDTO->retNumIdContato(); @@ -1802,26 +1830,13 @@ public function listarInteressados($numIdProtocolo) $objParticipanteDTO->setStrStaParticipacao(ParticipanteRN::$TP_INTERESSADO); return $this->objParticipanteRN->listarRN0189($objParticipanteDTO); - } - - private function consultarProtocoloDocumento($numIdProcedimento) - { - $objProtocoloDTO = new ProtocoloDTO(); + } - $objProtocoloDTO->setStrStaProtocolo(array(ProtocoloRN::$TP_DOCUMENTO_GERADO,ProtocoloRN::$TP_DOCUMENTO_RECEBIDO), InfraDTO::$OPER_IN); - $objProtocoloDTO->setStrStaProtocolo($staProtocolo); - $objProtocoloDTO->setDblIdProtocolo($numIdProcedimento); - $objProtocoloDTO->retTodos(); - $objProtocoloDTO->retNumIdSerie(); - - return $this->objProtocoloRN->consultarRN0186($objProtocoloDTO); //TODO: Verificar regra de busca - } - - private function consultarAnexo($dblIdDocumento) - { - if(!isset($dblIdDocumento)){ + private function consultarAnexo($dblIdDocumento) + { + if(!isset($dblIdDocumento)) { throw new InfraException('Parmetro $dblIdDocumento no informado.'); - } + } $objAnexoDTO = new AnexoDTO(); $objAnexoDTO->retNumIdAnexo(); @@ -1833,13 +1848,13 @@ private function consultarAnexo($dblIdDocumento) $objAnexoDTO->setDblIdProtocolo($dblIdDocumento); return $this->objAnexoRN->consultarRN0736($objAnexoDTO); - } + } - private function consultarUsuario($numIdUsuario) - { - if(!isset($numIdUsuario)){ + private function consultarUsuario($numIdUsuario) + { + if(!isset($numIdUsuario)) { throw new InfraException('Parmetro $numIdUsuario no informado.'); - } + } $objUsuarioDTO = new UsuarioDTO(); $objUsuarioDTO->setNumIdUsuario($numIdUsuario); @@ -1848,7 +1863,7 @@ private function consultarUsuario($numIdUsuario) $objUsuarioDTO->retDblCpfContato(); return $this->objUsuarioRN->consultarRN0489($objUsuarioDTO); - } + } /** * Recupera a lista de documentos do processo, mantendo sua ordem conforme definida pelo usurio aps reordenaes e @@ -1857,32 +1872,35 @@ private function consultarUsuario($numIdUsuario) * Esta funo basicamente aplica a desestruturao do retorno da funo listarDocumentosRelacionados para obter somente * as instncias dos objetos DocumentoDTO * - * @param num $idProcedimento + * @param num $idProcedimento * @return array */ - public function listarDocumentos($idProcedimento) - { + public function listarDocumentos($idProcedimento) + { return array_map( - function($item){ + function ($item) { return $item["Documento"]; }, $this->listarDocumentosRelacionados($idProcedimento) ); - } + } - public function listarDocumentosRelacionados($idProcedimento, $idDblDocumentoFiltro = null) - { - if(!isset($idProcedimento)){ + public function listarDocumentosRelacionados($idProcedimento, $idDblDocumentoFiltro = null) + { + if(!isset($idProcedimento)) { throw new InfraException('Parmetro $idProcedimento no informado.'); - } + } - $arrObjDocumentoDTO = array(); + $arrObjDocumentoDTO = []; $arrAssociacaoDocumentos = $this->objProcessoEletronicoRN->listarAssociacoesDocumentos($idProcedimento); - $arrIdDocumentos = array_map(function($item){ return $item["IdProtocolo"]; - }, $arrAssociacaoDocumentos); + $arrIdDocumentos = array_map( + function ($item) { + return $item["IdProtocolo"]; + }, $arrAssociacaoDocumentos + ); - if(!empty($arrIdDocumentos)){ + if(!empty($arrIdDocumentos)) { $objDocumentoDTO = new DocumentoDTO(); $objDocumentoDTO->retStrDescricaoUnidadeGeradoraProtocolo(); $objDocumentoDTO->retNumIdOrgaoUnidadeGeradoraProtocolo(); @@ -1911,31 +1929,29 @@ public function listarDocumentosRelacionados($idProcedimento, $idDblDocumentoFil $arrObjDocumentoDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjDocumentoDTOBanco, 'IdDocumento'); //Mantem ordenao definida pelo usurio, indicando qual a sua associao com o processo - $arrObjDocumentoDTO = array(); - foreach($arrAssociacaoDocumentos as $objAssociacaoDocumento){ - $dblIdDocumento = $objAssociacaoDocumento["IdProtocolo"]; - $bolIdDocumentoExiste = array_key_exists($dblIdDocumento, $arrObjDocumentoDTOIndexado) && isset($arrObjDocumentoDTOIndexado[$dblIdDocumento]); - $bolIdDocumentoFiltrado = is_null($idDblDocumentoFiltro) || ($dblIdDocumento == $idDblDocumentoFiltro); - - if ($bolIdDocumentoExiste && $bolIdDocumentoFiltrado){ - $arrObjDocumentoDTO[] = array( - "Documento" => $arrObjDocumentoDTOIndexado[$dblIdDocumento], - "StaAssociacao" => $objAssociacaoDocumento["StaAssociacao"] - ); - } + $arrObjDocumentoDTO = []; + foreach($arrAssociacaoDocumentos as $objAssociacaoDocumento){ + $dblIdDocumento = $objAssociacaoDocumento["IdProtocolo"]; + $bolIdDocumentoExiste = array_key_exists($dblIdDocumento, $arrObjDocumentoDTOIndexado) && isset($arrObjDocumentoDTOIndexado[$dblIdDocumento]); + $bolIdDocumentoFiltrado = is_null($idDblDocumentoFiltro) || ($dblIdDocumento == $idDblDocumentoFiltro); + + if ($bolIdDocumentoExiste && $bolIdDocumentoFiltrado) { + $arrObjDocumentoDTO[] = ["Documento" => $arrObjDocumentoDTOIndexado[$dblIdDocumento], "StaAssociacao" => $objAssociacaoDocumento["StaAssociacao"]]; } } + } return $arrObjDocumentoDTO; - } + } /** - * Retorna o nome do documento no PEN - * - * @param int - * @return string - */ - private function consultarNomeDocumentoPEN(DocumentoDTO $objDocumentoDTO){ + * Retorna o nome do documento no PEN + * + * @param int + * @return string + */ + private function consultarNomeDocumentoPEN(DocumentoDTO $objDocumentoDTO) + { $objMapDTO = new PenRelTipoDocMapEnviadoDTO(true); $objMapDTO->setNumMaxRegistrosRetorno(1); @@ -1945,54 +1961,30 @@ private function consultarNomeDocumentoPEN(DocumentoDTO $objDocumentoDTO){ $objMapBD = new GenericoBD($this->getObjInfraIBanco()); $objMapDTO = $objMapBD->consultar($objMapDTO); - if(empty($objMapDTO)) { + if(empty($objMapDTO)) { $strNome = '[ref '.$objDocumentoDTO->getStrNomeSerie().']'; - } - else { + } + else { $strNome = $objMapDTO->getStrNomeSerie(); - } - - return $strNome; } - private function consultarDocumento($dblIdDocumento) - { - if(!isset($dblIdDocumento)){ - throw new InfraException('Parmetro $dblIdDocumento no informado.'); - } + return $strNome; + } - $documentoDTO = new DocumentoDTO(); - $documentoDTO->setDblIdDocumento($dblIdDocumento); - $documentoDTO->retStrDescricaoUnidadeGeradoraProtocolo(); - $documentoDTO->retStrProtocoloDocumentoFormatado(); - $documentoDTO->retStrStaProtocoloProtocolo(); - $documentoDTO->retStrDescricaoProtocolo(); - $documentoDTO->retDblIdDocumento(); - $documentoDTO->retStrNomeSerie(); - $documentoDTO->retNumIdSerie(); - $documentoDTO->retStrConteudoAssinatura(); - $documentoDTO->retStrStaDocumento(); - $documentoDTO->retStrStaEstadoProtocolo(); - $documentoDTO->retNumIdHipoteseLegalProtocolo(); - $documentoDTO->retStrStaProtocoloProtocolo(); - - return $this->objDocumentoRN->consultarRN0005($documentoDTO); - } - - private function enviarComponentesDigitais($strNumeroRegistro, $numIdTramite, $strProtocolo, $bolSinProcessamentoEmBloco = false) - { - if (!isset($strNumeroRegistro)) { + private function enviarComponentesDigitais($strNumeroRegistro, $numIdTramite, $strProtocolo, $bolSinProcessamentoEmBloco = false) + { + if (!isset($strNumeroRegistro)) { throw new InfraException('Parmetro $strNumeroRegistro no informado.'); - } + } - if (!isset($numIdTramite)) { + if (!isset($numIdTramite)) { throw new InfraException('Parmetro $numIdTramite no informado.'); - } + } - if (!isset($strProtocolo)) { + if (!isset($strProtocolo)) { throw new InfraException('Parmetro $strProtocolo no informado.'); - } + } //Obter dados dos componetes digitais $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); @@ -2012,131 +2004,136 @@ private function enviarComponentesDigitais($strNumeroRegistro, $numIdTramite, $s $objComponenteDigitalDTO->setOrdNumOrdemDocumento(InfraDTO::$TIPO_ORDENACAO_ASC); $arrComponentesDigitaisDTOBanco = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); - if (!empty($arrComponentesDigitaisDTOBanco)) { + if (!empty($arrComponentesDigitaisDTOBanco)) { $arrComponentesDigitaisIndexadosDTO = InfraArray::indexarArrInfraDTO($arrComponentesDigitaisDTOBanco, "IdDocumento", true); //Construir objeto Componentes digitais - $arrHashComponentesEnviados = array(); + $arrHashComponentesEnviados = []; - foreach ($arrComponentesDigitaisIndexadosDTO as $numIdDocumento => $arrComponentesDigitaisDTO) { + foreach ($arrComponentesDigitaisIndexadosDTO as $arrComponentesDigitaisDTO) { $bolMultiplosComponentes = count($arrComponentesDigitaisDTO) > 1; $this->corrigirNumeroOrdemComponentes($arrComponentesDigitaisDTO, $arrComponentesDigitaisDTO[0]->getStrProtocoloDocumentoFormatado()); - foreach ($arrComponentesDigitaisDTO as $objComponenteDigitalDTO) { + foreach ($arrComponentesDigitaisDTO as $objComponenteDigitalDTO) { - if(!$bolSinProcessamentoEmBloco){ - $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_DOCUMENTO, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado())); - }else{ - $this->gravarLogDebug(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_DOCUMENTO, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 2); - } + if(!$bolSinProcessamentoEmBloco) { + $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_DOCUMENTO, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado())); + }else{ + $this->gravarLogDebug(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_DOCUMENTO, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 2); + } - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $objComponenteDigitalDTO->getNumTicketEnvioComponentes(); + $dadosDoComponenteDigital = new stdClass(); + $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $objComponenteDigitalDTO->getNumTicketEnvioComponentes(); - //Processos apensados. Mesmo erro relatado com dois arquivos iguais em docs diferentes no mesmo processo - $dadosDoComponenteDigital->protocolo = $objComponenteDigitalDTO->getStrProtocolo(); - $dadosDoComponenteDigital->hashDoComponenteDigital = $objComponenteDigitalDTO->getStrHashConteudo(); + //Processos apensados. Mesmo erro relatado com dois arquivos iguais em docs diferentes no mesmo processo + $dadosDoComponenteDigital->protocolo = $objComponenteDigitalDTO->getStrProtocolo(); + $dadosDoComponenteDigital->hashDoComponenteDigital = $objComponenteDigitalDTO->getStrHashConteudo(); - $arrObjDocumentoDTOAssociacao = $this->listarDocumentosRelacionados($objComponenteDigitalDTO->getDblIdProcedimento(), $objComponenteDigitalDTO->getDblIdDocumento()); - $objDocumentoDTO = null; - $strStaAssociacao = null; - foreach ($arrObjDocumentoDTOAssociacao as $objDocumentoDTOAssociacao) { - $strStaAssociacao = $objDocumentoDTOAssociacao['StaAssociacao']; - if($strStaAssociacao != RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO){ - $objDocumentoDTO = $objDocumentoDTOAssociacao['Documento']; - } + $arrObjDocumentoDTOAssociacao = $this->listarDocumentosRelacionados($objComponenteDigitalDTO->getDblIdProcedimento(), $objComponenteDigitalDTO->getDblIdDocumento()); + $objDocumentoDTO = null; + $strStaAssociacao = null; + foreach ($arrObjDocumentoDTOAssociacao as $objDocumentoDTOAssociacao) { + $strStaAssociacao = $objDocumentoDTOAssociacao['StaAssociacao']; + if($strStaAssociacao != RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO) { + $objDocumentoDTO = $objDocumentoDTOAssociacao['Documento']; } - $strNomeDocumento = $this->consultarNomeDocumentoPEN($objDocumentoDTO); - - //Verifica se existe o objeto anexoDTO para recuperar informaes do arquivo - $nrTamanhoArquivoMb = 0; - $nrTamanhoBytesArquivo = 0; - $nrTamanhoMegasMaximo = ProcessoEletronicoRN::obterTamanhoBlocoTransferencia(); - $nrTamanhoBytesMaximo = ($nrTamanhoMegasMaximo * pow(1024, 2)); //Qtd de MB definido como parametro - - try { - //Verifica se o arquivo maior que o tamanho mximo definido para envio, se for, realiza o particionamento do arquivo - if(!in_array($objComponenteDigitalDTO->getStrHashConteudo(), $arrHashComponentesEnviados)){ - if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){ - $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento()); - if(!$objAnexoDTO){ - $strProtocoloDocumento = $objDocumentoDTO->getStrProtocoloDocumentoFormatado(); - throw new InfraException("Anexo do documento $strProtocoloDocumento no pode ser localizado."); - } + } + $strNomeDocumento = $this->consultarNomeDocumentoPEN($objDocumentoDTO); - $strCaminhoAnexoTemporario = null; - if($bolMultiplosComponentes){ - $numOrdemComponenteDigital = $objComponenteDigitalDTO->getNumOrdem(); - $strCaminhoAnexoCompactado = $this->objAnexoRN->obterLocalizacao($objAnexoDTO); - list($strCaminhoAnexoTemporario, ) = ProcessoEletronicoRN::descompactarComponenteDigital($strCaminhoAnexoCompactado, $numOrdemComponenteDigital); - $strCaminhoAnexo = $strCaminhoAnexoTemporario; - } else { - $strCaminhoAnexo = $this->objAnexoRN->obterLocalizacao($objAnexoDTO); - } + //Verifica se existe o objeto anexoDTO para recuperar informaes do arquivo + $nrTamanhoArquivoMb = 0; + $nrTamanhoBytesArquivo = 0; + $nrTamanhoMegasMaximo = ProcessoEletronicoRN::obterTamanhoBlocoTransferencia(); + $nrTamanhoBytesMaximo = ($nrTamanhoMegasMaximo * 1024 ** 2); //Qtd de MB definido como parametro - $nrTamanhoBytesArquivo = filesize($strCaminhoAnexo); //Tamanho total do arquivo - $nrTamanhoArquivoMb = ($nrTamanhoBytesArquivo / pow(1024, 2)); - - //Mtodo que ir particionar o arquivo em partes para realizar o envio - $this->particionarComponenteDigitalParaEnvio( - $strCaminhoAnexo, $dadosDoComponenteDigital, $nrTamanhoArquivoMb, $nrTamanhoMegasMaximo, - $nrTamanhoBytesMaximo, $objComponenteDigitalDTO, $numIdTramite, $bolSinProcessamentoEmBloco - ); - - //Finalizar o envio das partes do componente digital - $parametros = new stdClass(); - $parametros->dadosDoTerminoDeEnvioDePartes = $dadosDoComponenteDigital; - $this->objProcessoEletronicoRN->sinalizarTerminoDeEnvioDasPartesDoComponente($parametros); - - if(file_exists($strCaminhoAnexoTemporario)){ - try { - unlink(DIR_SEI_TEMP . "/" . basename($strCaminhoAnexoTemporario)); - } catch (Exception $e) { - LogSEI::getInstance()->gravar($e, InfraLog::$ERRO); - } - } - } else { - $objDadosArquivo = $this->obterDadosArquivo($objDocumentoDTO, $strStaAssociacao); - $dados=[ - "objDocumentoDTO"=>$objDocumentoDTO, - "objDadosArquivo"=>$objDadosArquivo, - "dadosDoComponenteDigital"=>$dadosDoComponenteDigital, - "idProcedimentoPrincipal"=>$objComponenteDigitalDTO->getDblIdProcedimento() - ]; - - $this->salvarAnexoImutavel($dados); - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($objDadosArquivo['CONTEUDO'], XSD_BASE64BINARY); - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $this->objProcessoEletronicoRN->enviarComponenteDigital($parametros); - - if(!$bolSinProcessamentoEmBloco){ - $this->barraProgresso->mover($this->contadorDaBarraDeProgresso); - $this->contadorDaBarraDeProgresso++; - } + try { + //Verifica se o arquivo maior que o tamanho mximo definido para envio, se for, realiza o particionamento do arquivo + if(!in_array($objComponenteDigitalDTO->getStrHashConteudo(), $arrHashComponentesEnviados)) { + if($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO) { + $objAnexoDTO = $this->consultarAnexo($objDocumentoDTO->getDblIdDocumento()); + if(!$objAnexoDTO) { + $strProtocoloDocumento = $objDocumentoDTO->getStrProtocoloDocumentoFormatado(); + throw new InfraException("Anexo do documento $strProtocoloDocumento no pode ser localizado."); } - $arrHashComponentesEnviados[] = $objComponenteDigitalDTO->getStrHashConteudo(); + $strCaminhoAnexoTemporario = null; + if($bolMultiplosComponentes) { + $numOrdemComponenteDigital = $objComponenteDigitalDTO->getNumOrdem(); + $strCaminhoAnexoCompactado = $this->objAnexoRN->obterLocalizacao($objAnexoDTO); + [$strCaminhoAnexoTemporario, ] = ProcessoEletronicoRN::descompactarComponenteDigital($strCaminhoAnexoCompactado, $numOrdemComponenteDigital); + $strCaminhoAnexo = $strCaminhoAnexoTemporario; + } else { + $strCaminhoAnexo = $this->objAnexoRN->obterLocalizacao($objAnexoDTO); + } - //Bloquea documento para atualizao, j que ele foi visualizado - $this->objDocumentoRN->bloquearConteudo($objDocumentoDTO); - $this->objProcedimentoAndamentoRN->cadastrar( - ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, - $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()), 'S') - ); + $nrTamanhoBytesArquivo = filesize($strCaminhoAnexo); //Tamanho total do arquivo + $nrTamanhoArquivoMb = ($nrTamanhoBytesArquivo / 1024 ** 2); + + //Mtodo que ir particionar o arquivo em partes para realizar o envio + $this->particionarComponenteDigitalParaEnvio( + $strCaminhoAnexo, $dadosDoComponenteDigital, $nrTamanhoArquivoMb, $nrTamanhoMegasMaximo, + $nrTamanhoBytesMaximo, $bolSinProcessamentoEmBloco + ); + + //Finalizar o envio das partes do componente digital + $parametros = new stdClass(); + $parametros->dadosDoTerminoDeEnvioDePartes = $dadosDoComponenteDigital; + $this->objProcessoEletronicoRN->sinalizarTerminoDeEnvioDasPartesDoComponente($parametros); + + if(file_exists($strCaminhoAnexoTemporario)) { + try { + unlink(DIR_SEI_TEMP . "/" . basename($strCaminhoAnexoTemporario)); + } catch (Exception $e) { + LogSEI::getInstance()->gravar($e, InfraLog::$ERRO); + } + } + } else { + $objDadosArquivo = $this->obterDadosArquivo($objDocumentoDTO, $strStaAssociacao); + $dados=[ + "objDocumentoDTO"=>$objDocumentoDTO, + "objDadosArquivo"=>$objDadosArquivo, + "dadosDoComponenteDigital"=>$dadosDoComponenteDigital, + "idProcedimentoPrincipal"=>$objComponenteDigitalDTO->getDblIdProcedimento() + ]; + + $this->salvarAnexoImutavel($dados); + $dadosDoComponenteDigital->conteudoDoComponenteDigital = $objDadosArquivo['CONTEUDO']; + + $parametros = new stdClass(); + $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; + $this->objProcessoEletronicoRN->enviarComponenteDigital($parametros); + + if(!$bolSinProcessamentoEmBloco) { + $this->barraProgresso->mover($this->contadorDaBarraDeProgresso); + $this->contadorDaBarraDeProgresso++; + } } - } catch (\Exception $e) { + + $arrHashComponentesEnviados[] = $objComponenteDigitalDTO->getStrHashConteudo(); + + //Bloquea documento para atualizao, j que ele foi visualizado + $this->objDocumentoRN->bloquearConteudo($objDocumentoDTO); + $this->objProcedimentoAndamentoRN->cadastrar( + ProcedimentoAndamentoDTO::criarAndamento( + sprintf( + 'Enviando %s %s', $strNomeDocumento, + $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado() + ), 'S' + ) + ); + } + } catch (\Exception $e) { $strProtocoloDocumento = $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado(); $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Enviando %s %s', $strNomeDocumento, $strProtocoloDocumento), 'N')); throw new InfraException("Erro processando envio do componentes digitais do documento $strProtocoloDocumento", $e); - } } } } } + } - protected function retornaComponentesImutaveisControlado($objDocumentoDTO){ + protected function retornaComponentesImutaveisControlado($objDocumentoDTO) + { $objComponenteDigitalDTO = new ComponenteDigitalDTO(); $objComponenteDigitalDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); @@ -2145,17 +2142,17 @@ protected function retornaComponentesImutaveisControlado($objDocumentoDTO){ $objComponenteDigitalDTO->retTodos(); $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); - $arrComponenteDigital=$objComponenteDigitalBD->listar($objComponenteDigitalDTO); - return $arrComponenteDigital; + return $objComponenteDigitalBD->listar($objComponenteDigitalDTO); - } + } - protected function salvarAnexoImutavelControlado($dados){ + protected function salvarAnexoImutavelControlado($dados) + { - try{ + try{ $objDocumentoDTO=$dados["objDocumentoDTO"]; $objDadosArquivo=$dados["objDadosArquivo"]; @@ -2165,192 +2162,145 @@ protected function salvarAnexoImutavelControlado($dados){ $arrComponenteDigital=$this->retornaComponentesImutaveis($objDocumentoDTO); - if(empty($arrComponenteDigital)){ + if(empty($arrComponenteDigital)) { - $objAnexoRN = new AnexoRN(); + $objAnexoRN = new AnexoRN(); - $strConteudoAssinatura=$objDadosArquivo['CONTEUDO']; - $strNomeArquivoUploadHtml = $objAnexoRN->gerarNomeArquivoTemporario(); + $strConteudoAssinatura=$objDadosArquivo['CONTEUDO']; + $strNomeArquivoUploadHtml = $objAnexoRN->gerarNomeArquivoTemporario(); - if (file_put_contents(DIR_SEI_TEMP.'/'.$strNomeArquivoUploadHtml, $strConteudoAssinatura) === false) { + if (file_put_contents(DIR_SEI_TEMP.'/'.$strNomeArquivoUploadHtml, $strConteudoAssinatura) === false) { throw new InfraException('Erro criando arquivo html temporrio para envio do e-mail.'); - } - - $objAnexoDTO = new AnexoDTO(); - $objAnexoDTO->setNumIdAnexo($strNomeArquivoUploadHtml); - $objAnexoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdDocumento()); - $objAnexoDTO->setDthInclusao(InfraData::getStrDataHoraAtual()); - $objAnexoDTO->setNumTamanho(filesize(DIR_SEI_TEMP.'/'.$strNomeArquivoUploadHtml)); - $objAnexoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); - $objAnexoDTO->setStrNome($objDocumentoDTO->getStrProtocoloDocumentoFormatado() . ".html"); - $objAnexoDTO->setNumIdUnidade($objDocumentoDTO->getNumIdUnidadeResponsavel()); - $objAnexoDTO->setStrSinAtivo("S"); - - $objAnexoDTO=$objAnexoRN->cadastrarRN0172($objAnexoDTO); - - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoDTO->setDblIdProcedimento($idProcedimentoPrincipal); - - $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); - $objTramiteDTO=$objTramiteBD->consultarUltimoTramite($objProcessoEletronicoDTO, ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO); + } - $objComponenteDigitalDTO = new ComponenteDigitalDTO(); - $objComponenteDigitalDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); - $objComponenteDigitalDTO->setNumIdTramite($objTramiteDTO->getNumIdTramite()); - $objComponenteDigitalDTO->retTodos(); + $objAnexoDTO = new AnexoDTO(); + $objAnexoDTO->setNumIdAnexo($strNomeArquivoUploadHtml); + $objAnexoDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdDocumento()); + $objAnexoDTO->setDthInclusao(InfraData::getStrDataHoraAtual()); + $objAnexoDTO->setNumTamanho(filesize(DIR_SEI_TEMP.'/'.$strNomeArquivoUploadHtml)); + $objAnexoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objAnexoDTO->setStrNome($objDocumentoDTO->getStrProtocoloDocumentoFormatado() . ".html"); + $objAnexoDTO->setNumIdUnidade($objDocumentoDTO->getNumIdUnidadeResponsavel()); + $objAnexoDTO->setStrSinAtivo("S"); - $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); - $objComponenteDigitalDTO=$objComponenteDigitalBD->consultar($objComponenteDigitalDTO); + $objAnexoDTO=$objAnexoRN->cadastrarRN0172($objAnexoDTO); - $objComponenteDigitalDTO->setDblIdAnexoImutavel($objAnexoDTO->getNumIdAnexo()); - $objComponenteDigitalDTO->setDblIdProcedimento($objComponenteDigitalDTO->getDblIdProcedimento()); - $objComponenteDigitalDTO->setStrNumeroRegistro($objComponenteDigitalDTO->getStrNumeroRegistro()); - $objComponenteDigitalDTO=$objComponenteDigitalBD->alterar($objComponenteDigitalDTO); - } - }catch(Exception $e){ - throw new InfraException("Erro salvando anexo imutvel", $e); - } - } + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoDTO->setDblIdProcedimento($idProcedimentoPrincipal); + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); + $objTramiteDTO=$objTramiteBD->consultarUltimoTramite($objProcessoEletronicoDTO, ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO); + $objComponenteDigitalDTO = new ComponenteDigitalDTO(); + $objComponenteDigitalDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + $objComponenteDigitalDTO->setNumIdTramite($objTramiteDTO->getNumIdTramite()); + $objComponenteDigitalDTO->retTodos(); - private function corrigirNumeroOrdemComponentes($arrComponentesDigitaisDTO, $strProtocoloDocumento) { - $arrOrdensComponentes = InfraArray::converterArrInfraDTO($arrComponentesDigitaisDTO, "Ordem"); - if(min($arrOrdensComponentes) <= 0){ - foreach ($arrComponentesDigitaisDTO as $objComponentesDigitaisDTO) { - $numOrdemCorrigido = $objComponentesDigitaisDTO->getNumOrdem() + 1; - $objComponentesDigitaisDTO->setNumOrdem($numOrdemCorrigido); - } - } + $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); + $objComponenteDigitalDTO=$objComponenteDigitalBD->consultar($objComponenteDigitalDTO); - $arrOrdensAtualizadas = InfraArray::converterArrInfraDTO($arrComponentesDigitaisDTO, "Ordem"); - if(count($arrOrdensAtualizadas) != count(array_unique($arrOrdensAtualizadas))){ - throw new InfraException("Falha identificada na definio da ordem dos componentes digitais do documento $strProtocoloDocumento"); + $objComponenteDigitalDTO->setDblIdAnexoImutavel($objAnexoDTO->getNumIdAnexo()); + $objComponenteDigitalDTO->setDblIdProcedimento($objComponenteDigitalDTO->getDblIdProcedimento()); + $objComponenteDigitalDTO->setStrNumeroRegistro($objComponenteDigitalDTO->getStrNumeroRegistro()); + $objComponenteDigitalDTO=$objComponenteDigitalBD->alterar($objComponenteDigitalDTO); } + }catch(Exception $e){ + throw new InfraException("Erro salvando anexo imutvel", $e); } + } - /** - * Mtodo responsvel por realizar o particionamento do componente digital a ser enviado, de acordo com o parametro (TamanhoBlocoArquivoTransferencia) - * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> - * @param $strCaminhoAnexo - * @param $dadosDoComponenteDigital - * @param $nrTamanhoArquivoMb - * @param $nrTamanhoMegasMaximo - * @param $nrTamanhoBytesMaximo - * @param $objComponenteDigitalDTO - * @throws InfraException - */ - private function enviarComponenteDigitalParticionado($strCaminhoAnexo, $dadosDoComponenteDigital, $nrTamanhoArquivoMb, $nrTamanhoMegasMaximo, $nrTamanhoBytesMaximo, $objComponenteDigitalDTO) - { - $qtdPartes = ceil($nrTamanhoArquivoMb / $nrTamanhoMegasMaximo); - - //Abre o arquivo para leitura - $fp = fopen($strCaminhoAnexo, "rb"); - - try{ - $inicio = 0; - //L o arquivo em partes para realizar o envio - for ($i = 1; $i <= $qtdPartes; $i++) - { - $this->barraProgresso->setStrRotulo(sprintf(ProcessoEletronicoINT::TEE_EXPEDICAO_ETAPA_DOCUMENTO, $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado())." (Componente digital: parte $i de $qtdPartes)"); - $parteDoArquivo = stream_get_contents($fp, $nrTamanhoBytesMaximo, $inicio); - $tamanhoParteArquivo = strlen($parteDoArquivo); - - //Cria um objeto com as informa<E7><F5>es da parte do componente digital - $identificacaoDaParte = new stdClass(); - $identificacaoDaParte->inicio = $inicio; - $identificacaoDaParte->fim = ($inicio + $tamanhoParteArquivo); - - $dadosDoComponenteDigital->identificacaoDaParte = $identificacaoDaParte; - $dadosDoComponenteDigital->conteudoDaParteDeComponenteDigital = new SoapVar($parteDoArquivo, XSD_BASE64BINARY); - $parametros = new stdClass(); - $parametros->dadosDaParteDeComponenteDigital = $dadosDoComponenteDigital; - //Envia uma parte de um componente digital - $resultado = $this->objProcessoEletronicoRN->enviarParteDeComponenteDigital($parametros); - $inicio = ($nrTamanhoBytesMaximo * $i); - } - } - finally{ - fclose($fp); + private function corrigirNumeroOrdemComponentes($arrComponentesDigitaisDTO, $strProtocoloDocumento) + { + $arrOrdensComponentes = InfraArray::converterArrInfraDTO($arrComponentesDigitaisDTO, "Ordem"); + if(min($arrOrdensComponentes) <= 0) { + foreach ($arrComponentesDigitaisDTO as $objComponentesDigitaisDTO) { + $numOrdemCorrigido = $objComponentesDigitaisDTO->getNumOrdem() + 1; + $objComponentesDigitaisDTO->setNumOrdem($numOrdemCorrigido); } } + $arrOrdensAtualizadas = InfraArray::converterArrInfraDTO($arrComponentesDigitaisDTO, "Ordem"); + if(count($arrOrdensAtualizadas) != count(array_unique($arrOrdensAtualizadas))) { + throw new InfraException("Falha identificada na definio da ordem dos componentes digitais do documento $strProtocoloDocumento"); + } + } + - private function validarParametrosExpedicao(InfraException $objInfraException, ExpedirProcedimentoDTO $objExpedirProcedimentoDTO) - { - if(!isset($objExpedirProcedimentoDTO)){ + private function validarParametrosExpedicao(InfraException $objInfraException, ExpedirProcedimentoDTO $objExpedirProcedimentoDTO) + { + if(!isset($objExpedirProcedimentoDTO)) { $objInfraException->adicionarValidacao('Parmetro $objExpedirProcedimentoDTO no informado.'); - } + } //TODO: Validar se repositrio de origem foi informado - if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioOrigem())){ + if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioOrigem())) { $objInfraException->adicionarValidacao('Identificao do repositrio de estruturas da unidade atual no informado. ID do processo: '.$objExpedirProcedimentoDTO->getDblIdProcedimento().". "); - } + } //TODO: Validar se unidade de origem foi informado - if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeOrigem())){ + if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeOrigem())) { $objInfraException->adicionarValidacao('Identificao da unidade atual no repositrio de estruturas organizacionais no informado. ID do processo: '.$objExpedirProcedimentoDTO->getDblIdProcedimento().". "); - } + } //TODO: Validar se repositrio foi devidamente informado - if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioDestino())){ + if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdRepositorioDestino())) { $objInfraException->adicionarValidacao('Repositrio de estruturas organizacionais no informado. ID do processo: '.$objExpedirProcedimentoDTO->getDblIdProcedimento().". "); - } + } //TODO: Validar se unidade foi devidamente informada - if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeDestino())){ + if (InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdUnidadeDestino())) { $objInfraException->adicionarValidacao('Unidade de destino no informado. ID do processo: '.$objExpedirProcedimentoDTO->getDblIdProcedimento().". "); - } + } //TODO: Validar se motivo de urgncia foi devidamente informado, caso expedio urgente - if ($objExpedirProcedimentoDTO->getBolSinUrgente() && InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdMotivoUrgencia())){ + if ($objExpedirProcedimentoDTO->getBolSinUrgente() && InfraString::isBolVazia($objExpedirProcedimentoDTO->getNumIdMotivoUrgencia())) { $objInfraException->adicionarValidacao('Motivo de urgncia no informado. ID do processo: '.$objExpedirProcedimentoDTO->getDblIdProcedimento().". "); - } } + } - private function validarDocumentacaoExistende(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) - { + private function validarDocumentacaoExistende(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + { $arrObjDocumentoDTO = $objProcedimentoDTO->getArrObjDocumentoDTO(); - if(!isset($arrObjDocumentoDTO) || count($arrObjDocumentoDTO) == 0) { + if(!isset($arrObjDocumentoDTO) || count($arrObjDocumentoDTO) == 0) { $objInfraException->adicionarValidacao('No possvel tramitar um processo sem documentos', $strAtributoValidacao); - } } + } - private function validarDadosProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) - { - if($objProcedimentoDTO->isSetStrDescricaoProtocolo() && InfraString::isBolVazia($objProcedimentoDTO->getStrDescricaoProtocolo())) { + private function validarDadosProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + { + if($objProcedimentoDTO->isSetStrDescricaoProtocolo() && InfraString::isBolVazia($objProcedimentoDTO->getStrDescricaoProtocolo())) { $objInfraException->adicionarValidacao("Descrio do processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} no informado.", $strAtributoValidacao); - } + } - if(!$objProcedimentoDTO->isSetArrObjParticipanteDTO() || count($objProcedimentoDTO->getArrObjParticipanteDTO()) == 0) { + if(!$objProcedimentoDTO->isSetArrObjParticipanteDTO() || count($objProcedimentoDTO->getArrObjParticipanteDTO()) == 0) { $objInfraException->adicionarValidacao("Interessados do processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} no informados.", $strAtributoValidacao); - } } + } - private function validarDadosDocumentos(InfraException $objInfraException, $arrDocumentoDTO, $strAtributoValidacao) - { - if(!empty($arrDocumentoDTO)) { + private function validarDadosDocumentos(InfraException $objInfraException, $arrDocumentoDTO, $strAtributoValidacao) + { + if(!empty($arrDocumentoDTO)) { $objDocMapDTO = new PenRelTipoDocMapEnviadoDTO(); $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco()); $objPenRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN(); $strMapeamentoEnvioPadrao = $this->objPenParametroRN->getParametro("PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO"); - foreach($arrDocumentoDTO as $objDocumentoDTO) { - $objDocMapDTO->unSetTodos(); - $objDocMapDTO->setNumIdSerie($objDocumentoDTO->getNumIdSerie()); + foreach($arrDocumentoDTO as $objDocumentoDTO) { + $objDocMapDTO->unSetTodos(); + $objDocMapDTO->setNumIdSerie($objDocumentoDTO->getNumIdSerie()); - if($objDocumentoDTO->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO){ - if(empty($strMapeamentoEnvioPadrao) && $objGenericoBD->contar($objDocMapDTO) == 0) { - $strDescricao = sprintf( - 'No existe mapeamento de envio para %s no documento %s', - $objDocumentoDTO->getStrNomeSerie(), - $objDocumentoDTO->getStrProtocoloDocumentoFormatado() - ); + if($objDocumentoDTO->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO) { + if(empty($strMapeamentoEnvioPadrao) && $objGenericoBD->contar($objDocMapDTO) == 0) { + $strDescricao = sprintf( + 'No existe mapeamento de envio para %s no documento %s', + $objDocumentoDTO->getStrNomeSerie(), + $objDocumentoDTO->getStrProtocoloDocumentoFormatado() + ); - $objInfraException->adicionarValidacao($strDescricao, $strAtributoValidacao); - } + $objInfraException->adicionarValidacao($strDescricao, $strAtributoValidacao); + } $objHipoteseLegalDTO = new HipoteseLegalDTO(); $objHipoteseLegalDTO->setNumIdHipoteseLegal($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()); @@ -2360,26 +2310,26 @@ private function validarDadosDocumentos(InfraException $objInfraException, $arrD $objHipoteseLegalRN = new HipoteseLegalRN(); $dados = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO); - if ($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo()!=ProtocoloRN::$NA_PUBLICO){ - if(!$dados){ - return; - } + if ($objDocumentoDTO->getStrStaNivelAcessoLocalProtocolo()!=ProtocoloRN::$NA_PUBLICO) { + if(!$dados) { + return; + } - if (!empty($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()) && empty($objPenRelHipoteseLegalEnvioRN->getIdHipoteseLegalPEN($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()))) { - $objInfraException->adicionarValidacao('Hiptese legal "'.$dados->getStrNome().'" do documento '.$objDocumentoDTO->getStrNomeSerie(). ' ' . $objDocumentoDTO->getStrProtocoloDocumentoFormatado() .' no mapeada', $strAtributoValidacao); - }else{ - if($dados->getStrSinAtivo() == 'N'){ - $objInfraException->adicionarValidacao('Hiptese legal "'.$dados->getStrNome().'" do documento '.$objDocumentoDTO->getStrNomeSerie(). ' ' . $objDocumentoDTO->getStrProtocoloDocumentoFormatado() .' est inativa', $strAtributoValidacao); - } + if (!empty($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()) && empty($objPenRelHipoteseLegalEnvioRN->getIdHipoteseLegalPEN($objDocumentoDTO->getNumIdHipoteseLegalProtocolo()))) { + $objInfraException->adicionarValidacao('Hiptese legal "'.$dados->getStrNome().'" do documento '.$objDocumentoDTO->getStrNomeSerie(). ' ' . $objDocumentoDTO->getStrProtocoloDocumentoFormatado() .' no mapeada', $strAtributoValidacao); + }else{ + if($dados->getStrSinAtivo() == 'N') { + $objInfraException->adicionarValidacao('Hiptese legal "'.$dados->getStrNome().'" do documento '.$objDocumentoDTO->getStrNomeSerie(). ' ' . $objDocumentoDTO->getStrProtocoloDocumentoFormatado() .' est inativa', $strAtributoValidacao); } } } } } } + } - private function validarProcessoAbertoUnidade(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) - { + private function validarProcessoAbertoUnidade(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + { $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDistinct(true); $objAtividadeDTO->retStrSiglaUnidade(); @@ -2389,20 +2339,15 @@ private function validarProcessoAbertoUnidade(InfraException $objInfraException, $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO); - if(isset($arrObjAtividadeDTO) && count($arrObjAtividadeDTO) > 1) { + if(isset($arrObjAtividadeDTO) && count($arrObjAtividadeDTO) > 1) { $strSiglaUnidade = implode(', ', InfraArray::converterArrInfraDTO($arrObjAtividadeDTO, 'SiglaUnidade')); $objInfraException->adicionarValidacao("No possvel tramitar um processo aberto em mais de uma unidade. ($strSiglaUnidade)", $strAtributoValidacao); - } } + } - public function validarProcessoIncluidoBlocoEmAndamento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + public function validarProcessoIncluidoBlocoEmAndamento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) { - $concluido = array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE - ); + $concluido = [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE]; $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); $objPenBlocoProcessoDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); @@ -2413,44 +2358,43 @@ public function validarProcessoIncluidoBlocoEmAndamento(InfraException $objInfra $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); $arrPenBlocoProcessoDTO = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); - foreach ($arrPenBlocoProcessoDTO as $objPenBlocoProcessoDTO) { - if (!in_array($objPenBlocoProcessoDTO->getNumIdAndamento(), $concluido)) { - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setNumId($objPenBlocoProcessoDTO->getNumIdBloco()); - $objTramiteEmBlocoDTO->retNumOrdem(); - $objTramiteEmBlocoDTO->retStrSiglaUnidade(); - $objTramiteEmBlocoDTO->retStrDescricao(); - - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); - - $mensagem = "Prezado(a) usurio(a), o processo {$objPenBlocoProcessoDTO->getStrProtocoloFormatadoProtocolo()} encontra-se inserido no bloco {$objTramiteEmBlocoDTO->getNumOrdem()} - " - . " {$objTramiteEmBlocoDTO->getStrDescricao()} da unidade {$objTramiteEmBlocoDTO->getStrSiglaUnidade()}." - . " Para continuar com essa ao necessrio que o processo seja removido do bloco em questo."; - $objInfraException->adicionarValidacao($mensagem, $strAtributoValidacao); - } + foreach ($arrPenBlocoProcessoDTO as $objPenBlocoProcessoDTO) { + if (!in_array($objPenBlocoProcessoDTO->getNumIdAndamento(), $concluido)) { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($objPenBlocoProcessoDTO->getNumIdBloco()); + $objTramiteEmBlocoDTO->retNumOrdem(); + $objTramiteEmBlocoDTO->retStrSiglaUnidade(); + $objTramiteEmBlocoDTO->retStrDescricao(); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoDTO = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + + $mensagem = "Prezado(a) usurio(a), o processo {$objPenBlocoProcessoDTO->getStrProtocoloFormatadoProtocolo()} encontra-se inserido no bloco {$objTramiteEmBlocoDTO->getNumOrdem()} - " + . " {$objTramiteEmBlocoDTO->getStrDescricao()} da unidade {$objTramiteEmBlocoDTO->getStrSiglaUnidade()}." + . " Para continuar com essa ao necessrio que o processo seja removido do bloco em questo."; + $objInfraException->adicionarValidacao($mensagem, $strAtributoValidacao); } } + } - private function validarNivelAcessoProcesso(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) - { - if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO) { + private function validarNivelAcessoProcesso(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + { + if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_SIGILOSO) { $objInfraException->adicionarValidacao('No possvel tramitar um processo com informaes sigilosas.', $strAtributoValidacao); - } } + } /** - * Valida existncia da Hiptese legal de Envio - * @param InfraException $objInfraException - * @param ProcedimentoDTO $objProcedimentoDTO - * @param string $strAtributoValidacao - */ - private function validarHipoteseLegalEnvio(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) - { - if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO) { - if (empty($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo())) { - $objInfraException->adicionarValidacao('No possvel tramitar um processo de nvel restrito sem a hiptese legal mapeada.', $strAtributoValidacao); - } + * Valida existncia da Hiptese legal de Envio + * + * @param string $strAtributoValidacao + */ + private function validarHipoteseLegalEnvio(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao) + { + if ($objProcedimentoDTO->getStrStaNivelAcessoLocalProtocolo() == ProtocoloRN::$NA_RESTRITO) { + if (empty($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo())) { + $objInfraException->adicionarValidacao('No possvel tramitar um processo de nvel restrito sem a hiptese legal mapeada.', $strAtributoValidacao); + } $objHipoteseLegalDTO = new HipoteseLegalDTO(); $objHipoteseLegalDTO->setNumIdHipoteseLegal($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()); @@ -2461,19 +2405,20 @@ private function validarHipoteseLegalEnvio(InfraException $objInfraException, Pr $dados = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO); $objPenRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN(); - if(!empty($dados)){ - if (!empty($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()) && empty($objPenRelHipoteseLegalEnvioRN->getIdHipoteseLegalPEN($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()))) { - $objInfraException->adicionarValidacao('Hiptese legal "' . $dados->getStrNome() . '" do processo ' . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado() . ' no mapeada', $strAtributoValidacao); - }else{ - if($dados->getStrSinAtivo() == 'N'){ - $objInfraException->adicionarValidacao('Hiptese legal "' . $dados->getStrNome() . '" do processo ' . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado() . ' est inativa', $strAtributoValidacao); - } + if(!empty($dados)) { + if (!empty($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()) && empty($objPenRelHipoteseLegalEnvioRN->getIdHipoteseLegalPEN($objProcedimentoDTO->getNumIdHipoteseLegalProtocolo()))) { + $objInfraException->adicionarValidacao('Hiptese legal "' . $dados->getStrNome() . '" do processo ' . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado() . ' no mapeada', $strAtributoValidacao); + }else{ + if($dados->getStrSinAtivo() == 'N') { + $objInfraException->adicionarValidacao('Hiptese legal "' . $dados->getStrNome() . '" do processo ' . $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado() . ' est inativa', $strAtributoValidacao); } } } } + } - private function validarAssinaturas(InfraException $objInfraException, $objProcedimentoDTO, $strAtributoValidacao) { + private function validarAssinaturas(InfraException $objInfraException, $objProcedimentoDTO, $strAtributoValidacao) + { $bolAssinaturaCorretas = true; @@ -2486,28 +2431,29 @@ private function validarAssinaturas(InfraException $objInfraException, $objProce $objDocumentoRN = new DocumentoRN(); $arrObjDocumentoDTO = (array)$objDocumentoRN->listarRN0008($objDocumentoDTO); - if(!empty($arrObjDocumentoDTO)) { + if(!empty($arrObjDocumentoDTO)) { $objAssinaturaDTO = new AssinaturaDTO(); $objAssinaturaDTO->setDistinct(true); $objAssinaturaDTO->retDblIdDocumento(); - foreach($arrObjDocumentoDTO as $objDocumentoDTO) { - $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); + foreach($arrObjDocumentoDTO as $objDocumentoDTO) { + $objAssinaturaDTO->setDblIdDocumento($objDocumentoDTO->getDblIdDocumento()); - // Se o documento no tem assinatura e no foi cancelado ento cai na regra de validao - if($this->objAssinaturaRN->contarRN1324($objAssinaturaDTO) == 0 && $objDocumentoDTO->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO && ($objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_EDOC || $objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_INTERNO) ){ + // Se o documento no tem assinatura e no foi cancelado ento cai na regra de validao + if($this->objAssinaturaRN->contarRN1324($objAssinaturaDTO) == 0 && $objDocumentoDTO->getStrStaEstadoProtocolo() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO && ($objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_EDOC || $objDocumentoDTO->getStrStaDocumento() == DocumentoRN::$TD_EDITOR_INTERNO) ) { $bolAssinaturaCorretas = false; - } } } + } - if($bolAssinaturaCorretas !== true) { + if($bolAssinaturaCorretas !== true) { $objInfraException->adicionarValidacao('No possvel tramitar um processos com documentos gerados e no assinados', $strAtributoValidacao); - } } + } - private function validarProcedimentoCompartilhadoSeiFederacao(InfraException $objInfraException, $objProcedimentoDTO, $strAtributoValidacao) { + private function validarProcedimentoCompartilhadoSeiFederacao(InfraException $objInfraException, $objProcedimentoDTO, $strAtributoValidacao) + { $bolProcedimentoCompartilhado = false; $objProtocoloFederacaoDTO = new ProtocoloFederacaoDTO(); $objProtocoloFederacaoDTO->setStrProtocoloFormatadoPesquisa($objProcedimentoDTO->getStrProtocoloProcedimentoFormatadoPesquisa()); @@ -2516,17 +2462,17 @@ private function validarProcedimentoCompartilhadoSeiFederacao(InfraException $ob $objProtocoloFederacaoRN = new ProtocoloFederacaoRN(); $arrObjProtocoloFederacaoDTO = (array) $objProtocoloFederacaoRN->listar($objProtocoloFederacaoDTO); - if(!empty($arrObjProtocoloFederacaoDTO)) { + if(!empty($arrObjProtocoloFederacaoDTO)) { - if (count($arrObjProtocoloFederacaoDTO) > 0){ - $bolProcedimentoCompartilhado = true; - } + if (count($arrObjProtocoloFederacaoDTO) > 0) { + $bolProcedimentoCompartilhado = true; } + } - if($bolProcedimentoCompartilhado) { + if($bolProcedimentoCompartilhado) { $objInfraException->adicionarValidacao('No possvel tramitar o processo pois ele foi compartilhado atravs do SEI Federao.', $strAtributoValidacao); - } } + } /** * Valida se o processo pode ser bloqueado pelo sistema antes do seu envio @@ -2534,7 +2480,8 @@ private function validarProcedimentoCompartilhadoSeiFederacao(InfraException $ob * Regra necessria para evitar que regras internas do SEI ou mdulos possam impedir o bloqueio do processo aps o seu envio externo, * exceo esta que pode deixar o processo aberto tanto no remetente como no destinatrio. */ - protected function validarPossibilidadeBloqueioControlado($objProcedimentoDTO){ + protected function validarPossibilidadeBloqueioControlado($objProcedimentoDTO) + { // Bloqueia temporariamente o processo para garantir que no exista restries sobre ele $objProcedimentoRN = new ProcedimentoRN(); $objProcedimentoRN->bloquear([$objProcedimentoDTO]); @@ -2543,18 +2490,19 @@ protected function validarPossibilidadeBloqueioControlado($objProcedimentoDTO){ $objProtocoloDTOBanco = new ProcedimentoDTO(); $objProtocoloDTOBanco->setDblIdProcedimento($objProcedimentoDTO->getDblIdProcedimento()); $objProtocoloDTOBanco->retStrStaEstadoProtocolo(); - $objProtocoloDTOBanco = $objProcedimentoRN->consultarRN0201($objProtocoloDTOBanco); + $objProcedimentoRN->consultarRN0201($objProtocoloDTOBanco); $objProcedimentoRN->desbloquear([$objProcedimentoDTO]); - } + } /** - * Validao das pr-condies necessrias para que um processo e seus documentos possam ser expedidos para outra entidade - * @param InfraException $objInfraException Instncia da classe de exceo para registro dos erros - * @param ProcedimentoDTO $objProcedimentoDTO Informaes sobre o procedimento a ser expedido - * @param string $strAtributoValidacao ndice para o InfraException separar os processos - */ - public function validarPreCondicoesExpedirProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null, $bolSinProcessamentoEmBloco = false) - { + * Validao das pr-condies necessrias para que um processo e seus documentos possam ser expedidos para outra entidade + * + * @param InfraException $objInfraException Instncia da classe de exceo para registro dos erros + * @param ProcedimentoDTO $objProcedimentoDTO Informaes sobre o procedimento a ser expedido + * @param string $strAtributoValidacao ndice para o InfraException separar os processos + */ + public function validarPreCondicoesExpedirProcedimento(InfraException $objInfraException, ProcedimentoDTO $objProcedimentoDTO, $strAtributoValidacao = null, $bolSinProcessamentoEmBloco = false) + { $this->validarDadosProcedimento($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); $this->validarDadosDocumentos($objInfraException, $objProcedimentoDTO->getArrObjDocumentoDTO(), $strAtributoValidacao); $this->validarDocumentacaoExistende($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); @@ -2563,23 +2511,23 @@ public function validarPreCondicoesExpedirProcedimento(InfraException $objInfraE $this->validarHipoteseLegalEnvio($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); $this->validarAssinaturas($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); - try{ - if(!$bolSinProcessamentoEmBloco){ - $this->validarPossibilidadeBloqueio($objProcedimentoDTO); - } - }catch(Exception $e){ - $objInfraException->adicionarValidacao($e, $strAtributoValidacao); + try{ + if(!$bolSinProcessamentoEmBloco) { + $this->validarPossibilidadeBloqueio($objProcedimentoDTO); } + }catch(Exception $e){ + $objInfraException->adicionarValidacao($e, $strAtributoValidacao); + } - if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0")) { + if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0")) { $this->validarProcedimentoCompartilhadoSeiFederacao($objInfraException, $objProcedimentoDTO, $strAtributoValidacao); - } } + } - public function verificarProcessosAbertoNaUnidade(InfraException $objInfraException, array $arrProtocolosOrigem) + public function verificarProcessosAbertoNaUnidade(InfraException $objInfraException, array $arrProtocolosOrigem) { $naoAbertoUnidadeAtual = false; - foreach ($arrProtocolosOrigem as $dblIdProcedimento) { + foreach ($arrProtocolosOrigem as $dblIdProcedimento) { $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); $objProcedimentoDTO = $objExpedirProcedimentosRN->consultarProcedimento($dblIdProcedimento); @@ -2594,87 +2542,84 @@ public function verificarProcessosAbertoNaUnidade(InfraException $objInfraExcept $objAtividadeDTO->setDthConclusao(null); $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO); - if(count($arrObjAtividadeDTO) == 0) { - if ($naoAbertoUnidadeAtual == false) { + if(count($arrObjAtividadeDTO) == 0) { + if ($naoAbertoUnidadeAtual == false) { $naoAbertoUnidadeAtual = true; $objInfraException->adicionarValidacao("Verifique o(s) seguinte(s) impedimento(s) para a realizao do trmite:"); - } - $objInfraException->adicionarValidacao("O processo {$strProtocoloFormatado} no possui andamento aberto nesta unidade;"); } + $objInfraException->adicionarValidacao("O processo {$strProtocoloFormatado} no possui andamento aberto nesta unidade;"); } + } - if ($naoAbertoUnidadeAtual == true) { + if ($naoAbertoUnidadeAtual == true) { $objInfraException->adicionarValidacao(" necessrio excluir o(s) processo(s) citado(s) do bloco."); - } } + } - public function validarProcessoAbertoEmOutraUnidade($objInfraException, $arrProtocolosOrigem) + public function validarProcessoAbertoEmOutraUnidade($objInfraException, $arrProtocolosOrigem) { - foreach ($arrProtocolosOrigem as $dblIdProcedimento) { + foreach ($arrProtocolosOrigem as $dblIdProcedimento) { $objExpedirProcedimentosRN = new ExpedirProcedimentoRN(); $objProcedimentoDTO = $objExpedirProcedimentosRN->consultarProcedimento($dblIdProcedimento); $strProtocoloFormatado = $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); - if (empty($objProcedimentoDTO)) { - throw new InfraException('Procedimento ' . $strProtocoloFormatado . ' no foi localizado', 'Desconhecido'); - } + if (empty($objProcedimentoDTO)) { + throw new InfraException('Procedimento ' . $strProtocoloFormatado . ' no foi localizado', 'Desconhecido'); + } $objProcedimentoDTO->setArrObjDocumentoDTO($objExpedirProcedimentosRN->listarDocumentos($dblIdProcedimento)); $objProcedimentoDTO->setArrObjParticipanteDTO($objExpedirProcedimentosRN->listarInteressados($dblIdProcedimento)); $objExpedirProcedimentosRN->validarPreCondicoesExpedirProcedimento($objInfraException, $objProcedimentoDTO); - } } + } - public function trazerTextoSeContemValidacoes($objInfraException) + public function trazerTextoSeContemValidacoes($objInfraException) { - if ($objInfraException->contemValidacoes()) { - $arrErros = array(); + if ($objInfraException->contemValidacoes()) { + $arrErros = []; $message = ""; - foreach ($objInfraException->getArrObjInfraValidacao() as $objInfraValidacao) { - $strAtributo = $objInfraValidacao->getStrAtributo(); - if (!array_key_exists($strAtributo, $arrErros)) { - $arrErros[$strAtributo] = array(); - } - $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); - $message .= $objInfraValidacao->getStrDescricao() . "\n"; + foreach ($objInfraException->getArrObjInfraValidacao() as $objInfraValidacao) { + $strAtributo = $objInfraValidacao->getStrAtributo(); + if (!array_key_exists($strAtributo, $arrErros)) { + $arrErros[$strAtributo] = []; } + $arrErros[$strAtributo][] = mb_convert_encoding($objInfraValidacao->getStrDescricao(), 'UTF-8', 'ISO-8859-1'); + $message .= $objInfraValidacao->getStrDescricao() . "\n"; + } return $message; - } + } return null; - } + } - private function obterNivelSigiloPEN($strNivelSigilo) - { - switch ($strNivelSigilo) { - case ProtocoloRN::$NA_PUBLICO: - return self::STA_SIGILO_PUBLICO; - break; - case ProtocoloRN::$NA_RESTRITO: - return self::STA_SIGILO_RESTRITO; - break; - case ProtocoloRN::$NA_SIGILOSO: - return self::STA_SIGILO_SIGILOSO; - break; - } + private function obterNivelSigiloPEN($strNivelSigilo) + { + switch ($strNivelSigilo) { + case ProtocoloRN::$NA_PUBLICO: + return self::STA_SIGILO_PUBLICO; + case ProtocoloRN::$NA_RESTRITO: + return self::STA_SIGILO_RESTRITO; + case ProtocoloRN::$NA_SIGILOSO: + return self::STA_SIGILO_SIGILOSO; } + } - public function listarProcessosApensados($dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $numRegistros = 15) - { + public function listarProcessosApensados($dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $numRegistros = 15) + { - $arrObjProcessosApensados = array(); + $arrObjProcessosApensados = []; - try{ + try{ $objInfraException = new InfraException(); $idUnidadeAtual = filter_var($idUnidadeAtual, FILTER_SANITIZE_NUMBER_INT); - if(!$idUnidadeAtual){ - $objInfraException->adicionarValidacao('Processo invlido.'); - } + if(!$idUnidadeAtual) { + $objInfraException->adicionarValidacao('Processo invlido.'); + } $objInfraException->lancarValidacoes(); //Pesquisar procedimentos que esto abertos na unidade atual @@ -2690,42 +2635,43 @@ public function listarProcessosApensados($dblIdProcedimentoAtual, $idUnidadeAtua $objAtividadeDTO->setStrStaEstadoProtocolo(ProtocoloRN::$TE_NORMAL); $arrPalavrasPesquisa = explode(' ', $strPalavrasPesquisa); - for($i=0; $i<count($arrPalavrasPesquisa); $i++) { + for($i=0; $i<count($arrPalavrasPesquisa); $i++) { $arrPalavrasPesquisa[$i] = '%'.$arrPalavrasPesquisa[$i].'%'; - } + } - if (count($arrPalavrasPesquisa)==1){ + if (count($arrPalavrasPesquisa)==1) { $objAtividadeDTO->setStrProtocoloFormatadoProtocolo($arrPalavrasPesquisa[0], InfraDTO::$OPER_LIKE); - }else{ + }else{ $objAtividadeDTO->unSetStrProtocoloFormatadoProtocolo(); $a = array_fill(0, count($arrPalavrasPesquisa), 'ProtocoloFormatadoProtocolo'); $b = array_fill(0, count($arrPalavrasPesquisa), InfraDTO::$OPER_LIKE); $d = array_fill(0, count($arrPalavrasPesquisa)-1, InfraDTO::$OPER_LOGICO_AND); $objAtividadeDTO->adicionarCriterio($a, $b, $arrPalavrasPesquisa, $d); - } + } - $arrResultado = array(); + $arrResultado = []; $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO); $arrObjAtividadeDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjAtividadeDTO, 'ProtocoloFormatadoProtocolo', true); - foreach ($arrObjAtividadeDTOIndexado as $key => $value) { + foreach ($arrObjAtividadeDTOIndexado as $value) { - if(is_array($value) && count($value) == 1) { + if(is_array($value) && count($value) == 1) { $arrResultado[] = $value[0]; - } } + } $arrObjProcessosApensados = array_slice($arrResultado, 0, $numRegistros); - } catch(Exception $e) { + } catch(Exception $e) { throw new InfraException("Error Processing Request", $e); - } + } return $arrObjProcessosApensados; - } + } - public function listarProcessosAbertos($dblIdProcedimentoAtual, $idUnidadeAtual){ + public function listarProcessosAbertos($dblIdProcedimentoAtual, $idUnidadeAtual) + { $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDistinct(true); $objAtividadeDTO->retDblIdProtocolo(); @@ -2736,26 +2682,27 @@ public function listarProcessosAbertos($dblIdProcedimentoAtual, $idUnidadeAtual) $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO); - $arrayProcedimentos = array(); + $arrayProcedimentos = []; - foreach($arrObjAtividadeDTO as $atividade){ + foreach($arrObjAtividadeDTO as $atividade){ $arrayProcedimentos[$atividade->getDblIdProtocolo()][$atividade->getNumIdUnidade()] = 1; - } + } return $arrayProcedimentos; - } + } - public function listarProcessosApensadosAvancado(AtividadeDTO $objAtividadeDTO, $dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $strDescricaoPesquisa = '', $numRegistros = 15) { + public function listarProcessosApensadosAvancado(AtividadeDTO $objAtividadeDTO, $dblIdProcedimentoAtual, $idUnidadeAtual, $strPalavrasPesquisa = '', $strDescricaoPesquisa = '', $numRegistros = 15) + { - $arrObjProcessosApensados = array(); + $arrObjProcessosApensados = []; - try { + try { $objInfraException = new InfraException(); $idUnidadeAtual = filter_var($idUnidadeAtual, FILTER_SANITIZE_NUMBER_INT); - if(!$idUnidadeAtual){ - $objInfraException->adicionarValidacao('Processo invlido.'); - } + if(!$idUnidadeAtual) { + $objInfraException->adicionarValidacao('Processo invlido.'); + } $objInfraException->lancarValidacoes(); //Pesquisar procedimentos que esto abertos na unidade atual @@ -2771,185 +2718,186 @@ public function listarProcessosApensadosAvancado(AtividadeDTO $objAtividadeDTO, $objAtividadeDTO->setStrStaEstadoProtocolo(ProtocoloRN::$TE_NORMAL); $arrPalavrasPesquisa = explode(' ', $strPalavrasPesquisa); - for($i=0; $i<count($arrPalavrasPesquisa); $i++) { + for($i=0; $i<count($arrPalavrasPesquisa); $i++) { $arrPalavrasPesquisa[$i] = '%'.$arrPalavrasPesquisa[$i].'%'; - } + } - if (count($arrPalavrasPesquisa)==1){ + if (count($arrPalavrasPesquisa)==1) { $objAtividadeDTO->setStrProtocoloFormatadoProtocolo($arrPalavrasPesquisa[0], InfraDTO::$OPER_LIKE); - }else{ + }else{ $objAtividadeDTO->unSetStrProtocoloFormatadoProtocolo(); $a = array_fill(0, count($arrPalavrasPesquisa), 'ProtocoloFormatadoProtocolo'); $b = array_fill(0, count($arrPalavrasPesquisa), InfraDTO::$OPER_LIKE); $d = array_fill(0, count($arrPalavrasPesquisa)-1, InfraDTO::$OPER_LOGICO_AND); $objAtividadeDTO->adicionarCriterio($a, $b, $arrPalavrasPesquisa, $d); - } + } - $arrResultado = array(); + $arrResultado = []; $arrObjAtividadeDTO = $this->objAtividadeRN->listarRN0036($objAtividadeDTO); $arrObjAtividadeDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjAtividadeDTO, 'ProtocoloFormatadoProtocolo', true); - foreach ($arrObjAtividadeDTOIndexado as $key => $value) { + foreach ($arrObjAtividadeDTOIndexado as $value) { - if(is_array($value) && count($value) == 1) { + if(is_array($value) && count($value) == 1) { $arrResultado[] = $value[0]; - } } + } $arrObjProcessosApensados = array_slice($arrResultado, 0, $numRegistros); - } catch(Exception $e) { + } catch(Exception $e) { throw new InfraException("Error Processing Request", $e); - } + } return $arrObjProcessosApensados; - } + } /** - * Mtodo responsvel por realizar o particionamento do componente digital a ser enviado, de acordo com o parametro (TamanhoBlocoArquivoTransferencia) - * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> - * @param $strCaminhoAnexo - * @param $dadosDoComponenteDigital - * @param $nrTamanhoArquivoMb - * @param $nrTamanhoMegasMaximo - * @param $nrTamanhoBytesMaximo - * @param $objComponenteDigitalDTO - * @throws InfraException - */ - private function particionarComponenteDigitalParaEnvio($strCaminhoAnexo, $dadosDoComponenteDigital, $nrTamanhoArquivoMb, $nrTamanhoMegasMaximo, - $nrTamanhoBytesMaximo, $objComponenteDigitalDTO, $numIdTramite, $bolSinProcessamentoEmBloco = false) - { + * Mtodo responsvel por realizar o particionamento do componente digital a ser enviado, de acordo com o parametro (TamanhoBlocoArquivoTransferencia) + * + * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> + * @param $strCaminhoAnexo + * @param $dadosDoComponenteDigital + * @param $nrTamanhoArquivoMb + * @param $nrTamanhoMegasMaximo + * @param $nrTamanhoBytesMaximo + * @param $objComponenteDigitalDTO + * @throws InfraException + */ + private function particionarComponenteDigitalParaEnvio($strCaminhoAnexo, $dadosDoComponenteDigital, $nrTamanhoArquivoMb, $nrTamanhoMegasMaximo, + $nrTamanhoBytesMaximo, $bolSinProcessamentoEmBloco = false + ) { //Faz o clculo para obter a quantidade de partes que o arquivo ser particionado, sempre arrendondando para cima $qtdPartes = ceil($nrTamanhoArquivoMb / $nrTamanhoMegasMaximo); //Abre o arquivo para leitura $fp = fopen($strCaminhoAnexo, "rb"); - try { + try { $inicio = 0; //L o arquivo em partes para realizar o envio - for ($i = 1; $i <= $qtdPartes; $i++) + for ($i = 1; $i <= $qtdPartes; $i++) { - $parteDoArquivo = stream_get_contents($fp, $nrTamanhoBytesMaximo, $inicio); - $tamanhoParteArquivo = strlen($parteDoArquivo); - $fim = $inicio + $tamanhoParteArquivo; - try{ + $parteDoArquivo = stream_get_contents($fp, $nrTamanhoBytesMaximo, $inicio); + $tamanhoParteArquivo = strlen($parteDoArquivo); + $fim = $inicio + $tamanhoParteArquivo; + try{ $this->enviarParteDoComponenteDigital($inicio, $fim, $parteDoArquivo, $dadosDoComponenteDigital); - if(!$bolSinProcessamentoEmBloco){ - $this->barraProgresso->mover($this->contadorDaBarraDeProgresso); - } + if(!$bolSinProcessamentoEmBloco) { + $this->barraProgresso->mover($this->contadorDaBarraDeProgresso); + } $this->contadorDaBarraDeProgresso++; - }catch (Exception $e){ + }catch (Exception $e){ //Armazena as partes que no foram enviadas para tentativa de reenvio posteriormente $arrPartesComponentesDigitaisNaoEnviadas[] = $inicio; - } - $inicio = ($nrTamanhoBytesMaximo * $i); } + $inicio = ($nrTamanhoBytesMaximo * $i); + } //Verifica se existem partes do componente digital que no foram enviadas para tentar realizar o envio novamente - if(isset($arrPartesComponentesDigitaisNaoEnviadas)){ + if(isset($arrPartesComponentesDigitaisNaoEnviadas)) { $nrTotalPartesNaoEnviadas = count($arrPartesComponentesDigitaisNaoEnviadas); $i = 1; //Percorre as partes que n<E3>o foram enviadas para reenvia-las - foreach ($arrPartesComponentesDigitaisNaoEnviadas as $parteComponenteNaoEnviada) + foreach ($arrPartesComponentesDigitaisNaoEnviadas as $parteComponenteNaoEnviada) { - $conteudoDaParteNaoEnviadaDoArquivo = stream_get_contents($fp, $nrTamanhoBytesMaximo, $parteComponenteNaoEnviada); - $fim = ($parteComponenteNaoEnviada + strlen($conteudoDaParteNaoEnviadaDoArquivo)); - try{ - $this->enviarParteDoComponenteDigital($parteComponenteNaoEnviada, $fim, $conteudoDaParteNaoEnviadaDoArquivo, $dadosDoComponenteDigital); - }catch (Exception $e){ - throw $e; - } - $i++; - } + $conteudoDaParteNaoEnviadaDoArquivo = stream_get_contents($fp, $nrTamanhoBytesMaximo, $parteComponenteNaoEnviada); + $fim = ($parteComponenteNaoEnviada + strlen($conteudoDaParteNaoEnviadaDoArquivo)); + $this->enviarParteDoComponenteDigital($parteComponenteNaoEnviada, $fim, $conteudoDaParteNaoEnviadaDoArquivo, $dadosDoComponenteDigital); + $i++; } - } finally { - fclose($fp); } + } finally { + fclose($fp); } + } /** - * Mtodo responsavel por realizar o envio de uma parte especifica de um componente digital - * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> - * @param $parInicio - * @param $parFim - * @param $parParteDoArquivo - * @param $parDadosDoComponenteDigital - */ - private function enviarParteDoComponenteDigital($parInicio, $parFim, $parParteDoArquivo, $parDadosDoComponenteDigital){ + * Mtodo responsavel por realizar o envio de uma parte especifica de um componente digital + * + * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> + * @param $parInicio + * @param $parFim + * @param $parParteDoArquivo + * @param $parDadosDoComponenteDigital + */ + private function enviarParteDoComponenteDigital($parInicio, $parFim, $parParteDoArquivo, $parDadosDoComponenteDigital) + { //Cria um objeto com as informa<E7><F5>es da parte do componente digital $identificacaoDaParte = new stdClass(); $identificacaoDaParte->inicio = $parInicio; $identificacaoDaParte->fim = $parFim; $parDadosDoComponenteDigital->identificacaoDaParte = $identificacaoDaParte; - $parDadosDoComponenteDigital->conteudoDaParteDeComponenteDigital = new SoapVar($parParteDoArquivo, XSD_BASE64BINARY); + $parDadosDoComponenteDigital->conteudoDaParteDeComponenteDigital = $parParteDoArquivo; $parametros = new stdClass(); $parametros->dadosDaParteDeComponenteDigital = $parDadosDoComponenteDigital; //Envia uma parte de um componente digital para o barramento $this->objProcessoEletronicoRN->enviarParteDeComponenteDigital($parametros); - } + } /** - * Mtodo responsvel por realizar o envio da parte de um componente digital - * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> - * @param $parametros - * @return mixed - * @throws InfraException - */ - public function enviarParteDeComponenteDigital($parametros) - { - try { + * Mtodo responsvel por realizar o envio da parte de um componente digital + * + * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> + * @param $parametros + * @return mixed + * @throws InfraException + */ + public function enviarParteDeComponenteDigital($parametros) + { + try { return $this->getObjPenWs()->enviarParteDeComponenteDigital($parametros); - } catch (\Exception $e) { + } catch (\Exception $e) { $mensagem = "Falha no envio de parte componente digital"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); - } } + } /** - * Mtodo responsvel por sinalizar o trmino do envio das partes de um componente digital - * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> - * @param $parametros - * @return mixed - * @throws InfraException - */ - public function sinalizarTerminoDeEnvioDasPartesDoComponente($parametros) - { - try { + * Mtodo responsvel por sinalizar o trmino do envio das partes de um componente digital + * + * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> + * @param $parametros + * @return mixed + * @throws InfraException + */ + public function sinalizarTerminoDeEnvioDasPartesDoComponente($parametros) + { + try { return $this->getObjPenWs()->sinalizarTerminoDeEnvioDasPartesDoComponente($parametros); - } catch (\Exception $e) { + } catch (\Exception $e) { $mensagem = "Falha em sinalizar o trmino de envio das partes do componente digital"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); - } } + } /** - * Recebe o recibo de tramite do procedimento do barramento - * - * @param int $parNumIdTramite - * @return bool - */ - protected function receberReciboDeEnvioControlado($parNumIdTramite) - { - if (empty($parNumIdTramite)) { + * Recebe o recibo de tramite do procedimento do barramento + * + * @param int $parNumIdTramite + * @return bool + */ + protected function receberReciboDeEnvioControlado($parNumIdTramite) + { + if (empty($parNumIdTramite)) { return false; - } + } - try { + try { $objReciboTramiteEnviadoDTO = new ReciboTramiteEnviadoDTO(); $objReciboTramiteEnviadoDTO->setNumIdTramite($parNumIdTramite); $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco()); - if ($objGenericoBD->contar($objReciboTramiteEnviadoDTO) > 0) { + if ($objGenericoBD->contar($objReciboTramiteEnviadoDTO) > 0) { return false; - } + } $objReciboEnvio = $this->objProcessoEletronicoRN->receberReciboDeEnvio($parNumIdTramite); $objDateTime = new DateTime($objReciboEnvio->reciboDeEnvio->dataDeRecebimentoDoUltimoComponenteDigital); @@ -2962,36 +2910,36 @@ protected function receberReciboDeEnvioControlado($parNumIdTramite) $objReciboTramiteDTO->setStrHashAssinatura($objReciboEnvio->hashDaAssinatura); $objGenericoBD->cadastrar($objReciboTramiteDTO); - if(isset($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)) { - $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital = !is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital) ? array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital) : $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital; - if($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital && is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)){ - foreach($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital as $strHashComponenteDigital){ - $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); - $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboEnvio->reciboDeEnvio->NRE); - $objReciboTramiteHashDTO->setNumIdTramite($objReciboEnvio->reciboDeEnvio->IDT); - $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital); - $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_ENVIO); - - $objGenericoBD->cadastrar($objReciboTramiteHashDTO); - } + if(isset($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)) { + $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital = !is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital) ? [$objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital] : $objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital; + if($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital && is_array($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital)) { + foreach($objReciboEnvio->reciboDeEnvio->hashDoComponenteDigital as $strHashComponenteDigital){ + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); + $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboEnvio->reciboDeEnvio->NRE); + $objReciboTramiteHashDTO->setNumIdTramite($objReciboEnvio->reciboDeEnvio->IDT); + $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital); + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_ENVIO); + + $objGenericoBD->cadastrar($objReciboTramiteHashDTO); } } + } return true; - } catch (\Exception $e) { + } catch (\Exception $e) { $strMensagem = "Falha na obteno do recibo de envio de protocolo do trmite $parNumIdTramite. $e"; LogSEI::getInstance()->gravar($strMensagem, InfraLog::$ERRO); - } } + } /** - * Atualiza os dados do protocolo somente para o modulo PEN - * - * @param int $dblIdProtocolo - * @return null - */ - private function atualizarPenProtocolo($dblIdProtocolo = 0){ + * Atualiza os dados do protocolo somente para o modulo PEN + * + * @param int $dblIdProtocolo + */ + private function atualizarPenProtocolo($dblIdProtocolo = 0) + { $objProtocoloDTO = new PenProtocoloDTO(); $objProtocoloDTO->setDblIdProtocolo($dblIdProtocolo); @@ -3001,29 +2949,29 @@ private function atualizarPenProtocolo($dblIdProtocolo = 0){ $objProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); - if(empty($objProtocoloDTO)) { + if(empty($objProtocoloDTO)) { $objProtocoloDTO = new PenProtocoloDTO(); $objProtocoloDTO->setDblIdProtocolo($dblIdProtocolo); $objProtocoloDTO->setStrSinObteveRecusa('N'); $objProtocoloBD->cadastrar($objProtocoloDTO); - } - else { + } + else { $objProtocoloDTO->setStrSinObteveRecusa('N'); $objProtocoloBD->alterar($objProtocoloDTO); - } } + } /** - * Cancela uma expedio de um Procedimento para outra unidade - * - * @param int $dblIdProcedimento - * @throws InfraException - */ - protected function cancelarTramiteControlado($dblIdProcedimento) - { + * Cancela uma expedio de um Procedimento para outra unidade + * + * @param int $dblIdProcedimento + * @throws InfraException + */ + protected function cancelarTramiteControlado($dblIdProcedimento) + { //Busca os dados do protocolo $objProtocoloDTO = new ProtocoloDTO(); $objProtocoloDTO->retStrProtocoloFormatado(); @@ -3035,10 +2983,10 @@ protected function cancelarTramiteControlado($dblIdProcedimento) $this->cancelarTramiteInterno($objProtocoloDTO); - } + } - protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocolo) - { + protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocolo) + { //Obtem o id_rh que representa a unidade no barramento $numIdRespositorio = $this->objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); @@ -3057,41 +3005,47 @@ protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocol $objPenBlocoProcessoDTO->retTodos(); $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); $objPenBlocoProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objPenBlocoProcessoDTO->setNumIdAndamento(array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE - ), InfraDTO::$OPER_IN); + $objPenBlocoProcessoDTO->setNumIdAndamento([ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE], InfraDTO::$OPER_IN); $objPenBlocoProcessoDTO->setNumMaxRegistrosRetorno(1); $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); $objPenBlocoProcessoDTO = $objPenBlocoProcessoRN->consultar($objPenBlocoProcessoDTO); + $cancelarLote=false; + + if(!is_null($objPenBlocoProcessoDTO)) { + $cancelarLote=true; + } + + if(!$cancelarLote) { - $objTramiteDTO = new TramiteDTO(); - $objTramiteDTO->setNumIdProcedimento($objDtoProtocolo->getDblIdProtocolo()); - $objTramiteDTO->setStrStaTipoTramite(ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO); - $objTramiteDTO->setOrd('Registro', InfraDTO::$TIPO_ORDENACAO_DESC); - $objTramiteDTO->setNumMaxRegistrosRetorno(1); - $objTramiteDTO->retNumIdTramite(); + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->setNumIdProcedimento($objDtoProtocolo->getDblIdProtocolo()); + $objTramiteDTO->setStrStaTipoTramite(ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO); + $objTramiteDTO->setOrd('Registro', InfraDTO::$TIPO_ORDENACAO_DESC); + $objTramiteDTO->setNumMaxRegistrosRetorno(1); + $objTramiteDTO->retNumIdTramite(); + + $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); - $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); + if(!isset($objTramiteDTO)) { + throw new InfraException("Trmite no encontrado para o processo {$objDtoProtocolo->getDblIdProtocolo()}."); + } - if(isset($objTramiteDTO)) { $tramites = $this->objProcessoEletronicoRN->consultarTramites($objTramiteDTO->getNumIdTramite(), null, $objPenUnidadeDTO->getNumIdUnidadeRH(), null, null, $numIdRespositorio); $tramite = $tramites ? $tramites[0] : null; - if (!$tramite) { + if (!$tramite) { $numIdTramite = $objTramiteDTO->getNumIdTramite(); $numIdProtoloco = $objDtoProtocolo->getDblIdProtocolo(); throw new InfraException("Trmite $numIdTramite no encontrado para o processo $numIdProtoloco."); - } + } //Verifica se o trmite est com o status de iniciado - if ($tramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { + if ($tramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT); return true; - } + } //Busca o processo eletrnico $objDTOFiltro = new ProcessoEletronicoDTO(); @@ -3102,47 +3056,44 @@ protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocol $objBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); $objProcessoEletronicoDTO = $objBD->consultar($objDTOFiltro); - if (empty($objProcessoEletronicoDTO)) { + if (empty($objProcessoEletronicoDTO)) { throw new InfraException('No foi encontrado o processo pelo ID ' . $dblIdProcedimento); - } + } //Armazena a situao atual $numSituacaoAtual = $tramite->situacaoAtual; //Valida os status - switch ($numSituacaoAtual) { - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: - throw new InfraException("O sistema destinatrio j iniciou o recebimento desse processo, portanto no possvel realizar o cancelamento"); - break; - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: - throw new InfraException("O sistema destinatrio j recebeu esse processo, portanto no possivel realizar o cancelamento"); - break; - case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: - throw new InfraException("O trmite externo para esse processo encontra-se recusado."); - break; - } + switch ($numSituacaoAtual) { + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO: + throw new InfraException("O sistema destinatrio j iniciou o recebimento desse processo, portanto no possvel realizar o cancelamento"); + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: + throw new InfraException("O sistema destinatrio j recebeu esse processo, portanto no possivel realizar o cancelamento"); + case ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO: + throw new InfraException("O trmite externo para esse processo encontra-se recusado."); + } // Solicitao de cancelamento de tramite de processo ao TramitaGOV.br // Somente solicita cancelamento ao PEN se processo ainda no estiver cancelado - if(!in_array($numSituacaoAtual, array(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO))) { + if(!in_array($numSituacaoAtual, [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO])) { $this->objProcessoEletronicoRN->cancelarTramite($tramite->IDT); - } } + } //Desbloqueia o processo ProcessoEletronicoRN::desbloquearProcesso($dblIdProcedimento); - if(is_object($objPenBlocoProcessoDTO)){ + if(is_object($objPenBlocoProcessoDTO)) { // Atualizar aqui PenBlocoProcessoDTO PenBlocoProcessoRN $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); $objPenBlocoProcessoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); $objPenBlocoProcessoRN->alterar($objPenBlocoProcessoDTO); - } + } // Cancelmento de tramite do processo no MOD_PEN - if(isset($objTramiteDTO)){ + if(isset($objTramiteDTO)) { $objDTOFiltro = new TramiteDTO(); $objDTOFiltro->setNumIdTramite($tramite->IDT); $objDTOFiltro->setNumMaxRegistrosRetorno(1); @@ -3155,7 +3106,7 @@ protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocol $objTramiteDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); $objTramiteDTO = $objTramiteBD->alterar($objTramiteDTO); - } + } //Cria o Objeto que registrar a Atividade de cancelamento $objAtividadeDTO = new AtividadeDTO(); @@ -3174,20 +3125,20 @@ protected function cancelarTramiteInternoControlado(ProtocoloDTO $objDtoProtocol $objAtributoAndamentoDTOUser->setStrIdOrigem(null); $objAtributoAndamentoDTOUser->setStrValor(SessaoSEI::getInstance()->getStrNomeUsuario()); - $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array($objAtributoAndamentoDTOHora, $objAtributoAndamentoDTOUser)); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO([$objAtributoAndamentoDTOHora, $objAtributoAndamentoDTOUser]); $objAtividadeRN = new AtividadeRN(); $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); - } + } /** - * Verifica se o processo se encontra em expedio - * - * @param integer $parNumIdProcedimento - * @return boolean|object - */ - public function verificarProcessoEmExpedicao($parNumIdProcedimento) - { + * Verifica se o processo se encontra em expedio + * + * @param integer $parNumIdProcedimento + * @return boolean|object + */ + public function verificarProcessoEmExpedicao($parNumIdProcedimento) + { $objProcedimentoDTO = new ProcedimentoDTO(); $objProcedimentoDTO->setDblIdProcedimento($parNumIdProcedimento); $objProcedimentoDTO->retStrStaEstadoProtocolo(); @@ -3197,64 +3148,56 @@ public function verificarProcessoEmExpedicao($parNumIdProcedimento) $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - if($objProcedimentoDTO && $objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO){ - - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); - $objAtividadeDTO->setNumIdTarefa( - array(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO), - ), - InfraDTO::$OPER_IN); - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); - $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); - $objAtividadeDTO->retNumIdUnidade(); - $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeDTO->retNumIdTarefa(); - - $objAtividadeRN = new AtividadeRN(); - $arrAtividadeDTO = (array) $objAtividadeRN->listarRN0036($objAtividadeDTO); - - if($arrAtividadeDTO){ - return $arrAtividadeDTO[0]; - }else{ - return false; - } + if($objProcedimentoDTO && $objProcedimentoDTO->getStrStaEstadoProtocolo() == ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO) { + + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objProcedimentoDTO->getDblIdProcedimento()); + $objAtividadeDTO->setNumIdTarefa( + [ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO), ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO)], + InfraDTO::$OPER_IN + ); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); + $objAtividadeDTO->retNumIdUnidade(); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->retNumIdTarefa(); + + $objAtividadeRN = new AtividadeRN(); + $arrAtividadeDTO = (array) $objAtividadeRN->listarRN0036($objAtividadeDTO); + + if($arrAtividadeDTO) { + return $arrAtividadeDTO[0]; }else{ return false; } + }else{ + return false; } + } - public function consultaUnidadePk($idUnidade) { + public function consultaUnidadePk($idUnidade) + { $objUnidadeDTO = new UnidadeDTO(); $objUnidadeDTO->setNumIdUnidade($idUnidade); $objUnidadeDTO->retTodos(); - $objUnidadeDTO = $this->objUnidadeRN->consultarRN0125($objUnidadeDTO); - - return $objUnidadeDTO; - } + return $this->objUnidadeRN->consultarRN0125($objUnidadeDTO); + } - public function consultaUsuarioPk($idUsuario) - { + public function consultaUsuarioPk($idUsuario) + { $objUsuarioDTO = new UsuarioDTO(); $objUsuarioDTO->setNumIdUsuario($idUsuario); $objUsuarioDTO->retTodos(); - $objUsuarioDTO = $this->objUsuarioRN->consultarRN0489($objUsuarioDTO); - - return $objUsuarioDTO; - } + return $this->objUsuarioRN->consultarRN0489($objUsuarioDTO); + } - public function consultarProtocoloPk($idPrtocedimento) - { + public function consultarProtocoloPk($idPrtocedimento) + { $idPrtocedimento = (int)$idPrtocedimento; $objProtocoloDTO = new ProtocoloDTO(); @@ -3267,35 +3210,33 @@ public function consultarProtocoloPk($idPrtocedimento) $objProtocoloDTO->Documentos = $this->consultaDocumentosProcesso($idPrtocedimento); return $objProtocoloDTO; - } + } - public function consultaDocumentosProcesso($idPrtocedimento) - { - $documentoRespArray = array(); + public function consultaDocumentosProcesso($idPrtocedimento) + { $documentoDTO = new DocumentoDTO(); $documentoDTO->setDblIdProcedimento($idPrtocedimento); $documentoDTO->retTodos(); - $documentoDTO = $this->objDocumentoRN->listarRN0008($documentoDTO); - return $documentoDTO; - } + return $this->objDocumentoRN->listarRN0008($documentoDTO); + } - private function consultarTramitesAnteriores($parStrNumeroRegistro) - { + private function consultarTramitesAnteriores($parStrNumeroRegistro) + { return isset($parStrNumeroRegistro) ? $this->objProcessoEletronicoRN->consultarTramites(null, $parStrNumeroRegistro) : null; - } + } - private function necessitaCancelamentoTramiteAnterior($parArrTramitesAnteriores) - { - if(!empty($parArrTramitesAnteriores) && is_array($parArrTramitesAnteriores)){ + private function necessitaCancelamentoTramiteAnterior($parArrTramitesAnteriores) + { + if(!empty($parArrTramitesAnteriores) && is_array($parArrTramitesAnteriores)) { $objUltimoTramite = $parArrTramitesAnteriores[count($parArrTramitesAnteriores) - 1]; - if($objUltimoTramite->situacaoAtual == ProcessoeletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO){ - return $objUltimoTramite; - } + if($objUltimoTramite->situacaoAtual == ProcessoeletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { + return $objUltimoTramite; } - return null; } + return null; + } /** @@ -3305,13 +3246,13 @@ private function necessitaCancelamentoTramiteAnterior($parArrTramitesAnteriores) * Devido a estrutura interna do SEI, no existe uma forma de reaproveitar as regras de montagem de tarjas * de forma individual, restando como ltima alternativa a reproduo das regras at que esta seja encapsulado pelo core do SEI * - * @param DocumentoDTO $objDocumentoDTO * @return array */ - protected function listarTarjasHTMLConectado(DocumentoDTO $objDocumentoDTO) { - try { + protected function listarTarjasHTMLConectado(DocumentoDTO $objDocumentoDTO) + { + try { - $arrResposta = array(); + $arrResposta = []; $objAssinaturaDTO = new AssinaturaDTO(); $objAssinaturaDTO->retStrNome(); @@ -3326,22 +3267,22 @@ protected function listarTarjasHTMLConectado(DocumentoDTO $objDocumentoDTO) { $arrObjAssinaturaDTO = $this->objAssinaturaRN->listarRN1323($objAssinaturaDTO); - if (count($arrObjAssinaturaDTO)) { - $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); - $objTarjaAssinaturaDTO->setBolExclusaoLogica(false); - $objTarjaAssinaturaDTO->retNumIdTarjaAssinatura(); - $objTarjaAssinaturaDTO->retStrStaTarjaAssinatura(); - $objTarjaAssinaturaDTO->retStrTexto(); - $objTarjaAssinaturaDTO->retStrLogo(); - $objTarjaAssinaturaDTO->setNumIdTarjaAssinatura(array_unique(InfraArray::converterArrInfraDTO($arrObjAssinaturaDTO, 'IdTarjaAssinatura')), InfraDTO::$OPER_IN); - - $objTarjaAssinaturaRN = new TarjaAssinaturaRN(); - $arrObjTarjaAssinaturaDTO = InfraArray::indexarArrInfraDTO($objTarjaAssinaturaRN->listar($objTarjaAssinaturaDTO), 'IdTarjaAssinatura'); - - foreach ($arrObjAssinaturaDTO as $objAssinaturaDTO) { - if (!isset($arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()])) { - throw new InfraException('Tarja associada com a assinatura "' . $objAssinaturaDTO->getNumIdAssinatura() . '" no encontrada.'); - } + if (count($arrObjAssinaturaDTO)) { + $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); + $objTarjaAssinaturaDTO->setBolExclusaoLogica(false); + $objTarjaAssinaturaDTO->retNumIdTarjaAssinatura(); + $objTarjaAssinaturaDTO->retStrStaTarjaAssinatura(); + $objTarjaAssinaturaDTO->retStrTexto(); + $objTarjaAssinaturaDTO->retStrLogo(); + $objTarjaAssinaturaDTO->setNumIdTarjaAssinatura(array_unique(InfraArray::converterArrInfraDTO($arrObjAssinaturaDTO, 'IdTarjaAssinatura')), InfraDTO::$OPER_IN); + + $objTarjaAssinaturaRN = new TarjaAssinaturaRN(); + $arrObjTarjaAssinaturaDTO = InfraArray::indexarArrInfraDTO($objTarjaAssinaturaRN->listar($objTarjaAssinaturaDTO), 'IdTarjaAssinatura'); + + foreach ($arrObjAssinaturaDTO as $objAssinaturaDTO) { + if (!isset($arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()])) { + throw new InfraException('Tarja associada com a assinatura "' . $objAssinaturaDTO->getNumIdAssinatura() . '" no encontrada.'); + } $objTarjaAutenticacaoDTOAplicavel = $arrObjTarjaAssinaturaDTO[$objAssinaturaDTO->getNumIdTarjaAssinatura()]; $strTarja = $objTarjaAutenticacaoDTOAplicavel->getStrTexto(); @@ -3355,47 +3296,47 @@ protected function listarTarjasHTMLConectado(DocumentoDTO $objDocumentoDTO) { $strTarja = preg_replace("/@numero_serie_certificado_digital@/s", $objAssinaturaDTO->getStrNumeroSerieCertificado(), $strTarja); $strTarja = preg_replace("/@tipo_conferencia@/s", InfraString::transformarCaixaBaixa($objDocumentoDTO->getStrDescricaoTipoConferencia()), $strTarja); $arrResposta[] = EditorRN::converterHTML($strTarja); - } + } - $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); - $objTarjaAssinaturaDTO->retStrTexto(); - $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura(TarjaAssinaturaRN::$TT_INSTRUCOES_VALIDACAO); + $objTarjaAssinaturaDTO = new TarjaAssinaturaDTO(); + $objTarjaAssinaturaDTO->retStrTexto(); + $objTarjaAssinaturaDTO->setStrStaTarjaAssinatura(TarjaAssinaturaRN::$TT_INSTRUCOES_VALIDACAO); - $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); + $objTarjaAssinaturaDTO = $objTarjaAssinaturaRN->consultar($objTarjaAssinaturaDTO); - if ($objTarjaAssinaturaDTO != null){ + if ($objTarjaAssinaturaDTO != null) { $strLinkAcessoExterno = ''; - if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@')!==false){ - $objEditorRN = new EditorRN(); - $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); - } + if (strpos($objTarjaAssinaturaDTO->getStrTexto(), '@link_acesso_externo_processo@')!==false) { + $objEditorRN = new EditorRN(); + $strLinkAcessoExterno = $objEditorRN->recuperarLinkAcessoExterno($objDocumentoDTO); + } $strTarja = $objTarjaAssinaturaDTO->getStrTexto(); $strTarja = preg_replace("/@qr_code@/s", '<img align="center" alt="QRCode Assinatura" title="QRCode Assinatura" src="data:image/png;base64,' . $objDocumentoDTO->getStrQrCodeAssinatura() . '" />', $strTarja); $strTarja = preg_replace("/@codigo_verificador@/s", $objDocumentoDTO->getStrProtocoloDocumentoFormatado(), $strTarja); $strTarja = preg_replace("/@crc_assinatura@/s", $objDocumentoDTO->getStrCrcAssinatura(), $strTarja); $strTarja = preg_replace("/@link_acesso_externo_processo@/s", $strLinkAcessoExterno, $strTarja); $arrResposta[] = EditorRN::converterHTML($strTarja); - } } + } return $arrResposta; - } catch (Exception $e) { + } catch (Exception $e) { throw new InfraException('Erro montando tarja de assinatura.', $e); - } } + } - public function setEventoEnvioMetadados(callable $callback) - { + public function setEventoEnvioMetadados(callable $callback) + { $this->fnEventoEnvioMetadados = $callback; - } + } - private function lancarEventoEnvioMetadados($parNumIdTramite) - { - if(isset($this->fnEventoEnvioMetadados)){ + private function lancarEventoEnvioMetadados($parNumIdTramite) + { + if(isset($this->fnEventoEnvioMetadados)) { $evento = $this->fnEventoEnvioMetadados; $evento($parNumIdTramite); - } } + } -} +} \ No newline at end of file diff --git a/src/rn/ModPenUtilsRN.php b/src/rn/ModPenUtilsRN.php index acb854bfd..8d5ab40c5 100755 --- a/src/rn/ModPenUtilsRN.php +++ b/src/rn/ModPenUtilsRN.php @@ -8,7 +8,7 @@ class ModPenUtilsRN extends InfraRN { protected function inicializarObjInfraIBanco() { - return BancoSEI::getInstance(); + return BancoSEI::getInstance(); } public static function obterUnidadeRecebimento() @@ -16,7 +16,7 @@ public static function obterUnidadeRecebimento() $objPenParametroRN = new PenParametroRN(); $numUnidadeRecebimentoProcessos = $objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); - if(empty($numUnidadeRecebimentoProcessos)){ + if(empty($numUnidadeRecebimentoProcessos)) { $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); $numUnidadeRecebimentoProcessos = $objInfraParametro->getValor('ID_UNIDADE_TESTE'); } diff --git a/src/rn/PENAgendamentoRN.php b/src/rn/PENAgendamentoRN.php index 634c16473..39e891a88 100755 --- a/src/rn/PENAgendamentoRN.php +++ b/src/rn/PENAgendamentoRN.php @@ -4,15 +4,16 @@ class PENAgendamentoRN extends InfraRN { - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } /** * Atualizao das hipteses legais vindas do barramento + * * @throws InfraException */ - protected function atualizarHipotesesLegaisControlado() { try { @@ -21,17 +22,17 @@ protected function atualizarHipotesesLegaisControlado() $hipotesesPen = $processoEletronicoRN->consultarHipotesesLegais(); $hipotesesPenDesativadas = $processoEletronicoRN->consultarHipotesesLegais(false); - $hipoteses = array(); - if (!empty($hipotesesPen) && !empty($hipotesesPen->hipotesesLegais) && !empty($hipotesesPen->hipotesesLegais->hipotese)) { - $hipoteses = $hipotesesPen->hipotesesLegais->hipotese; + $hipoteses = []; + if (!empty($hipotesesPen) && !empty($hipotesesPen->hipotesesLegais)) { + $hipoteses = $hipotesesPen->hipotesesLegais; } - if (!empty($hipotesesPenDesativadas) && !empty($hipotesesPenDesativadas->hipotesesLegais) && !empty($hipotesesPenDesativadas->hipotesesLegais->hipotese)) { - $hipoteses = array_merge($hipoteses, $hipotesesPenDesativadas->hipotesesLegais->hipotese); + if (!empty($hipotesesPenDesativadas) && !empty($hipotesesPenDesativadas->hipotesesLegais)) { + $hipoteses = array_merge($hipoteses, $hipotesesPenDesativadas->hipotesesLegais); } - if(empty($hipoteses)){ - throw new InfraException('No foi possvel obter as hipteses legais dos servios de integrao'); + if(empty($hipoteses)) { + throw new InfraException('No foi possvel obter as hipteses legais dos servios de integrao'); } //Para cada hiptese vinda do PEN ser verificado a existencia. @@ -46,7 +47,7 @@ protected function atualizarHipotesesLegaisControlado() //Caso no haja um nome para a hiptese legal, ele pula para a prxima. if (empty($hipotese->nome)) { - continue; + continue; } $objDTO->setStrNome(mb_convert_encoding($hipotese->nome, 'ISO-8859-1', 'UTF-8')); @@ -59,7 +60,6 @@ protected function atualizarHipotesesLegaisControlado() //Caso no exista a hiptese ir cadastra-la no sei. if (empty($objConsulta)) { - $objBD->cadastrar($objDTO); } else { //Caso contrrio apenas ir atualizar os dados. @@ -109,14 +109,14 @@ protected function atualizarEspeciesDocumentaisControlado() $objEspecieDocumentalDTO = new EspecieDocumentalDTO(); $objEspecieDocumentalDTO->setDblIdEspecie($numIdEspecie); - if($bolExisteBarramento && !$bolExisteBaseDados){ + if($bolExisteBarramento && !$bolExisteBaseDados) { // Caso a espcie documental EXISTA no Barramento do PEN mas no exista no SEI, necessrio fazer o seu cadastramento if ($objGenericoBD->contar($objEspecieDocumentalDTO) == 0) { $objEspecieDocumentalDTO->setDblIdEspecie($numIdEspecie); $objEspecieDocumentalDTO->setStrNomeEspecie($strNomeEspecie); $objGenericoBD->cadastrar($objEspecieDocumentalDTO); } - } elseif(!$bolExisteBarramento && $bolExisteBaseDados){ + } elseif(!$bolExisteBarramento && $bolExisteBaseDados) { // Caso a espcie documental NO exista no Barramento do PEN mas exista no SEI, necessrio fazer a sua desativao if ($objGenericoBD->contar($objEspecieDocumentalDTO) > 0) { // Remove mapeamentos de Tipos de Documentos para Envio vinculados ao cdigo de espcie @@ -150,6 +150,7 @@ protected function atualizarEspeciesDocumentaisControlado() /** * Atualizao de dados do Barramento de Servios do PEN para utilizao pelo SEI nas configuraes + * * @throws InfraException */ protected function atualizarInformacoesPENControlado() @@ -160,7 +161,7 @@ protected function atualizarInformacoesPENControlado() InfraDebug::getInstance()->limpar(); try { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { return false; } @@ -197,7 +198,7 @@ public function processarTarefasRecebimentoPEN($arrParametros) InfraDebug::getInstance()->limpar(); try { - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { return false; } @@ -214,8 +215,8 @@ public function processarTarefasRecebimentoPEN($arrParametros) $bolExecutarEmSegundoPlano = !empty(trim(@$arrObjGearman["Servidor"] ?: null)); // Inicializa workers do Gearman caso este componente esteja configurado e no desativado no agendamento do sistema - if($bolAtivaWorker && $bolExecutarEmSegundoPlano){ - ProcessarPendenciasRN::inicializarWorkers($numValorWorkers); + if($bolAtivaWorker && $bolExecutarEmSegundoPlano) { + ProcessarPendenciasRN::inicializarWorkers($numValorWorkers); } // Faz uma requisio para o controlador do sistema @@ -230,49 +231,49 @@ public function processarTarefasRecebimentoPEN($arrParametros) } } - /** - * Processa tarefas recebidas pelo Barramento de Servios do PEN para receber novos processos/documentos, - * notificaes de concluso de trmites ou notificao de recusa de processos - * - * @return void - */ + /** + * Processa tarefas recebidas pelo Barramento de Servios do PEN para receber novos processos/documentos, + * notificaes de concluso de trmites ou notificao de recusa de processos + * + * @return void + */ public function processarTarefasEnvioPEN($arrParametros) - { - InfraDebug::getInstance()->setBolLigado(true); - InfraDebug::getInstance()->setBolDebugInfra(false); - InfraDebug::getInstance()->setBolEcho(false); - InfraDebug::getInstance()->limpar(); + { + InfraDebug::getInstance()->setBolLigado(true); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + InfraDebug::getInstance()->limpar(); try { if (!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { return false; } - $bolDebugAtivo = array_key_exists('debug', $arrParametros) && $arrParametros['debug'][0] != false; - $bolMonitoramentoAtivado = array_key_exists('monitorar', $arrParametros) && $arrParametros['monitorar'][0] != false; - $strValorWorkers = array_key_exists('workers', $arrParametros) ? $arrParametros['workers'][0] : null; - $strValorWorkers = (is_null($strValorWorkers) && array_key_exists('worker', $arrParametros)) ? $arrParametros['worker'][0] : $strValorWorkers; - $numValorWorkers = is_numeric($strValorWorkers) ? intval($strValorWorkers) : null; - $bolForcarInicializacaoWorkers = array_key_exists('forcarInicializacaoWorkers', $arrParametros) && $arrParametros['forcarInicializacaoWorkers'][0] == true; - $bolAtivaWorker = (is_null($numValorWorkers) || $numValorWorkers > 0) && ($this->foiIniciadoPeloTerminal() || $bolForcarInicializacaoWorkers); + $bolDebugAtivo = array_key_exists('debug', $arrParametros) && $arrParametros['debug'][0] != false; + $bolMonitoramentoAtivado = array_key_exists('monitorar', $arrParametros) && $arrParametros['monitorar'][0] != false; + $strValorWorkers = array_key_exists('workers', $arrParametros) ? $arrParametros['workers'][0] : null; + $strValorWorkers = (is_null($strValorWorkers) && array_key_exists('worker', $arrParametros)) ? $arrParametros['worker'][0] : $strValorWorkers; + $numValorWorkers = is_numeric($strValorWorkers) ? intval($strValorWorkers) : null; + $bolForcarInicializacaoWorkers = array_key_exists('forcarInicializacaoWorkers', $arrParametros) && $arrParametros['forcarInicializacaoWorkers'][0] == true; + $bolAtivaWorker = (is_null($numValorWorkers) || $numValorWorkers > 0) && ($this->foiIniciadoPeloTerminal() || $bolForcarInicializacaoWorkers); - $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); - $arrObjGearman = $objConfiguracaoModPEN->getValor("PEN", "Gearman", false); - $bolExecutarEmSegundoPlano = !empty(trim(@$arrObjGearman["Servidor"] ?: null)); + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $arrObjGearman = $objConfiguracaoModPEN->getValor("PEN", "Gearman", false); + $bolExecutarEmSegundoPlano = !empty(trim(@$arrObjGearman["Servidor"] ?: null)); - // Inicializa workers do Gearman caso este componente esteja configurado e no desativado no agendamento do sistema + // Inicializa workers do Gearman caso este componente esteja configurado e no desativado no agendamento do sistema if ($bolAtivaWorker && $bolExecutarEmSegundoPlano) { - ProcessarPendenciasRN::inicializarWorkers($numValorWorkers); + ProcessarPendenciasRN::inicializarWorkers($numValorWorkers); } - // Faz uma requisio para o controlador do sistema - PendenciasEnvioTramiteRN::inicializarMonitoramentoEnvioPendencias($numValorWorkers, $bolMonitoramentoAtivado, $bolExecutarEmSegundoPlano, $bolDebugAtivo); + // Faz uma requisio para o controlador do sistema + PendenciasEnvioTramiteRN::inicializarMonitoramentoEnvioPendencias($numValorWorkers, $bolMonitoramentoAtivado, $bolExecutarEmSegundoPlano, $bolDebugAtivo); } catch (Exception $e) { - InfraDebug::getInstance()->setBolLigado(false); - InfraDebug::getInstance()->setBolDebugInfra(false); - InfraDebug::getInstance()->setBolEcho(false); + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); - throw new InfraException('Erro processando pendncias de trmites do Barramento de Servios do PEN.', $e); + throw new InfraException('Erro processando pendncias de trmites do Barramento de Servios do PEN.', $e); } } diff --git a/src/rn/PenAtividadeRN.php b/src/rn/PenAtividadeRN.php index 7cafe6eeb..ec7ebebae 100755 --- a/src/rn/PenAtividadeRN.php +++ b/src/rn/PenAtividadeRN.php @@ -7,28 +7,24 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class PenAtividadeRN extends AtividadeRN { +class PenAtividadeRN extends AtividadeRN +{ - private $statusPesquisa = true; - - public function setStatusPesquisa($statusPesquisa) { - - $this->statusPesquisa = $statusPesquisa; + public function setStatusPesquisa($statusPesquisa) + { } /** * Retorna a atividade da ao do tramite, ou seja, se estava enviando * ou recebendo um tramite * - * @param int $numIdTramite + * @param int $numIdTramite * @return object (bool bolReciboExiste, string mensagem) */ - public static function retornaAtividadeDoTramiteFormatado($numIdTramite, $numIdEstrutura, $numIdTarefa){ + public static function retornaAtividadeDoTramiteFormatado($numIdTramite, $numIdEstrutura, $numIdTarefa) + { - $objReturn = (object)array( - 'strMensagem' => '', - 'bolReciboExiste' => false - ); + $objReturn = (object)['strMensagem' => '', 'bolReciboExiste' => false]; $objBancoSEI = BancoSEI::getInstance(); @@ -39,31 +35,31 @@ public static function retornaAtividadeDoTramiteFormatado($numIdTramite, $numIdE $objTramiteBD = new TramiteBD($objBancoSEI); $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - if(!empty($objTramiteDTO)) { + if(!empty($objTramiteDTO)) { - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoDTO->setStrNumeroRegistro($objTramiteDTO->getStrNumeroRegistro()); - $objProcessoEletronicoDTO->retDblIdProcedimento(); + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); + $objProcessoEletronicoDTO->setStrNumeroRegistro($objTramiteDTO->getStrNumeroRegistro()); + $objProcessoEletronicoDTO->retDblIdProcedimento(); - $objProcessoEletronicoDB = new ProcessoEletronicoBD($objBancoSEI); - $objProcessoEletronicoDTO = $objProcessoEletronicoDB->consultar($objProcessoEletronicoDTO); + $objProcessoEletronicoDB = new ProcessoEletronicoBD($objBancoSEI); + $objProcessoEletronicoDTO = $objProcessoEletronicoDB->consultar($objProcessoEletronicoDTO); - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); - $objAtividadeDTO->setNumIdTarefa($numIdTarefa); - $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); + $objAtividadeDTO->setNumIdTarefa($numIdTarefa); + $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeBD = new AtividadeBD($objBancoSEI); - $arrObjAtividadeDTO = $objAtividadeBD->listar($objAtividadeDTO); + $objAtividadeBD = new AtividadeBD($objBancoSEI); + $arrObjAtividadeDTO = $objAtividadeBD->listar($objAtividadeDTO); - if(!empty($arrObjAtividadeDTO)) { + if(!empty($arrObjAtividadeDTO)) { - $arrNumAtividade = InfraArray::converterArrInfraDTO($arrObjAtividadeDTO, 'IdAtividade', 'IdAtividade'); + $arrNumAtividade = InfraArray::converterArrInfraDTO($arrObjAtividadeDTO, 'IdAtividade', 'IdAtividade'); - switch($numIdTarefa){ - case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): + switch($numIdTarefa){ + case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): $strMensagem = 'Trmite externo do Processo %s para %s'; $strNome = 'UNIDADE_DESTINO'; @@ -72,53 +68,53 @@ public static function retornaAtividadeDoTramiteFormatado($numIdTramite, $numIdE $objReciboTramiteDTO->retNumIdTramite(); $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objBancoSEI); $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; - break; + break; - case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO): - $strMensagem = 'Recebimento do Documento %s remetido por %s'; - $strNome = 'ENTIDADE_ORIGEM'; + case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO): + $strMensagem = 'Recebimento do Documento %s remetido por %s'; + $strNome = 'ENTIDADE_ORIGEM'; - $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO(); - $objReciboTramiteDTO->setNumIdTramite($numIdTramite); - $objReciboTramiteBD = new ReciboTramiteBD($objBancoSEI); - $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; - break; + $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO(); + $objReciboTramiteDTO->setNumIdTramite($numIdTramite); + $objReciboTramiteBD = new ReciboTramiteBD($objBancoSEI); + $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; + break; - case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO): - $strMensagem = 'Recebimento do Processo %s remetido por %s'; - $strNome = 'ENTIDADE_ORIGEM'; + case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO): + $strMensagem = 'Recebimento do Processo %s remetido por %s'; + $strNome = 'ENTIDADE_ORIGEM'; - $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO(); - $objReciboTramiteDTO->setNumIdTramite($numIdTramite); + $objReciboTramiteDTO = new ReciboTramiteRecebidoDTO(); + $objReciboTramiteDTO->setNumIdTramite($numIdTramite); - $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objBancoSEI); - $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; - break; + $objReciboTramiteBD = new ReciboTramiteRecebidoBD($objBancoSEI); + $objReturn->bolReciboExiste = ($objReciboTramiteBD->contar($objReciboTramiteDTO) > 0) ? true : false; + break; - default: - throw new Exception("IDTarefa: numIdTarefa"); - } + default: + throw new Exception("IDTarefa: numIdTarefa"); + } - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setNumIdAtividade($arrNumAtividade, InfraDTO::$OPER_IN); - $objAtributoAndamentoDTO->setStrNome($strNome); - $objAtributoAndamentoDTO->setStrIdOrigem($numIdEstrutura); - $objAtributoAndamentoDTO->retStrValor(); + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setNumIdAtividade($arrNumAtividade, InfraDTO::$OPER_IN); + $objAtributoAndamentoDTO->setStrNome($strNome); + $objAtributoAndamentoDTO->setStrIdOrigem($numIdEstrutura); + $objAtributoAndamentoDTO->retStrValor(); - $objAtributoAndamentoBD = new AtributoAndamentoBD($objBancoSEI); - $arrAtributoAndamentoDTO = $objAtributoAndamentoBD->listar($objAtributoAndamentoDTO); + $objAtributoAndamentoBD = new AtributoAndamentoBD($objBancoSEI); + $arrAtributoAndamentoDTO = $objAtributoAndamentoBD->listar($objAtributoAndamentoDTO); - $objAtributoAndamentoDTO = $arrAtributoAndamentoDTO[0]; + $objAtributoAndamentoDTO = $arrAtributoAndamentoDTO[0]; - $obProtocoloDTO = new ProtocoloDTO(); - $obProtocoloDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); - $obProtocoloDTO->retStrProtocoloFormatado(); + $obProtocoloDTO = new ProtocoloDTO(); + $obProtocoloDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); + $obProtocoloDTO->retStrProtocoloFormatado(); - $objProtocoloBD = new ProtocoloBD($objBancoSEI); - $obProtocoloDTO = $objProtocoloBD->consultar($obProtocoloDTO); - $objReturn->strMensagem = sprintf($strMensagem, $obProtocoloDTO->getStrProtocoloFormatado(), $objAtributoAndamentoDTO->getStrValor()); - } + $objProtocoloBD = new ProtocoloBD($objBancoSEI); + $obProtocoloDTO = $objProtocoloBD->consultar($obProtocoloDTO); + $objReturn->strMensagem = sprintf($strMensagem, $obProtocoloDTO->getStrProtocoloFormatado(), $objAtributoAndamentoDTO->getStrValor()); } + } return $objReturn; } diff --git a/src/rn/PenAtualizadorRN.php b/src/rn/PenAtualizadorRN.php index e7cdbcaa4..2902fc545 100755 --- a/src/rn/PenAtualizadorRN.php +++ b/src/rn/PenAtualizadorRN.php @@ -2,10 +2,9 @@ /** * Atualizador abstrato para sistema do SEI para instalar/atualizar o mdulo PEN - * - * */ -abstract class PenAtualizadorRN extends InfraRN { +abstract class PenAtualizadorRN extends InfraRN +{ protected $sei_versao; @@ -36,7 +35,8 @@ abstract class PenAtualizadorRN extends InfraRN { protected $objInfraBanco ; - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { if (empty($this->objInfraBanco)) { $this->objInfraBanco = BancoSEI::getInstance(); @@ -49,7 +49,8 @@ protected function inicializarObjInfraIBanco() { /** * Inicia a conexo com o banco de dados */ - protected function inicializarObjMetaBanco() { + protected function inicializarObjMetaBanco() + { if (empty($this->objMeta)) { $this->objMeta = new PenMetaBD($this->inicializarObjInfraIBanco()); } @@ -58,19 +59,17 @@ protected function inicializarObjMetaBanco() { /** * Adiciona uma mensagem ao output para o usurio - * - * @return null */ - protected function logar($strMsg) { + protected function logar($strMsg) + { $this->objDebug->gravar($strMsg); } /** * Inicia o script criando um contator interno do tempo de execuo - * - * @return null */ - protected function inicializar($strTitulo) { + protected function inicializar($strTitulo) + { $this->numSeg = InfraUtil::verificarTempoProcessamento(); @@ -79,19 +78,18 @@ protected function inicializar($strTitulo) { /** * Finaliza o script informando o tempo de execuo. - * - * @return null */ - protected function finalizar($strMsg = null, $bolErro = false){ + protected function finalizar($strMsg = null, $bolErro = false) + { if (!$bolErro) { - $this->numSeg = InfraUtil::verificarTempoProcessamento($this->numSeg); - $this->logar('TEMPO TOTAL DE EXECUCAO: ' . $this->numSeg . ' s'); + $this->numSeg = InfraUtil::verificarTempoProcessamento($this->numSeg); + $this->logar('TEMPO TOTAL DE EXECUCAO: ' . $this->numSeg . ' s'); }else{ - $strMsg = 'ERRO: '.$strMsg; + $strMsg = 'ERRO: '.$strMsg; } - if ($strMsg!=null){ - $this->logar($strMsg); + if ($strMsg!=null) { + $this->logar($strMsg); } InfraDebug::getInstance()->setBolLigado(false); @@ -105,7 +103,8 @@ protected function finalizar($strMsg = null, $bolErro = false){ * * @param array $arrArgs Argumentos enviados pelo script */ - public function __construct() { + public function __construct() + { parent::__construct(); ini_set('max_execution_time', '0'); diff --git a/src/rn/PenBlocoProcessoRN.php b/src/rn/PenBlocoProcessoRN.php index 30d1c0046..dff83eae1 100755 --- a/src/rn/PenBlocoProcessoRN.php +++ b/src/rn/PenBlocoProcessoRN.php @@ -7,63 +7,62 @@ */ class PenBlocoProcessoRN extends InfraRN { - /** - * Inicializa o obj do banco da Infra - * @return obj - */ + /** + * Inicializa o obj do banco da Infra + * + * @return obj + */ protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } - /** - * Verifica se o bloco pode ser excludo - * - * @param array $arrObjDTO - * @return string|null - */ + /** + * Verifica se o bloco pode ser excludo + * + * @return string|null + */ public function verificarExclusaoBloco(array $arrObjDTO) - { - $podeExcluir = true; - $messagem = "Existem protocolos em andamento que no pode ser excludos."; + { + $podeExcluir = true; + $messagem = "Existem protocolos em andamento que no pode ser excludos."; foreach ($arrObjDTO as $objPenBlocoProcessoDTO) { - $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcessoDTO->retNumIdAndamento(); - $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); - $objPenBlocoProcessoDTO->setNumMaxRegistrosRetorno(1); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->retNumIdAndamento(); + $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); + $objPenBlocoProcessoDTO->setNumMaxRegistrosRetorno(1); - $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - $objPenBlocoProcessoDTO = $objPenBlocoProcessoBD->consultar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + $objPenBlocoProcessoDTO = $objPenBlocoProcessoBD->consultar($objPenBlocoProcessoDTO); - if ( - $objPenBlocoProcessoDTO != null - && $objPenBlocoProcessoDTO->getNumIdAndamento() !== null - ) { + if ($objPenBlocoProcessoDTO != null + && $objPenBlocoProcessoDTO->getNumIdAndamento() !== null + ) { $messagem .= "\n - {$objPenBlocoProcessoDTO->getStrProtocoloFormatadoProtocolo()}"; $podeExcluir = false; } } if (!$podeExcluir) { - return $messagem; + return $messagem; } - return null; + return null; } protected function obterPendenciasBlocoControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) - { + { try { - //Valida PermissoTipo - SessaoSEI::getInstance()->validarAuditarPermissao('pen_expedir_bloco', __METHOD__, $objPenBlocoProcessoDTO); + //Valida PermissoTipo + SessaoSEI::getInstance()->validarAuditarPermissao('pen_expedir_bloco', __METHOD__, $objPenBlocoProcessoDTO); - //Obter todos os processos pendentes antes de iniciar o monitoramento - $arrObjPendenciasBlocoDTO = $this->listar($objPenBlocoProcessoDTO) ?: array(); - shuffle($arrObjPendenciasBlocoDTO); + //Obter todos os processos pendentes antes de iniciar o monitoramento + $arrObjPendenciasBlocoDTO = $this->listar($objPenBlocoProcessoDTO) ?: []; + shuffle($arrObjPendenciasBlocoDTO); - $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); foreach ($arrObjPendenciasBlocoDTO as $objPendenciasBlocoDTO) { //Captura todas as pendncias e status retornadas para impedir duplicidade $arrPendenciasBlocoRetornadas[] = sprintf("%d-%s", $objPendenciasBlocoDTO->getDblIdProtocolo(), $objPendenciasBlocoDTO->getNumIdAndamento()); @@ -74,19 +73,19 @@ protected function obterPendenciasBlocoControlado(PenBlocoProcessoDTO $objPenBlo yield $objPendenciasBlocoDTO; } } catch (\Exception $e) { - throw new InfraException('Falha em obter pendncias de trmite de processos em bloco.', $e); + throw new InfraException('Falha em obter pendncias de trmite de processos em bloco.', $e); } } protected function desbloquearProcessoBlocoControlado($dblIdProcedimento) - { + { try { - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->retTodos(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); - $objPenBlocoProcessoDTO->setNumIdAndamento(array(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO), InfraDTO::$OPER_IN); + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retTodos(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($dblIdProcedimento); + $objPenBlocoProcessoDTO->setNumIdAndamento([ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO], InfraDTO::$OPER_IN); - $objPenBlocoProcessoDTO = $this->consultar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoDTO = $this->consultar($objPenBlocoProcessoDTO); if (!is_null($objPenBlocoProcessoDTO)) { $objPenBlocoProcessoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO); @@ -97,75 +96,74 @@ protected function desbloquearProcessoBlocoControlado($dblIdProcedimento) $this->atualizarEstadoDoBloco($idBloco); } - //Desbloqueia o processo - $objProtocoloRN = new ProtocoloRN(); - $objProtocoloDTO = new ProtocoloDTO(); - $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_NORMAL); - $objProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); - $objProtocoloRN->alterarRN0203($objProtocoloDTO); - - //Cria o Objeto que registrar a Atividade de cancelamento - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); - $objAtividadeDTO->setNumIdUnidade($objPenBlocoProcessoDTO->getNumIdUnidade()); - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO)); - - //Seta os atributos do tamplate de descrio dessa atividade - $objAtributoAndamentoDTOHora = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTOHora->setStrNome('DATA_HORA'); - $objAtributoAndamentoDTOHora->setStrIdOrigem(null); - $objAtributoAndamentoDTOHora->setStrValor(date('d/m/Y H:i')); - - $objUsuarioDTO = new UsuarioDTO(); - $objUsuarioDTO->setNumIdUsuario($objPenBlocoProcessoDTO->getNumIdUsuario()); - $objUsuarioDTO->setBolExclusaoLogica(false); - $objUsuarioDTO->retStrNome(); - - $objUsuarioRN = new UsuarioRN(); - $objUsuario = $objUsuarioRN->consultarRN0489($objUsuarioDTO); - - $objAtributoAndamentoDTOUser = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTOUser->setStrNome('USUARIO'); - $objAtributoAndamentoDTOUser->setStrIdOrigem(null); - $objAtributoAndamentoDTOUser->setStrValor($objUsuario->getStrNome()); - - $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array($objAtributoAndamentoDTOHora, $objAtributoAndamentoDTOUser)); - - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + //Desbloqueia o processo + $objProtocoloRN = new ProtocoloRN(); + $objProtocoloDTO = new ProtocoloDTO(); + $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_NORMAL); + $objProtocoloDTO->setDblIdProtocolo($dblIdProcedimento); + $objProtocoloRN->alterarRN0203($objProtocoloDTO); + + //Cria o Objeto que registrar a Atividade de cancelamento + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($dblIdProcedimento); + $objAtividadeDTO->setNumIdUnidade($objPenBlocoProcessoDTO->getNumIdUnidade()); + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO)); + + //Seta os atributos do tamplate de descrio dessa atividade + $objAtributoAndamentoDTOHora = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOHora->setStrNome('DATA_HORA'); + $objAtributoAndamentoDTOHora->setStrIdOrigem(null); + $objAtributoAndamentoDTOHora->setStrValor(date('d/m/Y H:i')); + + $objUsuarioDTO = new UsuarioDTO(); + $objUsuarioDTO->setNumIdUsuario($objPenBlocoProcessoDTO->getNumIdUsuario()); + $objUsuarioDTO->setBolExclusaoLogica(false); + $objUsuarioDTO->retStrNome(); + + $objUsuarioRN = new UsuarioRN(); + $objUsuario = $objUsuarioRN->consultarRN0489($objUsuarioDTO); + + $objAtributoAndamentoDTOUser = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOUser->setStrNome('USUARIO'); + $objAtributoAndamentoDTOUser->setStrIdOrigem(null); + $objAtributoAndamentoDTOUser->setStrValor($objUsuario->getStrNome()); + + $objAtividadeDTO->setArrObjAtributoAndamentoDTO([$objAtributoAndamentoDTOHora, $objAtributoAndamentoDTOUser]); + + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); } catch (\Exception $e) { - throw new InfraException('Falha em obter pendncias de trmite de processos em bloco.', $e); + throw new InfraException('Falha em obter pendncias de trmite de processos em bloco.', $e); } } - /** - * Registra a tentativa de trmite do processo em bloco para posterior verificao de estouro do limite de envios - * - * @param PenBlocoProcessoDTO $objPenBlocoProcessoDTO - * @return void - */ + /** + * Registra a tentativa de trmite do processo em bloco para posterior verificao de estouro do limite de envios + * + * @return void + */ protected function registrarTentativaEnvioControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) - { - $numTentativas = $objPenBlocoProcessoDTO->getNumTentativas() ?: 0; - $numTentativas += 1; + { + $numTentativas = $objPenBlocoProcessoDTO->getNumTentativas() ?: 0; + $numTentativas += 1; - $objPenBlocoProcessoDTO->setNumTentativas($numTentativas); - $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - $objPenBlocoProcessoBD->alterar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoDTO->setNumTentativas($numTentativas); + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + $objPenBlocoProcessoBD->alterar($objPenBlocoProcessoDTO); } protected function listarProtocolosBlocoConectado(PenBlocoProcessoDTO $parObjTramitaEmBlocoProtocoloDTO) - { + { try { - $ret = array(); + $ret = []; - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $parObjTramitaEmBlocoProtocoloDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $parObjTramitaEmBlocoProtocoloDTO); - $parObjRelBlocoProtocoloDTO = InfraString::prepararPesquisaDTO($parObjTramitaEmBlocoProtocoloDTO, "PalavrasPesquisa", "ProtocoloFormatadoProtocolo"); - $parObjRelBlocoProtocoloDTO->setStrStaNivelAcessoGlobalProtocolo(ProtocoloRN::$NA_SIGILOSO, InfraDTO::$OPER_DIFERENTE); - $arrObjRelProtocoloBlocoDTO = $this->listar($parObjRelBlocoProtocoloDTO); + $parObjRelBlocoProtocoloDTO = InfraString::prepararPesquisaDTO($parObjTramitaEmBlocoProtocoloDTO, "PalavrasPesquisa", "ProtocoloFormatadoProtocolo"); + $parObjRelBlocoProtocoloDTO->setStrStaNivelAcessoGlobalProtocolo(ProtocoloRN::$NA_SIGILOSO, InfraDTO::$OPER_DIFERENTE); + $arrObjRelProtocoloBlocoDTO = $this->listar($parObjRelBlocoProtocoloDTO); foreach ($arrObjRelProtocoloBlocoDTO as $dto) { @@ -178,9 +176,9 @@ protected function listarProtocolosBlocoConectado(PenBlocoProcessoDTO $parObjTra $objPenProtocoloDTO = $objProtocoloBD->consultar($objPenProtocoloDTO); if (!empty($objPenProtocoloDTO)) { - $dto->setStrSinObteveRecusa($objPenProtocoloDTO->getStrSinObteveRecusa()); + $dto->setStrSinObteveRecusa($objPenProtocoloDTO->getStrSinObteveRecusa()); } else { - $dto->setStrSinObteveRecusa('N'); + $dto->setStrSinObteveRecusa('N'); } $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); @@ -192,21 +190,23 @@ protected function listarProtocolosBlocoConectado(PenBlocoProcessoDTO $parObjTra $blocoResultado = $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); if (!empty($blocoResultado)) { - $dto->setStrStaEstadoBloco($blocoResultado->getStrStaEstado()); + $dto->setStrStaEstadoBloco($blocoResultado->getStrStaEstado()); } else { - $dto->setStrStaEstadoBloco('A'); + $dto->setStrStaEstadoBloco('A'); } $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo($dto->getDblIdProtocolo()); - $objAtividadeDTO->setNumIdTarefa([ - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO), - ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO) - ], InfraDTO::$OPER_IN); + $objAtividadeDTO->setNumIdTarefa( + [ + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_CANCELADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO), + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO) + ], InfraDTO::$OPER_IN + ); $objAtividadeDTO->setOrdDthAbertura(InfraDTO::$TIPO_ORDENACAO_DESC); $objAtividadeDTO->setNumMaxRegistrosRetorno(1); $objAtividadeDTO->retNumIdAtividade(); @@ -218,56 +218,56 @@ protected function listarProtocolosBlocoConectado(PenBlocoProcessoDTO $parObjTra if (!empty($arrObjAtividadeDTO) && $arrObjAtividadeDTO[0]->getNumIdTarefa() != null) { $dto->setNumStaIdTarefa($arrObjAtividadeDTO[0]->getNumIdTarefa()); } else { - $dto->setNumStaIdTarefa(0); + $dto->setNumStaIdTarefa(0); } $ret[] = $dto; } - return $ret; + return $ret; } catch (Exception $e) { - throw new InfraException('Erro listando protocolos do bloco.', $e); + throw new InfraException('Erro listando protocolos do bloco.', $e); } } protected function consultarConectado(PenBlocoProcessoDTO $objDTO) - { + { try { - $objTramitaEmBlocoProtocoloBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - return $objTramitaEmBlocoProtocoloBD->consultar($objDTO); + $objTramitaEmBlocoProtocoloBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); + return $objTramitaEmBlocoProtocoloBD->consultar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro consutando blocos.', $e); + throw new InfraException('Erro consutando blocos.', $e); } } - /** - * Mtodo utilizado para excluso de dados. - * @param TramitaEmBlocoProtocoloDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para excluso de dados. + * + * @param TramitaEmBlocoProtocoloDTO $objDTO + * @return array + * @throws InfraException + */ protected function listarControlado(PenBlocoProcessoDTO $objDTO) - { + { try { - //Valida Permisso - SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $objDTO); + //Valida Permisso + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_listar', __METHOD__, $objDTO); - $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoBD->listar($objDTO); + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - return $arrObjPenBlocoProcessoDTO; + return $objPenBlocoProcessoBD->listar($objDTO); } catch (\Exception $e) { - throw new InfraException('Falha na listagem de pendncias de trmite de processos em bloco.', $e); + throw new InfraException('Falha na listagem de pendncias de trmite de processos em bloco.', $e); } } protected function excluirControlado(array $arrayObjDTO) - { + { try { - //Valida Permisso - SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_excluir', __METHOD__, $arrayObjDTO); + //Valida Permisso + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramita_em_bloco_protocolo_excluir', __METHOD__, $arrayObjDTO); - $arrExcluido = array(); + $arrExcluido = []; foreach ($arrayObjDTO as $objDTO) { @@ -283,8 +283,8 @@ protected function excluirControlado(array $arrayObjDTO) $tramiteEmBloco = $tramiteEmBlocoRN->consultar($tramiteEmBlocoDTO); if ($tramiteEmBloco != null) { - $arrayExcluido[] = $objBD->excluir($objDTO); - continue; + $arrayExcluido[] = $objBD->excluir($objDTO); + continue; } $objPenProtocoloDTO = new PenBlocoProcessoDTO(); @@ -297,96 +297,89 @@ protected function excluirControlado(array $arrayObjDTO) $objPenProtocoloDTO = $this->consultar($objPenProtocoloDTO); if ($objPenProtocoloDTO != null && $objPenProtocoloDTO->getNumIdAndamento() === null) { - $arrExcluido[] = $objBD->excluir($objDTO); - continue; + $arrExcluido[] = $objBD->excluir($objDTO); + continue; } } - return $arrExcluido; + return $arrExcluido; } catch (Exception $e) { - throw new InfraException('Erro excluindo Bloco.', $e); + throw new InfraException('Erro excluindo Bloco.', $e); } } protected function montarIndexacaoControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) - { + { try { - $dto = new PenBlocoProcessoDTO(); - $dto->retNumIdBlocoProcesso(); + $dto = new PenBlocoProcessoDTO(); + $dto->retNumIdBlocoProcesso(); if (is_array($objPenBlocoProcessoDTO->getNumIdBlocoProcesso())) { $dto->setNumIdBlocoProcesso($objPenBlocoProcessoDTO->getNumIdBlocoProcesso(), InfraDTO::$OPER_IN); } else { - $dto->setNumIdBlocoProcesso($objPenBlocoProcessoDTO->getNumIdBlocoProcesso()); + $dto->setNumIdBlocoProcesso($objPenBlocoProcessoDTO->getNumIdBlocoProcesso()); } - $objPenBlocoProcessoDTOIdx = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTOIdx = new PenBlocoProcessoDTO(); - $arrObjPenBlocoProcessoDTO = $this->listar($dto); + $arrObjPenBlocoProcessoDTO = $this->listar($dto); foreach ($arrObjPenBlocoProcessoDTO as $dto) { - $objPenBlocoProcessoDTOIdx->setNumBlocoProcesso($dto->getNumIdBlocoProcesso()); + $objPenBlocoProcessoDTOIdx->setNumBlocoProcesso($dto->getNumIdBlocoProcesso()); } } catch (Exception $e) { - throw new InfraException('Erro montando indexao de processos em bloco.', $e); + throw new InfraException('Erro montando indexao de processos em bloco.', $e); } } protected function cadastrarControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_cadastrar', __METHOD__, $objPenBlocoProcessoDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_cadastrar', __METHOD__, $objPenBlocoProcessoDTO); - //Regras de Negocio - $objInfraException = new InfraException(); + //Regras de Negocio + $objInfraException = new InfraException(); - $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - $ret = $objPenBlocoProcessoBD->cadastrar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - return $ret; + return $objPenBlocoProcessoBD->cadastrar($objPenBlocoProcessoDTO); } catch (Exception $e) { - throw new InfraException('Erro cadastrando Processo em Bloco.', $e); + throw new InfraException('Erro cadastrando Processo em Bloco.', $e); } } protected function alterarControlado(PenBlocoProcessoDTO $objPenBlocoProcessoDTO) - { + { try { - $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - $ret = $objPenBlocoProcessoBD->alterar($objPenBlocoProcessoDTO); + $objPenBlocoProcessoBD = new PenBlocoProcessoBD($this->getObjInfraIBanco()); - return $ret; + return $objPenBlocoProcessoBD->alterar($objPenBlocoProcessoDTO); } catch (Exception $e) { - throw new InfraException('Erro cadastrando Processo em Bloco.', $e); + throw new InfraException('Erro cadastrando Processo em Bloco.', $e); } } protected function validarBlocoDeTramiteControlado($idProtocolo) - { - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($idProtocolo); - $objPenBlocoProcessoDTO->retNumIdBloco(); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdAndamento(); - $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); - - $concluidos = array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE - ); - - $arrTramitaEmBloco = $this->listar($objPenBlocoProcessoDTO); + { + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($idProtocolo); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdAndamento(); + $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); + + $concluidos = [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE]; + + $arrTramitaEmBloco = $this->listar($objPenBlocoProcessoDTO); if (!is_null($arrTramitaEmBloco) && count($arrTramitaEmBloco) > 0) { foreach ($arrTramitaEmBloco as $tramitaEmBloco) { if ($tramitaEmBloco->getNumIdAndamento() !== null && in_array($tramitaEmBloco->getNumIdAndamento(), $concluidos)) { - continue; + continue; } $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); @@ -401,166 +394,151 @@ protected function validarBlocoDeTramiteControlado($idProtocolo) $tramiteEmBloco = $tramiteEmBlocoRN->consultar($tramiteEmBlocoDTO); return "Prezado(a) usurio(a), o processo {$tramitaEmBloco->getStrProtocoloFormatadoProtocolo()} encontra-se inserido no bloco {$tramiteEmBloco->getNumOrdem()} - {$tramiteEmBloco->getStrDescricao()} da unidade {$tramiteEmBloco->getStrSiglaUnidade()}." - . " Para continuar com essa ao necessrio que o processo seja removido do bloco em questo."; + . " Para continuar com essa ao necessrio que o processo seja removido do bloco em questo."; } } - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); - $objProcedimentoDTO = $objExpedirProcedimentoRN->consultarProcedimento($idProtocolo); + $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); + $objProcedimentoDTO = $objExpedirProcedimentoRN->consultarProcedimento($idProtocolo); - $bolProcessoEstadoNormal = !in_array($objProcedimentoDTO->getStrStaEstadoProtocolo(), array( - ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO, - ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO - )); + $bolProcessoEstadoNormal = !in_array($objProcedimentoDTO->getStrStaEstadoProtocolo(), [ProtocoloRN::$TE_PROCEDIMENTO_SOBRESTADO, ProtocoloRN::$TE_PROCEDIMENTO_BLOQUEADO]); if (!$bolProcessoEstadoNormal) { - return "Prezado(a) usurio(a), o processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} encontra-se bloqueado." + return "Prezado(a) usurio(a), o processo {$objProcedimentoDTO->getStrProtocoloProcedimentoFormatado()} encontra-se bloqueado." . " Dessa forma, no foi possvel realizar a sua insero no bloco selecionado."; } - return false; + return false; } public function validarQuantidadeDeItensNoBloco($dblIdbloco, $arrProtocolosOrigem) - { - $tramitaEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); - $tramitaEmBlocoProtocoloDTO->setNumIdBloco($dblIdbloco); - $tramitaEmBlocoProtocoloDTO->retNumIdBloco(); + { + $tramitaEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $tramitaEmBlocoProtocoloDTO->setNumIdBloco($dblIdbloco); + $tramitaEmBlocoProtocoloDTO->retNumIdBloco(); - $tramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); - $arrTramitaEmBlocoProtocolo = $tramitaEmBlocoProtocoloRN->listar($tramitaEmBlocoProtocoloDTO); - $numRegistroBloco = count($arrTramitaEmBlocoProtocolo); - $numRegistroItens = count($arrProtocolosOrigem); + $tramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $arrTramitaEmBlocoProtocolo = $tramitaEmBlocoProtocoloRN->listar($tramitaEmBlocoProtocoloDTO); + $numRegistroBloco = count($arrTramitaEmBlocoProtocolo); + $numRegistroItens = count($arrProtocolosOrigem); - $numMaximoDeProcessos = 100; + $numMaximoDeProcessos = 100; if (!empty($numRegistroBloco) && $numRegistroBloco >= $numMaximoDeProcessos) { - return "No possvel incluir mais que {$numMaximoDeProcessos} processos em um nico bloco. O bloco selecionado j atingiu sua capacidade mxima."; + return "No possvel incluir mais que {$numMaximoDeProcessos} processos em um nico bloco. O bloco selecionado j atingiu sua capacidade mxima."; } if ($numRegistroBloco + $numRegistroItens > $numMaximoDeProcessos) { - return "No possvel incluir mais que {$numMaximoDeProcessos} processos em um nico bloco. Por favor, selecione outro bloco ou selecione uma quantidade menor de processos."; + return "No possvel incluir mais que {$numMaximoDeProcessos} processos em um nico bloco. Por favor, selecione outro bloco ou selecione uma quantidade menor de processos."; } - return false; + return false; } public function validarBlocosEmAndamento() - { - $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $tramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_DISPONIBILIZADO); - $tramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $arrTramiteEmBloco = $objTramiteEmBlocoRN->listar($tramiteEmBlocoDTO); + { + $tramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $tramiteEmBlocoDTO->setStrStaEstado(TramiteEmBlocoRN::$TE_DISPONIBILIZADO); + $tramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $arrTramiteEmBloco = $objTramiteEmBlocoRN->listar($tramiteEmBlocoDTO); foreach ($arrTramiteEmBloco as $blocoDTO) { - $this->atualizarEstadoDoBloco($blocoDTO->getNumId()); + $this->atualizarEstadoDoBloco($blocoDTO->getNumId()); } } - /** - * Atualizar Bloco de tramite externo para concludo - * - * @param int $idBloco - * @throws InfraException - */ + /** + * Atualizar Bloco de tramite externo para concludo + * + * @param int $idBloco + * @throws InfraException + */ public function atualizarEstadoDoBloco($idBloco) - { - $blocoResultado = $this->buscarBloco($idBloco); + { + $blocoResultado = $this->buscarBloco($idBloco); if ($blocoResultado != null) { - $arrObjTramiteEmBlocoProtocoloDTO = $this->buscarBlocoProcessos($idBloco); + $arrObjTramiteEmBlocoProtocoloDTO = $this->buscarBlocoProcessos($idBloco); - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $idAndamentoBloco = TramiteEmBlocoRN::$TE_ABERTO; + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $idAndamentoBloco = TramiteEmBlocoRN::$TE_ABERTO; if (count($arrObjTramiteEmBlocoProtocoloDTO) > 0) { $idAndamentoBloco = $this->validarStatusProcessoParaBloco($arrObjTramiteEmBlocoProtocoloDTO, $idAndamentoBloco); $objTramiteEmBlocoDTO->setStrStaEstado($idAndamentoBloco); } else { - $objTramiteEmBlocoDTO->setStrStaEstado($idAndamentoBloco); + $objTramiteEmBlocoDTO->setStrStaEstado($idAndamentoBloco); } - $objTramiteEmBlocoDTO->setNumId($idBloco); + $objTramiteEmBlocoDTO->setNumId($idBloco); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN->alterar($objTramiteEmBlocoDTO); } } - /** - * Busca um bloco pelo ID - * - * @param int $dblIdBloco - */ + /** + * Busca um bloco pelo ID + * + * @param int $dblIdBloco + */ private function buscarBloco($idBloco) - { - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->setNumId($idBloco); - $objTramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoDTO->retStrStaEstado(); + { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->setNumId($idBloco); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retStrStaEstado(); - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - return $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); + return $objTramiteEmBlocoRN->consultar($objTramiteEmBlocoDTO); } - /** - * Busca todos os processos de um bloco - * - * @param int $dblIdBloco - */ + /** + * Busca todos os processos de um bloco + * + * @param int $dblIdBloco + */ private function buscarBlocoProcessos($idBloco) - { - $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); - $objTramiteEmBlocoProtocoloDTO->setNumIdBloco($idBloco); - $objTramiteEmBlocoProtocoloDTO->retNumIdAndamento(); - $objTramiteEmBlocoProtocoloDTO->retNumIdBloco(); + { + $objTramiteEmBlocoProtocoloDTO = new PenBlocoProcessoDTO(); + $objTramiteEmBlocoProtocoloDTO->setNumIdBloco($idBloco); + $objTramiteEmBlocoProtocoloDTO->retNumIdAndamento(); + $objTramiteEmBlocoProtocoloDTO->retNumIdBloco(); - $tramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); + $tramitaEmBlocoProtocoloRN = new PenBlocoProcessoRN(); - return $tramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); + return $tramitaEmBlocoProtocoloRN->listar($objTramiteEmBlocoProtocoloDTO); } - /** - * Valida o status do processo para o bloco - * - * @param array $arrObjTramiteEmBlocoProtocoloDTO - * @param int $idAndamentoBloco - */ + /** + * Valida o status do processo para o bloco + * + * @param array $arrObjTramiteEmBlocoProtocoloDTO + * @param int $idAndamentoBloco + */ private function validarStatusProcessoParaBloco($arrObjTramiteEmBlocoProtocoloDTO, $idAndamentoBloco) - { - $concluido = array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE - ); - $emAndamento = array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO - ); + { + $concluido = [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE]; + $emAndamento = [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO]; - $qtdProcesos = count($arrObjTramiteEmBlocoProtocoloDTO); - $arrayConcluidos = array(); - $arrayEmAndamento = array(); + $qtdProcesos = count($arrObjTramiteEmBlocoProtocoloDTO); + $arrayConcluidos = []; + $arrayEmAndamento = []; foreach ($arrObjTramiteEmBlocoProtocoloDTO as $objDTO) { if (in_array($objDTO->getNumIdAndamento(), $concluido)) { $arrayConcluidos[] = $objDTO; } if (in_array($objDTO->getNumIdAndamento(), $emAndamento)) { - $arrayEmAndamento[] = $objDTO; + $arrayEmAndamento[] = $objDTO; } } if ($qtdProcesos == count($arrayConcluidos)) { - $idAndamentoBloco = TramiteEmBlocoRN::$TE_CONCLUIDO; + $idAndamentoBloco = TramiteEmBlocoRN::$TE_CONCLUIDO; } if (count($arrayEmAndamento) > 0) { - $idAndamentoBloco = TramiteEmBlocoRN::$TE_DISPONIBILIZADO; + $idAndamentoBloco = TramiteEmBlocoRN::$TE_DISPONIBILIZADO; } - return $idAndamentoBloco; + return $idAndamentoBloco; } } diff --git a/src/rn/PenConsoleActionRN.php b/src/rn/PenConsoleActionRN.php index 40e2c14f4..555e93b3f 100755 --- a/src/rn/PenConsoleActionRN.php +++ b/src/rn/PenConsoleActionRN.php @@ -3,15 +3,16 @@ * Automao de processos em background para testes * * @tutorial php console.php criarProcedimento --desc="hahahaha" --stakeholder="INTRANET" --subject="010" --auth-user="teste" --auth-pass="teste" - * */ -class PenConsoleActionRN extends InfraRN { +class PenConsoleActionRN extends InfraRN +{ const STR_PAD_LEFT = 4; protected $objInfraBanco; - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { if(empty($this->objInfraBanco)) { @@ -24,7 +25,8 @@ protected function inicializarObjInfraIBanco() { /** * @return ParticipanteDTO */ - protected function getParticipante($strInteressado){ + protected function getParticipante($strInteressado) + { // Interessado $objParticipanteDTO = new ParticipanteDTO(); @@ -54,7 +56,8 @@ protected function getParticipante($strInteressado){ /** * @return AssuntoDTO */ - protected function getAssunto($strCodigoEstruturado = ''){ + protected function getAssunto($strCodigoEstruturado = '') + { $objAssuntoDTO = new AssuntoDTO(); $objAssuntoDTO->setStrCodigoEstruturado($strCodigoEstruturado); @@ -72,13 +75,14 @@ protected function getAssunto($strCodigoEstruturado = ''){ $objRelProtocoloAssuntoDTO->setNumIdAssunto($objAssuntoDTO->getNumIdAssunto()); $objRelProtocoloAssuntoDTO->setNumSequencia(0); - return array($objRelProtocoloAssuntoDTO); + return [$objRelProtocoloAssuntoDTO]; } /** * @return TipoProcedimentoDTO */ - protected function getTipoProcedimento($strTipoProcedimento = ''){ + protected function getTipoProcedimento($strTipoProcedimento = '') + { if(empty($strTipoProcedimento)) { $strTipoProcedimento = 'Manuais'; @@ -110,7 +114,7 @@ protected function getTipoProcedimento($strTipoProcedimento = ''){ $objTipoProcedimentoDTO->setStrSinOuvidoria('N'); $objTipoProcedimentoDTO->setStrSinIndividual('N'); $objTipoProcedimentoDTO->setArrObjNivelAcessoPermitidoDTO($arrObjNivelAcessoPermitidoDTO); - $objTipoProcedimentoDTO->setArrObjRelTipoProcedimentoAssuntoDTO(array()); + $objTipoProcedimentoDTO->setArrObjRelTipoProcedimentoAssuntoDTO([]); $objTipoProcedimentoDTO->setStrStaNivelAcessoSugestao(0); $objTipoProcedimentoDTO->setStrSinAtivo('S'); @@ -121,7 +125,8 @@ protected function getTipoProcedimento($strTipoProcedimento = ''){ return $objTipoProcedimentoDTO; } - protected function getSerie($strNome = ''){ + protected function getSerie($strNome = '') + { if(empty($strNome)) { $strNome = 'CERTIDAO'; @@ -147,7 +152,8 @@ protected function getSerie($strNome = ''){ * * @return UnidadeDTO */ - protected function inicializarUnidade($strSiglaUnidade = ''){ + protected function inicializarUnidade($strSiglaUnidade = '') + { if(empty($strSiglaUnidade)) { @@ -196,7 +202,8 @@ protected function inicializarUnidade($strSiglaUnidade = ''){ * * @param array $args Description */ - public function assinarDocumento($args = array()){ + public function assinarDocumento($args = []) + { if(!array_key_exists('doc-id', $args)) { throw new InfraException('Paramtro "doc-id" obrigatrio'); @@ -245,7 +252,7 @@ public function assinarDocumento($args = array()){ $objAssinaturaDTO->setNumIdUsuario($objUsuarioDTO->getNumIdUsuario()); $objAssinaturaDTO->setStrSenhaUsuario($args['auth-pass']); $objAssinaturaDTO->setStrCargoFuncao('Testador'); - $objAssinaturaDTO->setArrObjDocumentoDTO(array($objDocumentoDTO)); + $objAssinaturaDTO->setArrObjDocumentoDTO([$objDocumentoDTO]); $objDocumentoRN->assinar($objAssinaturaDTO); @@ -259,7 +266,8 @@ public function assinarDocumento($args = array()){ * * @param array $args Description */ - public function criarDocumento($args = array()){ + public function criarDocumento($args = []) + { if(!array_key_exists('desc', $args)) { throw new InfraException('Paramtro "desc" obrigatrio'); @@ -283,10 +291,10 @@ public function criarDocumento($args = array()){ $objProtocoloDTO->setNumIdHipoteseLegal(null); $objProtocoloDTO->setStrStaGrauSigilo(null); $objProtocoloDTO->setStrDescricao($args['desc']); - $objProtocoloDTO->setArrObjParticipanteDTO(array($objParticipanteDTO)); - $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array($objAssuntoDTO)); - $objProtocoloDTO->setArrObjObservacaoDTO(array()); - $objProtocoloDTO->setArrObjAnexoDTO(array()); + $objProtocoloDTO->setArrObjParticipanteDTO([$objParticipanteDTO]); + $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO([$objAssuntoDTO]); + $objProtocoloDTO->setArrObjObservacaoDTO([]); + $objProtocoloDTO->setArrObjAnexoDTO([]); $objDocumentoDTO = new DocumentoDTO(); $objDocumentoDTO->setDblIdDocumento(null); @@ -303,7 +311,7 @@ public function criarDocumento($args = array()){ $objProtocoloDTO->setStrDescricao($args['desc']); $objProtocoloDTO->setDtaGeracao(InfraData::getStrDataAtual()); $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO($objAssuntoDTO); - $objProtocoloDTO->setArrObjParticipanteDTO(array($objParticipanteDTO)); + $objProtocoloDTO->setArrObjParticipanteDTO([$objParticipanteDTO]); $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); $objDocumentoRN = new DocumentoRN(); @@ -322,7 +330,8 @@ public function criarDocumento($args = array()){ /** * Cria um novo procedimento por background task */ - public function criarProcedimento($args = array()){ + public function criarProcedimento($args = []) + { if(!array_key_exists('desc', $args)) { throw new InfraException('Paramtro "desc" obrigatrio'); @@ -345,10 +354,10 @@ public function criarProcedimento($args = array()){ $objProtocoloDTO->setNumIdHipoteseLegal(null); $objProtocoloDTO->setStrStaGrauSigilo(null); $objProtocoloDTO->setStrDescricao($args['desc']); - $objProtocoloDTO->setArrObjParticipanteDTO(array($this->getParticipante($args['stakeholder']))); - $objProtocoloDTO->setArrObjAnexoDTO(array()); + $objProtocoloDTO->setArrObjParticipanteDTO([$this->getParticipante($args['stakeholder'])]); + $objProtocoloDTO->setArrObjAnexoDTO([]); $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO($this->getAssunto($args['subject'])); - $objProtocoloDTO->setArrObjObservacaoDTO(array()); + $objProtocoloDTO->setArrObjObservacaoDTO([]); // Tipo Procedimento $objTipoProcedimentoDTO = $this->getTipoProcedimento(); @@ -374,7 +383,8 @@ public function criarProcedimento($args = array()){ $this->criarDocumento($args); - $strRetorno = sprintf('Gerado procedimento %s com protocolo %s', + $strRetorno = sprintf( + 'Gerado procedimento %s com protocolo %s', $objProcedimentoDTO->getDblIdProcedimento(), $objProcedimentoDTO->getStrProtocoloProcedimentoFormatado() ); @@ -385,7 +395,8 @@ public function criarProcedimento($args = array()){ /** * Remover um procedimento por background task */ - public function removerProcedimento($args = array()){ + public function removerProcedimento($args = []) + { if(!array_key_exists('proc-id', $args)) { throw new InfraException('Paramtro "proc-id" obrigatrio'); @@ -406,7 +417,8 @@ public function removerProcedimento($args = array()){ * * @return string */ - public function log($args = array()){ + public function log($args = []) + { if(!array_key_exists('msg', $args)) { throw new InfraException('Paramtro "msg" obrigatrio'); @@ -423,7 +435,8 @@ public function log($args = array()){ * * @return string */ - public function syncProcedimento($args = array()){ + public function syncProcedimento($args = []) + { if(!array_key_exists('protocolo', $args)) { throw new InfraException('Paramtro "protocolo" obrigatrio'); @@ -443,7 +456,8 @@ public function syncProcedimento($args = array()){ * * @return string */ - public function ajuda(){ + public function ajuda() + { $string .= PHP_EOL; $string .= PenConsoleRN::format('Uso: ', 'yellow').PHP_EOL; @@ -468,8 +482,7 @@ public function ajuda(){ $string .= ' assinarDocumento'.PHP_EOL; $string .= ' removerProcedimento'.PHP_EOL; $string .= ' syncProcedimento'.PHP_EOL; - $string .= PHP_EOL; - return $string; + return $string . PHP_EOL; } } diff --git a/src/rn/PenConsoleRN.php b/src/rn/PenConsoleRN.php index 4b0e3929b..8d9f26889 100755 --- a/src/rn/PenConsoleRN.php +++ b/src/rn/PenConsoleRN.php @@ -4,17 +4,17 @@ /** * Executa comandos por console do PHP - * - * */ -class PenConsoleRN extends InfraRN { +class PenConsoleRN extends InfraRN +{ protected $objRN; protected $strAction; - protected $arrTokens = array(); + protected $arrTokens = []; protected $objInfraBanco; - public function __construct($objRN = null, $tokens = array()) { + public function __construct($objRN = null, $tokens = []) + { if(!is_null($objRN)) { @@ -23,12 +23,7 @@ public function __construct($objRN = null, $tokens = array()) { if(!is_object($objRN)) { throw new InfraException('Requerido objeto Infra'); } - - if(get_parent_class($objRN) !== 'InfraRN') { - throw new InfraException('Requerido objeto Infra que seja extendido de InfraRN'); - } - - $this->objRN = $objRN; + throw new InfraException('Requerido objeto Infra que seja extendido de InfraRN'); } if(empty($tokens)) { @@ -41,8 +36,9 @@ public function __construct($objRN = null, $tokens = array()) { /** * Inicializador o banco de dados */ - protected function inicializarObjInfraIBanco() { - if(empty($this->objInfraBanco)){ + protected function inicializarObjInfraIBanco() + { + if(empty($this->objInfraBanco)) { $this->objInfraBanco = BancoSEI::getInstance(); } return $this->objInfraBanco; @@ -50,17 +46,17 @@ protected function inicializarObjInfraIBanco() { /** * Processa os parmetros passados ao script pelo cli - * + * * @param array $arguments - * @return null */ - protected function criarTokens($arguments = array()){ + protected function criarTokens($arguments = []) + { if(empty($arguments)) { throw new InfraException('Script no pode ser executado pela web'); } - $strScript = array_shift($arguments); + array_shift($arguments); if(!empty($this->objRN)) { @@ -75,7 +71,7 @@ protected function criarTokens($arguments = array()){ foreach($arguments as $key => $argument) { - if(substr($argument, 0, 2) === '--'){ + if(substr($argument, 0, 2) === '--') { $string = preg_replace('/^--/', '', $argument); $array = explode('=', $string); @@ -91,11 +87,13 @@ protected function criarTokens($arguments = array()){ /** * Retorna os parmetros */ - public function getTokens(){ + public function getTokens() + { return $this->arrTokens; } - public function run(){ + public function run() + { if(empty($this->objRN)) { throw new InfraException('Nenhuma RN foi adicionada ao console'); @@ -112,23 +110,24 @@ public function run(){ return true; } - return call_user_func(array($this->objRN, $this->strAction), $this->getTokens()); + return call_user_func([$this->objRN, $this->strAction], $this->getTokens()); } - public static function format($strMensagem = '', $strFonte = '', $bolBold = false){ + public static function format($strMensagem = '', $strFonte = '', $bolBold = false) + { - $strBold = ($bolBold !== false) ? '1' : '0'; + $strBold = ($bolBold !== false) ? '1' : '0'; if(!empty($strFonte)) { switch($strFonte){ case 'green': - $strMensagem = "\033[".$strBold.";32m".$strMensagem; + $strMensagem = "\033[".$strBold.";32m".$strMensagem; break; case 'red': - $strMensagem = "\033[".$strBold.";31m".$strMensagem; + $strMensagem = "\033[".$strBold.";31m".$strMensagem; break; case 'blue': @@ -136,7 +135,7 @@ public static function format($strMensagem = '', $strFonte = '', $bolBold = fals break; case 'yellow': - $strMensagem = "\033[".$strBold.";33m".$strMensagem; + $strMensagem = "\033[".$strBold.";33m".$strMensagem; break; } @@ -144,7 +143,8 @@ public static function format($strMensagem = '', $strFonte = '', $bolBold = fals return static::resetAfter($strMensagem); } - public static function resetAfter($strMensagem = ''){ + public static function resetAfter($strMensagem = '') + { return $strMensagem. "\033[0m"; } diff --git a/src/rn/PenExpedirBlocoRN.php b/src/rn/PenExpedirBlocoRN.php index 506a99ea7..4cb6a5cb8 100755 --- a/src/rn/PenExpedirBlocoRN.php +++ b/src/rn/PenExpedirBlocoRN.php @@ -35,37 +35,37 @@ public function gravarLogDebug($parStrMensagem, $parNumIdentacao = 0, $parBolLog private function validarParametrosBloco(InfraException $objInfraException, PenBlocoProcessoDTO $objBlocoDTO) { - if(!isset($objBlocoDTO)){ + if(!isset($objBlocoDTO)) { $objInfraException->adicionarValidacao('Parmetro $objBlocoDTO no informado.'); } //TODO: Validar se repositrio de origem foi informado - if (InfraString::isBolVazia($objBlocoDTO->getNumIdRepositorioOrigem())){ + if (InfraString::isBolVazia($objBlocoDTO->getNumIdRepositorioOrigem())) { $objInfraException->adicionarValidacao('Identificao do repositrio de estruturas da unidade atual no informado.'); } //TODO: Validar se unidade de origem foi informado - if (InfraString::isBolVazia($objBlocoDTO->getNumIdUnidadeOrigem())){ + if (InfraString::isBolVazia($objBlocoDTO->getNumIdUnidadeOrigem())) { $objInfraException->adicionarValidacao('Identificao da unidade atual no repositrio de estruturas organizacionais no informado.'); } //TODO: Validar se repositrio foi devidamente informado - if (InfraString::isBolVazia($objBlocoDTO->getNumIdRepositorioDestino())){ + if (InfraString::isBolVazia($objBlocoDTO->getNumIdRepositorioDestino())) { $objInfraException->adicionarValidacao('Repositrio de estruturas organizacionais no informado.'); } //TODO: Validar se unidade foi devidamente informada - if (InfraString::isBolVazia($objBlocoDTO->getNumIdUnidadeDestino()) || InfraString::isBolVazia($objBlocoDTO->getStrUnidadeDestino())){ + if (InfraString::isBolVazia($objBlocoDTO->getNumIdUnidadeDestino()) || InfraString::isBolVazia($objBlocoDTO->getStrUnidadeDestino())) { $objInfraException->adicionarValidacao('Unidade de destino no informado.'); } //TODO: Validar se usurio foi devidamente informada - if (InfraString::isBolVazia($objBlocoDTO->getNumIdUsuario())){ + if (InfraString::isBolVazia($objBlocoDTO->getNumIdUsuario())) { $objInfraException->adicionarValidacao('Usurio no informado.'); } //TODO: Validar se usurio foi devidamente informada - if (InfraString::isBolVazia($objBlocoDTO->getDthRegistro())){ + if (InfraString::isBolVazia($objBlocoDTO->getDthRegistro())) { $objInfraException->adicionarValidacao('Data do registro no informada.'); } diff --git a/src/rn/PenHipoteseLegalRN.php b/src/rn/PenHipoteseLegalRN.php index e8510a00e..f6b8952bb 100755 --- a/src/rn/PenHipoteseLegalRN.php +++ b/src/rn/PenHipoteseLegalRN.php @@ -10,41 +10,40 @@ class PenHipoteseLegalRN extends InfraRN { - /** - * Inicializador de banco de dados - * - * @return object - */ + /** + * Inicializador de banco de dados + * + * @return object + */ protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } - /** - * Listar hipoteses legais - * - * @param PenHipoteseLegalDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Listar hipoteses legais + * + * @return array + * @throws InfraException + */ protected function listarConectado(PenHipoteseLegalDTO $objDTO) - { + { try { - $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); - return $objBD->listar($objDTO); + $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); + return $objBD->listar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro listando hipotese legal.', $e); + throw new InfraException('Erro listando hipotese legal.', $e); } } protected function consultarConectado(PenHipoteseLegalDTO $objDTO) - { + { try { - //Valida Permissao - $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); - return $objBD->consultar($objDTO); + //Valida Permissao + $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); + return $objBD->consultar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro ao consultar Hipotese Legal.', $e); + throw new InfraException('Erro ao consultar Hipotese Legal.', $e); } } } diff --git a/src/rn/PenMapTipoProcedimentoRN.php b/src/rn/PenMapTipoProcedimentoRN.php old mode 100644 new mode 100755 index 05f92271a..7df8b2152 --- a/src/rn/PenMapTipoProcedimentoRN.php +++ b/src/rn/PenMapTipoProcedimentoRN.php @@ -8,146 +8,147 @@ class PenMapTipoProcedimentoRN extends InfraRN { - /** - * Inicializa o obj do banco da Infra - * @return obj - */ + /** + * Inicializa o obj do banco da Infra + * + * @return obj + */ protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } - /** - * Mtodo utilizado para listagem de dados. - * @param PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para listagem de dados. + * + * @return array + * @throws InfraException + */ protected function listarConectado(PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO) - { + { try { - $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->getObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->listar($objPenMapTipoProcedimentoDTO); + $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->getObjInfraIBanco()); + return $objPenMapTipoProcedimentoBD->listar($objPenMapTipoProcedimentoDTO); } catch (Exception $e) { - throw new InfraException('Erro listando mapeamento externos.', $e); + throw new InfraException('Erro listando mapeamento externos.', $e); } } /** - * Mtodo utilizado para listagem de dados. - * @param PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO - * @return array - * @throws InfraException - */ + * Mtodo utilizado para listagem de dados. + * + * @return array + * @throws InfraException + */ protected function consultarConectado(PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO) - { + { try { - $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->getObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->consultar($objPenMapTipoProcedimentoDTO); + $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->getObjInfraIBanco()); + return $objPenMapTipoProcedimentoBD->consultar($objPenMapTipoProcedimentoDTO); } catch (Exception $e) { - throw new InfraException('Erro listando mapeamento externos.', $e); + throw new InfraException('Erro listando mapeamento externos.', $e); } } - /** - * Mtodo utilizado para alterao de dados. - * @param PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para alterao de dados. + * + * @return array + * @throws InfraException + */ protected function alterarControlado(PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO) - { + { try { - $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->alterar($objPenMapTipoProcedimentoDTO); + $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); + return $objPenMapTipoProcedimentoBD->alterar($objPenMapTipoProcedimentoDTO); } catch (Exception $e) { - throw new InfraException('Erro alterando mapeamento de procedimento.', $e); + throw new InfraException('Erro alterando mapeamento de procedimento.', $e); } } - /** - * Mtodo utilizado para cadastro de dados. - * @param PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para cadastro de dados. + * + * @return array + * @throws InfraException + */ protected function cadastrarConectado(PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO) - { + { try { - $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->cadastrar($objPenMapTipoProcedimentoDTO); + $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); + return $objPenMapTipoProcedimentoBD->cadastrar($objPenMapTipoProcedimentoDTO); } catch (Exception $e) { - throw new InfraException('Erro cadastrando mapeamento de procedimento.', $e); + throw new InfraException('Erro cadastrando mapeamento de procedimento.', $e); } } - /** - * Mtodo utilizado para excluso de dados. - * @param PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para excluso de dados. + * + * @return array + * @throws InfraException + */ protected function excluirControlado(PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO) - { + { try { - $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->excluir($objPenMapTipoProcedimentoDTO); + $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); + return $objPenMapTipoProcedimentoBD->excluir($objPenMapTipoProcedimentoDTO); } catch (Exception $e) { - throw new InfraException('Erro excluindo mapeamento de procedimento.', $e); + throw new InfraException('Erro excluindo mapeamento de procedimento.', $e); } } - /** - * Mtodo utilizado para contagem de procedimento mapeadas - * @param PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para contagem de procedimento mapeadas + * + * @return array + * @throws InfraException + */ protected function contarConectado(PenMapTipoProcedimentoDTO $objPenMapTipoProcedimentoDTO) - { + { try { - $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->contar($objPenMapTipoProcedimentoDTO); + $objPenMapTipoProcedimentoBD = new PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); + return $objPenMapTipoProcedimentoBD->contar($objPenMapTipoProcedimentoDTO); } catch (Exception $e) { - throw new InfraException('Erro contando mapeamento de procedimento.', $e); + throw new InfraException('Erro contando mapeamento de procedimento.', $e); } } - /** - * @param array $arrObjTipoProcedimentoDTO - * @param string $mensagem - * @return void - */ + /** + * @param array $arrObjTipoProcedimentoDTO + * @param string $mensagem + * @return void + */ public function validarAcaoTipoProcesso($arrObjTipoProcedimentoDTO, $mensagem) - { - $arrTipoProcedimento = array(); - $mapeamentos = array(); + { + $arrTipoProcedimento = []; + $mapeamentos = []; foreach ($arrObjTipoProcedimentoDTO as $objTipoProcedimentoDTO) { - $objMapeamentoTipoProcedimentoDTO = new PenMapTipoProcedimentoDTO(); - $objMapeamentoTipoProcedimentoDTO->retNumIdMapOrgao(); - $objMapeamentoTipoProcedimentoDTO->setNumIdTipoProcessoDestino($objTipoProcedimentoDTO->getIdTipoProcedimento()); + $objMapeamentoTipoProcedimentoDTO = new PenMapTipoProcedimentoDTO(); + $objMapeamentoTipoProcedimentoDTO->retNumIdMapOrgao(); + $objMapeamentoTipoProcedimentoDTO->setNumIdTipoProcessoDestino($objTipoProcedimentoDTO->getIdTipoProcedimento()); if ($this->contarConectado($objMapeamentoTipoProcedimentoDTO)) { $arrObjMapeamentoTipoProcedimentoDTO = $this->listarConectado($objMapeamentoTipoProcedimentoDTO); foreach ($arrObjMapeamentoTipoProcedimentoDTO as $objPenMapTipoProcedimentoDTO) { - $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->retStrOrgaoDestino(); - $objPenOrgaoExternoDTO->setDblId($objPenMapTipoProcedimentoDTO->getNumIdMapOrgao()); + $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); + $objPenOrgaoExternoDTO->retStrOrgaoDestino(); + $objPenOrgaoExternoDTO->setDblId($objPenMapTipoProcedimentoDTO->getNumIdMapOrgao()); - $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); - $objPenOrgaoExternoDTO = $objPenOrgaoExternoRN->consultar($objPenOrgaoExternoDTO); - $mapeamentos[$objPenOrgaoExternoDTO->getStrOrgaoDestino()] = $objPenOrgaoExternoDTO->getStrOrgaoDestino(); - $arrTipoProcedimento[$objTipoProcedimentoDTO->getNome()] = $objTipoProcedimentoDTO->getNome(); + $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); + $objPenOrgaoExternoDTO = $objPenOrgaoExternoRN->consultar($objPenOrgaoExternoDTO); + $mapeamentos[$objPenOrgaoExternoDTO->getStrOrgaoDestino()] = $objPenOrgaoExternoDTO->getStrOrgaoDestino(); + $arrTipoProcedimento[$objTipoProcedimentoDTO->getNome()] = $objTipoProcedimentoDTO->getNome(); } } } if (count($arrTipoProcedimento) > 0) { - $mensagem = sprintf($mensagem, implode('", "', $mapeamentos), implode('", "', $arrTipoProcedimento)); - LogSEI::getInstance()->gravar($mensagem, LogSEI::$AVISO); - $objInfraException = new InfraException(); - $objInfraException->adicionarValidacao($mensagem); - $objInfraException->lancarValidacoes(); + $mensagem = sprintf($mensagem, implode('", "', $mapeamentos), implode('", "', $arrTipoProcedimento)); + LogSEI::getInstance()->gravar($mensagem, LogSEI::$AVISO); + $objInfraException = new InfraException(); + $objInfraException->adicionarValidacao($mensagem); + $objInfraException->lancarValidacoes(); } } } diff --git a/src/rn/PenOrgaoExternoRN.php b/src/rn/PenOrgaoExternoRN.php old mode 100644 new mode 100755 index 60d023028..4437f4d85 --- a/src/rn/PenOrgaoExternoRN.php +++ b/src/rn/PenOrgaoExternoRN.php @@ -8,120 +8,121 @@ class PenOrgaoExternoRN extends InfraRN { - /** - * Inicializa o obj do banco da Infra - * @return obj - */ + /** + * Inicializa o obj do banco da Infra + * + * @return obj + */ protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } - /** - * Mtodo utilizado para listagem de dados. - * @param PenOrgaoExternoDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para listagem de dados. + * + * @return array + * @throws InfraException + */ protected function listarConectado(PenOrgaoExternoDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_listar', __METHOD__, $objDTO); - $objBD = new PenOrgaoExternoBD($this->getObjInfraIBanco()); - return $objBD->listar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_listar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->getObjInfraIBanco()); + return $objBD->listar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro listando orgos externos.', $e); + throw new InfraException('Erro listando orgos externos.', $e); } } - /** - * Mtodo utilizado para consulta de dados. - * @param PenOrgaoExternoDTO $objDTO - * @return PenOrgaoExternoDTO - * @throws InfraException - */ + /** + * Mtodo utilizado para consulta de dados. + * + * @return PenOrgaoExternoDTO + * @throws InfraException + */ protected function consultarConectado(PenOrgaoExternoDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_visualizar', __METHOD__, $objDTO); - $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objBD->consultar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_visualizar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); + return $objBD->consultar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro consultando mapeamento de unidades.', $e); + throw new InfraException('Erro consultando mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para alterao de dados. - * @param PenOrgaoExternoDTO $objDTO - * @return PenOrgaoExternoDTO - * @throws InfraException - */ + /** + * Mtodo utilizado para alterao de dados. + * + * @return PenOrgaoExternoDTO + * @throws InfraException + */ protected function alterarControlado(PenOrgaoExternoDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_salvar', __METHOD__, $objDTO); - $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objBD->alterar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_salvar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); + return $objBD->alterar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro alterando mapeamento de unidades.', $e); + throw new InfraException('Erro alterando mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para cadastro de dados. - * @param PenOrgaoExternoDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para cadastro de dados. + * + * @return array + * @throws InfraException + */ protected function cadastrarConectado(PenOrgaoExternoDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_salvar', __METHOD__, $objDTO); - $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objBD->cadastrar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_salvar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); + return $objBD->cadastrar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro cadastrando mapeamento de unidades.', $e); + throw new InfraException('Erro cadastrando mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para excluso de dados. - * @param PenOrgaoExternoDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para excluso de dados. + * + * @return array + * @throws InfraException + */ protected function excluirControlado(PenOrgaoExternoDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_excluir', __METHOD__, $objDTO); - $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objBD->excluir($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_excluir', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); + return $objBD->excluir($objDTO); } catch (Exception $e) { - throw new InfraException('Erro excluindo mapeamento de unidades.', $e); + throw new InfraException('Erro excluindo mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para contagem de unidades mapeadas - * @param PenOrgaoExternoDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para contagem de unidades mapeadas + * + * @return array + * @throws InfraException + */ protected function contarConectado(PenOrgaoExternoDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_listar', __METHOD__, $objDTO); - $objBD = new PenOrgaoExternoBD($this->getObjInfraIBanco()); - return $objBD->contar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_orgaos_externos_listar', __METHOD__, $objDTO); + $objBD = new PenOrgaoExternoBD($this->getObjInfraIBanco()); + return $objBD->contar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro contando mapeamento de unidades.', $e); + throw new InfraException('Erro contando mapeamento de unidades.', $e); } } } diff --git a/src/rn/PenParametroRN.php b/src/rn/PenParametroRN.php index 00d0ece9a..24ec8cb5e 100755 --- a/src/rn/PenParametroRN.php +++ b/src/rn/PenParametroRN.php @@ -5,14 +5,16 @@ /** * Regra de negcio para o parmetros do mdulo PEN */ -class PenParametroRN extends InfraRN { +class PenParametroRN extends InfraRN +{ protected function inicializarObjInfraIBanco() { return BancoSEI::getInstance(); } - protected function contarConectado(PenParametroDTO $objDTO){ + protected function contarConectado(PenParametroDTO $objDTO) + { try { $objBD = new PenParametroBD($this->inicializarObjInfraIBanco()); @@ -23,7 +25,8 @@ protected function contarConectado(PenParametroDTO $objDTO){ } } - protected function consultarConectado(PenParametroDTO $objDTO){ + protected function consultarConectado(PenParametroDTO $objDTO) + { try { $objBD = new PenParametroBD($this->inicializarObjInfraIBanco()); @@ -34,7 +37,8 @@ protected function consultarConectado(PenParametroDTO $objDTO){ } } - protected function listarConectado(PenParametroDTO $objDTO){ + protected function listarConectado(PenParametroDTO $objDTO) + { try { SessaoSEI::getInstance()->validarAuditarPermissao('pen_parametros_configuracao', __METHOD__, $objDTO); @@ -46,7 +50,8 @@ protected function listarConectado(PenParametroDTO $objDTO){ } } - protected function cadastrarControlado(PenParametroDTO $objPenParametroDTO){ + protected function cadastrarControlado(PenParametroDTO $objPenParametroDTO) + { try { $objInfraException = new InfraException(); @@ -62,7 +67,8 @@ protected function cadastrarControlado(PenParametroDTO $objPenParametroDTO){ } } - protected function alterarControlado(PenParametroDTO $objPenParametroDTO){ + protected function alterarControlado(PenParametroDTO $objPenParametroDTO) + { try { SessaoSEI::getInstance()->validarAuditarPermissao('pen_parametros_configuracao_alterar', __METHOD__, $objPenParametroDTO); @@ -79,7 +85,8 @@ protected function alterarControlado(PenParametroDTO $objPenParametroDTO){ } } - protected function excluirControlado(PenParametroDTO $objDTO){ + protected function excluirControlado(PenParametroDTO $objDTO) + { try { $objBD = new PenParametroBD($this->inicializarObjInfraIBanco()); @@ -90,7 +97,8 @@ protected function excluirControlado(PenParametroDTO $objDTO){ } } - public function setValor($strNome, $strValor){ + public function setValor($strNome, $strValor) + { try { $objBD = new PenParametroBD($this->inicializarObjInfraIBanco()); @@ -103,9 +111,11 @@ public function setValor($strNome, $strValor){ /** * Resgata o valor do parmetro configura + * * @param string $strNome */ - public function getParametro($strNome) { + public function getParametro($strNome) + { $objPenParametroDTO = new PenParametroDTO(); $objPenParametroDTO->setStrNome($strNome); $objPenParametroDTO->retStrValor(); @@ -120,8 +130,8 @@ public function getParametro($strNome) { /** * Insere ou alterar o valor de um parmetro de configurao do mdulo de integrao PEN * - * @param string $parStrNome Nome do parmetro - * @param string $parStrValor valor do parmetro + * @param string $parStrNome Nome do parmetro + * @param string $parStrValor valor do parmetro * @return void */ public static function persistirParametro($parStrNome, $parStrValor, $parStrDescricao = null, $parNumSequencia = null) @@ -131,7 +141,7 @@ public static function persistirParametro($parStrNome, $parStrValor, $parStrDesc $objPenParametroDTO = new PenParametroDTO(); $objPenParametroDTO->setStrNome($parStrNome); - if($objPenParametroRN->contar($objPenParametroDTO) == 0){ + if($objPenParametroRN->contar($objPenParametroDTO) == 0) { $objPenParametroDTO->setStrValor($parStrValor); $objPenParametroDTO->setStrDescricao($parStrDescricao); $objPenParametroDTO->setNumSequencia($parNumSequencia); @@ -150,9 +160,10 @@ public static function persistirParametro($parStrNome, $parStrValor, $parStrDesc - private function validarTipoProcessoExterno(PenParametroDTO $objPenParametroDTO, InfraException $objInfraException){ + private function validarTipoProcessoExterno(PenParametroDTO $objPenParametroDTO, InfraException $objInfraException) + { - if($objPenParametroDTO->getStrNome() == "PEN_TIPO_PROCESSO_EXTERNO"){ + if($objPenParametroDTO->getStrNome() == "PEN_TIPO_PROCESSO_EXTERNO") { $objRelTipoProcedimentoAssuntoDTO = new RelTipoProcedimentoAssuntoDTO(); $objRelTipoProcedimentoAssuntoDTO->retNumIdTipoProcedimento(); $objRelTipoProcedimentoAssuntoDTO->setNumIdTipoProcedimento($objPenParametroDTO->getStrValor()); @@ -162,15 +173,16 @@ private function validarTipoProcessoExterno(PenParametroDTO $objPenParametroDTO, $arrObjTipoProcedimentoAssunto=InfraArray::converterArrInfraDTO($objRelTipoProcedimentoAssuntoRN->listarRN0192($objRelTipoProcedimentoAssuntoDTO), "IdTipoProcedimento"); if (empty($arrObjTipoProcedimentoAssunto)) { - $strMensagemErro = "Tipo de processo externo no possui sugesto de assuntos atribuda."; - $objInfraException->adicionarValidacao($strMensagemErro); + $strMensagemErro = "Tipo de processo externo no possui sugesto de assuntos atribuda."; + $objInfraException->adicionarValidacao($strMensagemErro); } } } - private function validarUnidadeRecebimento(PenParametroDTO $objPenParametroDTO, InfraException $objInfraException){ + private function validarUnidadeRecebimento(PenParametroDTO $objPenParametroDTO, InfraException $objInfraException) + { - if($objPenParametroDTO->getStrNome() == "PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO"){ + if($objPenParametroDTO->getStrNome() == "PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO") { $strIdUnidadeRecebimento = $objPenParametroDTO->getStrValor(); $objUnidadeDTO = new UnidadeDTO(); @@ -181,45 +193,44 @@ private function validarUnidadeRecebimento(PenParametroDTO $objPenParametroDTO, $objUnidadeBD = new UnidadeBD($this->inicializarObjInfraIBanco()); $objUnidadeDTO = $objUnidadeBD->consultar($objUnidadeDTO); - if(!is_null($objUnidadeDTO) && $objUnidadeDTO->getStrSinEnvioProcesso() == "N"){ - $strMensagemErro = "No permitido a configurao de uma \"Unidade SEI para Representao de rgos Externos\" que no esteja disponvel para envio de processo, "; - $strMensagemErro .= "opo \"Disponvel para envio de processos\" desmarcado no cadastro da unidade."; - $objInfraException->adicionarValidacao($strMensagemErro); + if(!is_null($objUnidadeDTO) && $objUnidadeDTO->getStrSinEnvioProcesso() == "N") { + $strMensagemErro = "No permitido a configurao de uma \"Unidade SEI para Representao de rgos Externos\" que no esteja disponvel para envio de processo, "; + $strMensagemErro .= "opo \"Disponvel para envio de processos\" desmarcado no cadastro da unidade."; + $objInfraException->adicionarValidacao($strMensagemErro); } } } - /** - * @param array $arrObjTipoProcedimentoDTO - * @param string $mensagem - * @return void - * @throws InfraException - */ + /** + * @param array $arrObjTipoProcedimentoDTO + * @param string $mensagem + * @return void + * @throws InfraException + */ public function validarAcaoTipoProcessoPadrao($arrObjTipoProcedimentoDTO, $mensagem) - { - $mapeamentos = array(); + { + $mapeamentos = []; foreach ($arrObjTipoProcedimentoDTO as $objTipoProcedimentoDTO) { - $objPenParametroDTO = new PenParametroDTO(); - $objPenParametroDTO->setStrNome('PEN_TIPO_PROCESSO_EXTERNO'); - $objPenParametroDTO->retStrNome(); - $objPenParametroDTO->retStrValor(); - $objPenParametroDTO = $this->consultarConectado($objPenParametroDTO); - if ( - !is_null($objPenParametroDTO) - && !is_null($objPenParametroDTO->getStrValor()) - && $objPenParametroDTO->getStrValor() == $objTipoProcedimentoDTO->getIdTipoProcedimento() - ) { + $objPenParametroDTO = new PenParametroDTO(); + $objPenParametroDTO->setStrNome('PEN_TIPO_PROCESSO_EXTERNO'); + $objPenParametroDTO->retStrNome(); + $objPenParametroDTO->retStrValor(); + $objPenParametroDTO = $this->consultarConectado($objPenParametroDTO); + if (!is_null($objPenParametroDTO) + && !is_null($objPenParametroDTO->getStrValor()) + && $objPenParametroDTO->getStrValor() == $objTipoProcedimentoDTO->getIdTipoProcedimento() + ) { $mapeamentos[$objTipoProcedimentoDTO->getIdTipoProcedimento()] = - $objTipoProcedimentoDTO->getIdTipoProcedimento() . '-' . $objTipoProcedimentoDTO->getNome(); + $objTipoProcedimentoDTO->getIdTipoProcedimento() . '-' . $objTipoProcedimentoDTO->getNome(); } } if (count($mapeamentos) > 0) { - $mensagem = sprintf($mensagem, implode('", "', $mapeamentos)); - LogSEI::getInstance()->gravar($mensagem, LogSEI::$AVISO); - $objInfraException = new InfraException(); - $objInfraException->adicionarValidacao($mensagem); - $objInfraException->lancarValidacoes(); + $mensagem = sprintf($mensagem, implode('", "', $mapeamentos)); + LogSEI::getInstance()->gravar($mensagem, LogSEI::$AVISO); + $objInfraException = new InfraException(); + $objInfraException->adicionarValidacao($mensagem); + $objInfraException->lancarValidacoes(); } } } diff --git a/src/rn/PenRelHipoteseLegalEnvioRN.php b/src/rn/PenRelHipoteseLegalEnvioRN.php index 2f7e659d5..fc18f7d79 100755 --- a/src/rn/PenRelHipoteseLegalEnvioRN.php +++ b/src/rn/PenRelHipoteseLegalEnvioRN.php @@ -4,32 +4,36 @@ /** * Description of PenRelHipoteseLegalEnvioRN - * - * */ -class PenRelHipoteseLegalEnvioRN extends PenRelHipoteseLegalRN { +class PenRelHipoteseLegalEnvioRN extends PenRelHipoteseLegalRN +{ - protected function listarConectado(PenRelHipoteseLegalDTO $objDTO){ + protected function listarConectado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_envio_listar', __METHOD__, $objDTO); return parent::listarInterno($objDTO); } - protected function consultarConectado(PenRelHipoteseLegalDTO $objDTO){ + protected function consultarConectado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_envio_consultar', __METHOD__, $objDTO); return parent::consultarInterno($objDTO); } - protected function alterarControlado(PenRelHipoteseLegalDTO $objDTO){ + protected function alterarControlado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_envio_alterar', __METHOD__, $objDTO); return parent::alterarInterno($objDTO); } - protected function cadastrarControlado(PenRelHipoteseLegalDTO $objDTO){ + protected function cadastrarControlado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_envio_cadastrar', __METHOD__, $objDTO); return parent::cadastrarInterno($objDTO); } - protected function excluirControlado(PenRelHipoteseLegalDTO $objDTO){ + protected function excluirControlado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_envio_excluir', __METHOD__, $objDTO); return parent::excluirInterno($objDTO); } @@ -37,10 +41,12 @@ protected function excluirControlado(PenRelHipoteseLegalDTO $objDTO){ /** * Pega o ID hipotese sei para buscar o ID do barramento - * @param integer $numIdHipoteseSEI + * + * @param integer $numIdHipoteseSEI * @return integer */ - protected function getIdHipoteseLegalPENConectado($numIdHipoteseSEI) { + protected function getIdHipoteseLegalPENConectado($numIdHipoteseSEI) + { $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco()); // Mapeamento da hipotese legal remota @@ -58,14 +64,14 @@ protected function getIdHipoteseLegalPENConectado($numIdHipoteseSEI) { } } - /** - * Contar HipoteseLegal - * - * @param PenRelHipoteseLegalDTO $objDTO - * @return int - * @throws InfraException - */ - protected function contarConectado(PenRelHipoteseLegalDTO $objDTO) { + /** + * Contar HipoteseLegal + * + * @return int + * @throws InfraException + */ + protected function contarConectado(PenRelHipoteseLegalDTO $objDTO) + { try { $objGenericoBD = new GenericoBD($this->inicializarObjInfraIBanco()); return $objGenericoBD->contar($objDTO); diff --git a/src/rn/PenRelHipoteseLegalRN.php b/src/rn/PenRelHipoteseLegalRN.php index e3b9c08e9..a20885ba9 100755 --- a/src/rn/PenRelHipoteseLegalRN.php +++ b/src/rn/PenRelHipoteseLegalRN.php @@ -2,9 +2,11 @@ require_once DIR_SEI_WEB.'/SEI.php'; -abstract class PenRelHipoteseLegalRN extends InfraRN { +abstract class PenRelHipoteseLegalRN extends InfraRN +{ - protected function inicializarObjInfraIBanco(){ + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } @@ -63,7 +65,8 @@ protected function excluirInternoControlado(PenRelHipoteseLegalDTO $objDTO) } } - public function getIdBarramentoEmUso(PenRelHipoteseLegalDTO $objFiltroDTO, $strTipo = 'E'){ + public function getIdBarramentoEmUso(PenRelHipoteseLegalDTO $objFiltroDTO, $strTipo = 'E') + { $objDTO = new PenRelHipoteseLegalDTO(); $objDTO->setDistinct(true); @@ -76,7 +79,7 @@ public function getIdBarramentoEmUso(PenRelHipoteseLegalDTO $objFiltroDTO, $strT $arrObjDTO = $this->listar($objDTO); - $arrIdBarramento = array(); + $arrIdBarramento = []; if(!empty($arrObjDTO)) { $arrIdBarramento = InfraArray::converterArrInfraDTO($arrObjDTO, 'IdBarramento'); @@ -97,7 +100,7 @@ public function getIdHipoteseLegalEmUso(PenRelHipoteseLegalDTO $objFiltroDTO, $s $arrObjDTO = $this->listar($objDTO); - $arrIdBarramento = array(); + $arrIdBarramento = []; if(!empty($arrObjDTO)) { $arrIdBarramento = InfraArray::converterArrInfraDTO($arrObjDTO, 'IdHipoteseLegal'); diff --git a/src/rn/PenRelHipoteseLegalRecebidoRN.php b/src/rn/PenRelHipoteseLegalRecebidoRN.php index 02c61b032..a40d62e48 100755 --- a/src/rn/PenRelHipoteseLegalRecebidoRN.php +++ b/src/rn/PenRelHipoteseLegalRecebidoRN.php @@ -7,39 +7,47 @@ * * @author michael */ -class PenRelHipoteseLegalRecebidoRN extends PenRelHipoteseLegalRN { +class PenRelHipoteseLegalRecebidoRN extends PenRelHipoteseLegalRN +{ - protected function listarConectado(PenRelHipoteseLegalDTO $objDTO) { + protected function listarConectado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_recebimento_listar', __METHOD__, $objDTO); return parent::listarInterno($objDTO); } - protected function consultarConectado(PenRelHipoteseLegalDTO $objDTO) { + protected function consultarConectado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_recebimento_consultar', __METHOD__, $objDTO); return parent::consultarInterno($objDTO); } - protected function alterarControlado(PenRelHipoteseLegalDTO $objDTO) { + protected function alterarControlado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_recebimento_alterar', __METHOD__, $objDTO); return parent::alterarInterno($objDTO); } - protected function cadastrarControlado(PenRelHipoteseLegalDTO $objDTO) { + protected function cadastrarControlado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_recebimento_cadastrar', __METHOD__, $objDTO); return parent::cadastrarInterno($objDTO); } - protected function excluirControlado(PenRelHipoteseLegalDTO $objDTO) { + protected function excluirControlado(PenRelHipoteseLegalDTO $objDTO) + { SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_hipotese_legal_recebimento_excluir', __METHOD__, $objDTO); return parent::excluirInterno($objDTO); } /** * Pega o ID hipotese PEN para buscar o ID do SEI - * @param integer $numIdentificacao + * + * @param integer $numIdentificacao * @return integer */ - protected function getIdHipoteseLegalSEIConectado($numIdentificacao) { + protected function getIdHipoteseLegalSEIConectado($numIdentificacao) + { $objBanco = BancoSEI::getInstance(); $objGenericoBD = new GenericoBD($objBanco); diff --git a/src/rn/PenRelTipoDocMapEnviadoRN.php b/src/rn/PenRelTipoDocMapEnviadoRN.php index 91c9dec84..1eb6376ed 100755 --- a/src/rn/PenRelTipoDocMapEnviadoRN.php +++ b/src/rn/PenRelTipoDocMapEnviadoRN.php @@ -4,11 +4,13 @@ class PenRelTipoDocMapEnviadoRN extends InfraRN { - public function __construct() { + public function __construct() + { parent::__construct(); } - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } @@ -16,7 +18,6 @@ protected function inicializarObjInfraIBanco() { /** * Lista mapeamentos de tipos de documentos para envio de processos pelo Barramento PEN * - * @param PenRelTipoDocMapEnviadoDTO $parObjPenRelTipoDocMapEnviadoDTO * @return array */ protected function listarConectado(PenRelTipoDocMapEnviadoDTO $parObjPenRelTipoDocMapEnviadoDTO) @@ -43,7 +44,7 @@ protected function consultarConectado(PenRelTipoDocMapEnviadoDTO $objPenRelTipoD protected function listarEmUsoConectado($dblIdSerie) { - $arrNumIdSerie = array(); + $arrNumIdSerie = []; $objPenRelTipoDocMapRecebidoDTO = new PenRelTipoDocMapEnviadoDTO(); $objPenRelTipoDocMapRecebidoDTO->retNumIdSerie(); $objPenRelTipoDocMapRecebidoDTO->setDistinct(true); @@ -101,7 +102,7 @@ public function cadastrarConectado(PenRelTipoDocMapEnviadoDTO $objParamDTO) /** * Exclui lista de mapeamentos de tipos de documentos para envio de processos pelo Barramento PEN * - * @param PenRelTipoDocMapEnviadoDTO $parObjPenRelTipoDocMapEnviadoDTO + * @param PenRelTipoDocMapEnviadoDTO $parObjPenRelTipoDocMapEnviadoDTO * @return void */ protected function excluirControlado($parArrObjPenRelTipoDocMapEnviadoDTO) @@ -126,7 +127,7 @@ protected function excluirControlado($parArrObjPenRelTipoDocMapEnviadoDTO) /** * Remove uma espcie documental da base de dados do SEI baseado em um cdigo de espcie do Barramento * - * @param int $parNumIdEspecieDocumentla + * @param int $parNumIdEspecieDocumentla * @return void */ protected function excluirPorEspecieDocumentalControlado($parNumIdEspecieDocumental) @@ -142,17 +143,17 @@ protected function excluirPorEspecieDocumentalControlado($parNumIdEspecieDocumen } }catch(Exception $e){ - throw new InfraException('Erro removendo Mapeamento de Tipos de Documento para envio pelo cdigo de espcie.', $e); + throw new InfraException('Erro removendo Mapeamento de Tipos de Documento para envio pelo cdigo de espcie.', $e); } } protected function contarConectado(PenRelTipoDocMapEnviadoDTO $parObjPenRelTipoDocMapEnviadoDTO) { try { - $objPenRelTipoDocMapEnviadoBD = new PenRelTipoDocMapEnviadoBD($this->getObjInfraIBanco()); - return $objPenRelTipoDocMapEnviadoBD->contar($parObjPenRelTipoDocMapEnviadoDTO); + $objPenRelTipoDocMapEnviadoBD = new PenRelTipoDocMapEnviadoBD($this->getObjInfraIBanco()); + return $objPenRelTipoDocMapEnviadoBD->contar($parObjPenRelTipoDocMapEnviadoDTO); }catch(Exception $e){ - throw new InfraException('Erro contando Mapeamento de Tipos de Documento para Envio.', $e); + throw new InfraException('Erro contando Mapeamento de Tipos de Documento para Envio.', $e); } } @@ -174,11 +175,11 @@ protected function mapearEspeciesDocumentaisEnvioControlado() $numPercentualSimilaridadeValido = 85; // Obter todas as espcies documentais do Barramento de Servios do PEN - $arrEspeciesDocumentais = array(); + $arrEspeciesDocumentais = []; $arrEspecies = $objTipoDocMapRN->listarParesEspecie(); foreach ($arrEspecies as $numCodigo => $strItem) { foreach (preg_split('/\//', $strItem) as $strNomeEspecie) { - $arrEspeciesDocumentais[] = array("codigo" => $numCodigo, "nome" => $strNomeEspecie); + $arrEspeciesDocumentais[] = ["codigo" => $numCodigo, "nome" => $strNomeEspecie]; } } @@ -198,7 +199,7 @@ protected function mapearEspeciesDocumentaisEnvioControlado() $numTamNomeEspecie = strlen($strNomeEspecieDocumental); $numPosEspacoAdicional = strpos($strNomeTipoDocumento, ' ', min($numTamNomeEspecie, $numTamNomeTipoDoc)); - if($numPosEspacoAdicional){ + if($numPosEspacoAdicional) { // Avaliao com tamanho reduzido, caso seja um termo composto $numTamanhoReducao = max($numTamNomeEspecie, $numPosEspacoAdicional); $strNomeTipoDocReduzido = substr($strNomeTipoDocumento, 0, $numTamanhoReducao); @@ -217,11 +218,11 @@ protected function mapearEspeciesDocumentaisEnvioControlado() } } - if(isset($numMelhorSimilaridade)){ + if(isset($numMelhorSimilaridade)) { // Realiza o mapeamento do tipo de documento com a espcie documental similar $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapEnviadoDTO(); $objPenRelTipoDocMapEnviadoDTO->setNumIdSerie($numIdTipoDocumento); - if($objPenRelTipoDocMapEnviadoRN->contar($objPenRelTipoDocMapEnviadoDTO) == 0){ + if($objPenRelTipoDocMapEnviadoRN->contar($objPenRelTipoDocMapEnviadoDTO) == 0) { $objPenRelTipoDocMapEnviadoDTO->setNumCodigoEspecie($numIdEspecieSimilar); $objPenRelTipoDocMapEnviadoRN->cadastrar($objPenRelTipoDocMapEnviadoDTO); } diff --git a/src/rn/PenRelTipoDocMapRecebidoRN.php b/src/rn/PenRelTipoDocMapRecebidoRN.php index a334c3e44..216e9bd81 100755 --- a/src/rn/PenRelTipoDocMapRecebidoRN.php +++ b/src/rn/PenRelTipoDocMapRecebidoRN.php @@ -4,17 +4,19 @@ class PenRelTipoDocMapRecebidoRN extends InfraRN { - public function __construct() { + public function __construct() + { parent::__construct(); } - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } protected function listarEmUsoConectado($dblCodigoEspecie) { - $arrNumCodigoEspecie = array(); + $arrNumCodigoEspecie = []; $objDTO = new PenRelTipoDocMapRecebidoDTO(); $objDTO->retNumCodigoEspecie(); @@ -44,7 +46,7 @@ protected function listarEmUsoConectado($dblCodigoEspecie) /** * Cadastra mapeamentos de tipos de documentos para envio de processos pelo Barramento PEN * - * @param PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO + * @param PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO * @return void */ public function cadastrarControlado(PenRelTipoDocMapRecebidoDTO $objParamDTO) @@ -74,7 +76,6 @@ public function cadastrarControlado(PenRelTipoDocMapRecebidoDTO $objParamDTO) /** * Consulta os mapeamentos de tipos de documentos para envio de processos pelo Barramento PEN para recebimento * - * @param PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO * @return void */ protected function consultarConectado(PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO) @@ -91,7 +92,7 @@ protected function consultarConectado(PenRelTipoDocMapRecebidoDTO $parObjPenRelT /** * Remove uma espcie documental da base de dados do SEI baseado em um cdigo de espcie do Barramento * - * @param int $parNumIdEspecieDocumentla + * @param int $parNumIdEspecieDocumentla * @return void */ protected function excluirPorEspecieDocumentalControlado($parNumIdEspecieDocumental) @@ -107,14 +108,13 @@ protected function excluirPorEspecieDocumentalControlado($parNumIdEspecieDocumen } }catch(Exception $e){ - throw new InfraException('Erro removendo Mapeamento de Tipos de Documento para recebimento pelo cdigo de espcie.', $e); + throw new InfraException('Erro removendo Mapeamento de Tipos de Documento para recebimento pelo cdigo de espcie.', $e); } } /** * Lista mapeamentos de tipos de documentos para recebimento de processos pelo Barramento PEN * - * @param PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO * @return array */ protected function listarConectado(PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO) @@ -131,23 +131,22 @@ protected function listarConectado(PenRelTipoDocMapRecebidoDTO $parObjPenRelTipo /** * Conta a lista de mapeamentos de tipos de documentos para envio de processos pelo Barramento PEN * - * @param PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO * @return int */ protected function contarConectado(PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO) { try { - $objPenRelTipoDocMapRecebidoBD = new PenRelTipoDocMapRecebidoBD($this->getObjInfraIBanco()); - return $objPenRelTipoDocMapRecebidoBD->contar($parObjPenRelTipoDocMapRecebidoDTO); + $objPenRelTipoDocMapRecebidoBD = new PenRelTipoDocMapRecebidoBD($this->getObjInfraIBanco()); + return $objPenRelTipoDocMapRecebidoBD->contar($parObjPenRelTipoDocMapRecebidoDTO); }catch(Exception $e){ - throw new InfraException('Erro contando Mapeamento de Tipos de Documento para Recebimento.', $e); + throw new InfraException('Erro contando Mapeamento de Tipos de Documento para Recebimento.', $e); } } /** * Exclui lista de mapeamentos de tipos de documentos para envio de processos pelo Barramento PEN * - * @param PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO + * @param PenRelTipoDocMapRecebidoDTO $parObjPenRelTipoDocMapRecebidoDTO * @return void */ protected function excluirControlado($parArrObjPenRelTipoDocMapRecebidoDTO) @@ -184,11 +183,11 @@ protected function mapearEspeciesDocumentaisRecebimentoControlado() // Obter todas as espcies documentais do Barramento de Servios do PEN // Antes separa as espcies com nomes separados por '/' em itens diferentes - $arrEspeciesDocumentais = array(); + $arrEspeciesDocumentais = []; $arrEspecies = $objTipoDocMapRN->listarParesEspecie($this->listarEmUso(null)); foreach ($arrEspecies as $numCodigo => $strItem) { foreach (preg_split('/\//', $strItem) as $strNomeEspecie) { - $arrEspeciesDocumentais[] = array("codigo" => $numCodigo, "nome" => $strNomeEspecie); + $arrEspeciesDocumentais[] = ["codigo" => $numCodigo, "nome" => $strNomeEspecie]; } } @@ -204,7 +203,7 @@ protected function mapearEspeciesDocumentaisRecebimentoControlado() $numTamNomeEspecie = strlen($strNomeEspecieDocumental); $numPosEspacoAdicional = strpos($strNomeTipoDocumento, ' ', min($numTamNomeEspecie, $numTamNomeTipoDoc)); - if($numPosEspacoAdicional){ + if($numPosEspacoAdicional) { // Avaliao com tamanho reduzido, caso seja um termo composto $numTamanhoReducao = max($numTamNomeEspecie, $numPosEspacoAdicional); $strNomeTipoDocReduzido = substr($strNomeTipoDocumento, 0, $numTamanhoReducao); @@ -223,11 +222,11 @@ protected function mapearEspeciesDocumentaisRecebimentoControlado() } - if(isset($numMelhorSimilaridade)){ + if(isset($numMelhorSimilaridade)) { // Realiza o mapeamento do tipo de documento com a espcie documental similar $objPenRelTipoDocMapRecebidoDTO = new PenRelTipoDocMapRecebidoDTO(); $objPenRelTipoDocMapRecebidoDTO->setNumCodigoEspecie($numIdEspecieDocumental); - if($this->contar($objPenRelTipoDocMapRecebidoDTO) == 0){ + if($this->contar($objPenRelTipoDocMapRecebidoDTO) == 0) { $objPenRelTipoDocMapRecebidoDTO->setNumIdSerie($numIdTipDocumentoSimilar); $this->cadastrar($objPenRelTipoDocMapRecebidoDTO); } diff --git a/src/rn/PenRestricaoEnvioComponentesDigitaisRN.php b/src/rn/PenRestricaoEnvioComponentesDigitaisRN.php old mode 100644 new mode 100755 index ffb10a0a1..321a02051 --- a/src/rn/PenRestricaoEnvioComponentesDigitaisRN.php +++ b/src/rn/PenRestricaoEnvioComponentesDigitaisRN.php @@ -8,139 +8,141 @@ class PenRestricaoEnvioComponentesDigitaisRN extends InfraRN { - /** - * Inicializa o obj do banco da Infra - * @return obj - */ + /** + * Inicializa o obj do banco da Infra + * + * @return obj + */ protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } - /** - * Mtodo utilizado para listagem de dados. - * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para listagem de dados. + * + * @return array + * @throws InfraException + */ protected function listarConectado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao( - 'pen_map_envio_parcial_listar', - __METHOD__, - $objDTO - ); - $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->getObjInfraIBanco()); - return $objBD->listar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_envio_parcial_listar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->getObjInfraIBanco()); + return $objBD->listar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro listando Unidades.', $e); + throw new InfraException('Erro listando Unidades.', $e); } } - /** - * Mtodo utilizado para consulta de dados. - * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para consulta de dados. + * + * @return array + * @throws InfraException + */ protected function consultarControlado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao( - 'pen_map_envio_parcial_visualizar', - __METHOD__, - $objDTO - ); - $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - return $objBD->consultar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_envio_parcial_visualizar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); + return $objBD->consultar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro consultar mapeamento de unidades.', $e); + throw new InfraException('Erro consultar mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para alterao de dados. - * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para alterao de dados. + * + * @return array + * @throws InfraException + */ protected function alterarControlado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao( - 'pen_map_envio_parcial_atualizar', - __METHOD__, - $objDTO - ); - $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - return $objBD->alterar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_envio_parcial_atualizar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); + return $objBD->alterar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro alterando mapeamento de unidades.', $e); + throw new InfraException('Erro alterando mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para cadastro de dados. - * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para cadastro de dados. + * + * @return array + * @throws InfraException + */ protected function cadastrarConectado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao( - 'pen_map_envio_parcial_salvar', - __METHOD__, - $objDTO - ); - $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - return $objBD->cadastrar($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_envio_parcial_salvar', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); + return $objBD->cadastrar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro cadastrando mapeamento de unidades.', $e); + throw new InfraException('Erro cadastrando mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para excluso de dados. - * @param PenRestricaoEnvioComponentesDigitaisDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para excluso de dados. + * + * @return array + * @throws InfraException + */ protected function excluirControlado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao( - 'pen_map_envio_parcial_excluir', - __METHOD__, - $objDTO - ); - $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - return $objBD->excluir($objDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao( + 'pen_map_envio_parcial_excluir', + __METHOD__, + $objDTO + ); + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); + return $objBD->excluir($objDTO); } catch (Exception $e) { - throw new InfraException('Erro excluindo mapeamento de unidades.', $e); + throw new InfraException('Erro excluindo mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para contagem de unidades mapeadas - * @param PenRestricaoEnvioComponentesDigitaisDTO $objUnidadeDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para contagem de unidades mapeadas + * + * @param PenRestricaoEnvioComponentesDigitaisDTO $objUnidadeDTO + * @return array + * @throws InfraException + */ protected function contarConectado(PenRestricaoEnvioComponentesDigitaisDTO $objDTO) - { + { try { - //Valida Permissao - $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->getObjInfraIBanco()); - return $objBD->contar($objDTO); + //Valida Permissao + $objBD = new PenRestricaoEnvioComponentesDigitaisBD($this->getObjInfraIBanco()); + return $objBD->contar($objDTO); } catch (Exception $e) { - throw new InfraException('Erro contando mapeamento de unidades.', $e); + throw new InfraException('Erro contando mapeamento de unidades.', $e); } } } diff --git a/src/rn/PenTramiteProcessadoRN.php b/src/rn/PenTramiteProcessadoRN.php index 8ca7a2249..488c260dc 100755 --- a/src/rn/PenTramiteProcessadoRN.php +++ b/src/rn/PenTramiteProcessadoRN.php @@ -3,7 +3,8 @@ * * */ -class PenTramiteProcessadoRN extends InfraRN { +class PenTramiteProcessadoRN extends InfraRN +{ const STR_TIPO_PROCESSO = 'RP'; const STR_TIPO_RECIBO = 'RR'; @@ -13,7 +14,8 @@ class PenTramiteProcessadoRN extends InfraRN { protected $objInfraBanco; private $strTipo; - public function __construct($strTipo = self::STR_TIPO_PROCESSO) { + public function __construct($strTipo = self::STR_TIPO_PROCESSO) + { parent::__construct(); $this->strTipo = $strTipo; } @@ -22,7 +24,8 @@ public function __construct($strTipo = self::STR_TIPO_PROCESSO) { * * @return BancoSEI */ - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { if(empty($this->objInfraBanco)) { @@ -36,10 +39,11 @@ protected function inicializarObjInfraIBanco() { * * @return bool */ - protected function isProcedimentoRecebidoControlado($dblIdTramite = 0){ + protected function isProcedimentoRecebidoControlado($dblIdTramite = 0) + { //Verifica se o trmite no foi cancelado ou recusado - if($this->isTramiteRecusadoCancelado($dblIdTramite)){ + if($this->isTramiteRecusadoCancelado($dblIdTramite)) { return true; } @@ -92,7 +96,8 @@ protected function isProcedimentoRecebidoControlado($dblIdTramite = 0){ } } - public function setRecebido($dblIdTramite = 0){ + public function setRecebido($dblIdTramite = 0) + { $objDTO = new PenTramiteProcessadoDTO(); $objDTO->setDblIdTramite($dblIdTramite); @@ -112,10 +117,11 @@ public function setRecebido($dblIdTramite = 0){ /** * Mtodo que verifica se o trmite em questo foi cancelado ou recusado * - * @param integer $parNumIdTramite + * @param integer $parNumIdTramite * @return boolean */ - public function isTramiteRecusadoCancelado($parNumIdTramite){ + public function isTramiteRecusadoCancelado($parNumIdTramite) + { //Instancia a classe processo eletrnico $processoEletronicoRN = new ProcessoEletronicoRN(); @@ -125,7 +131,7 @@ public function isTramiteRecusadoCancelado($parNumIdTramite){ $objTramite = $arrObjTramite[0]; //Verifica se o trmite em questo. foi recusado o cancelado - if($objTramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO || $objTramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO){ + if($objTramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO || $objTramite->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO) { return true; }else{ return false; diff --git a/src/rn/PenUnidadeRN.php b/src/rn/PenUnidadeRN.php index aecebd6c0..06c20a8a2 100755 --- a/src/rn/PenUnidadeRN.php +++ b/src/rn/PenUnidadeRN.php @@ -4,25 +4,27 @@ /** * Description of PenUnidadeEnvioRN - * - * */ -class PenUnidadeRN extends InfraRN { +class PenUnidadeRN extends InfraRN +{ /** * Inicializa o obj do banco da Infra + * * @return obj */ - protected function inicializarObjInfraIBanco(){ + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } /** * Mtodo para buscar apenas as unidades que j esto em uso - * @param PenUnidadeDTO $objFiltroDTO + * * @return arrayDTO */ - protected function getIdUnidadeEmUsoConectado(PenUnidadeDTO $objFiltroDTO){ + protected function getIdUnidadeEmUsoConectado(PenUnidadeDTO $objFiltroDTO) + { $objDTO = new PenUnidadeDTO(); $objDTO->setDistinct(true); $objDTO->retNumIdUnidade(); @@ -33,7 +35,7 @@ protected function getIdUnidadeEmUsoConectado(PenUnidadeDTO $objFiltroDTO){ $arrObjDTO = $this->listar($objDTO); - $arrIdUnidade = array(); + $arrIdUnidade = []; if(!empty($arrObjDTO)) { $arrIdUnidade = InfraArray::converterArrInfraDTO($arrObjDTO, 'IdUnidade'); @@ -43,11 +45,13 @@ protected function getIdUnidadeEmUsoConectado(PenUnidadeDTO $objFiltroDTO){ /** * Mtodo utilizado para listagem de dados. - * @param UnidadeDTO $objUnidadeDTO + * + * @param UnidadeDTO $objUnidadeDTO * @return array * @throws InfraException */ - protected function listarConectado(UnidadeDTO $objPenUnidadeDTO) { + protected function listarConectado(UnidadeDTO $objPenUnidadeDTO) + { try { //Valida Permissao SessaoSEI::getInstance()->validarAuditarPermissao('pen_map_unidade_listar', __METHOD__, $objUnidadeDTO); @@ -60,11 +64,13 @@ protected function listarConectado(UnidadeDTO $objPenUnidadeDTO) { /** * Mtodo utilizado para alterao de dados. - * @param UnidadeDTO $objDTO + * + * @param UnidadeDTO $objDTO * @return array * @throws InfraException */ - protected function alterarControlado(UnidadeDTO $objPenUnidadeDTO){ + protected function alterarControlado(UnidadeDTO $objPenUnidadeDTO) + { try { $objPenUnidadeBD = new PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objPenUnidadeBD->alterar($objPenUnidadeDTO); @@ -76,11 +82,12 @@ protected function alterarControlado(UnidadeDTO $objPenUnidadeDTO){ /** * Mtodo utilizado para cadastro de dados. - * @param UnidadeDTO $objDTO + * * @return array * @throws InfraException */ - protected function cadastrarConectado(UnidadeDTO $objDTO){ + protected function cadastrarConectado(UnidadeDTO $objDTO) + { try { $objBD = new PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objBD->cadastrar($objDTO); @@ -92,11 +99,12 @@ protected function cadastrarConectado(UnidadeDTO $objDTO){ /** * Mtodo utilizado para excluso de dados. - * @param UnidadeDTO $objDTO + * * @return array * @throws InfraException */ - protected function excluirControlado(UnidadeDTO $objDTO){ + protected function excluirControlado(UnidadeDTO $objDTO) + { try { $objBD = new PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objBD->excluir($objDTO); @@ -108,11 +116,13 @@ protected function excluirControlado(UnidadeDTO $objDTO){ /** * Mtodo utilizado para contagem de unidades mapeadas - * @param UnidadeDTO $objUnidadeDTO + * + * @param UnidadeDTO $objUnidadeDTO * @return array * @throws InfraException */ - protected function contarConectado(PenUnidadeDTO $objPenUnidadeDTO) { + protected function contarConectado(PenUnidadeDTO $objPenUnidadeDTO) + { try { //Valida Permissao $objPenUnidadeBD = new PenUnidadeBD($this->getObjInfraIBanco()); @@ -123,13 +133,15 @@ protected function contarConectado(PenUnidadeDTO $objPenUnidadeDTO) { } } - /** - * Mtodo utilizado para consultar dados. - * @param UnidadeDTO $objDTO - * @return PenUnidadeDTO - * @throws InfraException - */ - protected function consultarConectado(PenUnidadeDTO $objDTO){ + /** + * Mtodo utilizado para consultar dados. + * + * @param UnidadeDTO $objDTO + * @return PenUnidadeDTO + * @throws InfraException + */ + protected function consultarConectado(PenUnidadeDTO $objDTO) + { try { $objBD = new PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objBD->consultar($objDTO); diff --git a/src/rn/PenUnidadeRestricaoRN.php b/src/rn/PenUnidadeRestricaoRN.php old mode 100644 new mode 100755 index 30e5f9538..633564bee --- a/src/rn/PenUnidadeRestricaoRN.php +++ b/src/rn/PenUnidadeRestricaoRN.php @@ -4,52 +4,52 @@ /** * Description of PenUnidadeRestricaoEnvioRN - * - * */ class PenUnidadeRestricaoRN extends InfraRN { - /** - * Inicializa o obj do banco da Infra - * @return obj - */ + /** + * Inicializa o obj do banco da Infra + * + * @return obj + */ protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } - /** - * Mtodo utilizado para listagem de dados. - * @param PenUnidadeRestricaoDTO $objPenUnidadeRestricaoDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para listagem de dados. + * + * @return array + * @throws InfraException + */ protected function listarConectado(PenUnidadeRestricaoDTO $objPenUnidadeRestricaoDTO) - { + { try { - $objPenUnidadeRestricaoBD = new PenUnidadeRestricaoBD($this->getObjInfraIBanco()); - return $objPenUnidadeRestricaoBD->listar($objPenUnidadeRestricaoDTO); + $objPenUnidadeRestricaoBD = new PenUnidadeRestricaoBD($this->getObjInfraIBanco()); + return $objPenUnidadeRestricaoBD->listar($objPenUnidadeRestricaoDTO); } catch (Exception $e) { - throw new InfraException('Erro listando Unidades.', $e); + throw new InfraException('Erro listando Unidades.', $e); } } - /** - * Mtodo utilizado para preparar cadastro de dados. - * @param string $hdnRepoEstruturas - * @param string $IdUnidade - * @param string $IdUnidadeRH - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para preparar cadastro de dados. + * + * @param string $hdnRepoEstruturas + * @param string $IdUnidade + * @param string $IdUnidadeRH + * @return array + * @throws InfraException + */ public function prepararRepoEstruturas($IdUnidade, $IdUnidadeRH, $hdnRepoEstruturas) - { - $arrUnidadesSelecionadas = array(); - $arrayObjPenUnidadeRestricaoDTO = array(); - $arrOpcoes = PaginaSEI::getInstance()->getArrOptionsSelect($hdnRepoEstruturas); + { + $arrUnidadesSelecionadas = []; + $arrayObjPenUnidadeRestricaoDTO = []; + $arrOpcoes = PaginaSEI::getInstance()->getArrOptionsSelect($hdnRepoEstruturas); foreach ($arrOpcoes as $opcoes) { - $hdnRepoEstruturasUnidades = 'hdnRepoEstruturas' . $opcoes[0]; + $hdnRepoEstruturasUnidades = 'hdnRepoEstruturas' . $opcoes[0]; if(array_key_exists($hdnRepoEstruturasUnidades, $_POST) && !empty($_POST[$hdnRepoEstruturasUnidades])) { $arrOpcoesUnidades = PaginaSEI::getInstance()->getArrOptionsSelect($_POST[$hdnRepoEstruturasUnidades]); foreach ($arrOpcoesUnidades as $opcoesUnidades) { @@ -67,92 +67,94 @@ public function prepararRepoEstruturas($IdUnidade, $IdUnidadeRH, $hdnRepoEstrutu } } else { if (!in_array($opcoes[0], $arrUnidadesSelecionadas)) { - $arrUnidadesSelecionadas[] = $opcoes[0]; - $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); - $objPenUnidadeRestricaoDTO->setNumIdUnidade($IdUnidade); - $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($IdUnidadeRH); - $objPenUnidadeRestricaoDTO->setNumIdUnidadeRestricao($opcoes[0]); - $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRestricao($opcoes[1]); - $arrayObjPenUnidadeRestricaoDTO[] = $objPenUnidadeRestricaoDTO; + $arrUnidadesSelecionadas[] = $opcoes[0]; + $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); + $objPenUnidadeRestricaoDTO->setNumIdUnidade($IdUnidade); + $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($IdUnidadeRH); + $objPenUnidadeRestricaoDTO->setNumIdUnidadeRestricao($opcoes[0]); + $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRestricao($opcoes[1]); + $arrayObjPenUnidadeRestricaoDTO[] = $objPenUnidadeRestricaoDTO; } } } - return $arrayObjPenUnidadeRestricaoDTO; + return $arrayObjPenUnidadeRestricaoDTO; } - /** - * Mtodo utilizado para cadastro de lista de dados. - * @param array $arrayObjDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para cadastro de lista de dados. + * + * @param array $arrayObjDTO + * @return array + * @throws InfraException + */ protected function cadastrarConectado($arrayObjDTO) - { + { try { - $retArrayObjDTO = array(); - $objBD = new PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); + $retArrayObjDTO = []; + $objBD = new PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); foreach ($arrayObjDTO as $objDTO) { $retArrayObjDTO[] = $objBD->cadastrar($objDTO); } - return $retArrayObjDTO; + return $retArrayObjDTO; } catch (Exception $e) { - throw new InfraException('Erro cadastrando restrio de tramite no mapeamento de unidades.', $e); + throw new InfraException('Erro cadastrando restrio de tramite no mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para excluso de dados. - * @param PenUnidadeRestricaoDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para excluso de dados. + * + * @return array + * @throws InfraException + */ protected function prepararExcluirControlado(PenUnidadeRestricaoDTO $objDTO) - { + { try { - $arrayObjPenUnidadeRestricaoDTO = array(); - $objDTO->retTodos(); - $objPenUnidadeRestricaoDTO = $this->listar($objDTO); + $arrayObjPenUnidadeRestricaoDTO = []; + $objDTO->retTodos(); + $objPenUnidadeRestricaoDTO = $this->listar($objDTO); if ($objPenUnidadeRestricaoDTO != null) { foreach ($objPenUnidadeRestricaoDTO as $value) { - $arrayObjPenUnidadeRestricaoDTO[] = $this->excluir($value); + $arrayObjPenUnidadeRestricaoDTO[] = $this->excluir($value); } } - return $arrayObjPenUnidadeRestricaoDTO; + return $arrayObjPenUnidadeRestricaoDTO; } catch (Exception $e) { - throw new InfraException('Erro excluindo mapeamento de unidades.', $e); + throw new InfraException('Erro excluindo mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para excluso de dados. - * @param PenUnidadeRestricaoDTO $objDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para excluso de dados. + * + * @return array + * @throws InfraException + */ protected function excluirControlado(PenUnidadeRestricaoDTO $objDTO) - { + { try { - $objBD = new PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); - return $objBD->excluir($objDTO); + $objBD = new PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); + return $objBD->excluir($objDTO); } catch (Exception $e) { - throw new InfraException('Erro excluindo mapeamento de unidades.', $e); + throw new InfraException('Erro excluindo mapeamento de unidades.', $e); } } - /** - * Mtodo utilizado para contagem de unidades mapeadas - * @param UnidadeDTO $objUnidadeDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para contagem de unidades mapeadas + * + * @param UnidadeDTO $objUnidadeDTO + * @return array + * @throws InfraException + */ protected function contarConectado(PenUnidadeRestricaoDTO $objPenUnidadeDTO) - { + { try { - //Valida Permissao - $objPenUnidadeBD = new PenUnidadeRestricaoBD($this->getObjInfraIBanco()); - return $objPenUnidadeBD->contar($objPenUnidadeDTO); + //Valida Permissao + $objPenUnidadeBD = new PenUnidadeRestricaoBD($this->getObjInfraIBanco()); + return $objPenUnidadeBD->contar($objPenUnidadeDTO); } catch (Exception $e) { - throw new InfraException('Erro contando mapeamento de unidades.', $e); + throw new InfraException('Erro contando mapeamento de unidades.', $e); } } } diff --git a/src/rn/PendenciasEnvioTramiteRN.php b/src/rn/PendenciasEnvioTramiteRN.php old mode 100644 new mode 100755 index 2f6f80d67..4a5121c9d --- a/src/rn/PendenciasEnvioTramiteRN.php +++ b/src/rn/PendenciasEnvioTramiteRN.php @@ -5,27 +5,27 @@ class PendenciasEnvioTramiteRN extends PendenciasTramiteRN { public function expedirPendencias($parBolMonitorarPendencias = false, $parBolSegundoPlano = false, $parBolDebug = false) - { + { try { - ini_set('max_execution_time', '0'); - ini_set('memory_limit', '-1'); + ini_set('max_execution_time', '0'); + ini_set('memory_limit', '-1'); if (!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { return false; } if (empty($this->strEnderecoServico) && empty($this->strEnderecoServicoPendencias)) { - throw new InfraException("Servio de monitoramento de pendncias no pode ser iniciado devido falta de configurao de endereos de WebServices"); + throw new InfraException("Servio de monitoramento de pendncias no pode ser iniciado devido falta de configurao de endereos de WebServices"); } - ModPenUtilsRN::simularLoginUnidadeRecebimento(); - $mensagemInicioMonitoramento = 'Iniciando servio de monitoramento de envio de pendncias de trmites de processos'; - $this->gravarLogDebug($mensagemInicioMonitoramento, 0); + ModPenUtilsRN::simularLoginUnidadeRecebimento(); + $mensagemInicioMonitoramento = 'Iniciando servio de monitoramento de envio de pendncias de trmites de processos'; + $this->gravarLogDebug($mensagemInicioMonitoramento, 0); do { try { - $this->gravarLogDebug('Recuperando lista de pendncias de envio do Tramita GOV.BR', 1); - $arrObjPendenciasDTO = $this->obterPendenciasEnvioTramite($parBolMonitorarPendencias); + $this->gravarLogDebug('Recuperando lista de pendncias de envio do Tramita GOV.BR', 1); + $arrObjPendenciasDTO = $this->obterPendenciasEnvioTramite(); foreach ($arrObjPendenciasDTO as $objPendenciaDTO) { @@ -35,168 +35,160 @@ public function expedirPendencias($parBolMonitorarPendencias = false, $parBolSeg $this->gravarLogDebug($mensagemLog, 3); try { - $this->expedirPendenciaProcessamento($objPendenciaDTO, $parBolSegundoPlano); + $this->expedirPendenciaProcessamento($objPendenciaDTO, $parBolSegundoPlano); } catch (\Exception $e) { - $this->gravarAmostraErroLogSEI($e); - $this->gravarLogDebug(InfraException::inspecionar($e)); + $this->gravarAmostraErroLogSEI($e); + $this->gravarLogDebug(InfraException::inspecionar($e)); } } } catch (ModuloIncompativelException $e) { - // Sai loop de eventos para finalizar o script e subir uma nova verso atualizada - throw $e; + // Sai loop de eventos para finalizar o script e subir uma nova verso atualizada + throw $e; } catch (Exception $e) { - //Apenas registra a falha no log do sistema e reinicia o ciclo de requisio - $this->gravarAmostraErroLogSEI($e); - $this->gravarLogDebug(InfraException::inspecionar($e)); + //Apenas registra a falha no log do sistema e reinicia o ciclo de requisio + $this->gravarAmostraErroLogSEI($e); + $this->gravarLogDebug(InfraException::inspecionar($e)); } if ($parBolMonitorarPendencias) { - $this->gravarLogDebug(sprintf("Reiniciando monitoramento de pendncias em %s segundos", self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO), 1); - sleep(self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO); - $this->carregarParametrosIntegracao(); + $this->gravarLogDebug(sprintf("Reiniciando monitoramento de pendncias em %s segundos", self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO), 1); + sleep(self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO); + $this->carregarParametrosIntegracao(); } } while ($parBolMonitorarPendencias); } catch (Exception $e) { - $this->gravarLogDebug(InfraException::inspecionar($e)); - $this->gravarAmostraErroLogSEI($e); - return self::CODIGO_EXECUCAO_ERRO; + $this->gravarLogDebug(InfraException::inspecionar($e)); + $this->gravarAmostraErroLogSEI($e); + return self::CODIGO_EXECUCAO_ERRO; } - // Caso no esteja sendo realizado o monitoramente de pendncias, lana exceo diretamente na pgina para apresentao ao usurio - if (!$parBolMonitorarPendencias) { + // Caso no esteja sendo realizado o monitoramente de pendncias, lana exceo diretamente na pgina para apresentao ao usurio $this->salvarLogDebug($parBolDebug); - } - return self::CODIGO_EXECUCAO_SUCESSO; + return self::CODIGO_EXECUCAO_SUCESSO; } - /** - * Funo para recuperar as pendncias de trmite que j foram recebidas pelo servio de long pulling e no foram processadas com sucesso - * @param num $parNumIdTramiteRecebido - * @return [type] [description] - */ - private function obterPendenciasEnvioTramite($parBolMonitorarPendencias) - { - //Obter todos os trmites pendentes antes de iniciar o monitoramento - $arrPendenciasRetornadas = array(); - $arrObjPendenciasDTO = array(); - - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcessoDTO->retDblIdProtocolo(); - $objPenBlocoProcessoDTO->retNumIdAndamento(); - $objPenBlocoProcessoDTO->retNumIdAtividade(); - $objPenBlocoProcessoDTO->retNumIdRepositorioDestino(); - $objPenBlocoProcessoDTO->retStrRepositorioDestino(); - $objPenBlocoProcessoDTO->retNumIdRepositorioOrigem(); - $objPenBlocoProcessoDTO->retNumIdUnidadeDestino(); - $objPenBlocoProcessoDTO->retStrUnidadeDestino(); - $objPenBlocoProcessoDTO->retNumIdUnidadeOrigem(); - $objPenBlocoProcessoDTO->retNumIdBloco(); - $objPenBlocoProcessoDTO->retNumIdUsuario(); - $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); - $objPenBlocoProcessoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO); - - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoRN->obterPendenciasBloco($objPenBlocoProcessoDTO); - + /** + * Funo para recuperar as pendncias de trmite que j foram recebidas pelo servio de long pulling e no foram processadas com sucesso + * + * @param num $parNumIdTramiteRecebido + * @return [type] [description] + */ + private function obterPendenciasEnvioTramite() + { + //Obter todos os trmites pendentes antes de iniciar o monitoramento + $arrPendenciasRetornadas = []; + $arrObjPendenciasDTO = []; + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcessoDTO->retDblIdProtocolo(); + $objPenBlocoProcessoDTO->retNumIdAndamento(); + $objPenBlocoProcessoDTO->retNumIdAtividade(); + $objPenBlocoProcessoDTO->retNumIdRepositorioDestino(); + $objPenBlocoProcessoDTO->retStrRepositorioDestino(); + $objPenBlocoProcessoDTO->retNumIdRepositorioOrigem(); + $objPenBlocoProcessoDTO->retNumIdUnidadeDestino(); + $objPenBlocoProcessoDTO->retStrUnidadeDestino(); + $objPenBlocoProcessoDTO->retNumIdUnidadeOrigem(); + $objPenBlocoProcessoDTO->retNumIdBloco(); + $objPenBlocoProcessoDTO->retNumIdUsuario(); + $objPenBlocoProcessoDTO->retStrProtocoloFormatadoProtocolo(); + $objPenBlocoProcessoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_NAO_INICIADO); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrObjPenBlocoProcessoDTO = $objPenBlocoProcessoRN->obterPendenciasBloco($objPenBlocoProcessoDTO); foreach ($arrObjPenBlocoProcessoDTO as $objPenBlocoProcessoDTO) { $objPendenciaDTO = new PendenciaDTO(); $objPendenciaDTO->setNumIdentificacaoTramite($objPenBlocoProcessoDTO->getDblIdProtocolo()); $objPendenciaDTO->setStrStatus($objPenBlocoProcessoDTO->getNumIdAndamento()); $arrObjPendenciasDTO[] = $objPendenciaDTO; } - - $this->gravarLogDebug(count($arrObjPendenciasDTO) . " pendncias de trmites identificadas", 2); - + $this->gravarLogDebug(count($arrObjPendenciasDTO) . " pendncias de trmites identificadas", 2); foreach ($arrObjPendenciasDTO as $objPendenciaDTO) { - //Captura todas as pendncias e status retornadas para impedir duplicidade - $arrPendenciasRetornadas[] = sprintf("%d-%s", $objPendenciaDTO->getNumIdentificacaoTramite(), $objPendenciaDTO->getStrStatus()); - yield $objPendenciaDTO; + //Captura todas as pendncias e status retornadas para impedir duplicidade + $arrPendenciasRetornadas[] = sprintf("%d-%s", $objPendenciaDTO->getNumIdentificacaoTramite(), $objPendenciaDTO->getStrStatus()); + yield $objPendenciaDTO; } } - /** - * Envia a pendncia de trmite para a fila de processamento do tarefas de acordo com a estratgia definida - * - * @param stdClass $objPendencia - * @return void - */ + /** + * Envia a pendncia de trmite para a fila de processamento do tarefas de acordo com a estratgia definida + * + * @param stdClass $objPendencia + * @return void + */ private function expedirPendenciaProcessamento($objPendencia, $parBolSegundoPlano) - { + { if ($parBolSegundoPlano && $this->servicoGearmanAtivo()) { - $this->expedirPendenciaFilaProcessamento($objPendencia); + $this->expedirPendenciaFilaProcessamento($objPendencia); } else { - $this->expedirPendenciaProcessamentoDireto($objPendencia); + $this->expedirPendenciaProcessamentoDireto($objPendencia); } } - /** - * Processa pendncia de recebimento diretamente atravs da chamada das funes de processamento - * - * @param stclass $objPendencia - * @return void - */ + /** + * Processa pendncia de recebimento diretamente atravs da chamada das funes de processamento + * + * @param stclass $objPendencia + * @return void + */ private function expedirPendenciaProcessamentoDireto($objPendencia) - { + { if (isset($objPendencia)) { - $numIDT = strval($objPendencia->getNumIdentificacaoTramite()); - $numStatus = strval($objPendencia->getStrStatus()); - $objProcessarPendenciaRN = new ProcessarPendenciasRN(); + $numIDT = strval($objPendencia->getNumIdentificacaoTramite()); + $numStatus = strval($objPendencia->getStrStatus()); + $objProcessarPendenciaRN = new ProcessarPendenciasRN(); if (!in_array( - $numStatus, - array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE - ) - )) { + $numStatus, + [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE] + ) + ) { $strStatus = $objPendencia->getStrStatus(); $this->gravarLogDebug("Situao do trmite ($strStatus) no pode ser tratada para expedir pendncias."); } - $objProcessarPendenciaRN->expedirBloco($numIDT); + $objProcessarPendenciaRN->expedirBloco($numIDT); } } - /** - * Envia pendncia de recebimento para fila de tarefas do Gearman para processamento futuro - * - * @param stdclass $objPendencia - * @return void - */ + /** + * Envia pendncia de recebimento para fila de tarefas do Gearman para processamento futuro + * + * @param stdclass $objPendencia + * @return void + */ private function expedirPendenciaFilaProcessamento($objPendencia) - { + { if (isset($objPendencia)) { - $client = new GearmanClient(); - $client->addServer($this->strGearmanServidor, $this->strGearmanPorta); + $client = new GearmanClient(); + $client->addServer($this->strGearmanServidor, $this->strGearmanPorta); - $numIDT = strval($objPendencia->getNumIdentificacaoTramite()); - $numStatus = strval($objPendencia->getStrStatus()); + $numIDT = strval($objPendencia->getNumIdentificacaoTramite()); + $numStatus = strval($objPendencia->getStrStatus()); if ($numStatus != ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO) { $strStatus = $objPendencia->getStrStatus(); $this->gravarLogDebug("Situao do trmite ($strStatus) no pode ser tratada para expedir pendncias."); } - $client->addTaskBackground('expedirBloco', $numIDT, null, $numIDT); - $client->runTasks(); + $client->addTaskBackground('expedirBloco', $numIDT, null, $numIDT); + $client->runTasks(); } } - /** - * Inicia o envio de tarefas de Barramento do PEN em novo processo separado, - * evitando o bloqueio da thread da aplicao - * - * @param int $parNumQtdeWorkers Quantidade de processos paralelos que sero iniciados - * @param boolean $parBolMonitorar Indicao se o novo processo ficar monitorando o Barramento do PEN - * @param boolean $parBolSegundoPlano Indicao se ser utilizado o processamento das tarefas em segundo plano com o Gearman - * @return bool Monitoramento iniciado com sucesso - */ + /** + * Inicia o envio de tarefas de Barramento do PEN em novo processo separado, + * evitando o bloqueio da thread da aplicao + * + * @param int $parNumQtdeWorkers Quantidade de processos paralelos que sero iniciados + * @param boolean $parBolMonitorar Indicao se o novo processo ficar monitorando o Barramento do PEN + * @param boolean $parBolSegundoPlano Indicao se ser utilizado o processamento das tarefas em segundo plano com o Gearman + * @return bool Monitoramento iniciado com sucesso + */ public static function inicializarMonitoramentoEnvioPendencias($parNumQtdeWorkers = null, $parBolMonitorar = false, $parBolSegundoPlano = false, $parBolDebugAtivo = false, $parStrUsuarioProcesso = null) - { - $bolInicializado = false; - $parNumQtdeWorkers = min($parNumQtdeWorkers ?: self::NUMERO_PROCESSOS_MONITORAMENTO, self::MAXIMO_PROCESSOS_MONITORAMENTO); + { + $bolInicializado = false; + $parNumQtdeWorkers = min($parNumQtdeWorkers ?: self::NUMERO_PROCESSOS_MONITORAMENTO, self::MAXIMO_PROCESSOS_MONITORAMENTO); try { for ($worker = 0; $worker < $parNumQtdeWorkers; $worker++) { @@ -204,35 +196,35 @@ public static function inicializarMonitoramentoEnvioPendencias($parNumQtdeWorker exec($strComandoIdentificacaoWorker, $strSaida, $numCodigoResposta); if ($numCodigoResposta != 0) { - $strLocalizacaoScript = realpath(self::LOCALIZACAO_SCRIPT_WORKER_ENVIO); - $strPhpExec = empty(PHP_BINARY) ? "php" : PHP_BINARY; - $strPhpIni = php_ini_loaded_file(); - $strPhpIni = $strPhpIni ? "-c $strPhpIni" : ""; - $strWsdlCacheDir = ini_get('soap.wsdl_cache_dir'); - $strParametroWsdlCache = "--wsdl-cache='$strWsdlCacheDir'"; - $strIdWorker = sprintf("--worker=%02d", $worker); - $strParametroMonitorar = $parBolMonitorar ? "--monitorar" : ''; - $strParametroSegundoPlano = $parBolSegundoPlano ? "--segundo-plano" : ""; - $strParametroDebugAtivo = $parBolDebugAtivo ? "--debug" : ""; - - $strComandoMonitoramentoTarefas = sprintf( - self::COMANDO_EXECUCAO_WORKER, - $strPhpExec, // Binrio do PHP utilizado no contexto de execuo do script atual (ex: /usr/bin/php) - $strPhpIni, // Arquivo de configucao o PHP utilizado no contexto de execuo do script atual (ex: /etc/php.ini) - $strLocalizacaoScript, // Path absoluto do script de monitoramento de tarefas do Barramento - $strIdWorker, // Identificador sequencial do processo paralelo a ser iniciado - $strParametroMonitorar, // Parmetro para executar processo em modo de monitoramente ativo - $strParametroSegundoPlano, // Parmetro para executar processo em segundo plano com Gearman - $strParametroDebugAtivo, // Parmetro para executar processo em modo de debug - $strParametroWsdlCache, // Diretrio de cache de wsdl utilizado no contexto de execuo do script atual (ex: /tmp/) - "/dev/null" // Localizao de log adicinal para registros de falhas no salvas pelo SEI no BD - ); - - shell_exec($strComandoMonitoramentoTarefas); - - // Verifica se monitoramento de tarefas foi iniciado corretamente, finalizando o lao para no - // permitir que mais de um monitoramento esteja iniciado - exec($strComandoIdentificacaoWorker, $strSaida, $numCodigoResposta); + $strLocalizacaoScript = realpath(self::LOCALIZACAO_SCRIPT_WORKER_ENVIO); + $strPhpExec = empty(PHP_BINARY) ? "php" : PHP_BINARY; + $strPhpIni = php_ini_loaded_file(); + $strPhpIni = $strPhpIni ? "-c $strPhpIni" : ""; + $strWsdlCacheDir = ini_get('soap.wsdl_cache_dir'); + $strParametroWsdlCache = "--wsdl-cache='$strWsdlCacheDir'"; + $strIdWorker = sprintf("--worker=%02d", $worker); + $strParametroMonitorar = $parBolMonitorar ? "--monitorar" : ''; + $strParametroSegundoPlano = $parBolSegundoPlano ? "--segundo-plano" : ""; + $strParametroDebugAtivo = $parBolDebugAtivo ? "--debug" : ""; + + $strComandoMonitoramentoTarefas = sprintf( + self::COMANDO_EXECUCAO_WORKER, + $strPhpExec, // Binrio do PHP utilizado no contexto de execuo do script atual (ex: /usr/bin/php) + $strPhpIni, // Arquivo de configucao o PHP utilizado no contexto de execuo do script atual (ex: /etc/php.ini) + $strLocalizacaoScript, // Path absoluto do script de monitoramento de tarefas do Barramento + $strIdWorker, // Identificador sequencial do processo paralelo a ser iniciado + $strParametroMonitorar, // Parmetro para executar processo em modo de monitoramente ativo + $strParametroSegundoPlano, // Parmetro para executar processo em segundo plano com Gearman + $strParametroDebugAtivo, // Parmetro para executar processo em modo de debug + $strParametroWsdlCache, // Diretrio de cache de wsdl utilizado no contexto de execuo do script atual (ex: /tmp/) + "/dev/null" // Localizao de log adicinal para registros de falhas no salvas pelo SEI no BD + ); + + shell_exec($strComandoMonitoramentoTarefas); + + // Verifica se monitoramento de tarefas foi iniciado corretamente, finalizando o lao para no + // permitir que mais de um monitoramento esteja iniciado + exec($strComandoIdentificacaoWorker, $strSaida, $numCodigoResposta); if ($numCodigoResposta == 0) { break; @@ -240,15 +232,15 @@ public static function inicializarMonitoramentoEnvioPendencias($parNumQtdeWorker } } - // Confirma se existe algum worker ativo - exec(self::COMANDO_IDENTIFICACAO_WORKER_ENVIO, $strSaida, $numCodigoRespostaAtivacao); - $bolInicializado = $numCodigoRespostaAtivacao == 0; + // Confirma se existe algum worker ativo + exec(self::COMANDO_IDENTIFICACAO_WORKER_ENVIO, $strSaida, $numCodigoRespostaAtivacao); + $bolInicializado = $numCodigoRespostaAtivacao == 0; } catch (\Exception $e) { - $strMensagem = "Falha: No foi possvel iniciar o monitoramento de tarefas Barramento Tramita GOV.BR"; - $objInfraException = new InfraException($strMensagem, $e); - throw $objInfraException; + $strMensagem = "Falha: No foi possvel iniciar o monitoramento de tarefas Barramento Tramita GOV.BR"; + $objInfraException = new InfraException($strMensagem, $e); + throw $objInfraException; } - return $bolInicializado; + return $bolInicializado; } } diff --git a/src/rn/PendenciasTramiteRN.php b/src/rn/PendenciasTramiteRN.php index 033f7e5ee..b226a1970 100755 --- a/src/rn/PendenciasTramiteRN.php +++ b/src/rn/PendenciasTramiteRN.php @@ -23,12 +23,12 @@ class PendenciasTramiteRN extends InfraRN const COMANDO_IDENTIFICACAO_WORKER = "ps -c ax | grep 'MonitoramentoRecebimentoTarefasPEN\.php' | grep -o '^[ ]*[0-9]*'"; const COMANDO_IDENTIFICACAO_WORKER_ID = "ps -c ax | grep 'MonitoramentoRecebimentoTarefasPEN\.php.*--worker=%02d' | grep -o '^[ ]*[0-9]*'"; - protected $objPenDebug = null; - protected $strEnderecoServico = null; - protected $strEnderecoServicoPendencias = null; - protected $strLocalizacaoCertificadoDigital = null; - protected $strSenhaCertificadoDigital = null; - protected $arrStrUltimasMensagensErro = array(); + protected $objPenDebug; + protected $strEnderecoServico; + protected $strEnderecoServicoPendencias; + protected $strLocalizacaoCertificadoDigital; + protected $strSenhaCertificadoDigital; + protected $arrStrUltimasMensagensErro = []; public function __construct($parStrLogTag = null) { @@ -65,7 +65,7 @@ protected function carregarParametrosIntegracao() * 1 - Atravs da API Webservice SOAP, fazendo uma requisio direta para o servio de consulta de pendncias de trmite * 2 - Atravs da API Rest de Stream, onde o mdulo ir conectar ao Barramento e ficar na esculta por qualquer novo evento * - * @param boolean $parBolMonitorarPendencias Indicador para ativar a esculta de eventos do Barramento + * @param boolean $parBolMonitorarPendencias Indicador para ativar a esculta de eventos do Barramento * @return int Cdigo de resultado do processamento, sendo 0 para sucesso e 1 em caso de erros */ public function receberPendencias($parBolMonitorarPendencias = false, $parBolSegundoPlano = false, $parBolDebug = false) @@ -74,12 +74,12 @@ public function receberPendencias($parBolMonitorarPendencias = false, $parBolSeg ini_set('max_execution_time', '0'); ini_set('memory_limit', '-1'); - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { return false; } - if(empty($this->strEnderecoServico) && empty($this->strEnderecoServicoPendencias)){ - throw new InfraException("Servio de monitoramento de pendncias no pode ser iniciado devido falta de configurao de endereos de WebServices"); + if(empty($this->strEnderecoServico) && empty($this->strEnderecoServicoPendencias)) { + throw new InfraException("Servio de monitoramento de pendncias no pode ser iniciado devido falta de configurao de endereos de WebServices"); } ModPenUtilsRN::simularLoginUnidadeRecebimento(); @@ -88,20 +88,20 @@ public function receberPendencias($parBolMonitorarPendencias = false, $parBolSeg do{ try { - $this->gravarLogDebug('Recuperando lista de pendncias de recebimento do Tramita GOV.BR', 1); - $arrObjPendenciasDTO = $this->obterPendenciasRecebimentoTramite($parBolMonitorarPendencias); + $this->gravarLogDebug('Recuperando lista de pendncias de recebimento do Tramita GOV.BR', 1); + $arrObjPendenciasDTO = $this->obterPendenciasRecebimentoTramite($parBolMonitorarPendencias); foreach ($arrObjPendenciasDTO as $objPendenciaDTO) { - $numIdTramite = $objPendenciaDTO->getNumIdentificacaoTramite(); - $strStatusTramite = $objPendenciaDTO->getStrStatus(); - $mensagemLog = ">>> Enviando pendncia $numIdTramite (status $strStatusTramite) para fila de processamento"; - $this->gravarLogDebug($mensagemLog, 3); + $numIdTramite = $objPendenciaDTO->getNumIdentificacaoTramite(); + $strStatusTramite = $objPendenciaDTO->getStrStatus(); + $mensagemLog = ">>> Enviando pendncia $numIdTramite (status $strStatusTramite) para fila de processamento"; + $this->gravarLogDebug($mensagemLog, 3); try { - $this->receberPendenciaProcessamento($objPendenciaDTO, $parBolSegundoPlano); + $this->receberPendenciaProcessamento($objPendenciaDTO, $parBolSegundoPlano); } catch (\Exception $e) { - $this->gravarAmostraErroLogSEI($e); - $this->gravarLogDebug(InfraException::inspecionar($e)); + $this->gravarAmostraErroLogSEI($e); + $this->gravarLogDebug(InfraException::inspecionar($e)); } } @@ -114,7 +114,7 @@ public function receberPendencias($parBolMonitorarPendencias = false, $parBolSeg $this->gravarLogDebug(InfraException::inspecionar($e)); } - if($parBolMonitorarPendencias){ + if($parBolMonitorarPendencias) { $this->gravarLogDebug(sprintf("Reiniciando monitoramento de pendncias em %s segundos", self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO), 1); sleep(self::TEMPO_ESPERA_REINICIALIZACAO_MONITORAMENTO); $this->carregarParametrosIntegracao(); @@ -129,40 +129,20 @@ public function receberPendencias($parBolMonitorarPendencias = false, $parBolSeg } try { - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $objPenBlocoProcessoRN->validarBlocosEmAndamento(); + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $objPenBlocoProcessoRN->validarBlocosEmAndamento(); } catch(Exception $e) { - $this->gravarLogDebug(InfraException::inspecionar($e)); + $this->gravarLogDebug(InfraException::inspecionar($e)); } // Caso no esteja sendo realizado o monitoramente de pendncias, lana exceo diretamente na pgina para apresentao ao usurio - if(!$parBolMonitorarPendencias){ + if(!$parBolMonitorarPendencias) { $this->salvarLogDebug($parBolDebug); } return self::CODIGO_EXECUCAO_SUCESSO; } - /** - * Valida a correta parametrizao do certificado digital - * - * @return void - */ - private function validarCertificado() - { - if (InfraString::isBolVazia($this->strLocalizacaoCertificadoDigital)) { - throw new InfraException('Certificado digital de autenticao do servio de integrao do Tramita.GOV.BR no informado.'); - } - - if (!@file_get_contents($this->strLocalizacaoCertificadoDigital)) { - throw new InfraException("Certificado digital de autenticao do servio de integrao do Tramita.GOV.BR no encontrado."); - } - - if (InfraString::isBolVazia($this->strSenhaCertificadoDigital)) { - throw new InfraException('Dados de autenticao do servio de integrao do Tramita.GOV.BR no informados.'); - } - } - /** * Grava log de debug nas tabelas de log do SEI, caso o debug esteja habilitado * @@ -170,9 +150,9 @@ private function validarCertificado() */ protected function salvarLogDebug($parBolDebugAtivado) { - if($parBolDebugAtivado){ + if($parBolDebugAtivado) { $strTextoDebug = InfraDebug::getInstance()->getStrDebug(); - if(!InfraString::isBolVazia($strTextoDebug)){ + if(!InfraString::isBolVazia($strTextoDebug)) { LogSEI::getInstance()->gravar(mb_convert_encoding($strTextoDebug, 'ISO-8859-1', 'UTF-8'), LogSEI::$DEBUG); } } @@ -198,43 +178,42 @@ protected function configurarRequisicao() } - /** - * Funo para recuperar as pendncias de trmite que j foram recebidas pelo servio de long pulling e no foram processadas com sucesso - * @param num $parNumIdTramiteRecebido - * @return [type] [description] - */ + /** + * Funo para recuperar as pendncias de trmite que j foram recebidas pelo servio de long pulling e no foram processadas com sucesso + * + * @param num $parNumIdTramiteRecebido + * @return [type] [description] + */ private function obterPendenciasRecebimentoTramite($parBolMonitorarPendencias) - { - //Obter todos os trmites pendentes antes de iniciar o monitoramento - $arrPendenciasRetornadas = array(); - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $arrObjPendenciasDTO = $objProcessoEletronicoRN->listarPendencias(self::RECUPERAR_TODAS_PENDENCIAS) ?: array(); - shuffle($arrObjPendenciasDTO); - - if (isset($arrObjPendenciasDTO)) { - if (!is_array($arrObjPendenciasDTO)) { - $arrObjPendenciasDTO = array(); - } + { + //Obter todos os trmites pendentes antes de iniciar o monitoramento + $arrPendenciasRetornadas = []; + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $arrObjPendenciasDTO = $objProcessoEletronicoRN->listarPendencias(self::RECUPERAR_TODAS_PENDENCIAS) ?: []; + shuffle($arrObjPendenciasDTO); + + if (!is_array($arrObjPendenciasDTO)) { + $arrObjPendenciasDTO = []; } - $this->gravarLogDebug(count($arrObjPendenciasDTO) . " pendncias de trmites identificadas", 2); + $this->gravarLogDebug(count($arrObjPendenciasDTO) . " pendncias de trmites identificadas", 2); foreach ($arrObjPendenciasDTO as $objPendenciaDTO) { - //Captura todas as pendncias e status retornadas para impedir duplicidade - $arrPendenciasRetornadas[] = sprintf("%d-%s", $objPendenciaDTO->getNumIdentificacaoTramite(), $objPendenciaDTO->getStrStatus()); - yield $objPendenciaDTO; + //Captura todas as pendncias e status retornadas para impedir duplicidade + $arrPendenciasRetornadas[] = sprintf("%d-%s", $objPendenciaDTO->getNumIdentificacaoTramite(), $objPendenciaDTO->getStrStatus()); + yield $objPendenciaDTO; } if ($parBolMonitorarPendencias && $this->servicoMonitoramentoPendenciasAtivo()) { - //Obtm demais pendncias do servio de long polling - $bolEncontrouPendencia = false; - $numUltimoIdTramiteRecebido = 0; + //Obtm demais pendncias do servio de long polling + $bolEncontrouPendencia = false; + $numUltimoIdTramiteRecebido = 0; - $arrObjPendenciasDTONovas = array(); - $this->gravarLogDebug("Iniciando monitoramento no servio de pendncias (long polling)", 2); + $arrObjPendenciasDTONovas = []; + $this->gravarLogDebug("Iniciando monitoramento no servio de pendncias (long polling)", 2); do { - $curl = $this->configurarRequisicao(); + $curl = $this->configurarRequisicao(); try { $arrObjPendenciasDTONovas = array_unique($arrObjPendenciasDTONovas); curl_setopt($curl, CURLOPT_URL, $this->strEnderecoServicoPendencias . "?idTramiteDaPendenciaRecebida=" . $numUltimoIdTramiteRecebido); @@ -248,24 +227,24 @@ private function obterPendenciasRecebimentoTramite($parBolMonitorarPendencias) throw new InfraException("Erro na requisio do servio de monitoramento de pendncias. Curl: " . curl_error($curl)); } - $bolEncontrouPendencia = false; - $this->gravarLogDebug(sprintf("Timeout de monitoramento de %d segundos do servio de pendncias alcanado", self::TIMEOUT_SERVICO_PENDENCIAS), 2); + $bolEncontrouPendencia = false; + $this->gravarLogDebug(sprintf("Timeout de monitoramento de %d segundos do servio de pendncias alcanado", self::TIMEOUT_SERVICO_PENDENCIAS), 2); } if (!InfraString::isBolVazia($strResultadoJSON)) { - $strResultadoJSON = json_decode($strResultadoJSON); + $strResultadoJSON = json_decode($strResultadoJSON); if (isset($strResultadoJSON->encontrou) && $strResultadoJSON->encontrou) { - $bolEncontrouPendencia = true; - $numUltimoIdTramiteRecebido = $strResultadoJSON->IDT; - $strUltimoStatusRecebido = $strResultadoJSON->status; - $strChavePendencia = sprintf("%d-%s", $strResultadoJSON->IDT, $strResultadoJSON->status); - $objPendenciaDTO = new PendenciaDTO(); - $objPendenciaDTO->setNumIdentificacaoTramite($strResultadoJSON->IDT); - $objPendenciaDTO->setStrStatus($strResultadoJSON->status); - - //No processo novamente as pendncias j capturadas na consulta anterior ($objProcessoEletronicoRN->listarPendencias) - //Considera somente as novas identificadas pelo servio de monitoramento + $bolEncontrouPendencia = true; + $numUltimoIdTramiteRecebido = $strResultadoJSON->IDT; + $strUltimoStatusRecebido = $strResultadoJSON->status; + $strChavePendencia = sprintf("%d-%s", $strResultadoJSON->IDT, $strResultadoJSON->status); + $objPendenciaDTO = new PendenciaDTO(); + $objPendenciaDTO->setNumIdentificacaoTramite($strResultadoJSON->IDT); + $objPendenciaDTO->setStrStatus($strResultadoJSON->status); + + //No processo novamente as pendncias j capturadas na consulta anterior ($objProcessoEletronicoRN->listarPendencias) + //Considera somente as novas identificadas pelo servio de monitoramento if (!in_array($strChavePendencia, $arrPendenciasRetornadas)) { $arrObjPendenciasDTONovas[] = $strChavePendencia; yield $objPendenciaDTO; @@ -280,16 +259,16 @@ private function obterPendenciasRecebimentoTramite($parBolMonitorarPendencias) $this->gravarLogDebug($mensagemErro, 2); throw new InfraException($mensagemErro); } else { - $arrObjPendenciasDTONovas[] = $strChavePendencia; - $this->gravarLogDebug(sprintf("IDT %d desconsiderado por j ter sido retornado na consulta inicial", $numUltimoIdTramiteRecebido), 2); + $arrObjPendenciasDTONovas[] = $strChavePendencia; + $this->gravarLogDebug(sprintf("IDT %d desconsiderado por j ter sido retornado na consulta inicial", $numUltimoIdTramiteRecebido), 2); } } } } catch (Exception $e) { - $bolEncontrouPendencia = false; - throw new InfraException("Erro processando monitoramento de pendncias de trmite de processos", $e); + $bolEncontrouPendencia = false; + throw new InfraException("Erro processando monitoramento de pendncias de trmite de processos", $e); } finally { - curl_close($curl); + curl_close($curl); } } while ($bolEncontrouPendencia); } @@ -306,9 +285,11 @@ protected function servicoGearmanAtivo() $strMensagemErro = "No foi possvel conectar ao servidor Gearman (%s, %s). Erro: %s"; try { if(!empty($this->strGearmanServidor)) { - if(!class_exists("GearmanClient")){ - throw new InfraException("No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN. " . - "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes"); + if(!class_exists("GearmanClient")) { + throw new InfraException( + "No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN. " . + "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes" + ); } try{ @@ -337,20 +318,19 @@ protected function servicoGearmanAtivo() */ protected function servicoMonitoramentoPendenciasAtivo() { - $bolMonitoramentoAtivo = !empty($this->strEnderecoServicoPendencias); - return $bolMonitoramentoAtivo; + return !empty($this->strEnderecoServicoPendencias); } /** * Recebe a pendncia de trmite para a fila de processamento do tarefas de acordo com a estratgia definida * - * @param stdClass $objPendencia + * @param stdClass $objPendencia * @return void */ private function receberPendenciaProcessamento($objPendencia, $parBolSegundoPlano) { - if($parBolSegundoPlano && $this->servicoGearmanAtivo()){ + if($parBolSegundoPlano && $this->servicoGearmanAtivo()) { $this->receberPendenciaFilaProcessamento($objPendencia); } else { $this->receberPendenciaProcessamentoDireto($objPendencia); @@ -360,7 +340,7 @@ private function receberPendenciaProcessamento($objPendencia, $parBolSegundoPlan /** * Processa pendncia de recebimento diretamente atravs da chamada das funes de processamento * - * @param stclass $objPendencia + * @param stclass $objPendencia * @return void */ private function receberPendenciaProcessamentoDireto($objPendencia) @@ -386,8 +366,9 @@ private function receberPendenciaProcessamentoDireto($objPendencia) break; default: + $numIDT = $objPendencia->getNumIdentificacaoTramite(); $strStatus = $objPendencia->getStrStatus(); - $this->gravarLogDebug("Situao do trmite ($strStatus) no pode ser tratada."); + $this->gravarLogDebug("Situao do trmite ($numIDT) com status: $strStatus no pode ser tratada."); break; } } @@ -396,7 +377,7 @@ private function receberPendenciaProcessamentoDireto($objPendencia) /** * Envia pendncia de recebimento para fila de tarefas do Gearman para processamento futuro * - * @param stdclass $objPendencia + * @param stdclass $objPendencia * @return void */ private function receberPendenciaFilaProcessamento($objPendencia) @@ -440,25 +421,25 @@ protected function gravarLogDebug($parStrMensagem, $parNumIdentacao = 0, $parBol /** * Registra log de erro no SEI caso o mesmo j no tenha sido registrado anteriormente em perodo determinado de tempo * - * @param string $parObjException Exceo lanada pelo sistema - * @param int $numTempoRegistroErro Tempo mnimo para novo registro de erro nos logs do sistema + * @param string $parObjException Exceo lanada pelo sistema + * @param int $numTempoRegistroErro Tempo mnimo para novo registro de erro nos logs do sistema * @return void */ protected function gravarAmostraErroLogSEI($parObjException, $strTipoLog = "E") { - if(!is_null($parObjException)){ + if(!is_null($parObjException)) { $strMensagemErro = InfraException::inspecionar($parObjException); $strHashMensagem = md5($strMensagemErro); - if(array_key_exists($strHashMensagem, $this->arrStrUltimasMensagensErro)){ + if(array_key_exists($strHashMensagem, $this->arrStrUltimasMensagensErro)) { $dthUltimoRegistro = $this->arrStrUltimasMensagensErro[$strHashMensagem]; $dthDataMinimaParaRegistro = new DateTime(sprintf("-%d seconds", self::TEMPO_MINIMO_REGISTRO_ERRO)); - if($dthUltimoRegistro > $dthDataMinimaParaRegistro){ + if($dthUltimoRegistro > $dthDataMinimaParaRegistro) { return false; } } // Remove registros de logs mais antigos para no sobrecarregar - if(count($this->arrStrUltimasMensagensErro) > self::NUMERO_MAXIMO_LOG_ERROS){ + if(count($this->arrStrUltimasMensagensErro) > self::NUMERO_MAXIMO_LOG_ERROS) { array_shift($this->arrStrUltimasMensagensErro); } @@ -471,9 +452,9 @@ protected function gravarAmostraErroLogSEI($parObjException, $strTipoLog = "E") * Inicia o recebimento de tarefas de Barramento do PEN em novo processo separado, * evitando o bloqueio da thread da aplicao * - * @param int $parNumQtdeWorkers Quantidade de processos paralelos que sero iniciados - * @param boolean $parBolMonitorar Indicao se o novo processo ficar monitorando o Barramento do PEN - * @param boolean $parBolSegundoPlano Indicao se ser utilizado o processamento das tarefas em segundo plano com o Gearman + * @param int $parNumQtdeWorkers Quantidade de processos paralelos que sero iniciados + * @param boolean $parBolMonitorar Indicao se o novo processo ficar monitorando o Barramento do PEN + * @param boolean $parBolSegundoPlano Indicao se ser utilizado o processamento das tarefas em segundo plano com o Gearman * @return bool Monitoramento iniciado com sucesso */ public static function inicializarMonitoramentoRecebimentoPendencias($parNumQtdeWorkers = null, $parBolMonitorar = false, $parBolSegundoPlano = false, $parBolDebugAtivo = false, $parStrUsuarioProcesso = null) @@ -488,7 +469,8 @@ public static function inicializarMonitoramentoRecebimentoPendencias($parNumQtde if ($numCodigoResposta != 0) { $strLocalizacaoScript = realpath(self::LOCALIZACAO_SCRIPT_WORKER); - $strPhpExec = empty(PHP_BINARY) ? "php" : PHP_BINARY; + $strPhpExec = "echo -n $(which php)"; + $strPhpExec= shell_exec($strPhpExec); $strPhpIni = php_ini_loaded_file(); $strPhpIni = $strPhpIni ? "-c $strPhpIni" : ""; $strWsdlCacheDir = ini_get('soap.wsdl_cache_dir'); diff --git a/src/rn/ProcedimentoAndamentoRN.php b/src/rn/ProcedimentoAndamentoRN.php index 590e53e09..7f88c92ec 100755 --- a/src/rn/ProcedimentoAndamentoRN.php +++ b/src/rn/ProcedimentoAndamentoRN.php @@ -4,8 +4,6 @@ /** * Controla o log de estados da expadio de um procedimento pelo modulo SEI - * - * */ class ProcedimentoAndamentoRN extends InfraRN { @@ -19,8 +17,8 @@ class ProcedimentoAndamentoRN extends InfraRN public function __construct() { - parent::__construct(); - $this->objPenDebug = DebugPen::getInstance("PROCESSAMENTO"); + parent::__construct(); + $this->objPenDebug = DebugPen::getInstance("PROCESSAMENTO"); } /** @@ -29,7 +27,8 @@ public function __construct() * * @return Infra[Driver] */ - protected function inicializarObjInfraIBanco(){ + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } @@ -86,7 +85,7 @@ public function sincronizarRecebimentoProcessos($parStrNumeroRegistro, $parNumId $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD($this->getObjInfraIBanco()); $objProcedimentoAndamentoDTORet = $objProcedimentoAndamentoBD->consultar($objProcedimentoAndamentoDTO); - if(!is_null($objProcedimentoAndamentoDTORet)){ + if(!is_null($objProcedimentoAndamentoDTORet)) { $this->objPenDebug->gravar("Sincronizando o recebimento de processos concorrentes...", 1); $objProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->bloquear($objProcedimentoAndamentoDTORet); $this->objPenDebug->gravar("Liberando processo concorrente de recebimento de processo ...", 1); @@ -107,7 +106,7 @@ public function sincronizarRecebimentoProcessos($parStrNumeroRegistro, $parNumId * Esta sinalizao utilizada para sincronizar o processamento concorrente que possa existir entre todos os ns de aplicao do sistema, * evitando inconsistncias provocadas pelo cadastramentos simultneos no sistema * - * @param array $parArrChavesSincronizacao Chaves que ser utilizadas na sincronizao do processamento + * @param array $parArrChavesSincronizacao Chaves que ser utilizadas na sincronizao do processamento * @return void */ protected function sinalizarInicioRecebimentoControlado($parArrChavesSincronizacao) @@ -116,7 +115,7 @@ protected function sinalizarInicioRecebimentoControlado($parArrChavesSincronizac $numIdTramite = $parArrChavesSincronizacao["IdTramite"]; $numIdTarefa = $parArrChavesSincronizacao["IdTarefa"]; - if(!$this->sincronizarRecebimentoProcessos($strNumeroRegistro, $numIdTramite, $numIdTarefa)){ + if(!$this->sincronizarRecebimentoProcessos($strNumeroRegistro, $numIdTramite, $numIdTarefa)) { $this->objPenDebug->gravar("Trmite de recebimento $numIdTramite j se encontra em processamento", 3, false); return false; } diff --git a/src/rn/ProcessarPendenciasRN.php b/src/rn/ProcessarPendenciasRN.php index 79530de77..b2d6d79ff 100755 --- a/src/rn/ProcessarPendenciasRN.php +++ b/src/rn/ProcessarPendenciasRN.php @@ -4,10 +4,10 @@ class ProcessarPendenciasRN extends InfraRN { - private $objGearmanWorker = null; - private $objPenDebug = null; - private $strGearmanServidor = null; - private $strGearmanPorta = null; + private $objGearmanWorker; + private $objPenDebug; + private $strGearmanServidor; + private $strGearmanPorta; const TIMEOUT_PROCESSAMENTO_JOB = 5400; // valores em segundos, 5400 = 90 minutos const TIMEOUT_PROCESSAMENTO_EVENTOS = 300000; // valores em milisegundos, 300000 = 5 minutos @@ -58,9 +58,11 @@ private function carregarParametrosIntegracao() */ private function inicializarGearman() { - if(!class_exists("GearmanWorker")){ - throw new InfraException("No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN./n" . - "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes"); + if(!class_exists("GearmanWorker")) { + throw new InfraException( + "No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN./n" . + "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes" + ); } $this->objGearmanWorker = new GearmanWorker(); @@ -77,7 +79,7 @@ public function processarPendencias() ini_set('max_execution_time', '0'); ini_set('memory_limit', '-1'); - if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()){ + if(!PENIntegracao::verificarCompatibilidadeConfiguracoes()) { return false; } ModPenUtilsRN::simularLoginUnidadeRecebimento(); @@ -89,20 +91,18 @@ public function processarPendencias() while($this->objGearmanWorker->work()) { try { - $numReturnCode = $this->objGearmanWorker->returnCode(); + $numReturnCode = $this->objGearmanWorker->returnCode(); switch ($numReturnCode) { case GEARMAN_SUCCESS: - break; - case GEARMAN_TIMEOUT: - //Nenhuma ao necessrio, sendo que timeout utilizado apenas para avaliao de sinal pcntl_signal de interrupo + //Nenhuma ao necessrio, sendo que timeout utilizado apenas para avaliao de sinal pcntl_signal de interrupo break; case GEARMAN_ERRNO: - $strErro = "Erro no processamento de pendncias do PEN. ErrorCode: $numReturnCode"; - LogSEI::getInstance()->gravar($strErro); - $this->gravarLogDebug($strErro, 0); + $strErro = "Erro no processamento de pendncias do PEN. ErrorCode: $numReturnCode"; + LogSEI::getInstance()->gravar($strErro); + $this->gravarLogDebug($strErro, 0); break; default: @@ -129,7 +129,7 @@ public function processarPendencias() /** * Processa a mensagem de pendncia de Envio de Processos * - * @param object $idTramite Contexto com informaes para processamento da tarefa + * @param object $idTramite Contexto com informaes para processamento da tarefa * @return void */ public function enviarProcesso($idTramite) @@ -141,7 +141,7 @@ public function enviarProcesso($idTramite) /** * Processa a mensagem de pendncia de Envio de Componentes Digitais * - * @param object $idTramite Contexto com informaes para processamento da tarefa + * @param object $idTramite Contexto com informaes para processamento da tarefa * @return void */ public function enviarComponenteDigital($idTramite) @@ -153,7 +153,7 @@ public function enviarComponenteDigital($idTramite) /** * Processa a mensagem de pendncia de Recebimento de Recibo de Concluso de Trmite * - * @param object $idTramite Contexto com informaes para processamento da tarefa + * @param object $idTramite Contexto com informaes para processamento da tarefa * @return void */ public function receberReciboTramite($idTramite) @@ -167,7 +167,7 @@ public function receberReciboTramite($idTramite) /** * Processa a mensagem de pendncia de Recebimento de Processo ou Documento Avulso * - * @param object $idTramite Contexto com informaes para processamento da tarefa + * @param object $idTramite Contexto com informaes para processamento da tarefa * @return void */ public function receberProcedimento($idTramite) @@ -200,7 +200,7 @@ public function receberProcedimento($idTramite) /** * Processa a mensagem de pendncia de Recebimento de Trmites Recusados * - * @param object $idTramite Contexto com informaes para processamento da tarefa + * @param object $idTramite Contexto com informaes para processamento da tarefa * @return void */ public function receberTramitesRecusados($idTramite) @@ -215,10 +215,11 @@ public function receberTramitesRecusados($idTramite) /** * Processa a mensagem de pendncia de Recebimento de Componentes Digitais * - * @param object $idTramite Contexto com informaes para processamento da tarefa + * @param object $idTramite Contexto com informaes para processamento da tarefa * @return void */ - public function receberComponenteDigital($idTramite) { + public function receberComponenteDigital($idTramite) + { $this->gravarLogDebug("Processando recebimento de componentes digitais [receberComponenteDigital] com IDT " . $idTramite, 0, true); // Caso receba mensagem indicando que foi realizado o recebimento dos componentes digitais, ento o recibo de concluo dever ser enviado $this->enviarReciboTramiteProcesso($idTramite); @@ -228,7 +229,7 @@ public function receberComponenteDigital($idTramite) { /** * Processa a mensagem de pendncia de Envio de Recibo de Trmite * - * @param object $idTramite Contexto com informaes para processamento da tarefa + * @param object $idTramite Contexto com informaes para processamento da tarefa * @return void */ public function enviarReciboTramiteProcesso($idTramite) @@ -240,44 +241,44 @@ public function enviarReciboTramiteProcesso($idTramite) } /** - * Processa a mensagem de pendncia de Envio de Processo - * - * @param object $idProcedimento Contexto com informaes para processamento da tarefa - * @return void - */ + * Processa a mensagem de pendncia de Envio de Processo + * + * @param object $idProcedimento Contexto com informaes para processamento da tarefa + * @return void + */ public function expedirBloco($idProcedimento) - { + { try { - $this->gravarLogDebug("Processando envio de protocolo [expedirProcedimento] com IDProcedimento " . $idProcedimento, 0, true); - $numTempoInicialEnvio = microtime(true); - - $objPenBlocoProcedimentoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcedimentoDTO->retNumIdRepositorioOrigem(); - $objPenBlocoProcedimentoDTO->retNumIdUnidadeOrigem(); - $objPenBlocoProcedimentoDTO->retNumIdRepositorioDestino(); - $objPenBlocoProcedimentoDTO->retStrRepositorioDestino(); - $objPenBlocoProcedimentoDTO->retNumIdUnidadeDestino(); - $objPenBlocoProcedimentoDTO->retStrUnidadeDestino(); - $objPenBlocoProcedimentoDTO->retDblIdProtocolo(); - $objPenBlocoProcedimentoDTO->retNumIdBlocoProcesso(); - $objPenBlocoProcedimentoDTO->retNumIdAtividade(); - $objPenBlocoProcedimentoDTO->retNumIdBloco(); - $objPenBlocoProcedimentoDTO->retNumIdUnidade(); - $objPenBlocoProcedimentoDTO->retNumTentativas(); - $objPenBlocoProcedimentoDTO->setDblIdProtocolo(intval($idProcedimento)); - $objPenBlocoProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); - $objPenBlocoProcedimentoDTO->setNumMaxRegistrosRetorno(1); - - $objPenBlocoProcedimentoRN = new PenBlocoProcessoRN(); - $objPenBlocoProcedimentoDTO = $objPenBlocoProcedimentoRN->consultar($objPenBlocoProcedimentoDTO); + $this->gravarLogDebug("Processando envio de protocolo [expedirProcedimento] com IDProcedimento " . $idProcedimento, 0, true); + $numTempoInicialEnvio = microtime(true); + + $objPenBlocoProcedimentoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcedimentoDTO->retNumIdRepositorioOrigem(); + $objPenBlocoProcedimentoDTO->retNumIdUnidadeOrigem(); + $objPenBlocoProcedimentoDTO->retNumIdRepositorioDestino(); + $objPenBlocoProcedimentoDTO->retStrRepositorioDestino(); + $objPenBlocoProcedimentoDTO->retNumIdUnidadeDestino(); + $objPenBlocoProcedimentoDTO->retStrUnidadeDestino(); + $objPenBlocoProcedimentoDTO->retDblIdProtocolo(); + $objPenBlocoProcedimentoDTO->retNumIdBlocoProcesso(); + $objPenBlocoProcedimentoDTO->retNumIdAtividade(); + $objPenBlocoProcedimentoDTO->retNumIdBloco(); + $objPenBlocoProcedimentoDTO->retNumIdUnidade(); + $objPenBlocoProcedimentoDTO->retNumTentativas(); + $objPenBlocoProcedimentoDTO->setDblIdProtocolo(intval($idProcedimento)); + $objPenBlocoProcedimentoDTO->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO); + $objPenBlocoProcedimentoDTO->setNumMaxRegistrosRetorno(1); + + $objPenBlocoProcedimentoRN = new PenBlocoProcessoRN(); + $objPenBlocoProcedimentoDTO = $objPenBlocoProcedimentoRN->consultar($objPenBlocoProcedimentoDTO); if (!is_null($objPenBlocoProcedimentoDTO)) { // Ajuste na varivel global $_SERVER['HTTPS'] para considerar a mesma configurao definida para o SEI // e evitar erros na rotina validaHttps quando em execuo por linha de comando if (!isset($_SERVER['HTTP_USER_AGENT'])) { - $bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEI', 'https'); - $_SERVER['HTTPS'] = $bolHttps ? "on" : null; + $bolHttps = ConfiguracaoSEI::getInstance()->getValor('SessaoSEI', 'https'); + $_SERVER['HTTPS'] = $bolHttps ? "on" : null; } //Registra tentativa de envio e cancela o trmite caso ultrapasse os valores permitidos @@ -287,73 +288,89 @@ public function expedirBloco($idProcedimento) $numTentativasProcesso = $objPenBlocoProcedimentoDTO->getNumTentativas() ?: 0; if ($numTentativasErroMaximo >= $numTentativasProcesso + 1) { - $objPenBlocoProcedimentoRN->registrarTentativaEnvio($objPenBlocoProcedimentoDTO); - - $objExpedirProcedimentoDTO = new ExpedirProcedimentoDTO(); - $objExpedirProcedimentoDTO->setNumIdRepositorioOrigem($objPenBlocoProcedimentoDTO->getNumIdRepositorioOrigem()); - $objExpedirProcedimentoDTO->setNumIdUnidadeOrigem($objPenBlocoProcedimentoDTO->getNumIdUnidadeOrigem()); - - $objExpedirProcedimentoDTO->setNumIdRepositorioDestino($objPenBlocoProcedimentoDTO->getNumIdRepositorioDestino()); - $objExpedirProcedimentoDTO->setStrRepositorioDestino($objPenBlocoProcedimentoDTO->getStrRepositorioDestino()); - $objExpedirProcedimentoDTO->setNumIdUnidadeDestino($objPenBlocoProcedimentoDTO->getNumIdUnidadeDestino()); - $objExpedirProcedimentoDTO->setStrUnidadeDestino($objPenBlocoProcedimentoDTO->getStrUnidadeDestino()); - $objExpedirProcedimentoDTO->setArrIdProcessoApensado(null); - $objExpedirProcedimentoDTO->setBolSinUrgente(false); - $objExpedirProcedimentoDTO->setDblIdProcedimento($objPenBlocoProcedimentoDTO->getDblIdProtocolo()); - $objExpedirProcedimentoDTO->setNumIdMotivoUrgencia(null); - $objExpedirProcedimentoDTO->setBolSinProcessamentoEmBloco(true); - $objExpedirProcedimentoDTO->setNumIdBloco($objPenBlocoProcedimentoDTO->getNumIdBlocoProcesso()); - $objExpedirProcedimentoDTO->setNumIdAtividade($objPenBlocoProcedimentoDTO->getNumIdAtividade()); - $objExpedirProcedimentoDTO->setNumIdUnidade($objPenBlocoProcedimentoDTO->getNumIdUnidade()); - - $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); - $objExpedirProcedimentoRN->expedirProcedimento($objExpedirProcedimentoDTO); - - $numIDT = $objPenBlocoProcedimentoDTO->getDblIdProtocolo(); - $numTempoTotalEnvio = round(microtime(true) - $numTempoInicialEnvio, 2); - $this->gravarLogDebug("Finalizado o envio de protocolo com IDProcedimento $numIDT(Tempo total: {$numTempoTotalEnvio}s)", 0, true); + $objPenBlocoProcedimentoRN->registrarTentativaEnvio($objPenBlocoProcedimentoDTO); + + $objExpedirProcedimentoDTO = new ExpedirProcedimentoDTO(); + $objExpedirProcedimentoDTO->setNumIdRepositorioOrigem($objPenBlocoProcedimentoDTO->getNumIdRepositorioOrigem()); + $objExpedirProcedimentoDTO->setNumIdUnidadeOrigem($objPenBlocoProcedimentoDTO->getNumIdUnidadeOrigem()); + + $objExpedirProcedimentoDTO->setNumIdRepositorioDestino($objPenBlocoProcedimentoDTO->getNumIdRepositorioDestino()); + $objExpedirProcedimentoDTO->setStrRepositorioDestino($objPenBlocoProcedimentoDTO->getStrRepositorioDestino()); + $objExpedirProcedimentoDTO->setNumIdUnidadeDestino($objPenBlocoProcedimentoDTO->getNumIdUnidadeDestino()); + $objExpedirProcedimentoDTO->setStrUnidadeDestino($objPenBlocoProcedimentoDTO->getStrUnidadeDestino()); + $objExpedirProcedimentoDTO->setArrIdProcessoApensado(null); + $objExpedirProcedimentoDTO->setBolSinUrgente(false); + $objExpedirProcedimentoDTO->setDblIdProcedimento($objPenBlocoProcedimentoDTO->getDblIdProtocolo()); + $objExpedirProcedimentoDTO->setNumIdMotivoUrgencia(null); + $objExpedirProcedimentoDTO->setBolSinProcessamentoEmBloco(true); + $objExpedirProcedimentoDTO->setNumIdBloco($objPenBlocoProcedimentoDTO->getNumIdBlocoProcesso()); + $objExpedirProcedimentoDTO->setNumIdAtividade($objPenBlocoProcedimentoDTO->getNumIdAtividade()); + $objExpedirProcedimentoDTO->setNumIdUnidade($objPenBlocoProcedimentoDTO->getNumIdUnidade()); + + $objExpedirProcedimentoRN = new ExpedirProcedimentoRN(); + $objExpedirProcedimentoRN->expedirProcedimento($objExpedirProcedimentoDTO); + + $numIDT = $objPenBlocoProcedimentoDTO->getDblIdProtocolo(); + $numTempoTotalEnvio = round(microtime(true) - $numTempoInicialEnvio, 2); + $this->gravarLogDebug("Finalizado o envio de protocolo com IDProcedimento $numIDT(Tempo total: {$numTempoTotalEnvio}s)", 0, true); } else { - $objPenBlocoProcedimentoRN->desbloquearProcessoBloco($objPenBlocoProcedimentoDTO->getDblIdProtocolo()); + $objPenBlocoProcedimentoRN->desbloquearProcessoBloco($objPenBlocoProcedimentoDTO->getDblIdProtocolo()); } } } catch (\Exception $e) { - throw new InfraException('Falha ao expedir processso em bloco.', $e); + throw new InfraException('Falha ao expedir processso em bloco.', $e); } } private function configurarCallbacks() { - $this->objGearmanWorker->addFunction("enviarProcesso", function($job) { - $this->enviarProcesso($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); - - $this->objGearmanWorker->addFunction("enviarComponenteDigital", function($job) { - $this->enviarComponenteDigital($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); - - $this->objGearmanWorker->addFunction("receberReciboTramite", function($job) { - $this->receberReciboTramite($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); - - $this->objGearmanWorker->addFunction("receberProcedimento", function($job) { - $this->receberProcedimento($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); - - $this->objGearmanWorker->addFunction("receberTramitesRecusados", function($job) { - $this->receberTramitesRecusados($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); - - $this->objGearmanWorker->addFunction("receberComponenteDigital", function($job) { - $this->receberComponenteDigital($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); - - $this->objGearmanWorker->addFunction("enviarReciboTramiteProcesso", function($job) { - $this->enviarReciboTramiteProcesso($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); - - $this->objGearmanWorker->addFunction("expedirBloco", function($job) { - $this->expedirBloco($job->workload()); - }, null, self::TIMEOUT_PROCESSAMENTO_JOB); + $this->objGearmanWorker->addFunction( + "enviarProcesso", function ($job): void { + $this->enviarProcesso($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); + + $this->objGearmanWorker->addFunction( + "enviarComponenteDigital", function ($job): void { + $this->enviarComponenteDigital($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); + + $this->objGearmanWorker->addFunction( + "receberReciboTramite", function ($job): void { + $this->receberReciboTramite($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); + + $this->objGearmanWorker->addFunction( + "receberProcedimento", function ($job): void { + $this->receberProcedimento($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); + + $this->objGearmanWorker->addFunction( + "receberTramitesRecusados", function ($job): void { + $this->receberTramitesRecusados($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); + + $this->objGearmanWorker->addFunction( + "receberComponenteDigital", function ($job): void { + $this->receberComponenteDigital($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); + + $this->objGearmanWorker->addFunction( + "enviarReciboTramiteProcesso", function ($job): void { + $this->enviarReciboTramiteProcesso($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); + + $this->objGearmanWorker->addFunction( + "expedirBloco", function ($job): void { + $this->expedirBloco($job->workload()); + }, null, self::TIMEOUT_PROCESSAMENTO_JOB + ); } @@ -369,18 +386,19 @@ private function gravarLogDebug($parStrMensagem, $parNumIdentacao = 0, $parBolLo */ private static function verificarGearmanAtivo($parStrServidor, $parStrPorta) { - // Verifica se existe um servidor do Gearman ativo para conexo - $bolAtivo = false; - try { - if(!class_exists("GearmanClient")){ - throw new InfraException("No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN (GearmanClient). " . - "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes"); + if(!class_exists("GearmanClient")) { + throw new InfraException( + "No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN (GearmanClient). " . + "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes" + ); } - if(!class_exists("GearmanWorker")){ - throw new InfraException("No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN (GearmanWorker). " . - "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes"); + if(!class_exists("GearmanWorker")) { + throw new InfraException( + "No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN (GearmanWorker). " . + "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes" + ); } $objGearmanClient = new GearmanClient(); @@ -410,26 +428,26 @@ public static function inicializarWorkers($parNumQtdeWorkers = null) $strGearmanServidor = trim(@$arrObjGearman["Servidor"] ?: null); $strGearmanPorta = trim(@$arrObjGearman["Porta"] ?: null); - if(!empty($strGearmanServidor)){ + if(!empty($strGearmanServidor)) { try { if(self::verificarGearmanAtivo($strGearmanServidor, $strGearmanPorta)) { for ($worker=0; $worker < $parNumQtdeWorkers; $worker++) { $strComandoIdentificacaoWorker = sprintf(self::COMANDO_IDENTIFICACAO_WORKER_ID, $worker); exec($strComandoIdentificacaoWorker, $strSaida, $numCodigoResposta); - if($numCodigoResposta != 0){ - $strLocalizacaoScript = realpath(self::LOCALIZACAO_SCRIPT_WORKER); - $strPhpExec = empty(PHP_BINARY) ? "php" : PHP_BINARY; - $strPhpIni = php_ini_loaded_file(); - $strPhpIni = $strPhpIni ? "-c $strPhpIni" : ""; - - $strComandoProcessamentoTarefas = sprintf( - self::COMANDO_EXECUCAO_WORKER, - $strPhpExec, // Binrio do PHP utilizado no contexto de execuo do script atual (ex: /usr/bin/php) - $strPhpIni, // Arquivo de configucao o PHP utilizado no contexto de execuo do script atual (ex: /etc/php.ini) - $strLocalizacaoScript, // Path absoluto do script de processamento de tarefas do Barramento - $worker, // Identificador sequencial do processo paralelo a ser iniciado - "/dev/null" // Localizao de log adicinal para registros de falhas no salvas pelo SEI no BDsss + if($numCodigoResposta != 0) { + $strLocalizacaoScript = realpath(self::LOCALIZACAO_SCRIPT_WORKER); + $strPhpExec = empty(PHP_BINARY) ? "php" : PHP_BINARY; + $strPhpIni = php_ini_loaded_file(); + $strPhpIni = $strPhpIni ? "-c $strPhpIni" : ""; + + $strComandoProcessamentoTarefas = sprintf( + self::COMANDO_EXECUCAO_WORKER, + $strPhpExec, // Binrio do PHP utilizado no contexto de execuo do script atual (ex: /usr/bin/php) + $strPhpIni, // Arquivo de configucao o PHP utilizado no contexto de execuo do script atual (ex: /etc/php.ini) + $strLocalizacaoScript, // Path absoluto do script de processamento de tarefas do Barramento + $worker, // Identificador sequencial do processo paralelo a ser iniciado + "/dev/null" // Localizao de log adicinal para registros de falhas no salvas pelo SEI no BDsss ); shell_exec($strComandoProcessamentoTarefas); diff --git a/src/rn/ProcessoEletronicoRN.php b/src/rn/ProcessoEletronicoRN.php index 56a38442f..3efdcab6d 100755 --- a/src/rn/ProcessoEletronicoRN.php +++ b/src/rn/ProcessoEletronicoRN.php @@ -1,6 +1,16 @@ <?php -class ProcessoNaoPodeSerDesbloqueadoException extends Exception {} +$dirSeiVendor = !defined("DIR_SEI_VENDOR") ? getenv("DIR_SEI_VENDOR") ?: __DIR__ . "/../vendor" : DIR_SEI_VENDOR; +require_once $dirSeiVendor . '/autoload.php'; + +use GuzzleHttp\Client; +use GuzzleHttp\Exception\RequestException; +use GuzzleHttp\Exception\GuzzleException; +use GuzzleHttp\Psr7\Utils; + +class ProcessoNaoPodeSerDesbloqueadoException extends Exception +{ +} /** * Classe representando a interface de comunicao com os servios do Barramento do PEN @@ -84,23 +94,18 @@ class ProcessoEletronicoRN extends InfraRN */ const MTV_RCSR_TRAM_CD_OUTROU = '99'; - public static $MOTIVOS_RECUSA = array( - "01" => "Formato de componente digital no suportado", - "02" => "Componente digital corrompido", - "03" => "Falta de componentes digitais", - "04" => "Espcie documental no mapeada no destinatrio", - "99" => "Outro" - ); + public static $MOTIVOS_RECUSA = ["01" => "Formato de componente digital no suportado", "02" => "Componente digital corrompido", "03" => "Falta de componentes digitais", "04" => "Espcie documental no mapeada no destinatrio", "99" => "Outro"]; - private $objPenWs; private $strEnderecoWebService; - private $options; private $numTentativasErro; - private $strComumXSD; private $strLocalCert; private $strLocalCertPassword; - public function __construct() + private $strClientGuzzle; + private $strBaseUri; + private $arrheaders; + + public function __construct() { $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); $strEnderecoWebService = $objConfiguracaoModPEN->getValor("PEN", "WebService"); @@ -108,65 +113,57 @@ public function __construct() $strSenhaCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "SenhaCertificado"); $numTentativasErro = $objConfiguracaoModPEN->getValor("PEN", "NumeroTentativasErro", false, self::WS_TENTATIVAS_ERRO); $numTentativasErro = (is_numeric($numTentativasErro)) ? intval($numTentativasErro) : self::WS_TENTATIVAS_ERRO; - + $this->strEnderecoWebService = $strEnderecoWebService; - $this->strComumXSD = $this->strEnderecoWebService . '?xsd=comum.xsd'; $this->strLocalCert = $strLocalizacaoCertificadoDigital; $this->strLocalCertPassword = $strSenhaCertificadoDigital; $this->numTentativasErro = $numTentativasErro; - $this->options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $this->strLocalCert - , 'passphrase' => $this->strLocalCertPassword - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => self::WS_TIMEOUT_CONEXAO - , 'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ) + $this->strBaseUri = $strEnderecoWebService; + $this->arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $this->strClientGuzzle = new Client( + [ + 'base_uri' => $this->strBaseUri, + 'timeout' => self::WS_TIMEOUT_CONEXAO, + 'headers' => $this->arrheaders, + 'cert' => [$strLocalizacaoCertificadoDigital, $strSenhaCertificadoDigital], + ] ); } - protected function inicializarObjInfraIBanco() { return BancoSEI::getInstance(); } - - /** - * Construtor do objeto SoapClien utilizado para comunicao Webservice SOAP - * - * @return void - */ private function getObjPenWs() { - if($this->objPenWs == null) { - - if (InfraString::isBolVazia($this->strEnderecoWebService)) { + if (InfraString::isBolVazia($this->strEnderecoWebService)) { throw new InfraException('Endereo do servio de integrao do Tramita GOV.BR no informado.'); - } + } - if (InfraString::isBolVazia($this->strLocalCertPassword)) { - throw new InfraException('Dados de autenticao do servio de integrao do Tramita.GOV.BR no informados.'); - } + if (InfraString::isBolVazia($this->strLocalCertPassword)) { + throw new InfraException('Dados de autenticao do servio de integrao do Tramita.GOV.BR no informados.'); + } - $this->validarDisponibilidade(); + // Validar disponibilidade do servio + $endpoint = $this->strEnderecoWebService . 'healthcheck'; - try { - $strWSDL = $this->strEnderecoWebService . '?wsdl'; - $this->objPenWs = new BeSimple\SoapClient\SoapClient($strWSDL, $this->options); - } catch (Exception $e) { - $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); - $mensagem = "Falha de comunicao com o Tramita GOV.BR: " . $detalhes; - throw new \SoapFault("HTTP", $mensagem); + try{ + $response = $this->strClientGuzzle->request('GET', $endpoint); + + if ($response->getStatusCode() !== 200) { + throw new \RuntimeException('Falha ao conectar com o servio REST'); } + } catch (RequestException $e) { + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + $mensagem = "Falha de comunicao com o Tramita GOV.BR: " . $detalhes; + throw new \Exception($mensagem); } - - return $this->objPenWs; } @@ -174,36 +171,28 @@ private function getObjPenWs() * Consulta a lista de repositrio de estruturas disponveis no Barramento de Servios do PEN * * @param int $numIdentificacaoDoRepositorioDeEstruturas Cdigo de identificao do repositrio de estruturas do PEN - * @return void */ public function consultarRepositoriosDeEstruturas($numIdentificacaoDoRepositorioDeEstruturas) { $objRepositorioDTO = null; - try{ - $parametros = new stdClass(); - $parametros->filtroDeConsultaDeRepositoriosDeEstrutura = new stdClass(); - $parametros->filtroDeConsultaDeRepositoriosDeEstrutura->ativos = false; - - $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarRepositoriosDeEstruturas($parametros); - }); - - if(isset($result->repositoriosEncontrados->repositorio)){ - - if(!is_array($result->repositoriosEncontrados->repositorio)) { - $result->repositoriosEncontrados->repositorio = array($result->repositoriosEncontrados->repositorio); - } - - foreach ($result->repositoriosEncontrados->repositorio as $repositorio) { - if($repositorio->id == $numIdentificacaoDoRepositorioDeEstruturas){ - $objRepositorioDTO = new RepositorioDTO(); - $objRepositorioDTO->setNumId($repositorio->id); - $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio->nome, 'ISO-8859-1', 'UTF-8')); - $objRepositorioDTO->setBolAtivo($repositorio->ativo); + $endpoint = 'repositorios-de-estruturas'; + try { + $parametros = [ + 'ativo' => true + ]; + $arrResultado = $this->get($endpoint, $parametros); + + if (isset($arrResultado)) { + foreach ($arrResultado as $repositorio) { + if ($repositorio->id == $numIdentificacaoDoRepositorioDeEstruturas) { + $objRepositorioDTO = new RepositorioDTO(); + $objRepositorioDTO->setNumId($repositorio->id); + $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio->nome, 'ISO-8859-1', 'UTF-8')); + $objRepositorioDTO->setBolAtivo($repositorio->ativo); + } } } - } - } catch(Exception $e){ + } catch (Exception $e) { $mensagem = "Falha na obteno dos Repositrios de Estruturas Organizacionais"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); @@ -217,128 +206,111 @@ public function consultarRepositoriosDeEstruturas($numIdentificacaoDoRepositorio * * @return void */ - public function listarRepositoriosDeEstruturas() + public function listarRepositoriosDeEstruturas($ativo = true) { - $arrObjRepositorioDTO = array(); - - try{ - $parametros = new stdClass(); - $parametros->filtroDeConsultaDeRepositoriosDeEstrutura = new stdClass(); - $parametros->filtroDeConsultaDeRepositoriosDeEstrutura->ativos = true; - - $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarRepositoriosDeEstruturas($parametros); - }); - - if(isset($result->repositoriosEncontrados->repositorio)){ - if(!is_array($result->repositoriosEncontrados->repositorio)) { - $result->repositoriosEncontrados->repositorio = array($result->repositoriosEncontrados->repositorio); - } - - foreach ($result->repositoriosEncontrados->repositorio as $repositorio) { - $item = new RepositorioDTO(); - $item->setNumId($repositorio->id); - $item->setStrNome(mb_convert_encoding($repositorio->nome, 'ISO-8859-1', 'UTF-8')); - $item->setBolAtivo($repositorio->ativo); - $arrObjRepositorioDTO[] = $item; + $arrObjRepositorioDTO = []; + $endpoint = 'repositorios-de-estruturas'; + + try { + $parametros = [ + 'ativos' => $ativo + ]; + + $arrResultado = $this->get($endpoint, $parametros); + + if (isset($arrResultado)) { + foreach ($arrResultado as $repositorio) { + $objRepositorioDTO = new RepositorioDTO(); + $objRepositorioDTO->setNumId($repositorio->id); + $objRepositorioDTO->setStrNome(mb_convert_encoding($repositorio->nome, 'ISO-8859-1', 'UTF-8')); + $objRepositorioDTO->setBolAtivo($repositorio->ativo); + $arrObjRepositorioDTO[] = $objRepositorioDTO; + } } - } - } catch(Exception $e){ + } catch(Exception $e) { $mensagem = "Falha na obteno dos Repositrios de Estruturas Organizacionais"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); } - + return $arrObjRepositorioDTO; } - /** - * Mtodo responsvel por consultar as estruturas das unidades externas no barramento - * @param $idRepositorioEstrutura - * @param $numeroDeIdentificacaoDaEstrutura - * @param bool $bolRetornoRaw - * @return EstruturaDTO|mixed - * @throws InfraException - */ + * Mtodo responsvel por consultar as estruturas das unidades externas no barramento. + * + * @param int $idRepositorioEstrutura + * @param int $numeroDeIdentificacaoDaEstrutura + * @param bool $bolRetornoRaw + * @throws InfraException + * @return EstruturaDTO + */ public function consultarEstrutura($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura, $bolRetornoRaw = false) - { + { + $endpoint = "repositorios-de-estruturas/{$idRepositorioEstrutura}/estruturas-organizacionais/$numeroDeIdentificacaoDaEstrutura"; try { - $parametros = new stdClass(); - $parametros->filtroDeEstruturas = new stdClass(); - $parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura; - $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = $numeroDeIdentificacaoDaEstrutura; - $parametros->filtroDeEstruturas->apenasAtivas = false; - - $result = $this->tentarNovamenteSobErroHTTP(function ($objPenWs) use ($parametros) { - return $objPenWs->consultarEstruturas($parametros); - }); - - if ($result->estruturasEncontradas->totalDeRegistros == 1) { - $arrObjEstrutura = is_array($result->estruturasEncontradas->estrutura) ? $result->estruturasEncontradas->estrutura : array($result->estruturasEncontradas->estrutura); - $objEstrutura = current($arrObjEstrutura); - - $objEstrutura->nome = mb_convert_encoding($objEstrutura->nome, 'ISO-8859-1', 'UTF-8'); - $objEstrutura->sigla = mb_convert_encoding($objEstrutura->sigla, 'ISO-8859-1', 'UTF-8'); - - if ($bolRetornoRaw !== false) { - if (isset($objEstrutura->hierarquia) && isset($objEstrutura->hierarquia->nivel)) { - if (!is_array($objEstrutura->hierarquia->nivel)) { - $objEstrutura->hierarquia->nivel = array($objEstrutura->hierarquia->nivel); - } - foreach ($objEstrutura->hierarquia->nivel as &$objNivel) { - $objNivel->nome = mb_convert_encoding($objNivel->nome, 'ISO-8859-1', 'UTF-8'); - } + $parametros = []; + $arrResultado = $this->get($endpoint, $parametros); + + if ($bolRetornoRaw !== false) { + $arrResultado->nome = mb_convert_encoding($arrResultado->nome, 'ISO-8859-1', 'UTF-8'); + $arrResultado->sigla = mb_convert_encoding($arrResultado->sigla, 'ISO-8859-1', 'UTF-8'); + + if (isset($arrResultado->hierarquia) && is_array($arrResultado->hierarquia)) { + foreach ($arrResultado->hierarquia as &$arrHierarquia) { + $arrHierarquia->nome = mb_convert_encoding($arrHierarquia->nome, 'ISO-8859-1', 'UTF-8'); } - return $objEstrutura; - } else { - $objEstruturaDTO = new EstruturaDTO(); - $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($objEstrutura->numeroDeIdentificacaoDaEstrutura); - $objEstruturaDTO->setStrNome($objEstrutura->nome); - $objEstruturaDTO->setStrSigla($objEstrutura->sigla); - $objEstruturaDTO->setBolAtivo($objEstrutura->ativo); - $objEstruturaDTO->setBolAptoParaReceberTramites($objEstrutura->aptoParaReceberTramites); - $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($objEstrutura->codigoNoOrgaoEntidade); - return $objEstruturaDTO; } + + return $this->converterArrayParaObjeto($arrResultado); } + + $objEstruturaDTO = new EstruturaDTO(); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($arrResultado->numeroDeIdentificacaoDaEstrutura); + $objEstruturaDTO->setStrNome(mb_convert_encoding($arrResultado->nome, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($arrResultado->sigla, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setBolAtivo($arrResultado->ativo); + $objEstruturaDTO->setBolAptoParaReceberTramites($arrResultado->aptoParaReceberTramites); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($arrResultado->codigoNoOrgaoEntidade); + + return $objEstruturaDTO; } catch (Exception $e) { - $mensagem = "Falha na obteno de unidades externas"; - $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); - throw new InfraException($mensagem, $e, $detalhes); + $mensagem = "Falha na obteno de unidades externas"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); } } - /** - * Mtodo responsvel por recuperar pela estutura pai a estrutura de filhos de uma unidade - * @param $idRepositorioEstrutura - * @param null $numeroDeIdentificacaoDaEstrutura - * @param bool $bolRetornoRaw - * @return array - * @throws InfraException - */ + /** + * Mtodo responsvel por recuperar pela estutura pai a estrutura de filhos de uma unidade + * + * @param $idRepositorioEstrutura + * @param bool $bolRetornoRaw + * @return array + * @throws InfraException + */ public function consultarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura = null, $bolRetornoRaw = false) { try { - $estruturasUnidades = null; + $estruturasUnidades = null; if (is_null($numeroDeIdentificacaoDaEstrutura)) { $estruturasUnidades = $this->validarRestricaoUnidadesCadastradas($idRepositorioEstrutura); } if (is_null($estruturasUnidades)) { - $estruturasUnidades = $this->buscarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura); + $estruturasUnidades = $this->buscarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura); } - //Cria um array com os nomes da unidades para realizar a ordenao das mesmas - $nomesUnidades = []; + //Cria um array com os nomes da unidades para realizar a ordenao das mesmas + $nomesUnidades = []; foreach ($estruturasUnidades as $estrutura) { - $nomesUnidades[] = $estrutura->nome; + $nomesUnidades[] = $estrutura->nome; } - //Ordena as unidades pelo nome - array_multisort($nomesUnidades, SORT_ASC, $estruturasUnidades); + //Ordena as unidades pelo nome + array_multisort($nomesUnidades, SORT_ASC, $estruturasUnidades); - return $estruturasUnidades; + return $estruturasUnidades; } catch (Exception $e) { $mensagem = "Falha na obteno de unidades externas"; @@ -347,39 +319,182 @@ public function consultarEstruturasPorEstruturaPai($idRepositorioEstrutura, $num } } - /** - * Verifica se o repositrio de estruturas possui limitao de repositrios/unidades mapeadas - * - * @param $idRepositorioEstrutura - * @return array|null - */ - private function validarRestricaoUnidadesCadastradas($idRepositorioEstrutura) - { - //Verificar limitao de repositrios/unidades mapeadas - $arrEstruturasCadastradas = null; + /** + * Lista estruturas de um repositrio de estruturas. + * + * @param int $idRepositorioEstrutura ID do repositrio de estruturas. + * @param string $nome + * @param int $numeroDeIdentificacaoDaEstruturaRaizDaConsulta + * @param string $nomeUnidade + * @param string $siglaUnidade + * @param int $offset Offset + * @param int $registrosPorPagina + * @param bool $parBolPermiteRecebimento + * @param bool $parBolPermiteEnvio + * @throws InfraException + * @return EstruturaDTO + */ + public function listarEstruturas( + $idRepositorioEstrutura, + $nome = '', + $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null, + $nomeUnidade = null, + $siglaUnidade = null, + $offset = null, + $registrosPorPagina = null, + $parBolPermiteRecebimento = null, + $parBolPermiteEnvio = null + ) { + $arrObjEstruturaDTO = []; try { - $objUnidadeDTO = new PenUnidadeDTO(); - $objUnidadeDTO->retNumIdUnidadeRH(); - $objUnidadeDTO->retNumIdUnidade(); - $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - - $objUnidadeRN = new UnidadeRN(); - $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); - - $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); - $objPenUnidadeRestricaoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); - $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($objUnidadeDTO->getNumIdUnidadeRH()); - $objPenUnidadeRestricaoDTO->setNumIdUnidadeRestricao($idRepositorioEstrutura); - $objPenUnidadeRestricaoDTO->setNumIdUnidadeRHRestricao(null, InfraDTO::$OPER_DIFERENTE); - $objPenUnidadeRestricaoDTO->retNumIdUnidadeRHRestricao(); - $objPenUnidadeRestricaoDTO->retStrNomeUnidadeRHRestricao(); - - $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); - $restricaoCadastrada = $objPenUnidadeRestricaoRN->contar($objPenUnidadeRestricaoDTO); - $restricaoCadastrada = $restricaoCadastrada > 0; + $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT); + if (!$idRepositorioEstrutura) { + throw new InfraException('Repositrio de Estruturas invlido'); + } + + $parametros = [ + 'apenasAtivas' => true, + 'identificacaoDoRepositorioDeEstruturas' => $idRepositorioEstrutura, + 'sigla' => $siglaUnidade, + 'nome' => $nomeUnidade, + 'permiteRecebimento' => $parBolPermiteRecebimento, + 'permiteEnvio' => $parBolPermiteEnvio, + 'numeroDeIdentificacaoDaEstruturaRaizDaConsulta' => $numeroDeIdentificacaoDaEstruturaRaizDaConsulta ?: $nome, + 'registroInicial' => $offset, + 'quantidadeDeRegistros' => $registrosPorPagina, + ]; + + $arrResultado = $this->consultarEstruturas($idRepositorioEstrutura, $parametros); + + if ($arrResultado['totalDeRegistros'] > 0) { + + foreach ($arrResultado['estruturas'] as $estrutura) { + $objEstruturaDTO = new EstruturaDTO(); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura['numeroDeIdentificacaoDaEstrutura']); + $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura['nome'], 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura['sigla'], 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setBolAtivo($estrutura['ativo']); + $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura['aptoParaReceberTramites']); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura['codigoNoOrgaoEntidade']); + $objEstruturaDTO->setNumTotalDeRegistros($arrResultado['totalDeRegistros']); + + $arrHerarquia = array_map( + function ($nivel) { + return mb_convert_encoding($nivel['sigla'], 'ISO-8859-1', 'UTF-8'); + }, $estrutura['hierarquia'] ?: [] + ); + + $objEstruturaDTO->setArrHierarquia($arrHerarquia); + + $arrObjEstruturaDTO[] = $objEstruturaDTO; + } + } + } catch (Exception $e) { + $mensagem = "Falha na obteno de unidades externas"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); + } + + return $arrObjEstruturaDTO; + } + + + /** + * Lista estruturas de um repositrio de estruturas. + * + * @param int $idRepositorioEstrutura ID do repositrio de estruturas. + * @param string $nome + * @param int $numeroDeIdentificacaoDaEstruturaRaizDaConsulta + * @param string $nomeUnidade + * @param string $siglaUnidade + * @param int $offset Offset + * @param int $registrosPorPagina + * @param bool $parBolPermiteRecebimento + * @param bool $parBolPermiteEnvio + * @throws InfraException + * @return EstruturaDTO + */ + public function buscarEstrutura( + $idRepositorioEstrutura, + $nome = '', + $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null, + $nomeUnidade = null, + $siglaUnidade = null, + $offset = null, + $registrosPorPagina = null, + $parBolPermiteRecebimento = null, + $parBolPermiteEnvio = null + ) { + try { + $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT); + if (!$idRepositorioEstrutura) { + throw new InfraException('Repositrio de Estruturas invlido'); + } + + $rh = $numeroDeIdentificacaoDaEstruturaRaizDaConsulta ?: $nome; + + $estrutura = $this->buscarEstruturaRest($idRepositorioEstrutura, $rh); + + if ($estrutura !== null) { + + $objEstruturaDTO = new EstruturaDTO(); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura); + $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura->nome, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura->sigla, 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setBolAtivo($estrutura->ativo); + $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade); + + $arrHerarquia = array_map( + function ($nivel) { + return mb_convert_encoding($nivel->sigla, 'ISO-8859-1', 'UTF-8'); + }, $estrutura->hierarquia ?: [] + ); + + $objEstruturaDTO->setArrHierarquia($arrHerarquia); + + return $objEstruturaDTO; + } + + return null; + } catch (Exception $e) { + throw new InfraException("Falha na obteno de unidades externas"); + } + } + + /** + * Verifica se o repositrio de estruturas possui limitao de repositrios/unidades mapeadas + * + * @param $idRepositorioEstrutura + * @return array|null + */ + protected function validarRestricaoUnidadesCadastradas($idRepositorioEstrutura) + { + //Verificar limitao de repositrios/unidades mapeadas + $arrEstruturasCadastradas = null; + try { + $objUnidadeDTO = new PenUnidadeDTO(); + $objUnidadeDTO->retNumIdUnidadeRH(); + $objUnidadeDTO->retNumIdUnidade(); + $objUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + + $objUnidadeRN = new UnidadeRN(); + $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); + + $objPenUnidadeRestricaoDTO = new PenUnidadeRestricaoDTO(); + $objPenUnidadeRestricaoDTO->setNumIdUnidade($objUnidadeDTO->getNumIdUnidade()); + $objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($objUnidadeDTO->getNumIdUnidadeRH()); + $objPenUnidadeRestricaoDTO->setNumIdUnidadeRestricao($idRepositorioEstrutura); + $objPenUnidadeRestricaoDTO->setNumIdUnidadeRHRestricao(null, InfraDTO::$OPER_DIFERENTE); + $objPenUnidadeRestricaoDTO->retNumIdUnidadeRHRestricao(); + $objPenUnidadeRestricaoDTO->retStrNomeUnidadeRHRestricao(); + + $objPenUnidadeRestricaoRN = new PenUnidadeRestricaoRN(); + $restricaoCadastrada = $objPenUnidadeRestricaoRN->contar($objPenUnidadeRestricaoDTO); + $restricaoCadastrada = $restricaoCadastrada > 0; if ($restricaoCadastrada) { - $arrEstruturasCadastradas = array(); + $arrEstruturasCadastradas = []; $arrEstruturas = $objPenUnidadeRestricaoRN->listar($objPenUnidadeRestricaoDTO); $parametros = new stdClass(); $parametros->filtroDeEstruturas = new stdClass(); @@ -388,9 +503,11 @@ private function validarRestricaoUnidadesCadastradas($idRepositorioEstrutura) foreach ($arrEstruturas as $unidade) { if ($unidade->getNumIdUnidadeRHRestricao() != null) { $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = $unidade->getNumIdUnidadeRHRestricao(); - $result = $this->tentarNovamenteSobErroHTTP(function ($objPenWs) use ($parametros) { - return $objPenWs->consultarEstruturas($parametros); - }); + $result = $this->tentarNovamenteSobErroHTTP( + function ($objPenWs) use ($parametros) { + return $objPenWs->consultarEstruturas($parametros); + } + ); if ($result->estruturasEncontradas->totalDeRegistros == 0) { continue; @@ -401,7 +518,7 @@ private function validarRestricaoUnidadesCadastradas($idRepositorioEstrutura) $arrEstruturasCadastradas[] = $value; } } else { - $arrEstruturasCadastradas[] = $result->estruturasEncontradas->estrutura; + $arrEstruturasCadastradas[] = $result->estruturasEncontradas->estrutura; } } } @@ -409,117 +526,95 @@ private function validarRestricaoUnidadesCadastradas($idRepositorioEstrutura) } catch (Exception $e) { } - return $arrEstruturasCadastradas; + return $arrEstruturasCadastradas; } - /** - * Busca estruturas por estrutura pai - * - * @param $idRepositorioEstrutura - * @param null|string $numeroDeIdentificacaoDaEstrutura - * @return array - */ - private function buscarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura = null) - { - $parametros = new stdClass(); - $parametros->filtroDeEstruturasPorEstruturaPai = new stdClass(); - $parametros->filtroDeEstruturasPorEstruturaPai->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura; + /** + * Busca estruturas por estrutura pai + * + * @param $idRepositorioEstrutura + * @param null|string $numeroDeIdentificacaoDaEstrutura + * @return array + */ + protected function buscarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura = null) + { + $parametros = new stdClass(); + $parametros->filtroDeEstruturasPorEstruturaPai = new stdClass(); + $parametros->filtroDeEstruturasPorEstruturaPai->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura; - if(!is_null($numeroDeIdentificacaoDaEstrutura)){ - $parametros->filtroDeEstruturasPorEstruturaPai->numeroDeIdentificacaoDaEstrutura = $numeroDeIdentificacaoDaEstrutura; + if(!is_null($numeroDeIdentificacaoDaEstrutura)) { + $parametros->filtroDeEstruturasPorEstruturaPai->numeroDeIdentificacaoDaEstrutura = $numeroDeIdentificacaoDaEstrutura; } - $parametros->filtroDeEstruturasPorEstruturaPai->apenasAtivas = true; - $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarEstruturasPorEstruturaPai($parametros); - }); + $parametros->filtroDeEstruturasPorEstruturaPai->apenasAtivas = true; + $result = $this->tentarNovamenteSobErroHTTP( + function ($objPenWs) use ($parametros) { + return $objPenWs->consultarEstruturasPorEstruturaPai($parametros); + } + ); - return is_array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura) + return is_array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura) ? $result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura - : array($result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura); + : [$result->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura]; } - public function listarEstruturas($idRepositorioEstrutura, $nome = '', $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null, - $nomeUnidade = null, $siglaUnidade = null, $offset = null, $registrosPorPagina = null, $parBolPermiteRecebimento = null, $parBolPermiteEnvio = null) - { - $arrObjEstruturaDTO = array(); - - try{ - $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT); - if(!$idRepositorioEstrutura) { - throw new InfraException("Repositrio de Estruturas invlido"); - } - - $parametros = new stdClass(); - $parametros->filtroDeEstruturas = new stdClass(); - $parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura; - $parametros->filtroDeEstruturas->apenasAtivas = true; - - if(!is_null($numeroDeIdentificacaoDaEstruturaRaizDaConsulta)){ - $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstruturaRaizDaConsulta = $numeroDeIdentificacaoDaEstruturaRaizDaConsulta; - }else{ - $nome = trim($nome); - if(is_numeric($nome)) { - $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = intval($nome); - } else { - $parametros->filtroDeEstruturas->nome = mb_convert_encoding($nome, 'UTF-8', 'ISO-8859-1'); - } - } - if(!is_null($siglaUnidade)){ - $parametros->filtroDeEstruturas->sigla = $siglaUnidade; - } - - if(!is_null($nomeUnidade)){ - $parametros->filtroDeEstruturas->nome = mb_convert_encoding($nomeUnidade, 'UTF-8', 'ISO-8859-1'); - } - - if(!is_null($registrosPorPagina) && !is_null($offset)){ - $parametros->filtroDeEstruturas->paginacao = new stdClass(); - $parametros->filtroDeEstruturas->paginacao->registroInicial = $offset; - $parametros->filtroDeEstruturas->paginacao->quantidadeDeRegistros = $registrosPorPagina; - } - - if(!is_null($parBolPermiteRecebimento) && $parBolPermiteRecebimento === true){ - $parametros->filtroDeEstruturas->permiteRecebimento = true; - } - - if(!is_null($parBolPermiteEnvio) && $parBolPermiteEnvio === true){ - $parametros->filtroDeEstruturas->permiteEnvio = true; - } - - $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarEstruturas($parametros); - }); - - if($result->estruturasEncontradas->totalDeRegistros > 0) { - - if(!is_array($result->estruturasEncontradas->estrutura)) { - $result->estruturasEncontradas->estrutura = array($result->estruturasEncontradas->estrutura); - } + public function listarEstruturasBuscaTextual( + $idRepositorioEstrutura, + $nome = '', + $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null, + $nomeUnidade = null, + $siglaUnidade = null, + $offset = null, + $registrosPorPagina = null, + $parBolPermiteRecebimento = null, + $parBolPermiteEnvio = null + ) { + $arrObjEstruturaDTO = []; - foreach ($result->estruturasEncontradas->estrutura as $estrutura) { - $item = new EstruturaDTO(); - $item->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura); - $item->setStrNome(mb_convert_encoding($estrutura->nome, 'ISO-8859-1', 'UTF-8')); - $item->setStrSigla(mb_convert_encoding($estrutura->sigla, 'ISO-8859-1', 'UTF-8')); - $item->setBolAtivo($estrutura->ativo); - $item->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites); - $item->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade); - $item->setNumTotalDeRegistros($result->estruturasEncontradas->totalDeRegistros); - - if(!empty($estrutura->hierarquia->nivel)) { - $array = array(); - foreach($estrutura->hierarquia->nivel as $nivel) { - $array[] = mb_convert_encoding($nivel->sigla, 'ISO-8859-1', 'UTF-8'); - } - $item->setArrHierarquia($array); + try { + $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT); + if (!$idRepositorioEstrutura) { + throw new InfraException('Repositrio de Estruturas invlido'); + } + + $parametros = [ + 'apenasAtivas' => true, + 'identificacaoDoRepositorioDeEstruturas' => $idRepositorioEstrutura, + 'sigla' => $siglaUnidade, + 'nome' => $nomeUnidade, + 'permiteRecebimento' => $parBolPermiteRecebimento, + 'permiteEnvio' => $parBolPermiteEnvio, + 'numeroDeIdentificacaoDaEstruturaRaizDaConsulta' => $numeroDeIdentificacaoDaEstruturaRaizDaConsulta ?: $nome, + 'registroInicial' => $offset, + 'quantidadeDeRegistros' => $registrosPorPagina, + ]; + + $arrResultado = $this->consultarEstruturas($idRepositorioEstrutura, $parametros); + + if ($arrResultado['totalDeRegistros'] > 0) { + + foreach ($arrResultado['estruturas'] as $estrutura) { + $objEstruturaDTO = new EstruturaDTO(); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura['numeroDeIdentificacaoDaEstrutura']); + $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura['nome'], 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura['sigla'], 'ISO-8859-1', 'UTF-8')); + $objEstruturaDTO->setBolAtivo($estrutura['ativo']); + $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura['aptoParaReceberTramites']); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura['codigoNoOrgaoEntidade']); + $objEstruturaDTO->setNumTotalDeRegistros($arrResultado['totalDeRegistros']); + + $arrHerarquia = array_map( + function ($nivel) { + return mb_convert_encoding($nivel['sigla'], 'ISO-8859-1', 'UTF-8'); + }, $estrutura['hierarquia'] ?: [] + ); + + $objEstruturaDTO->setArrHierarquia($arrHerarquia); + + $arrObjEstruturaDTO[] = $objEstruturaDTO; } - - $arrObjEstruturaDTO[] = $item; } - } - } catch (Exception $e) { $mensagem = "Falha na obteno de unidades externas"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); @@ -529,276 +624,107 @@ public function listarEstruturas($idRepositorioEstrutura, $nome = '', $numeroDeI return $arrObjEstruturaDTO; } - public function listarEstruturasBuscaTextual( - $idRepositorioEstrutura, - $nome = '', - $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null, - $nomeUnidade = null, - $siglaUnidade = null, - $offset = null, - $registrosPorPagina = null, - $parBolPermiteRecebimento = null, - $parBolPermiteEnvio = null - ) { - $arrObjEstruturaDTO = array(); - - try { - $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT); - if (!$idRepositorioEstrutura) { - throw new InfraException("Repositrio de Estruturas invlido"); - } - - $totalDeRegistros = 0; - $estruturasUnidades = null; - if (is_null($numeroDeIdentificacaoDaEstruturaRaizDaConsulta) || empty($numeroDeIdentificacaoDaEstruturaRaizDaConsulta)) { - $estruturasUnidades = $this->validarRestricaoUnidadesCadastradas($idRepositorioEstrutura); - $totalDeRegistros = is_null($estruturasUnidades) ? 0 : count($estruturasUnidades); - } - - if (is_null($estruturasUnidades)) { - $result = $this->buscarListaEstruturas(array( - [ - 'idRepositorioEstrutura' => $idRepositorioEstrutura, - 'nome' => $nome, - 'numeroDeIdentificacaoDaEstruturaRaizDaConsulta' => $numeroDeIdentificacaoDaEstruturaRaizDaConsulta, - 'nomeUnidade' => $nomeUnidade, - 'siglaUnidade' => $siglaUnidade, - 'offset' => $offset, - 'registrosPorPagina' => $registrosPorPagina, - 'parBolPermiteRecebimento' => $parBolPermiteRecebimento, - 'parBolPermiteEnvio' => $parBolPermiteEnvio - ] - )); - - $totalDeRegistros = $result->estruturasEncontradas->totalDeRegistros; - if ($totalDeRegistros > 0 && !is_array($result->estruturasEncontradas->estrutura)) { - $result->estruturasEncontradas->estrutura = array($result->estruturasEncontradas->estrutura); - } - $estruturasUnidades = $result->estruturasEncontradas->estrutura; - } - - if ($totalDeRegistros > 0) { - foreach ($estruturasUnidades as $estrutura) { - $item = new EstruturaDTO(); - $item->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura); - $item->setStrNome(mb_convert_encoding($estrutura->nome, 'ISO-8859-1', 'UTF-8')); - $item->setStrSigla(mb_convert_encoding($estrutura->sigla, 'ISO-8859-1', 'UTF-8')); - $item->setBolAtivo($estrutura->ativo); - $item->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites); - $item->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade); - $item->setNumTotalDeRegistros($totalDeRegistros); - - if (!empty($estrutura->hierarquia->nivel)) { - $array = array(); - foreach ($estrutura->hierarquia->nivel as $nivel) { - $array[] = mb_convert_encoding($nivel->sigla, 'ISO-8859-1', 'UTF-8'); - } - $item->setArrHierarquia($array); - } - - $arrObjEstruturaDTO[] = $item; - } - } - } catch (Exception $e) { - $mensagem = "Falha na obteno de unidades externas"; - $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); - throw new InfraException($mensagem, $e, $detalhes); - } - - return $arrObjEstruturaDTO; - } - - private function buscarListaEstruturas( - $idRepositorioEstrutura, - $filtro = array() - ) { - $parametros = new stdClass(); - $parametros->filtroDeEstruturas = new stdClass(); - $parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura; - $parametros->filtroDeEstruturas->apenasAtivas = true; - - if (!is_null($filtro['numeroDeIdentificacaoDaEstruturaRaizDaConsulta'])) { - $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstruturaRaizDaConsulta = $filtro['numeroDeIdentificacaoDaEstruturaRaizDaConsulta']; - } else { - $nome = trim($filtro['nome']); - if (is_numeric($nome)) { - $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = intval($nome); - } else { - $parametros->filtroDeEstruturas->nome = mb_convert_encoding($nome, 'UTF-8', 'ISO-8859-1'); - } - } - - if (!is_null($filtro['siglaUnidade'])) { - $parametros->filtroDeEstruturas->sigla = $filtro['siglaUnidade']; - } - - if (!is_null($filtro['nomeUnidade'])) { - $parametros->filtroDeEstruturas->nome = mb_convert_encoding($filtro['nomeUnidade'], 'UTF-8', 'ISO-8859-1'); - } - - if (!is_null($filtro['registrosPorPagina']) && !is_null($filtro['offset'])) { - $parametros->filtroDeEstruturas->paginacao = new stdClass(); - $parametros->filtroDeEstruturas->paginacao->registroInicial = $filtro['offset']; - $parametros->filtroDeEstruturas->paginacao->quantidadeDeRegistros = $filtro['registrosPorPagina']; - } - - if (!is_null($filtro['parBolPermiteRecebimento']) && $filtro['parBolPermiteRecebimento'] === true) { - $parametros->filtroDeEstruturas->permiteRecebimento = true; - } - - if (!is_null($filtro['parBolPermiteEnvio']) && $filtro['parBolPermiteEnvio'] === true) { - $parametros->filtroDeEstruturas->permiteEnvio = true; - } - - return $this->tentarNovamenteSobErroHTTP(function ($objPenWs) use ($parametros) { - return $objPenWs->consultarEstruturas($parametros); - }); - } - public function listarEstruturasAutoCompletar( - $idRepositorioEstrutura, - $nome = '', - $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null, - $nomeUnidade = null, - $siglaUnidade = null, - $offset = null, - $registrosPorPagina = null, - $parBolPermiteRecebimento = null, - $parBolPermiteEnvio = null - ) { - $arrObjEstruturaDTO = array('diferencaDeRegistros' => 0, 'itens' => array()); - + $idRepositorioEstrutura, + $nome = '', + $numeroDeIdentificacaoDaEstruturaRaizDaConsulta = null, + $nomeUnidade = null, + $siglaUnidade = null, + $offset = null, + $registrosPorPagina = null, + $parBolPermiteRecebimento = null, + $parBolPermiteEnvio = null + ) { + $arrObjEstruturaDTO = ['diferencaDeRegistros' => 0, 'itens' => []]; + try { - $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT); + $idRepositorioEstrutura = filter_var($idRepositorioEstrutura, FILTER_SANITIZE_NUMBER_INT); if (!$idRepositorioEstrutura) { throw new InfraException("Repositrio de Estruturas invlido"); } - - $parametros = new stdClass(); - $parametros->filtroDeEstruturas = new stdClass(); - $parametros->filtroDeEstruturas->identificacaoDoRepositorioDeEstruturas = $idRepositorioEstrutura; - $parametros->filtroDeEstruturas->apenasAtivas = true; - - if (!is_null($numeroDeIdentificacaoDaEstruturaRaizDaConsulta)) { - $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstruturaRaizDaConsulta = $numeroDeIdentificacaoDaEstruturaRaizDaConsulta; - } else { - $nome = trim($nome); - if (is_numeric($nome)) { - $parametros->filtroDeEstruturas->numeroDeIdentificacaoDaEstrutura = intval($nome); - } else { - $parametros->filtroDeEstruturas->nome = mb_convert_encoding($nome, 'UTF-8', 'ISO-8859-1'); - } - } - - if (!is_null($siglaUnidade)) { - $parametros->filtroDeEstruturas->sigla = $siglaUnidade; - } - - if (!is_null($nomeUnidade)) { - $parametros->filtroDeEstruturas->nome = mb_convert_encoding($nomeUnidade, 'UTF-8', 'ISO-8859-1'); - } - - if (!is_null($registrosPorPagina) && !is_null($offset)) { - $parametros->filtroDeEstruturas->paginacao = new stdClass(); - $parametros->filtroDeEstruturas->paginacao->registroInicial = $offset; - $parametros->filtroDeEstruturas->paginacao->quantidadeDeRegistros = $registrosPorPagina; - } - - if (!is_null($parBolPermiteRecebimento) && $parBolPermiteRecebimento === true) { - $parametros->filtroDeEstruturas->permiteRecebimento = true; - } - - if (!is_null($parBolPermiteEnvio) && $parBolPermiteEnvio === true) { - $parametros->filtroDeEstruturas->permiteEnvio = true; - } - - $result = $this->tentarNovamenteSobErroHTTP(function ($objPenWs) use ($parametros) { - return $objPenWs->consultarEstruturas($parametros); - }); - - if ($result->estruturasEncontradas->totalDeRegistros > 0) { - - if (!is_array($result->estruturasEncontradas->estrutura)) { - $result->estruturasEncontradas->estrutura = array($result->estruturasEncontradas->estrutura); - } - - foreach ($result->estruturasEncontradas->estrutura as $estrutura) { - $item = new EstruturaDTO(); - $item->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura); - $item->setStrNome(mb_convert_encoding($estrutura->nome, 'ISO-8859-1', 'UTF-8')); - $item->setStrSigla(mb_convert_encoding($estrutura->sigla, 'ISO-8859-1', 'UTF-8')); - $item->setBolAtivo($estrutura->ativo); - $item->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites); - $item->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade); - $item->setNumTotalDeRegistros($result->estruturasEncontradas->totalDeRegistros); - - if (!empty($estrutura->hierarquia->nivel)) { - $array = array(); - foreach ($estrutura->hierarquia->nivel as $nivel) { - $array[] = mb_convert_encoding($nivel->sigla, 'ISO-8859-1', 'UTF-8'); + + $parametros = [ + 'identificacaoDoRepositorioDeEstruturas' => $idRepositorioEstrutura, + 'apenasAtivas' => true, + 'numeroDeIdentificacaoDaEstruturaRaizDaConsulta' => $numeroDeIdentificacaoDaEstruturaRaizDaConsulta, + 'sigla' => $siglaUnidade ?: null, + 'nome' => !is_null($nomeUnidade) ? mb_convert_encoding($nomeUnidade, 'UTF-8') : (is_null($numeroDeIdentificacaoDaEstruturaRaizDaConsulta) && !is_null($nome) ? (is_numeric($nome) ? intval($nome) : mb_convert_encoding($nome, 'UTF-8')) : null), + 'registroInicial' => !is_null($registrosPorPagina) && !is_null($offset) ? $offset : null, + 'quantidadeDeRegistros' => !is_null($registrosPorPagina) && !is_null($offset) ? $registrosPorPagina : null, + 'permiteRecebimento' => $parBolPermiteRecebimento ?: null, + 'permiteEnvio' => $parBolPermiteEnvio ?: null + ]; + + $parametros = array_filter( + $parametros, function ($value) { + return !is_null($value); } - $item->setArrHierarquia($array); - } - - $arrObjEstruturaDTO["itens"][] = $item; + ); + + $arrResultado = $this->consultarEstruturas($idRepositorioEstrutura, $parametros); + + if ($arrResultado->totalDeRegistros > 0) { + foreach ($arrResultado->estruturas as $estrutura) { + + $objEstruturaDTO = new EstruturaDTO(); + $objEstruturaDTO->setNumNumeroDeIdentificacaoDaEstrutura($estrutura->numeroDeIdentificacaoDaEstrutura); + $objEstruturaDTO->setStrNome(mb_convert_encoding($estrutura->nome, 'UTF-8')); + $objEstruturaDTO->setStrSigla(mb_convert_encoding($estrutura->sigla, 'UTF-8')); + $objEstruturaDTO->setBolAtivo($estrutura->ativo); + $objEstruturaDTO->setBolAptoParaReceberTramites($estrutura->aptoParaReceberTramites); + $objEstruturaDTO->setStrCodigoNoOrgaoEntidade($estrutura->codigoNoOrgaoEntidade); + $objEstruturaDTO->setNumTotalDeRegistros($arrResultado->totalDeRegistros); + + $arrHerarquia = array_map( + function ($nivel) { + return mb_convert_encoding($nivel->sigla, 'UTF-8'); + }, $estrutura->hierarquia ?: [] + ); + + $objEstruturaDTO->setArrHierarquia($arrHerarquia); + + $arrObjEstruturaDTO["itens"][] = $objEstruturaDTO; } - - $totalDeRegistros = $result->estruturasEncontradas->totalDeRegistros; + + $totalDeRegistros = $arrResultado->totalDeRegistros; $arrObjEstruturaDTO["diferencaDeRegistros"] = $totalDeRegistros > count($arrObjEstruturaDTO["itens"]) ? - $totalDeRegistros - count($arrObjEstruturaDTO["itens"]) : 0; + $totalDeRegistros - count($arrObjEstruturaDTO["itens"]) : 0; } } catch (Exception $e) { - $mensagem = "Falha na obteno de unidades externas"; - $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); - throw new InfraException($mensagem, $e, $detalhes); + $mensagem = "Falha na obteno de unidades externas"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); } - - return $arrObjEstruturaDTO; + + return $arrObjEstruturaDTO; } + public function consultarMotivosUrgencia() { - $curl = curl_init($this->strComumXSD); - - try{ - $bolEmProducao = boolval(ConfiguracaoSEI::getInstance()->getValor('SEI', 'Producao')); - curl_setopt($curl, CURLOPT_URL, $this->strComumXSD); - curl_setopt($curl, CURLOPT_HEADER, false); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $bolEmProducao); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $bolEmProducao); - curl_setopt($curl, CURLOPT_SSLCERT, $this->strLocalCert); - curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $this->strLocalCertPassword); - - $output = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($curl) { - return curl_exec($curl); - }); - - $dom = new DOMDocument(); - $dom->loadXML($output); - - $xpath = new DOMXPath($dom); - - $rootNamespace = $dom->lookupNamespaceUri($dom->namespaceURI); - $xpath->registerNamespace('x', $rootNamespace); - $entries = $xpath->query('/x:schema/x:simpleType[@name="motivoDaUrgencia"]/x:restriction/x:enumeration'); - - $resultado = array(); - foreach ($entries as $entry) { - $valor = $entry->getAttribute('value'); - $documentationNode = $xpath->query('x:annotation/x:documentation', $entry); - $descricao = $documentationNode->item(0)->nodeValue; - $resultado[$valor] = mb_convert_encoding($descricao, 'ISO-8859-1', 'UTF-8'); + $endpoint = 'motivosUrgencia'; + try { + $parametros = []; + + $arrResultado = $this->get($endpoint, $parametros); + $arrMotivosUrgencia = []; + if (isset($arrResultado)) { + $count = count($arrResultado->motivosUrgencia); + for ($i = 0; $i < $count; $i++) { + $codigo = $i + 1; + $arrMotivosUrgencia[$codigo] = mb_convert_encoding($arrResultado->motivosUrgencia[$i]->descricao, 'ISO-8859-1', 'UTF-8'); + } } - } finally{ - curl_close($curl); + + } catch (Exception $e) { + $mensagem = "Falha na obteno de unidades externas"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); } - - return $resultado; + + return $arrMotivosUrgencia; } - /** * Busca as espcies documentais aceitas pelo Barramento de Servios do PEN * @@ -808,119 +734,72 @@ public function consultarMotivosUrgencia() */ public function consultarEspeciesDocumentais() { - $curl = curl_init($this->strComumXSD); - - try{ - curl_setopt($curl, CURLOPT_URL, $this->strComumXSD); - curl_setopt($curl, CURLOPT_HEADER, 0); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); - - if(!ConfiguracaoSEI::getInstance()->getValor('SEI', 'Producao')){ - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); - } - curl_setopt($curl, CURLOPT_SSLCERT, $this->strLocalCert); - curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $this->strLocalCertPassword); - - $output = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($curl) { - return curl_exec($curl); - }); - - $dom = new DOMDocument(); - $dom->loadXML($output); - - $xpath = new DOMXPath($dom); - $rootNamespace = $dom->lookupNamespaceUri($dom->namespaceURI); - $xpath->registerNamespace('x', $rootNamespace); - $entries = $xpath->query('/x:schema/x:complexType[@name="especie"]/x:sequence/x:element[@name="codigo"]/x:simpleType/x:restriction/x:enumeration'); - if (count($entries) == 0){ - $erro_curl = empty(curl_error($curl))?'No houve':curl_error($curl); - throw new InfraException("No foi achado nenhuma espcie documental. Favor checar a configurao. Possvel erro do curl: ".$erro_curl); - } - $resultado = array(); - foreach ($entries as $entry) { - $valor = $entry->getAttribute('value'); - $documentationNode = $xpath->query('x:annotation/x:documentation', $entry); - $descricao = $documentationNode->item(0)->nodeValue; - $resultado[$valor] = mb_convert_encoding($descricao, 'ISO-8859-1', 'UTF-8'); + $endpoint = 'especies'; + try { + $parametros = []; + + $arrResultado = $this->get($endpoint, $parametros); + $arrEspecies = []; + if (isset($arrResultado)) { + $count = count($arrResultado->especies); + for ($i = 0; $i < $count; $i++) { + $codigo = $i + 1; + $arrEspecies[$codigo] = mb_convert_encoding($arrResultado->especies[$i]->nomeNoProdutor, 'ISO-8859-1', 'UTF-8'); + } } - } finally{ - curl_close($curl); + + } catch (Exception $e) { + $mensagem = "No foi encontrado nenhuma espcie documental."; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); } - return $resultado; + return $arrEspecies; } - - public function enviarProcesso($parametros) - { + public function enviarProcessoREST($parametros) + { + $endpoint = "tramites/processo"; try { - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->enviarProcesso($parametros); - }); + return $this->post($endpoint, $parametros['novoTramiteDeProcesso']); - } catch (\SoapFault $e) { - $strMensagem = str_replace(array("\n", "\r"), ' ', InfraString::formatarJavaScript(mb_convert_encoding($e->faultstring, 'ISO-8859-1', 'UTF-8'))); - - if ($e instanceof \SoapFault && !empty($e->detail->interoperabilidadeException->codigoErro) && $e->detail->interoperabilidadeException->codigoErro == '0005') { - $strMensagem .= 'O cdigo mapeado para a unidade ' . mb_convert_encoding($parametros->novoTramiteDeProcesso->processo->documento[0]->produtor->unidade->nome, 'ISO-8859-1', 'UTF-8') . ' est incorreto.'; - } + } catch (Exception $e) { - $e->faultstring = $this->validarTramitaEmAndamento($parametros, $strMensagem); - $strMensagem = $e->faultstring; - $strDetalhes = str_replace(array("\n", "\r"), ' ', InfraString::formatarJavaScript($this->tratarFalhaWebService($e))); - throw new InfraException($strMensagem, $e, $strDetalhes); - } catch (\Exception $e) { $mensagem = "Falha no envio externo do processo. Verifique log de erros do sistema para maiores informaes."; + $erroRequest = json_decode($e->getMessage()); + if ($erroRequest != null) { + $mensagem = "Falha no envio externo do processo. Erro: {$erroRequest->codigoErro} - {$erroRequest->message}"; + } + $mensagem = mb_convert_encoding($mensagem, 'ISO-8859-1', 'UTF-8'); + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); - } - } - - private function validarTramitaEmAndamento($parametros, $strMensagem) - { - if (strpos($strMensagem, 'j possui trmite em andamento')) { - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); - $objProcessoEletronicoDTO->setDblIdProcedimento($parametros->dblIdProcedimento); - - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $objUltimoTramiteDTO = $objProcessoEletronicoRN->consultarUltimoTramite($objProcessoEletronicoDTO); - $numIdTramite = $objUltimoTramiteDTO->getNumIdTramite(); - if (!is_null($numIdTramite) && $numIdTramite > 0) { - $strMensagem = "O trmite ainda no foi concludo. Acompanhe no Painel de Controle o andamento da tramitao, antes de realizar uma nova tentativa. NRE: " . $objUltimoTramiteDTO->getStrNumeroRegistro() . ". Processo: " . $parametros->novoTramiteDeProcesso->processo->protocolo . "."; - } } - return $strMensagem; - } public function listarPendencias($bolTodasPendencias) { - $arrObjPendenciaDTO = array(); + $endpoint = 'tramites/pendentes'; + $arrObjPendenciaDTO = []; try { - $parametros = new stdClass(); - $parametros->filtroDePendencias = new stdClass(); - $parametros->filtroDePendencias->todasAsPendencias = $bolTodasPendencias; - $result = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->listarPendencias($parametros); - }); - - if(isset($result->listaDePendencias->IDT)){ - if(!is_array($result->listaDePendencias->IDT)) { - $result->listaDePendencias->IDT = array($result->listaDePendencias->IDT); - } + $parametros = [ + 'todas' => $bolTodasPendencias + ]; + + $arrResultado = $this->get($endpoint, $parametros); + + if (!is_null($arrResultado)) { + foreach ($arrResultado as $strPendencia) { + $pendenciaDTO = new PendenciaDTO(); + $pendenciaDTO->setNumIdentificacaoTramite($strPendencia->IDT); + $pendenciaDTO->setStrStatus($strPendencia->status); + $arrObjPendenciaDTO[] = $pendenciaDTO; + } + } - foreach ($result->listaDePendencias->IDT as $idt) { - $item = new PendenciaDTO(); - $item->setNumIdentificacaoTramite($idt->_); - $item->setStrStatus($idt->status); - $arrObjPendenciaDTO[] = $item; - } - } - } catch (\Exception $e) { + } catch (Exception $e) { $mensagem = "Falha na listagem de pendncias de trmite de processos"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); @@ -931,13 +810,17 @@ public function listarPendencias($bolTodasPendencias) private function tratarFalhaWebService(Exception $fault) { + $mensagem = InfraException::inspecionar($fault); - if($fault instanceof SoapFault && isset($fault->detail->interoperabilidadeException)) { - $strWsException = $fault->detail->interoperabilidadeException; - $mensagem = mb_convert_encoding($strWsException->mensagem, 'ISO-8859-1', 'UTF-8'); + + if ($fault instanceof RequestException && $fault->hasResponse()) { + + $codigoErro = $fault->getResponse()->getStatusCode(); + $mensagemDoErro = $fault->getResponse()->getReasonPhrase(); + $mensagem = mb_convert_encoding($mensagem, 'ISO-8859-1', 'UTF-8'); // Fixao de mensagem de erro para quando j existe um trmite em andamento - if($strWsException->codigoErro == "0044"){ + if ($codigoErro == "0044") { $mensagem = 'Processo j possui um trmite em andamento.'; } } @@ -945,78 +828,86 @@ private function tratarFalhaWebService(Exception $fault) return $mensagem; } + public function construirCabecalho($strNumeroRegistro, $idRepositorioOrigem, $idUnidadeOrigem, $idRepositorioDestino, - $idUnidadeDestino, $urgente = false, $motivoUrgencia = 0, $enviarTodosDocumentos = false, $dblIdProcedimento = null) - { - $cabecalho = new stdClass(); + $idUnidadeDestino, $urgente = false, $motivoUrgencia = 0, $enviarTodosDocumentos = false, $dblIdProcedimento = null + ) { - if(isset($strNumeroRegistro)) { - $cabecalho->NRE = $strNumeroRegistro; - } + $cabecalho = [ + "remetente" => [ + "identificacaoDoRepositorioDeEstruturas" => $idRepositorioOrigem, + "numeroDeIdentificacaoDaEstrutura" => $idUnidadeOrigem, + ], + "destinatario" => [ + "identificacaoDoRepositorioDeEstruturas" => $idRepositorioDestino, + "numeroDeIdentificacaoDaEstrutura" => $idUnidadeDestino, + ], + "enviarApenasComponentesDigitaisPendentes" => !$enviarTodosDocumentos + ]; + + if (isset($urgente) && !empty($urgente)) { + $cabecalho['urgencia'] = $urgente; + } - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $idRepositorioOrigem; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $idUnidadeOrigem; + if (isset($motivoUrgencia) && !empty($motivoUrgencia)) { + $cabecalho['motivoDaUrgencia'] = $urgente; + } - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $idRepositorioDestino; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura = $idUnidadeDestino; + if (isset($strNumeroRegistro) && !empty($strNumeroRegistro)) { + $cabecalho['NRE'] = $strNumeroRegistro; + } - $cabecalho->urgente = $urgente; - $cabecalho->motivoDaUrgencia = $motivoUrgencia; - //Parmetro abaixo foi descontinuado por falhas e substituido pelo enviarApenasComponentesDigitaisPendentes - $cabecalho->enviarApenasComponentesDigitaisPendentes = !$enviarTodosDocumentos; - $this->atribuirInformacoesAssunto($cabecalho, $dblIdProcedimento); - $this->atribuirInformacoesModulo($cabecalho); + $atribuirInformacoes = $this->atribuirInformacoesAssuntoREST($dblIdProcedimento); + $atribuirInfoModulo = $this->atribuirInformacoesModuloREST(); + + $cabecalho['propriedadesAdicionais'] = array_merge($atribuirInformacoes, $atribuirInfoModulo); return $cabecalho; } - private function atribuirInformacoesModulo($objCabecalho) + private function atribuirInformacoesModuloREST() { - try{ - - $objInfraParametro = new InfraParametro($this->inicializarObjInfraIBanco()); - $arrPropAdicionais=$objCabecalho->propriedadeAdicional; - $arrPropAdicionais[] = new SoapVar("<propriedadeAdicional - chave='MODULO_PEN_VERSAO'>". $objInfraParametro->getValor('VERSAO_MODULO_PEN') . "</propriedadeAdicional>", XSD_ANYXML); - - $objCabecalho->propriedadeAdicional= $arrPropAdicionais; - + $arrInformacoeesModulo = []; + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + + $arrInformacoeesModulo[] = [ + 'chave' => 'MODULO_PEN_VERSAO', + 'valor' => $objInfraParametro->getValor('VERSAO_MODULO_PEN') + ]; + + return $arrInformacoeesModulo; + }catch(Exception $e){ - + $mensagem = "Erro ao obter verso do mdulo PEN"; throw new InfraException($mensagem, $e); } - - } - private function atribuirInformacoesAssunto($objCabecalho, $dblIdProcedimento) - { + private function atribuirInformacoesAssuntoREST($dblIdProcedimento) + { try{ - - if(!isset($dblIdProcedimento)){ - throw new InfraException('Parmetro $dblIdProcedimento no informado.'); + if(!isset($dblIdProcedimento)) { + throw new InfraException('Parmetro $dblIdProcedimento no informado.'); } - $objRelProtocoloAssuntoDTO = new RelProtocoloAssuntoDTO(); - $objRelProtocoloAssuntoDTO->setDblIdProtocolo($dblIdProcedimento); - $objRelProtocoloAssuntoDTO->retStrDescricaoAssunto(); - $objRelProtocoloAssuntoDTO->retNumIdAssunto(); - $objRelProtocoloAssuntoDTO->setOrdNumSequencia(InfraDTO::$TIPO_ORDENACAO_ASC); + $objRelProtocoloAssuntoDTO = new RelProtocoloAssuntoDTO(); + $objRelProtocoloAssuntoDTO->setDblIdProtocolo($dblIdProcedimento); + $objRelProtocoloAssuntoDTO->retStrDescricaoAssunto(); + $objRelProtocoloAssuntoDTO->retNumIdAssunto(); + $objRelProtocoloAssuntoDTO->setOrdNumSequencia(InfraDTO::$TIPO_ORDENACAO_ASC); - $objRelProtocoloAssuntoRN = new RelProtocoloAssuntoRN(); - $arrobjRelProtocoloAssuntoDTO = $objRelProtocoloAssuntoRN->listarRN0188($objRelProtocoloAssuntoDTO); + $objRelProtocoloAssuntoRN = new RelProtocoloAssuntoRN(); + $arrobjRelProtocoloAssuntoDTO = $objRelProtocoloAssuntoRN->listarRN0188($objRelProtocoloAssuntoDTO); - $arrDadosAssunto = array(); - $contagem=1; - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $arrDadosAssunto = []; + $contagem=1; + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); foreach ($arrobjRelProtocoloAssuntoDTO as $objRelProtocoloAssuntoDTO) { @@ -1034,7 +925,7 @@ private function atribuirInformacoesAssunto($objCabecalho, $dblIdProcedimento) switch ($infoAssunto->getStrStaDestinacao()) { case AssuntoRN::$TD_ELIMINACAO: - $destinacao = "Eliminao"; + $destinacao = "Eliminao"; break; case AssuntoRN::$TD_GUARDA_PERMANENTE: @@ -1042,39 +933,62 @@ private function atribuirInformacoesAssunto($objCabecalho, $dblIdProcedimento) break; } + $valorInput = $objRelProtocoloAssuntoDTO->getStrDescricaoAssunto() ? + utf8_encode($objProcessoEletronicoRN->reduzirCampoTexto(htmlspecialchars($objRelProtocoloAssuntoDTO->getStrDescricaoAssunto(), ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE, 'ISO-8859-1'), 10000)) + : "NA"; - $valorInput=$objRelProtocoloAssuntoDTO->getStrDescricaoAssunto()?mb_convert_encoding($objProcessoEletronicoRN->reduzirCampoTexto(htmlspecialchars($objRelProtocoloAssuntoDTO->getStrDescricaoAssunto(), ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE, 'ISO-8859-1'), 10000), 'UTF-8', 'ISO-8859-1'):"NA"; - $arrDadosAssunto[] = new SoapVar("<propriedadeAdicional - chave='CLASSIFICACAO_Descricao_" . $contagem . "'>" . $valorInput . "</propriedadeAdicional>", XSD_ANYXML); - - $valorInput=$infoAssunto->getStrCodigoEstruturado()?mb_convert_encoding($infoAssunto->getStrCodigoEstruturado(), 'UTF-8', 'ISO-8859-1'):"NA"; - $arrDadosAssunto[] = new SoapVar("<propriedadeAdicional - chave='CLASSIFICACAO_CodigoEstruturado_" . $contagem . "'>" . $valorInput . "</propriedadeAdicional>", XSD_ANYXML); - - $valorInput=$infoAssunto->getNumPrazoCorrente()? (int) $infoAssunto->getNumPrazoCorrente() :"NA"; - $arrDadosAssunto[] = new SoapVar("<propriedadeAdicional - chave='CLASSIFICACAO_PrazoCorrente_" . $contagem . "'>" . $valorInput . "</propriedadeAdicional>", XSD_ANYXML); - - $valorInput=$infoAssunto->getNumPrazoIntermediario()?(int) $infoAssunto->getNumPrazoIntermediario():"NA"; - $arrDadosAssunto[] = new SoapVar("<propriedadeAdicional - chave='CLASSIFICACAO_PrazoIntermediario_" . $contagem . "'>" . $valorInput . "</propriedadeAdicional>", XSD_ANYXML); - - $valorInput=$destinacao?mb_convert_encoding($destinacao, 'UTF-8', 'ISO-8859-1'):"NA"; - $arrDadosAssunto[] = new SoapVar("<propriedadeAdicional - chave='CLASSIFICACAO_Destinacao_" . $contagem . "'>" . $valorInput . "</propriedadeAdicional>", XSD_ANYXML); - - $valorInput=$infoAssunto->getStrObservacao()?mb_convert_encoding($objProcessoEletronicoRN->reduzirCampoTexto(htmlspecialchars($infoAssunto->getStrObservacao(), ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE, 'ISO-8859-1'), 10000), 'UTF-8', 'ISO-8859-1'):"NA"; - $arrDadosAssunto[] = new SoapVar("<propriedadeAdicional - chave='CLASSIFICACAO_Observacao_" . $contagem . "'>" . $valorInput . "</propriedadeAdicional>", XSD_ANYXML); - + $arrDadosAssunto[] = [ + 'chave' => 'CLASSIFICACAO_Descricao_' . $contagem, + 'valor' => $valorInput + ]; + + $valorInput = $infoAssunto->getStrCodigoEstruturado() ? + utf8_encode($infoAssunto->getStrCodigoEstruturado()) + : "NA"; + $arrDadosAssunto[] = [ + 'chave' => 'CLASSIFICACAO_CodigoEstruturado_' . $contagem, + 'valor' => $valorInput + ]; + + $valorInput = $infoAssunto->getNumPrazoCorrente() ? + (int) $infoAssunto->getNumPrazoCorrente() + : "NA"; + $arrDadosAssunto[] = [ + 'chave' => 'CLASSIFICACAO_PrazoCorrente_' . $contagem, + 'valor' => $valorInput + ]; + + $valorInput = $infoAssunto->getNumPrazoIntermediario() ? + (int) $infoAssunto->getNumPrazoIntermediario() + : "NA"; + $arrDadosAssunto[] = [ + 'chave' => 'CLASSIFICACAO_PrazoIntermediario_' . $contagem, + 'valor' => $valorInput + ]; + + $valorInput = $destinacao ? + utf8_encode($destinacao) + : "NA"; + $arrDadosAssunto[] = [ + 'chave' => 'CLASSIFICACAO_Destinacao_' . $contagem, + 'valor' => $valorInput + ]; + + $valorInput = $infoAssunto->getStrObservacao() ? + mb_convert_encoding($objProcessoEletronicoRN->reduzirCampoTexto(htmlspecialchars($infoAssunto->getStrObservacao(), ENT_COMPAT | ENT_HTML401 | ENT_SUBSTITUTE, 'ISO-8859-1'), 10000), 'UTF-8', 'ISO-8859-1') + : "NA"; + $arrDadosAssunto[] = [ + 'chave' => 'CLASSIFICACAO_Observacao_' . $contagem, + 'valor' => $valorInput + ]; $contagem++; } - $objCabecalho->propriedadeAdicional= $arrDadosAssunto; + return $arrDadosAssunto; }catch(Exception $e){ - + $mensagem = "Falha ao atribuir informaes de assunto"; throw new InfraException($mensagem, $e); } @@ -1083,9 +997,55 @@ private function atribuirInformacoesAssunto($objCabecalho, $dblIdProcedimento) public function enviarComponenteDigital($parametros) { try { - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use (&$parametros) { - return $objPenWs->enviarComponenteDigital($parametros); - }); + + $objParametros = $parametros->dadosDoComponenteDigital; + $idTicketDeEnvio = $objParametros->ticketParaEnvioDeComponentesDigitais; + + $protocolo = $objParametros->protocolo; + $hashDoComponenteDigital = $objParametros->hashDoComponenteDigital; + $conteudo = $objParametros->conteudoDoComponenteDigital; + + $queryParams = [ + 'hashDoComponenteDigital' => $hashDoComponenteDigital, + 'protocolo' => $protocolo + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar"; + + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $strLocalizacaoCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "LocalizacaoCertificado"); + $strSenhaCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "SenhaCertificado"); + + $strBaseUri = $this->strEnderecoWebService; + + $arrheaders = [ + 'Accept' => '*/*', + ]; + + $strClientGuzzle = new GuzzleHttp\Client( + [ + 'base_uri' => $strBaseUri, + 'headers' => $arrheaders, + 'timeout' => self::WS_TIMEOUT_CONEXAO, + 'cert' => [$strLocalizacaoCertificadoDigital, $strSenhaCertificadoDigital], + ] + ); + + + $arrOptions = [ + 'query' => $queryParams, + 'multipart' => [ + [ + 'name' => 'conteudo', + 'contents' => $conteudo, + 'filename' => 'conteudo.html', + 'headers' => ['Content-Type' => 'text/html'] + ], + ], + ]; + + $strClientGuzzle->request('PUT', $endpoint, $arrOptions); + } catch (\Exception $e) { $mensagem = "Falha no envio de componentes digitais"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); @@ -1093,37 +1053,100 @@ public function enviarComponenteDigital($parametros) } } - /** - * Mtodo responsvel por realizar o envio da parte de um componente digital - * @param $parametros - * @return mixed - * @throws InfraException - */ + * Mtodo responsvel por realizar o envio da parte de um componente digital + * + * @param $parametros + * @return mixed + * @throws InfraException + */ public function enviarParteDeComponenteDigital($parametros) { try { - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use (&$parametros) { - return $objPenWs->enviarParteDeComponenteDigital($parametros); - }); + + $objParametros = $parametros->dadosDaParteDeComponenteDigital; + $idTicketDeEnvio = $objParametros->ticketParaEnvioDeComponentesDigitais; + + $protocolo = $objParametros->protocolo; + $hashDoComponenteDigital = $objParametros->hashDoComponenteDigital; + + $indetificacaoDaParte = $objParametros->identificacaoDaParte; + $parte = $indetificacaoDaParte->inicio . '-' . $indetificacaoDaParte->fim; + + $conteudo = $objParametros->conteudoDaParteDeComponenteDigital; + + $queryParams = [ + 'hashDoComponenteDigital' => $hashDoComponenteDigital, + 'protocolo' => $protocolo + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar/partes/{$parte}"; + + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $strLocalizacaoCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "LocalizacaoCertificado"); + $strSenhaCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "SenhaCertificado"); + + $strBaseUri = $this->strEnderecoWebService; + + $arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $strClientGuzzle = new GuzzleHttp\Client( + [ + 'base_uri' => $strBaseUri, + 'headers' => $arrheaders, + 'timeout' => self::WS_TIMEOUT_CONEXAO, + 'cert' => [$strLocalizacaoCertificadoDigital, $strSenhaCertificadoDigital], + ] + ); + + + $arrOptions = [ + 'query' => $queryParams, + 'multipart' => [ + [ + 'name' => 'conteudo', + 'contents' => $conteudo, + 'filename' => 'arquivo_externo.html', + // 'headers' => ['Content-Type' => 'text/html'] + ], + ], + ]; + + $strClientGuzzle->request('PUT', $endpoint, $arrOptions); } catch (\Exception $e) { - $mensagem = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); - throw new InfraException($mensagem, $e); + $erroResposta = json_decode($e->getResponse()->getBody()->getContents()); + $mensagem = "Falha de envio do componente digital. Erro: {$erroResposta->codigoErro} - {$erroResposta->mensagem}"; + $mensagem = mb_convert_encoding($mensagem, 'ISO-8859-1', 'UTF-8'); + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); } } /** - * Mtodo responsvel por sinalizar o trmino do envio das partes de um componente digital - * @param $parametros - * @return mixed - * @throws InfraException - */ + * Mtodo responsvel por sinalizar o trmino do envio das partes de um componente digital + * + * @param $parametros + * @return mixed + * @throws InfraException + */ public function sinalizarTerminoDeEnvioDasPartesDoComponente($parametros) - { + { try { - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->sinalizarTerminoDeEnvioDasPartesDoComponente($parametros); - }); + $objParametros = $parametros->dadosDoTerminoDeEnvioDePartes; + $idTicketDeEnvio = $objParametros->ticketParaEnvioDeComponentesDigitais; + + $arrIdentificacaoDoComponenteDigital = [ + 'hashDoComponenteDigital' => $objParametros->hashDoComponenteDigital, + 'protocolo' => $objParametros->protocolo, + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar/partes/sinalizacao-termino-envio"; + + return $this->post($endpoint, $arrIdentificacaoDoComponenteDigital); + } catch (\Exception $e) { $mensagem = "Falha em sinalizar o trmino de envio das partes do componente digital"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); @@ -1131,16 +1154,39 @@ public function sinalizarTerminoDeEnvioDasPartesDoComponente($parametros) } } + public function solicitarMetadados($parNumIdentificacaoTramite) { + $endpoint = "tramites/{$parNumIdentificacaoTramite}"; try { - $parametros = new stdClass(); - $parametros->IDT = $parNumIdentificacaoTramite; - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - $objMetadadosProtocolo = $objPenWs->solicitarMetadados($parametros); - $objMetadadosProtocolo->IDT = $parametros->IDT; - return $objMetadadosProtocolo; - }); + $parametros = [ + 'IDT' => $parNumIdentificacaoTramite + ]; + + $objResultado = $this->get($endpoint, $parametros); + + $objResultado->IDT = $parNumIdentificacaoTramite; + $objResultado->NRE = $objResultado->nre; + + // verificar se um documento avulso + if (!property_exists($objResultado, 'processo') || $objResultado->processo == null) { + $objResultado->metadados = $objResultado; + return $objResultado; + } + + $multivalorado = false; + if (count($objResultado->processo->documentos) > 1) { + $multivalorado = true; + } + + $objResultado->metadados = $objResultado; + + if ($multivalorado) { + $objResultado->metadados->processo->documentos = (array) $objResultado->metadados->processo->documentos; + } + + return $objResultado; + } catch (\Exception $e) { $mensagem = "Falha na solicitao de metadados do processo"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); @@ -1151,7 +1197,7 @@ public function solicitarMetadados($parNumIdentificacaoTramite) public static function converterDataWebService($dataHoraSEI) { $resultado = ''; - if(isset($dataHoraSEI)){ + if(isset($dataHoraSEI)) { $resultado = InfraData::getTimestamp($dataHoraSEI); $resultado = date(DateTime::W3C, $resultado); } @@ -1162,7 +1208,7 @@ public static function converterDataWebService($dataHoraSEI) public static function converterDataSEI($dataHoraWebService) { $resultado = null; - if(isset($dataHoraWebService)){ + if(isset($dataHoraWebService)) { $resultado = strtotime($dataHoraWebService); $resultado = date('d/m/Y H:i:s', $resultado); } @@ -1179,7 +1225,7 @@ public static function obterIdTarefaModulo($strIdTarefaModulo) $objTarefaRN = new TarefaRN(); $objTarefaDTO = $objTarefaRN->consultar($objTarefaDTO); - if($objTarefaDTO){ + if($objTarefaDTO) { return $objTarefaDTO->getNumIdTarefa(); }else{ return false; @@ -1187,9 +1233,9 @@ public static function obterIdTarefaModulo($strIdTarefaModulo) } public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrStaTipoTramite, $parDthRegistroTramite, $parNumIdRepositorioOrigem, - $parNumIdEstruturaOrigem, $parNumIdRepositorioDestino, $parNumIdEstruturaDestino, $parObjProtocolo, $parNumTicketComponentesDigitais = null, $parObjComponentesDigitaisSolicitados = null, $bolSinProcessamentoEmBloco = false, $numIdUnidade = null) - { - + $parNumIdEstruturaOrigem, $parNumIdRepositorioDestino, $parNumIdEstruturaDestino, $parObjProtocolo, $parNumTicketComponentesDigitais = null, $parObjComponentesDigitaisSolicitados = null, $bolSinProcessamentoEmBloco = false, $numIdUnidade = null + ) { + // $parObjProtocolo if(!isset($parDblIdProcedimento) || $parDblIdProcedimento == 0) { throw new InfraException('Parmetro $parDblIdProcedimento no informado.'); } @@ -1202,7 +1248,7 @@ public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroR throw new InfraException('Parmetro $parStrNumeroRegistro no informado.'); } - if(!isset($parStrStaTipoTramite) || !in_array($parStrStaTipoTramite, array(ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO, ProcessoEletronicoRN::$STA_TIPO_TRAMITE_RECEBIMENTO))) { + if(!isset($parStrStaTipoTramite) || !in_array($parStrStaTipoTramite, [ProcessoEletronicoRN::$STA_TIPO_TRAMITE_ENVIO, ProcessoEletronicoRN::$STA_TIPO_TRAMITE_RECEBIMENTO])) { throw new InfraException('Parmetro $parStrStaTipoTramite invlio'); } @@ -1226,6 +1272,10 @@ public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroR throw new InfraException('Parmetro $objProcesso no informado.'); } + + $parObjProtocolo = $this->converterArrayParaObjeto($parObjProtocolo); + + //Monta dados do processo eletrnico $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); $objProcessoEletronicoDTO->setStrNumeroRegistro($parStrNumeroRegistro); @@ -1233,18 +1283,18 @@ public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroR $objProcessoEletronicoDTO->setStrStaTipoProtocolo($parObjProtocolo->staTipoProtocolo); //Montar dados dos procedimentos apensados - if(isset($parObjProtocolo->processoApensado)){ - if(!is_array($parObjProtocolo->processoApensado)){ - $parObjProtocolo->processoApensado = array($parObjProtocolo->processoApensado); + if (isset($parObjProtocolo->processoApensado)) { + if (!is_array($parObjProtocolo->processoApensado)) { + $parObjProtocolo->processoApensado = [$parObjProtocolo->processoApensado]; } - $arrObjRelProcessoEletronicoApensadoDTO = array(); + $arrObjRelProcessoEletronicoApensadoDTO = []; $objRelProcessoEletronicoApensadoDTO = null; foreach ($parObjProtocolo->processoApensado as $objProcessoApensado) { $objRelProcessoEletronicoApensadoDTO = new RelProcessoEletronicoApensadoDTO(); $objRelProcessoEletronicoApensadoDTO->setStrNumeroRegistro($parStrNumeroRegistro); - $objRelProcessoEletronicoApensadoDTO->setDblIdProcedimentoApensado($objProcessoApensado->idProcedimentoSEI); - $objRelProcessoEletronicoApensadoDTO->setStrProtocolo($objProcessoApensado->protocolo); + $objRelProcessoEletronicoApensadoDTO->setDblIdProcedimentoApensado($objProcessoApensado['idProcedimentoSEI']); + $objRelProcessoEletronicoApensadoDTO->setStrProtocolo($objProcessoApensado['protocolo']); $arrObjRelProcessoEletronicoApensadoDTO[] = $objRelProcessoEletronicoApensadoDTO; } @@ -1256,8 +1306,8 @@ public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroR $objTramiteDTO->setStrNumeroRegistro($parStrNumeroRegistro); $objTramiteDTO->setNumIdTramite($parNumIdentificacaoTramite); $objTramiteDTO->setNumTicketEnvioComponentes($parNumTicketComponentesDigitais); - $objTramiteDTO->setDthRegistro($this->converterDataSEI($parDthRegistroTramite)); - if($bolSinProcessamentoEmBloco){ + $objTramiteDTO->setDthRegistro(static::converterDataSEI($parDthRegistroTramite)); + if($bolSinProcessamentoEmBloco) { $objTramiteDTO->setNumIdUnidade($numIdUnidade); }else{ $objTramiteDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); @@ -1268,7 +1318,7 @@ public function cadastrarTramiteDeProcesso($parDblIdProcedimento, $parStrNumeroR $objTramiteDTO->setNumIdRepositorioDestino($parNumIdRepositorioDestino); $objTramiteDTO->setNumIdEstruturaDestino($parNumIdEstruturaDestino); $objTramiteDTO->setStrStaTipoTramite($parStrStaTipoTramite); - $objProcessoEletronicoDTO->setArrObjTramiteDTO(array($objTramiteDTO)); + $objProcessoEletronicoDTO->setArrObjTramiteDTO([$objTramiteDTO]); //Monta dados dos componentes digitais $parObjProtocoloDesmembrado = ProcessoEletronicoRN::desmembrarProcessosAnexados($parObjProtocolo); @@ -1310,7 +1360,7 @@ protected function cadastrarTramiteDeProcessoInternoControlado(ProcessoEletronic if($parObjProcessoEletronicoDTO->isSetArrObjRelProcessoEletronicoApensado()) { $objRelProcessoEletronicoApensadoBD = new RelProcessoEletronicoApensadoBD($this->getObjInfraIBanco()); foreach ($parObjProcessoEletronicoDTO->getArrObjRelProcessoEletronicoApensado() as $objRelProcessoEletronicoApensadoDTOFiltro) { - if($objRelProcessoEletronicoApensadoBD->contar($objRelProcessoEletronicoApensadoDTOFiltro) == 0){ + if($objRelProcessoEletronicoApensadoBD->contar($objRelProcessoEletronicoApensadoDTOFiltro) == 0) { $objRelProcessoEletronicoApensadoBD->cadastrar($objRelProcessoEletronicoApensadoDTOFiltro); } } @@ -1332,17 +1382,17 @@ protected function cadastrarTramiteDeProcessoInternoControlado(ProcessoEletronic $objTramiteDTO = $objTramiteBD->cadastrar($parObjTramiteDTO); } - $objProcessoEletronicoDTO->setArrObjTramiteDTO(array($objTramiteDTO)); + $objProcessoEletronicoDTO->setArrObjTramiteDTO([$objTramiteDTO]); //Registra informaes sobre o componente digital do documento - $arrObjComponenteDigitalDTO = array(); + $arrObjComponenteDigitalDTO = []; $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); - $arrObjComponenteDigitalDTO = array(); + $arrObjComponenteDigitalDTO = []; foreach ($parObjTramiteDTO->getArrObjComponenteDigitalDTO() as $objComponenteDigitalDTO) { //Verifica se o documento foi inserido pelo trmite atual - if($objComponenteDigitalDTO->getDblIdDocumento() != null){ + if($objComponenteDigitalDTO->getDblIdDocumento() != null) { $objComponenteDigitalDTO->setDblIdProcedimento($idProcedimento); $objComponenteDigitalDTOFiltro = new ComponenteDigitalDTO(); $objComponenteDigitalDTOFiltro->setNumIdTramite($objComponenteDigitalDTO->getNumIdTramite()); @@ -1352,13 +1402,13 @@ protected function cadastrarTramiteDeProcessoInternoControlado(ProcessoEletronic $objComponenteDigitalDTOFiltro->setNumOrdem($objComponenteDigitalDTO->getNumOrdem()); $objComponenteDigitalDTOFiltro->setNumOrdemDocumento($objComponenteDigitalDTO->getNumOrdemDocumento()); - if($objComponenteDigitalBD->contar($objComponenteDigitalDTOFiltro) == 0){ + if($objComponenteDigitalBD->contar($objComponenteDigitalDTOFiltro) == 0) { $objComponenteDigitalDTO->setStrTarjaLegada("N"); $objComponenteDigitalDTO = $objComponenteDigitalBD->cadastrar($objComponenteDigitalDTO); } else { //Verifica se foi setado o envio - if(!$objComponenteDigitalDTO->isSetStrSinEnviar()){ + if(!$objComponenteDigitalDTO->isSetStrSinEnviar()) { $objComponenteDigitalDTO->setStrSinEnviar('N'); } } @@ -1371,24 +1421,25 @@ protected function cadastrarTramiteDeProcessoInternoControlado(ProcessoEletronic } /** - * Retorna o hash do objecto do solicitarMetadadosResponse - * - * @param object $objMeta tem que ser o componenteDigital->hash - * @return string - */ + * Retorna o hash do objecto do solicitarMetadadosResponse + * + * @param object $objMeta tem que ser o componenteDigital->hash + * @return string + */ public static function getHashFromMetaDados($objMeta) { + $strHashConteudo = ''; if (isset($objMeta)) { - if(is_string($objMeta)){ - $strHashConteudo = $objMeta; + if(is_string($objMeta)) { + $strHashConteudo = $objMeta; } else { - $matches = array(); - $strHashConteudo = (isset($objMeta->enc_value)) ? $objMeta->enc_value : $objMeta->_; + $matches = []; + $strHashConteudo = $objMeta->enc_value ?? $objMeta->conteudo; if (preg_match('/^<hash.*>(.*)<\/hash>$/', $strHashConteudo, $matches, PREG_OFFSET_CAPTURE)) { - $strHashConteudo = $matches[1][0]; + $strHashConteudo = $matches[1][0]; } } } @@ -1396,14 +1447,27 @@ public static function getHashFromMetaDados($objMeta) return $strHashConteudo; } + public static function getHashFromMetaDadosREST($objMeta) + { + $strHashConteudo = ''; + if (isset($objMeta)) { + if(is_string($objMeta)) { + $strHashConteudo = $objMeta; + } else { + $strHashConteudo = $objMeta['conteudo'] ?? $objMetaconteudo; + } + } + return $strHashConteudo; + } + private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProtocolo, $parObjComponentesDigitaisSolicitados) { - $arrayComponentesDigitais = $objDocumento->componenteDigital; - $arrObjComponenteDigitalDTO = array(); - $arrayTeste = array(); + $arrayComponentesDigitais = $objDocumento->componentesDigitais; + $arrObjComponenteDigitalDTO = []; $contComponentes = 0; - foreach ($arrayComponentesDigitais as $indice => $objComponenteDigital){ + foreach ($arrayComponentesDigitais as $objComponenteDigital){ + $contComponentes++; $objComponenteDigitalDTO = new ComponenteDigitalDTO(); $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); @@ -1415,10 +1479,10 @@ private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNume $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); $objComponenteDigitalDTO->setStrProtocolo($parObjProtocolo->protocolo); - if(isset($objDocumento->idProcedimentoAnexadoSEI)){ - $objComponenteDigitalDTO->setDblIdProcedimentoAnexado($objDocumento->idProcedimentoAnexadoSEI); - $objComponenteDigitalDTO->setStrProtocoloProcedimentoAnexado($objDocumento->protocoloDoProcessoAnexado); - $objComponenteDigitalDTO->setNumOrdemDocumentoAnexado($objDocumento->ordemAjustada); + if(isset($objDocumento->idProcedimentoAnexadoSEI)) { + $objComponenteDigitalDTO->setDblIdProcedimentoAnexado($objDocumento->idProcedimentoAnexadoSEI); + $objComponenteDigitalDTO->setStrProtocoloProcedimentoAnexado($objDocumento->protocoloDoProcessoAnexado); + $objComponenteDigitalDTO->setNumOrdemDocumentoAnexado($objDocumento->ordemAjustada); } @@ -1432,15 +1496,14 @@ private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNume $objComponenteDigitalDTO->setStrDadosComplementares($objComponenteDigital->dadosComplementaresDoTipoDeArquivo); //Registrar componente digital necessita ser enviado pelo trmite especfico //TODO: Teste $parObjComponentesDigitaisSolicitados aqui - if(isset($parObjComponentesDigitaisSolicitados)){ - $arrObjItensSolicitados = is_array($parObjComponentesDigitaisSolicitados->processo) ? $parObjComponentesDigitaisSolicitados->processo : array($parObjComponentesDigitaisSolicitados->processo); - + if(isset($parObjComponentesDigitaisSolicitados)) { + $arrObjItensSolicitados = $parObjComponentesDigitaisSolicitados ?? [$parObjComponentesDigitaisSolicitados]; foreach ($arrObjItensSolicitados as $objItemSolicitado) { - if(!is_null($objItemSolicitado)){ - $objItemSolicitado->hash = is_array($objItemSolicitado->hash) ? $objItemSolicitado->hash : array($objItemSolicitado->hash); - - if($objItemSolicitado->protocolo == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado->hash) && !$objDocumento->retirado) { - $objComponenteDigitalDTO->setStrSinEnviar("S"); + if(!is_null($objItemSolicitado)) { + $objItemSolicitado['hashes'] = is_array($objItemSolicitado['hashes']) ? $objItemSolicitado['hashes'] : [$objItemSolicitado['hashes']]; + + if($objItemSolicitado['protocolo'] == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado['hashes']) && !$objDocumento->retirado) { + $objComponenteDigitalDTO->setStrSinEnviar("S"); } } } @@ -1460,13 +1523,13 @@ private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNume private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProtocolo, $parObjComponentesDigitaisSolicitados) { //Monta dados dos componentes digitais - $arrObjComponenteDigitalDTO = array(); + $arrObjComponenteDigitalDTO = []; $arrObjDocumento = self::obterDocumentosProtocolo($parObjProtocolo, true); - $arrObjComponenteDigitalDTOAux = array(); + $arrObjComponenteDigitalDTOAux = []; foreach ($arrObjDocumento as $objDocumento) { - $quantidadeDeComponentesDigitais = count($objDocumento->componenteDigital); - if($quantidadeDeComponentesDigitais > 1){ + $quantidadeDeComponentesDigitais = count($objDocumento->componentesDigitais); + if($quantidadeDeComponentesDigitais > 1) { $arrObjComponenteDigitalDTOAux = self::montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProtocolo, $parObjComponentesDigitaisSolicitados); }else{ $objComponenteDigitalDTO = new ComponenteDigitalDTO(); @@ -1479,27 +1542,34 @@ private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIden $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); $objComponenteDigitalDTO->setStrProtocolo($parObjProtocolo->protocolo); - if(isset($objDocumento->ordemDoDocumentoReferenciado)){ + if(isset($objDocumento->ordemDoDocumentoReferenciado)) { $objComponenteDigitalDTO->setNumOrdemDocumentoReferenciado(intval($objDocumento->ordemDoDocumentoReferenciado)); } - if(isset($objDocumento->idProcedimentoAnexadoSEI)){ + if(isset($objDocumento->idProcedimentoAnexadoSEI)) { $objComponenteDigitalDTO->setDblIdProcedimentoAnexado($objDocumento->idProcedimentoAnexadoSEI); $objComponenteDigitalDTO->setStrProtocoloProcedimentoAnexado($objDocumento->protocoloDoProcessoAnexado); $objComponenteDigitalDTO->setNumOrdemDocumentoAnexado($objDocumento->ordemAjustada); } //Por enquanto, considera que o documento possui apenas um componente digital - if(is_array($objDocumento->componenteDigital) && count($objDocumento->componenteDigital) != 1) { + if(is_array($objDocumento->componentesDigitais) && count($objDocumento->componentesDigitais) != 1) { throw new InfraException("Erro processando componentes digitais do processo " . $parObjProtocolo->protocolo . "\n Somente permitido o recebimento de documentos com apenas um Componente Digital."); } - - $objComponenteDigital = is_array($objDocumento->componenteDigital) ? $objDocumento->componenteDigital[0] : $objDocumento->componenteDigital; - $objComponenteDigitalDTO->setStrNome(mb_convert_encoding($objComponenteDigital->nome, 'ISO-8859-1', 'UTF-8')); - - if(isset($objDocumento->especie)){ - $objComponenteDigitalDTO->setNumCodigoEspecie(intval($objDocumento->especie->codigo)); - $objComponenteDigitalDTO->setStrNomeEspecieProdutor(mb_convert_encoding($objDocumento->especie->nomeNoProdutor, 'ISO-8859-1', 'UTF-8')); + + $arrComponenteDigital = is_array($objDocumento->componentesDigitais) ? $objDocumento->componentesDigitais[0] : $objDocumento->componentesDigitais; + $objComponenteDigital = (object) $arrComponenteDigital; + $objComponenteDigitalDTO->setStrNome(utf8_decode($objComponenteDigital->nome)); + + if(isset($objDocumento->especie)) { + if (is_array($objDocumento->especie)) { + $objComponenteDigitalDTO->setNumCodigoEspecie(intval($objDocumento->especie['codigo'])); + $objComponenteDigitalDTO->setStrNomeEspecieProdutor(utf8_decode($objDocumento->especie['nomeNoProdutor'])); + } + else{ + $objComponenteDigitalDTO->setNumCodigoEspecie(intval($objDocumento->especie->codigo)); + $objComponenteDigitalDTO->setStrNomeEspecieProdutor(utf8_decode($objDocumento->especie->nomeNoProdutor)); + } } $strHashConteudo = static::getHashFromMetaDados($objComponenteDigital->hash); @@ -1510,13 +1580,12 @@ private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIden $objComponenteDigitalDTO->setStrDadosComplementares($objComponenteDigital->dadosComplementaresDoTipoDeArquivo); //Registrar componente digital necessita ser enviado pelo trmite especfico //TODO: Teste $parObjComponentesDigitaisSolicitados aqui - if(isset($parObjComponentesDigitaisSolicitados)){ - $arrObjItensSolicitados = is_array($parObjComponentesDigitaisSolicitados->processo) ? $parObjComponentesDigitaisSolicitados->processo : array($parObjComponentesDigitaisSolicitados->processo); + if(isset($parObjComponentesDigitaisSolicitados)) { + $arrObjItensSolicitados = $parObjComponentesDigitaisSolicitados ?? [$parObjComponentesDigitaisSolicitados]; foreach ($arrObjItensSolicitados as $objItemSolicitado) { - if(!is_null($objItemSolicitado)){ - $objItemSolicitado->hash = is_array($objItemSolicitado->hash) ? $objItemSolicitado->hash : array($objItemSolicitado->hash); + if(!is_null($objItemSolicitado)) { - if($objItemSolicitado->protocolo == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado->hash) && !$objDocumento->retirado) { + if($objItemSolicitado->protocolo == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado->hashes) && !$objDocumento->retirado) { $objComponenteDigitalDTO->setStrSinEnviar("S"); } } @@ -1526,7 +1595,10 @@ private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIden //TODO: Avaliar dados do tamanho do documento em bytes salvo na base de dados $objComponenteDigitalDTO->setNumTamanho($objComponenteDigital->tamanhoEmBytes); - $objComponenteDigitalDTO->setNumIdAnexo($objComponenteDigital->idAnexo); + if (isset($objComponenteDigital->idAnexo)) { + $objComponenteDigitalDTO->setNumIdAnexo($objComponenteDigital->idAnexo); + } + $arrObjComponenteDigitalDTO[] = $objComponenteDigitalDTO; } $arrObjComponenteDigitalDTO = array_merge($arrObjComponenteDigitalDTOAux, $arrObjComponenteDigitalDTO); @@ -1542,72 +1614,85 @@ private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIden return $arrObjComponenteDigitalDTO; } + + public function receberComponenteDigital($parNumIdentificacaoTramite, $parStrHashComponenteDigital, $parStrProtocolo, $parObjParteComponente = null) { - try - { - $parametros = new stdClass(); - $parametros->parametrosParaRecebimentoDeComponenteDigital = new stdClass(); - $parametros->parametrosParaRecebimentoDeComponenteDigital->identificacaoDoComponenteDigital = new stdClass(); - $parametros->parametrosParaRecebimentoDeComponenteDigital->identificacaoDoComponenteDigital->IDT = $parNumIdentificacaoTramite; - $parametros->parametrosParaRecebimentoDeComponenteDigital->identificacaoDoComponenteDigital->protocolo = $parStrProtocolo; - $parametros->parametrosParaRecebimentoDeComponenteDigital->identificacaoDoComponenteDigital->hashDoComponenteDigital = $parStrHashComponenteDigital; - - //Se for passado o parametro $parObjParteComponente retorna apenas parte especifica do componente digital - if(!is_null($parObjParteComponente)){ - $parametros->parametrosParaRecebimentoDeComponenteDigital->parte = $parObjParteComponente; - } + $endpoint = "tramites/{$parNumIdentificacaoTramite}/protocolos/componentes-digitais"; + try { + $identificacaoDoComponenteDigital = [ + 'hashDoComponenteDigital' => $parStrHashComponenteDigital, + 'protocolo' => $parStrProtocolo, + ]; + + // Se for passado o parametro $parObjParteComponente retorna apenas parte especifica do componente digital + if (!is_null($parObjParteComponente)) { + $parte = $parObjParteComponente->inicio . '-' . $parObjParteComponente->fim; + $endpoint = "tramites/{$parNumIdentificacaoTramite}/protocolos/componentes-digitais/partes/{$parte}"; + } + + $strComponenteDigitalBase64 = $this->post($endpoint, $identificacaoDoComponenteDigital); + + $objResultado = new stdClass(); + $objResultado->conteudoDoComponenteDigital = new stdClass(); + $objResultado->conteudoDoComponenteDigital = base64_decode($strComponenteDigitalBase64); + + return $objResultado; - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->receberComponenteDigital($parametros); - }); - } catch (\SoapFault $fault) { - $mensagem = $this->tratarFalhaWebService($fault); - throw new InfraException(InfraString::formatarJavaScript($mensagem), $fault); } catch (\Exception $e) { - throw new InfraException("Error Processing Request", $e); + $mensagem = "Falha no recebimento do componente digital"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); } } public function consultarTramites($parNumIdTramite = null, $parNumeroRegistro = null, $parNumeroUnidadeRemetente = null, $parNumeroUnidadeDestino = null, $parProtocolo = null, $parNumeroRepositorioEstruturas = null) { + $endpoint = 'tramites'; try { - $arrObjTramite = array(); - $parametros = new stdClass(); - $parametros->filtroDeConsultaDeTramites = new stdClass(); - $parametros->filtroDeConsultaDeTramites->IDT = $parNumIdTramite; + $arrObjTramite = []; + $parametros = [ + 'IDT' => $parNumIdTramite + ]; - if(!is_null($parNumeroRegistro)){ - $parametros->filtroDeConsultaDeTramites->NRE = $parNumeroRegistro; - } + if(!is_null($parNumeroRegistro)) { + $parametros['NRE'] = $parNumeroRegistro; + } - if(!is_null($parNumeroUnidadeRemetente) && !is_null($parNumeroRepositorioEstruturas)){ - $parametros->filtroDeConsultaDeTramites->remetente = new stdClass(); - $parametros->filtroDeConsultaDeTramites->remetente->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas; - $parametros->filtroDeConsultaDeTramites->remetente->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeRemetente; - } + if(!is_null($parNumeroUnidadeRemetente) && !is_null($parNumeroRepositorioEstruturas)) { + $parametros['remetente']['identificacaoDoRepositorioDeEstruturas'] = $parNumeroRepositorioEstruturas; + $parametros['remetente']['numeroDeIdentificacaoDaEstrutura'] = $parNumeroUnidadeRemetente; + } - if(!is_null($parNumeroUnidadeDestino) && !is_null($parNumeroRepositorioEstruturas)){ - $parametros->filtroDeConsultaDeTramites->destinatario = new stdClass(); - $parametros->filtroDeConsultaDeTramites->destinatario->identificacaoDoRepositorioDeEstruturas = $parNumeroRepositorioEstruturas; - $parametros->filtroDeConsultaDeTramites->destinatario->numeroDeIdentificacaoDaEstrutura = $parNumeroUnidadeDestino; - } + if(!is_null($parNumeroUnidadeDestino) && !is_null($parNumeroRepositorioEstruturas)) { + $parametros['destinatario']['identificacaoDoRepositorioDeEstruturas'] = $parNumeroRepositorioEstruturas; + $parametros['destinatario']['numeroDeIdentificacaoDaEstrutura'] = $parNumeroUnidadeDestino; + } - if(!is_null($parProtocolo)){ - $parametros->filtroDeConsultaDeTramites->protocolo = $parProtocolo; - } + if (!is_null($parProtocolo)) { + $parametros['protocolo'] = $parProtocolo; + } + + $arrResultado = $this->get($endpoint, $parametros); + + if (isset($arrResultado->tramites) && !empty($arrResultado->tramites[0])) { + + $itensHistorico = []; + foreach ($arrResultado->tramites[0]->mudancasDeSituacao as $mudancaDeSituacao) { + $itensHistorico['operacao'][] = $mudancaDeSituacao; + } + + $arrResultado->tramites[0] = array_filter( + get_object_vars($arrResultado->tramites[0]), function ($value) { + return !is_null($value); + } + ); - $objTramitesEncontrados = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarTramites($parametros); - }); + $arrObjTramite[] = $this->converterArrayParaObjeto($arrResultado->tramites[0]); + $arrObjTramite[0]->itensHistorico = (object) $itensHistorico; - if(isset($objTramitesEncontrados->tramitesEncontrados) && isset($objTramitesEncontrados->tramitesEncontrados->tramite)) { - $arrObjTramite = $objTramitesEncontrados->tramitesEncontrados->tramite; - if(!is_array($arrObjTramite)) { - $arrObjTramite = array($objTramitesEncontrados->tramitesEncontrados->tramite); } - } return $arrObjTramite; @@ -1620,24 +1705,18 @@ public function consultarTramites($parNumIdTramite = null, $parNumeroRegistro = public function consultarTramitesProtocolo($parProtocoloFormatado) { + $arrObjTramite = []; try { - $arrObjTramite = array(); - $parametros = new stdClass(); - $parametros->filtroDeConsultaDeTramites = new stdClass(); - $parametros->filtroDeConsultaDeTramites->protocolo = $parProtocoloFormatado; + $parametros = [ + 'protocolo' => $parProtocoloFormatado + ]; - $objTramitesEncontrados = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarTramites($parametros); - }); + $arrResultado = $this->consultarTramites(null, null, null, null, $parametros['protocolo']); - if(isset($objTramitesEncontrados->tramitesEncontrados)) { - - $arrObjTramite = $objTramitesEncontrados->tramitesEncontrados->tramite; - if(!is_array($arrObjTramite)) { - $arrObjTramite = array($objTramitesEncontrados->tramitesEncontrados->tramite); + if (isset($arrResultado)) { + $arrObjTramite = $arrResultado; } - } return $arrObjTramite; } catch (\Exception $e) { @@ -1649,14 +1728,14 @@ public function consultarTramitesProtocolo($parProtocoloFormatado) public function cienciaRecusa($parNumIdTramite) { + $endpoint = "tramites/{$parNumIdTramite}/ciencia"; try { - $parametros = new stdClass(); - $parametros->IDT = $parNumIdTramite; - //return $this->getObjPenWs()->cienciaRecusa($parametro); - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->cienciaRecusa($parametros); - }); + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + return $this->get($endpoint, $parametros); + } catch (\Exception $e) { $mensagem = "Falha no registro de cincia da recusa de trmite"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); @@ -1664,14 +1743,14 @@ public function cienciaRecusa($parNumIdTramite) } } - /** - * Retorna o estado atual do procedimento no api-pen - * - * @param integer $dblIdProcedimento - * @param integer $numIdRepositorio - * @param integer $numIdEstrutura - * @return integer - */ + /** + * Retorna o estado atual do procedimento no api-pen + * + * @param integer $dblIdProcedimento + * @param integer $numIdRepositorio + * @param integer $numIdEstrutura + * @return integer + */ public function consultarEstadoProcedimento($strProtocoloFormatado = '', $numIdRepositorio = null, $numIdEstrutura = null) { $objBD = new GenericoBD($this->inicializarObjInfraIBanco()); @@ -1694,7 +1773,7 @@ public function consultarEstadoProcedimento($strProtocoloFormatado = '', $numIdR } $objTramiteDTO = new TramiteDTO(); - $objTramiteDTO->setNumIdProcedimento($objProtocoloDTO->retDblIdProtocolo()); + $objTramiteDTO->setNumIdProcedimento($objProtocoloDTO->getDblIdProtocolo()); $objTramiteDTO->setOrd('Registro', InfraDTO::$TIPO_ORDENACAO_DESC); $objTramiteDTO->setNumMaxRegistrosRetorno(1); $objTramiteDTO->retNumIdTramite(); @@ -1702,34 +1781,23 @@ public function consultarEstadoProcedimento($strProtocoloFormatado = '', $numIdR $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); $arrObjTramiteDTO = $objTramiteBD->listar($objTramiteDTO); - if(!$arrObjTramiteDTO){ + if(!$arrObjTramiteDTO) { throw new InfraException('Trmite no encontrado'); } $objTramiteDTO = $arrObjTramiteDTO[0]; - $objFiltro = new stdClass(); - $objFiltro->filtroDeConsultaDeTramites = new stdClass(); - $objFiltro->filtroDeConsultaDeTramites->IDT = $objTramiteDTO->getNumIdTramite(); - - $objResultado = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($objFiltro) { - return $objPenWs->consultarTramites($objFiltro); - }); + $arrResultado = $this->consultarTramites($objTramiteDTO->getNumIdTramite()); - $objTramitesEncontrados = $objResultado->tramitesEncontrados; - - if (empty($objTramitesEncontrados) || !isset($objTramitesEncontrados->tramite)) { + if (empty($arrResultado) || !isset($arrResultado)) { throw new InfraException(mb_convert_encoding(sprintf('Nenhum tramite foi encontrado para o procedimento %s', $strProtocoloFormatado), 'UTF-8', 'ISO-8859-1')); } - if(!is_array($objTramitesEncontrados->tramite)){ - $objTramitesEncontrados->tramite = array($objTramitesEncontrados->tramite); - } - - $arrObjTramite = (array) $objTramitesEncontrados->tramite; + $arrObjTramite = (array) $arrResultado; $objTramite = array_pop($arrObjTramite); + if (empty($numIdRepositorio)) { $objPenParametroRN = new PenParametroRN(); $numIdRepositorio = $objPenParametroRN->getParametro('PEN_ID_REPOSITORIO_ORIGEM'); @@ -1748,8 +1816,9 @@ public function consultarEstadoProcedimento($strProtocoloFormatado = '', $numIdR $numIdEstrutura = $objPenUnidadeDTO->getNumIdUnidadeRH(); } - if ($objTramite->remetente->numeroDeIdentificacaoDaEstrutura != $numIdEstrutura || - $objTramite->remetente->identificacaoDoRepositorioDeEstruturas != $numIdRepositorio) { + if ($objTramite->remetente->numeroDeIdentificacaoDaEstrutura != $numIdEstrutura + || $objTramite->remetente->identificacaoDoRepositorioDeEstruturas != $numIdRepositorio + ) { throw new InfraException(mb_convert_encoding('O ltimo trmite desse processo no pertence a esse rgo', 'UTF-8', 'ISO-8859-1')); } @@ -1761,23 +1830,22 @@ public function consultarEstadoProcedimento($strProtocoloFormatado = '', $numIdR case static::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE: throw new InfraException(mb_convert_encoding('O trmite externo deste processo j foi concludo', 'UTF-8', 'ISO-8859-1')); - break; default: - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO); - $objAtividadeDTO->setArrObjAtributoAndamentoDTO(array()); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_ABORTADO); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO([]); - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); - $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_NORMAL); - $objBD->alterar($objProtocoloDTO); + $objProtocoloDTO->setStrStaEstado(ProtocoloRN::$TE_NORMAL); + $objBD->alterar($objProtocoloDTO); - if($objTramite->situacaoAtual == static::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO && $objTramite->situacaoAtual == static::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO){ + if($objTramite->situacaoAtual == static::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO && $objTramite->situacaoAtual == static::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO) { $this->cancelarTramite($objTramite->IDT); } @@ -1787,6 +1855,7 @@ public function consultarEstadoProcedimento($strProtocoloFormatado = '', $numIdR public function enviarReciboDeTramite($parNumIdTramite, $parDthRecebimento, $parStrReciboTramite) { + $endpoint = "tramites/{$parNumIdTramite}/recibo"; try { $strHashAssinatura = null; @@ -1799,15 +1868,12 @@ public function enviarReciboDeTramite($parNumIdTramite, $parDthRecebimento, $par openssl_sign($parStrReciboTramite, $strHashAssinatura, $objPrivatekey, 'sha256'); $strHashDaAssinaturaBase64 = base64_encode($strHashAssinatura); - $parametros = new stdClass(); - $parametros->dadosDoReciboDeTramite = new stdClass(); - $parametros->dadosDoReciboDeTramite->IDT = $parNumIdTramite; - $parametros->dadosDoReciboDeTramite->dataDeRecebimento = $parDthRecebimento; - $parametros->dadosDoReciboDeTramite->hashDaAssinatura = $strHashDaAssinaturaBase64; + $envioDeReciboDeTramite = [ + 'dataDeRecebimento' => $parDthRecebimento, + 'hashDaAssinatura' => $strHashDaAssinaturaBase64, + ]; - $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->enviarReciboDeTramite($parametros); - }); + $this->post($endpoint, $envioDeReciboDeTramite); return $strHashDaAssinaturaBase64; @@ -1816,7 +1882,7 @@ public function enviarReciboDeTramite($parNumIdTramite, $parDthRecebimento, $par $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); } finally { - if(isset($objPrivatekey)){ + if(isset($objPrivatekey)) { openssl_free_key($objPrivatekey); } } @@ -1824,12 +1890,16 @@ public function enviarReciboDeTramite($parNumIdTramite, $parDthRecebimento, $par public function receberReciboDeTramite($parNumIdTramite) { - try { - $parametros = new stdClass(); - $parametros->IDT = $parNumIdTramite; - return $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->receberReciboDeTramite($parametros); - }); + $endpoint = "tramites/{$parNumIdTramite}/recibo"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $arrResultado = $this->get($endpoint, $parametros); + $arrResultado->recibo->hashDoComponenteDigital= $arrResultado->recibo->hashesDosComponentesDigitais[0]; + + return $this->converterArrayParaObjeto($arrResultado); } catch (\Exception $e) { $mensagem = "Falha no recebimento de recibo de trmite. ". $this->tratarFalhaWebService($e); @@ -1839,21 +1909,23 @@ public function receberReciboDeTramite($parNumIdTramite) } /** - * Retorna um objeto DTO do recibo de envio do processo ao barramento - * - * @param int $parNumIdTramite - * @return ReciboTramiteEnviadoDTO - */ + * Retorna um objeto DTO do recibo de envio do processo ao barramento + * + * @param int $parNumIdTramite + * @return ReciboTramiteEnviadoDTO + */ public function receberReciboDeEnvio($parNumIdTramite) { - try { - $parametros = new stdClass(); - $parametros->IDT = $parNumIdTramite; - $resultado = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->receberReciboDeEnvio($parametros); - }); + $endpoint = "tramites/{$parNumIdTramite}/recibo-de-envio"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; - return $resultado->conteudoDoReciboDeEnvio; + $arrResultado = $this->get($endpoint, $parametros); + $arrResultado->reciboDeEnvio->hashDoComponenteDigital = $arrResultado->reciboDeEnvio->hashesDosComponentesDigitais[0]; + + return $this->converterArrayParaObjeto($arrResultado); } catch (\Exception $e) { $mensagem = "Falha no recebimento de recibo de trmite de envio. " . $this->tratarFalhaWebService($e); @@ -1872,7 +1944,7 @@ public function converterOperacaoDTO($objOperacaoPEN) $objOperacaoDTO = new OperacaoDTO(); $objOperacaoDTO->setStrCodigo(mb_convert_encoding($objOperacaoPEN->codigo, 'ISO-8859-1', 'UTF-8')); $objOperacaoDTO->setStrComplemento(mb_convert_encoding($objOperacaoPEN->complemento, 'ISO-8859-1', 'UTF-8')); - $objOperacaoDTO->setDthOperacao($this->converterDataSEI($objOperacaoPEN->dataHora)); + $objOperacaoDTO->setDthOperacao(static::converterDataSEI($objOperacaoPEN->dataHora)); $strIdPessoa = ($objOperacaoPEN->pessoa->numeroDeIdentificacao) ?: null; $objOperacaoDTO->setStrIdentificacaoPessoaOrigem(mb_convert_encoding($strIdPessoa, 'ISO-8859-1', 'UTF-8')); @@ -1882,61 +1954,59 @@ public function converterOperacaoDTO($objOperacaoPEN) switch ($objOperacaoPEN->codigo) { case "01": - $objOperacaoDTO->setStrNome("Registro"); + default: + $objOperacaoDTO->setStrNome("Registro"); break; case "02": - $objOperacaoDTO->setStrNome("Envio de documento avulso/processo"); + $objOperacaoDTO->setStrNome("Envio de documento avulso/processo"); break; case "03": - $objOperacaoDTO->setStrNome("Cancelamento/excluso ou envio de documento"); + $objOperacaoDTO->setStrNome("Cancelamento/excluso ou envio de documento"); break; case "04": - $objOperacaoDTO->setStrNome("Recebimento de documento"); + $objOperacaoDTO->setStrNome("Recebimento de documento"); break; case "05": - $objOperacaoDTO->setStrNome("Autuao"); + $objOperacaoDTO->setStrNome("Autuao"); break; case "06": - $objOperacaoDTO->setStrNome("Juntada por anexao"); + $objOperacaoDTO->setStrNome("Juntada por anexao"); break; case "07": - $objOperacaoDTO->setStrNome("Juntada por apensao"); + $objOperacaoDTO->setStrNome("Juntada por apensao"); break; case "08": - $objOperacaoDTO->setStrNome("Desapensao"); + $objOperacaoDTO->setStrNome("Desapensao"); break; case "09": - $objOperacaoDTO->setStrNome("Arquivamento"); + $objOperacaoDTO->setStrNome("Arquivamento"); break; case "10": - $objOperacaoDTO->setStrNome("Arquivamento no Arquivo Nacional"); + $objOperacaoDTO->setStrNome("Arquivamento no Arquivo Nacional"); break; case "11": - $objOperacaoDTO->setStrNome("Eliminao"); + $objOperacaoDTO->setStrNome("Eliminao"); break; case "12": - $objOperacaoDTO->setStrNome("Sinistro"); + $objOperacaoDTO->setStrNome("Sinistro"); break; case "13": - $objOperacaoDTO->setStrNome("Reconstituio de processo"); + $objOperacaoDTO->setStrNome("Reconstituio de processo"); break; case "14": - $objOperacaoDTO->setStrNome("Desarquivamento"); + $objOperacaoDTO->setStrNome("Desarquivamento"); break; case "15": - $objOperacaoDTO->setStrNome("Desmembramento"); + $objOperacaoDTO->setStrNome("Desmembramento"); break; case "16": - $objOperacaoDTO->setStrNome("Desentranhamento"); + $objOperacaoDTO->setStrNome("Desentranhamento"); break; case "17": - $objOperacaoDTO->setStrNome("Encerramento/abertura de volume no processo"); + $objOperacaoDTO->setStrNome("Encerramento/abertura de volume no processo"); break; case "18": - $objOperacaoDTO->setStrNome("Registro de extravio"); - break; - default: - $objOperacaoDTO->setStrNome("Registro"); + $objOperacaoDTO->setStrNome("Registro de extravio"); break; } @@ -1969,25 +2039,24 @@ public function obterIdTarefaSEIMapeado($strCodigoOperacao) /** - * Cancela um tramite externo de um procedimento para outra unidade, gera - * falha caso a unidade de destino j tenha comeado a receber o procedimento. - * - * @param type $idTramite - * @param type $idProtocolo - * @throws Exception|InfraException - * @return null - */ + * Cancela um tramite externo de um procedimento para outra unidade, gera + * falha caso a unidade de destino j tenha comeado a receber o procedimento. + * + * @param type $idTramite + * @param type $idProtocolo + * @throws Exception|InfraException + */ public function cancelarTramite($idTramite) { - $parametros = new stdClass(); - $parametros->IDT = $idTramite; - + $endpoint = "tramites/{$idTramite}"; try{ - $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->cancelarEnvioDeTramite($parametros); - }); - } - catch(\Exception $e) { + $parametros = [ + 'IDT' => $idTramite + ]; + + $this->delete($endpoint, $parametros); + + } catch(\Exception $e) { $mensagem = "Falha no cancelamento de trmite de processo"; $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); throw new InfraException($mensagem, $e, $detalhes); @@ -1995,27 +2064,26 @@ public function cancelarTramite($idTramite) } /** - * Mtodo que faz a recusa de um trmite - * - * @param integer $idTramite - * @param string $justificativa - * @param integer $motivo - * @return mixed - * @throws InfraException - */ + * Mtodo que faz a recusa de um trmite + * + * @param integer $idTramite + * @param string $justificativa + * @param integer $motivo + * @return mixed + * @throws InfraException + */ public function recusarTramite($idTramite, $justificativa, $motivo) { try { + $endpoint = "tramites/{$idTramite}/recusa"; $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $parametros = new stdClass(); - $parametros->recusaDeTramite = new stdClass(); - $parametros->recusaDeTramite->IDT = $idTramite; - $parametros->recusaDeTramite->justificativa = mb_convert_encoding($objProcessoEletronicoRN->reduzirCampoTexto($justificativa, 1000), 'UTF-8', 'ISO-8859-1'); - $parametros->recusaDeTramite->motivo = $motivo; + + $parametros = [ + 'justificativa' => utf8_encode($objProcessoEletronicoRN->reduzirCampoTexto($justificativa, 1000)), + 'motivo' => $motivo + ]; - $resultado = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->recusarTramite($parametros); - }); + $this->post($endpoint, $parametros); } catch (Exception $e) { $mensagem = "Falha na recusa de trmite de processo"; @@ -2070,7 +2138,7 @@ public function isDisponivelCancelarTramite($strProtocolo = '') $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); $arrObjTramiteDTO = $objTramiteBD->listar($objTramiteDTO); - if(!$arrObjTramiteDTO){ + if(!$arrObjTramiteDTO) { return false; } @@ -2084,54 +2152,52 @@ public function isDisponivelCancelarTramite($strProtocolo = '') $parametros->filtroDeConsultaDeTramites->remetente->identificacaoDoRepositorioDeEstruturas = $numIdRespositorio; $parametros->filtroDeConsultaDeTramites->remetente->numeroDeIdentificacaoDaEstrutura = $objPenUnidadeDTO->getNumIdUnidadeRH(); - $objMeta = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarTramites($parametros); - }); + $objMeta = $this->tentarNovamenteSobErroHTTP( + function ($objPenWs) use ($parametros) { + return $objPenWs->consultarTramites($parametros); + } + ); if($objMeta->tramitesEncontrados) { - $arrObjMetaTramite = !is_array($objMeta->tramitesEncontrados->tramite) ? array($objMeta->tramitesEncontrados->tramite) : $objMeta->tramitesEncontrados->tramite; + $arrObjMetaTramite = !is_array($objMeta->tramitesEncontrados->tramite) ? [$objMeta->tramitesEncontrados->tramite] : $objMeta->tramitesEncontrados->tramite; $objMetaTramite = $arrObjMetaTramite[0]; - $strSituacoesDisponveisCancelamento = array( - static::$STA_SITUACAO_TRAMITE_INICIADO, static::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, - static::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, static::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO - ); + $strSituacoesDisponveisCancelamento = [static::$STA_SITUACAO_TRAMITE_INICIADO, static::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, static::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, static::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO]; - if(in_array($objMetaTramite->situacaoAtual, $strSituacoesDisponveisCancelamento)){ - return true; + if(in_array($objMetaTramite->situacaoAtual, $strSituacoesDisponveisCancelamento)) { + return true; } } return false; } - catch(SoapFault $e) { - return false; - } - catch(Exception $e) { + catch(SoapFault|Exception $e) { return false; } } - public function consultarHipotesesLegais($ativos = true) { - try{ - $parametros = new stdClass(); - $parametros->filtroDeHipotesesLegais = new stdClass(); - $parametros->filtroDeHipotesesLegais->ativos = $ativos; - - $hipoteses = $this->tentarNovamenteSobErroHTTP(function($objPenWs) use ($parametros) { - return $objPenWs->consultarHipotesesLegais($parametros); - }); - - if (empty($hipoteses)) { - return []; + public function consultarHipotesesLegais($ativos = true) + { + $endpoint = "hipoteses"; + + $parametros = [ + 'ativos' => $ativos + ]; + + try { + $arrResultado = $this->get($endpoint, $parametros); + + if (empty($arrResultado)) { + return []; + } + + return $arrResultado; + + } catch(Exception $e){ + $mensagem = "Falha na obteno de hipteses legais"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); } - return $hipoteses; - - } catch(Exception $e){ - $mensagem = "Falha na obteno de hipteses legais"; - $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); - throw new InfraException($mensagem, $e, $detalhes); - } } protected function contarConectado(ProcessoEletronicoDTO $objProcessoEletronicoDTO) @@ -2146,12 +2212,13 @@ protected function contarConectado(ProcessoEletronicoDTO $objProcessoEletronicoD } } - private function tentarNovamenteSobErroHTTP($callback, $numTentativa = 1) + + protected function tentarNovamenteSobErroHTTP($callback, $numTentativa = 1) { try { return $callback($this->getObjPenWs()); } catch (\SoapFault $fault) { - if(in_array($fault->faultcode, array("HTTP", "WSDL")) && $this->numTentativasErro >= $numTentativa){ + if(in_array($fault->faultcode, ["HTTP", "WSDL"]) && $this->numTentativasErro >= $numTentativa) { sleep(self::WS_ESPERA_RECONEXAO); return $this->tentarNovamenteSobErroHTTP($callback, ++$numTentativa); } else { @@ -2175,20 +2242,27 @@ public static function desbloquearProcesso($parDblIdProcedimento) public static function comparacaoOrdemAjustadaDocumentos($parDocumento1, $parDocumento2) { - $numOrdemDocumento1 = isset($parDocumento1->ordemAjustada) ? intval($parDocumento1->ordemAjustada) : intval($parDocumento1->ordem); - $numOrdemDocumento2 = isset($parDocumento2->ordemAjustada) ? intval($parDocumento2->ordemAjustada) : intval($parDocumento2->ordem); + if (is_array($parDocumento1)) { + $numOrdemDocumento1 = isset($parDocumento1['ordemAjustada']) ? intval($parDocumento1['ordemAjustada']) : intval($parDocumento1['ordem']); + $numOrdemDocumento2 = isset($parDocumento2['ordemAjustada']) ? intval($parDocumento2['ordemAjustada']) : intval($parDocumento2['ordem']); + } + else{ + $numOrdemDocumento1 = isset($parDocumento1->ordemAjustada) ? intval($parDocumento1->ordemAjustada) : intval($parDocumento1->ordem); + $numOrdemDocumento2 = isset($parDocumento2->ordemAjustada) ? intval($parDocumento2->ordemAjustada) : intval($parDocumento2->ordem); + } + return $numOrdemDocumento1 - $numOrdemDocumento2; } public static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2) - { + { $numOrdemDocumento1 = intval($parDocumento1->ordem); $numOrdemDocumento2 = intval($parDocumento2->ordem); return $numOrdemDocumento1 - $numOrdemDocumento2; } public static function comparacaoOrdemComponenteDigitais($parComponenteDigital1, $parComponenteDigital2) - { + { $numOrdemComponenteDigital1 = intval($parComponenteDigital1->ordem); $numOrdemComponenteDigital2 = intval($parComponenteDigital2->ordem); return $numOrdemComponenteDigital1 - $numOrdemComponenteDigital2; @@ -2196,19 +2270,20 @@ public static function comparacaoOrdemComponenteDigitais($parComponenteDigital1, public static function obterDocumentosProtocolo($parObjProtocolo, $parBolExtrairAnexados = false) { - $arrObjDocumento = array(); - if(isset($parObjProtocolo->documento)){ - $arrObjProtocolo = is_array($parObjProtocolo->documento) ? $parObjProtocolo->documento : array($parObjProtocolo->documento); - usort($arrObjProtocolo, array("ProcessoEletronicoRN", "comparacaoOrdemAjustadaDocumentos")); + $arrObjDocumento = []; + if(isset($parObjProtocolo->documentos)) { + $arrObjProtocolo = is_array($parObjProtocolo->documentos) ? $parObjProtocolo->documentos : [$parObjProtocolo->documentos]; + usort($arrObjProtocolo, ["ProcessoEletronicoRN", "comparacaoOrdemAjustadaDocumentos"]); //Tratamento recursivo para processos anexados - foreach ($arrObjProtocolo as $objProtocolo) { + foreach ($arrObjProtocolo as $objProtocolo) { $bolEhProcessoAnexado = $objProtocolo->staTipoProtocolo == ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO; - if($parBolExtrairAnexados && $bolEhProcessoAnexado){ + if($parBolExtrairAnexados && $bolEhProcessoAnexado) { $arrProtocolosAnexados = ProcessoEletronicoRN::obterDocumentosProtocolo($objProtocolo, $parBolExtrairAnexados); $arrObjDocumento = array_merge($arrObjDocumento, $arrProtocolosAnexados); } else { - if(!$bolEhProcessoAnexado){ + + if(!$bolEhProcessoAnexado) { $objProtocolo->idProcedimentoSEI = $parObjProtocolo->idProcedimentoSEI; } @@ -2220,18 +2295,18 @@ public static function obterDocumentosProtocolo($parObjProtocolo, $parBolExtrair //Quando se tratar de um Documento Avulso, a ordem ser sempre 1 $parObjProtocolo->ordem = 1; $parObjProtocolo->ordemAjustada = 1; - $parObjProtocolo->componenteDigital = self::obterComponentesDocumentos($parObjProtocolo); - return array($parObjProtocolo); + $parObjProtocolo->componentesDigitais = self::obterComponentesDocumentos($parObjProtocolo); + return [$parObjProtocolo]; } - if($parBolExtrairAnexados){ - usort($arrObjDocumento, array("ProcessoEletronicoRN", "comparacaoOrdemDocumentos")); + if($parBolExtrairAnexados) { + usort($arrObjDocumento, ["ProcessoEletronicoRN", "comparacaoOrdemDocumentos"]); } $arrObjDocumentoPadronizados = ($parBolExtrairAnexados) ? $arrObjDocumento : $arrObjProtocolo; - foreach ($arrObjDocumentoPadronizados as $objDocumento) { - $objDocumento->componenteDigital = self::obterComponentesDocumentos($objDocumento); + foreach ($arrObjDocumentoPadronizados as $documento) { + $documento->componentesDigitais = self::obterComponentesDocumentos($documento); } return $arrObjDocumentoPadronizados; @@ -2240,29 +2315,27 @@ public static function obterDocumentosProtocolo($parObjProtocolo, $parBolExtrair public static function obterComponentesDocumentos($parObjDocumento) { - $arrObjComponenteDigital=array(); - if(isset($parObjDocumento->componenteDigital)){ - - $arrObjComponenteDigital = is_array($parObjDocumento->componenteDigital) ? $parObjDocumento->componenteDigital : array($parObjDocumento->componenteDigital); - usort($arrObjComponenteDigital, array("ProcessoEletronicoRN", "comparacaoOrdemComponenteDigitais")); + + $arrObjComponenteDigital = []; + if (isset($parObjDocumento->componentesDigitais)) { + $arrObjComponenteDigital = is_array($parObjDocumento->componentesDigitais) ? $parObjDocumento->componentesDigitais : [$parObjDocumento->componentesDigitais]; + usort($arrObjComponenteDigital, ["ProcessoEletronicoRN", "comparacaoOrdemComponenteDigitais"]); } - - + return $arrObjComponenteDigital; - - } + } /** * Retorna a referncia para o processo ou documento avulso * - * @param stdclass $parobjMetadadosProcedimento + * @param stdclass $parobjMetadadosProcedimento * @return Mixed Protocolo representado um processo ou um documento avulso */ public static function obterProtocoloDosMetadados($parobjMetadadosProcedimento) { $objProcesso = $parobjMetadadosProcedimento->metadados->processo; $objDocumento = $parobjMetadadosProcedimento->metadados->documento; - $objProtocolo = isset($objProcesso) ? $objProcesso : $objDocumento; + $objProtocolo = $objProcesso ?? $objDocumento; //Caso seja processo receber em staTipoProtocolo P e caso seja documento avulso receber D $objProtocolo->staTipoProtocolo = isset($objProcesso) ? ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO : ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_DOCUMENTO_AVULSO; @@ -2271,11 +2344,11 @@ public static function obterProtocoloDosMetadados($parobjMetadadosProcedimento) } /** - * Busca a unidade ao qual o processo foi anteriormente expedido. - * Caso seja o primeiro trmite, considera a unidade atual - * - * @return integer Id da unidade - */ + * Busca a unidade ao qual o processo foi anteriormente expedido. + * Caso seja o primeiro trmite, considera a unidade atual + * + * @return integer Id da unidade + */ public static function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) { $objAtividadeDTO = new AtividadeDTO(); @@ -2289,7 +2362,7 @@ public static function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) $arrObjAtividadeDTO = $objAtividadeRN->listarRN0036($objAtividadeDTO); $numIdUnidade = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); - if(!empty($arrObjAtividadeDTO)){ + if(!empty($arrObjAtividadeDTO)) { $objAtividadeDTO = $arrObjAtividadeDTO[0]; $numIdUnidade = $objAtividadeDTO->getNumIdUnidade(); } @@ -2298,15 +2371,16 @@ public static function obterUnidadeParaRegistroDocumento($parDblIdProcedimento) } /** - * Mtodo responsvel por obter os componentes digitais do documento - * @param $parObjDocumento - * @return array - */ + * Mtodo responsvel por obter os componentes digitais do documento + * + * @param $parObjDocumento + * @return array + */ public static function obterComponentesDigitaisDocumento($parObjDocumento) { - $arrObjComponenteDigital = array(); - if(isset($parObjDocumento->componenteDigital)){ - $arrObjComponenteDigital = is_array($parObjDocumento->componenteDigital) ? $parObjDocumento->componenteDigital : array($parObjDocumento->componenteDigital); + $arrObjComponenteDigital = []; + if(isset($parObjDocumento->componentesDigitais)) { + $arrObjComponenteDigital = is_array($parObjDocumento->componentesDigitais) ? $parObjDocumento->componentesDigitais : [$parObjDocumento->componentesDigitais]; } return $arrObjComponenteDigital; @@ -2314,27 +2388,28 @@ public static function obterComponentesDigitaisDocumento($parObjDocumento) /** - * Mtodo responsvel pelo desmembramento de processos anexados - * - * Mtodo responsvel por desmembrar os metadados do processo recebido caso ele possua outros processos anexados - * O desmembramento necessrio para que o processo possa ser recriado na mesma estrutura original, ou seja, em vrios - * processos diferentes, um anexado ao outro - * - * @param object $parObjProtocolo - * - * @return $objProtocolo - */ + * Mtodo responsvel pelo desmembramento de processos anexados + * + * Mtodo responsvel por desmembrar os metadados do processo recebido caso ele possua outros processos anexados + * O desmembramento necessrio para que o processo possa ser recriado na mesma estrutura original, ou seja, em vrios + * processos diferentes, um anexado ao outro + * + * @param object $parObjProtocolo + * + * @return $objProtocolo + */ public static function desmembrarProcessosAnexados($parObjProtocolo) { - if(!ProcessoEletronicoRN::existeProcessoAnexado($parObjProtocolo)){ + + if(!ProcessoEletronicoRN::existeProcessoAnexado($parObjProtocolo)) { return $parObjProtocolo; } - $arrObjRefProcessosAnexados = array(); + $arrObjRefProcessosAnexados = []; $objProcessoPrincipal = clone $parObjProtocolo; - $objProcessoPrincipal->documento = array(); + $objProcessoPrincipal->documentos = []; $arrObjDocumentosOrdenados = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo, true); - usort($arrObjDocumentosOrdenados, array("ProcessoEletronicoRN", "comparacaoOrdemDocumentos")); + usort($arrObjDocumentosOrdenados, ["ProcessoEletronicoRN", "comparacaoOrdemDocumentos"]); // Agrupamento dos documentos por processo foreach ($arrObjDocumentosOrdenados as $objDocumento) { @@ -2344,19 +2419,19 @@ public static function desmembrarProcessosAnexados($parObjProtocolo) // Cria uma nova presentao para o processo anexado identico ao processo principal // As informaes do processo anexado no so consideradas pois no existem metadados no modelo do PEN, // existe apenas o nmero do protocolo de referncia - if($bolDocumentoAnexado && !array_key_exists($strProtocoloProcAnexado, $arrObjRefProcessosAnexados)){ + if($bolDocumentoAnexado && !array_key_exists($strProtocoloProcAnexado, $arrObjRefProcessosAnexados)) { $objProcessoAnexado = clone $objProcessoPrincipal; - $objProcessoAnexado->documento = array(); + $objProcessoAnexado->documentos = []; $objProcessoAnexado->protocolo = $strProtocoloProcAnexado; - $objProcessoAnexado->ordemAjustada = count($objProcessoPrincipal->documento) + 1; - $objProcessoPrincipal->documento[] = $objProcessoAnexado; + $objProcessoAnexado->ordemAjustada = count($objProcessoPrincipal->documentos) + 1; + $objProcessoPrincipal->documentos[] = $objProcessoAnexado; $arrObjRefProcessosAnexados[$strProtocoloProcAnexado] = $objProcessoAnexado; } $objProcessoDoDocumento = ($bolDocumentoAnexado) ? $arrObjRefProcessosAnexados[$strProtocoloProcAnexado] : $objProcessoPrincipal; $objDocumentoReposicionado = clone $objDocumento; - $objDocumentoReposicionado->ordemAjustada = count($objProcessoDoDocumento->documento) + 1; - $objProcessoDoDocumento->documento[] = $objDocumentoReposicionado; + $objDocumentoReposicionado->ordemAjustada = count($objProcessoDoDocumento->documentos) + 1; + $objProcessoDoDocumento->documentos[] = $objDocumentoReposicionado; } return $objProcessoPrincipal; @@ -2365,7 +2440,7 @@ public static function desmembrarProcessosAnexados($parObjProtocolo) /** * Identifica se o protocolo recebido possui outros processos anexados * - * @param stdClass $parObjProtocolo + * @param stdClass $parObjProtocolo * @return bool */ public static function existeProcessoAnexado($parObjProtocolo) @@ -2373,16 +2448,19 @@ public static function existeProcessoAnexado($parObjProtocolo) $arrObjDocumentos = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo, true); // Verifica se existe algum processo anexado, retornando a referncia original do processo caso no exista - $bolExisteProcessoAnexado = array_reduce($arrObjDocumentos, function($bolExiste, $objDoc) { - return $bolExiste || ProcessoEletronicoRN::documentoFoiAnexado($parObjProtocolo, $objDoc); - }); + $bolExisteProcessoAnexado = array_reduce( + $arrObjDocumentos, function ($bolExiste, $objDoc) { + return $bolExiste || ProcessoEletronicoRN::documentoFoiAnexado($parObjProtocolo, $objDoc); + } + ); return $bolExisteProcessoAnexado; } - public static function obterTamanhoBlocoTransferencia(){ - $numTamanhoBlocoMB = ProcessoEletronicoRN::WS_TAMANHO_BLOCO_TRANSFERENCIA; + public static function obterTamanhoBlocoTransferencia() + { + $numTamanhoBlocoMB = ProcessoEletronicoRN::WS_TAMANHO_BLOCO_TRANSFERENCIA; try{ $numTamanhoBlocoMB = ConfiguracaoModPEN::getInstance()->getValor( @@ -2400,12 +2478,12 @@ public static function obterTamanhoBlocoTransferencia(){ LogSEI::getInstance()->gravar($strMensagem, InfraLog::$ERRO); } finally{ - if (empty($numTamanhoBlocoMB)){ - $numTamanhoBlocoMB = ProcessoEletronicoRN::WS_TAMANHO_BLOCO_TRANSFERENCIA; + if (empty($numTamanhoBlocoMB)) { + $numTamanhoBlocoMB = ProcessoEletronicoRN::WS_TAMANHO_BLOCO_TRANSFERENCIA; } } - return $numTamanhoBlocoMB; + return $numTamanhoBlocoMB; } @@ -2417,9 +2495,9 @@ public static function obterTamanhoBlocoTransferencia(){ private static function documentoFoiAnexado($parObjProtocolo, $parObjDocumento) { return ( - isset($parObjDocumento->protocoloDoProcessoAnexado) && - !empty($parObjDocumento->protocoloDoProcessoAnexado) && - $parObjProtocolo->protocolo != $parObjDocumento->protocoloDoProcessoAnexado + isset($parObjDocumento->protocoloDoProcessoAnexado) && + !empty($parObjDocumento->protocoloDoProcessoAnexado) && + $parObjProtocolo?->protocolo != $parObjDocumento?->protocoloDoProcessoAnexado ); } @@ -2441,7 +2519,6 @@ public function validarDisponibilidade() /** * Recupera os dados do ltimo trmite de recebimento vlido realizado para determinado nmero de processo eletrnico * - * @param ProcessoEletronicoDTO $parObjProcessoEletronicoDTO * @return void */ protected function consultarUltimoTramiteRecebidoConectado(ProcessoEletronicoDTO $parObjProcessoEletronicoDTO) @@ -2453,7 +2530,6 @@ protected function consultarUltimoTramiteRecebidoConectado(ProcessoEletronicoDTO /** * Recupera os dados do ltimo trmite vlido realizado para determinado nmero de processo eletrnico * - * @param ProcessoEletronicoDTO $parObjProcessoEletronicoDTO * @return void */ protected function consultarUltimoTramiteConectado(ProcessoEletronicoDTO $parObjProcessoEletronicoDTO) @@ -2466,7 +2542,6 @@ protected function consultarUltimoTramiteConectado(ProcessoEletronicoDTO $parObj /** * Lista componentes digitais de determinado trmite * - * @param TramiteDTO $parObjTramiteDTO * @return void */ protected function listarComponentesDigitaisConectado(TramiteDTO $parObjTramiteDTO, $dblIdDocumento = null) @@ -2478,7 +2553,6 @@ protected function listarComponentesDigitaisConectado(TramiteDTO $parObjTramiteD /** * Verifica a existncia de algum documento contendo outro referenciado no prprio processo * - * @param TramiteDTO $parObjTramiteDTO * @return void */ protected function possuiComponentesComDocumentoReferenciadoConectado(TramiteDTO $parObjTramiteDTO) @@ -2490,14 +2564,14 @@ protected function possuiComponentesComDocumentoReferenciadoConectado(TramiteDTO /** * Aplica reduo do texto de uma propriedade do modelo de dados, adicionando reticncias ao final da string * - * @param str $parStrTexto Texto a ser reduzido pela funo - * @param int $parNumTamanho Tamanho do texto para reduo + * @param str $parStrTexto Texto a ser reduzido pela funo + * @param int $parNumTamanho Tamanho do texto para reduo * @return void */ public function reduzirCampoTexto($parStrTexto, $parNumTamanho) { $strTexto = $parStrTexto; - if(!is_null($parStrTexto) && strlen($parStrTexto) > $parNumTamanho){ + if(!is_null($parStrTexto) && strlen($parStrTexto) > $parNumTamanho) { $strReticencias = ' ...'; $numTamanhoMaximoPalavra = 20; @@ -2514,7 +2588,8 @@ public function reduzirCampoTexto($parStrTexto, $parNumTamanho) return $strTexto; } - public static function descompactarComponenteDigital($strCaminhoAnexoCompactado, $numOrdemComponenteDigital){ + public static function descompactarComponenteDigital($strCaminhoAnexoCompactado, $numOrdemComponenteDigital) + { if(!is_readable($strCaminhoAnexoCompactado)) { throw new InfraException("Anexo de documento no pode ser localizado"); @@ -2523,9 +2598,9 @@ public static function descompactarComponenteDigital($strCaminhoAnexoCompactado, $objAnexoRN = new AnexoRN(); $strNomeArquivoTemporario = DIR_SEI_TEMP . '/' . $objAnexoRN->gerarNomeArquivoTemporario(); - $arrStrNomeArquivos = array(); + $arrStrNomeArquivos = []; $zipArchive = new ZipArchive(); - if($zipArchive->open($strCaminhoAnexoCompactado)){ + if($zipArchive->open($strCaminhoAnexoCompactado)) { try { for($i = 0; $i < $zipArchive->numFiles; $i++){ $arrStrNomeArquivos[] = $zipArchive->getNameIndex($i); @@ -2549,20 +2624,18 @@ public static function descompactarComponenteDigital($strCaminhoAnexoCompactado, * Recupera a lista de todos os documentos do processo, principal ou anexados, mantendo a ordem correta entre eles e indicando qual * sua atual associao com o processo * - * @param Num $idProcedimento - * @param Num parDblIdDocumento Filtro de dados de associao de um documento especfico + * @param Num $idProcedimento + * @param Num parDblIdDocumento Filtro de dados de associao de um documento especfico * @return array Lista de Ids dos documentos do processo em ordem */ public function listarAssociacoesDocumentos($idProcedimento) { - if(!isset($idProcedimento)){ + if(!isset($idProcedimento)) { throw new InfraException('Parmetro $idProcedimento no informado.'); } //Recupera toda a lista de documentos vinculados ao processo, considerando a ordenao definida pelo usurio - $arrTipoAssociacao = array( - RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO, RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO, RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO - ); + $arrTipoAssociacao = [RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO, RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO, RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO]; $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); $objRelProtocoloProtocoloDTO->retDblIdRelProtocoloProtocolo(); @@ -2576,18 +2649,151 @@ public function listarAssociacoesDocumentos($idProcedimento) $objRelProtocoloProtocoloRN = new RelProtocoloProtocoloRN(); $arrObjRelProtocoloProtocoloDTO = $objRelProtocoloProtocoloRN->listarRN0187($objRelProtocoloProtocoloDTO); - $arrIdDocumentos = array(); - foreach($arrObjRelProtocoloProtocoloDTO as $objRelProtocoloProtocoloDTO) { - if (in_array($objRelProtocoloProtocoloDTO->getStrStaAssociacao(), [RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO, RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO])) { - // Adiciona documentos em ordem presentes diretamente ao processo - $arrIdDocumentos[] = array("IdProtocolo" => $objRelProtocoloProtocoloDTO->getDblIdProtocolo2(), "StaAssociacao" => $objRelProtocoloProtocoloDTO->getStrStaAssociacao()); - } elseif($objRelProtocoloProtocoloDTO->getStrStaAssociacao() == RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO) { - // Adiciona documentos presente no processo anexado, mantendo a ordem de todo o conjunto - $numIdProtocoloAnexado = $objRelProtocoloProtocoloDTO->getDblIdProtocolo2(); - $arrIdDocumentosAnexados = $this->listarAssociacoesDocumentos($numIdProtocoloAnexado); - $arrIdDocumentos = array_merge($arrIdDocumentos, $arrIdDocumentosAnexados); - } + $arrIdDocumentos = []; + foreach($arrObjRelProtocoloProtocoloDTO as $objRelProtocoloProtocoloDTO) { + if (in_array($objRelProtocoloProtocoloDTO->getStrStaAssociacao(), [RelProtocoloProtocoloRN::$TA_DOCUMENTO_ASSOCIADO, RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO])) { + // Adiciona documentos em ordem presentes diretamente ao processo + $arrIdDocumentos[] = ["IdProtocolo" => $objRelProtocoloProtocoloDTO->getDblIdProtocolo2(), "StaAssociacao" => $objRelProtocoloProtocoloDTO->getStrStaAssociacao()]; + } elseif($objRelProtocoloProtocoloDTO->getStrStaAssociacao() == RelProtocoloProtocoloRN::$TA_PROCEDIMENTO_ANEXADO) { + // Adiciona documentos presente no processo anexado, mantendo a ordem de todo o conjunto + $numIdProtocoloAnexado = $objRelProtocoloProtocoloDTO->getDblIdProtocolo2(); + $arrIdDocumentosAnexados = $this->listarAssociacoesDocumentos($numIdProtocoloAnexado); + $arrIdDocumentos = array_merge($arrIdDocumentos, $arrIdDocumentosAnexados); } + } return $arrIdDocumentos; } -} + + /** + * Converter arrays associativo para objetos + */ + public function converterArrayParaObjeto($array) + { + if (is_array($array)) { + // Verificar se o array associativo + if (self::verificarSeArrayAssociativo($array)) { + $object = new stdClass(); + foreach ($array as $key => $value) { + $object->$key = $this->converterArrayParaObjeto($value); + } + return $object; + } else { + // Para arrays indexados, manter como est + return array_map([self::class, 'converterArrayParaObjeto'], $array); + } + } + + return $array; + } + + private static function verificarSeArrayAssociativo(array $array) + { + return array_keys($array) !== range(0, count($array) - 1); + } + + + /** + * Consulta as estruturas de um repositrio de estruturas. + * + * @param int $idRepositorioEstrutura O ID do repositrio de estruturas. + * @param array $parametros Parmetros adicionais para a consulta. + * @throws InfraException Falha na obteno de unidades externas. + * @return array + */ + public function consultarEstruturas($idRepositorioEstrutura, $parametros = []) + { + $endpoint = "repositorios-de-estruturas/{$idRepositorioEstrutura}/estruturas-organizacionais"; + try { + return $this->get($endpoint, $parametros); + } catch (Exception $e) { + $mensagem = "Falha na obteno de unidades externas"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + throw new InfraException($mensagem, $e, $detalhes); + } + } + + /** + * Consulta as estruturas de um repositrio de estruturas. + * + * @param int $idRepositorioEstrutura O ID do repositrio de estruturas. + * @param array $parametros Parmetros adicionais para a consulta. + * @throws InfraException Falha na obteno de unidades externas. + * @return array + */ + public function buscarEstruturaRest($idRepositorioEstrutura, $idUnidadeRH) + { + $endpoint = "repositorios-de-estruturas/{$idRepositorioEstrutura}/estruturas-organizacionais/{$idUnidadeRH}"; + try { + return $this->get($endpoint); + } catch (Exception $e) { + $mensagem = "Falha na obteno de unidades externas"; + $detalhes = InfraString::formatarJavaScript($this->tratarFalhaWebService($e)); + LogSEI::getInstance()->gravar($detalhes, InfraLog::$ERRO); + throw new InfraException($mensagem, $e, $mensagem); + } + } + + //Includa este mtodo isJson porque o endpoint componente-digital-parcial no retorna um Json como os demais endpoints. + //TODO: Na verso php 8.3, poderemos usar a funo Json_validate + private function isJson($string) { + json_decode($string); + return json_last_error() === JSON_ERROR_NONE; + } + /** + * Iniciar requisio HTTP utilizado para comunicao Webservice REST + */ + private function getArrPenWsRest($method, $endpoint, $options = []) + { + try { + $arrResultado = $this->strClientGuzzle->request($method, $endpoint, $options); + $base64 = $arrResultado->getBody()->getContents(); + + if($this->isJson($base64)){ + $foo = json_decode($base64, false); + }else{ + $foo = $base64; + } + + if (is_array($foo)) { + return (object) $foo; + } + + return $foo; + } catch (RequestException $e) { + $erroResposta = json_decode($e->getResponse()->getBody()->getContents()); + + // Lana uma nova exceo com os detalhes do RequestException + throw new Exception( + json_encode( + [ + 'error' => true, + 'codigoErro' => $erroResposta->codigoErro, + 'message' => $erroResposta->mensagem, + 'exception' => $e->getMessage(), + 'details' => $e->hasResponse() ? (string) $e->getResponse()->getBody() : 'No response body' + ] + ) + ); + } + } + + public function get($endpoint, $params = []) + { + return $this->getArrPenWsRest('GET', $endpoint, ['query' => $params]); + } + + public function post($endpoint, $data = []) + { + return $this->getArrPenWsRest('POST', $endpoint, ['json' => $data]); + } + + public function put($endpoint, $data = []) + { + return $this->getArrPenWsRest('PUT', $endpoint, ['json' => $data]); + } + + public function delete($endpoint, $params = []) + { + return $this->getArrPenWsRest('DELETE', $endpoint, ['query' => $params]); + } +} \ No newline at end of file diff --git a/src/rn/ProcessoExpedidoRN.php b/src/rn/ProcessoExpedidoRN.php index 2db9b7506..0ed90c09e 100755 --- a/src/rn/ProcessoExpedidoRN.php +++ b/src/rn/ProcessoExpedidoRN.php @@ -2,7 +2,8 @@ require_once DIR_SEI_WEB.'/SEI.php'; -class ProcessoExpedidoRN extends InfraRN { +class ProcessoExpedidoRN extends InfraRN +{ public function __construct() { @@ -51,32 +52,14 @@ public function listarProcessoExpedido(ProtocoloDTO &$objProtocoloDTO) AND at2.dth_abertura > a.dth_abertura ) GROUP BY p.id_protocolo, p.protocolo_formatado, a.id_unidade , atd.valor , us.id_usuario, us.nome, a.dth_abertura ORDER BY a.dth_abertura DESC "; - - - $sqlCount = "SELECT count(*) total - FROM protocolo p - INNER JOIN atividade a ON a.id_protocolo = p.id_protocolo - INNER JOIN atributo_andamento atd ON a.id_atividade = atd.id_atividade AND atd.nome = 'UNIDADE_DESTINO' - INNER JOIN md_pen_processo_eletronico pe ON pe.id_procedimento = p.id_protocolo - INNER JOIN md_pen_tramite ptra ON ptra.numero_registro = pe.numero_registro - INNER JOIN usuario us ON ptra.id_usuario = us.id_usuario - WHERE - p.sta_estado = '" . $objProtocoloDTO->getStrStaEstado() . "' - AND - a.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO) ." - AND - ptra.dth_registro = (SELECT MAX(pt.dth_registro) dth_registro FROM md_pen_tramite pt WHERE pt.numero_registro = pe.numero_registro) - AND - NOT EXISTS ( - SELECT at2.* FROM atividade at2 - WHERE at2.id_protocolo = p.id_protocolo - AND at2.id_tarefa = ". ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO) ." - AND at2.dth_abertura > a.dth_abertura ) "; + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO); + ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO); + $objProtocoloDTO->getStrStaEstado(); $objPaginacao = $this->getObjInfraIBanco()->paginarSql($sql, $numOffset, $numLimit); $total = $objPaginacao['totalRegistros']; - $arrProcessosExpedidos = array(); + $arrProcessosExpedidos = []; $objProtocoloDTO->setNumTotalRegistros($total); $objProtocoloDTO->setNumRegistrosPaginaAtual($total); diff --git a/src/rn/ReceberComponenteDigitalRN.php b/src/rn/ReceberComponenteDigitalRN.php index def90b2c0..b9c63cb96 100755 --- a/src/rn/ReceberComponenteDigitalRN.php +++ b/src/rn/ReceberComponenteDigitalRN.php @@ -4,22 +4,21 @@ class ReceberComponenteDigitalRN extends InfraRN { private $objProcessoEletronicoRN; - private $objInfraParametro; - private $arrAnexos = array(); + private $arrAnexos = []; public function __construct() { parent::__construct(); - - $this->objInfraParametro = new InfraParametro(BancoSEI::getInstance()); $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); } - public function setArrAnexos($arrAnexos){ + public function setArrAnexos($arrAnexos) + { $this->arrAnexos = $arrAnexos; } - public function getArrAnexos(){ + public function getArrAnexos() + { return $this->arrAnexos; } @@ -30,20 +29,20 @@ protected function inicializarObjInfraIBanco() protected function receberComponenteDigitalControlado(ComponenteDigitalDTO $parObjComponenteDigitalDTO) { - if(!isset($parObjComponenteDigitalDTO) || !isset($parObjComponenteDigitalDTO)) { + if(!isset($parObjComponenteDigitalDTO)) { throw new InfraException('Parmetro $parObjComponenteDigitalDTO no informado.'); } $objAnexoDTO = null; foreach($this->arrAnexos as $key => $objAnexo){ - if(array_key_exists($parObjComponenteDigitalDTO->getStrHashConteudo(), $objAnexo) && $objAnexo['recebido'] == false){ + if(array_key_exists($parObjComponenteDigitalDTO->getStrHashConteudo(), $objAnexo) && $objAnexo['recebido'] == false) { $objAnexoDTO = $objAnexo[$parObjComponenteDigitalDTO->getStrHashConteudo()]; $this->arrAnexos[$key]['recebido'] = true; break; } } - if(is_null($objAnexoDTO)){ + if(is_null($objAnexoDTO)) { throw new InfraException('Anexo '.$parObjComponenteDigitalDTO->getStrHashConteudo().' no encontrado '.var_export($this->arrAnexos, true)); } @@ -59,8 +58,8 @@ protected function receberComponenteDigitalControlado(ComponenteDigitalDTO $parO * Atribui os anexos como recebidos * Chama o mtodo que faz a compactao dos anexos, para caso de mais de um componente * - * @param $parNumIdDocumento - * @param $parArrObjComponenteDigitalDTO + * @param $parNumIdDocumento + * @param $parArrObjComponenteDigitalDTO * @return array|mixed|null * @throws InfraException */ @@ -69,10 +68,10 @@ public function atribuirComponentesDigitaisAoDocumento($parNumIdDocumento, $parA if(!isset($parArrObjComponenteDigitalDTO)) { throw new InfraException('Parmetro parArrObjComponenteDigitalDTO no informado.'); } - $arrObjAnexoDTOParaCompactacao = array(); + $arrObjAnexoDTOParaCompactacao = []; foreach ($parArrObjComponenteDigitalDTO as $objComponenteDigital){ foreach($this->arrAnexos as $key => $objAnexo){ - if(array_key_exists($objComponenteDigital->getStrHashConteudo(), $objAnexo) && $objAnexo['recebido'] == false){ + if(array_key_exists($objComponenteDigital->getStrHashConteudo(), $objAnexo) && $objAnexo['recebido'] == false) { $arrObjAnexoDTOParaCompactacao[] = $objAnexo[$objComponenteDigital->getStrHashConteudo()]; $this->arrAnexos[$key]['recebido'] = true; break; @@ -84,9 +83,9 @@ public function atribuirComponentesDigitaisAoDocumento($parNumIdDocumento, $parA // Caso possua, ser necessrio compactar todos os arquivos em ZIP para vinculao ao documento no SEI que // permite apenas um arquivo por documento $objAnexoDTODocumento = null; - if(count($arrObjAnexoDTOParaCompactacao) == 1){ + if(count($arrObjAnexoDTOParaCompactacao) == 1) { $objAnexoDTODocumento = $arrObjAnexoDTOParaCompactacao[0]; - }elseif (count($arrObjAnexoDTOParaCompactacao) > 1){ + }elseif (count($arrObjAnexoDTOParaCompactacao) > 1) { $objAnexoDTODocumento = self::compactarAnexosDoDocumento($parNumIdDocumento, $arrObjAnexoDTOParaCompactacao); }else{ throw new InfraException("Anexo do documento $parNumIdDocumento no pode ser localizado."); @@ -112,8 +111,8 @@ public function atribuirComponentesDigitaisAoDocumento($parNumIdDocumento, $parA * Este mtodo recebe um id de documento e um array de anexos DTO, e responsvel por: * Buscar o array de documentos * - * @param $parNumIdDocumento - * @param $parArrAnexoDTO + * @param $parNumIdDocumento + * @param $parArrAnexoDTO * @return array * @throws InfraException */ @@ -127,7 +126,7 @@ protected function compactarAnexosDoDocumento($parNumIdDocumento, $parArrAnexoDT /** * Transforma em array, o id do documento */ - $arrIdDocumentos = array($parNumIdDocumento); + $arrIdDocumentos = [$parNumIdDocumento]; $objDocumentoDTO = new DocumentoDTO(); $objDocumentoDTO->retDblIdDocumento(); @@ -144,13 +143,13 @@ protected function compactarAnexosDoDocumento($parNumIdDocumento, $parArrAnexoDT $objDocumentoRN = new DocumentoRN(); $arrObjDocumentoDTO = $objDocumentoRN->listarRN0008($objDocumentoDTO); - if (count($arrObjDocumentoDTO)==0){ + if (count($arrObjDocumentoDTO)==0) { throw new InfraException('Nenhum documento informado.'); } $contDocumentosDto = 0; - $arrayRetornoObjAnexoDTO = array(); - foreach ($arrObjDocumentoDTO as $objDocumentoDTO){ + $arrayRetornoObjAnexoDTO = []; + foreach ($arrObjDocumentoDTO as $objDocumentoDTO) { $contDocumentosDto++; $objAnexoRN = new AnexoRN(); @@ -167,13 +166,13 @@ protected function compactarAnexosDoDocumento($parNumIdDocumento, $parArrAnexoDT foreach($arrIdDocumentos as $dblIdDocumento){ $objDocumentoDTO = $arrObjDocumentoDTO[$dblIdDocumento]; $strDocumento = ''; - if ($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO){ - $arrayAnexosExcluirFisicamente = array(); + if ($objDocumentoDTO->getStrStaProtocoloProtocolo() == ProtocoloRN::$TP_DOCUMENTO_RECEBIDO) { + $arrayAnexosExcluirFisicamente = []; foreach ($parArrAnexoDTO as $objAnexoDTO){ $numSequencial++; - if ($objAnexoDTO==null){ - $objInfraException->adicionarValidacao('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado() .' no encontrado.'); + if ($objAnexoDTO==null) { + $objInfraException->adicionarValidacao('Documento '.$objDocumentoDTO->getStrProtocoloDocumentoFormatado() .' no encontrado.'); }else{ /** * Aqui ser atribudo um nome aos anexos @@ -188,9 +187,9 @@ protected function compactarAnexosDoDocumento($parNumIdDocumento, $parArrAnexoDT /** * Aqui, o anexo ser adicionado ao zip */ - $strLocalizacaoArquivo = DIR_SEI_TEMP.'/'. $objAnexoDTO->getNumIdAnexo() ; + $strLocalizacaoArquivo = DIR_SEI_TEMP.'/'. $objAnexoDTO->getNumIdAnexo(); //if ($zipFile->addFile($strLocalizacaoArquivo,'['.$numComponenteDigital.']-'.InfraUtil::formatarNomeArquivo($strNomeArquivo)) === false){ - if ($zipFile->addFile($strLocalizacaoArquivo, '['.$numSequencial.']-'.InfraUtil::formatarNomeArquivo($strNomeArquivo)) === false){ + if ($zipFile->addFile($strLocalizacaoArquivo, '['.$numSequencial.']-'.InfraUtil::formatarNomeArquivo($strNomeArquivo)) === false) { throw new InfraException('Erro adicionando arquivo externo ao zip.'); } else{ @@ -232,8 +231,8 @@ protected function compactarAnexosDoDocumento($parNumIdDocumento, $parArrAnexoDT } /** - * @param $parObjComponenteDigitalDTO - * @param $parObjAnexoDTO + * @param $parObjComponenteDigitalDTO + * @param $parObjAnexoDTO * @throws InfraException */ private function atualizarAnexoDoComponenteDigital($parObjComponenteDigitalDTO, $parObjAnexoDTO) @@ -243,21 +242,21 @@ private function atualizarAnexoDoComponenteDigital($parObjComponenteDigitalDTO, $objComponenteDigitalDTO->setStrNumeroRegistro($parObjComponenteDigitalDTO->getStrNumeroRegistro()); $objComponenteDigitalDTO->setDblIdDocumento($parObjComponenteDigitalDTO->getDblIdDocumento()); $objComponenteDigitalDTO->setDblIdProcedimento($parObjComponenteDigitalDTO->getDblIdProcedimento()); + //$objComponenteDigitalDTO->setNumOrdem($parObjComponenteDigitalDTO->getNumOrdem()); $objComponenteDigitalDTO->setNumIdAnexo($parObjAnexoDTO->getNumIdAnexo()); $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); - $objComponenteDigitalDTO = $objComponenteDigitalBD->alterar($objComponenteDigitalDTO); + $objComponenteDigitalBD->alterar($objComponenteDigitalDTO); } /** - * @param $objComponenteDigital + * @param $objComponenteDigital * @return AnexoDTO - * */ public function copiarComponenteDigitalPastaTemporaria($parObjComponenteDigital, $parObjConteudo) { - if(!isset($parObjComponenteDigital)){ + if (!isset($parObjComponenteDigital)) { throw new InfraException("Componente Digital no informado"); - } + } $objAnexoRN = new AnexoRN(); $strNomeArquivoUpload = $objAnexoRN->gerarNomeArquivoTemporario(); $strConteudoCodificado = $parObjConteudo->conteudoDoComponenteDigital; @@ -298,8 +297,7 @@ public function validarIntegridadeDoComponenteDigital(AnexoDTO $objAnexoDTO, $st /** * Mtodo para cadastramento do anexo correspondente ao componente digital recebido - * @param ComponenteDigitalDTO $parObjComponenteDigitalDTO - * @param AnexoDTO $parObjAnexoDTO + * * @throws InfraException */ public function cadastrarComponenteDigital(ComponenteDigitalDTO $parObjComponenteDigitalDTO, AnexoDTO $parObjAnexoDTO) @@ -313,8 +311,8 @@ public function cadastrarComponenteDigital(ComponenteDigitalDTO $parObjComponent $objDocumentoRN = new DocumentoRN(); $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); - if ($objDocumentoDTO==null){ - throw new InfraException("Registro n<E3>o encontrado."); + if ($objDocumentoDTO==null) { + throw new InfraException("Registro n<E3>o encontrado."); } $objProtocoloDTO = new ProtocoloDTO(); @@ -328,16 +326,15 @@ public function cadastrarComponenteDigital(ComponenteDigitalDTO $parObjComponent // Complementa informaes do componente digital $parObjAnexoDTO->setStrNome($parObjComponenteDigitalDTO->getStrNome()); $arrStrNome = explode('.', $parObjComponenteDigitalDTO->getStrNome()); - $strProtocoloFormatado = current($arrStrNome); $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); - $objProtocoloDTO->setArrObjAnexoDTO(array($parObjAnexoDTO)); + $objProtocoloDTO->setArrObjAnexoDTO([$parObjAnexoDTO]); $objDocumentoRN->alterarRN0004($objDocumentoDTO); } /** * Mtodo responsvel por cadastrar o anexo correspondente aos componentes digitais recebidos pelo PEN - * @param ComponenteDigitalDTO $parObjComponenteDigitalDTO - * @param AnexoDTO $parObjAnexoDTO + * + * @param ComponenteDigitalDTO $parObjComponenteDigitalDTO * @throws InfraException */ public function cadastrarAnexoDoDocumento(AnexoDTO $parObjAnexoDTO) @@ -352,7 +349,7 @@ public function cadastrarAnexoDoDocumento(AnexoDTO $parObjAnexoDTO) $objDocumentoRN = new DocumentoRN(); $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); - if ($objDocumentoDTO == null){ + if ($objDocumentoDTO == null) { throw new InfraException("Documento (id: $dblIdDocumento) no pode ser localizado."); } @@ -369,8 +366,8 @@ public function cadastrarAnexoDoDocumento(AnexoDTO $parObjAnexoDTO) $parObjAnexoDTO->setStrNome($nomeArquivoZip); $objDocumentoDTO->setObjProtocoloDTO($objProtocoloDTO); - $objProtocoloDTO->setArrObjAnexoDTO(array($parObjAnexoDTO)); + $objProtocoloDTO->setArrObjAnexoDTO([$parObjAnexoDTO]); $objDocumentoRN->alterarRN0004($objDocumentoDTO); } -} +} \ No newline at end of file diff --git a/src/rn/ReceberProcedimentoRN.php b/src/rn/ReceberProcedimentoRN.php index effb562f4..961eaf508 100755 --- a/src/rn/ReceberProcedimentoRN.php +++ b/src/rn/ReceberProcedimentoRN.php @@ -14,13 +14,13 @@ class ReceberProcedimentoRN extends InfraRN private $objRelProtocoloProtocoloRN; private $objPenParametroRN; private $objProcedimentoRN; - private $objDocumentoRN; public $destinatarioReal; private $objPenDebug; private $objProtocoloRN; private $objSeiRN; private $objEnviarReciboTramiteRN; private $objExpedirProcedimentoRN; + private $objReceberComponenteDigitalRN; public function __construct() { @@ -28,7 +28,6 @@ public function __construct() $this->objSeiRN = new SeiRN(); $this->objProtocoloRN = new ProtocoloRN(); $this->objProcedimentoRN = new ProcedimentoRN(); - $this->objDocumentoRN = new DocumentoRN(); $this->objInfraParametro = new InfraParametro(BancoSEI::getInstance()); $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); @@ -50,7 +49,7 @@ protected function inicializarObjInfraIBanco() /** * Processa o recebimento de trmites de processos, fazendo o devido controle de concorrncia * - * @param int $parNumIdentificacaoTramite + * @param int $parNumIdentificacaoTramite * @return void */ public function receberProcedimento($parNumIdentificacaoTramite) @@ -68,7 +67,7 @@ public function receberProcedimento($parNumIdentificacaoTramite) try{ // Inicializao do recebimento do processo, abrindo nova transao e controle de concorrncia, // evitando processamento simultneo de cadastramento do mesmo processo - $arrChavesSincronizacao = array(); + $arrChavesSincronizacao = []; $arrChavesSincronizacao["IdTramite"] = $objMetadadosProcedimento->IDT; $arrChavesSincronizacao["NumeroRegistro"] = $objMetadadosProcedimento->metadados->NRE; $objProtocolo = ProcessoEletronicoRN::obterProtocoloDosMetadados($objMetadadosProcedimento); @@ -76,7 +75,7 @@ public function receberProcedimento($parNumIdentificacaoTramite) $strIdTarefa = $bolEhProcesso ? ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO : ProcessoEletronicoRN::$TI_DOCUMENTO_AVULSO_RECEBIDO; $arrChavesSincronizacao["IdTarefa"] = ProcessoEletronicoRN::obterIdTarefaModulo($strIdTarefa); - if($this->objProcedimentoAndamentoRN->sinalizarInicioRecebimento($arrChavesSincronizacao)){ + if($this->objProcedimentoAndamentoRN->sinalizarInicioRecebimento($arrChavesSincronizacao)) { $objTramite = $this->consultarTramite($parNumIdentificacaoTramite); // Valida os metadados e baixa os documentos antes de iniciar uma transao com o banco @@ -110,7 +109,7 @@ protected function receberProcedimentoInternoControlado($parObjMetadadosProcedim $numIdTarefa = ProcessoEletronicoRN::obterIdTarefaModulo($strIdTarefa); // Tratamento para evitar o recebimento simultneo do mesmo procedimento em servios/processos concorrentes - if(!$this->objProcedimentoAndamentoRN->sincronizarRecebimentoProcessos($strNumeroRegistro, $numIdTramite, $numIdTarefa)){ + if(!$this->objProcedimentoAndamentoRN->sincronizarRecebimentoProcessos($strNumeroRegistro, $numIdTramite, $numIdTarefa)) { $this->gravarLogDebug("Trmite de recebimento $numIdTramite j se encontra em processamento", 3); return false; } @@ -138,12 +137,12 @@ protected function receberProcedimentoInternoControlado($parObjMetadadosProcedim throw new InfraException("Trmite $numIdTramite j se encontra recusado. Cancelando o recebimento do processo"); } - if($objProtocolo->staTipoProtocolo == ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO){ + if($objProtocolo->staTipoProtocolo == ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO) { $objProtocolo = ProcessoEletronicoRN::desmembrarProcessosAnexados($objProtocolo); } $this->gravarLogDebug("Persistindo/atualizando dados do processo com NRE " . $strNumeroRegistro, 2); - list($objProcedimentoDTO, $bolProcedimentoExistente) = $this->registrarProcesso( + [$objProcedimentoDTO, $bolProcedimentoExistente] = $this->registrarProcesso( $strNumeroRegistro, $numIdTramite, $objProtocolo, @@ -178,9 +177,9 @@ protected function receberProcedimentoInternoControlado($parObjMetadadosProcedim throw new InfraException("Desconsiderando recebimento do processo devido a situao de trmite inconsistente: " . $objTramite->situacaoAtual); } - $this->atribuirComponentesDigitaisAosDocumentos($objProcedimentoDTO, $strNumeroRegistro, $numIdTramite, $arrHashComponenteBaixados, $objProtocolo); + $this->atribuirComponentesDigitaisAosDocumentos($strNumeroRegistro, $numIdTramite, $arrHashComponenteBaixados, $objProtocolo); - $this->atribuirObservacoesSobreDocumentoReferenciado($objProcedimentoDTO, $objProtocolo); + $this->atribuirObservacoesSobreDocumentoReferenciado($objProcedimentoDTO); $this->atribuirProcessosAnexados($objProtocolo); @@ -206,7 +205,7 @@ protected function receberProcedimentoInternoControlado($parObjMetadadosProcedim * Esta validao deve ser feita somente sobre os metadados indicados pelo remetente e antes de iniciar * o download e criao do processo no destinatrio * - * @param stdClass $parObjMetadadosProcedimento + * @param stdClass $parObjMetadadosProcedimento * @return void */ private function validarMetadadosDoProtocolo($parObjMetadadosProcedimento) @@ -234,8 +233,8 @@ private function baixarComponentesDigitais($parObjTramite, $parObjMetadadosProce { // TODO: Migrar funes baixarComponenteDigital, receberComponenteDigital e receberComponenteDigitalParticionado // para classe ReceberComponenteDigitalRN - $arrAnexosComponentes = array(); - $arrHashComponentesBaixados = array(); + $arrAnexosComponentes = []; + $arrHashComponentesBaixados = []; $numIdTramite = $parObjMetadadosProcedimento->IDT; $objProtocolo = ProcessoEletronicoRN::obterProtocoloDosMetadados($parObjMetadadosProcedimento); $numParamTamMaxDocumentoMb = ProcessoEletronicoRN::obterTamanhoBlocoTransferencia(); @@ -245,7 +244,7 @@ private function baixarComponentesDigitais($parObjTramite, $parObjMetadadosProce // pendentes de recebimento informado pelo Tramita.gov.br no est de acordo com a lista atual de arquivos // mantida pela aplicao. $arrHashComponentesProtocolo = $this->listarHashDosComponentesMetadado($objProtocolo); - $arrHashPendentesRecebimento = $parObjTramite->componenteDigitalPendenteDeRecebimento; + $arrHashPendentesRecebimento = $parObjTramite->hashDosComponentesPendentesDeRecebimento; $numQtdComponentes = count($arrHashComponentesProtocolo); $this->gravarLogDebug("$numQtdComponentes componentes digitais identificados no protocolo {$objProtocolo->protocolo}", 2); @@ -259,7 +258,7 @@ private function baixarComponentesDigitais($parObjTramite, $parObjMetadadosProce $nrTamanhoBytesArquivo = $this->obterTamanhoComponenteDigitalPendente($objProtocolo, $strHashComponentePendente); $nrTamanhoArquivoKB = round($nrTamanhoBytesArquivo / 1024, 2); $nrTamanhMegaByte = $nrTamanhoBytesArquivo / (1024 * 1024); - $nrTamanhoBytesMaximo = $numParamTamMaxDocumentoMb * pow(1024, 2); + $nrTamanhoBytesMaximo = $numParamTamMaxDocumentoMb * 1024 ** 2; $arrObjComponenteDigitalIndexado = self::indexarComponenteDigitaisDoProtocolo($objProtocolo); @@ -267,24 +266,24 @@ private function baixarComponentesDigitais($parObjTramite, $parObjMetadadosProce $this->gravarLogDebug("Baixando componente digital $numOrdemComponente particionado", 3); try{ - $objAnexoDTO = $this->receberComponenenteDigitalParticionado( - $strHashComponentePendente, $nrTamanhoBytesMaximo, $nrTamanhoBytesArquivo, $numParamTamMaxDocumentoMb, - $numOrdemComponente, $numIdTramite, $parObjTramite, $arrObjComponenteDigitalIndexado - ); + $objAnexoDTO = $this->receberComponenenteDigitalParticionado( + $strHashComponentePendente, $nrTamanhoBytesMaximo, $nrTamanhoBytesArquivo, $numParamTamMaxDocumentoMb, + $numOrdemComponente, $numIdTramite, $parObjTramite, $arrObjComponenteDigitalIndexado + ); - ReceberProcedimentoRN::validaTamanhoMaximoAnexo($objAnexoDTO->getStrNome(), $nrTamanhMegaByte); + ReceberProcedimentoRN::validaTamanhoMaximoAnexo($objAnexoDTO->getStrNome(), $nrTamanhMegaByte); - $arrHashComponentesBaixados[] = $strHashComponentePendente; - $arrAnexosComponentes[$key][$strHashComponentePendente] = $objAnexoDTO; + $arrHashComponentesBaixados[] = $strHashComponentePendente; + $arrAnexosComponentes[$key][$strHashComponentePendente] = $objAnexoDTO; } catch(InfraException $e) { - // Caso o erro seja relacionado a falta do hash do documento no Tramita.gov.br e este no esteja - // pendente de recebimento, o download deve continuar para os demais documentos do processo - if(!in_array($strHashComponentePendente, $arrHashPendentesRecebimento)){ - $this->gravarLogDebug("Componente digital j presente no processo", 4); - continue; + // Caso o erro seja relacionado a falta do hash do documento no Tramita.gov.br e este no esteja + // pendente de recebimento, o download deve continuar para os demais documentos do processo + if(!in_array($strHashComponentePendente, $arrHashPendentesRecebimento)) { + $this->gravarLogDebug("Componente digital j presente no processo", 4); + continue; } - throw $e; + throw $e; } $this->criarDiretorioAnexo($objAnexoDTO); @@ -304,7 +303,7 @@ private function baixarComponentesDigitais($parObjTramite, $parObjMetadadosProce } } - if(count($arrAnexosComponentes) > 0){ + if(count($arrAnexosComponentes) > 0) { $this->objReceberComponenteDigitalRN->setArrAnexos($arrAnexosComponentes); } @@ -315,27 +314,29 @@ private function baixarComponentesDigitais($parObjTramite, $parObjMetadadosProce /** * Consulta dados de trmite especficado no Barramento de Servios do PEN * - * @param int $parNumIdTramite + * @param int $parNumIdTramite * @return stdClass */ private function consultarTramite($parNumIdTramite) { - if(is_null($parNumIdTramite)){ + if(is_null($parNumIdTramite)) { throw new InfraException("Nmero de identificao do trmite no pode ser nulo"); } $objTramite = null; $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdTramite); - if(!empty($arrObjTramite)){ - if(count($arrObjTramite) > 1){ + if(!empty($arrObjTramite)) { + if(count($arrObjTramite) > 1) { throw new InfraException("Identificado mais de um registro de trmite para o IDT $parNumIdTramite ."); } $objTramite = $arrObjTramite[0]; - if(!is_array($objTramite->componenteDigitalPendenteDeRecebimento)){ - $objTramite->componenteDigitalPendenteDeRecebimento = array($objTramite->componenteDigitalPendenteDeRecebimento); + if(!is_array($objTramite->hashDosComponentesPendentesDeRecebimento)) { + $objTramite->componenteDigitalPendenteDeRecebimento = (array) $objTramite->hashDosComponentesPendentesDeRecebimento; + + $objTramite->hashDosComponentesPendentesDeRecebimento = (array) $objTramite->hashDosComponentesPendentesDeRecebimento; } } @@ -345,7 +346,7 @@ private function consultarTramite($parNumIdTramite) /** * Processa o recebimento de trmites de processos, fazendo o devido controle de concorrncia * - * @param int $parNumIdentificacaoTramite + * @param int $parNumIdentificacaoTramite * @return void */ public function receberTramitesRecusados($parNumIdentificacaoTramite) @@ -359,7 +360,7 @@ public function receberTramitesRecusados($parNumIdentificacaoTramite) $this->gravarLogDebug("Solicitando dados do trmite " . $parNumIdentificacaoTramite, 1); $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($parNumIdentificacaoTramite); - if(!isset($arrObjTramite) || !array_key_exists(0, $arrObjTramite)){ + if(!isset($arrObjTramite) || !array_key_exists(0, $arrObjTramite)) { throw new InfraException("No foi encontrado no Tramita GOV.BR o trmite de nmero {$parNumIdentificacaoTramite} para realizar a cincia da recusa"); } @@ -368,15 +369,11 @@ public function receberTramitesRecusados($parNumIdentificacaoTramite) try{ // Inicializao do recebimento do processo, abrindo nova transao e controle de concorrncia, // evitando processamento simultneo de cadastramento do mesmo processo - $arrChavesSincronizacao = array( - "NumeroRegistro" => $objTramite->NRE, - "IdTramite" => $objTramite->IDT, - "IdTarefa" => ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO) - ); + $arrChavesSincronizacao = ["NumeroRegistro" => $objTramite->NRE, "IdTramite" => $objTramite->IDT, "IdTarefa" => ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO)]; - if($this->objProcedimentoAndamentoRN->sinalizarInicioRecebimento($arrChavesSincronizacao)){ - $this->receberTramitesRecusadosInterno($objTramite); - } + if($this->objProcedimentoAndamentoRN->sinalizarInicioRecebimento($arrChavesSincronizacao)) { + $this->receberTramitesRecusadosInterno($objTramite); + } } catch(Exception $e) { $mensagemErro = InfraException::inspecionar($e); $this->gravarLogDebug($mensagemErro); @@ -388,7 +385,7 @@ public function receberTramitesRecusados($parNumIdentificacaoTramite) /** * Processa o recebimento de um evento de recusa de trmite de processo com controle de transao e sincronia de processamentos * - * @param object $parObjTramite + * @param object $parObjTramite * @return void */ protected function receberTramitesRecusadosInternoControlado($parObjTramite) @@ -403,7 +400,7 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) $numIdTarefa = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_RECUSADO); // Tratamento para evitar o recebimento simultneo de evento de recusa de processo - if(!$this->objProcedimentoAndamentoRN->sincronizarRecebimentoProcessos($strNumeroRegistro, $numIdTramite, $numIdTarefa)){ + if(!$this->objProcedimentoAndamentoRN->sincronizarRecebimentoProcessos($strNumeroRegistro, $numIdTramite, $numIdTarefa)) { $this->gravarLogDebug("Evento de recusa do trmite $numIdTramite j se encontra em processamento", 3); return false; } @@ -415,7 +412,7 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - if(isset($objTramiteDTO)){ + if(isset($objTramiteDTO)) { SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); //Busca os dados do procedimento @@ -429,7 +426,7 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) // Verifica se a recusa j foi registrada para o processo if($this->tramiteRecusaRegistrado($objProcessoEletronicoDTO->getDblIdProcedimento())) { $objTramiteAtualizado = $this->objProcessoEletronicoRN->consultarTramites($numIdTramite); - if(!is_null($objTramiteAtualizado) && $objTramiteAtualizado[0]->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA){ + if(!is_null($objTramiteAtualizado) && $objTramiteAtualizado[0]->situacaoAtual == ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA) { $this->gravarLogDebug("Evento de recusa do trmite $numIdTramite j registrado", 3); return false; } @@ -497,7 +494,7 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) //Adiciona um andamento para o trmite recusado $this->gravarLogDebug("Adicionando andamento para registro da recusa do trmite", 2); - $arrObjAtributoAndamentoDTO = array(); + $arrObjAtributoAndamentoDTO = []; $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); $objAtributoAndamentoDTO->setStrNome('MOTIVO'); $objAtributoAndamentoDTO->setStrValor($objReceberTramiteRecusadoDTO->getStrMotivoRecusa()); @@ -530,13 +527,8 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); $objPenBlocoProcessoDTO->setDblIdProtocolo($objReceberTramiteRecusadoDTO->getNumIdProtocolo()); $objPenBlocoProcessoDTO->setNumIdAndamento( - array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO - ), - InfraDTO::$OPER_NOT_IN + [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO], + InfraDTO::$OPER_NOT_IN ); $objPenBlocoProcessoDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); $objPenBlocoProcessoDTO->retTodos(); @@ -545,16 +537,16 @@ protected function receberTramitesRecusadosInternoControlado($parObjTramite) $arrObjPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); if ($arrObjPenBlocoProcesso != null) { - $blocos = array(); + $blocos = []; foreach ($arrObjPenBlocoProcesso as $objBlocoProcesso) { - $objBlocoProcesso->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA); - $objPenBlocoProcessoRN->alterar($objBlocoProcesso); + $objBlocoProcesso->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA); + $objPenBlocoProcessoRN->alterar($objBlocoProcesso); - $blocos[] = $objBlocoProcesso->getNumIdBloco(); + $blocos[] = $objBlocoProcesso->getNumIdBloco(); } foreach ($blocos as $idBloco) { - $objPenBlocoProcessoRN->atualizarEstadoDoBloco($idBloco); + $objPenBlocoProcessoRN->atualizarEstadoDoBloco($idBloco); } } } @@ -577,12 +569,12 @@ protected function listarPendenciasConectado() } /** - * Mtodo responsvel por atribuir a lista de componentes digitais baixados do PEN aos seus respectivos documentos no SEI - */ - private function atribuirComponentesDigitaisAosDocumentos(ProcedimentoDTO $parObjProcedimentoDTO, $parStrNumeroRegistro, $parNumIdentificacaoTramite, - $parArrHashComponentes, $objProtocolo) - { - if(count($parArrHashComponentes) > 0){ + * Mtodo responsvel por atribuir a lista de componentes digitais baixados do PEN aos seus respectivos documentos no SEI + */ + private function atribuirComponentesDigitaisAosDocumentos($parStrNumeroRegistro, $parNumIdentificacaoTramite, + $parArrHashComponentes, $objProtocolo + ) { + if(count($parArrHashComponentes) > 0) { //Obter dados dos componetes digitais $this->gravarLogDebug("Iniciando o armazenamento dos componentes digitais pendentes", 2); $objComponenteDigitalDTO = new ComponenteDigitalDTO(); @@ -604,20 +596,20 @@ private function atribuirComponentesDigitaisAosDocumentos(ProcedimentoDTO $parOb $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); $arrObjComponentesDigitaisDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); - if(!empty($arrObjComponentesDigitaisDTO)){ + if(!empty($arrObjComponentesDigitaisDTO)) { $arrStrNomeDocumento = $this->listarMetaDadosComponentesDigitais($objProtocolo); $arrCompenentesDigitaisIndexados = InfraArray::indexarArrInfraDTO($arrObjComponentesDigitaisDTO, 'IdDocumento', true); foreach ($arrCompenentesDigitaisIndexados as $numIdDocumento => $arrObjComponenteDigitalDTO){ - if(!empty($arrObjComponenteDigitalDTO)){ + if(!empty($arrObjComponenteDigitalDTO)) { foreach ($arrObjComponenteDigitalDTO as $objComponenteDigitalDTO) { $dblIdProcedimento = $objComponenteDigitalDTO->getDblIdProcedimento(); $dblIdDocumento = $numIdDocumento; $strHash = $objComponenteDigitalDTO->getStrHashConteudo(); - //Verificar se documento j foi recebido anteriormente para poder registrar - if($this->documentosPendenteRegistro($dblIdProcedimento, $dblIdDocumento, $strHash)){ + //Verificar se documento j foi recebido anteriormente para poder registrar + if($this->documentosPendenteRegistro($dblIdProcedimento, $dblIdDocumento, $strHash)) { $this->objReceberComponenteDigitalRN->atribuirComponentesDigitaisAoDocumento($numIdDocumento, $arrObjComponenteDigitalDTO); $strMensagemRecebimento = sprintf('Armazenando componente do documento %s', $objComponenteDigitalDTO->getStrProtocoloDocumentoFormatado()); $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento($strMensagemRecebimento, 'S')); @@ -635,23 +627,24 @@ private function atribuirComponentesDigitaisAosDocumentos(ProcedimentoDTO $parOb } /** - * Mtodo para recuperar a lista de todos os hashs dos componentes digitais presentes no protocolo recebido - * - * @return Array Lista de hashs dos componentes digitais - */ + * Mtodo para recuperar a lista de todos os hashs dos componentes digitais presentes no protocolo recebido + * + * @return Array Lista de hashs dos componentes digitais + */ private function listarHashDosComponentesMetadado($parObjProtocolo) { - $arrHashsComponentesDigitais = array(); + $arrHashsComponentesDigitais = []; $arrObjDocumento = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo); foreach($arrObjDocumento as $objDocumento){ //Desconsidera os componendes digitais de documentos cancelados if(!isset($objDocumento->retirado) || $objDocumento->retirado == false) { - if(!isset($objDocumento->componenteDigital)){ + if(!isset($objDocumento->componentesDigitais)) { throw new InfraException("Metadados do componente digital do documento de ordem {$objDocumento->ordem} no informado."); } - $arrObjComponentesDigitais = is_array($objDocumento->componenteDigital) ? $objDocumento->componenteDigital : array($objDocumento->componenteDigital); - foreach ($arrObjComponentesDigitais as $objComponenteDigital) { + $arrObjComponentesDigitais = is_array($objDocumento->componentesDigitais) ? $objDocumento->componentesDigitais : [$objDocumento->componentesDigitais]; + foreach ($arrObjComponentesDigitais as $objComponenteDigital) { + $arrHashsComponentesDigitais[] = ProcessoEletronicoRN::getHashFromMetaDados($objComponenteDigital->hash); } } @@ -662,18 +655,21 @@ private function listarHashDosComponentesMetadado($parObjProtocolo) /** - * Retorna um array com alguns metadados, onde o indice de o hash do arquivo - * - * @return array[String] - */ + * Retorna um array com alguns metadados, onde o indice de o hash do arquivo + * + * @return array[String] + */ private function listarMetaDadosComponentesDigitais($parObjProtocolo) { - $arrMetadadoDocumento = array(); + $arrMetadadoDocumento = []; $objMapBD = new GenericoBD($this->getObjInfraIBanco()); $arrObjDocumento = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo, true); foreach($arrObjDocumento as $objDocumento){ - $strHash = ProcessoEletronicoRN::getHashFromMetaDados($objDocumento->componenteDigital->hash); + if (is_array($objDocumento->componentesDigitais[0])) { + $objDocumento->componentesDigitais[0] = (object) $objDocumento->componentesDigitais[0]; + } + $strHash = ProcessoEletronicoRN::getHashFromMetaDados($objDocumento->componentesDigitais[0]->hash); $objMapDTO = new PenRelTipoDocMapRecebidoDTO(true); $objMapDTO->setNumMaxRegistrosRetorno(1); $objMapDTO->setNumCodigoEspecie($objDocumento->especie->codigo); @@ -682,52 +678,50 @@ private function listarMetaDadosComponentesDigitais($parObjProtocolo) $objMapDTO = $objMapBD->consultar($objMapDTO); if(empty($objMapDTO)) { - $strNomeDocumento = '[ref '.$objDocumento->especie->nomeNoProdutor.']'; + $strNomeDocumento = '[ref '.$objDocumento->especie->nomeNoProdutor.']'; } else { $strNomeDocumento = $objMapDTO->getStrNomeSerie(); } - $arrMetadadoDocumento[$strHash] = array( - 'especieNome' => $strNomeDocumento - ); + $arrMetadadoDocumento[$strHash] = ['especieNome' => $strNomeDocumento]; } return $arrMetadadoDocumento; } - private function validarDadosProcesso(InfraException $objInfraException, $objMetadadosProcedimento) + private function validarDadosProcesso() { - } - private function validarDadosDocumentos(InfraException $objInfraException, $objMetadadosProcedimento) + private function validarDadosDocumentos() { - } /** - * Valida cada componente digital, se no algum no for aceito recusa o tramite - * do procedimento para esta unidade - */ + * Valida cada componente digital, se no algum no for aceito recusa o tramite + * do procedimento para esta unidade + */ private function validarComponentesDigitais($parObjProtocolo, $parNumIdentificacaoTramite) { $arrObjDocumentos = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo); $numIdTipoDocumentoPadrao = $this->objPenRelTipoDocMapRecebidoRN->consultarTipoDocumentoPadrao(); - if(!isset($numIdTipoDocumentoPadrao)){ + if(!isset($numIdTipoDocumentoPadrao)) { foreach($arrObjDocumentos as $objDocument){ + $especie = $objDocument->especie; + $objPenRelTipoDocMapEnviadoDTO = new PenRelTipoDocMapRecebidoDTO(); $objPenRelTipoDocMapEnviadoDTO->retTodos(); $objPenRelTipoDocMapEnviadoDTO->setNumCodigoEspecie($objDocument->especie->codigo); - $objProcessoEletronicoDB = new PenRelTipoDocMapRecebidoBD($this->getObjInfraIBanco()); + $objProcessoEletronicoDB = new PenRelTipoDocMapRecebidoBD(BancoSEI::getInstance()); $numContador = (int)$objProcessoEletronicoDB->contar($objPenRelTipoDocMapEnviadoDTO); // No achou, ou seja, no esta cadastrado na tabela, ento no aceito nesta unidade como vlido if($numContador <= 0) { - $this->objProcessoEletronicoRN->recusarTramite($parNumIdentificacaoTramite, sprintf('O Documento do tipo %s no est mapeado para recebimento no sistema de destino. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro.', mb_convert_encoding($objDocument->especie->nomeNoProdutor, 'ISO-8859-1', 'UTF-8')), ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_ESPECIE_NAO_MAPEADA); + $this->objProcessoEletronicoRN->recusarTramite($parNumIdentificacaoTramite, sprintf('O Documento do tipo %s no est mapeado para recebimento no sistema de destino. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro.', utf8_decode($objDocument->especie->nomeNoProdutor)), ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_ESPECIE_NAO_MAPEADA); throw new InfraException(sprintf('Documento do tipo %s no est mapeado. Motivo da Recusa no Barramento: %s', $objDocument->especie->nomeNoProdutor, ProcessoEletronicoRN::$MOTIVOS_RECUSA[ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_ESPECIE_NAO_MAPEADA])); } } @@ -736,7 +730,7 @@ private function validarComponentesDigitais($parObjProtocolo, $parNumIdentificac //No valida informaes do componente digital caso o documento esteja cancelado foreach ($arrObjDocumentos as $objDocumento) { if (!isset($objDocumento->retirado) || $objDocumento->retirado === false) { - foreach ($objDocumento->componenteDigital as $objComponenteDigital) { + foreach ($objDocumento->componentesDigitais as $objComponenteDigital) { $this->validaTamanhoComponenteDigital($objComponenteDigital); } } @@ -744,8 +738,9 @@ private function validarComponentesDigitais($parObjProtocolo, $parNumIdentificac } private function validaTamanhoComponenteDigital($objComponenteDigital) - { - if (is_null($objComponenteDigital->tamanhoEmBytes) || $objComponenteDigital->tamanhoEmBytes == 0){ + { + + if (is_null($objComponenteDigital->tamanhoEmBytes) || $objComponenteDigital->tamanhoEmBytes == 0) { throw new InfraException('Tamanho de componente digital no informado.', null, 'RECUSA: '.ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); } } @@ -754,18 +749,18 @@ private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTr { // Validao dos dados do processo recebido $objInfraException = new InfraException(); - $this->validarDadosProcesso($objInfraException, $parObjProtocolo); - $this->validarDadosDocumentos($objInfraException, $parObjProtocolo); + $this->validarDadosProcesso(); + $this->validarDadosDocumentos(); // TODO: Regra de Negcio - Processos recebidos pelo Barramento no podero disponibilizar a opo de reordenao e cancelamento de documentos // para o usurio final, mesmo possuindo permisso para isso $objInfraException->lancarValidacoes(); // Verificar se procedimento j existia na base de dados do sistema - list($dblIdProcedimento, ) = $this->consultarProcedimentoExistente($parStrNumeroRegistro, $parObjProtocolo->protocolo); + [$dblIdProcedimento, ] = $this->consultarProcedimentoExistente($parStrNumeroRegistro, $parObjProtocolo->protocolo); $bolProcedimentoExistente = isset($dblIdProcedimento); - if($bolProcedimentoExistente){ + if($bolProcedimentoExistente) { $objProcedimentoDTO = $this->atualizarProcedimento($dblIdProcedimento, $parObjMetadadosProcedimento, $parObjProtocolo); } else { @@ -776,7 +771,7 @@ private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTr // Chamada recursiva para registro dos processos apensados if(isset($parObjProtocolo->processoApensado)) { if(!is_array($parObjProtocolo->processoApensado)) { - $parObjProtocolo->processoApensado = array($parObjProtocolo->processoApensado); + $parObjProtocolo->processoApensado = [$parObjProtocolo->processoApensado]; } foreach ($parObjProtocolo->processoApensado as $objProcessoApensado) { @@ -784,7 +779,7 @@ private function registrarProcesso($parStrNumeroRegistro, $parNumIdentificacaoTr } } - return array($objProcedimentoDTO, $bolProcedimentoExistente); + return [$objProcedimentoDTO, $bolProcedimentoExistente]; } private function tramiteRecebimentoRegistrado($parStrNumeroRegistro, $parNumIdentificacaoTramite) @@ -797,18 +792,6 @@ private function tramiteRecebimentoRegistrado($parStrNumeroRegistro, $parNumIden return $objTramiteBD->contar($objTramiteDTO) > 0; } - private function documentoJaRegistrado($parStrNumeroRegistro, $parNumIdentificacaoTramite, $parStrHashComponenteDigital) - { - //Verifica se componente digital j est registrado para o documento - $objComponenteDigitalDTO = new ComponenteDigitalDTO(); - $objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro); - $objComponenteDigitalDTO->setNumIdTramite($parNumIdentificacaoTramite); - $objComponenteDigitalDTO->setStrHashConteudo($parStrHashComponenteDigital); - - $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); - return $objComponenteDigitalBD->contar($objComponenteDigitalDTO) > 0; - } - private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrProtocolo) { // Recupera a lista de Processos Eletrnicos registrados para o NRE ou protocolo informado @@ -819,7 +802,7 @@ private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrPr $objProcessoEletronicoDTO->retStrProtocoloProcedimentoFormatado(); $objProcessoEletronicoDTO->setStrStaTipoProtocolo(ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO); - if(!empty($parStrNumeroRegistro)){ + if(!empty($parStrNumeroRegistro)) { // Busca procedimento existente pelo seu NRE, caso ele seja informado // O nmero de protocolo dever ser utilizado apenas para validao $objProcessoEletronicoDTO->setStrNumeroRegistro($parStrNumeroRegistro); @@ -832,7 +815,7 @@ private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrPr $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->getObjInfraIBanco()); $arrObjProcessoEletronicoDTO = $objProcessoEletronicoBD->listar($objProcessoEletronicoDTO); - if(!empty($arrObjProcessoEletronicoDTO)){ + if(!empty($arrObjProcessoEletronicoDTO)) { $arrObjProcessoEletronicoDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjProcessoEletronicoDTO, "IdProcedimento"); // Nos casos em que mais de um NRE for encontrado, somente o ltimo trmite dever ser considerado @@ -847,18 +830,18 @@ private function consultarProcedimentoExistente($parStrNumeroRegistro, $parStrPr $objTramiteBD = new TramiteBD($this->getObjInfraIBanco()); $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTOPesquisa); - if(isset($objTramiteDTO)){ + if(isset($objTramiteDTO)) { $dblIdProcedimento = $objTramiteDTO->getNumIdProcedimento(); $strNumeroRegistro = $objTramiteDTO->getStrNumeroRegistro(); $strProtocoloFormatado = $arrObjProcessoEletronicoDTOIndexado[$dblIdProcedimento]->getStrProtocoloProcedimentoFormatado(); - if($strProtocoloFormatado !== $parStrProtocolo){ + if($strProtocoloFormatado !== $parStrProtocolo) { throw new InfraException(("Nmero do protocolo obtido no confere com o original. (protocolo SEI: $strProtocoloFormatado, protocolo Tramita GOV.BR: $parStrProtocolo)")); } } } - return array($dblIdProcedimento, $strNumeroRegistro); + return [$dblIdProcedimento, $strNumeroRegistro]; } @@ -874,7 +857,7 @@ private function consultarProcedimentoAnexadoExistente($parStrNumeroRegistro, $p $objComponenteDigitalBD = new ComponenteDigitalBD($this->getObjInfraIBanco()); $objComponenteDigitalDTO = $objComponenteDigitalBD->consultar($objComponenteDigital); - if(isset($objComponenteDigitalDTO)){ + if(isset($objComponenteDigitalDTO)) { $dblIdProcedimentoAnexado = $objComponenteDigitalDTO->getDblIdProcedimentoAnexado(); $objProcedimentoDTO = new ProcedimentoDTO(); @@ -891,11 +874,11 @@ private function consultarProcedimentoAnexadoExistente($parStrNumeroRegistro, $p private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProcedimento, $parObjProtocolo, $parNumeroRegistroAnterior = null) { - if(!isset($parDblIdProcedimento)){ + if(!isset($parDblIdProcedimento)) { throw new InfraException('Parmetro $parDblIdProcedimento no informado.'); } - if(!isset($objMetadadosProcedimento)){ + if(!isset($objMetadadosProcedimento)) { throw new InfraException('Parmetro $objMetadadosProcedimento no informado.'); } @@ -934,7 +917,7 @@ private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProce $objProcedimentoRN = new ProcedimentoRN(); $objProcedimentoDTO = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO); - if($flgReabrir){ + if($flgReabrir) { $objEntradaReabrirProcessoAPI = new EntradaReabrirProcessoAPI(); $objEntradaReabrirProcessoAPI->setIdProcedimento($parDblIdProcedimento); $this->objSeiRN->reabrirProcesso($objEntradaReabrirProcessoAPI); @@ -945,11 +928,11 @@ private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProce } catch (Exception $e){ $this->gravarLogDebug("Processo $parDblIdProcedimento no pode ser desbloqueado", 2); } - + $numUnidadeReceptora = ModPenUtilsRN::obterUnidadeRecebimento(); $this->enviarProcedimentoUnidade($objProcedimentoDTO, $numUnidadeReceptora); - } finally { + } finally { $numUnidadeReceptora = ModPenUtilsRN::obterUnidadeRecebimento(); SessaoSEI::getInstance()->setNumIdUnidadeAtual($numUnidadeReceptora); } @@ -957,7 +940,7 @@ private function atualizarProcedimento($parDblIdProcedimento, $objMetadadosProce $this->registrarAndamentoRecebimentoProcesso($objProcedimentoDTO, $objMetadadosProcedimento); //Cadastro das atividades para quando o destinatrio desviado pelo receptor (!3!) - if ($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) { + if (isset($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) && !empty($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura)) { $this->gerarAndamentoUnidadeReceptora($parDblIdProcedimento); } @@ -995,7 +978,7 @@ private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) $objAtributoAndamentoDTO->setStrValor('Processo remetido para a unidade ' . $objUnidadeDTO->getStrDescricao()); $objAtributoAndamentoDTO->setStrIdOrigem($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); - $arrObjAtributoAndamentoDTO = array($objAtributoAndamentoDTO); + $arrObjAtributoAndamentoDTO = [$objAtributoAndamentoDTO]; $objAtividadeDTO = new AtividadeDTO(); $objAtividadeDTO->setDblIdProtocolo($parNumIdProcedimento); @@ -1013,13 +996,9 @@ private function gerarAndamentoUnidadeReceptora($parNumIdProcedimento) private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) { - if(!isset($objMetadadosProcedimento)){ + if(!isset($objMetadadosProcedimento)) { throw new InfraException('Parmetro $objMetadadosProcedimento no informado.'); } - - //TODO: Usar dados do destinatrio em outro mtodo especfico para envio - // Dados do procedimento enviados pelos rgo externo integrado ao PEN - $objRemetente = $objMetadadosProcedimento->metadados->remetente; $objDestinatario = $objMetadadosProcedimento->metadados->destinatario; //Atribuio de dados do protocolo @@ -1029,7 +1008,7 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $objProtocoloDTO->setStrDescricao(mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($parObjProtocolo->descricao, 100), 'ISO-8859-1', 'UTF-8')); $objProtocoloDTO->setStrStaNivelAcessoLocal($this->obterNivelSigiloSEI($parObjProtocolo->nivelDeSigilo)); - if($this->obterNivelSigiloSEI($parObjProtocolo->nivelDeSigilo) == ProtocoloRN::$NA_RESTRITO){ + if($this->obterNivelSigiloSEI($parObjProtocolo->nivelDeSigilo) == ProtocoloRN::$NA_RESTRITO) { $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); $numIdHipoteseLegalPadrao = $this->objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); @@ -1051,13 +1030,13 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $strProtocoloFormatado = ($parObjProtocolo->staTipoProtocolo == ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_PROCESSO) ? $parObjProtocolo->protocolo : null; $objProtocoloDTO->setStrProtocoloFormatado(mb_convert_encoding($strProtocoloFormatado, 'ISO-8859-1', 'UTF-8')); $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); - $objProtocoloDTO->setArrObjAnexoDTO(array()); - $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array()); - $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array()); - $this->atribuirParticipantes($objProtocoloDTO, $parObjProtocolo->interessado); + $objProtocoloDTO->setArrObjAnexoDTO([]); + $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO([]); + $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO([]); + $this->atribuirParticipantes($objProtocoloDTO, $parObjProtocolo->interessados); $strDescricao = ""; - if(isset($parObjProtocolo->processoDeNegocio)){ + if(isset($parObjProtocolo->processoDeNegocio)) { $strDescricao = sprintf('Tipo de processo no rgo de origem: %s', mb_convert_encoding($parObjProtocolo->processoDeNegocio, 'ISO-8859-1', 'UTF-8')).PHP_EOL; $strDescricao .= $parObjProtocolo->observacao; } @@ -1078,7 +1057,7 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $objObservacaoDTO->setStrDescricao($strDescricao); } - $objProtocoloDTO->setArrObjObservacaoDTO(array($objObservacaoDTO)); + $objProtocoloDTO->setArrObjObservacaoDTO([$objObservacaoDTO]); //Atribuio de dados do procedimento $strProcessoNegocio = mb_convert_encoding($parObjProtocolo->processoDeNegocio, 'ISO-8859-1', 'UTF-8'); @@ -1089,17 +1068,17 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $objProcedimentoDTO->setDtaGeracaoProtocolo($this->objProcessoEletronicoRN->converterDataSEI($parObjProtocolo->dataHoraDeProducao)); $objProcedimentoDTO->setStrProtocoloProcedimentoFormatado(mb_convert_encoding($parObjProtocolo->protocolo, 'ISO-8859-1', 'UTF-8')); $objProcedimentoDTO->setStrSinGerarPendencia('S'); - $objProcedimentoDTO->setArrObjDocumentoDTO(array()); + $objProcedimentoDTO->setArrObjDocumentoDTO([]); $numIdTipoProcedimento = $this->objPenParametroRN->getParametro('PEN_TIPO_PROCESSO_EXTERNO'); $remetente = $objMetadadosProcedimento->metadados->remetente; $destinatario = $objMetadadosProcedimento->metadados->destinatario; $alterouTipoProcesso = $this->atribuirTipoProcedimento( - $objProcedimentoDTO, - $remetente, - $destinatario, - $numIdTipoProcedimento, - $strProcessoNegocio + $objProcedimentoDTO, + $remetente, + $destinatario, + $numIdTipoProcedimento, + $strProcessoNegocio ); // Obtm cdigo da unidade atravs de mapeamento entre SEI e Barramento @@ -1121,7 +1100,7 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) // Verifica se o protocolo do tipo documento avulso, se for gera um novo nmero de protocolo if($parObjProtocolo->staTipoProtocolo == ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_DOCUMENTO_AVULSO) { - $strNumProtocoloDocumentoAvulso = $this->gerarNumeroProtocoloDocumentoAvulso($objUnidadeDTO, $this->objPenParametroRN); + $strNumProtocoloDocumentoAvulso = $this->gerarNumeroProtocoloDocumentoAvulso($objUnidadeDTO); $objProcedimentoDTO->getObjProtocoloDTO()->setStrProtocoloFormatado($strNumProtocoloDocumentoAvulso); } @@ -1130,7 +1109,7 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) $objProcedimentoDTOGerado = $objProcedimentoRN->gerarRN0156($objProcedimentoDTO); if ($alterouTipoProcesso) { - $this->atribuirTipoProcedimentoRelacinado($objProcedimentoDTO->getNumIdTipoProcedimento(), $objProcedimentoDTOGerado->getDblIdProcedimento(), $strProcessoNegocio); + $this->atribuirTipoProcedimentoRelacinado($objProcedimentoDTO->getNumIdTipoProcedimento(), $objProcedimentoDTOGerado->getDblIdProcedimento(), $strProcessoNegocio); } $objProcedimentoDTO->setDblIdProcedimento($objProcedimentoDTOGerado->getDblIdProcedimento()); @@ -1152,39 +1131,40 @@ private function gerarProcedimento($objMetadadosProcedimento, $parObjProtocolo) return $objProcedimentoDTO; } - /** - * Consultar protocolo existente - * - * @param \stdClass $parObjProtocolo - * @return void - * @throws InfraException - */ + /** + * Consultar protocolo existente + * + * @param \stdClass $parObjProtocolo + * @return void + * @throws InfraException + */ public function consultarProtocoloExistente($parObjProtocolo) - { - $objProtocoloDTO = new ProtocoloDTO(); - $objProtocoloDTO->retDblIdProtocolo(); - $objProtocoloDTO->setStrProtocoloFormatado($parObjProtocolo->protocolo); + { + $objProtocoloDTO = new ProtocoloDTO(); + $objProtocoloDTO->retDblIdProtocolo(); + $objProtocoloDTO->setStrProtocoloFormatado($parObjProtocolo->protocolo); - $objProcedimentoBD = new ProcedimentoBD($this->getObjInfraIBanco()); - $arrayObjProtocoloDTO = $objProcedimentoBD->contar($objProtocoloDTO); + $objProcedimentoBD = new ProcedimentoBD($this->getObjInfraIBanco()); + $arrayObjProtocoloDTO = $objProcedimentoBD->contar($objProtocoloDTO); if ($arrayObjProtocoloDTO > 0) { - $strDescricao = sprintf( - 'Um processo com o nmero de protocolo %s j existe no sistema de destino. ' - . 'OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro.', - mb_convert_encoding($parObjProtocolo->protocolo, 'ISO-8859-1', 'UTF-8') - ).PHP_EOL; - throw new InfraException($strDescricao); + $strDescricao = sprintf( + 'Um processo com o nmero de protocolo %s j existe no sistema de destino. ' + . 'OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro.', + mb_convert_encoding($parObjProtocolo->protocolo, 'ISO-8859-1', 'UTF-8') + ).PHP_EOL; + throw new InfraException($strDescricao); } } /** - * Gera o nmero de protocolo para Documento avulso - * @param $parObjUnidadeDTO - * @param $parObjPenParametroRN - * @return mixed - * @throws InfraException - */ - private function gerarNumeroProtocoloDocumentoAvulso($parObjUnidadeDTO, $parObjPenParametroRN) + * Gera o nmero de protocolo para Documento avulso + * + * @param $parObjUnidadeDTO + * @param $parObjPenParametroRN + * @return mixed + * @throws InfraException + */ + private function gerarNumeroProtocoloDocumentoAvulso($parObjUnidadeDTO) { try{ // Alterado contexto de unidade atual para a unidade de destino do processo para que o ncleo do SEI possa @@ -1206,11 +1186,11 @@ private function alterarMetadadosProcedimento($parNumIdProcedimento, $parObjMeta $objProtocoloDTO->setDblIdProtocolo($parNumIdProcedimento); $objProtocoloDTO->setStrStaNivelAcessoLocal($this->obterNivelSigiloSEI($parObjMetadadoProcedimento->nivelDeSigilo)); - if($parObjMetadadoProcedimento->hipoteseLegal && $parObjMetadadoProcedimento->hipoteseLegal->identificacao){ + if($parObjMetadadoProcedimento->hipoteseLegal && $parObjMetadadoProcedimento->hipoteseLegal->identificacao) { $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoProcedimento->hipoteseLegal->identificacao)); - if($this->obterNivelSigiloSEI($parObjMetadadoProcedimento->hipoteseLegal->identificacao) == ProtocoloRN::$NA_RESTRITO){ + if($this->obterNivelSigiloSEI($parObjMetadadoProcedimento->hipoteseLegal->identificacao) == ProtocoloRN::$NA_RESTRITO) { $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); $numIdHipoteseLegalPadrao = $this->objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); @@ -1231,40 +1211,27 @@ private function alterarMetadadosProcedimento($parNumIdProcedimento, $parObjMeta $this->objProtocoloRN->alterarRN0203($objProtocoloDTO); } - private function alterarMetadadosDocumento($parNumIdProcedimento, $parNumIdDocumento, $parObjMetadadoDocumento) + private function alterarMetadadosDocumento($parNumIdDocumento, $parObjMetadadoDocumento) { //Realiza a alterao dos metadados do documento(Por hora, apenas do nvel de sigilo e hiptese legal) $objProtocoloDTO = new ProtocoloDTO(); $objProtocoloDTO->setDblIdProtocolo($parNumIdDocumento); $objProtocoloDTO->setStrStaNivelAcessoLocal($this->obterNivelSigiloSEI($parObjMetadadoDocumento->nivelDeSigilo)); - if($parObjMetadadoDocumento->hipoteseLegal && $parObjMetadadoDocumento->hipoteseLegal->identificacao){ + if($parObjMetadadoDocumento->hipoteseLegal && $parObjMetadadoDocumento->hipoteseLegal->identificacao) { $objProtocoloDTO->setNumIdHipoteseLegal($this->obterHipoteseLegalSEI($parObjMetadadoDocumento->hipoteseLegal->identificacao)); } $this->objProtocoloRN->alterarRN0203($objProtocoloDTO); } - - private function removerAndamentosProcedimento($parObjProtocoloDTO) - { - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeDTO->setDblIdProtocolo($parObjProtocoloDTO->getDblIdProcedimento()); - $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_GERACAO_PROCEDIMENTO); - - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->excluirRN0034($objAtividadeRN->listarRN0036($objAtividadeDTO)); - } - private function registrarAndamentoRecebimentoProcesso(ProcedimentoDTO $objProcedimentoDTO, $parObjMetadadosProcedimento) { //Processo recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@ $objRemetente = $parObjMetadadosProcedimento->metadados->remetente; - $objProcesso = $parObjMetadadosProcedimento->metadados->processo; $objProtocolo = ProcessoEletronicoRN::obterProtocoloDosMetadados($parObjMetadadosProcedimento); - $arrObjAtributoAndamentoDTO = array(); + $arrObjAtributoAndamentoDTO = []; //TODO: Otimizar cdigo. Pesquisar 1 nico elemento no barramento de servios $objRepositorioDTO = $this->objProcessoEletronicoRN->consultarRepositoriosDeEstruturas( @@ -1312,16 +1279,14 @@ private function registrarAndamentoRecebimentoProcesso(ProcedimentoDTO $objProce $objAtributoAndamentoDTO->setStrIdOrigem($objUnidadesDestinoDTO->getNumIdUnidade()); $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; } + $nome=$objEstrutura->nome; + $numeroDeIdentificacaoDaEstrutura=$objEstrutura->numeroDeIdentificacaoDaEstrutura; - $dados=ProcessoEletronicoINT::formatarHierarquia($objEstrutura); - $nome=$dados['nome']; - $objNivel=$dados['objNivel']; - - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('ENTIDADE_ORIGEM_HIRARQUIA'); - $objAtributoAndamentoDTO->setStrValor($nome); - $objAtributoAndamentoDTO->setStrIdOrigem($objNivel->numeroDeIdentificacaoDaEstrutura); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('ENTIDADE_ORIGEM_HIRARQUIA'); + $objAtributoAndamentoDTO->setStrValor($nome); + $objAtributoAndamentoDTO->setStrIdOrigem($numeroDeIdentificacaoDaEstrutura); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; $objAtividadeDTO = new AtividadeDTO(); @@ -1343,45 +1308,15 @@ private function registrarAndamentoRecebimentoProcesso(ProcedimentoDTO $objProce } - // Avaliar a necessidade de registrar os dados do remetente como participante do processo - private function atribuirRemetente(ProtocoloDTO $objProtocoloDTO, $objRemetente) - { - $arrObjParticipantesDTO = array(); - if($objProtocoloDTO->isSetArrObjParticipanteDTO()) { - $arrObjParticipantesDTO = $objProtocoloDTO->getArrObjParticipanteDTO(); - } - - //Obteno de detalhes do remetente na infraestrutura do PEN - $objEstruturaDTO = $this->objProcessoEletronicoRN->consultarEstrutura( - $objRemetente->identificacaoDoRepositorioDeEstruturas, - $objRemetente->numeroDeIdentificacaoDaEstrutura - ); - - if(!empty($objEstruturaDTO)) { - $objParticipanteDTO = new ParticipanteDTO(); - $objParticipanteDTO->setStrSiglaContato($objEstruturaDTO->getStrSigla()); - $objParticipanteDTO->setStrNomeContato($objEstruturaDTO->getStrNome()); - $objParticipanteDTO->setStrStaParticipacao(ParticipanteRN::$TP_REMETENTE); - $objParticipanteDTO->setNumSequencia(0); - $arrObjParticipantesDTO[] = $objParticipanteDTO; - - $arrObjParticipantesDTO = InfraArray::distinctArrInfraDTO($arrObjParticipantesDTO, 'NomeContato'); - $arrObjParticipantesDTO = $this->prepararParticipantes($arrObjParticipantesDTO); - } - - $objProtocoloDTO->setArrObjParticipanteDTO($arrObjParticipantesDTO); - } - - private function atribuirParticipantes(ProtocoloDTO $objProtocoloDTO, $arrObjInteressados) { - $arrObjParticipantesDTO = array(); + $arrObjParticipantesDTO = []; if($objProtocoloDTO->isSetArrObjParticipanteDTO()) { $arrObjParticipantesDTO = $objProtocoloDTO->getArrObjParticipanteDTO(); } if (!is_array($arrObjInteressados)) { - $arrObjInteressados = array($arrObjInteressados); + $arrObjInteressados = (array) $arrObjInteressados; } for($i=0; $i < count($arrObjInteressados); $i++){ @@ -1400,10 +1335,11 @@ private function atribuirParticipantes(ProtocoloDTO $objProtocoloDTO, $arrObjInt } - private function obterTipoProcessoPadrao($numIdTipoProcedimento) { + private function obterTipoProcessoPadrao($numIdTipoProcedimento, $strTipoProcedimento) + { - if(!isset($numIdTipoProcedimento)){ - throw new InfraException('Parmetro $numIdTipoProcedimento no informado.'); + if(!isset($numIdTipoProcedimento)) { + throw new InfraException("Mdulo do Tramita: O Tipo de Processo '{$strTipoProcedimento}' no existe no sistema de destino. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro"); } $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); @@ -1412,106 +1348,105 @@ private function obterTipoProcessoPadrao($numIdTipoProcedimento) { $objTipoProcedimentoDTO->setNumIdTipoProcedimento($numIdTipoProcedimento); $objTipoProcedimentoRN = new TipoProcedimentoRN(); - $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); - return $objTipoProcedimentoDTO; + return $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); } - /** - * Busca tipo de processo pelo nome, considerando as configuraes de restrio de uso para a unidade atual - * - * Esta informao utilizada para se criar um processo do mesmo tipo daquele enviado pelo rgo de origem, utilizando - * o nome do processo de negcio para fazer a devida correspondncia de tipos. - * - * Tambm verificado se o tipo de processo localizado possui restries de criao para a unidade atual. Caso exista, - * o tipo de processo padro configurado no mdulo dever ser utilizado. - * - * @param str $strNomeTipoProcesso - * @return TipoProcedimentoDTO - */ - private function obterTipoProcessoPeloNomeOrgaoUnidade($strNomeTipoProcesso, $numIdOrgao, $numIdUnidade){ - - if(empty($strNomeTipoProcesso)){ + /** + * Busca tipo de processo pelo nome, considerando as configuraes de restrio de uso para a unidade atual + * + * Esta informao utilizada para se criar um processo do mesmo tipo daquele enviado pelo rgo de origem, utilizando + * o nome do processo de negcio para fazer a devida correspondncia de tipos. + * + * Tambm verificado se o tipo de processo localizado possui restries de criao para a unidade atual. Caso exista, + * o tipo de processo padro configurado no mdulo dever ser utilizado. + * + * @param str $strNomeTipoProcesso + * @return TipoProcedimentoDTO + */ + private function obterTipoProcessoPeloNomeOrgaoUnidade($strNomeTipoProcesso, $numIdOrgao, $numIdUnidade) + { + + if(empty($strNomeTipoProcesso)) { throw new InfraException('Parmetro $strNomeTipoProcesso no informado.'); } - $objTipoProcedimentoDTOFiltro = new TipoProcedimentoDTO(); - $objTipoProcedimentoDTOFiltro->retNumIdTipoProcedimento(); - $objTipoProcedimentoDTOFiltro->retStrNome(); - $objTipoProcedimentoDTOFiltro->setStrNome($strNomeTipoProcesso); + $objTipoProcedimentoDTOFiltro = new TipoProcedimentoDTO(); + $objTipoProcedimentoDTOFiltro->retNumIdTipoProcedimento(); + $objTipoProcedimentoDTOFiltro->retStrNome(); + $objTipoProcedimentoDTOFiltro->setStrNome($strNomeTipoProcesso); - $objTipoProcedimentoRN = new TipoProcedimentoRN(); - $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTOFiltro); + $objTipoProcedimentoRN = new TipoProcedimentoRN(); + $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTOFiltro); - // Verifica se tipo de procedimento possui restries para utilizao no rgo e unidade atual - if(!is_null($objTipoProcedimentoDTO)){ - $strCache = 'SEI_TPR_'.$objTipoProcedimentoDTO->getNumIdTipoProcedimento(); - $arrCache = CacheSEI::getInstance()->getAtributo($strCache); + // Verifica se tipo de procedimento possui restries para utilizao no rgo e unidade atual + if(!is_null($objTipoProcedimentoDTO)) { + $strCache = 'SEI_TPR_'.$objTipoProcedimentoDTO->getNumIdTipoProcedimento(); + $arrCache = CacheSEI::getInstance()->getAtributo($strCache); if ($arrCache == null) { - $objTipoProcedRestricaoDTOFiltro = new TipoProcedRestricaoDTO(); - $objTipoProcedRestricaoDTOFiltro->retNumIdOrgao(); - $objTipoProcedRestricaoDTOFiltro->retNumIdUnidade(); - $objTipoProcedRestricaoDTOFiltro->setNumIdTipoProcedimento($objTipoProcedimentoDTO->getNumIdTipoProcedimento()); + $objTipoProcedRestricaoDTOFiltro = new TipoProcedRestricaoDTO(); + $objTipoProcedRestricaoDTOFiltro->retNumIdOrgao(); + $objTipoProcedRestricaoDTOFiltro->retNumIdUnidade(); + $objTipoProcedRestricaoDTOFiltro->setNumIdTipoProcedimento($objTipoProcedimentoDTO->getNumIdTipoProcedimento()); - $objTipoProcedRestricaoRN = new TipoProcedRestricaoRN(); - $arrObjTipoProcedRestricaoDTO = $objTipoProcedRestricaoRN->listar($objTipoProcedRestricaoDTOFiltro); + $objTipoProcedRestricaoRN = new TipoProcedRestricaoRN(); + $arrObjTipoProcedRestricaoDTO = $objTipoProcedRestricaoRN->listar($objTipoProcedRestricaoDTOFiltro); - $arrCache = array(); + $arrCache = []; foreach ($arrObjTipoProcedRestricaoDTO as $objTipoProcedRestricaoDTO) { $arrCache[$objTipoProcedRestricaoDTO->getNumIdOrgao()][($objTipoProcedRestricaoDTO->getNumIdUnidade() == null ? '*' : $objTipoProcedRestricaoDTO->getNumIdUnidade())] = 0; } - CacheSEI::getInstance()->setAtributo($strCache, $arrCache, CacheSEI::getInstance()->getNumTempo()); + CacheSEI::getInstance()->setAtributo($strCache, $arrCache, CacheSEI::getInstance()->getNumTempo()); } - if (InfraArray::contar($arrCache) && !isset($arrCache[$numIdUnidade]['*']) && !isset($arrCache[$numIdOrgao][$numIdUnidade])){ - return null; + if (InfraArray::contar($arrCache) && !isset($arrCache[$numIdUnidade]['*']) && !isset($arrCache[$numIdOrgao][$numIdUnidade])) { + return null; } } - return $objTipoProcedimentoDTO; + return $objTipoProcedimentoDTO; } - /** - * Atribuir tipo de procedimento - * Procura tipo de procedimento - * Procura tipo de procedimento no mapeamento entre orgo - * Procura tipo de procedimento padro - * - * @param ProcedimentoDTO $objProcedimentoDTO - * @param \stdClass $remetente - * @param \stdClass $destinatario - * @param string|int $numIdTipoProcedimento - * @param string|int $strProcessoNegocio - * @return bool - * @throws InfraException - */ + /** + * Atribuir tipo de procedimento + * Procura tipo de procedimento + * Procura tipo de procedimento no mapeamento entre orgo + * Procura tipo de procedimento padro + * + * @param \stdClass $remetente + * @param \stdClass $destinatario + * @param string|int $numIdTipoProcedimento + * @param string|int $strProcessoNegocio + * @return bool + * @throws InfraException + */ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $remetente, $destinatario, $numIdTipoProcedimento, $strProcessoNegocio) - { + { - $dblAlterouTipoProcesso = false; - if(!empty(trim($strProcessoNegocio))){ - // Verifica se existe relacionamento entre orgos - $objTipoProcedimentoDTO = $this->obterMapeamentoTipoProcesso($remetente, $destinatario, $strProcessoNegocio); + $dblAlterouTipoProcesso = false; + if(!empty(trim($strProcessoNegocio))) { + // Verifica se existe relacionamento entre orgos + $objTipoProcedimentoDTO = $this->obterMapeamentoTipoProcesso($remetente, $destinatario, $strProcessoNegocio); - if(is_null($objTipoProcedimentoDTO)){ + if(is_null($objTipoProcedimentoDTO)) { // Verifica se existe tipo de processo igual cadastrado $objTipoProcedimentoDTO = $this->obterTipoProcessoPeloNomeOrgaoUnidade( - $strProcessoNegocio, - SessaoSEI::getInstance()->getNumIdOrgaoUnidadeAtual(), - SessaoSEI::getInstance()->getNumIdUnidadeAtual() + $strProcessoNegocio, + SessaoSEI::getInstance()->getNumIdOrgaoUnidadeAtual(), + SessaoSEI::getInstance()->getNumIdUnidadeAtual() ); } else { - $dblAlterouTipoProcesso = true; + $dblAlterouTipoProcesso = true; } } - if(is_null($objTipoProcedimentoDTO)){ - // Verifica tipo de processo padro cadastrado - $dblAlterouTipoProcesso = true; - $objTipoProcedimentoDTO = $this->obterTipoProcessoPadrao($numIdTipoProcedimento); + if(is_null($objTipoProcedimentoDTO)) { + // Verifica tipo de processo padro cadastrado + $dblAlterouTipoProcesso = true; + $objTipoProcedimentoDTO = $this->obterTipoProcessoPadrao($numIdTipoProcedimento, $strProcessoNegocio); } - if (is_null($objTipoProcedimentoDTO)){ + if (is_null($objTipoProcedimentoDTO)) { throw new InfraException('Tipo de processo no encontrado.'); } @@ -1540,63 +1475,65 @@ private function atribuirTipoProcedimento(ProcedimentoDTO $objProcedimentoDTO, $ return $dblAlterouTipoProcesso; } - /** - * Verificar se tem mapeamento entre orgo - * - * @param \stdClass $remetente - * @param \stdClass $destinatario - * @param string|int $strProcessoNegocio - * @return TipoProcedimentoDTO - */ + /** + * Verificar se tem mapeamento entre orgo + * + * @param \stdClass $remetente + * @param \stdClass $destinatario + * @param string|int $strProcessoNegocio + * @return TipoProcedimentoDTO + */ public function obterMapeamentoTipoProcesso($remetente, $destinatario, $strProcessoNegocio) - { - $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); + { + $objPenOrgaoExternoDTO = new PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($remetente->numeroDeIdentificacaoDaEstrutura); - $objPenOrgaoExternoDTO->setNumIdOrgaoDestino($destinatario->numeroDeIdentificacaoDaEstrutura); - $objPenOrgaoExternoDTO->setStrAtivo('S'); + $objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($remetente->numeroDeIdentificacaoDaEstrutura); + $objPenOrgaoExternoDTO->setNumIdOrgaoDestino($destinatario->numeroDeIdentificacaoDaEstrutura); + $objPenOrgaoExternoDTO->setStrAtivo('S'); - $objPenOrgaoExternoDTO->retDblId(); + $objPenOrgaoExternoDTO->retDblId(); - $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); - $objPenOrgaoExternoDTO = $objPenOrgaoExternoRN->consultar($objPenOrgaoExternoDTO); + $objPenOrgaoExternoRN = new PenOrgaoExternoRN(); + $objPenOrgaoExternoDTO = $objPenOrgaoExternoRN->consultar($objPenOrgaoExternoDTO); if (!is_null($objPenOrgaoExternoDTO)) { - $objMapeamentoTipoProcedimentoDTO = new PenMapTipoProcedimentoDTO(); - $objMapeamentoTipoProcedimentoDTO->setNumIdMapOrgao($objPenOrgaoExternoDTO->getDblId()); - $objMapeamentoTipoProcedimentoDTO->setStrNomeTipoProcesso($strProcessoNegocio); - $objMapeamentoTipoProcedimentoDTO->setStrAtivo('S'); + $objMapeamentoTipoProcedimentoDTO = new PenMapTipoProcedimentoDTO(); + $objMapeamentoTipoProcedimentoDTO->setNumIdMapOrgao($objPenOrgaoExternoDTO->getDblId()); + $objMapeamentoTipoProcedimentoDTO->setStrNomeTipoProcesso($strProcessoNegocio); + $objMapeamentoTipoProcedimentoDTO->setStrAtivo('S'); + + $objMapeamentoTipoProcedimentoDTO->retNumIdTipoProcessoDestino(); - $objMapeamentoTipoProcedimentoDTO->retNumIdTipoProcessoDestino(); - - $objMapeamentoTipoProcedimentoRN = new PenMapTipoProcedimentoRN(); - $objMapeamentoTipoProcedimentoDTO = $objMapeamentoTipoProcedimentoRN->consultar($objMapeamentoTipoProcedimentoDTO); + $objMapeamentoTipoProcedimentoRN = new PenMapTipoProcedimentoRN(); + $objMapeamentoTipoProcedimentoDTO = $objMapeamentoTipoProcedimentoRN->consultar($objMapeamentoTipoProcedimentoDTO); if (!is_null($objMapeamentoTipoProcedimentoDTO) && !is_null($objMapeamentoTipoProcedimentoDTO->getNumIdTipoProcessoDestino())) { $idTipoProcessoDestino = $objMapeamentoTipoProcedimentoDTO->getNumIdTipoProcessoDestino(); - return $this->obterTipoProcessoPadrao($idTipoProcessoDestino); + return $this->obterTipoProcessoPadrao($idTipoProcessoDestino, $strProcessoNegocio); } } - return null; + return null; } private function atribuirDadosUnidade(ProcedimentoDTO $objProcedimentoDTO, $objDestinatario) { - if(!isset($objDestinatario)){ + if(!isset($objDestinatario)) { throw new InfraException('Parmetro $objDestinatario no informado.'); } $objUnidadeDTOEnvio = $this->obterUnidadeMapeada($objDestinatario->numeroDeIdentificacaoDaEstrutura); - if(!isset($objUnidadeDTOEnvio)){ - throw new InfraException('Unidade de destino no pode ser encontrada. Repositrio: ' . $objDestinatario->identificacaoDoRepositorioDeEstruturas . - ', Nmero: ' . $objDestinatario->numeroDeIdentificacaoDaEstrutura); + if(!isset($objUnidadeDTOEnvio)) { + throw new InfraException( + 'Unidade de destino no pode ser encontrada. Repositrio: ' . $objDestinatario->identificacaoDoRepositorioDeEstruturas . + ', Nmero: ' . $objDestinatario->numeroDeIdentificacaoDaEstrutura + ); } - $arrObjUnidadeDTO = array(); + $arrObjUnidadeDTO = []; $arrObjUnidadeDTO[] = $objUnidadeDTOEnvio; $objProcedimentoDTO->setArrObjUnidadeDTO($arrObjUnidadeDTO); @@ -1640,11 +1577,11 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o $objProcessoEletronicoDTO = new ProcessoEletronicoDTO(); $objProcessoEletronicoDTO->setStrNumeroRegistro($parStrNumeroRegistro); $objUltimoTramiteDTO = $this->objProcessoEletronicoRN->consultarUltimoTramite($objProcessoEletronicoDTO); - if(!is_null($objUltimoTramiteDTO)){ + if(!is_null($objUltimoTramiteDTO)) { $objComponenteDigitalDTO->setNumIdTramite($objUltimoTramiteDTO->getNumIdTramite()); } - if(!isset($parDblIdProcedimentoAnexado)){ + if(!isset($parDblIdProcedimentoAnexado)) { $objComponenteDigitalDTO->setDblIdProcedimento($parObjProcedimentoDTO->getDblIdProcedimento()); $objComponenteDigitalDTO->setOrdNumOrdemDocumento(InfraDTO::$TIPO_ORDENACAO_ASC); $objComponenteDigitalDTO->setDblIdProcedimentoAnexado(null); @@ -1659,46 +1596,43 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o $arrObjComponenteDigitalDTO = $objComponenteDigitalBD->listar($objComponenteDigitalDTO); $arrObjComponenteDigitalDTOIndexado = InfraArray::indexarArrInfraDTO($arrObjComponenteDigitalDTO, "OrdemDocumento", true); - $arrObjDocumentoDTO = array(); - $arrDocumentosExistentesPorHash = array(); - $arrIdDocumentosRetirados = array(); + $arrObjDocumentoDTO = []; + $arrDocumentosExistentesPorHash = []; + $arrIdDocumentosRetirados = []; $count = count($arrObjDocumentos); $this->gravarLogDebug("Quantidade de documentos para recebimento: $count", 2); - foreach($arrObjDocumentos as $objDocumento){ + foreach($arrObjDocumentos as $objDocumento) { + if(!isset($objDocumento->staTipoProtocolo) || $bolDocumentoAvulso) { // Definio da ordem do documento para avaliao do posicionamento $numOrdemDocumento = ($bolEhProcedimentoAnexado && !$bolEhProcedimentoAnexadoAnteriormente) ? $objDocumento->ordemAjustada : $objDocumento->ordem; $numOrdemDocumento = $numOrdemDocumento ?: $objDocumento->ordem; - if(array_key_exists($numOrdemDocumento, $arrObjComponenteDigitalDTOIndexado)){ - $arrObjComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$numOrdemDocumento]; - $objComponenteDigitalDTO = count($arrObjComponenteDigitalDTO) > 0 ? $arrObjComponenteDigitalDTO[0] : $arrObjComponenteDigitalDTO; + if(array_key_exists($numOrdemDocumento, $arrObjComponenteDigitalDTOIndexado)) { + $arrObjComponenteDigitalDTO = $arrObjComponenteDigitalDTOIndexado[$numOrdemDocumento]; + $objComponenteDigitalDTO = count($arrObjComponenteDigitalDTO) > 0 ? $arrObjComponenteDigitalDTO[0] : $arrObjComponenteDigitalDTO; - $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdProcedimento(), $objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); - $objDocumento->idDocumentoSEI = $objComponenteDigitalDTO->getDblIdDocumento(); - $objDocumento->idProcedimentoSEI = $objComponenteDigitalDTO->getDblIdProcedimento(); - $objDocumento->idProcedimentoAnexadoSEI = $objComponenteDigitalDTO->getDblIdProcedimentoAnexado(); - $objDocumento->protocoloProcedimentoSEI = $objComponenteDigitalDTO->getStrProtocoloProcedimentoAnexado(); + $this->alterarMetadadosDocumento($objComponenteDigitalDTO->getDblIdDocumento(), $objDocumento); + $objDocumento->idDocumentoSEI = $objComponenteDigitalDTO->getDblIdDocumento(); + $objDocumento->idProcedimentoSEI = $objComponenteDigitalDTO->getDblIdProcedimento(); + $objDocumento->idProcedimentoAnexadoSEI = $objComponenteDigitalDTO->getDblIdProcedimentoAnexado(); + $objDocumento->protocoloProcedimentoSEI = $objComponenteDigitalDTO->getStrProtocoloProcedimentoAnexado(); foreach ($arrObjComponenteDigitalDTO as $objComponenteDTO) { - $arrDocumentosExistentesPorHash[$objComponenteDTO->getStrHashConteudo()] = array( - "IdDocumento" => $objComponenteDTO->getDblIdDocumento(), - "ComponenteDigitalDTO" => $objComponenteDTO, - "MultiplosComponentes" => count($arrObjComponenteDigitalDTO) > 1 - ); + $arrDocumentosExistentesPorHash[$objComponenteDTO->getStrHashConteudo()] = ["IdDocumento" => $objComponenteDTO->getDblIdDocumento(), "ComponenteDigitalDTO" => $objComponenteDTO, "MultiplosComponentes" => count($arrObjComponenteDigitalDTO) > 1]; } if(isset($objDocumento->retirado) && $objDocumento->retirado === true) { - $arrIdDocumentosRetirados[] = $objDocumento->idDocumentoSEI; + $arrIdDocumentosRetirados[] = $objDocumento->idDocumentoSEI; } - continue; + continue; } //Validao dos dados dos documentos - if(!isset($objDocumento->especie)){ + if(!isset($objDocumento->especie)) { throw new InfraException('Espcie do documento ['.$objDocumento->descricao.'] no informada.'); } @@ -1708,7 +1642,7 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o $objSerieDTO = $this->obterSerieMapeada($objDocumento); - if ($objSerieDTO==null){ + if ($objSerieDTO==null) { throw new InfraException('Tipo de documento [Espcie '.$objDocumento->especie->codigo.'] no encontrado.'); } @@ -1725,16 +1659,16 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o $objProcedimentoDTO2->retNumIdTipoProcedimento(); $objProcedimentoDTO2->retStrNomeTipoProcedimento(); $objProcedimentoDTO2->adicionarCriterio( - array('IdProcedimento','ProtocoloProcedimentoFormatado','ProtocoloProcedimentoFormatadoPesquisa'), - array(InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL,InfraDTO::$OPER_IGUAL), - array($objDocumentoDTO->getDblIdProcedimento(), $objDocumentoDTO->getDblIdProcedimento(), $objDocumentoDTO->getDblIdProcedimento()), - array(InfraDTO::$OPER_LOGICO_OR,InfraDTO::$OPER_LOGICO_OR) + ['IdProcedimento', 'ProtocoloProcedimentoFormatado', 'ProtocoloProcedimentoFormatadoPesquisa'], + [InfraDTO::$OPER_IGUAL, InfraDTO::$OPER_IGUAL, InfraDTO::$OPER_IGUAL], + [$objDocumentoDTO->getDblIdProcedimento(), $objDocumentoDTO->getDblIdProcedimento(), $objDocumentoDTO->getDblIdProcedimento()], + [InfraDTO::$OPER_LOGICO_OR, InfraDTO::$OPER_LOGICO_OR] ); $objProcedimentoRN = new ProcedimentoRN(); $objProcedimentoDTO2 = $objProcedimentoRN->consultarRN0201($objProcedimentoDTO2); - if ($objProcedimentoDTO2==null){ + if ($objProcedimentoDTO2==null) { throw new InfraException('Processo ['.$objDocumentoDTO->getDblIdProcedimento().'] no encontrado.'); } @@ -1754,9 +1688,9 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o $objProtocoloDTO->setDblIdProtocolo(null); $objProtocoloDTO->setStrStaProtocolo(ProtocoloRN::$TP_DOCUMENTO_RECEBIDO); - if($objDocumento->descricao != '***'){ - $objProtocoloDTO->setStrDescricao(mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objDocumento->descricao, 100), 'ISO-8859-1', 'UTF-8')); - $objDocumentoDTO->setStrNumero(mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objDocumento->descricao, 50), 'ISO-8859-1', 'UTF-8')); + if($objDocumento->descricao != '***') { + $objProtocoloDTO->setStrDescricao(mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objDocumento->descricao, 100), 'ISO-8859-1', 'UTF-8')); + $objDocumentoDTO->setStrNumero(mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($objDocumento->descricao, 50), 'ISO-8859-1', 'UTF-8')); }else{ $objProtocoloDTO->setStrDescricao(""); $objDocumentoDTO->setStrNumero(""); @@ -1765,10 +1699,10 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o //TODO: Avaliar regra de formao do nmero do documento $objProtocoloDTO->setStrStaNivelAcessoLocal($this->obterNivelSigiloSEI($objDocumento->nivelDeSigilo)); $objProtocoloDTO->setDtaGeracao($this->objProcessoEletronicoRN->converterDataSEI($objDocumento->dataHoraDeProducao)); - $objProtocoloDTO->setArrObjAnexoDTO(array()); - $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO(array()); - $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO(array()); - $objProtocoloDTO->setArrObjParticipanteDTO(array()); + $objProtocoloDTO->setArrObjAnexoDTO([]); + $objProtocoloDTO->setArrObjRelProtocoloAssuntoDTO([]); + $objProtocoloDTO->setArrObjRelProtocoloProtocoloDTO([]); + $objProtocoloDTO->setArrObjParticipanteDTO([]); //TODO: Analisar se o modelo de dados do PEN possui destinatrios especficos para os documentos //caso no possua, analisar o repasse de tais informaes via parmetros adicionais @@ -1805,7 +1739,8 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); if (InfraString::isBolVazia($objDocumentoDTO->getObjProtocoloDTO()->getStrStaNivelAcessoLocal()) - || $objDocumentoDTO->getObjProtocoloDTO()->getStrStaNivelAcessoLocal() == $objTipoProcedimentoDTO->getStrStaNivelAcessoSugestao()) { + || $objDocumentoDTO->getObjProtocoloDTO()->getStrStaNivelAcessoLocal() == $objTipoProcedimentoDTO->getStrStaNivelAcessoSugestao() + ) { $objDocumentoDTO->getObjProtocoloDTO()->setStrStaNivelAcessoLocal($objTipoProcedimentoDTO->getStrStaNivelAcessoSugestao()); $objDocumentoDTO->getObjProtocoloDTO()->setStrStaGrauSigilo($objTipoProcedimentoDTO->getStrStaGrauSigiloSugestao()); $objDocumentoDTO->getObjProtocoloDTO()->setNumIdHipoteseLegal($objTipoProcedimentoDTO->getNumIdHipoteseLegalSugestao()); @@ -1828,42 +1763,43 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o } } - $arrObjParticipantesDTO = InfraArray::distinctArrInfraDTO($objDocumentoDTO->getObjProtocoloDTO()->getArrObjParticipanteDTO(), 'NomeContato'); - $arrObjParticipantesDTO = $this->prepararParticipantes($arrObjParticipantesDTO); - $objDocumentoDTO->getObjProtocoloDTO()->setArrObjParticipanteDTO($arrObjParticipantesDTO); - - $objDocumentoRN = new DocumentoRN(); - $objDocumentoDTO->setStrConteudo(null); - $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objDocumentoDTO->setStrSinBloqueado('N'); - - //TODO: Fazer a atribuio dos componentes digitais do processo a partir desse ponto - $this->atribuirComponentesDigitais( - $objDocumentoDTO, - $objDocumento->componenteDigital, - $arrDocumentosExistentesPorHash, - $parObjMetadadosProcedimento->arrHashComponenteBaixados); + $arrObjParticipantesDTO = InfraArray::distinctArrInfraDTO($objDocumentoDTO->getObjProtocoloDTO()->getArrObjParticipanteDTO(), 'NomeContato'); + $arrObjParticipantesDTO = $this->prepararParticipantes($arrObjParticipantesDTO); + $objDocumentoDTO->getObjProtocoloDTO()->setArrObjParticipanteDTO($arrObjParticipantesDTO); + + $objDocumentoRN = new DocumentoRN(); + $objDocumentoDTO->setStrConteudo(null); + $objDocumentoDTO->getObjProtocoloDTO()->setNumIdUnidadeGeradora(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objDocumentoDTO->setStrSinBloqueado('N'); + + //TODO: Fazer a atribuio dos componentes digitais do processo a partir desse ponto + $this->atribuirComponentesDigitais( + $objDocumentoDTO, + $objDocumento->componentesDigitais, + $arrDocumentosExistentesPorHash, + $parObjMetadadosProcedimento->arrHashComponenteBaixados + ); - $objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO); + $objDocumentoDTOGerado = $objDocumentoRN->cadastrarRN0003($objDocumentoDTO); - $objAtividadeDTOVisualizacao = new AtividadeDTO(); - $objAtividadeDTOVisualizacao->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); - $objAtividadeDTOVisualizacao->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTOVisualizacao = new AtividadeDTO(); + $objAtividadeDTOVisualizacao->setDblIdProtocolo($objDocumentoDTO->getDblIdProcedimento()); + $objAtividadeDTOVisualizacao->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - if (!$bolReabriuAutomaticamente){ - $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_ATENCAO); + if (!$bolReabriuAutomaticamente) { + $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_ATENCAO); }else{ $objAtividadeDTOVisualizacao->setNumTipoVisualizacao(AtividadeRN::$TV_NAO_VISUALIZADO | AtividadeRN::$TV_ATENCAO); } - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->atualizarVisualizacaoUnidade($objAtividadeDTOVisualizacao); + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->atualizarVisualizacaoUnidade($objAtividadeDTOVisualizacao); - $objDocumento->idDocumentoSEI = $objDocumentoDTOGerado->getDblIdDocumento(); - $objDocumento->idProcedimentoSEI = $objDocumentoDTO->getDblIdProcedimento(); - $objDocumento->protocoloProcedimentoSEI = $objProcedimentoDTO2->getStrProtocoloProcedimentoFormatado(); + $objDocumento->idDocumentoSEI = $objDocumentoDTOGerado->getDblIdDocumento(); + $objDocumento->idProcedimentoSEI = $objDocumentoDTO->getDblIdProcedimento(); + $objDocumento->protocoloProcedimentoSEI = $objProcedimentoDTO2->getStrProtocoloProcedimentoFormatado(); - if(!$bolDocumentoAvulso && $objProcessoPrincipal->protocolo != $parObjProtocolo->protocolo){ + if(!$bolDocumentoAvulso && $objProcessoPrincipal->protocolo != $parObjProtocolo->protocolo) { $objDocumento->protocoloProcedimentoSEI = $parObjProtocolo->protocolo; $objDocumento->idProcedimentoAnexadoSEI = $objDocumentoDTO->getDblIdProcedimento(); } @@ -1887,7 +1823,7 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o // Verificar se procedimento j existia no sistema como um processo anexado vinculado ao NRE atual $strNumeroRegistroPrincipal = $parObjMetadadosProcedimento->metadados->NRE; $objProcedimentoDTOAnexado = $this->consultarProcedimentoAnexadoExistente($strNumeroRegistroPrincipal, $objProcessoAnexado->protocolo); - if(isset($objProcedimentoDTOAnexado)){ + if(isset($objProcedimentoDTOAnexado)) { // Verifica se este processo j existia como anexo do processo que est sendo recebido, fazendo as devidas atualizaes se necessrio $dblIdProcedimentoAnexado = $objProcedimentoDTOAnexado->getDblIdProcedimento(); $objProcessoAnexado->idProcedimentoSEI = $objProcedimentoDTOAnexado->getDblIdProcedimento(); @@ -1895,8 +1831,8 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o } else { // Busca por um outro processo tramitado anteriormente e que agora est sendo devolvido como anexo de outro // Neste caso, o processo anterior deve ser localizado, atualizado e anexado ao principal - list($dblIdProcedimentoDTOExistente, $strNumeroRegistroAnterior) = $this->consultarProcedimentoExistente(null, $objProcessoAnexado->protocolo); - if(isset($dblIdProcedimentoDTOExistente)){ + [$dblIdProcedimentoDTOExistente, $strNumeroRegistroAnterior] = $this->consultarProcedimentoExistente(null, $objProcessoAnexado->protocolo); + if(isset($dblIdProcedimentoDTOExistente)) { $this->atualizarProcedimento($dblIdProcedimentoDTOExistente, $parObjMetadadosProcedimento, $objProcessoAnexado, $strNumeroRegistroAnterior); } else { $this->gerarProcedimento($parObjMetadadosProcedimento, $objProcessoAnexado); @@ -1912,17 +1848,18 @@ private function atribuirDocumentos($parObjProcedimentoDTO, $parObjProtocolo, $o } - private function atribuirComponentesJaExistentesNoProcesso($objDocumentoDTO, $objComponentesDigitais, $arrDocumentosExistentesPorHash, $arrHashComponenteBaixados){ - $arrObjAnexosDTO = array(); - $arrObjAnexoDTO = array(); - foreach ($objComponentesDigitais as $objComponenteDigital) { + private function atribuirComponentesJaExistentesNoProcesso($objComponentesDigitais, $arrDocumentosExistentesPorHash, $arrHashComponenteBaixados) + { + $arrObjAnexosDTO = []; + $arrObjAnexoDTO = []; + foreach ($objComponentesDigitais as $objComponenteDigital) { + $strHashComponenteDigital = ProcessoEletronicoRN::getHashFromMetaDados($objComponenteDigital->hash); $bolComponenteDigitalBaixado = in_array($strHashComponenteDigital, $arrHashComponenteBaixados); $bolComponenteDigitalExistente = array_key_exists($strHashComponenteDigital, $arrDocumentosExistentesPorHash); - if(!$bolComponenteDigitalBaixado && $bolComponenteDigitalExistente){ + if(!$bolComponenteDigitalBaixado && $bolComponenteDigitalExistente) { $arrDocumentoExistente = $arrDocumentosExistentesPorHash[$strHashComponenteDigital]; $arr = $this->clonarComponentesJaExistentesNoProcesso( - $objDocumentoDTO, $arrDocumentoExistente["IdDocumento"], $arrDocumentoExistente["ComponenteDigitalDTO"], $arrDocumentoExistente["MultiplosComponentes"] @@ -1931,119 +1868,122 @@ private function atribuirComponentesJaExistentesNoProcesso($objDocumentoDTO, $ob $arrObjAnexoDTO = array_merge($arrObjAnexosDTO, $arr); } } - return $arrObjAnexoDTO; + return $arrObjAnexoDTO; } - private function clonarComponentesJaExistentesNoProcesso($objDocumentoDTO, $dblIdDocumentoReferencia, $objComponenteDigitalDTO, $bolMultiplosComponentes){ + private function clonarComponentesJaExistentesNoProcesso($dblIdDocumentoReferencia, $objComponenteDigitalDTO, $bolMultiplosComponentes) + { - $objAnexoDTO = new AnexoDTO(); - $objAnexoDTO->retNumIdAnexo(); - $objAnexoDTO->retStrNome(); - $objAnexoDTO->retNumTamanho(); - $objAnexoDTO->retDthInclusao(); - $objAnexoDTO->setDblIdProtocolo($dblIdDocumentoReferencia); + $objAnexoDTO = new AnexoDTO(); + $objAnexoDTO->retNumIdAnexo(); + $objAnexoDTO->retStrNome(); + $objAnexoDTO->retNumTamanho(); + $objAnexoDTO->retDthInclusao(); + $objAnexoDTO->setDblIdProtocolo($dblIdDocumentoReferencia); - $objAnexoRN = new AnexoRN(); - $arrObjAnexoDTO = $objAnexoRN->listarRN0218($objAnexoDTO); - if(!empty($arrObjAnexoDTO)){ + $objAnexoRN = new AnexoRN(); + $arrObjAnexoDTO = $objAnexoRN->listarRN0218($objAnexoDTO); + if(!empty($arrObjAnexoDTO)) { foreach($arrObjAnexoDTO as $objAnexoDTO){ - $strSinDuplicado = 'S'; - $strCaminhoAnexo = $objAnexoRN->obterLocalizacao($objAnexoDTO); - if($bolMultiplosComponentes){ + $strSinDuplicado = 'S'; + $strCaminhoAnexo = $objAnexoRN->obterLocalizacao($objAnexoDTO); + if($bolMultiplosComponentes) { $numOrdemComponente = $objComponenteDigitalDTO->getNumOrdem(); - list($strCaminhoAnexoTemporario, ) = ProcessoEletronicoRN::descompactarComponenteDigital($strCaminhoAnexo, $numOrdemComponente); + [$strCaminhoAnexoTemporario, ] = ProcessoEletronicoRN::descompactarComponenteDigital($strCaminhoAnexo, $numOrdemComponente); $strCaminhoAnexo = $strCaminhoAnexoTemporario; $strSinDuplicado = 'N'; } - $strNomeUpload = $objAnexoRN->gerarNomeArquivoTemporario(); - $strNomeUploadCompleto = DIR_SEI_TEMP.'/'.$strNomeUpload; - copy($strCaminhoAnexo, $strNomeUploadCompleto); - $objAnexoDTO->setNumIdAnexo($strNomeUpload); - $objAnexoDTO->setDthInclusao(InfraData::getStrDataHoraAtual()); - $objAnexoDTO->setStrNome($objComponenteDigitalDTO->getStrNome()); - $objAnexoDTO->setStrSinDuplicando($strSinDuplicado); + $strNomeUpload = $objAnexoRN->gerarNomeArquivoTemporario(); + $strNomeUploadCompleto = DIR_SEI_TEMP.'/'.$strNomeUpload; + copy($strCaminhoAnexo, $strNomeUploadCompleto); + $objAnexoDTO->setNumIdAnexo($strNomeUpload); + $objAnexoDTO->setDthInclusao(InfraData::getStrDataHoraAtual()); + $objAnexoDTO->setStrNome($objComponenteDigitalDTO->getStrNome()); + $objAnexoDTO->setStrSinDuplicando($strSinDuplicado); } } - return $arrObjAnexoDTO; + return $arrObjAnexoDTO; } /** * Cancela os documentos no processo, verificando se os mesmos j<E1> tinha sido cancelados anteriormente * - * @param array $parArrIdDocumentosCancelamento Lista de documentos que ser<E3>o cancelados + * @param array $parArrIdDocumentosCancelamento Lista de documentos que ser<E3>o cancelados * @return void */ - private function cancelarDocumentosProcesso($parDblIdProcedimento, $parArrIdDocumentosCancelamento){ + private function cancelarDocumentosProcesso($parDblIdProcedimento, $parArrIdDocumentosCancelamento) + { try{ - $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); + $numIdUnidadeAtual = SessaoSEI::getInstance()->getNumIdUnidadeAtual(); foreach($parArrIdDocumentosCancelamento as $numIdDocumento){ - $objProtocoloDTO = new ProtocoloDTO(); - $objProtocoloDTO->setDblIdProtocolo($numIdDocumento); - $objProtocoloDTO->retStrStaEstado(); - $objProtocoloDTO = $this->objProtocoloRN->consultarRN0186($objProtocoloDTO); - - // Verifica se documento est atualmente associado ao processo e no foi movido para outro - $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); - $objRelProtocoloProtocoloDTO->retNumSequencia(); - $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO); - $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($parDblIdProcedimento); - $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($numIdDocumento); - $bolDocumentoMovidoProcesso = $this->objRelProtocoloProtocoloRN->contarRN0843($objRelProtocoloProtocoloDTO) > 0; + $objProtocoloDTO = new ProtocoloDTO(); + $objProtocoloDTO->setDblIdProtocolo($numIdDocumento); + $objProtocoloDTO->retStrStaEstado(); + $objProtocoloDTO = $this->objProtocoloRN->consultarRN0186($objProtocoloDTO); - if(!$bolDocumentoMovidoProcesso && ($objProtocoloDTO->getStrStaEstado() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO)){ - $objEntradaCancelarDocumentoAPI = new EntradaCancelarDocumentoAPI(); - $objEntradaCancelarDocumentoAPI->setIdDocumento($numIdDocumento); - $objEntradaCancelarDocumentoAPI->setMotivo('Documento retirado do processo pelo remetente'); - - $objDocumentoDTO = new DocumentoDTO(); - $objDocumentoDTO->retNumIdUnidadeGeradoraProtocolo(); - $objDocumentoDTO->setDblIdDocumento($numIdDocumento); - $objDocumentoRN = new DocumentoRN(); - $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); - SessaoSEI::getInstance()->setNumIdUnidadeAtual($objDocumentoDTO->getNumIdUnidadeGeradoraProtocolo()); - //Para cancelar o documento preciso que esteja aberto o processo na unidade que ele foi gerado. - $this->abrirProcessoSeNaoAberto($parDblIdProcedimento); + // Verifica se documento est atualmente associado ao processo e no foi movido para outro + $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); + $objRelProtocoloProtocoloDTO->retNumSequencia(); + $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO); + $objRelProtocoloProtocoloDTO->setDblIdProtocolo1($parDblIdProcedimento); + $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($numIdDocumento); + $bolDocumentoMovidoProcesso = $this->objRelProtocoloProtocoloRN->contarRN0843($objRelProtocoloProtocoloDTO) > 0; + + if(!$bolDocumentoMovidoProcesso && ($objProtocoloDTO->getStrStaEstado() != ProtocoloRN::$TE_DOCUMENTO_CANCELADO)) { + $objEntradaCancelarDocumentoAPI = new EntradaCancelarDocumentoAPI(); + $objEntradaCancelarDocumentoAPI->setIdDocumento($numIdDocumento); + $objEntradaCancelarDocumentoAPI->setMotivo('Documento retirado do processo pelo remetente'); + + $objDocumentoDTO = new DocumentoDTO(); + $objDocumentoDTO->retNumIdUnidadeGeradoraProtocolo(); + $objDocumentoDTO->setDblIdDocumento($numIdDocumento); + $objDocumentoRN = new DocumentoRN(); + $objDocumentoDTO = $objDocumentoRN->consultarRN0005($objDocumentoDTO); + SessaoSEI::getInstance()->setNumIdUnidadeAtual($objDocumentoDTO->getNumIdUnidadeGeradoraProtocolo()); + //Para cancelar o documento preciso que esteja aberto o processo na unidade que ele foi gerado. + $this->abrirProcessoSeNaoAberto($parDblIdProcedimento); - $this->objSeiRN->cancelarDocumento($objEntradaCancelarDocumentoAPI); + $this->objSeiRN->cancelarDocumento($objEntradaCancelarDocumentoAPI); - $objEntradaConcluirProcessoAPI = new EntradaConcluirProcessoAPI(); - $objEntradaConcluirProcessoAPI->setIdProcedimento($parDblIdProcedimento); - $this->objSeiRN->concluirProcesso($objEntradaConcluirProcessoAPI); + $objEntradaConcluirProcessoAPI = new EntradaConcluirProcessoAPI(); + $objEntradaConcluirProcessoAPI->setIdProcedimento($parDblIdProcedimento); + $this->objSeiRN->concluirProcesso($objEntradaConcluirProcessoAPI); } } } catch(Exception $e) { - $mensagemErro = InfraException::inspecionar($e); - $this->gravarLogDebug($mensagemErro); - LogSEI::getInstance()->gravar($mensagemErro); - throw $e; + $mensagemErro = InfraException::inspecionar($e); + $this->gravarLogDebug($mensagemErro); + LogSEI::getInstance()->gravar($mensagemErro); + throw $e; }finally{ - SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidadeAtual); + SessaoSEI::getInstance()->setNumIdUnidadeAtual($numIdUnidadeAtual); } } - //Cpia de parte do SeiRN. Esse mtodo deveria estar l e no aqui no mdulo. - private function abrirProcessoSeNaoAberto($parDblIdProcedimento){ - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->retNumIdAtividade(); - $objAtividadeDTO->setNumMaxRegistrosRetorno(1); - $objAtividadeDTO->setDblIdProtocolo($parDblIdProcedimento); - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objAtividadeDTO->setDthConclusao(null); - $objAtividadeRN = new AtividadeRN(); + //Cpia de parte do SeiRN. Esse mtodo deveria estar l e no aqui no mdulo. + private function abrirProcessoSeNaoAberto($parDblIdProcedimento) + { + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->retNumIdAtividade(); + $objAtividadeDTO->setNumMaxRegistrosRetorno(1); + $objAtividadeDTO->setDblIdProtocolo($parDblIdProcedimento); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setDthConclusao(null); + $objAtividadeRN = new AtividadeRN(); - if ($objAtividadeRN->consultarRN0033($objAtividadeDTO)==null){ - $objReabrirProcessoDTO = new ReabrirProcessoDTO(); - $objReabrirProcessoDTO->setDblIdProcedimento($parDblIdProcedimento); - $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); - $objProcedimentoRN = new ProcedimentoRN(); - $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); + if ($objAtividadeRN->consultarRN0033($objAtividadeDTO)==null) { + $objReabrirProcessoDTO = new ReabrirProcessoDTO(); + $objReabrirProcessoDTO->setDblIdProcedimento($parDblIdProcedimento); + $objReabrirProcessoDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objReabrirProcessoDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objProcedimentoRN = new ProcedimentoRN(); + $objProcedimentoRN->reabrirRN0966($objReabrirProcessoDTO); } } @@ -2052,40 +1992,36 @@ private function atribuirComponentesDigitais(DocumentoDTO $objDocumentoDTO, $par if(!isset($parArrObjComponentesDigitais)) { throw new InfraException('Componentes digitais do documento no informado.'); } + $arrAnexo = $this->atribuirComponentesJaExistentesNoProcesso( + $parArrObjComponentesDigitais, + $arrDocumentosExistentesPorHash, + $arrHashComponenteBaixados + ); - // Atribui componentes digitais j presentes no processo e no reenviados pelo Tramita.gov.br - $arrAnexo = array(); - $arrAnexo = $this->atribuirComponentesJaExistentesNoProcesso( - $parObjDocumentoDTO, - $parArrObjComponentesDigitais, - $arrDocumentosExistentesPorHash, - $arrHashComponenteBaixados - ); - - $arrAnexoDTO = array(); + $arrAnexoDTO = []; if($objDocumentoDTO->getObjProtocoloDTO()->isSetArrObjAnexoDTO()) { $arrAnexoDTO = $objDocumentoDTO->getObjProtocoloDTO()->getArrObjAnexoDTO(); } if (!is_array($parArrObjComponentesDigitais)) { - $parArrObjComponentesDigitais = array($parArrObjComponentesDigitais); + $parArrObjComponentesDigitais = [$parArrObjComponentesDigitais]; } - $arrObjAnexoDTO = array_merge($arrAnexoDTO, $arrAnexo); - $objDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO); + $arrObjAnexoDTO = array_merge($arrAnexoDTO, $arrAnexo); + $objDocumentoDTO->getObjProtocoloDTO()->setArrObjAnexoDTO($arrObjAnexoDTO); } private function atribuirProcessosAnexados($parObjProtocolo) { $bolExisteProcessoAnexado = ProcessoEletronicoRN::existeProcessoAnexado($parObjProtocolo); - if($parObjProtocolo->staTipoProtocolo != ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_DOCUMENTO_AVULSO && $bolExisteProcessoAnexado){ + if($parObjProtocolo->staTipoProtocolo != ProcessoEletronicoRN::$STA_TIPO_PROTOCOLO_DOCUMENTO_AVULSO && $bolExisteProcessoAnexado) { $objRelProtocoloProtocoloRN = new RelProtocoloProtocoloRN(); $objRelProtocoloProtocoloDTO = new RelProtocoloProtocoloDTO(); $objRelProtocoloProtocoloDTO->setStrStaAssociacao(RelProtocoloProtocoloRN ::$TA_PROCEDIMENTO_ANEXADO); $objRelProtocoloProtocoloDTO->retDblIdRelProtocoloProtocolo(); - $arrOrdemProtocolos = array(); + $arrOrdemProtocolos = []; $arrObjProtocolos = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo); foreach ($arrObjProtocolos as $numOrdem => $objProtocolo) { @@ -2096,7 +2032,7 @@ private function atribuirProcessosAnexados($parObjProtocolo) $objRelProtocoloProtocoloDTO->setDblIdProtocolo2($objProtocolo->idProcedimentoSEI); $bolProcessoJaAnexado = $objRelProtocoloProtocoloRN->contarRN0843($objRelProtocoloProtocoloDTO) > 0; - if(!$bolProcessoJaAnexado){ + if(!$bolProcessoJaAnexado) { //Procedimento principal ser aquele passado como parmetro $objEntradaAnexarProcessoAPI = new EntradaAnexarProcessoAPI(); $objEntradaAnexarProcessoAPI->setIdProcedimentoPrincipal($parObjProtocolo->idProcedimentoSEI); @@ -2137,8 +2073,8 @@ private function atribuirProcessosAnexados($parObjProtocolo) private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $objProcedimento, $parMetadadosProcedimento) { if(isset($objProcedimento->processoApensado)) { - if(!is_array($objProcedimento->processoApensado)){ - $objProcedimento->processoApensado = array($objProcedimento->processoApensado); + if(!is_array($objProcedimento->processoApensado)) { + $objProcedimento->processoApensado = [$objProcedimento->processoApensado]; } $objProcedimentoDTOApensado = null; @@ -2150,7 +2086,8 @@ private function atribuirProcessosApensados(ProcedimentoDTO $objProtocoloDTO, $o } } - private function validarHipoteseLegalPadrao($parObjProtocolo, $parNumIdTramite) { + private function validarHipoteseLegalPadrao($parObjProtocolo, $parNumIdTramite) + { if($this->obterNivelSigiloSEI($parObjProtocolo->nivelDeSigilo) == ProtocoloRN::$NA_RESTRITO) { if (isset($parObjProtocolo->hipoteseLegal) && !empty($parObjProtocolo->hipoteseLegal->identificacao)) { // Captura o Id da hiptese legal @@ -2166,16 +2103,16 @@ private function validarHipoteseLegalPadrao($parObjProtocolo, $parNumIdTramite) $objPenRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); $hipoteseLegalRecebimento = $objPenRelHipoteseLegalRN->listar($objPenRelHipoteseLegalDTO); if ($hipoteseLegalRecebimento == null) { - $numIdHipoteseLegalPadrao = $this->objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); + $numIdHipoteseLegalPadrao = $this->objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); - $objHipoteseLegalDTO = new HipoteseLegalDTO(); - $objHipoteseLegalDTO->retStrStaNivelAcesso(); - $objHipoteseLegalDTO->setNumIdHipoteseLegal($numIdHipoteseLegalPadrao); + $objHipoteseLegalDTO = new HipoteseLegalDTO(); + $objHipoteseLegalDTO->retStrStaNivelAcesso(); + $objHipoteseLegalDTO->setNumIdHipoteseLegal($numIdHipoteseLegalPadrao); - $objHipoteseLegalRN = new HipoteseLegalRN(); - $objHipoteseLegalDTO = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO); + $objHipoteseLegalRN = new HipoteseLegalRN(); + $objHipoteseLegalDTO = $objHipoteseLegalRN->consultar($objHipoteseLegalDTO); - if ($objHipoteseLegalDTO==null){ + if ($objHipoteseLegalDTO==null) { $this->objProcessoEletronicoRN->recusarTramite($parNumIdTramite, sprintf('O Administrador do Sistema de Destino no definiu uma Hiptese de Restrio Padro para o recebimento de trmites por meio do Tramita.GOV.BR. Por esse motivo, o trmite foi recusado.'), ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); } } @@ -2189,7 +2126,7 @@ private function validarDadosDestinatario($parObjMetadadosProcedimento) $objDestinatario = $parObjMetadadosProcedimento->metadados->destinatario; - if(!isset($objDestinatario)){ + if(!isset($objDestinatario)) { throw new InfraException("Parmetro $objDestinatario no informado."); } @@ -2203,11 +2140,11 @@ private function validarDadosDestinatario($parObjMetadadosProcedimento) $numeroDeIdentificacaoDaEstrutura = $objDestinatario->numeroDeIdentificacaoDaEstrutura; } - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $objRepositorio = $objProcessoEletronicoRN->consultarEstrutura($numIdRepositorioDestinoProcesso, $numeroDeIdentificacaoDaEstrutura); + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $objRepositorio = $objProcessoEletronicoRN->consultarEstrutura($numIdRepositorioDestinoProcesso, $numeroDeIdentificacaoDaEstrutura); //Validao do repositrio de destino do processo - if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem){ + if($numIdRepositorioDestinoProcesso != $numIdRepositorioOrigem) { $objInfraException->adicionarValidacao("Identificao do repositrio de origem do processo [$numIdRepositorioDestinoProcesso] no reconhecida."); } @@ -2220,17 +2157,18 @@ private function validarDadosDestinatario($parObjMetadadosProcedimento) $objUnidadeRN = new UnidadeRN(); $objUnidadeDTO = $objUnidadeRN->consultarRN0125($objUnidadeDTO); - if(!isset($objUnidadeDTO)){ - $strMsg = "A Unidade \"%s\" no est configurada para receber " + if(!isset($objUnidadeDTO)) { + $strMsg = "A Unidade \"%s\" no est configurada para receber " . "processos/documentos avulsos por meio da plataforma. " . "OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro."; - $objInfraException->adicionarValidacao(sprintf($strMsg, $objRepositorio->getStrNome())); + $objInfraException->adicionarValidacao(sprintf($strMsg, $objRepositorio->getStrNome())); } $objInfraException->lancarValidacoes(); } - private function obterNivelSigiloSEI($strNivelSigiloPEN) { + private function obterNivelSigiloSEI($strNivelSigiloPEN) + { switch ($strNivelSigiloPEN) { case ProcessoEletronicoRN::$STA_SIGILO_PUBLICO: return ProtocoloRN::$NA_PUBLICO; @@ -2241,7 +2179,8 @@ private function obterNivelSigiloSEI($strNivelSigiloPEN) { } } - private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN) { + private function obterHipoteseLegalSEI($parNumIdHipoteseLegalPEN) + { //Atribu a hiptese legal $objHipoteseLegalRecebido = new PenRelHipoteseLegalRecebidoRN(); $numIdHipoteseLegalPadrao = $this->objPenParametroRN->getParametro('HIPOTESE_LEGAL_PADRAO'); @@ -2344,7 +2283,7 @@ private function prepararParticipantes($arrObjParticipanteDTO) } //nao achou contato de usuario pega o primeiro retornado - if ($objContatoDTO==null) { + if ($objContatoDTO==null) { $objContatoDTO = $arrObjContatoDTO[0]; } } else { @@ -2376,7 +2315,7 @@ private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDT $numIdUnidade = $parUnidadeDestino; //Caso a unidade de destino no tenha sido informada, considerar as unidades atribudas ao processo - if(is_null($numIdUnidade)){ + if(is_null($numIdUnidade)) { if(!$parObjProcedimentoDTO->isSetArrObjUnidadeDTO() || count($parObjProcedimentoDTO->getArrObjUnidadeDTO()) == 0) { $objInfraException->lancarValidacao('Unidade de destino do processo no informada.'); } @@ -2424,11 +2363,11 @@ private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDT } $objPesquisaPendenciaDTO = new PesquisaPendenciaDTO(); - $objPesquisaPendenciaDTO->setDblIdProtocolo(array($objProcedimentoDTO->getDblIdProcedimento())); + $objPesquisaPendenciaDTO->setDblIdProtocolo([$objProcedimentoDTO->getDblIdProcedimento()]); $objPesquisaPendenciaDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); $objPesquisaPendenciaDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - if($retransmissao){ + if($retransmissao) { $objAtividadeRN->setStatusPesquisa(false); } @@ -2459,30 +2398,30 @@ private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDT $objAtividadeDTO->setNumIdUsuarioOrigem(SessaoSEI::getInstance()->getNumIdUsuario()); $objAtividadeDTO->setNumIdUnidade($numIdUnidade); $objAtividadeDTO->setNumIdUnidadeOrigem(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objEnviarProcessoDTO->setArrAtividades(array($objAtividadeDTO)); + $objEnviarProcessoDTO->setArrAtividades([$objAtividadeDTO]); $objEnviarProcessoDTO->setStrSinManterAberto('S'); $objEnviarProcessoDTO->setStrSinEnviarEmailNotificacao($strEnviaEmailNotificacao); $objEnviarProcessoDTO->setStrSinRemoverAnotacoes('S'); if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { - $objEnviarProcessoDTO->setDtaPrazoRetornoProgramado(null); - $objEnviarProcessoDTO->setNumDiasRetornoProgramado(null); - $objEnviarProcessoDTO->setStrSinDiasUteisRetornoProgramado('N'); + $objEnviarProcessoDTO->setDtaPrazoRetornoProgramado(null); + $objEnviarProcessoDTO->setNumDiasRetornoProgramado(null); + $objEnviarProcessoDTO->setStrSinDiasUteisRetornoProgramado('N'); }else{ - $objEnviarProcessoDTO->setDtaPrazo(null); - $objEnviarProcessoDTO->setNumDias(null); - $objEnviarProcessoDTO->setStrSinDiasUteis('N'); + $objEnviarProcessoDTO->setDtaPrazo(null); + $objEnviarProcessoDTO->setNumDias(null); + $objEnviarProcessoDTO->setStrSinDiasUteis('N'); } $objAtividadeRN->enviarRN0023($objEnviarProcessoDTO); if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { - $objConcluirProcessoDTO = new ConcluirProcessoDTO(); - $objConcluirProcessoDTO->setDblIdProcedimento($objProcedimentoDTO->getDblIdProcedimento()); - $objProcedimentoRN->concluir($objConcluirProcessoDTO); + $objConcluirProcessoDTO = new ConcluirProcessoDTO(); + $objConcluirProcessoDTO->setDblIdProcedimento($objProcedimentoDTO->getDblIdProcedimento()); + $objProcedimentoRN->concluir($objConcluirProcessoDTO); }else{ - $objProcedimentoRN->concluir(array($objProcedimentoDTO)); + $objProcedimentoRN->concluir([$objProcedimentoDTO]); } } @@ -2490,7 +2429,7 @@ private function enviarProcedimentoUnidade(ProcedimentoDTO $parObjProcedimentoDT /** * Consulta base de dados para verificar se recusa do trmite j foi processada por outra processo simultneo * - * @param int $parNumIdProtocolo Identificador do protocolo do processo + * @param int $parNumIdProtocolo Identificador do protocolo do processo * @return bool */ private function tramiteRecusaRegistrado($parNumIdProtocolo) @@ -2500,31 +2439,28 @@ private function tramiteRecusaRegistrado($parNumIdProtocolo) $objPenProtocoloDTO->setDblIdProtocolo($parNumIdProtocolo); $objPenProtocoloDTO->setStrSinObteveRecusa('S'); $objPenProtocoloBD = new ProtocoloBD($this->getObjInfraIBanco()); - $result =$objPenProtocoloBD->contar($objPenProtocoloDTO) > 0; - return $result; + return $objPenProtocoloBD->contar($objPenProtocoloDTO) > 0; } /** - * Mtodo que realiza a validao da extenso dos componentes digitais a serem recebidos - * - * @param integer $parIdTramite - * @param object $parObjProtocolo - * @throws InfraException - */ + * Mtodo que realiza a validao da extenso dos componentes digitais a serem recebidos + * + * @param integer $parIdTramite + * @param object $parObjProtocolo + * @throws InfraException + */ public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtocolo) { $arrDocumentos = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo); $arquivoExtensaoBD = new ArquivoExtensaoBD($this->getObjInfraIBanco()); foreach($arrDocumentos as $objDocumento){ - if(!isset($objDocumento->retirado) || $objDocumento->retirado == false){ - $arrComponentesDigitais = $objDocumento->componenteDigital; - if(isset($arrComponentesDigitais) && !is_array($arrComponentesDigitais)){ - $arrComponentesDigitais = array($arrComponentesDigitais); - } + if (!isset($objDocumento->retirado) || $objDocumento->retirado == false) { + $arrComponentesDigitais = $objDocumento->componentesDigitais; foreach ($arrComponentesDigitais as $componenteDigital) { + //Busca o nome do documento $nomeDocumento = $componenteDigital->nome; @@ -2549,11 +2485,11 @@ public function validarExtensaoComponentesDigitais($parIdTramite, $parObjProtoco } /** - * Mtodo que verifica as permisses de escrita nos diretrios utilizados no recebimento de processos e documentos - * - * @param integer $parIdTramite - * @throws InfraException - */ + * Mtodo que verifica as permisses de escrita nos diretrios utilizados no recebimento de processos e documentos + * + * @param integer $parIdTramite + * @throws InfraException + */ public function verificarPermissoesDiretorios($parIdTramite) { //Verifica se o usurio possui permisses de escrita no repositrio de arquivos externos @@ -2563,7 +2499,7 @@ public function verificarPermissoesDiretorios($parIdTramite) } //Verifica se o usurio possui permisses de escrita no diretrio temporrio de arquivos - if(!is_writable(DIR_SEI_TEMP)){ + if(!is_writable(DIR_SEI_TEMP)) { $this->objProcessoEletronicoRN->recusarTramite($parIdTramite, 'O sistema no possui permisso de escrita no diretrio de armazenamento de arquivos temporrios do sistema.', ProcessoEletronicoRN::MTV_RCSR_TRAM_CD_OUTROU); throw new InfraException('O sistema no possui permisso de escrita no diretrio de armazenamento de arquivos temporrios do sistema.'); @@ -2572,12 +2508,13 @@ public function verificarPermissoesDiretorios($parIdTramite) /** - * Verifica se existe documentos com pendncia de download de seus componentes digitais - * @param [type] $parNumIdProcedimento Identificador do processo - * @param [type] $parNumIdDocumento Identificador do documento - * @param [type] $parStrHashComponenteDigital Hash do componente digital - * @return [type] Indicao se existe pendncia ou no - */ + * Verifica se existe documentos com pendncia de download de seus componentes digitais + * + * @param [type] $parNumIdProcedimento Identificador do processo + * @param [type] $parNumIdDocumento Identificador do documento + * @param [type] $parStrHashComponenteDigital Hash do componente digital + * @return [type] Indicao se existe pendncia ou no + */ private function documentosPendenteRegistro($parNumIdProcedimento, $parNumIdDocumento = null, $parStrHashComponenteDigital = null) { //Valida se algum documento ficou sem seus respectivos componentes digitais @@ -2591,8 +2528,8 @@ private function documentosPendenteRegistro($parNumIdProcedimento, $parNumIdDocu and not exists (select 1 from anexo where anexo.id_protocolo = prot_doc.id_protocolo) "; //Adiciona filtro adicional para verificar pelo identificador do documento, caso parmetro tenha sido informado - if(!is_null($parNumIdDocumento)){ - $sql .= " and doc.id_documento = $parNumIdDocumento"; + if(!is_null($parNumIdDocumento)) { + $sql .= " and doc.id_documento = $parNumIdDocumento"; } $recordset = $this->getObjInfraIBanco()->consultarSql($sql); @@ -2601,9 +2538,8 @@ private function documentosPendenteRegistro($parNumIdProcedimento, $parNumIdDocu //Verifica especificamente um determinado hash atravs da verificao do hash do componente, caso parmetro tenha sido informado if($bolDocumentoPendente && !is_null($parStrHashComponenteDigital)) { foreach ($recordset as $item) { - if(!is_null($item['hash_conteudo']) && $item['hash_conteudo'] === $parStrHashComponenteDigital){ - $bolDocumentoPendente = true; - return $bolDocumentoPendente; + if(!is_null($item['hash_conteudo']) && $item['hash_conteudo'] === $parStrHashComponenteDigital) { + return true; } } @@ -2616,7 +2552,7 @@ private function documentosPendenteRegistro($parNumIdProcedimento, $parNumIdDocu $arrObjDocumentoDTOAssociacao = $this->objExpedirProcedimentoRN->listarDocumentosRelacionados($parNumIdProcedimento, $item['id_documento']); $strStaAssociacao = count($arrObjDocumentoDTOAssociacao) == 1 ? $arrObjDocumentoDTOAssociacao[0]['StaAssociacao'] : null; - if(!is_null($strStaAssociacao) && $strStaAssociacao == RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO){ + if(!is_null($strStaAssociacao) && $strStaAssociacao == RelProtocoloProtocoloRN::$TA_DOCUMENTO_MOVIDO) { $bolDocumentoPendente = false; } } @@ -2627,24 +2563,26 @@ private function documentosPendenteRegistro($parNumIdProcedimento, $parNumIdDocu /** - * Mtodo responsavl por obter o tamanho do componente pendente de recebimento - * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> - * @param $parObjProtocolo - * @param $parComponentePendente - * @return $tamanhoComponentePendende - */ + * Mtodo responsavl por obter o tamanho do componente pendente de recebimento + * + * @author Josinaldo Jnior <josinaldo.junior@basis.com.br> + * @param $parObjProtocolo + * @param $parComponentePendente + * @return $tamanhoComponentePendende + */ private function obterTamanhoComponenteDigitalPendente($parObjProtocolo, $parComponentePendente) { //Obtm os documentos do protocolo em um array $arrObjDocumentos = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo); //Percorre os documentos e compoenntes para pegar o tamanho em bytes do componente - foreach ($arrObjDocumentos as $objDocumento){ + foreach ($arrObjDocumentos as $objDocumento) { $arrObjComponentesDigitais = ProcessoEletronicoRN::obterComponentesDigitaisDocumento($objDocumento); - foreach ($arrObjComponentesDigitais as $objComponentesDigital){ - if(ProcessoEletronicoRN::getHashFromMetaDados($objComponentesDigital->hash) == $parComponentePendente){ + foreach ($arrObjComponentesDigitais as $objComponentesDigital) { + + if (ProcessoEletronicoRN::getHashFromMetaDados($objComponentesDigital->hash) == $parComponentePendente) { $tamanhoComponentePendende = $objComponentesDigital->tamanhoEmBytes; - break; + break; } } } @@ -2653,23 +2591,24 @@ private function obterTamanhoComponenteDigitalPendente($parObjProtocolo, $parCom /** - * Mtodo responsvel por realizar o recebimento do componente digital particionado, de acordo com o parametro (TamanhoBlocoArquivoTransferencia) - * @param $componentePendente - * @param $nrTamanhoBytesMaximo - * @param $nrTamanhoBytesArquivo - * @param $nrTamanhoMegasMaximo - * @param $numComponentes - * @param $parNumIdentificacaoTramite - * @param $objTramite - * @return AnexoDTO - * @throws InfraException - */ + * Mtodo responsvel por realizar o recebimento do componente digital particionado, de acordo com o parametro (TamanhoBlocoArquivoTransferencia) + * + * @param $componentePendente + * @param $nrTamanhoBytesMaximo + * @param $nrTamanhoBytesArquivo + * @param $nrTamanhoMegasMaximo + * @param $numComponentes + * @param $parNumIdentificacaoTramite + * @param $objTramite + * @return AnexoDTO + * @throws InfraException + */ private function receberComponenenteDigitalParticionado($componentePendente, $nrTamanhoBytesMaximo, $nrTamanhoBytesArquivo, $nrTamanhoMegasMaximo, $numComponente, - $parNumIdentificacaoTramite, $objTramite, $arrObjComponenteDigitalIndexado) - { + $parNumIdentificacaoTramite, $objTramite, $arrObjComponenteDigitalIndexado + ) { $receberComponenteDigitalRN = new ReceberComponenteDigitalRN(); - $qtdPartes = ceil(($nrTamanhoBytesArquivo / pow(1024, 2)) / $nrTamanhoMegasMaximo); + $qtdPartes = ceil(($nrTamanhoBytesArquivo / 1024 ** 2) / $nrTamanhoMegasMaximo); $inicio = 0; $fim = $nrTamanhoBytesMaximo; @@ -2714,13 +2653,14 @@ private function receberComponenenteDigitalParticionado($componentePendente, $nr private function indexarComponenteDigitaisDoProtocolo($parObjProtocolo) { - $resultado = array(); + $resultado = []; $arrObjDocumentos = ProcessoEletronicoRN::obterDocumentosProtocolo($parObjProtocolo); - foreach($arrObjDocumentos as $objDocumento){ - if(isset($objDocumento->componenteDigital) && !is_array($objDocumento->componenteDigital)){ - $objDocumento->componenteDigital = array($objDocumento->componenteDigital); + foreach ($arrObjDocumentos as $arrDocumento) { + if(isset($arrDocumento->componentesDigitais) && !is_array($arrDocumento->componentesDigitais)) { + $arrDocumento->componentesDigitais = [$arrDocumento->componentesDigitais]; } - foreach($objDocumento->componenteDigital as $objComponente){ + foreach ($arrDocumento->componentesDigitais as $objComponente) { + $strHash = ProcessoEletronicoRN::getHashFromMetaDados($objComponente->hash); $resultado[$strHash] = $objComponente; } @@ -2730,44 +2670,44 @@ private function indexarComponenteDigitaisDoProtocolo($parObjProtocolo) /** - * Validao de ps condies para garantir que nenhuma inconsistncia foi identificada no recebimento do processo - * - * @param [type] $parObjMetadadosProcedimento Metadados do Protocolo - * @param [type] $parObjProcedimentoDTO Dados do Processo gerado no recebimento - */ + * Validao de ps condies para garantir que nenhuma inconsistncia foi identificada no recebimento do processo + * + * @param [type] $parObjMetadadosProcedimento Metadados do Protocolo + * @param [type] $parObjProcedimentoDTO Dados do Processo gerado no recebimento + */ private function validarPosCondicoesTramite($parObjMetadadosProcedimento, $parObjProcedimentoDTO) { $strMensagemPadrao = "Inconsistncia identificada no recebimento de processo: \n"; $strMensagemErro = ""; //Valida se metadados do trmite e do protocolo foram identificado - if(is_null($parObjMetadadosProcedimento)){ + if(is_null($parObjMetadadosProcedimento)) { $strMensagemErro = "- Metadados do trmite no identificado. \n"; } //Valida se metadados do trmite e do protocolo foram identificado - if(is_null($parObjProcedimentoDTO)){ + if(is_null($parObjProcedimentoDTO)) { $strMensagemErro = "- Dados do processo no identificados \n"; } //Valida se algum documento ficou sem seus respectivos componentes digitais - if($this->documentosPendenteRegistro($parObjProcedimentoDTO->getDblIdProcedimento())){ + if($this->documentosPendenteRegistro($parObjProcedimentoDTO->getDblIdProcedimento())) { $strProtocoloFormatado = $parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); $strMensagemErro = "- Componente digital de pelo menos um dos documentos do processo [$strProtocoloFormatado] no pode ser recebido. \n"; } - // Valida se a quantidade de documentos registrados confere com a quantidade informada nos metadados - $arrDblIdDocumentosProcesso = $this->objProcessoEletronicoRN->listarAssociacoesDocumentos($parObjProcedimentoDTO->getDblIdProcedimento()); - $objProtocolo = ProcessoEletronicoRN::obterProtocoloDosMetadados($parObjMetadadosProcedimento); - $arrObjDocumentosMetadados = ProcessoEletronicoRN::obterDocumentosProtocolo($objProtocolo); - if(count($arrDblIdDocumentosProcesso) <> count($arrObjDocumentosMetadados)){ - $strProtocoloFormatado = $parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); - $strMensagemErro = "- Quantidade de documentos do processo [$strProtocoloFormatado]:" . count($arrDblIdDocumentosProcesso) . " no confere com a registrada nos dados do processo enviado externamente: ".count($arrObjDocumentosMetadados).". \n"; - $strMensagemErro .= "- IDs de Documentos do Processo: ". json_encode($arrDblIdDocumentosProcesso).". \n"; - $strMensagemErro .= "- Metadados enviado: ". json_encode($arrObjDocumentosMetadados).". \n"; + // Valida se a quantidade de documentos registrados confere com a quantidade informada nos metadados + $arrDblIdDocumentosProcesso = $this->objProcessoEletronicoRN->listarAssociacoesDocumentos($parObjProcedimentoDTO->getDblIdProcedimento()); + $objProtocolo = ProcessoEletronicoRN::obterProtocoloDosMetadados($parObjMetadadosProcedimento); + $arrObjDocumentosMetadados = ProcessoEletronicoRN::obterDocumentosProtocolo($objProtocolo); + if(count($arrDblIdDocumentosProcesso) <> count($arrObjDocumentosMetadados)) { + $strProtocoloFormatado = $parObjProcedimentoDTO->getStrProtocoloProcedimentoFormatado(); + $strMensagemErro = "- Quantidade de documentos do processo [$strProtocoloFormatado]:" . count($arrDblIdDocumentosProcesso) . " no confere com a registrada nos dados do processo enviado externamente: ".count($arrObjDocumentosMetadados).". \n"; + $strMensagemErro .= "- IDs de Documentos do Processo: ". json_encode($arrDblIdDocumentosProcesso).". \n"; + $strMensagemErro .= "- Metadados enviado: ". json_encode($arrObjDocumentosMetadados).". \n"; } - if(!InfraString::isBolVazia($strMensagemErro)){ + if(!InfraString::isBolVazia($strMensagemErro)) { throw new InfraException($strMensagemPadrao . $strMensagemErro); } } @@ -2794,9 +2734,9 @@ private function criarDiretorioAnexo($parObjAnexoDTO) { $objAnexoRN = new AnexoRN(); $strDiretorio = $objAnexoRN->obterDiretorio($parObjAnexoDTO); - if (is_dir($strDiretorio) === false){ + if (is_dir($strDiretorio) === false) { umask(0); - if (mkdir($strDiretorio, 0777, true) === false){ + if (mkdir($strDiretorio, 0777, true) === false) { throw new InfraException('Erro criando diretrio "' .$strDiretorio.'".'); } } @@ -2805,9 +2745,10 @@ private function criarDiretorioAnexo($parObjAnexoDTO) private function adicionarObservacoesSobreNumeroDocumento($parObjDocumento) { - $arrObjObservacoes = array(); - $strNumeroDocumentoOrigem = isset($parObjDocumento->protocolo) ? $parObjDocumento->protocolo : $parObjDocumento->produtor->numeroDeIdentificacao; - if(!empty($strNumeroDocumentoOrigem)){ + $arrObjObservacoes = []; + + $strNumeroDocumentoOrigem = $parObjDocumento->protocolo ?? $parObjDocumento->produtor->numeroDeIdentificacao; + if(!empty($strNumeroDocumentoOrigem)) { $objObservacaoDTO = new ObservacaoDTO(); $objObservacaoDTO->setStrDescricao("Nmero do Documento na Origem: " . $strNumeroDocumentoOrigem); $arrObjObservacoes[] = $objObservacaoDTO; @@ -2817,7 +2758,7 @@ private function adicionarObservacoesSobreNumeroDocumento($parObjDocumento) } - private function atribuirObservacoesSobreDocumentoReferenciado($parObjProcedimentoDTO, $parObjProtocolo) + private function atribuirObservacoesSobreDocumentoReferenciado($parObjProcedimentoDTO) { $objProcessoEletronicoPesquisaDTO = new ProcessoEletronicoDTO(); $objProcessoEletronicoPesquisaDTO->setDblIdProcedimento($parObjProcedimentoDTO->getDblIdProcedimento()); @@ -2829,7 +2770,7 @@ private function atribuirObservacoesSobreDocumentoReferenciado($parObjProcedimen $arrObjCompIndexadoPorOrdemDTO = InfraArray::indexarArrInfraDTO($arrObjComponentesDigitaisDTO, 'OrdemDocumento'); $arrObjCompIndexadoPorIdDocumentoDTO = InfraArray::indexarArrInfraDTO($arrObjComponentesDigitaisDTO, 'IdDocumento'); - $arrObjDocumentoDTOIndexado = array(); + $arrObjDocumentoDTOIndexado = []; foreach ($parObjProcedimentoDTO->getArrObjDocumentoDTO() as $objDocumentoDTO) { $dblIdDocumento = $objDocumentoDTO->getDblIdDocumento(); $arrObjDocumentoDTOIndexado[$dblIdDocumento] = $objDocumentoDTO; @@ -2841,14 +2782,15 @@ private function atribuirObservacoesSobreDocumentoReferenciado($parObjProcedimen $objDocumentoReferenciadoDTO = $arrObjDocumentoDTOIndexado[$objComponenteReferenciadoDTO->getDblIdDocumento()]; $strNumeNomeArvore = (!empty($objDocumentoReferenciadoDTO->getStrNumero())) ? $objDocumentoReferenciadoDTO->getStrNumero() : ''; - $strTextoInformativo = sprintf("Anexo do %s %s (%s)", + $strTextoInformativo = sprintf( + "Anexo do %s %s (%s)", $objDocumentoReferenciadoDTO->getStrNomeSerie(), $strNumeNomeArvore, $objDocumentoReferenciadoDTO->getObjProtocoloDTO()->getStrProtocoloFormatado() ); $objSerieDTO = $this->objPenRelTipoDocMapRecebidoRN->obterSerieMapeada($objComponenteDTO->getNumCodigoEspecie()); - if(!is_null($objSerieDTO)){ + if(!is_null($objSerieDTO)) { $strTextoInformativo .= " - " . $objSerieDTO->getStrNome(); } @@ -2860,7 +2802,7 @@ private function atribuirObservacoesSobreDocumentoReferenciado($parObjProcedimen $objObservacaoPesquisaDTO->setDblIdProtocolo($objDocumentoDTO->getDblIdDocumento()); $objObservacaoRN = new ObservacaoRN(); $objObservacaoDTO = $objObservacaoRN->consultarRN0221($objObservacaoPesquisaDTO); - if(!is_null($objObservacaoDTO) && !empty($objObservacaoDTO->getStrDescricao())){ + if(!is_null($objObservacaoDTO) && !empty($objObservacaoDTO->getStrDescricao())) { $strTextoInformativo = $objObservacaoDTO->getStrDescricao() . PHP_EOL . $strTextoInformativo; } @@ -2871,7 +2813,7 @@ private function atribuirObservacoesSobreDocumentoReferenciado($parObjProcedimen $objProtocoloDTO = $this->objProtocoloRN->consultarRN0186($objProtocoloDTOPesquisa); $objObservacaoDTO = new ObservacaoDTO(); $objObservacaoDTO->setStrDescricao($strTextoInformativo); - $objProtocoloDTO->setArrObjObservacaoDTO(array($objObservacaoDTO)); + $objProtocoloDTO->setArrObjObservacaoDTO([$objObservacaoDTO]); $this->objProtocoloRN->alterarRN0203($objProtocoloDTO); } } @@ -2880,24 +2822,25 @@ private function atribuirObservacoesSobreDocumentoReferenciado($parObjProcedimen } } - private static function validaTamanhoMaximoAnexo($nomeArquivo, $nrTamanhMegaByte){ - // Obtenha a extenso do nome do arquivo - $extensaoArquivo = pathinfo($nomeArquivo, PATHINFO_EXTENSION); - $extensaoArquivo = str_replace(' ', '', InfraString::transformarCaixaBaixa($extensaoArquivo)); + private static function validaTamanhoMaximoAnexo($nomeArquivo, $nrTamanhMegaByte) + { + // Obtenha a extenso do nome do arquivo + $extensaoArquivo = pathinfo($nomeArquivo, PATHINFO_EXTENSION); + $extensaoArquivo = str_replace(' ', '', InfraString::transformarCaixaBaixa($extensaoArquivo)); - $objArquivoExtensaoDTO = new ArquivoExtensaoDTO(); - $objArquivoExtensaoDTO->retStrExtensao(); - $objArquivoExtensaoDTO->retNumTamanhoMaximo(); - $objArquivoExtensaoDTO->setStrExtensao($extensaoArquivo); - $objArquivoExtensaoDTO->setNumTamanhoMaximo(null, InfraDTO::$OPER_DIFERENTE); - $objArquivoExtensaoDTO->setNumMaxRegistrosRetorno(1); + $objArquivoExtensaoDTO = new ArquivoExtensaoDTO(); + $objArquivoExtensaoDTO->retStrExtensao(); + $objArquivoExtensaoDTO->retNumTamanhoMaximo(); + $objArquivoExtensaoDTO->setStrExtensao($extensaoArquivo); + $objArquivoExtensaoDTO->setNumTamanhoMaximo(null, InfraDTO::$OPER_DIFERENTE); + $objArquivoExtensaoDTO->setNumMaxRegistrosRetorno(1); - $objArquivoExtensaoRN = new ArquivoExtensaoRN(); - $objArquivoExtensaoDTO = $objArquivoExtensaoRN->consultar($objArquivoExtensaoDTO); + $objArquivoExtensaoRN = new ArquivoExtensaoRN(); + $objArquivoExtensaoDTO = $objArquivoExtensaoRN->consultar($objArquivoExtensaoDTO); - // Verificar o tamanho mximo permitido + // Verificar o tamanho mximo permitido if ($objArquivoExtensaoDTO != null) { - $tamanhoMaximoMB = $objArquivoExtensaoDTO->getNumTamanhoMaximo(); + $tamanhoMaximoMB = $objArquivoExtensaoDTO->getNumTamanhoMaximo(); if ($nrTamanhMegaByte > $tamanhoMaximoMB) { $extensaoUpper = InfraString::transformarCaixaAlta($objArquivoExtensaoDTO->getStrExtensao()); @@ -2906,48 +2849,53 @@ private static function validaTamanhoMaximoAnexo($nomeArquivo, $nrTamanhMegaByte throw new InfraException($mensagemErro); } } else { - $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - $numTamDocExterno = $objInfraParametro->getValor('SEI_TAM_MB_DOC_EXTERNO'); + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + $numTamDocExterno = $objInfraParametro->getValor('SEI_TAM_MB_DOC_EXTERNO'); if (!empty($numTamDocExterno) && $numTamDocExterno < $nrTamanhMegaByte) { - $mensagemErro = "O tamanho mximo geral permitido para documentos externos $numTamDocExterno Mb. "; - $mensagemErro .= "OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro."; - throw new InfraException($mensagemErro); + $mensagemErro = "O tamanho mximo geral permitido para documentos externos $numTamDocExterno Mb. "; + $mensagemErro .= "OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro."; + throw new InfraException($mensagemErro); } } } - private function atribuirTipoProcedimentoRelacinado($numIdTipoProcedimento, $numIdProcedimento, $strProcessoNegocio) { + private function atribuirTipoProcedimentoRelacinado($numIdTipoProcedimento, $numIdProcedimento, $strProcessoNegocio) + { - $objAtributoAndamentoDTOAnterior = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTOAnterior->setStrNome('TIPO_PROCESSO_ANTERIOR'); - $objAtributoAndamentoDTOAnterior->setStrValor($strProcessoNegocio); - $objAtributoAndamentoDTOAnterior->setStrIdOrigem($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTOAnterior; + $origem = null; + if (isset($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) && !empty($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura)) { + $origem = $this->destinatarioReal->numeroDeIdentificacaoDaEstrutura; + } + $objAtributoAndamentoDTOAnterior = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOAnterior->setStrNome('TIPO_PROCESSO_ANTERIOR'); + $objAtributoAndamentoDTOAnterior->setStrValor($strProcessoNegocio); + $objAtributoAndamentoDTOAnterior->setStrIdOrigem($origem); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTOAnterior; - $objTipoProcedimentoRN = new TipoProcedimentoRN(); - $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); - $objTipoProcedimentoDTO->setBolExclusaoLogica(false); - $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); - $objTipoProcedimentoDTO->retStrNome(); - $objTipoProcedimentoDTO->setNumIdTipoProcedimento($numIdTipoProcedimento); - $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); + $objTipoProcedimentoRN = new TipoProcedimentoRN(); + $objTipoProcedimentoDTO = new TipoProcedimentoDTO(); + $objTipoProcedimentoDTO->setBolExclusaoLogica(false); + $objTipoProcedimentoDTO->retNumIdTipoProcedimento(); + $objTipoProcedimentoDTO->retStrNome(); + $objTipoProcedimentoDTO->setNumIdTipoProcedimento($numIdTipoProcedimento); + $objTipoProcedimentoDTO = $objTipoProcedimentoRN->consultarRN0267($objTipoProcedimentoDTO); - $objAtributoAndamentoDTOAtual = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTOAtual->setStrNome('TIPO_PROCESSO_ATUAL'); - $objAtributoAndamentoDTOAtual->setStrValor($objTipoProcedimentoDTO->getStrNome()); - $objAtributoAndamentoDTOAtual->setStrIdOrigem($objTipoProcedimentoDTO->getNumIdTipoProcedimento()); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTOAtual; + $objAtributoAndamentoDTOAtual = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTOAtual->setStrNome('TIPO_PROCESSO_ATUAL'); + $objAtributoAndamentoDTOAtual->setStrValor($objTipoProcedimentoDTO->getStrNome()); + $objAtributoAndamentoDTOAtual->setStrIdOrigem($objTipoProcedimentoDTO->getNumIdTipoProcedimento()); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTOAtual; - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($numIdProcedimento); - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_ALTERACAO_TIPO_PROCESSO); - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($numIdProcedimento); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setNumIdTarefa(TarefaRN::$TI_ALTERACAO_TIPO_PROCESSO); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); - // Gerar a atividade - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + // Gerar a atividade + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); } -} +} \ No newline at end of file diff --git a/src/rn/ReceberReciboTramiteRN.php b/src/rn/ReceberReciboTramiteRN.php index 2d12b8d9d..a50d34159 100755 --- a/src/rn/ReceberReciboTramiteRN.php +++ b/src/rn/ReceberReciboTramiteRN.php @@ -3,235 +3,223 @@ class ReceberReciboTramiteRN extends InfraRN { - private $objProcessoEletronicoRN; - private $objProcedimentoAndamentoRN; - private $objPenDebug; - private $objPenParametroRN; + private $objProcessoEletronicoRN; + private $objProcedimentoAndamentoRN; + private $objPenDebug; public function __construct() - { - parent::__construct(); - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); - $this->objPenDebug = DebugPen::getInstance("PROCESSAMENTO"); - $this->objPenParametroRN = new PenParametroRN(); + { + parent::__construct(); + $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $this->objProcedimentoAndamentoRN = new ProcedimentoAndamentoRN(); + $this->objPenDebug = DebugPen::getInstance("PROCESSAMENTO"); } protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } public function receberReciboDeTramite($parNumIdTramite) - { + { try { if (!isset($parNumIdTramite)) { throw new InfraException('Parmetro $parNumIdTramite no informado.'); } - $this->objPenDebug->gravar("Solicitando recibo de concluso do trmite $parNumIdTramite"); - $objReciboTramite = $this->objProcessoEletronicoRN->receberReciboDeTramite($parNumIdTramite); + $this->objPenDebug->gravar("Solicitando recibo de concluso do trmite $parNumIdTramite"); + $objReciboTramite = $this->objProcessoEletronicoRN->receberReciboDeTramite($parNumIdTramite); if (!$objReciboTramite) { - throw new InfraException("No foi possvel obter recibo de concluso do trmite '$parNumIdTramite'"); + throw new InfraException("No foi possvel obter recibo de concluso do trmite '$parNumIdTramite'"); } - $objReciboTramite = $objReciboTramite->conteudoDoReciboDeTramite; - // Inicializao do recebimento do processo, abrindo nova transao e controle de concorrncia, - // evitando processamento simultneo de cadastramento do mesmo processo - $arrChavesSincronizacao = array( - "NumeroRegistro" => $objReciboTramite->recibo->NRE, - "IdTramite" => $objReciboTramite->recibo->IDT, - "IdTarefa" => ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO) - ); + // Inicializao do recebimento do processo, abrindo nova transao e controle de concorrncia, + // evitando processamento simultneo de cadastramento do mesmo processo + $arrChavesSincronizacao = ["NumeroRegistro" => $objReciboTramite->recibo->NRE, "IdTramite" => $objReciboTramite->recibo->IDT, "IdTarefa" => ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO)]; if ($this->objProcedimentoAndamentoRN->sinalizarInicioRecebimento($arrChavesSincronizacao)) { - $this->receberReciboDeTramiteInterno($objReciboTramite); + $this->receberReciboDeTramiteInterno($objReciboTramite); } } catch (Exception $e) { - $mensagemErro = InfraException::inspecionar($e); - $this->objPenDebug->gravar($mensagemErro); - LogSEI::getInstance()->gravar($mensagemErro); - throw $e; + $mensagemErro = InfraException::inspecionar($e); + $this->objPenDebug->gravar($mensagemErro); + LogSEI::getInstance()->gravar($mensagemErro); + throw $e; } } protected function receberReciboDeTramiteInternoControlado($objReciboTramite) - { - //SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $this->objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO')); - ModPenUtilsRN::simularLoginUnidadeRecebimento(); + { + //SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $this->objPenParametroRN->getParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO')); + ModPenUtilsRN::simularLoginUnidadeRecebimento(); - $this->objPenDebug->gravar("Recebimento ORG1"); + $this->objPenDebug->gravar("Recebimento ORG1"); - $strNumeroRegistro = $objReciboTramite->recibo->NRE; - $numIdTramite = $objReciboTramite->recibo->IDT; - $numIdTarefa = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); - $objDateTime = new DateTime($objReciboTramite->recibo->dataDeRecebimento); + $strNumeroRegistro = $objReciboTramite->recibo->NRE; + $numIdTramite = $objReciboTramite->recibo->IDT; + $numIdTarefa = ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO); + $objDateTime = new DateTime($objReciboTramite->recibo->dataDeRecebimento); - // Tratamento para evitar o recebimento simultneo de evento de concluso de tramite + // Tratamento para evitar o recebimento simultneo de evento de concluso de tramite if (!$this->objProcedimentoAndamentoRN->sincronizarRecebimentoProcessos($strNumeroRegistro, $numIdTramite, $numIdTarefa)) { - $this->objPenDebug->gravar("Evento de concluso do trmite $numIdTramite j se encontra em processamento", 3); - return false; + $this->objPenDebug->gravar("Evento de concluso do trmite $numIdTramite j se encontra em processamento", 3); + return false; } - $objReciboTramiteDTO = new ReciboTramiteDTO(); - $objReciboTramiteDTO->setStrNumeroRegistro($objReciboTramite->recibo->NRE); - $objReciboTramiteDTO->setNumIdTramite($objReciboTramite->recibo->IDT); - $objReciboTramiteDTO->setDthRecebimento($objDateTime->format('d/m/Y H:i:s')); - $objReciboTramiteDTO->setStrCadeiaCertificado($objReciboTramite->cadeiaDoCertificado); - $objReciboTramiteDTO->setStrHashAssinatura($objReciboTramite->hashDaAssinatura); + $objReciboTramiteDTO = new ReciboTramiteDTO(); + $objReciboTramiteDTO->setStrNumeroRegistro($objReciboTramite->recibo->NRE); + $objReciboTramiteDTO->setNumIdTramite($objReciboTramite->recibo->IDT); + $objReciboTramiteDTO->setDthRecebimento($objDateTime->format('d/m/Y H:i:s')); + $objReciboTramiteDTO->setStrCadeiaCertificado($objReciboTramite->cadeiaDoCertificado); + $objReciboTramiteDTO->setStrHashAssinatura($objReciboTramite->hashDaAssinatura); - //Verifica se o trmite do processo se encontra devidamente registrado no sistema - $objTramiteDTO = new TramiteDTO(); - $objTramiteDTO->setNumIdTramite($numIdTramite); - $objTramiteDTO->retNumIdUnidade(); - $objTramiteBD = new TramiteBD($this->inicializarObjInfraIBanco()); + //Verifica se o trmite do processo se encontra devidamente registrado no sistema + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->setNumIdTramite($numIdTramite); + $objTramiteDTO->retNumIdUnidade(); + $objTramiteBD = new TramiteBD($this->inicializarObjInfraIBanco()); if ($objTramiteBD->contar($objTramiteDTO) > 0) { - $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); + SessaoSEI::getInstance(false)->simularLogin('SEI', null, null, $objTramiteDTO->getNumIdUnidade()); - $objReciboTramiteDTOExistente = new ReciboTramiteDTO(); - $objReciboTramiteDTOExistente->setNumIdTramite($numIdTramite); - $objReciboTramiteDTOExistente->retNumIdTramite(); + $objReciboTramiteDTOExistente = new ReciboTramiteDTO(); + $objReciboTramiteDTOExistente->setNumIdTramite($numIdTramite); + $objReciboTramiteDTOExistente->retNumIdTramite(); - $objReciboTramiteBD = new ReciboTramiteBD($this->inicializarObjInfraIBanco()); + $objReciboTramiteBD = new ReciboTramiteBD($this->inicializarObjInfraIBanco()); if ($objReciboTramiteBD->contar($objReciboTramiteDTOExistente) == 0) { - //Armazenar dados do recibo de concluso do trmite - $objReciboTramiteBD->cadastrar($objReciboTramiteDTO); + //Armazenar dados do recibo de concluso do trmite + $objReciboTramiteBD->cadastrar($objReciboTramiteDTO); if ($objReciboTramite->recibo->hashDoComponenteDigital && is_array($objReciboTramite->recibo->hashDoComponenteDigital)) { foreach ($objReciboTramite->recibo->hashDoComponenteDigital as $strHashComponenteDigital) { - $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); - $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboTramite->recibo->NRE); - $objReciboTramiteHashDTO->setNumIdTramite($objReciboTramite->recibo->IDT); - $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital); - $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO); - - $objGenericoBD = new GenericoBD($this->getObjInfraIBanco()); - $objGenericoBD->cadastrar($objReciboTramiteHashDTO); + $objReciboTramiteHashDTO = new ReciboTramiteHashDTO(); + $objReciboTramiteHashDTO->setStrNumeroRegistro($objReciboTramite->recibo->NRE); + $objReciboTramiteHashDTO->setNumIdTramite($objReciboTramite->recibo->IDT); + $objReciboTramiteHashDTO->setStrHashComponenteDigital($strHashComponenteDigital); + $objReciboTramiteHashDTO->setStrTipoRecibo(ProcessoEletronicoRN::$STA_TIPO_RECIBO_CONCLUSAO_RECEBIDO); + + $objGenericoBD = new GenericoBD($this->getObjInfraIBanco()); + $objGenericoBD->cadastrar($objReciboTramiteHashDTO); } } try { - // Consulta pelo nmero do tramite - $objTramiteDTO = new TramiteDTO(); - $objTramiteDTO->setNumIdTramite($numIdTramite); - $objTramiteDTO->retStrNumeroRegistro(); - - $objTramiteBD = new TramiteBD($this->inicializarObjInfraIBanco()); - $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); - - // Consulta o nmero do registro - $objProcessoEletronicoDTO = new ProcessoEletronicoDTO($this->inicializarObjInfraIBanco()); - $objProcessoEletronicoDTO->setStrNumeroRegistro($objTramiteDTO->getStrNumeroRegistro()); - $objProcessoEletronicoDTO->retDblIdProcedimento(); - - $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->inicializarObjInfraIBanco()); - $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); - - // Consulta pelo nmero do procedimento - $objProtocoloDTO = new ProtocoloDTO(); - $objProtocoloDTO->retTodos(); - $objProtocoloDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); - - $objProtocoloBD = new ProtocoloBD($this->inicializarObjInfraIBanco()); - $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); - - // Atualizar Bloco para concluido - $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); - $objPenBlocoProcessoDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); - $objPenBlocoProcessoDTO->setNumIdAndamento( - array( - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO - ), - InfraDTO::$OPER_NOT_IN - ); - $objPenBlocoProcessoDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); - $objPenBlocoProcessoDTO->retTodos(); - - $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); - $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); + // Consulta pelo nmero do tramite + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->setNumIdTramite($numIdTramite); + $objTramiteDTO->retStrNumeroRegistro(); + + $objTramiteBD = new TramiteBD($this->inicializarObjInfraIBanco()); + $objTramiteDTO = $objTramiteBD->consultar($objTramiteDTO); + + // Consulta o nmero do registro + $objProcessoEletronicoDTO = new ProcessoEletronicoDTO($this->inicializarObjInfraIBanco()); + $objProcessoEletronicoDTO->setStrNumeroRegistro($objTramiteDTO->getStrNumeroRegistro()); + $objProcessoEletronicoDTO->retDblIdProcedimento(); + + $objProcessoEletronicoBD = new ProcessoEletronicoBD($this->inicializarObjInfraIBanco()); + $objProcessoEletronicoDTO = $objProcessoEletronicoBD->consultar($objProcessoEletronicoDTO); + + // Consulta pelo nmero do procedimento + $objProtocoloDTO = new ProtocoloDTO(); + $objProtocoloDTO->retTodos(); + $objProtocoloDTO->setDblIdProtocolo($objProcessoEletronicoDTO->getDblIdProcedimento()); + + $objProtocoloBD = new ProtocoloBD($this->inicializarObjInfraIBanco()); + $objProtocoloDTO = $objProtocoloBD->consultar($objProtocoloDTO); + + // Atualizar Bloco para concluido + $objPenBlocoProcessoDTO = new PenBlocoProcessoDTO(); + $objPenBlocoProcessoDTO->setDblIdProtocolo($objProtocoloDTO->getDblIdProtocolo()); + $objPenBlocoProcessoDTO->setNumIdAndamento( + [ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CIENCIA_RECUSA, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO_AUTOMATICAMENTE, ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO], + InfraDTO::$OPER_NOT_IN + ); + $objPenBlocoProcessoDTO->setOrdNumIdBlocoProcesso(InfraDTO::$TIPO_ORDENACAO_DESC); + $objPenBlocoProcessoDTO->retTodos(); + + $objPenBlocoProcessoRN = new PenBlocoProcessoRN(); + $arrPenBlocoProcesso = $objPenBlocoProcessoRN->listar($objPenBlocoProcessoDTO); if ($arrPenBlocoProcesso != null) { - $blocos = array(); + $blocos = []; foreach ($arrPenBlocoProcesso as $PenBlocoProcesso) { - $PenBlocoProcesso->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE); - $objPenBlocoProcessoRN->alterar($PenBlocoProcesso); + $PenBlocoProcesso->setNumIdAndamento(ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE); + $objPenBlocoProcessoRN->alterar($PenBlocoProcesso); - $blocos[] = $PenBlocoProcesso->getNumIdBloco(); + $blocos[] = $PenBlocoProcesso->getNumIdBloco(); } foreach ($blocos as $idBloco) { - $objPenBlocoProcessoRN->atualizarEstadoDoBloco($idBloco); + $objPenBlocoProcessoRN->atualizarEstadoDoBloco($idBloco); } } - $this->objProcedimentoAndamentoRN->setOpts($objTramiteDTO->getStrNumeroRegistro(), $numIdTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), $objProcessoEletronicoDTO->getDblIdProcedimento()); - $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Trmite do processo %s foi concludo', $objProtocoloDTO->getStrProtocoloFormatado()), 'S')); - // Registra o recbimento do recibo no histrico e realiza a concluso do processo - $this->registrarRecebimentoRecibo($objProtocoloDTO->getDblIdProtocolo(), $objProtocoloDTO->getStrProtocoloFormatado(), $numIdTramite); + $this->objProcedimentoAndamentoRN->setOpts($objTramiteDTO->getStrNumeroRegistro(), $numIdTramite, ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO), $objProcessoEletronicoDTO->getDblIdProcedimento()); + $this->objProcedimentoAndamentoRN->cadastrar(ProcedimentoAndamentoDTO::criarAndamento(sprintf('Trmite do processo %s foi concludo', $objProtocoloDTO->getStrProtocoloFormatado()), 'S')); + // Registra o recbimento do recibo no histrico e realiza a concluso do processo + $this->registrarRecebimentoRecibo($objProtocoloDTO->getDblIdProtocolo(), $objProtocoloDTO->getStrProtocoloFormatado(), $numIdTramite); } catch (Exception $e) { - $strMessage = 'Falha ao modificar o estado do procedimento para bloqueado.'; - LogSEI::getInstance()->gravar($strMessage . PHP_EOL . $e->getMessage() . PHP_EOL . $e->getTraceAsString()); - throw new InfraException($strMessage, $e); + $strMessage = 'Falha ao modificar o estado do procedimento para bloqueado.'; + LogSEI::getInstance()->gravar($strMessage . PHP_EOL . $e->getMessage() . PHP_EOL . $e->getTraceAsString()); + throw new InfraException($strMessage, $e); } } } } private function registrarRecebimentoRecibo($numIdProcedimento, $strProtocoloFormatado, $numIdTramite) - { - //REALIZA A CONCLUSO DO PROCESSO - $objEntradaConcluirProcessoAPI = new EntradaConcluirProcessoAPI(); - $objEntradaConcluirProcessoAPI->setIdProcedimento($numIdProcedimento); + { + //REALIZA A CONCLUSO DO PROCESSO + $objEntradaConcluirProcessoAPI = new EntradaConcluirProcessoAPI(); + $objEntradaConcluirProcessoAPI->setIdProcedimento($numIdProcedimento); - $objSeiRN = new SeiRN(); + $objSeiRN = new SeiRN(); try { - $objSeiRN->concluirProcesso($objEntradaConcluirProcessoAPI); + $objSeiRN->concluirProcesso($objEntradaConcluirProcessoAPI); } catch (Exception $e) { - //Registra falha em log de debug mas no gera rollback na transao. - //O rollback da transao poderia deixar a situao do processo inconsistnte j que o Barramento registrou anteriormente que o - //recibo j havia sido obtido. O erro no fechamento no provoca impacto no andamento do processo - $this->objPenDebug->gravar("Processo $strProtocoloFormatado no est aberto na unidade."); + //Registra falha em log de debug mas no gera rollback na transao. + //O rollback da transao poderia deixar a situao do processo inconsistnte j que o Barramento registrou anteriormente que o + //recibo j havia sido obtido. O erro no fechamento no provoca impacto no andamento do processo + $this->objPenDebug->gravar("Processo $strProtocoloFormatado no est aberto na unidade."); } - $arrObjAtributoAndamentoDTO = array(); + $arrObjAtributoAndamentoDTO = []; - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('PROTOCOLO_FORMATADO'); - $objAtributoAndamentoDTO->setStrValor($strProtocoloFormatado); - $objAtributoAndamentoDTO->setStrIdOrigem($numIdProcedimento); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('PROTOCOLO_FORMATADO'); + $objAtributoAndamentoDTO->setStrValor($strProtocoloFormatado); + $objAtributoAndamentoDTO->setStrIdOrigem($numIdProcedimento); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; - $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($numIdTramite); + $arrObjTramite = $this->objProcessoEletronicoRN->consultarTramites($numIdTramite); - $objTramite = array_pop($arrObjTramite); + $objTramite = array_pop($arrObjTramite); - $objEstrutura = $this->objProcessoEletronicoRN->consultarEstrutura( - $objTramite->destinatario->identificacaoDoRepositorioDeEstruturas, - $objTramite->destinatario->numeroDeIdentificacaoDaEstrutura, - true - ); + $objEstrutura = $this->objProcessoEletronicoRN->consultarEstrutura( + $objTramite->destinatario->identificacaoDoRepositorioDeEstruturas, + $objTramite->destinatario->numeroDeIdentificacaoDaEstrutura, + true + ); - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); - $objAtributoAndamentoDTO->setStrValor($objEstrutura->nome); - $objAtributoAndamentoDTO->setStrIdOrigem($objEstrutura->numeroDeIdentificacaoDaEstrutura); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO'); + $objAtributoAndamentoDTO->setStrValor($objEstrutura->nome); + $objAtributoAndamentoDTO->setStrIdOrigem($objEstrutura->numeroDeIdentificacaoDaEstrutura); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; if (isset($objEstrutura->hierarquia)) { - $arrObjNivel = $objEstrutura->hierarquia->nivel; + $arrObjNivel = $objEstrutura->hierarquia; - $nome = ""; - $siglasUnidades = array(); - $siglasUnidades[] = $objEstrutura->sigla; + $nome = ""; + $siglasUnidades = []; + $siglasUnidades[] = $objEstrutura->sigla; foreach ($arrObjNivel as $key => $objNivel) { $siglasUnidades[] = $objNivel->sigla; @@ -245,40 +233,40 @@ private function registrarRecebimentoRecibo($numIdProcedimento, $strProtocoloFor foreach ($siglasUnidades as $key => $nomeUnidade) { if ($key == (count($siglasUnidades) - 1)) { - $nome .= $nomeUnidade . " "; + $nome .= $nomeUnidade . " "; } else { - $nome .= $nomeUnidade . " / "; + $nome .= $nomeUnidade . " / "; } } - $objNivel = current($arrObjNivel); + $objNivel = current($arrObjNivel); - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO_HIRARQUIA'); - $objAtributoAndamentoDTO->setStrValor($nome); - $objAtributoAndamentoDTO->setStrIdOrigem($objNivel->numeroDeIdentificacaoDaEstrutura); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('UNIDADE_DESTINO_HIRARQUIA'); + $objAtributoAndamentoDTO->setStrValor($nome); + $objAtributoAndamentoDTO->setStrIdOrigem($objEstrutura->numeroDeIdentificacaoDaEstrutura); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; } - $objRepositorioDTO = $this->objProcessoEletronicoRN->consultarRepositoriosDeEstruturas($objTramite->destinatario->identificacaoDoRepositorioDeEstruturas); + $objRepositorioDTO = $this->objProcessoEletronicoRN->consultarRepositoriosDeEstruturas($objTramite->destinatario->identificacaoDoRepositorioDeEstruturas); if (!empty($objRepositorioDTO)) { - $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); - $objAtributoAndamentoDTO->setStrNome('REPOSITORIO_DESTINO'); - $objAtributoAndamentoDTO->setStrValor($objRepositorioDTO->getStrNome()); - $objAtributoAndamentoDTO->setStrIdOrigem($objRepositorioDTO->getNumId()); - $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; + $objAtributoAndamentoDTO = new AtributoAndamentoDTO(); + $objAtributoAndamentoDTO->setStrNome('REPOSITORIO_DESTINO'); + $objAtributoAndamentoDTO->setStrValor($objRepositorioDTO->getStrNome()); + $objAtributoAndamentoDTO->setStrIdOrigem($objRepositorioDTO->getNumId()); + $arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTO; } - $objAtividadeDTO = new AtividadeDTO(); - $objAtividadeDTO->setDblIdProtocolo($numIdProcedimento); - $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); - $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO)); - $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); + $objAtividadeDTO = new AtividadeDTO(); + $objAtividadeDTO->setDblIdProtocolo($numIdProcedimento); + $objAtividadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objAtividadeDTO->setNumIdUsuario(SessaoSEI::getInstance()->getNumIdUsuario()); + $objAtividadeDTO->setNumIdTarefa(ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_TRAMITE_EXTERNO)); + $objAtividadeDTO->setArrObjAtributoAndamentoDTO($arrObjAtributoAndamentoDTO); - $objAtividadeRN = new AtividadeRN(); - $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); + $objAtividadeRN = new AtividadeRN(); + $objAtividadeRN->gerarInternaRN0727($objAtividadeDTO); } } diff --git a/src/rn/ReciboTramiteRN.php b/src/rn/ReciboTramiteRN.php index cf23ef560..423388518 100755 --- a/src/rn/ReciboTramiteRN.php +++ b/src/rn/ReciboTramiteRN.php @@ -5,13 +5,16 @@ /** * Repostrio da entidade ReciboTramite */ -class ReciboTramiteRN extends InfraRN { +class ReciboTramiteRN extends InfraRN +{ - public function __construct() { + public function __construct() + { parent::__construct(); } - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } @@ -25,19 +28,19 @@ protected function listarPorAtividadeConectado($parArrParametros) $numIdTramite = $parArrParametros['id_tramite']; $numIdTarefa = $parArrParametros['id_tarefa']; - $arrObjDTO = array(); + $arrObjDTO = []; switch ($numIdTarefa) { case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_EXPEDIDO): - $objReciboTramiteDTO = new ReciboTramiteDTO(); - $objReciboTramiteDTO->setNumIdTramite($numIdTramite); - $objReciboTramiteDTO->retStrNumeroRegistro(); - $objReciboTramiteDTO->retNumIdTramite(); - $objReciboTramiteDTO->retDthRecebimento(); - $objReciboTramiteDTO->retStrHashAssinatura(); - $objReciboTramiteDTO->retStrCadeiaCertificado(); + $objReciboTramiteDTO = new ReciboTramiteDTO(); + $objReciboTramiteDTO->setNumIdTramite($numIdTramite); + $objReciboTramiteDTO->retStrNumeroRegistro(); + $objReciboTramiteDTO->retNumIdTramite(); + $objReciboTramiteDTO->retDthRecebimento(); + $objReciboTramiteDTO->retStrHashAssinatura(); + $objReciboTramiteDTO->retStrCadeiaCertificado(); - $objReciboTramiteBD = new ReciboTramiteBD($this->getObjInfraIBanco()); - $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO); + $objReciboTramiteBD = new ReciboTramiteBD($this->getObjInfraIBanco()); + $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO); break; case ProcessoEletronicoRN::obterIdTarefaModulo(ProcessoEletronicoRN::$TI_PROCESSO_ELETRONICO_PROCESSO_RECEBIDO): @@ -58,7 +61,8 @@ protected function listarPorAtividadeConectado($parArrParametros) return $arrObjDTO; } - protected function downloadReciboEnvioConectado($numIdTramite) { + protected function downloadReciboEnvioConectado($numIdTramite) + { $objReciboTramiteDTO = new ReciboTramiteEnviadoDTO(); $objReciboTramiteDTO->setNumIdTramite($numIdTramite); @@ -69,9 +73,8 @@ protected function downloadReciboEnvioConectado($numIdTramite) { $objReciboTramiteDTO->retStrCadeiaCertificado(); $objReciboTramiteBD = new ReciboTramiteRecebidoBD($this->getObjInfraIBanco()); - $arrObjDTO = $objReciboTramiteBD->listar($objReciboTramiteDTO); - return $arrObjDTO; + return $objReciboTramiteBD->listar($objReciboTramiteDTO); } } diff --git a/src/rn/TipoDocMapRN.php b/src/rn/TipoDocMapRN.php index b0a2c9d7f..60239f8fe 100755 --- a/src/rn/TipoDocMapRN.php +++ b/src/rn/TipoDocMapRN.php @@ -4,12 +4,12 @@ /** * Repositrio para mtodos para Tipo de Documento Mapeados pelo mdulo PEN - * - * */ -class TipoDocMapRN extends InfraRN { +class TipoDocMapRN extends InfraRN +{ - protected function inicializarObjInfraIBanco() { + protected function inicializarObjInfraIBanco() + { return BancoSEI::getInstance(); } @@ -17,41 +17,33 @@ protected function inicializarObjInfraIBanco() { * Retorna um array de chave => valor, onde a chave a ID e o valor a descrio * do registro no banco de dados * - * @param bool $bolRemoverUtilizados remover os que j tem alguma relao - * @param int $dblCodigoEspecie Cdigo do Tipo de Documento. S funciona em - * conjunto com o primeiro paramtro + * @param bool $bolRemoverUtilizados remover os que j tem alguma relao + * @param int $dblCodigoEspecie Cdigo do Tipo de Documento. S funciona em + * conjunto com o primeiro paramtro * @return array */ - protected function listarParesEspecieConectado($arrNumCodigoEspecie = array()) + protected function listarParesEspecieConectado($arrNumCodigoEspecie = []) { - try { - $objInfraIBanco = $this->inicializarObjInfraIBanco(); - $objGenericoBD = new GenericoBD($objInfraIBanco); - - $objEspecieDocumentalDTO = new EspecieDocumentalDTO(); - $objEspecieDocumentalDTO->retDblIdEspecie(); - $objEspecieDocumentalDTO->retStrNomeEspecie(); - $objEspecieDocumentalDTO->setOrdStrNomeEspecie(InfraDTO::$TIPO_ORDENACAO_ASC); - - if (!empty($arrNumCodigoEspecie)) { + $objInfraIBanco = $this->inicializarObjInfraIBanco(); + $objGenericoBD = new GenericoBD($objInfraIBanco); + $objEspecieDocumentalDTO = new EspecieDocumentalDTO(); + $objEspecieDocumentalDTO->retDblIdEspecie(); + $objEspecieDocumentalDTO->retStrNomeEspecie(); + $objEspecieDocumentalDTO->setOrdStrNomeEspecie(InfraDTO::$TIPO_ORDENACAO_ASC); + if (!empty($arrNumCodigoEspecie)) { $objEspecieDocumentalDTO->setDblIdEspecie($arrNumCodigoEspecie, InfraDTO::$OPER_NOT_IN); - } - - $arrEspecieDocumentalDTO = $objGenericoBD->listar($objEspecieDocumentalDTO); - $arrRetorno = array(); - - if (!empty($arrEspecieDocumentalDTO)) { - foreach ($arrEspecieDocumentalDTO as $objEspecieDocumentalDTO) { + } + $arrEspecieDocumentalDTO = $objGenericoBD->listar($objEspecieDocumentalDTO); + $arrRetorno = []; + if (!empty($arrEspecieDocumentalDTO)) { + foreach ($arrEspecieDocumentalDTO as $objEspecieDocumentalDTO) { $strChave = strval($objEspecieDocumentalDTO->getDblIdEspecie()); $strValor = InfraString::formatarXML($objEspecieDocumentalDTO->getStrNomeEspecie()); $arrRetorno[$strChave] = $strValor; - } } - return $arrRetorno; - } catch (InfraException $e) { - throw $e; } + return $arrRetorno; } /** @@ -59,44 +51,34 @@ protected function listarParesEspecieConectado($arrNumCodigoEspecie = array()) * do registro no banco de dados. * Utilizado na View, ento processa as exception na pgina de erro * - * @param int $dblIdSerie Cdigo selecionado da Espcie Documental. - * S funciona em conjunto com o primeiro paramtro + * @param int $dblIdSerie Cdigo selecionado da Espcie Documental. + * S funciona em conjunto com o primeiro paramtro * @return array */ - public function listarParesSerie($arrNumIdSerie = array(), $bolListarTodos = false) + public function listarParesSerie($arrNumIdSerie = [], $bolListarTodos = false) { - try { - $arrRetorno = array(); - $objInfraIBanco = $this->inicializarObjInfraIBanco(); - - $objSerieDTO = new SerieDTO(); - $objSerieDTO->retNumIdSerie(); - $objSerieDTO->retStrNome(); - - if($bolListarTodos === false) { + $arrRetorno = []; + $objInfraIBanco = $this->inicializarObjInfraIBanco(); + $objSerieDTO = new SerieDTO(); + $objSerieDTO->retNumIdSerie(); + $objSerieDTO->retStrNome(); + if($bolListarTodos === false) { $objSerieDTO->setStrStaAplicabilidade('I', InfraDTO::$OPER_DIFERENTE); - } - $objSerieDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC); - - if(!empty($arrNumIdSerie)) { - $objSerieDTO->setNumIdSerie($arrNumIdSerie, InfraDTO::$OPER_NOT_IN); - } - - $objSerieRN = new SerieRN($objInfraIBanco); - $arrObjSerieDTO = $objSerieRN->listarRN0646($objSerieDTO); - - if(!empty($arrObjSerieDTO)) { - foreach($arrObjSerieDTO as $objSerieDTO) { - $strChave = strval($objSerieDTO->getNumIdSerie()); - $strValor = InfraString::formatarXML($objSerieDTO->getStrNome()); - $arrRetorno[$strChave] = $strValor; - } - } - return $arrRetorno; } - catch (InfraException $e) { - throw $e; + $objSerieDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC); + if(!empty($arrNumIdSerie)) { + $objSerieDTO->setNumIdSerie($arrNumIdSerie, InfraDTO::$OPER_NOT_IN); + } + $objSerieRN = new SerieRN($objInfraIBanco); + $arrObjSerieDTO = $objSerieRN->listarRN0646($objSerieDTO); + if(!empty($arrObjSerieDTO)) { + foreach($arrObjSerieDTO as $objSerieDTO) { + $strChave = strval($objSerieDTO->getNumIdSerie()); + $strValor = InfraString::formatarXML($objSerieDTO->getStrNome()); + $arrRetorno[$strChave] = $strValor; + } } + return $arrRetorno; } } diff --git a/src/rn/TramiteEmBlocoRN.php b/src/rn/TramiteEmBlocoRN.php old mode 100644 new mode 100755 index 55a98ac7f..2ec2da1bb --- a/src/rn/TramiteEmBlocoRN.php +++ b/src/rn/TramiteEmBlocoRN.php @@ -18,98 +18,99 @@ class TramiteEmBlocoRN extends InfraRN public static $TE_CONCLUIDO = 'C'; public static $TE_CONCLUIDO_PARCIALMENTE = 'P'; - /** - * Inicializa o obj do banco da Infra - * @return obj - */ + /** + * Inicializa o obj do banco da Infra + * + * @return obj + */ protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } public function getNumMaxTamanhoDescricao() - { - return 250; + { + return 250; } private function validarStrStaTipo(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException) - { + { if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getStrStaTipo())) { - $objInfraException->adicionarValidacao('Tipo no informado.'); + $objInfraException->adicionarValidacao('Tipo no informado.'); } else { if (!in_array($objTramiteEmBlocoDTO->getStrStaTipo(), InfraArray::converterArrInfraDTO($this->listarValoresTipo(), 'StaTipo'))) { - $objInfraException->adicionarValidacao('Tipo invlido.'); + $objInfraException->adicionarValidacao('Tipo invlido.'); } } } private function validarNumIdUsuario(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException) - { + { if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getNumIdUsuario())) { - $objInfraException->adicionarValidacao('Usurio no informado.'); + $objInfraException->adicionarValidacao('Usurio no informado.'); } } private function validarStrDescricao(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException) - { + { if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getStrDescricao())) { - $objTramiteEmBlocoDTO->setStrDescricao(null); + $objTramiteEmBlocoDTO->setStrDescricao(null); } else { - $objTramiteEmBlocoDTO->setStrDescricao(trim($objTramiteEmBlocoDTO->getStrDescricao())); - $objTramiteEmBlocoDTO->setStrDescricao(InfraUtil::filtrarISO88591($objTramiteEmBlocoDTO->getStrDescricao())); + $objTramiteEmBlocoDTO->setStrDescricao(trim($objTramiteEmBlocoDTO->getStrDescricao())); + $objTramiteEmBlocoDTO->setStrDescricao(InfraUtil::filtrarISO88591($objTramiteEmBlocoDTO->getStrDescricao())); if (strlen($objTramiteEmBlocoDTO->getStrDescricao()) > $this->getNumMaxTamanhoDescricao()) { - $objInfraException->adicionarValidacao('Descrio possui tamanho superior a ' . $this->getNumMaxTamanhoDescricao() . ' caracteres.'); + $objInfraException->adicionarValidacao('Descrio possui tamanho superior a ' . $this->getNumMaxTamanhoDescricao() . ' caracteres.'); } } } private function validarStrIdxBloco(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException) - { + { if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getStrIdxBloco())) { - $objTramiteEmBlocoDTO->setStrIdxBloco(null); + $objTramiteEmBlocoDTO->setStrIdxBloco(null); } else { - $objTramiteEmBlocoDTO->setStrIdxBloco(trim($objTramiteEmBlocoDTO->getStrIdxBloco())); + $objTramiteEmBlocoDTO->setStrIdxBloco(trim($objTramiteEmBlocoDTO->getStrIdxBloco())); if (strlen($objTramiteEmBlocoDTO->getStrIdxBloco()) > 500) { - $objInfraException->adicionarValidacao('Indexao possui tamanho superior a 500 caracteres.'); + $objInfraException->adicionarValidacao('Indexao possui tamanho superior a 500 caracteres.'); } } } private function validarStrStaEstado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO, InfraException $objInfraException) - { + { if (InfraString::isBolVazia($objTramiteEmBlocoDTO->getStrStaEstado())) { - $objInfraException->adicionarValidacao('Estado no informado.'); + $objInfraException->adicionarValidacao('Estado no informado.'); } else { if (!in_array($objTramiteEmBlocoDTO->getStrStaEstado(), InfraArray::converterArrInfraDTO($this->listarValoresEstado(), 'StaEstado'))) { - $objInfraException->adicionarValidacao('Estado invlido.'); + $objInfraException->adicionarValidacao('Estado invlido.'); } } } public function listarValoresTipo() - { + { try { - $arrObjTipoDTO = array(); + $arrObjTipoDTO = []; - $objTipoDTO = new TipoDTO(); - $objTipoDTO->setStrStaTipo(self::$TB_INTERNO); - $objTipoDTO->setStrDescricao('Interno'); - $arrObjTipoDTO[] = $objTipoDTO; + $objTipoDTO = new TipoDTO(); + $objTipoDTO->setStrStaTipo(self::$TB_INTERNO); + $objTipoDTO->setStrDescricao('Interno'); + $arrObjTipoDTO[] = $objTipoDTO; - return $arrObjTipoDTO; + return $arrObjTipoDTO; } catch (Exception $e) { - throw new InfraException('Erro listando valores de Tipo.', $e); + throw new InfraException('Erro listando valores de Tipo.', $e); } } public function listarValoresEstado() - { + { try { - $arrEstadoBlocoDescricao = $this->retornarEstadoDescricao(); - $objArrEstadoBlocoDTO = array(); + $arrEstadoBlocoDescricao = $this->retornarEstadoDescricao(); + $objArrEstadoBlocoDTO = []; foreach ($arrEstadoBlocoDescricao as $TE_Estado => $estadoDescricao) { $objEstadoBlocoDTO = new EstadoBlocoDTO(); $objEstadoBlocoDTO->setStrStaEstado($TE_Estado); @@ -117,60 +118,60 @@ public function listarValoresEstado() $objArrEstadoBlocoDTO[] = $objEstadoBlocoDTO; } - return $objArrEstadoBlocoDTO; + return $objArrEstadoBlocoDTO; } catch (Exception $e) { - throw new InfraException('Erro listando valores de Estado.', $e); + throw new InfraException('Erro listando valores de Estado.', $e); } } public function retornarEstadoDescricao($estado = null) - { + { try { - $arrEstadoBloco = [ + $arrEstadoBloco = [ self::$TE_ABERTO => 'Aberto', self::$TE_DISPONIBILIZADO => 'Aguardando Processamento', self::$TE_CONCLUIDO => 'Concludo', self::$TE_CONCLUIDO_PARCIALMENTE => 'Concludo Parcialmente', self::$TE_RETORNADO => 'Retornado', - ]; + ]; - return $estado ? $arrEstadoBloco[$estado] : $arrEstadoBloco; + return $estado ? $arrEstadoBloco[$estado] : $arrEstadoBloco; } catch (Exception $e) { - throw new InfraException('Estado no encontrado.', $e); + throw new InfraException('Estado no encontrado.', $e); } } - /** - * Metodo responsvel por verificar se existe uma unidade mapeada para a unidade logada - * - * @return bool - */ + /** + * Metodo responsvel por verificar se existe uma unidade mapeada para a unidade logada + * + * @return bool + */ public function existeUnidadeMapeadaParaUnidadeLogada() - { - $objPenUnidadeDTO = new PenUnidadeDTO(); - $objPenUnidadeDTO->retNumIdUnidade(); - $objPenUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); - $objPenUnidadeRN = new PenUnidadeRN(); + { + $objPenUnidadeDTO = new PenUnidadeDTO(); + $objPenUnidadeDTO->retNumIdUnidade(); + $objPenUnidadeDTO->setNumIdUnidade(SessaoSEI::getInstance()->getNumIdUnidadeAtual()); + $objPenUnidadeRN = new PenUnidadeRN(); - return $objPenUnidadeRN->contar($objPenUnidadeDTO) > 0; + return $objPenUnidadeRN->contar($objPenUnidadeDTO) > 0; } protected function listarConectado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('md_pen_tramita_em_bloco', __METHOD__, $objTramiteEmBlocoDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('md_pen_tramita_em_bloco', __METHOD__, $objTramiteEmBlocoDTO); if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { $objTramiteEmBlocoDTO->retStrStaTipo(); } - $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); - $ret = $objTramiteEmBlocoBD->listar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $ret = $objTramiteEmBlocoBD->listar($objTramiteEmBlocoDTO); if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { - $arrObjTipoDTO = $this->listarValoresTipo(); + $arrObjTipoDTO = $this->listarValoresTipo(); foreach ($ret as $dto) { foreach ($arrObjTipoDTO as $objTipoDTO) { if ($dto->getStrStaTipo() == $objTipoDTO->getStrStaTipo()) { @@ -180,90 +181,90 @@ protected function listarConectado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) } } } - return $ret; + return $ret; } catch (Exception $e) { - throw new InfraException('Erro listando Tramite em Blocos.', $e); + throw new InfraException('Erro listando Tramite em Blocos.', $e); } } protected function montarIndexacaoControlado(TramiteEmBlocoDTO $obTramiteEmBlocoDTO) - { + { try { - $dto = new TramiteEmBlocoDTO(); - $dto->retNumId(); - $dto->retStrDescricao(); + $dto = new TramiteEmBlocoDTO(); + $dto->retNumId(); + $dto->retStrDescricao(); if (is_array($obTramiteEmBlocoDTO->getNumId())) { $dto->setNumId($obTramiteEmBlocoDTO->getNumId(), InfraDTO::$OPER_IN); } else { - $dto->setNumId($obTramiteEmBlocoDTO->getNumId()); + $dto->setNumId($obTramiteEmBlocoDTO->getNumId()); } - $objTramiteEmBlocoDTOIdx = new TramiteEmBlocoDTO(); - $objInfraException = new InfraException(); - $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $objTramiteEmBlocoDTOIdx = new TramiteEmBlocoDTO(); + $objInfraException = new InfraException(); + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); - $arrObjTramiteEmBlocoDTO = $this->listar($dto); + $arrObjTramiteEmBlocoDTO = $this->listar($dto); foreach ($arrObjTramiteEmBlocoDTO as $dto) { - $objTramiteEmBlocoDTOIdx->setNumId($dto->getNumId()); - $objTramiteEmBlocoDTOIdx->setStrIdxBloco(InfraString::prepararIndexacao($dto->getNumId() . ' ' . $dto->getStrDescricao())); + $objTramiteEmBlocoDTOIdx->setNumId($dto->getNumId()); + $objTramiteEmBlocoDTOIdx->setStrIdxBloco(InfraString::prepararIndexacao($dto->getNumId() . ' ' . $dto->getStrDescricao())); - $this->validarStrIdxBloco($objTramiteEmBlocoDTOIdx, $objInfraException); - $objInfraException->lancarValidacoes(); + $this->validarStrIdxBloco($objTramiteEmBlocoDTOIdx, $objInfraException); + $objInfraException->lancarValidacoes(); - $objTramiteEmBlocoBD->alterar($objTramiteEmBlocoDTOIdx); + $objTramiteEmBlocoBD->alterar($objTramiteEmBlocoDTOIdx); } } catch (Exception $e) { - throw new InfraException('Erro montando indexao de bloco.', $e); + throw new InfraException('Erro montando indexao de bloco.', $e); } } protected function cadastrarControlado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) - { + { try { - //Valida Permissao - // / SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_cadastrar',__METHOD__,$objTramiteEmBlocoDTO); + //Valida Permissao + // / SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_cadastrar',__METHOD__,$objTramiteEmBlocoDTO); - //Regras de Negocio - $objInfraException = new InfraException(); + //Regras de Negocio + $objInfraException = new InfraException(); - $this->validarStrStaTipo($objTramiteEmBlocoDTO, $objInfraException); - $this->validarStrDescricao($objTramiteEmBlocoDTO, $objInfraException); - $this->validarStrIdxBloco($objTramiteEmBlocoDTO, $objInfraException); - $this->validarStrStaEstado($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrStaTipo($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrDescricao($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrIdxBloco($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrStaEstado($objTramiteEmBlocoDTO, $objInfraException); - $objInfraException->lancarValidacoes(); + $objInfraException->lancarValidacoes(); - $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); - $ret = $objTramiteEmBlocoBD->cadastrar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $ret = $objTramiteEmBlocoBD->cadastrar($objTramiteEmBlocoDTO); - $this->montarIndexacao($ret); + $this->montarIndexacao($ret); - return $ret; + return $ret; } catch (Exception $e) { - throw new InfraException('Erro cadastrando Bloco.', $e); + throw new InfraException('Erro cadastrando Bloco.', $e); } } protected function consultarConectado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_consultar', __METHOD__, $objTramiteEmBlocoDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_consultar', __METHOD__, $objTramiteEmBlocoDTO); if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { $objTramiteEmBlocoDTO->retStrStaTipo(); } - $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); - $ret = $objTramiteEmBlocoBD->consultar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $ret = $objTramiteEmBlocoBD->consultar($objTramiteEmBlocoDTO); if ($ret != null) { if ($objTramiteEmBlocoDTO->isRetStrTipoDescricao()) { @@ -276,93 +277,93 @@ protected function consultarConectado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) } } } - //Auditoria + //Auditoria - return $ret; + return $ret; } catch (Exception $e) { - throw new InfraException('Erro consultando Bloco.', $e); + throw new InfraException('Erro consultando Bloco.', $e); } } protected function alterarControlado(TramiteEmBlocoDTO $objTramiteEmBlocoDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_alterar', __METHOD__, $objTramiteEmBlocoDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('pen_tramite_em_bloco_alterar', __METHOD__, $objTramiteEmBlocoDTO); - //Regras de Negocio - $objInfraException = new InfraException(); + //Regras de Negocio + $objInfraException = new InfraException(); - $dto = new TramiteEmBlocoDTO(); - $dto->retStrStaTipo(); - $dto->setNumId($objTramiteEmBlocoDTO->getNumId()); + $dto = new TramiteEmBlocoDTO(); + $dto->retStrStaTipo(); + $dto->setNumId($objTramiteEmBlocoDTO->getNumId()); - $dto = $this->consultar($dto); + $dto = $this->consultar($dto); if ($objTramiteEmBlocoDTO->isSetStrStaTipo() && $objTramiteEmBlocoDTO->getStrStaTipo() != $dto->getStrStaTipo()) { $objInfraException->lancarValidacao('No possvel alterar o tipo do bloco.'); } - $objTramiteEmBlocoDTO->setStrStaTipo($dto->getStrStaTipo()); + $objTramiteEmBlocoDTO->setStrStaTipo($dto->getStrStaTipo()); if ($objTramiteEmBlocoDTO->isSetStrStaTipo()) { - $this->validarStrStaTipo($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrStaTipo($objTramiteEmBlocoDTO, $objInfraException); } if ($objTramiteEmBlocoDTO->isSetNumIdUsuario()) { - $this->validarNumIdUsuario($objTramiteEmBlocoDTO, $objInfraException); + $this->validarNumIdUsuario($objTramiteEmBlocoDTO, $objInfraException); } if ($objTramiteEmBlocoDTO->isSetStrDescricao()) { - $this->validarStrDescricao($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrDescricao($objTramiteEmBlocoDTO, $objInfraException); } if ($objTramiteEmBlocoDTO->isSetStrIdxBloco()) { - $this->validarStrIdxBloco($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrIdxBloco($objTramiteEmBlocoDTO, $objInfraException); } if ($objTramiteEmBlocoDTO->isSetStrStaEstado()) { - $this->validarStrStaEstado($objTramiteEmBlocoDTO, $objInfraException); + $this->validarStrStaEstado($objTramiteEmBlocoDTO, $objInfraException); } - $objInfraException->lancarValidacoes(); + $objInfraException->lancarValidacoes(); - $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); - $objTramiteEmBlocoBD->alterar($objTramiteEmBlocoDTO); + $objTramiteEmBlocoBD = new TramiteEmBlocoBD($this->getObjInfraIBanco()); + $objTramiteEmBlocoBD->alterar($objTramiteEmBlocoDTO); - $this->montarIndexacao($objTramiteEmBlocoDTO); + $this->montarIndexacao($objTramiteEmBlocoDTO); - //Auditoria + //Auditoria } catch (Exception $e) { - throw new InfraException('Erro alterando Bloco.', $e); + throw new InfraException('Erro alterando Bloco.', $e); } } - /** - * Mtodo utilizado para excluso de dados. - * @param array $arrayObjDTO - * @return array - * @throws InfraException - */ + /** + * Mtodo utilizado para excluso de dados. + * + * @return array + * @throws InfraException + */ protected function excluirControlado(array $arrayObjDTO) - { + { try { - //Valida Permissao - SessaoSEI::getInstance()->validarAuditarPermissao('md_pen_tramita_em_bloco_excluir', __METHOD__, $arrayObjDTO); + //Valida Permissao + SessaoSEI::getInstance()->validarAuditarPermissao('md_pen_tramita_em_bloco_excluir', __METHOD__, $arrayObjDTO); - $arrayExcluido = array(); + $arrayExcluido = []; foreach ($arrayObjDTO as $objDTO) { $objBD = new TramiteEmBlocoBD(BancoSEI::getInstance()); $arrayExcluido[] = $objBD->excluir($objDTO); } - return $arrayExcluido; + return $arrayExcluido; } catch (Exception $e) { - throw new InfraException('Erro excluindo Bloco.', $e); + throw new InfraException('Erro excluindo Bloco.', $e); } } protected function cancelarControlado(array $blocoIds) - { + { try { - $objBloco = new PenBlocoProcessoDTO(); + $objBloco = new PenBlocoProcessoDTO(); foreach ($blocoIds as $blocoId) { $objBloco->setNumIdBloco($blocoId); $objBloco->retDblIdProtocolo(); @@ -370,11 +371,11 @@ protected function cancelarControlado(array $blocoIds) $protocoloIds = $objPenBlocoProcessoRN->listar($objBloco); $protocoloRn = new ExpedirProcedimentoRN(); foreach ($protocoloIds as $protocoloId) { - $protocoloRn->cancelarTramite($protocoloId->getDblIdProtocolo()); + $protocoloRn->cancelarTramite($protocoloId->getDblIdProtocolo()); } } } catch (Exception $e) { - throw new InfraException('Erro cancelando Bloco.', $e); + throw new InfraException('Erro cancelando Bloco.', $e); } } } diff --git a/src/rn/VerificadorInstalacaoRN.php b/src/rn/VerificadorInstalacaoRN.php index 494d115ba..44338ff11 100755 --- a/src/rn/VerificadorInstalacaoRN.php +++ b/src/rn/VerificadorInstalacaoRN.php @@ -29,42 +29,35 @@ */ class VerificadorInstalacaoRN extends InfraRN { - // A partir da verso 2.0.0, o mdulo de integrao do SEI com o PEN no ser mais compatvel com o SEI 3.0.X - const COMPATIBILIDADE_MODULO_SEI = array( - // Verses SEI - '3.1.0', '3.1.1', '3.1.2', '3.1.3', '3.1.4', '3.1.5', '3.1.6', '3.1.7', - '4.0.0', '4.0.1' , '4.0.2' , '4.0.3', '4.0.4', '4.0.5', '4.0.6', '4.0.7', - '4.0.8', '4.0.9', '4.0.10', '4.0.11', '4.0.12', '4.1.1', '4.1.2', '4.1.3', '4.1.4', - // Verses SUPER - '4.0.3.1', '4.0.3.2', '4.0.3.3', '4.0.3.4', '4.0.3.5', '4.0.4.6', '4.0.5.7', - '4.0.6.8', '4.0.7.9', '4.0.8.10', '4.0.9.11', '4.0.9.12', '4.0.9.13', '4.0.9.14', '4.0.12.15' - ); - - public function __construct() { - parent::__construct(); - } + const COMPATIBILIDADE_MODULO_SEI = ['5.0.0']; - protected function inicializarObjInfraIBanco() { - return BancoSEI::getInstance(); - } + public function __construct() + { + parent::__construct(); + } + + protected function inicializarObjInfraIBanco() + { + return BancoSEI::getInstance(); + } /** * Verifica se todos os arquivos do mdulo foram posicionados nos locais corretos * * @return bool */ - public function verificarPosicionamentoScripts() + public function verificarPosicionamentoScripts() { - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/sei_atualizar_versao_modulo_pen.php'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/verifica_instalacao_modulo_pen.php'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/ProcessamentoTarefasPEN.php'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../config/mod-pen/ConfiguracaoModPEN.php'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../bin/mod-pen/verificar-reboot-fila.sh'); - $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../bin/mod-pen/verificar-pendencias-represadas.py'); - return true; - } + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/sei_atualizar_versao_modulo_pen.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/verifica_instalacao_modulo_pen.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../scripts/mod-pen/ProcessamentoTarefasPEN.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../config/mod-pen/ConfiguracaoModPEN.php'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../bin/mod-pen/verificar-reboot-fila.sh'); + $this->verificarExistenciaArquivo(DIR_SEI_WEB . '/../bin/mod-pen/verificar-pendencias-represadas.py'); + return true; + } /** @@ -72,264 +65,264 @@ public function verificarPosicionamentoScripts() * * @return bool */ - public function verificarAtivacaoModulo() + public function verificarAtivacaoModulo() { - global $SEI_MODULOS; + global $SEI_MODULOS; - if(!array_key_exists("PENIntegracao", $SEI_MODULOS)){ - throw new InfraException("Chave de ativao do mdulo mod-sei-pen (PENIntegracao) no definido nas configuraes de mdulos do SEI"); - } - - if(is_null($SEI_MODULOS['PENIntegracao'])){ - $objConfiguracaoSEI = ConfiguracaoSEI::getInstance(); + if(!array_key_exists("PENIntegracao", $SEI_MODULOS)) { + throw new InfraException("Chave de ativao do mdulo mod-sei-pen (PENIntegracao) no definido nas configuraes de mdulos do SEI"); + } - if (!$objConfiguracaoSEI->isSetValor('SEI', 'Modulos')){ - throw new InfraException("Chave de configurao de Mdulos no definida nas configuraes do sistema. (ConfiguracaoSEI.php | SEI > Modulos)"); - } + if(is_null($SEI_MODULOS['PENIntegracao'])) { + $objConfiguracaoSEI = ConfiguracaoSEI::getInstance(); - $arrModulos = $objConfiguracaoSEI->getValor('SEI', 'Modulos'); - $strDiretorioModPEN = basename($arrModulos['PENIntegracao']); - $strDiretorioModulos = dirname ($arrModulos['PENIntegracao']); - throw new InfraException("Diretrio do mdulo ($strDiretorioModPEN) no pode ser localizado em $strDiretorioModulos"); + if (!$objConfiguracaoSEI->isSetValor('SEI', 'Modulos')) { + throw new InfraException("Chave de configurao de Mdulos no definida nas configuraes do sistema. (ConfiguracaoSEI.php | SEI > Modulos)"); } - return true; + $arrModulos = $objConfiguracaoSEI->getValor('SEI', 'Modulos'); + $strDiretorioModPEN = basename($arrModulos['PENIntegracao']); + $strDiretorioModulos = dirname($arrModulos['PENIntegracao']); + throw new InfraException("Diretrio do mdulo ($strDiretorioModPEN) no pode ser localizado em $strDiretorioModulos"); } + return true; + } + /** - * Verifica a correta definio de todos os parmetros de configurao do mdulo - * - * @return bool - */ - public function verificarArquivoConfiguracao() + * Verifica a correta definio de todos os parmetros de configurao do mdulo + * + * @return bool + */ + public function verificarArquivoConfiguracao() { - // Valida se arquivo de configurao est presente na instalao do sistema - $strArquivoConfiguracao = DIR_SEI_CONFIG . '/mod-pen/ConfiguracaoModPEN.php'; - if (file_exists($strArquivoConfiguracao) && is_readable($strArquivoConfiguracao)) { - require_once DIR_SEI_CONFIG . '/mod-pen/ConfiguracaoModPEN.php'; - } else { - $strMensagem = "Arquivo de configurao do mdulo de integrao do SEI com o Tramita GOV.BR no pode ser localizado"; - $strDetalhes = "As configuraes do mdulo mod-sei-pen no foram encontradas em $strArquivoConfiguracao \n"; - $strDetalhes .= "Verifique se a instalao foi feita corretamente seguindo os procedimentos do manual de instalao."; - throw new InfraException($strMensagem, null, $strDetalhes); - } + // Valida se arquivo de configurao est presente na instalao do sistema + $strArquivoConfiguracao = DIR_SEI_CONFIG . '/mod-pen/ConfiguracaoModPEN.php'; + if (file_exists($strArquivoConfiguracao) && is_readable($strArquivoConfiguracao)) { + include_once DIR_SEI_CONFIG . '/mod-pen/ConfiguracaoModPEN.php'; + } else { + $strMensagem = "Arquivo de configurao do mdulo de integrao do SEI com o Tramita GOV.BR no pode ser localizado"; + $strDetalhes = "As configuraes do mdulo mod-sei-pen no foram encontradas em $strArquivoConfiguracao \n"; + $strDetalhes .= "Verifique se a instalao foi feita corretamente seguindo os procedimentos do manual de instalao."; + throw new InfraException($strMensagem, null, $strDetalhes); + } - // Valida se arquivo de configurao est ntegro e se a classe de configurao est presente - if(!class_exists("ConfiguracaoModPEN")){ - $strMensagem = "Definio de configuraes do mdulo de integrao do SEI com o Tramita GOV.BR no pode ser localizada"; - $strDetalhes = "Verifique se o arquivo de configurao localizado em $strArquivoConfiguracao encontra-se ntegro."; - throw new InfraException($strMensagem, null, $strDetalhes); - } + // Valida se arquivo de configurao est ntegro e se a classe de configurao est presente + if(!class_exists("ConfiguracaoModPEN")) { + $strMensagem = "Definio de configuraes do mdulo de integrao do SEI com o Tramita GOV.BR no pode ser localizada"; + $strDetalhes = "Verifique se o arquivo de configurao localizado em $strArquivoConfiguracao encontra-se ntegro."; + throw new InfraException($strMensagem, null, $strDetalhes); + } - // Valida se todos os parmetros de configurao esto presentes no arquivo de configurao - $arrStrChavesConfiguracao = ConfiguracaoModPEN::getInstance()->getArrConfiguracoes(); - if(!array_key_exists("PEN", $arrStrChavesConfiguracao)){ - $strMensagem = "Grupo de parametrizao 'Tramita GOV.BR' no pode ser localizado no arquivo de configurao do mdulo de integrao do SEI com o Tramita GOV.BR"; - $strDetalhes = "Verifique se o arquivo de configurao localizado em $strArquivoConfiguracao encontra-se ntegro."; - throw new InfraException($strMensagem, null, $strDetalhes); - } + // Valida se todos os parmetros de configurao esto presentes no arquivo de configurao + $arrStrChavesConfiguracao = ConfiguracaoModPEN::getInstance()->getArrConfiguracoes(); + if(!array_key_exists("PEN", $arrStrChavesConfiguracao)) { + $strMensagem = "Grupo de parametrizao 'Tramita GOV.BR' no pode ser localizado no arquivo de configurao do mdulo de integrao do SEI com o Tramita GOV.BR"; + $strDetalhes = "Verifique se o arquivo de configurao localizado em $strArquivoConfiguracao encontra-se ntegro."; + throw new InfraException($strMensagem, null, $strDetalhes); + } - // Valida se todas as chaves de configurao obrigatrias foram atribudas - $arrStrChavesConfiguracao = $arrStrChavesConfiguracao["PEN"]; - $arrStrParametrosExperados = array("WebService", "LocalizacaoCertificado", "SenhaCertificado"); - foreach ($arrStrParametrosExperados as $strChaveConfiguracao) { - if(!array_key_exists($strChaveConfiguracao, $arrStrChavesConfiguracao)){ - $strMensagem = "Parmetro 'PEN > $strChaveConfiguracao' no pode ser localizado no arquivo de configurao do mdulo de integrao do SEI com o Tramita GOV.BR"; - $strDetalhes = "Verifique se o arquivo de configurao localizado em $strArquivoConfiguracao encontra-se ntegro."; - throw new InfraException($strMensagem, null, $strDetalhes); - } + // Valida se todas as chaves de configurao obrigatrias foram atribudas + $arrStrChavesConfiguracao = $arrStrChavesConfiguracao["PEN"]; + $arrStrParametrosExperados = ["WebService", "LocalizacaoCertificado", "SenhaCertificado"]; + foreach ($arrStrParametrosExperados as $strChaveConfiguracao) { + if(!array_key_exists($strChaveConfiguracao, $arrStrChavesConfiguracao)) { + $strMensagem = "Parmetro 'PEN > $strChaveConfiguracao' no pode ser localizado no arquivo de configurao do mdulo de integrao do SEI com o Tramita GOV.BR"; + $strDetalhes = "Verifique se o arquivo de configurao localizado em $strArquivoConfiguracao encontra-se ntegro."; + throw new InfraException($strMensagem, null, $strDetalhes); } - - return true; } + return true; + } + /** - * Verifica a compatibilidade da verso do mdulo com a atual verso do SEI em que est sendo feita a instalao - * - * @return bool - */ - public function verificarCompatibilidadeModulo() + * Verifica a compatibilidade da verso do mdulo com a atual verso do SEI em que est sendo feita a instalao + * + * @return bool + */ + public function verificarCompatibilidadeModulo() { - $strVersaoSEI = SEI_VERSAO; - if(!in_array($strVersaoSEI, self::COMPATIBILIDADE_MODULO_SEI)) { - $objPENIntegracao = new PENIntegracao(); - $strMensagem = sprintf("Mdulo %s (verso %s) no compatvel com a verso %s do SEI.", $objPENIntegracao->getNome(), $objPENIntegracao->getVersao(), $strVersaoSEI); - throw new ModuloIncompativelException($strMensagem); - } - - return true; + $strVersaoSEI = SEI_VERSAO; + if(!in_array($strVersaoSEI, self::COMPATIBILIDADE_MODULO_SEI)) { + $objPENIntegracao = new PENIntegracao(); + $strMensagem = sprintf("Mdulo %s (verso %s) no compatvel com a verso %s do SEI.", $objPENIntegracao->getNome(), $objPENIntegracao->getVersao(), $strVersaoSEI); + throw new ModuloIncompativelException($strMensagem); } + return true; + } + /** - * Mtodo responsvel pela validao da compatibilidade do banco de dados do mdulo em relao ao verso instalada - * - * @param boolean $bolGerarExcecao Flag para gerao de exceo do tipo InfraException caso base de dados incompatvel - * @return boolean Indicardor se base de dados compatvel - */ - public function verificarCompatibilidadeBanco() + * Mtodo responsvel pela validao da compatibilidade do banco de dados do mdulo em relao ao verso instalada + * + * @param boolean $bolGerarExcecao Flag para gerao de exceo do tipo InfraException caso base de dados incompatvel + * @return boolean Indicardor se base de dados compatvel + */ + public function verificarCompatibilidadeBanco() { - $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - $strVersaoBancoModulo = $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO, false) ?: $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO, false); + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + $strVersaoBancoModulo = $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO, false) ?: $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO, false); - $objPENIntegracao = new PENIntegracao(); - $strVersaoModulo = $objPENIntegracao->getVersao(); + $objPENIntegracao = new PENIntegracao(); + $strVersaoModulo = $objPENIntegracao->getVersao(); - if($strVersaoModulo !== $strVersaoBancoModulo){ - $strMensagem = sprintf( - "Base de dados do mdulo '%s' (verso %s) encontra-se incompatvel. A verso da base de dados atualmente instalada a %s. \n ". - "Favor entrar em contato com o administrador do sistema.", $objPENIntegracao->getNome(), $strVersaoModulo, $strVersaoBancoModulo - ); + if($strVersaoModulo !== $strVersaoBancoModulo) { + $strMensagem = sprintf( + "Base de dados do mdulo '%s' (verso %s) encontra-se incompatvel. A verso da base de dados atualmente instalada a %s. \n ". + "Favor entrar em contato com o administrador do sistema.", $objPENIntegracao->getNome(), $strVersaoModulo, $strVersaoBancoModulo + ); - throw new ModuloIncompativelException($strMensagem); - } - - return true; + throw new ModuloIncompativelException($strMensagem); } + return true; + } + /** - * Verifica a validao do Certificado Digital, verificando sua localizao e a validao das senhas de criptografia - * - * @return bool - */ - public function verificarCertificadoDigital() + * Verifica a validao do Certificado Digital, verificando sua localizao e a validao das senhas de criptografia + * + * @return bool + */ + public function verificarCertificadoDigital() { - $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); - $strLocalizacaoCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "LocalizacaoCertificado"); - $strSenhaCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "SenhaCertificado"); - - if(!file_exists($strLocalizacaoCertificadoDigital)){ - $strNomeCertificado = basename($parStrLocalizacaoArquivo); - $strDiretorioCertificado = dirname($parStrLocalizacaoArquivo); - throw new InfraException("Certificado digital $strNomeCertificado no pode ser localizado em $strDiretorioCertificado"); - } - - $strLocalizacaoAjustada = 'file://' . $strLocalizacaoCertificadoDigital; - $strPublicKey = openssl_pkey_get_public($strLocalizacaoAjustada); - if(empty($strPublicKey)){ - throw new InfraException("Chave pblica do certificado digital de autenticao no Tramita GOV.BR no pode ser localizada em $strLocalizacaoCertificadoDigital. Erro detalhado: " . openssl_error_string()); - } + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $strLocalizacaoCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "LocalizacaoCertificado"); + $strSenhaCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "SenhaCertificado"); + + if(!file_exists($strLocalizacaoCertificadoDigital)) { + $strNomeCertificado = basename($parStrLocalizacaoArquivo); + $strDiretorioCertificado = dirname($parStrLocalizacaoArquivo); + throw new InfraException("Certificado digital $strNomeCertificado no pode ser localizado em $strDiretorioCertificado"); + } - $strPrivateKey = openssl_pkey_get_private($strLocalizacaoAjustada, $strSenhaCertificadoDigital); - if(empty($strPrivateKey)){ - throw new InfraException("Chave privada do certificado digital de autenticao no Tramita GOV.BR no pode ser extrada em $strLocalizacaoCertificadoDigital. Erro detalhado: " . openssl_error_string()); - } + $strLocalizacaoAjustada = 'file://' . $strLocalizacaoCertificadoDigital; + $strPublicKey = openssl_pkey_get_public($strLocalizacaoAjustada); + if(empty($strPublicKey)) { + throw new InfraException("Chave pblica do certificado digital de autenticao no Tramita GOV.BR no pode ser localizada em $strLocalizacaoCertificadoDigital. Erro detalhado: " . openssl_error_string()); + } - return true; + $strPrivateKey = openssl_pkey_get_private($strLocalizacaoAjustada, $strSenhaCertificadoDigital); + if(empty($strPrivateKey)) { + throw new InfraException("Chave privada do certificado digital de autenticao no Tramita GOV.BR no pode ser extrada em $strLocalizacaoCertificadoDigital. Erro detalhado: " . openssl_error_string()); } + return true; + } + /** - * Verifica a conexo com o Barramento de Servios do PEN, utilizando o endereo e certificados informados - * - * @return bool - */ - public function verificarConexaoBarramentoPEN() + * Verifica a conexo com o Barramento de Servios do PEN, utilizando o endereo e certificados informados + * + * @return bool + */ + public function verificarConexaoBarramentoPEN() { - $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); - $strEnderecoWebService = $objConfiguracaoModPEN->getValor("PEN", "WebService"); - $strLocalizacaoCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "LocalizacaoCertificado"); - $strSenhaCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "SenhaCertificado"); - - $strEnderecoWSDL = $strEnderecoWebService . '?wsdl'; - $curl = curl_init($strEnderecoWSDL); - - try{ - $bolEmProducao = boolval(ConfiguracaoSEI::getInstance()->getValor('SEI', 'Producao')); - curl_setopt($curl, CURLOPT_URL, $strEnderecoWSDL); - curl_setopt($curl, CURLOPT_HEADER, 0); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $bolEmProducao); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $bolEmProducao); - curl_setopt($curl, CURLOPT_SSLCERT, $strLocalizacaoCertificadoDigital); - curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $strSenhaCertificadoDigital); - curl_setopt($curl, CURLOPT_FAILONERROR, true); - - $strOutput = curl_exec($curl); - - if (curl_errno($curl)) { - $strErrorMsg = curl_error($curl); - } - if (isset($strErrorMsg)) { - throw new Exception("Erro no CURL ao obter o WSDL em $strEnderecoWSDL. Erro detalhado: $strErrorMsg."); - } - $objXML = simplexml_load_string($strOutput); - - if(empty($strOutput) || $strOutput === false || empty($objXML) || $objXML === false){ - throw new Exception("Falha na validao do WSDL do webservice de integrao com o Tramita GOV.BR localizado em $strEnderecoWSDL"); - } - - } finally{ - curl_close($curl); + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $strEnderecoWebService = $objConfiguracaoModPEN->getValor("PEN", "WebService"); + $strLocalizacaoCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "LocalizacaoCertificado"); + $strSenhaCertificadoDigital = $objConfiguracaoModPEN->getValor("PEN", "SenhaCertificado"); + + $healthcheck = 'healthcheck'; + + $strEnderecoBarramento = $strEnderecoWebService . '/' . $healthcheck; + $curl = curl_init($strEnderecoBarramento); + + try{ + $bolEmProducao = boolval(ConfiguracaoSEI::getInstance()->getValor('SEI', 'Producao')); + curl_setopt($curl, CURLOPT_URL, $strEnderecoBarramento); + curl_setopt($curl, CURLOPT_HEADER, 0); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, $bolEmProducao); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $bolEmProducao); + curl_setopt($curl, CURLOPT_SSLCERT, $strLocalizacaoCertificadoDigital); + curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $strSenhaCertificadoDigital); + curl_setopt($curl, CURLOPT_FAILONERROR, true); + + $strOutput = curl_exec($curl); + + if (curl_errno($curl)) { + $strErrorMsg = curl_error($curl); + } + if (isset($strErrorMsg)) { + throw new Exception("Erro no CURL para $strEnderecoBarramento. Erro detalhado: $strErrorMsg."); } - return true; + } finally{ + curl_close($curl); } + return true; + } + /** - * Verifica a conexo com o Barramento de Servios do PEN, utilizando o endereo e certificados informados - * - * @return bool - */ - public function verificarAcessoPendenciasTramitePEN() + * Verifica a conexo com o Barramento de Servios do PEN, utilizando o endereo e certificados informados + * + * @return bool + */ + public function verificarAcessoPendenciasTramitePEN() { - // Processa uma chamada ao Barramento de Servios para certificar que o atual certificado est corretamente vinculado um - // comit de protocolo vlido - try{ - $objProcessoEletronicoRN = new ProcessoEletronicoRN(); - $objProcessoEletronicoRN->listarPendencias(false); - return true; - } catch(Exception $e){ - throw new InfraException("Falha no acesso aos servios de integrao do Tramita GOV.BR: $e"); - } + // Processa uma chamada ao Barramento de Servios para certificar que o atual certificado est corretamente vinculado um + // comit de protocolo vlido + try{ + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $objProcessoEletronicoRN->listarPendencias(false); + + return true; + } catch(Exception $e){ + throw new InfraException("Falha no acesso aos servios de integrao do Tramita GOV.BR: $e"); } + } /** - * Verifica se Gearman foi corretamente configurado e se o mesmo se encontra ativo - * - * @return bool - */ - public function verificarConfiguracaoGearman() + * Verifica se Gearman foi corretamente configurado e se o mesmo se encontra ativo + * + * @return bool + */ + public function verificarConfiguracaoGearman() { - $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); - $arrObjGearman = $objConfiguracaoModPEN->getValor("PEN", "Gearman", false); - $strGearmanServidor = trim(@$arrObjGearman["Servidor"] ?: null); - $strGearmanPorta = trim(@$arrObjGearman["Porta"] ?: null); - - if(empty($strGearmanServidor)) { - // No processa a verificao da instalao do Gearman caso no esteja configurado - return false; - } - - if(!class_exists("GearmanClient")){ - throw new InfraException("No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN." . - "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes"); - } + $objConfiguracaoModPEN = ConfiguracaoModPEN::getInstance(); + $arrObjGearman = $objConfiguracaoModPEN->getValor("PEN", "Gearman", false); + $strGearmanServidor = trim(@$arrObjGearman["Servidor"] ?: null); + $strGearmanPorta = trim(@$arrObjGearman["Porta"] ?: null); + + if(empty($strGearmanServidor)) { + // No processa a verificao da instalao do Gearman caso no esteja configurado + return false; + } - try{ - $objGearmanClient = new GearmanClient(); - $objGearmanClient->addServer($strGearmanServidor, $strGearmanPorta); - $objGearmanClient->setTimeout(10000); - $objGearmanClient->ping("health"); - } catch (\Exception $e) { - $strMensagemErro = "No foi possvel conectar ao servidor Gearman (%s, %s). Erro: %s"; - $strMensagem = sprintf($strMensagemErro, $strGearmanServidor, $strGearmanPorta, $objGearmanClient->error()); - throw new InfraException($strMensagem); - } + if(!class_exists("GearmanClient")) { + throw new InfraException( + "No foi possvel localizar as bibliotecas do PHP para conexo ao GEARMAN." . + "Verifique os procedimentos de instalao do mod-sei-pen para maiores detalhes" + ); + } - return true; + try{ + $objGearmanClient = new GearmanClient(); + $objGearmanClient->addServer($strGearmanServidor, $strGearmanPorta); + $objGearmanClient->setTimeout(10000); + $objGearmanClient->ping("health"); + } catch (\Exception $e) { + $strMensagemErro = "No foi possvel conectar ao servidor Gearman (%s, %s). Erro: %s"; + $strMensagem = sprintf($strMensagemErro, $strGearmanServidor, $strGearmanPorta, $objGearmanClient->error()); + throw new InfraException($strMensagem); } - private function verificarExistenciaArquivo($parStrLocalizacaoArquivo) + return true; + } + + private function verificarExistenciaArquivo($parStrLocalizacaoArquivo) { - if(!file_exists($parStrLocalizacaoArquivo)){ - $strNomeArquivo = basename($parStrLocalizacaoArquivo); - $strDiretorioArquivo = dirname($parStrLocalizacaoArquivo); - throw new InfraException("Arquivo do $strNomeArquivo no pode ser localizado em $strDiretorioArquivo"); - } + if(!file_exists($parStrLocalizacaoArquivo)) { + $strNomeArquivo = basename($parStrLocalizacaoArquivo); + $strDiretorioArquivo = dirname($parStrLocalizacaoArquivo); + throw new InfraException("Arquivo do $strNomeArquivo no pode ser localizado em $strDiretorioArquivo"); } + } } diff --git a/src/scripts/MonitoramentoEnvioTarefasPEN.php b/src/scripts/MonitoramentoEnvioTarefasPEN.php old mode 100644 new mode 100755 index 04efe10ad..d29a4c1a9 --- a/src/scripts/MonitoramentoEnvioTarefasPEN.php +++ b/src/scripts/MonitoramentoEnvioTarefasPEN.php @@ -16,13 +16,13 @@ try { SessaoSEI::getInstance(false); - $arrParametros = getopt("fd", array("monitorar", "segundo-plano", "debug", "wsdl-cache:")); + $arrParametros = getopt("fd", ["monitorar", "segundo-plano", "debug", "wsdl-cache:"]); $bolMonitorar = array_key_exists("f", $arrParametros) || array_key_exists("monitorar", $arrParametros); $parBolSegundoPlano = array_key_exists("d", $arrParametros) || array_key_exists("segundo-plano", $arrParametros); $parBoldebug = array_key_exists("debug", $arrParametros); $parStrWsdlCacheDir = array_key_exists("wsdl-cache", $arrParametros) ? $arrParametros["wsdl-cache"] : null; - if(is_dir($parStrWsdlCacheDir)){ + if(is_dir($parStrWsdlCacheDir)) { ini_set('soap.wsdl_cache_dir', $parStrWsdlCacheDir); } diff --git a/src/scripts/MonitoramentoRecebimentoTarefasPEN.php b/src/scripts/MonitoramentoRecebimentoTarefasPEN.php index c3119805c..62f426869 100755 --- a/src/scripts/MonitoramentoRecebimentoTarefasPEN.php +++ b/src/scripts/MonitoramentoRecebimentoTarefasPEN.php @@ -16,13 +16,13 @@ try { SessaoSEI::getInstance(false); - $arrParametros = getopt("fd", array("monitorar", "segundo-plano", "debug", "wsdl-cache:")); + $arrParametros = getopt("fd", ["monitorar", "segundo-plano", "debug", "wsdl-cache:"]); $bolMonitorar = array_key_exists("f", $arrParametros) || array_key_exists("monitorar", $arrParametros); $parBolSegundoPlano = array_key_exists("d", $arrParametros) || array_key_exists("segundo-plano", $arrParametros); $parBoldebug = array_key_exists("debug", $arrParametros); $parStrWsdlCacheDir = array_key_exists("wsdl-cache", $arrParametros) ? $arrParametros["wsdl-cache"] : null; - if(is_dir($parStrWsdlCacheDir)){ + if(is_dir($parStrWsdlCacheDir)) { ini_set('soap.wsdl_cache_dir', $parStrWsdlCacheDir); } diff --git a/src/scripts/ProcessamentoTarefasPEN.php b/src/scripts/ProcessamentoTarefasPEN.php index 819215186..4cf45319b 100755 --- a/src/scripts/ProcessamentoTarefasPEN.php +++ b/src/scripts/ProcessamentoTarefasPEN.php @@ -5,9 +5,10 @@ class ProcessamentoTarefasPEN { - private static $instance = null; + private static $instance; - public static function getInstance() { + public static function getInstance() + { if (self::$instance == null) { self::$instance = new ProcessamentoTarefasPEN(); } diff --git a/src/scripts/sei_atualizar_versao_modulo_pen.php b/src/scripts/sei_atualizar_versao_modulo_pen.php index f19135969..a52da150c 100755 --- a/src/scripts/sei_atualizar_versao_modulo_pen.php +++ b/src/scripts/sei_atualizar_versao_modulo_pen.php @@ -7,42 +7,42 @@ class VersaoSei4RN extends InfraScriptVersao { public function __construct() - { - parent::__construct(); + { + parent::__construct(); } protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } protected function verificarVersaoInstaladaControlado() - { - $objInfraParametroDTOFiltro = new InfraParametroDTO(); - $objInfraParametroDTOFiltro->setStrNome(PENIntegracao::PARAMETRO_VERSAO_MODULO); - $objInfraParametroDTOFiltro->retStrNome(); + { + $objInfraParametroDTOFiltro = new InfraParametroDTO(); + $objInfraParametroDTOFiltro->setStrNome(PENIntegracao::PARAMETRO_VERSAO_MODULO); + $objInfraParametroDTOFiltro->retStrNome(); - $objInfraParametroBD = new InfraParametroBD(BancoSEI::getInstance()); - $objInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTOFiltro); + $objInfraParametroBD = new InfraParametroBD(BancoSEI::getInstance()); + $objInfraParametroDTO = $objInfraParametroBD->consultar($objInfraParametroDTOFiltro); if (is_null($objInfraParametroDTO)) { - $objInfraParametroDTO = new InfraParametroDTO(); - $objInfraParametroDTO->setStrNome(PENIntegracao::PARAMETRO_VERSAO_MODULO); - $objInfraParametroDTO->setStrValor('0.0.0'); - $objInfraParametroBD->cadastrar($objInfraParametroDTO); + $objInfraParametroDTO = new InfraParametroDTO(); + $objInfraParametroDTO->setStrNome(PENIntegracao::PARAMETRO_VERSAO_MODULO); + $objInfraParametroDTO->setStrValor('0.0.0'); + $objInfraParametroBD->cadastrar($objInfraParametroDTO); } - return $objInfraParametroDTO->getStrNome(); + return $objInfraParametroDTO->getStrNome(); } // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps public function versao_0_0_0($strVersaoAtual) - { + { } public function atualizarVersaoCompatibilidade($strVersaoAtual) - { - $objAtualizarRN = new PenAtualizarSeiRN(); - $objAtualizarRN->atualizarVersao(); + { + $objAtualizarRN = new PenAtualizarSeiRN(); + $objAtualizarRN->atualizarVersao(); } } @@ -50,309 +50,315 @@ public function atualizarVersaoCompatibilidade($strVersaoAtual) class PenAtualizarSeiRN extends PenAtualizadorRN { - private $objInfraMetaBD = null; + private $objInfraMetaBD; public function __construct() - { - parent::__construct(); + { + parent::__construct(); - $this->objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $this->objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); } protected function inicializarObjInfraIBanco() - { - return BancoSEI::getInstance(); + { + return BancoSEI::getInstance(); } // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded protected function atualizarVersaoConectado() - { + { try { - InfraDebug::getInstance()->setBolLigado(true); - InfraDebug::getInstance()->setBolDebugInfra(true); - InfraDebug::getInstance()->setBolEcho(true); - InfraDebug::getInstance()->limpar(); + InfraDebug::getInstance()->setBolLigado(true); + InfraDebug::getInstance()->setBolDebugInfra(true); + InfraDebug::getInstance()->setBolEcho(true); + InfraDebug::getInstance()->limpar(); - $this->inicializar('INICIANDO ATUALIZACAO DO MODULO TRAMITA GOV.BR NO SEI ' . SEI_VERSAO); + $this->inicializar('INICIANDO ATUALIZACAO DO MODULO TRAMITA GOV.BR NO SEI ' . SEI_VERSAO); - //testando se esta usando BDs suportados - if ( - !(BancoSEI::getInstance() instanceof InfraMySql) && - !(BancoSEI::getInstance() instanceof InfraSqlServer) && - !(BancoSEI::getInstance() instanceof InfraOracle) && - !(BancoSEI::getInstance() instanceof InfraPostgreSql) - ) { + //testando se esta usando BDs suportados + if (!(BancoSEI::getInstance() instanceof InfraMySql) + && !(BancoSEI::getInstance() instanceof InfraSqlServer) + && !(BancoSEI::getInstance() instanceof InfraOracle) + && !(BancoSEI::getInstance() instanceof InfraPostgreSql) + ) { $this->finalizar('BANCO DE DADOS NAO SUPORTADO: ' . get_parent_class(BancoSEI::getInstance()), true); return; } - SessaoSEI::getInstance(false)->simularLogin(SessaoSEI::$USUARIO_SEI, SessaoSEI::$UNIDADE_TESTE); + SessaoSEI::getInstance(false)->simularLogin(SessaoSEI::$USUARIO_SEI, SessaoSEI::$UNIDADE_TESTE); - //testando permissoes de criaes de tabelas - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + //testando permissoes de criaes de tabelas + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); if (count($objInfraMetaBD->obterTabelas('pen_sei_teste')) == 0) { - BancoSEI::getInstance()->executarSql('CREATE TABLE pen_sei_teste (id ' . $objInfraMetaBD->tipoNumero() . ' null)'); + BancoSEI::getInstance()->executarSql('CREATE TABLE pen_sei_teste (id ' . $objInfraMetaBD->tipoNumero() . ' null)'); } - BancoSEI::getInstance()->executarSql('DROP TABLE pen_sei_teste'); + BancoSEI::getInstance()->executarSql('DROP TABLE pen_sei_teste'); - $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - // Aplicao de scripts de atualizao de forma incremental - $strVersaoModuloPen = $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO, false) ?: $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO, false); - // phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment + // Aplicao de scripts de atualizao de forma incremental + $strVersaoModuloPen = $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO, false) ?: $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO, false); + // phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment switch ($strVersaoModuloPen) { case '': // No h nenhuma verso instalada case '0.0.0': - $this->instalarV100(); // Nenhuma verso instalada + $this->instalarV100(); // Nenhuma verso instalada case '1.0.0': - $this->instalarV101(); + $this->instalarV101(); case '1.0.1': - $this->instalarV110(); + $this->instalarV110(); case '1.1.0': - $this->instalarV111(); + $this->instalarV111(); case '1.1.1': //No houve atualizao no banco de dados case '1.1.2': //No houve atualizao no banco de dados case '1.1.3': //No houve atualizao no banco de dados case '1.1.4': //No houve atualizao no banco de dados case '1.1.5': //No houve atualizao no banco de dados case '1.1.6': - $this->instalarV117(); + $this->instalarV117(); case '1.1.7': - $this->instalarV118(); + $this->instalarV118(); case '1.1.8': - $this->instalarV119(); + $this->instalarV119(); case '1.1.9': - $this->instalarV1110(); + $this->instalarV1110(); case '1.1.10': - $this->instalarV1111(); + $this->instalarV1111(); case '1.1.11': - $this->instalarV1112(); + $this->instalarV1112(); case '1.1.12': - $this->instalarV1113(); + $this->instalarV1113(); case '1.1.13': - $this->instalarV1114(); + $this->instalarV1114(); case '1.1.14': - $this->instalarV1115(); + $this->instalarV1115(); case '1.1.15': - $this->instalarV1116(); + $this->instalarV1116(); case '1.1.16': - $this->instalarV1117(); + $this->instalarV1117(); case '1.1.17': - $this->instalarV1200(); + $this->instalarV1200(); case '1.2.0': - $this->instalarV1201(); + $this->instalarV1201(); case '1.2.1': - $this->instalarV1202(); + $this->instalarV1202(); case '1.2.2': - $this->instalarV1203(); + $this->instalarV1203(); case '1.2.3': - $this->instalarV1204(); + $this->instalarV1204(); case '1.2.4': - $this->instalarV1205(); + $this->instalarV1205(); case '1.2.5': - $this->instalarV1206(); + $this->instalarV1206(); case '1.2.6': - $this->instalarV1300(); + $this->instalarV1300(); case '1.3.0': - $this->instalarV1400(); + $this->instalarV1400(); case '1.4.0': - $this->instalarV1401(); + $this->instalarV1401(); case '1.4.1': - $this->instalarV1402(); + $this->instalarV1402(); case '1.4.2': - $this->instalarV1403(); + $this->instalarV1403(); case '1.4.3': - $this->instalarV1500(); + $this->instalarV1500(); case '1.5.0': - $this->instalarV1501(); + $this->instalarV1501(); case '1.5.1': - $this->instalarV1502(); + $this->instalarV1502(); case '1.5.2': - $this->instalarV1503(); + $this->instalarV1503(); case '1.5.3': // Faixa de possveis verses da release 1.5.x de retrocompatibilidade case '1.5.4': // Faixa de possveis verses da release 1.5.x de retrocompatibilidade case '1.5.5': // Faixa de possveis verses da release 1.5.x de retrocompatibilidade case '1.5.6': // Faixa de possveis verses da release 1.5.x de retrocompatibilidade case '1.5.7': - $this->instalarV2000_beta1(); + $this->instalarV2000_beta1(); case '2.0.0-beta1': - $this->instalarV2000_beta2(); + $this->instalarV2000_beta2(); case '2.0.0-beta2': - $this->instalarV2000_beta3(); + $this->instalarV2000_beta3(); case '2.0.0-beta3': - $this->instalarV2000_beta4(); + $this->instalarV2000_beta4(); case '2.0.0-beta4': - $this->instalarV2000_beta5(); + $this->instalarV2000_beta5(); case '2.0.0-beta5': - $this->instalarV2000(); + $this->instalarV2000(); case '2.0.0': - $this->instalarV2001(); + $this->instalarV2001(); case '2.0.1': - $this->instalarV2100(); + $this->instalarV2100(); case '2.1.0': - $this->instalarV2101(); + $this->instalarV2101(); case '2.1.1': - $this->instalarV2102(); + $this->instalarV2102(); case '2.1.2': - $this->instalarV2103(); + $this->instalarV2103(); case '2.1.3': - $this->instalarV2104(); + $this->instalarV2104(); case '2.1.4': - $this->instalarV2105(); + $this->instalarV2105(); case '2.1.5': - $this->instalarV2106(); + $this->instalarV2106(); case '2.1.6': - $this->instalarV2107(); + $this->instalarV2107(); case '2.1.7': - $this->instalarV3000(); + $this->instalarV3000(); case '3.0.0': - $this->instalarV3001(); + $this->instalarV3001(); case '3.0.1': - $this->instalarV3010(); + $this->instalarV3010(); case '3.1.0': - $this->instalarV3011(); + $this->instalarV3011(); case '3.1.1': - $this->instalarV3012(); + $this->instalarV3012(); case '3.1.2': - $this->instalarV3013(); + $this->instalarV3013(); case '3.1.3': - $this->instalarV3014(); + $this->instalarV3014(); case '3.1.4': - $this->instalarV3015(); + $this->instalarV3015(); case '3.1.5': - $this->instalarV3016(); + $this->instalarV3016(); case '3.1.6': - $this->instalarV3017(); + $this->instalarV3017(); case '3.1.7': - $this->instalarV3018(); + $this->instalarV3018(); case '3.1.8': - $this->instalarV3019(); + $this->instalarV3019(); case '3.1.9': - $this->instalarV30110(); + $this->instalarV30110(); case '3.1.10': - $this->instalarV30111(); + $this->instalarV30111(); case '3.1.11': - $this->instalarV30112(); + $this->instalarV30112(); case '3.1.12': - $this->instalarV30113(); + $this->instalarV30113(); case '3.1.13': - $this->instalarV30114(); + $this->instalarV30114(); case '3.1.14': - $this->instalarV30115(); + $this->instalarV30115(); case '3.1.15': - $this->instalarV30116(); + $this->instalarV30116(); case '3.1.16': - $this->instalarV30117(); + $this->instalarV30117(); case '3.1.17': - $this->instalarV30118(); + $this->instalarV30118(); case '3.1.18': - $this->instalarV30119(); + $this->instalarV30119(); case '3.1.19': - $this->instalarV30120(); + $this->instalarV30120(); case '3.1.20': - $this->instalarV30121(); + $this->instalarV30121(); case '3.1.21': - $this->instalarV30122(); + $this->instalarV30122(); case '3.1.22': - $this->instalarV3020(); + $this->instalarV3020(); case '3.2.0': - $this->instalarV3021(); + $this->instalarV3021(); case '3.2.1': - $this->instalarV3022(); + $this->instalarV3022(); case '3.2.2': - $this->instalarV3023(); + $this->instalarV3023(); case '3.2.3': - $this->instalarV3024(); + $this->instalarV3024(); case '3.2.4': - $this->instalarV3030(); + $this->instalarV3030(); case '3.3.0': - $this->instalarV3031(); + $this->instalarV3031(); case '3.3.1': - $this->instalarV3032(); + $this->instalarV3032(); case '3.3.2': - $this->instalarV3040(); + $this->instalarV3040(); case '3.4.0': - $this->instalarV3050(); + $this->instalarV3050(); case '3.5.0': - $this->instalarV3060(); + $this->instalarV3060(); case '3.6.0': - $this->instalarV3061(); + $this->instalarV3061(); case '3.6.1': - $this->instalarV3062(); + $this->instalarV3062(); case '3.6.2': - $this->instalarV3070(); + $this->instalarV3070(); + case '3.7.0': + $this->instalarV3080(); + case '3.8.0': + $this->instalarV4000(); break; // Ausncia de [break;] proposital para realizar a atualizao incremental de verses default: - $this->finalizar('VERSAO DO MDULO J CONSTA COMO ATUALIZADA'); + $this->finalizar('VERSAO DO MDULO J CONSTA COMO ATUALIZADA'); return; } - // phpcs:enable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment + // phpcs:enable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment - $this->finalizar('FIM'); + $this->finalizar('FIM'); } catch (Exception $e) { - InfraDebug::getInstance()->setBolLigado(false); - InfraDebug::getInstance()->setBolDebugInfra(false); - InfraDebug::getInstance()->setBolEcho(false); - throw new InfraException("Erro atualizando VERSAO: $e", $e); + InfraDebug::getInstance()->setBolLigado(false); + InfraDebug::getInstance()->setBolDebugInfra(false); + InfraDebug::getInstance()->setBolEcho(false); + throw new InfraException("Erro atualizando VERSAO: $e", $e); } } - /** - * Cria um novo parmetro - * @return int Cdigo do Parametro gerado - */ + /** + * Cria um novo parmetro + * + * @return int Cdigo do Parametro gerado + */ protected function criarParametro($strNome, $strValor, $strDescricao) - { - $objDTO = new PenParametroDTO(); - $objDTO->setStrNome($strNome); - $objDTO->setStrValor($strValor); - $objDTO->setStrDescricao($strDescricao); - $objDTO->retStrNome(); + { + $objDTO = new PenParametroDTO(); + $objDTO->setStrNome($strNome); + $objDTO->setStrValor($strValor); + $objDTO->setStrDescricao($strDescricao); + $objDTO->retStrNome(); - $objBD = new PenParametroBD(BancoSEI::getInstance()); - $objDTOCadastrado = $objBD->cadastrar($objDTO); + $objBD = new PenParametroBD(BancoSEI::getInstance()); + $objDTOCadastrado = $objBD->cadastrar($objDTO); - return $objDTOCadastrado->getStrNome(); + return $objDTOCadastrado->getStrNome(); } - /** - * Remove parmetro de configurao do mdulo da base de dados - * @return int Cdigo do Parametro gerado - */ + /** + * Remove parmetro de configurao do mdulo da base de dados + * + * @return int Cdigo do Parametro gerado + */ protected function removerParametro($strNome) - { - $objDTO = new PenParametroDTO(); - $objDTO->setStrNome($strNome); - $objDTO->retStrNome(); + { + $objDTO = new PenParametroDTO(); + $objDTO->setStrNome($strNome); + $objDTO->retStrNome(); - $objBD = new PenParametroBD(BancoSEI::getInstance()); - $objBD->excluir($objDTO); + $objBD = new PenParametroBD(BancoSEI::getInstance()); + $objBD->excluir($objDTO); } - /** - * Remove um parmetro do infra_parametros - * @return string Nome do parmetro - */ + /** + * Remove um parmetro do infra_parametros + * + * @return string Nome do parmetro + */ protected function deletaParametroInfra($strNome) - { - $objDTO = new InfraParametroDTO(); - $objDTO->setStrNome($strNome); + { + $objDTO = new InfraParametroDTO(); + $objDTO->setStrNome($strNome); - $objBD = new InfraParametroBD(BancoSEI::getInstance()); - return $objBD->excluir($objDTO); + $objBD = new InfraParametroBD(BancoSEI::getInstance()); + return $objBD->excluir($objDTO); } - /** - * Remove todos os ndices criados para o conjunto de tabelas informado - */ + /** + * Remove todos os ndices criados para o conjunto de tabelas informado + */ protected function removerIndicesTabela($parObjInfraMetaBD, $parFiltroTabelas) - { - $arrTabelasExclusao = is_array($parFiltroTabelas) ? $parFiltroTabelas : array($parFiltroTabelas); + { + $arrTabelasExclusao = is_array($parFiltroTabelas) ? $parFiltroTabelas : [$parFiltroTabelas]; foreach ($arrTabelasExclusao as $strTabelaExclusao) { - $arrStrIndices = $parObjInfraMetaBD->obterIndices(null, $strTabelaExclusao); + $arrStrIndices = $parObjInfraMetaBD->obterIndices(null, $strTabelaExclusao); foreach ($arrStrIndices as $strTabela => $arrStrIndices) { if ($strTabela == $strTabelaExclusao) { foreach ($arrStrIndices as $strNomeIndice => $arrStrColunas) { @@ -363,71 +369,71 @@ protected function removerIndicesTabela($parObjInfraMetaBD, $parFiltroTabelas) } } - /** - * Atualiza o nmero de verso do mdulo nas tabelas de parmetro do sistema - * - * @param string $parStrNumeroVersao - * @return void - */ + /** + * Atualiza o nmero de verso do mdulo nas tabelas de parmetro do sistema + * + * @param string $parStrNumeroVersao + * @return void + */ private function atualizarNumeroVersao($parStrNumeroVersao) - { - $objInfraParametroDTO = new InfraParametroDTO(); - $objInfraParametroDTO->setStrNome(array(PENIntegracao::PARAMETRO_VERSAO_MODULO, PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO), InfraDTO::$OPER_IN); - $objInfraParametroDTO->retTodos(); - $objInfraParametroBD = new InfraParametroBD(BancoSEI::getInstance()); - $arrObjInfraParametroDTO = $objInfraParametroBD->listar($objInfraParametroDTO); + { + $objInfraParametroDTO = new InfraParametroDTO(); + $objInfraParametroDTO->setStrNome([PENIntegracao::PARAMETRO_VERSAO_MODULO, PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO], InfraDTO::$OPER_IN); + $objInfraParametroDTO->retTodos(); + $objInfraParametroBD = new InfraParametroBD(BancoSEI::getInstance()); + $arrObjInfraParametroDTO = $objInfraParametroBD->listar($objInfraParametroDTO); foreach ($arrObjInfraParametroDTO as $objInfraParametroDTO) { - $objInfraParametroDTO->setStrValor($parStrNumeroVersao); - $objInfraParametroBD->alterar($objInfraParametroDTO); + $objInfraParametroDTO->setStrValor($parStrNumeroVersao); + $objInfraParametroBD->alterar($objInfraParametroDTO); } } - /** - * Remove a chave primria da tabela indicada, removendo tambm o ndice vinculado, caso seja necessrio - * - * Necessrio dependendo da verso do banco de dados Oracle utilizado que pode no remover um ndice criado com mesmo - * nome da chave primria, impedindo que este objeto seja recriado posteriormente na base de dados - * - * @param [type] $parStrNomeTabela - * @param [type] $parStrNomeChavePrimario - * @return void - */ + /** + * Remove a chave primria da tabela indicada, removendo tambm o ndice vinculado, caso seja necessrio + * + * Necessrio dependendo da verso do banco de dados Oracle utilizado que pode no remover um ndice criado com mesmo + * nome da chave primria, impedindo que este objeto seja recriado posteriormente na base de dados + * + * @param [type] $parStrNomeTabela + * @param [type] $parStrNomeChavePrimario + * @return void + */ private function excluirChavePrimariaComIndice($parStrNomeTabela, $parStrNomeChavePrimaria, $bolSuprimirErro = false) - { + { try { - $this->objInfraMetaBD->excluirChavePrimaria($parStrNomeTabela, $parStrNomeChavePrimaria); + $this->objInfraMetaBD->excluirChavePrimaria($parStrNomeTabela, $parStrNomeChavePrimaria); try { $this->objInfraMetaBD->excluirIndice($parStrNomeTabela, $parStrNomeChavePrimaria); } catch (\Exception $e) { - //Caso o ndice no seja localizado, nada dever ser feito pois a existncia depende de verso do banco de dados + //Caso o ndice no seja localizado, nada dever ser feito pois a existncia depende de verso do banco de dados } } catch (Exception $e) { - // Mensagem de erro deve ser suprimida caso seja indicado pelo usurio + // Mensagem de erro deve ser suprimida caso seja indicado pelo usurio if (!$bolSuprimirErro) { - throw $e; + throw $e; } } } private function excluirChaveEstrangeira($parStrTabela, $parStrNomeChaveEstrangeira, $bolSuprimirErro = false) - { + { try { - $this->objInfraMetaBD->excluirChaveEstrangeira($parStrTabela, $parStrNomeChaveEstrangeira); + $this->objInfraMetaBD->excluirChaveEstrangeira($parStrTabela, $parStrNomeChaveEstrangeira); } catch (\Exception $e) { - // Mensagem de erro deve ser suprimida caso seja indicado pelo usurio + // Mensagem de erro deve ser suprimida caso seja indicado pelo usurio if (!$bolSuprimirErro) { - throw $e; + throw $e; } } } private function listarComponenteDigitaisDesatualizados() - { - $objInfraBanco = BancoSEI::getInstance(); - $sql = "select a.numero_registro, a.protocolo, a.id_procedimento, a.id_documento, a.id_tramite, a.ordem, a.ordem_documento + { + $objInfraBanco = BancoSEI::getInstance(); + $sql = "select a.numero_registro, a.protocolo, a.id_procedimento, a.id_documento, a.id_tramite, a.ordem, a.ordem_documento from md_pen_componente_digital a where not exists( select b.numero_registro, b.id_procedimento, b.id_documento, b.id_tramite, count(b.id_anexo) @@ -440,1129 +446,844 @@ private function listarComponenteDigitaisDesatualizados() having count(b.id_anexo) > 1 ) and a.ordem <> 1 and a.ordem_documento = 1"; - return $objInfraBanco->consultarSql($sql); + return $objInfraBanco->consultarSql($sql); } - /* Contm atualizaes da versao 1.0.0 do modulo */ + /* Contm atualizaes da versao 1.0.0 do modulo */ // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded protected function instalarV100() - { - - $objInfraBanco = BancoSEI::getInstance(); - $objMetaBD = $this->objMeta; - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_processo_eletronico', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_procedimento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('numero_registro')), - 'uk' => array('numero_registro', 'id_procedimento'), - 'fks' => array( - 'procedimento' => array( - 'nome' => 'fk_md_pen_proc_eletr_procedim', - 'cols' => array('id_procedimento', 'id_procedimento') - ), - ) - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_tramite', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'ticket_envio_componentes' => array($objMetaBD->tipoTextoGrande(), PenMetaBD::SNULLO), - 'dth_registro' => array($objMetaBD->tipoDataHora(), PenMetaBD::SNULLO), - 'id_andamento' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'id_usuario' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO) - ), - 'pk' => array('cols' => array('id_tramite')), - 'uk' => array('numero_registro', 'id_tramite'), - 'fks' => array( - 'md_pen_processo_eletronico' => array( - 'nome' => 'fk_md_pen_tramite_proc_eletr', - 'cols' => array('numero_registro', 'numero_registro') - ), - 'usuario' => array('id_usuario', 'id_usuario'), - 'unidade' => array('id_unidade', 'id_unidade'), - ) - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_especie_documental', - 'cols' => array( - 'id_especie' => array($objMetaBD->tipoNumero(16), PenMetaBD::NNULLO), - 'nome_especie' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO), - // Campo no mais necessrio aps a verso 2.0.0 do mdulo - 'descricao' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::SNULLO) - ), - 'pk' => array('cols' => array('id_especie')), - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_tramite_pendente', - 'cols' => array( - 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'numero_tramite' => array($objMetaBD->tipoTextoVariavel(255)), - 'id_atividade_expedicao' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO) - ), - 'pk' => array('cols' => array('id')), - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_tramite_recibo_envio', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'dth_recebimento' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO), - 'hash_assinatura' => array($objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('numero_registro', 'id_tramite')), - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_procedimento_andamento', - 'cols' => array( - 'id_andamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_procedimento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'situacao' => array($objMetaBD->tipoTextoFixo(1), 'N'), - 'data' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO), - 'mensagem' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO), - 'hash' => array($objMetaBD->tipoTextoFixo(32), PenMetaBD::NNULLO), - 'id_tarefa' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO) - ), - 'pk' => array('nome' => 'pk_md_pen_procedim_andamen', 'cols' => array('id_andamento')), - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_protocolo', - 'cols' => array( - 'id_protocolo' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'sin_obteve_recusa' => array($objMetaBD->tipoTextoFixo(1), 'N') - ), - 'pk' => array('cols' => array('id_protocolo')), - 'fks' => array( - 'protocolo' => array('id_protocolo', 'id_protocolo') - ) - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_recibo_tramite', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'dth_recebimento' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO), - 'hash_assinatura' => array($objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO), - 'cadeia_certificado' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('numero_registro', 'id_tramite')), - 'fks' => array( - 'md_pen_tramite' => array( - 'nome' => 'fk_md_pen_rec_tramite_tramite', - 'cols' => array(array('numero_registro', 'id_tramite'), array('numero_registro', 'id_tramite')) - ) - ) - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_recibo_tramite_enviado', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'dth_recebimento' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO), - 'hash_assinatura' => array($objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO), - 'cadeia_certificado ' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO) - ), - 'pk' => array('nome' => 'pk_md_pen_recibo_tram_envia', 'cols' => array('numero_registro', 'id_tramite')), - 'fks' => array( - 'md_pen_tramite' => array( - 'nome' => 'fk_md_pen_rec_tram_env_tram', - 'cols' => array(array('numero_registro', 'id_tramite'), array('numero_registro', 'id_tramite')) - ) - ) - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_recibo_tramite_recebido', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'dth_recebimento' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO), - 'hash_assinatura' => array($objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO) - ), - 'pk' => array('nome' => 'pk_md_pen_recibo_tramite_receb', 'cols' => array('numero_registro', 'id_tramite', 'hash_assinatura')), - 'fks' => array( - 'md_pen_tramite' => array( - 'nome' => 'fk_md_pen_recibo_receb_tram', - 'cols' => array(array('numero_registro', 'id_tramite'), array('numero_registro', 'id_tramite')) - ) - ) - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_processo_apensado', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_procedimento_apensado' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'protocolo' => array($objMetaBD->tipoTextoVariavel(50), PenMetaBD::NNULLO) - ), - 'pk' => array('nome' => 'pk_md_pen_rel_processo_apensad', 'cols' => array('numero_registro', 'id_procedimento_apensado')), - 'fks' => array( - 'md_pen_processo_eletronico' => array( - 'nome' => 'fk_md_pen_proc_eletr_apensado', - 'cols' => array('numero_registro', 'numero_registro') - ) - ) - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_serie_especie', - 'cols' => array( - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'sin_padrao' => array($objMetaBD->tipoTextoFixo(1), 'N') - ), - 'pk' => array('cols' => array('id_serie')), - 'uk' => array('codigo_especie', 'id_serie'), - 'fks' => array( - 'serie' => array('nome' => ' fk_md_pen_rel_serie_especie', 'cols' => array('id_serie', 'id_serie')) - ) - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_tarefa_operacao', - 'cols' => array( - 'id_tarefa' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'codigo_operacao' => array($objMetaBD->tipoTextoFixo(2), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id_tarefa', 'codigo_operacao')), - 'fks' => array( - 'tarefa' => array('nome' => 'fk_md_pen_rel_operacao_tarefa', 'cols' => array('id_tarefa', 'id_tarefa')) - ) - )); - - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_tipo_doc_map_rec', - 'cols' => array( - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'sin_padrao' => array($objMetaBD->tipoTextoFixo(2), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('codigo_especie', 'id_serie')), - 'fks' => array( - 'serie' => array('nome' => 'fk_md_pen_rel_tipo_doc_serie', 'cols' => array('id_serie', 'id_serie')) - ) - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_componente_digital', - 'cols' => array( - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_procedimento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_documento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_anexo' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'protocolo' => array($objMetaBD->tipoTextoVariavel(50), PenMetaBD::NNULLO), - 'nome' => array($objMetaBD->tipoTextoVariavel(100), PenMetaBD::NNULLO), - 'hash_conteudo' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO), - 'algoritmo_hash' => array($objMetaBD->tipoTextoVariavel(20), PenMetaBD::NNULLO), - 'tipo_conteudo' => array($objMetaBD->tipoTextoFixo(3), PenMetaBD::NNULLO), - 'mime_type' => array($objMetaBD->tipoTextoVariavel(100), PenMetaBD::NNULLO), - 'dados_complementares' => array($objMetaBD->tipoTextoVariavel(1000), PenMetaBD::SNULLO), - 'tamanho' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'ordem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'sin_enviar' => array($objMetaBD->tipoTextoFixo(1), 'N') - ), - 'pk' => array('cols' => array('numero_registro', 'id_procedimento', 'id_documento', 'id_tramite')), - 'fks' => array( - 'anexo' => array('nome' => 'fk_md_pen_comp_dig_anexo', 'cols' => array('id_anexo', 'id_anexo')), - 'documento' => array('nome' => 'fk_md_pen_comp_dig_documento', 'cols' => array('id_documento', 'id_documento')), - 'procedimento' => array('nome' => 'fk_md_pen_comp_dig_procediment', 'cols' => array('id_procedimento', 'id_procedimento')), - 'md_pen_processo_eletronico' => array('nome' => 'fk_md_pen_comp_dig_proc_eletr', 'cols' => array('numero_registro', 'numero_registro')), - 'md_pen_tramite' => array('nome' => 'fk_md_pen_comp_dig_tramite', 'cols' => array(array('numero_registro', 'id_tramite'), array('numero_registro', 'id_tramite'))) - ) - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_unidade', - 'cols' => array( - 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_unidade_rh' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id_unidade')), - 'fks' => array( - 'unidade' => array('id_unidade', 'id_unidade') - ) - )); - - - //---------------------------------------------------------------------- - // Novas sequncias - //---------------------------------------------------------------------- - $objInfraSequencia = new InfraSequencia($objInfraBanco); + { + + $objInfraBanco = BancoSEI::getInstance(); + $objMetaBD = $this->objMeta; + + $objMetaBD->criarTabela(['tabela' => 'md_pen_processo_eletronico', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_procedimento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['numero_registro']], 'uk' => ['numero_registro', 'id_procedimento'], 'fks' => ['procedimento' => ['nome' => 'fk_md_pen_proc_eletr_procedim', 'cols' => ['id_procedimento', 'id_procedimento']]]]); + + + $objMetaBD->criarTabela(['tabela' => 'md_pen_tramite', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'ticket_envio_componentes' => [$objMetaBD->tipoTextoGrande(), PenMetaBD::SNULLO], 'dth_registro' => [$objMetaBD->tipoDataHora(), PenMetaBD::SNULLO], 'id_andamento' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'id_usuario' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'id_unidade' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO]], 'pk' => ['cols' => ['id_tramite']], 'uk' => ['numero_registro', 'id_tramite'], 'fks' => ['md_pen_processo_eletronico' => ['nome' => 'fk_md_pen_tramite_proc_eletr', 'cols' => ['numero_registro', 'numero_registro']], 'usuario' => ['id_usuario', 'id_usuario'], 'unidade' => ['id_unidade', 'id_unidade']]]); + + + $objMetaBD->criarTabela( + ['tabela' => 'md_pen_especie_documental', 'cols' => [ + 'id_especie' => [$objMetaBD->tipoNumero(16), PenMetaBD::NNULLO], + 'nome_especie' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO], + // Campo no mais necessrio aps a verso 2.0.0 do mdulo + 'descricao' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::SNULLO], + ], 'pk' => ['cols' => ['id_especie']]] + ); + + + $objMetaBD->criarTabela(['tabela' => 'md_pen_tramite_pendente', 'cols' => ['id' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'numero_tramite' => [$objMetaBD->tipoTextoVariavel(255)], 'id_atividade_expedicao' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO]], 'pk' => ['cols' => ['id']]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_tramite_recibo_envio', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'dth_recebimento' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO], 'hash_assinatura' => [$objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['numero_registro', 'id_tramite']]]); + + + $objMetaBD->criarTabela(['tabela' => 'md_pen_procedimento_andamento', 'cols' => ['id_andamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_procedimento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'situacao' => [$objMetaBD->tipoTextoFixo(1), 'N'], 'data' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO], 'mensagem' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO], 'hash' => [$objMetaBD->tipoTextoFixo(32), PenMetaBD::NNULLO], 'id_tarefa' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO]], 'pk' => ['nome' => 'pk_md_pen_procedim_andamen', 'cols' => ['id_andamento']]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_protocolo', 'cols' => ['id_protocolo' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'sin_obteve_recusa' => [$objMetaBD->tipoTextoFixo(1), 'N']], 'pk' => ['cols' => ['id_protocolo']], 'fks' => ['protocolo' => ['id_protocolo', 'id_protocolo']]]); + + + $objMetaBD->criarTabela(['tabela' => 'md_pen_recibo_tramite', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'dth_recebimento' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO], 'hash_assinatura' => [$objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO], 'cadeia_certificado' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['numero_registro', 'id_tramite']], 'fks' => ['md_pen_tramite' => ['nome' => 'fk_md_pen_rec_tramite_tramite', 'cols' => [['numero_registro', 'id_tramite'], ['numero_registro', 'id_tramite']]]]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_recibo_tramite_enviado', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'dth_recebimento' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO], 'hash_assinatura' => [$objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO], 'cadeia_certificado ' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO]], 'pk' => ['nome' => 'pk_md_pen_recibo_tram_envia', 'cols' => ['numero_registro', 'id_tramite']], 'fks' => ['md_pen_tramite' => ['nome' => 'fk_md_pen_rec_tram_env_tram', 'cols' => [['numero_registro', 'id_tramite'], ['numero_registro', 'id_tramite']]]]]); + + + $objMetaBD->criarTabela(['tabela' => 'md_pen_recibo_tramite_recebido', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'dth_recebimento' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO], 'hash_assinatura' => [$objMetaBD->tipoTextoVariavel(345), PenMetaBD::NNULLO]], 'pk' => ['nome' => 'pk_md_pen_recibo_tramite_receb', 'cols' => ['numero_registro', 'id_tramite', 'hash_assinatura']], 'fks' => ['md_pen_tramite' => ['nome' => 'fk_md_pen_recibo_receb_tram', 'cols' => [['numero_registro', 'id_tramite'], ['numero_registro', 'id_tramite']]]]]); + + + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_processo_apensado', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_procedimento_apensado' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'protocolo' => [$objMetaBD->tipoTextoVariavel(50), PenMetaBD::NNULLO]], 'pk' => ['nome' => 'pk_md_pen_rel_processo_apensad', 'cols' => ['numero_registro', 'id_procedimento_apensado']], 'fks' => ['md_pen_processo_eletronico' => ['nome' => 'fk_md_pen_proc_eletr_apensado', 'cols' => ['numero_registro', 'numero_registro']]]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_serie_especie', 'cols' => ['codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'sin_padrao' => [$objMetaBD->tipoTextoFixo(1), 'N']], 'pk' => ['cols' => ['id_serie']], 'uk' => ['codigo_especie', 'id_serie'], 'fks' => ['serie' => ['nome' => ' fk_md_pen_rel_serie_especie', 'cols' => ['id_serie', 'id_serie']]]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_tarefa_operacao', 'cols' => ['id_tarefa' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'codigo_operacao' => [$objMetaBD->tipoTextoFixo(2), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_tarefa', 'codigo_operacao']], 'fks' => ['tarefa' => ['nome' => 'fk_md_pen_rel_operacao_tarefa', 'cols' => ['id_tarefa', 'id_tarefa']]]]); + + + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_tipo_doc_map_rec', 'cols' => ['codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'sin_padrao' => [$objMetaBD->tipoTextoFixo(2), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['codigo_especie', 'id_serie']], 'fks' => ['serie' => ['nome' => 'fk_md_pen_rel_tipo_doc_serie', 'cols' => ['id_serie', 'id_serie']]]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_componente_digital', 'cols' => ['numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_procedimento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_documento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_anexo' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'protocolo' => [$objMetaBD->tipoTextoVariavel(50), PenMetaBD::NNULLO], 'nome' => [$objMetaBD->tipoTextoVariavel(100), PenMetaBD::NNULLO], 'hash_conteudo' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO], 'algoritmo_hash' => [$objMetaBD->tipoTextoVariavel(20), PenMetaBD::NNULLO], 'tipo_conteudo' => [$objMetaBD->tipoTextoFixo(3), PenMetaBD::NNULLO], 'mime_type' => [$objMetaBD->tipoTextoVariavel(100), PenMetaBD::NNULLO], 'dados_complementares' => [$objMetaBD->tipoTextoVariavel(1000), PenMetaBD::SNULLO], 'tamanho' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'ordem' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'sin_enviar' => [$objMetaBD->tipoTextoFixo(1), 'N']], 'pk' => ['cols' => ['numero_registro', 'id_procedimento', 'id_documento', 'id_tramite']], 'fks' => ['anexo' => ['nome' => 'fk_md_pen_comp_dig_anexo', 'cols' => ['id_anexo', 'id_anexo']], 'documento' => ['nome' => 'fk_md_pen_comp_dig_documento', 'cols' => ['id_documento', 'id_documento']], 'procedimento' => ['nome' => 'fk_md_pen_comp_dig_procediment', 'cols' => ['id_procedimento', 'id_procedimento']], 'md_pen_processo_eletronico' => ['nome' => 'fk_md_pen_comp_dig_proc_eletr', 'cols' => ['numero_registro', 'numero_registro']], 'md_pen_tramite' => ['nome' => 'fk_md_pen_comp_dig_tramite', 'cols' => [['numero_registro', 'id_tramite'], ['numero_registro', 'id_tramite']]]]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_unidade', 'cols' => ['id_unidade' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_unidade_rh' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_unidade']], 'fks' => ['unidade' => ['id_unidade', 'id_unidade']]]); + + + //---------------------------------------------------------------------- + // Novas sequncias + //---------------------------------------------------------------------- + $objInfraSequencia = new InfraSequencia($objInfraBanco); if (!$objInfraSequencia->verificarSequencia('md_pen_procedimento_andamento')) { - $objInfraSequencia->criarSequencia('md_pen_procedimento_andamento', '1', '1', '9999999999'); + $objInfraSequencia->criarSequencia('md_pen_procedimento_andamento', '1', '1', '9999999999'); } if (!$objInfraSequencia->verificarSequencia('md_pen_tramite_pendente')) { - $objInfraSequencia->criarSequencia('md_pen_tramite_pendente', '1', '1', '9999999999'); + $objInfraSequencia->criarSequencia('md_pen_tramite_pendente', '1', '1', '9999999999'); } - //---------------------------------------------------------------------- - // Parmetros - //---------------------------------------------------------------------- + //---------------------------------------------------------------------- + // Parmetros + //---------------------------------------------------------------------- - $objInfraParametro = new InfraParametro($objInfraBanco); + $objInfraParametro = new InfraParametro($objInfraBanco); - $objInfraParametro->setValor('PEN_ID_REPOSITORIO_ORIGEM', ''); - $objInfraParametro->setValor('PEN_ENDERECO_WEBSERVICE', ''); - $objInfraParametro->setValor('PEN_SENHA_CERTIFICADO_DIGITAL', '1234'); - $objInfraParametro->setValor('PEN_TIPO_PROCESSO_EXTERNO', ''); - $objInfraParametro->setValor('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO', 'N'); - $objInfraParametro->setValor('PEN_ENDERECO_WEBSERVICE_PENDENCIAS', ''); - $objInfraParametro->setValor('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', ''); - $objInfraParametro->setValor('PEN_LOCALIZACAO_CERTIFICADO_DIGITAL', ''); + $objInfraParametro->setValor('PEN_ID_REPOSITORIO_ORIGEM', ''); + $objInfraParametro->setValor('PEN_ENDERECO_WEBSERVICE', ''); + $objInfraParametro->setValor('PEN_SENHA_CERTIFICADO_DIGITAL', '1234'); + $objInfraParametro->setValor('PEN_TIPO_PROCESSO_EXTERNO', ''); + $objInfraParametro->setValor('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO', 'N'); + $objInfraParametro->setValor('PEN_ENDERECO_WEBSERVICE_PENDENCIAS', ''); + $objInfraParametro->setValor('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', ''); + $objInfraParametro->setValor('PEN_LOCALIZACAO_CERTIFICADO_DIGITAL', ''); - //---------------------------------------------------------------------- - // Especie de Documento - //---------------------------------------------------------------------- + //---------------------------------------------------------------------- + // Especie de Documento + //---------------------------------------------------------------------- - $objBD = new EspecieDocumentalBD(BancoSEI::getInstance()); - $objDTO = new EspecieDocumentalDTO(); + $objBD = new EspecieDocumentalBD(BancoSEI::getInstance()); + $objDTO = new EspecieDocumentalDTO(); - $fnCadastrar = function ($dblIdEspecie, $strNomeEspecie, $strDescricao) use ($objDTO, $objBD) { + $fnCadastrar = function ($dblIdEspecie, $strNomeEspecie, $strDescricao) use ($objDTO, $objBD): void { - $objDTO->unSetTodos(); - $objDTO->setStrNomeEspecie($strNomeEspecie); + $objDTO->unSetTodos(); + $objDTO->setStrNomeEspecie($strNomeEspecie); - if ($objBD->contar($objDTO) == 0) { - $objDTO->setDblIdEspecie($dblIdEspecie); - $objBD->cadastrar($objDTO); - } - }; - - $fnCadastrar(1, 'Abaixo-assinado', 'Podendo ser complementado: de Reivindicao'); - $fnCadastrar(2, 'Acrdo', 'Expressa deciso proferida pelo Conselho Diretor, no abrangida pelos demais instrumentos deliberativos anteriores.'); - $fnCadastrar(3, 'Acordo', 'Podendo ser complementado: de Nvel de Servio; Coletivo de Trabalho'); - $fnCadastrar(4, 'Alvar', 'Podendo ser complementado: de Funcionamento; Judicial'); - $fnCadastrar(5, 'Anais', 'Podendo ser complementado: de Eventos; de Engenharia'); - $fnCadastrar(6, 'Anteprojeto', 'Podendo ser complementado: de Lei'); - $fnCadastrar(7, 'Aplice', 'Podendo ser complementado: de Seguro'); - $fnCadastrar(8, 'Apostila', 'Podendo ser complementado: de Curso'); - $fnCadastrar(9, 'Ata', 'Como Documento Externo pode ser complementado: de Reunio; de Realizao de Prego'); - $fnCadastrar(10, 'Atestado', 'Podendo ser complementado: Mdico; de Comparecimento; de Capacidade Tcnica'); - $fnCadastrar(11, 'Ato', 'Expressa deciso sobre outorga, expedio, modificao, transferncia, prorrogao, adaptao e extino de concesses, permisses e autorizaes para explorao de servios, uso de recursos escassos e explorao de satlite, e Chamamento Pblico.'); - $fnCadastrar(12, 'Auto', 'Podendo ser complementado: de Vistoria; de Infrao'); - $fnCadastrar(13, 'Aviso', 'Podendo ser complementado: de Recebimento; de Sinistro; de Frias'); - $fnCadastrar(14, 'Balancete', 'Podendo ser complementado: Financeiro'); - $fnCadastrar(15, 'Balano', 'Podendo ser complementado: Patrimonial - BP; Financeiro'); - $fnCadastrar(16, 'Bilhete', 'Podendo ser complementado: de Pagamento; de Loteria'); - $fnCadastrar(17, 'Boletim', 'Podendo ser complementado: de Ocorrncia; Informativo'); - $fnCadastrar(18, 'Carta', 'Podendo ser complementado: Convite'); - $fnCadastrar(19, 'Cartaz', 'Podendo ser complementado: de Evento'); - $fnCadastrar(20, 'Cdula', 'Podendo ser complementado: de Identidade; de Crdito Bancrio; de Crdito Comercial; de Crdito Imobilirio'); - $fnCadastrar(21, 'Certido', 'Como Documento Externo pode ser complementado: de Tempo de Servio; de Nascimento; de Casamento; de bito; Negativa de Falncia ou Concordata; Negativa de Dbitos Trabalhistas; Negativa de Dbitos Tributrios'); - $fnCadastrar(22, 'Certificado', 'Podendo ser complementado: de Concluso de Curso; de Calibrao de Equipamento; de Marca'); - $fnCadastrar(23, 'Cheque', 'Podendo ser complementado: Cauo'); - $fnCadastrar(24, 'Comprovante', 'Podendo ser complementado: de Despesa; de Rendimento; de Residncia; de Matrcula; de Unio Estvel'); - $fnCadastrar(25, 'Comunicado', 'Expediente interno entre uma unidade administrativa e um servidor ou entre um servidor e uma unidade administrativa de um mesmo rgo pblico.'); - $fnCadastrar(26, 'Consulta', 'Podendo ser complementado: Pblica; Interna'); - $fnCadastrar(27, 'Contracheque', 'Espcie prpria'); - $fnCadastrar(28, 'Contrato', 'Como Documento Externo pode ser complementado: Social'); - $fnCadastrar(29, 'Convnio', 'Espcie prpria'); - $fnCadastrar(30, 'Convite', 'Podendo ser complementado: de Reunio; para Evento; de Casamento'); - $fnCadastrar(31, 'Conveno', 'Podendo ser complementado: Coletiva de Trabalho; Internacional'); - $fnCadastrar(32, 'Crach', 'Podendo ser complementado: de Identificao; de Evento'); - $fnCadastrar(33, 'Cronograma', 'Podendo ser complementado: de Projeto; de Estudos'); - $fnCadastrar(34, 'Currculo', 'Podendo ser complementado: de Candidato'); - $fnCadastrar(35, 'Debnture', 'Espcie prpria'); - $fnCadastrar(36, 'Deciso', 'Podendo ser complementado: Administrativa; Judicial'); - $fnCadastrar(37, 'Declarao', 'Como Documento Externo pode ser complementado: de Imposto de Renda; de Conformidade; de Responsabilidade Tcnica; de Acumulao de Aposentadoria; de Acumulao de Cargos; de Informaes Econmico-Fiscais da Pessoa Jurdica $fnCadastrar(DIPJ);'); - $fnCadastrar(38, 'Decreto', 'Espcie prpria'); - $fnCadastrar(39, 'Deliberao', 'Podendo ser complementado: de Recursos; do Conselho'); - $fnCadastrar(40, 'Demonstrativo', 'Podendo ser complementado: Financeiro; de Pagamento; de Arrecadao'); - $fnCadastrar(41, 'Depoimento', 'Podendo ser complementado: das Testemunhas'); - $fnCadastrar(42, 'Despacho', 'Espcie prpria'); - $fnCadastrar(43, 'Dirio', 'Podendo ser complementado: de Justia; Oficial'); - $fnCadastrar(44, 'Diploma', 'Podendo ser complementado: de Concluso de Curso'); - $fnCadastrar(45, 'Diretriz', 'Podendo ser complementado: Oramentria'); - $fnCadastrar(46, 'Dissertao', 'Podendo ser complementado: de Mestrado'); - $fnCadastrar(47, 'Dossi', 'Podendo ser complementado: de Processo; Tcnico'); - $fnCadastrar(48, 'Edital', 'Podendo ser complementado: de Convocao; de Intimao; de Lanamento'); - $fnCadastrar(49, 'E-mail', 'Indicado nos Parmetros para corresponder ao envio de Correspondncia Eletrnica do SEI'); - $fnCadastrar(50, 'Embargos', 'Podendo ser complementado: de Declarao; de Execuo ou Infringentes'); - $fnCadastrar(51, 'Emenda', 'Podendo ser complementado: Constitucional; de Comisso; de Bancada; de Relatoria'); - $fnCadastrar(52, 'Escala', 'Podendo ser complementado: de Frias'); - $fnCadastrar(53, 'Escritura', 'Podendo ser complementado: Pblica; de Imvel'); - $fnCadastrar(54, 'Estatuto', 'Podendo ser complementado: Social'); - $fnCadastrar(55, 'Exposio de Motivos', 'Espcie prpria'); - $fnCadastrar(56, 'Extrato', 'Podendo ser complementado: de Sistemas; Bancrio'); - $fnCadastrar(57, 'Fatura', 'Espcie prpria'); - $fnCadastrar(58, 'Ficha', 'Podendo ser complementado: de Cadastro; de Inscrio'); - $fnCadastrar(59, 'Fluxograma', 'Podendo ser complementado: de Processo; de Documentos; de Blocos'); - $fnCadastrar(60, 'Folha', 'Podendo ser complementado: de Frequncia de Estagirio; de Frequncia de Servidor'); - $fnCadastrar(61, 'Folheto/Folder', 'Podendo ser complementado: de Evento'); - $fnCadastrar(62, 'Formulrio', 'Podendo ser complementado: de Contato; de Reviso'); - $fnCadastrar(63, 'Grade Curricular', 'Podendo ser complementado: do Curso'); - $fnCadastrar(64, 'Guia', 'Podendo ser complementado: de Recolhimento da Unio'); - $fnCadastrar(65, 'Histrico', 'Podendo ser complementado: Escolar'); - $fnCadastrar(66, 'Indicao', 'Espcie prpria utilizada pelo Poder Legislativo'); - $fnCadastrar(67, 'Informe', 'Como Documento Externo pode ser complementado: de Rendimentos'); - $fnCadastrar(68, 'Instruo', 'Podendo ser complementado: Normativa'); - $fnCadastrar(69, 'Inventrio', 'Podendo ser complementado: de Estoque; Extrajudicial; Judicial; em Cartrio'); - $fnCadastrar(70, 'Laudo', 'Podendo ser complementado: Mdico; Conclusivo'); - $fnCadastrar(71, 'Lei', 'Podendo ser complementado: Complementar'); - $fnCadastrar(72, 'Lista/Listagem', 'Podendo ser complementado: de Presena'); - $fnCadastrar(73, 'Livro', 'Podendo ser complementado: Caixa'); - $fnCadastrar(74, 'Mandado', 'Podendo ser complementado: de Busca e Apreenso; de Citao; de Intimao'); - $fnCadastrar(75, 'Manifesto', 'Espcie prpria'); - $fnCadastrar(76, 'Manual', 'Podendo ser complementado: do Usurio; do Sistema; do Equipamento'); - $fnCadastrar(77, 'Mapa', 'Podendo ser complementado: de Ruas; de Risco'); - $fnCadastrar(78, 'Medida Provisria', 'Espcie prpria'); - $fnCadastrar(79, 'Memorando', 'Como Documento Externo pode ser complementado: de Entendimento'); - $fnCadastrar(80, 'Memorando-circular', 'Mesma definio do Memorando com apenas uma diferena: encaminhado simultaneamente a mais de um cargo.'); - $fnCadastrar(81, 'Memorial', 'Podendo ser complementado: Descritivo; de Incorporao'); - $fnCadastrar(82, 'Mensagem', 'Podendo ser complementado: de Aniversrio; de Boas Vindas'); - $fnCadastrar(83, 'Minuta', 'Podendo ser complementado: de Portaria; de Resoluo'); - $fnCadastrar(84, 'Moo', 'Podendo ser complementado: de Apoio; de Pesar; de Repdio'); - $fnCadastrar(85, 'Norma', 'Podendo ser complementado: Tcnica; de Conduta'); - $fnCadastrar(86, 'Nota', 'Podendo ser complementado: Tcnica; de Empenho'); - $fnCadastrar(87, 'Notificao', 'Podendo ser complementado: de Lanamento'); - $fnCadastrar(88, 'Ofcio', 'Modalidades de comunicao oficial. expedido para e pelas autoridades. Tem como finalidade o tratamento de assuntos oficiais pelos rgos da Administrao Pblica entre si e tambm com particulares.'); - $fnCadastrar(89, 'Ofcio-Circular', 'Espcie prpria'); - $fnCadastrar(90, 'Oramento', 'Podendo ser complementado: de Obra; de Servio'); - $fnCadastrar(91, 'Ordem', 'Podendo ser complementado: de Servio; de Compra; do Dia'); - $fnCadastrar(92, 'Organograma', 'Podendo ser complementado: da Empresa'); - $fnCadastrar(93, 'Orientao', 'Podendo ser complementado: Normativa; Jurisprudencial'); - $fnCadastrar(94, 'Panfleto', 'Podendo ser complementado: de Promoo; de Evento'); - $fnCadastrar(95, 'Parecer', 'Tipo de Documento prprio da AGU e outros rgos pblicos.'); - $fnCadastrar(96, 'Passaporte', 'Espcie prpria'); - $fnCadastrar(97, 'Pauta', 'Podendo ser complementado: de Julgamentos; de Audincias; das Sees'); - $fnCadastrar(98, 'Petio', 'Podendo ser complementado: Inicial; Incidental'); - $fnCadastrar(99, 'Planilha', 'Podendo ser complementado: de Custos e Formao de Preos'); - $fnCadastrar(100, 'Plano', 'Podendo ser complementado: de Servio; de Contas Contbil'); - $fnCadastrar(101, 'Planta', 'Podendo ser complementado: Baixa; de Localizao; de Situao'); - $fnCadastrar(102, 'Portaria', 'Expressa deciso relativa a assuntos de interesse interno da Agncia.'); - $fnCadastrar(103, 'Precatrio', 'Podendo ser complementado: Alimentar; Federal; Estadual; Municipal'); - $fnCadastrar(104, 'Processo', 'Processo'); - $fnCadastrar(105, 'Procurao', 'Espcie prpria'); - $fnCadastrar(106, 'Programa', 'Podendo ser complementado: de Governo; de Melhoria'); - $fnCadastrar(107, 'Projeto', 'Podendo ser complementado: Tcnico; Comercial'); - $fnCadastrar(108, 'Pronturio', 'Podendo ser complementado: Mdico; Odontolgico'); - $fnCadastrar(109, 'Pronunciamento', 'Espcie prpria'); - $fnCadastrar(110, 'Proposta', 'Podendo ser complementado: Comercial; de Oramento; Tcnica'); - $fnCadastrar(111, 'Prospecto', 'Podendo ser complementado: de Fundos'); - $fnCadastrar(112, 'Protocolo', 'Podendo ser complementado: de Entendimentos; de Entrega'); - $fnCadastrar(113, 'Prova', 'Podendo ser complementado: de Conceito; de Proficincia'); - $fnCadastrar(114, 'Questionrio', 'Podendo ser complementado: de Avaliao; de Pesquisa; Socioeconmico'); - $fnCadastrar(115, 'Receita', 'Espcie prpria'); - $fnCadastrar(116, 'Recibo', 'Podendo ser complementado: de Pagamento; de Entrega'); - $fnCadastrar(117, 'Recurso', 'Podendo ser complementado: Administrativo; Judicial'); - $fnCadastrar(118, 'Regimento', 'Podendo ser complementado: Interno'); - $fnCadastrar(119, 'Registro', 'Podendo ser complementado: de Detalhes de Chamadas - CDR; de Acesso; Comercial'); - $fnCadastrar(120, 'Regulamento', 'Podendo ser complementado: Geral; Disciplinar; de Administrao'); - $fnCadastrar(121, 'Relao', 'Podendo ser complementado: de Bens Reversveis - RBR'); - $fnCadastrar(122, 'Relatrio', 'Podendo ser complementado: de Conformidade; de Medies; de Prestao de Contas; de Viagem a Servio; Fotogrfico; Tcnico'); - $fnCadastrar(123, 'Release', 'Podendo ser complementado: de Resultados; de Produtos; de Servios'); - $fnCadastrar(124, 'Representao', 'Podendo ser complementado: Comercial; Processual; Fiscal'); - $fnCadastrar(125, 'Requerimento', 'Podendo ser complementado: Administrativo; de Adaptao; de Alterao Tcnica; de Alterao Tcnica; de Autocadastramento de Estao; de Licenciamento de Estao; de Servio de Telecomunicaes'); - $fnCadastrar(126, 'Requisio', 'Podendo ser complementado: de Auditoria; de Excluso; de Segunda Via'); - $fnCadastrar(127, 'Resoluo', 'Expressa deciso quanto ao provimento normativo que regula a implementao da poltica de telecomunicaes brasileira, a prestao dos servios de telecomunicaes, a administrao dos recursos prestao e o funcionamento da Agncia.'); - $fnCadastrar(128, 'Resumo', 'Podendo ser complementado: Tcnico'); - $fnCadastrar(129, 'Roteiro', 'Podendo ser complementado: de Instalao; de Inspeo'); - $fnCadastrar(130, 'Sentena', 'Podendo ser complementado: de Mrito; Terminativa; Declaratria; Constitutiva; Condenatria; Mandamental; Executiva'); - $fnCadastrar(131, 'Sinopse', 'Podendo ser complementado: do Livro; do Estudo Tcnico'); - $fnCadastrar(132, 'Solicitao', 'Podendo ser complementado: de Pagamento'); - $fnCadastrar(133, 'Smula', 'Expressa deciso quanto interpretao da legislao de telecomunicaes e fixa entendimento sobre matrias de competncia da Agncia, com efeito vinculativo.'); - $fnCadastrar(134, 'Tabela', 'Podendo ser complementado: de Visto; de Passaporte; de Certido'); - $fnCadastrar(135, 'Telegrama', 'Espcie prpria'); - $fnCadastrar(136, 'Termo', 'Podendo ser complementado: de Opo por Auxlio Financeiro; de Opo para Contribuio ao CPSS; de Conciliao; de Devoluo; de Doao; de Recebimento; de Resciso; de Compromisso de Estgio; de Representao; de Responsabilidade de Instalao - TRI'); - $fnCadastrar(137, 'Tese', 'Podendo ser complementado: de Doutorado'); - $fnCadastrar(138, 'Testamento', 'Podendo ser complementado: Particular; Vital; Cerrado; Conjuntivo'); - $fnCadastrar(139, 'Ttulo', 'Podendo ser complementado: de Eleitor; Pblico; de Capitalizao'); - $fnCadastrar(140, 'Voto', 'Espcie prpria'); - $fnCadastrar(141, 'Carteira', 'Podendo ser complementado: Nacional de Habilitao'); - $fnCadastrar(142, 'Carto', 'Podendo ser complementado: de Identificao'); - $fnCadastrar(143, 'CPF/CIC', 'Espcie prpria'); - $fnCadastrar(144, 'CNPJ', 'Espcie prpria'); - $fnCadastrar(145, 'Calendrio', 'Podendo ser complementado: de Reunies'); - $fnCadastrar(146, 'CNH', 'CNH'); - $fnCadastrar(147, 'RG', 'RG'); - $fnCadastrar(148, 'Agenda', 'Podendo ser complementado: de Reunio'); - $fnCadastrar(149, 'Anlise', 'Como Documento Externo pode ser complementado: Contbil'); - $fnCadastrar(150, 'Anotao', 'Podendo ser complementado: de Responsabilidade Tcnica - ART'); - $fnCadastrar(151, 'udio', 'Podendo ser complementado: de Reunio'); - $fnCadastrar(152, 'Boleto', 'Podendo ser complementado: de Pagamento; de Cobrana; de Cobrana Registrada; de Cobrana sem Registro'); - $fnCadastrar(153, 'Conta', 'Podendo ser complementado: Telefnica; de gua; de Luz'); - $fnCadastrar(154, 'Contrarrazes', 'Podendo ser complementado: em Recurso; em Apelao; em Embargos Infringentes'); - $fnCadastrar(155, 'Correspondncia', 'Espcie prpria'); - $fnCadastrar(156, 'Cota', 'Tipo de Documento prprio da AGU.'); - $fnCadastrar(157, 'Credencial', 'Podendo ser complementado: de Segurana; de Agente de Fiscalizao'); - $fnCadastrar(158, 'Croqui', 'Podendo ser complementado: de Acesso, Urbano'); - $fnCadastrar(159, 'Defesa', 'Podendo ser complementado: Administrativa; Judicial'); - $fnCadastrar(160, 'Demonstrao', 'Podendo ser complementado: de Resultado do Exerccio - DRE; de Fluxo de Caixa; Financeira; Contbil'); - $fnCadastrar(161, 'Denncia', 'Espcie prpria'); - $fnCadastrar(162, 'Esclarecimento', 'Espcie prpria utilizada em Licitao $fnCadastrar(ComprasNet);'); - $fnCadastrar(163, 'Escriturao', 'Podendo ser complementado: Contbil Digital - ECD; Fiscal Digital - EFD; Fiscal Digital - EFD-Contribuies'); - $fnCadastrar(164, 'Estratgia', 'Podendo ser complementado: da Contratao'); - $fnCadastrar(165, 'Impugnao', 'Espcie prpria utilizada em Licitao $fnCadastrar(ComprasNet);'); - $fnCadastrar(166, 'Informao', 'Tipo de Documento prprio da AGU.'); - $fnCadastrar(167, 'Inteno', 'Podendo ser complementado: de Recurso; de Compra; de Venda'); - $fnCadastrar(168, 'Licena', 'Podendo ser complementado: de Estao'); - $fnCadastrar(169, 'Matria', 'Podendo ser complementado: para Apreciao'); - $fnCadastrar(170, 'Material', 'Podendo ser complementado: Publicitrio; de Evento; de Promoo'); - $fnCadastrar(171, 'Memria', 'Podendo ser complementado: de Clculo'); - $fnCadastrar(172, 'Movimentao', 'Podendo ser complementado: de Bens Mveis'); - $fnCadastrar(173, 'Pedido', 'Podendo ser complementado: de Reconsiderao; de Esclarecimento'); - $fnCadastrar(174, 'Reclamao', 'Espcie prpria'); - $fnCadastrar(175, 'Referendo', 'Espcie prpria'); - $fnCadastrar(176, 'Resultado', 'Podendo ser complementado: de Exame Mdico; de Contestao'); - $fnCadastrar(177, 'Vdeo', 'Podendo ser complementado: de Reunio'); - - - //---------------------------------------------------------------------- - // Tarefas - //---------------------------------------------------------------------- - $objDTO = new TarefaDTO(); - - $fnCadastrar = function ($strNome = '', $strHistoricoResumido = 'N', $strHistoricoCompleto = 'N', $strFecharAndamentosAbertos = 'N', $strLancarAndamentoFechado = 'N', $strPermiteProcessoFechado = 'N', $strIdTarefaModulo = '', $strSinConsultaProcessual = 'N') use ($objDTO, $objBD) { - - $objDTO->unSetTodos(); - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - - if ($objBD->contar($objDTO) == 0) { - - $objUltimaTarefaDTO = new TarefaDTO(); - $objUltimaTarefaDTO->retNumIdTarefa(); - $objUltimaTarefaDTO->setNumMaxRegistrosRetorno(1); - $objUltimaTarefaDTO->setOrd('IdTarefa', InfraDTO::$TIPO_ORDENACAO_DESC); - $objUltimaTarefaDTO = $objBD->consultar($objUltimaTarefaDTO); - - $objDTO->setNumIdTarefa($objUltimaTarefaDTO->getNumIdTarefa() + 1); - $objDTO->setStrNome($strNome); - $objDTO->setStrSinHistoricoResumido($strHistoricoResumido); - $objDTO->setStrSinHistoricoCompleto($strHistoricoCompleto); - $objDTO->setStrSinFecharAndamentosAbertos($strFecharAndamentosAbertos); - $objDTO->setStrSinLancarAndamentoFechado($strLancarAndamentoFechado); - $objDTO->setStrSinPermiteProcessoFechado($strPermiteProcessoFechado); - if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { - $objDTO->setStrSinConsultaProcessual($strSinConsultaProcessual); + if ($objBD->contar($objDTO) == 0) { + $objDTO->setDblIdEspecie($dblIdEspecie); + $objBD->cadastrar($objDTO); } - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - $objBD->cadastrar($objDTO); - } - }; + }; - //TODO: Corrigir mensagem com portugus errado - $fnCadastrar('Processo trmitado externamente para a entidade @UNIDADE_DESTINO@ - @REPOSITORIO_DESTINO@ (@PROCESSO@, @UNIDADE@, @USUARIO@)', 'S', 'S', 'N', 'S', 'N', 'PEN_PROCESSO_EXPEDIDO'); - $fnCadastrar('Processo recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@ (@PROCESSO@, @ENTIDADE_ORIGEM@, @UNIDADE_DESTINO@, @USUARIO@)', 'S', 'S', 'N', 'S', 'N', 'PEN_PROCESSO_RECEBIDO'); - $fnCadastrar('O processo foi recusado pelo orgo @UNIDADE_DESTINO@ pelo seguinte motivo: @MOTIVO@', 'S', 'S', 'N', 'N', 'S', 'PEN_PROCESSO_RECUSADO'); - $fnCadastrar('Trmite externo do processo cancelado em @DATA_HORA@ pelo Usurio @USUARIO@', 'S', 'S', 'N', 'S', 'N', 'PEN_PROCESSO_CANCELADO'); - $fnCadastrar('Operacao externa de @OPERACAO@ registrada em @DATA_HORA@ (@PESSOA_IDENTIFICACAO@ - @PESSOA_NOME@)\n @COMPLEMENTO@', 'S', 'S', 'S', 'S', 'N', 'PEN_OPERACAO_EXTERNA'); + $fnCadastrar(1, 'Abaixo-assinado', 'Podendo ser complementado: de Reivindicao'); + $fnCadastrar(2, 'Acrdo', 'Expressa deciso proferida pelo Conselho Diretor, no abrangida pelos demais instrumentos deliberativos anteriores.'); + $fnCadastrar(3, 'Acordo', 'Podendo ser complementado: de Nvel de Servio; Coletivo de Trabalho'); + $fnCadastrar(4, 'Alvar', 'Podendo ser complementado: de Funcionamento; Judicial'); + $fnCadastrar(5, 'Anais', 'Podendo ser complementado: de Eventos; de Engenharia'); + $fnCadastrar(6, 'Anteprojeto', 'Podendo ser complementado: de Lei'); + $fnCadastrar(7, 'Aplice', 'Podendo ser complementado: de Seguro'); + $fnCadastrar(8, 'Apostila', 'Podendo ser complementado: de Curso'); + $fnCadastrar(9, 'Ata', 'Como Documento Externo pode ser complementado: de Reunio; de Realizao de Prego'); + $fnCadastrar(10, 'Atestado', 'Podendo ser complementado: Mdico; de Comparecimento; de Capacidade Tcnica'); + $fnCadastrar(11, 'Ato', 'Expressa deciso sobre outorga, expedio, modificao, transferncia, prorrogao, adaptao e extino de concesses, permisses e autorizaes para explorao de servios, uso de recursos escassos e explorao de satlite, e Chamamento Pblico.'); + $fnCadastrar(12, 'Auto', 'Podendo ser complementado: de Vistoria; de Infrao'); + $fnCadastrar(13, 'Aviso', 'Podendo ser complementado: de Recebimento; de Sinistro; de Frias'); + $fnCadastrar(14, 'Balancete', 'Podendo ser complementado: Financeiro'); + $fnCadastrar(15, 'Balano', 'Podendo ser complementado: Patrimonial - BP; Financeiro'); + $fnCadastrar(16, 'Bilhete', 'Podendo ser complementado: de Pagamento; de Loteria'); + $fnCadastrar(17, 'Boletim', 'Podendo ser complementado: de Ocorrncia; Informativo'); + $fnCadastrar(18, 'Carta', 'Podendo ser complementado: Convite'); + $fnCadastrar(19, 'Cartaz', 'Podendo ser complementado: de Evento'); + $fnCadastrar(20, 'Cdula', 'Podendo ser complementado: de Identidade; de Crdito Bancrio; de Crdito Comercial; de Crdito Imobilirio'); + $fnCadastrar(21, 'Certido', 'Como Documento Externo pode ser complementado: de Tempo de Servio; de Nascimento; de Casamento; de bito; Negativa de Falncia ou Concordata; Negativa de Dbitos Trabalhistas; Negativa de Dbitos Tributrios'); + $fnCadastrar(22, 'Certificado', 'Podendo ser complementado: de Concluso de Curso; de Calibrao de Equipamento; de Marca'); + $fnCadastrar(23, 'Cheque', 'Podendo ser complementado: Cauo'); + $fnCadastrar(24, 'Comprovante', 'Podendo ser complementado: de Despesa; de Rendimento; de Residncia; de Matrcula; de Unio Estvel'); + $fnCadastrar(25, 'Comunicado', 'Expediente interno entre uma unidade administrativa e um servidor ou entre um servidor e uma unidade administrativa de um mesmo rgo pblico.'); + $fnCadastrar(26, 'Consulta', 'Podendo ser complementado: Pblica; Interna'); + $fnCadastrar(27, 'Contracheque', 'Espcie prpria'); + $fnCadastrar(28, 'Contrato', 'Como Documento Externo pode ser complementado: Social'); + $fnCadastrar(29, 'Convnio', 'Espcie prpria'); + $fnCadastrar(30, 'Convite', 'Podendo ser complementado: de Reunio; para Evento; de Casamento'); + $fnCadastrar(31, 'Conveno', 'Podendo ser complementado: Coletiva de Trabalho; Internacional'); + $fnCadastrar(32, 'Crach', 'Podendo ser complementado: de Identificao; de Evento'); + $fnCadastrar(33, 'Cronograma', 'Podendo ser complementado: de Projeto; de Estudos'); + $fnCadastrar(34, 'Currculo', 'Podendo ser complementado: de Candidato'); + $fnCadastrar(35, 'Debnture', 'Espcie prpria'); + $fnCadastrar(36, 'Deciso', 'Podendo ser complementado: Administrativa; Judicial'); + $fnCadastrar(37, 'Declarao', 'Como Documento Externo pode ser complementado: de Imposto de Renda; de Conformidade; de Responsabilidade Tcnica; de Acumulao de Aposentadoria; de Acumulao de Cargos; de Informaes Econmico-Fiscais da Pessoa Jurdica $fnCadastrar(DIPJ);'); + $fnCadastrar(38, 'Decreto', 'Espcie prpria'); + $fnCadastrar(39, 'Deliberao', 'Podendo ser complementado: de Recursos; do Conselho'); + $fnCadastrar(40, 'Demonstrativo', 'Podendo ser complementado: Financeiro; de Pagamento; de Arrecadao'); + $fnCadastrar(41, 'Depoimento', 'Podendo ser complementado: das Testemunhas'); + $fnCadastrar(42, 'Despacho', 'Espcie prpria'); + $fnCadastrar(43, 'Dirio', 'Podendo ser complementado: de Justia; Oficial'); + $fnCadastrar(44, 'Diploma', 'Podendo ser complementado: de Concluso de Curso'); + $fnCadastrar(45, 'Diretriz', 'Podendo ser complementado: Oramentria'); + $fnCadastrar(46, 'Dissertao', 'Podendo ser complementado: de Mestrado'); + $fnCadastrar(47, 'Dossi', 'Podendo ser complementado: de Processo; Tcnico'); + $fnCadastrar(48, 'Edital', 'Podendo ser complementado: de Convocao; de Intimao; de Lanamento'); + $fnCadastrar(49, 'E-mail', 'Indicado nos Parmetros para corresponder ao envio de Correspondncia Eletrnica do SEI'); + $fnCadastrar(50, 'Embargos', 'Podendo ser complementado: de Declarao; de Execuo ou Infringentes'); + $fnCadastrar(51, 'Emenda', 'Podendo ser complementado: Constitucional; de Comisso; de Bancada; de Relatoria'); + $fnCadastrar(52, 'Escala', 'Podendo ser complementado: de Frias'); + $fnCadastrar(53, 'Escritura', 'Podendo ser complementado: Pblica; de Imvel'); + $fnCadastrar(54, 'Estatuto', 'Podendo ser complementado: Social'); + $fnCadastrar(55, 'Exposio de Motivos', 'Espcie prpria'); + $fnCadastrar(56, 'Extrato', 'Podendo ser complementado: de Sistemas; Bancrio'); + $fnCadastrar(57, 'Fatura', 'Espcie prpria'); + $fnCadastrar(58, 'Ficha', 'Podendo ser complementado: de Cadastro; de Inscrio'); + $fnCadastrar(59, 'Fluxograma', 'Podendo ser complementado: de Processo; de Documentos; de Blocos'); + $fnCadastrar(60, 'Folha', 'Podendo ser complementado: de Frequncia de Estagirio; de Frequncia de Servidor'); + $fnCadastrar(61, 'Folheto/Folder', 'Podendo ser complementado: de Evento'); + $fnCadastrar(62, 'Formulrio', 'Podendo ser complementado: de Contato; de Reviso'); + $fnCadastrar(63, 'Grade Curricular', 'Podendo ser complementado: do Curso'); + $fnCadastrar(64, 'Guia', 'Podendo ser complementado: de Recolhimento da Unio'); + $fnCadastrar(65, 'Histrico', 'Podendo ser complementado: Escolar'); + $fnCadastrar(66, 'Indicao', 'Espcie prpria utilizada pelo Poder Legislativo'); + $fnCadastrar(67, 'Informe', 'Como Documento Externo pode ser complementado: de Rendimentos'); + $fnCadastrar(68, 'Instruo', 'Podendo ser complementado: Normativa'); + $fnCadastrar(69, 'Inventrio', 'Podendo ser complementado: de Estoque; Extrajudicial; Judicial; em Cartrio'); + $fnCadastrar(70, 'Laudo', 'Podendo ser complementado: Mdico; Conclusivo'); + $fnCadastrar(71, 'Lei', 'Podendo ser complementado: Complementar'); + $fnCadastrar(72, 'Lista/Listagem', 'Podendo ser complementado: de Presena'); + $fnCadastrar(73, 'Livro', 'Podendo ser complementado: Caixa'); + $fnCadastrar(74, 'Mandado', 'Podendo ser complementado: de Busca e Apreenso; de Citao; de Intimao'); + $fnCadastrar(75, 'Manifesto', 'Espcie prpria'); + $fnCadastrar(76, 'Manual', 'Podendo ser complementado: do Usurio; do Sistema; do Equipamento'); + $fnCadastrar(77, 'Mapa', 'Podendo ser complementado: de Ruas; de Risco'); + $fnCadastrar(78, 'Medida Provisria', 'Espcie prpria'); + $fnCadastrar(79, 'Memorando', 'Como Documento Externo pode ser complementado: de Entendimento'); + $fnCadastrar(80, 'Memorando-circular', 'Mesma definio do Memorando com apenas uma diferena: encaminhado simultaneamente a mais de um cargo.'); + $fnCadastrar(81, 'Memorial', 'Podendo ser complementado: Descritivo; de Incorporao'); + $fnCadastrar(82, 'Mensagem', 'Podendo ser complementado: de Aniversrio; de Boas Vindas'); + $fnCadastrar(83, 'Minuta', 'Podendo ser complementado: de Portaria; de Resoluo'); + $fnCadastrar(84, 'Moo', 'Podendo ser complementado: de Apoio; de Pesar; de Repdio'); + $fnCadastrar(85, 'Norma', 'Podendo ser complementado: Tcnica; de Conduta'); + $fnCadastrar(86, 'Nota', 'Podendo ser complementado: Tcnica; de Empenho'); + $fnCadastrar(87, 'Notificao', 'Podendo ser complementado: de Lanamento'); + $fnCadastrar(88, 'Ofcio', 'Modalidades de comunicao oficial. expedido para e pelas autoridades. Tem como finalidade o tratamento de assuntos oficiais pelos rgos da Administrao Pblica entre si e tambm com particulares.'); + $fnCadastrar(89, 'Ofcio-Circular', 'Espcie prpria'); + $fnCadastrar(90, 'Oramento', 'Podendo ser complementado: de Obra; de Servio'); + $fnCadastrar(91, 'Ordem', 'Podendo ser complementado: de Servio; de Compra; do Dia'); + $fnCadastrar(92, 'Organograma', 'Podendo ser complementado: da Empresa'); + $fnCadastrar(93, 'Orientao', 'Podendo ser complementado: Normativa; Jurisprudencial'); + $fnCadastrar(94, 'Panfleto', 'Podendo ser complementado: de Promoo; de Evento'); + $fnCadastrar(95, 'Parecer', 'Tipo de Documento prprio da AGU e outros rgos pblicos.'); + $fnCadastrar(96, 'Passaporte', 'Espcie prpria'); + $fnCadastrar(97, 'Pauta', 'Podendo ser complementado: de Julgamentos; de Audincias; das Sees'); + $fnCadastrar(98, 'Petio', 'Podendo ser complementado: Inicial; Incidental'); + $fnCadastrar(99, 'Planilha', 'Podendo ser complementado: de Custos e Formao de Preos'); + $fnCadastrar(100, 'Plano', 'Podendo ser complementado: de Servio; de Contas Contbil'); + $fnCadastrar(101, 'Planta', 'Podendo ser complementado: Baixa; de Localizao; de Situao'); + $fnCadastrar(102, 'Portaria', 'Expressa deciso relativa a assuntos de interesse interno da Agncia.'); + $fnCadastrar(103, 'Precatrio', 'Podendo ser complementado: Alimentar; Federal; Estadual; Municipal'); + $fnCadastrar(104, 'Processo', 'Processo'); + $fnCadastrar(105, 'Procurao', 'Espcie prpria'); + $fnCadastrar(106, 'Programa', 'Podendo ser complementado: de Governo; de Melhoria'); + $fnCadastrar(107, 'Projeto', 'Podendo ser complementado: Tcnico; Comercial'); + $fnCadastrar(108, 'Pronturio', 'Podendo ser complementado: Mdico; Odontolgico'); + $fnCadastrar(109, 'Pronunciamento', 'Espcie prpria'); + $fnCadastrar(110, 'Proposta', 'Podendo ser complementado: Comercial; de Oramento; Tcnica'); + $fnCadastrar(111, 'Prospecto', 'Podendo ser complementado: de Fundos'); + $fnCadastrar(112, 'Protocolo', 'Podendo ser complementado: de Entendimentos; de Entrega'); + $fnCadastrar(113, 'Prova', 'Podendo ser complementado: de Conceito; de Proficincia'); + $fnCadastrar(114, 'Questionrio', 'Podendo ser complementado: de Avaliao; de Pesquisa; Socioeconmico'); + $fnCadastrar(115, 'Receita', 'Espcie prpria'); + $fnCadastrar(116, 'Recibo', 'Podendo ser complementado: de Pagamento; de Entrega'); + $fnCadastrar(117, 'Recurso', 'Podendo ser complementado: Administrativo; Judicial'); + $fnCadastrar(118, 'Regimento', 'Podendo ser complementado: Interno'); + $fnCadastrar(119, 'Registro', 'Podendo ser complementado: de Detalhes de Chamadas - CDR; de Acesso; Comercial'); + $fnCadastrar(120, 'Regulamento', 'Podendo ser complementado: Geral; Disciplinar; de Administrao'); + $fnCadastrar(121, 'Relao', 'Podendo ser complementado: de Bens Reversveis - RBR'); + $fnCadastrar(122, 'Relatrio', 'Podendo ser complementado: de Conformidade; de Medies; de Prestao de Contas; de Viagem a Servio; Fotogrfico; Tcnico'); + $fnCadastrar(123, 'Release', 'Podendo ser complementado: de Resultados; de Produtos; de Servios'); + $fnCadastrar(124, 'Representao', 'Podendo ser complementado: Comercial; Processual; Fiscal'); + $fnCadastrar(125, 'Requerimento', 'Podendo ser complementado: Administrativo; de Adaptao; de Alterao Tcnica; de Alterao Tcnica; de Autocadastramento de Estao; de Licenciamento de Estao; de Servio de Telecomunicaes'); + $fnCadastrar(126, 'Requisio', 'Podendo ser complementado: de Auditoria; de Excluso; de Segunda Via'); + $fnCadastrar(127, 'Resoluo', 'Expressa deciso quanto ao provimento normativo que regula a implementao da poltica de telecomunicaes brasileira, a prestao dos servios de telecomunicaes, a administrao dos recursos prestao e o funcionamento da Agncia.'); + $fnCadastrar(128, 'Resumo', 'Podendo ser complementado: Tcnico'); + $fnCadastrar(129, 'Roteiro', 'Podendo ser complementado: de Instalao; de Inspeo'); + $fnCadastrar(130, 'Sentena', 'Podendo ser complementado: de Mrito; Terminativa; Declaratria; Constitutiva; Condenatria; Mandamental; Executiva'); + $fnCadastrar(131, 'Sinopse', 'Podendo ser complementado: do Livro; do Estudo Tcnico'); + $fnCadastrar(132, 'Solicitao', 'Podendo ser complementado: de Pagamento'); + $fnCadastrar(133, 'Smula', 'Expressa deciso quanto interpretao da legislao de telecomunicaes e fixa entendimento sobre matrias de competncia da Agncia, com efeito vinculativo.'); + $fnCadastrar(134, 'Tabela', 'Podendo ser complementado: de Visto; de Passaporte; de Certido'); + $fnCadastrar(135, 'Telegrama', 'Espcie prpria'); + $fnCadastrar(136, 'Termo', 'Podendo ser complementado: de Opo por Auxlio Financeiro; de Opo para Contribuio ao CPSS; de Conciliao; de Devoluo; de Doao; de Recebimento; de Resciso; de Compromisso de Estgio; de Representao; de Responsabilidade de Instalao - TRI'); + $fnCadastrar(137, 'Tese', 'Podendo ser complementado: de Doutorado'); + $fnCadastrar(138, 'Testamento', 'Podendo ser complementado: Particular; Vital; Cerrado; Conjuntivo'); + $fnCadastrar(139, 'Ttulo', 'Podendo ser complementado: de Eleitor; Pblico; de Capitalizao'); + $fnCadastrar(140, 'Voto', 'Espcie prpria'); + $fnCadastrar(141, 'Carteira', 'Podendo ser complementado: Nacional de Habilitao'); + $fnCadastrar(142, 'Carto', 'Podendo ser complementado: de Identificao'); + $fnCadastrar(143, 'CPF/CIC', 'Espcie prpria'); + $fnCadastrar(144, 'CNPJ', 'Espcie prpria'); + $fnCadastrar(145, 'Calendrio', 'Podendo ser complementado: de Reunies'); + $fnCadastrar(146, 'CNH', 'CNH'); + $fnCadastrar(147, 'RG', 'RG'); + $fnCadastrar(148, 'Agenda', 'Podendo ser complementado: de Reunio'); + $fnCadastrar(149, 'Anlise', 'Como Documento Externo pode ser complementado: Contbil'); + $fnCadastrar(150, 'Anotao', 'Podendo ser complementado: de Responsabilidade Tcnica - ART'); + $fnCadastrar(151, 'udio', 'Podendo ser complementado: de Reunio'); + $fnCadastrar(152, 'Boleto', 'Podendo ser complementado: de Pagamento; de Cobrana; de Cobrana Registrada; de Cobrana sem Registro'); + $fnCadastrar(153, 'Conta', 'Podendo ser complementado: Telefnica; de gua; de Luz'); + $fnCadastrar(154, 'Contrarrazes', 'Podendo ser complementado: em Recurso; em Apelao; em Embargos Infringentes'); + $fnCadastrar(155, 'Correspondncia', 'Espcie prpria'); + $fnCadastrar(156, 'Cota', 'Tipo de Documento prprio da AGU.'); + $fnCadastrar(157, 'Credencial', 'Podendo ser complementado: de Segurana; de Agente de Fiscalizao'); + $fnCadastrar(158, 'Croqui', 'Podendo ser complementado: de Acesso, Urbano'); + $fnCadastrar(159, 'Defesa', 'Podendo ser complementado: Administrativa; Judicial'); + $fnCadastrar(160, 'Demonstrao', 'Podendo ser complementado: de Resultado do Exerccio - DRE; de Fluxo de Caixa; Financeira; Contbil'); + $fnCadastrar(161, 'Denncia', 'Espcie prpria'); + $fnCadastrar(162, 'Esclarecimento', 'Espcie prpria utilizada em Licitao $fnCadastrar(ComprasNet);'); + $fnCadastrar(163, 'Escriturao', 'Podendo ser complementado: Contbil Digital - ECD; Fiscal Digital - EFD; Fiscal Digital - EFD-Contribuies'); + $fnCadastrar(164, 'Estratgia', 'Podendo ser complementado: da Contratao'); + $fnCadastrar(165, 'Impugnao', 'Espcie prpria utilizada em Licitao $fnCadastrar(ComprasNet);'); + $fnCadastrar(166, 'Informao', 'Tipo de Documento prprio da AGU.'); + $fnCadastrar(167, 'Inteno', 'Podendo ser complementado: de Recurso; de Compra; de Venda'); + $fnCadastrar(168, 'Licena', 'Podendo ser complementado: de Estao'); + $fnCadastrar(169, 'Matria', 'Podendo ser complementado: para Apreciao'); + $fnCadastrar(170, 'Material', 'Podendo ser complementado: Publicitrio; de Evento; de Promoo'); + $fnCadastrar(171, 'Memria', 'Podendo ser complementado: de Clculo'); + $fnCadastrar(172, 'Movimentao', 'Podendo ser complementado: de Bens Mveis'); + $fnCadastrar(173, 'Pedido', 'Podendo ser complementado: de Reconsiderao; de Esclarecimento'); + $fnCadastrar(174, 'Reclamao', 'Espcie prpria'); + $fnCadastrar(175, 'Referendo', 'Espcie prpria'); + $fnCadastrar(176, 'Resultado', 'Podendo ser complementado: de Exame Mdico; de Contestao'); + $fnCadastrar(177, 'Vdeo', 'Podendo ser complementado: de Reunio'); + + + //---------------------------------------------------------------------- + // Tarefas + //---------------------------------------------------------------------- + $objDTO = new TarefaDTO(); + + $fnCadastrar = function ($strNome = '', $strHistoricoResumido = 'N', $strHistoricoCompleto = 'N', $strFecharAndamentosAbertos = 'N', $strLancarAndamentoFechado = 'N', $strPermiteProcessoFechado = 'N', $strIdTarefaModulo = '', $strSinConsultaProcessual = 'N') use ($objDTO, $objBD): void { + + $objDTO->unSetTodos(); + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - //---------------------------------------------------------------------- - // Operaes por Tarefas - //---------------------------------------------------------------------- - $objDTO = new RelTarefaOperacaoDTO(); + if ($objBD->contar($objDTO) == 0) { - $fnCadastrar = function ($strCodigoOperacao, $numIdTarefa) use ($objDTO, $objBD) { + $objUltimaTarefaDTO = new TarefaDTO(); + $objUltimaTarefaDTO->retNumIdTarefa(); + $objUltimaTarefaDTO->setNumMaxRegistrosRetorno(1); + $objUltimaTarefaDTO->setOrd('IdTarefa', InfraDTO::$TIPO_ORDENACAO_DESC); + $objUltimaTarefaDTO = $objBD->consultar($objUltimaTarefaDTO); + + $objDTO->setNumIdTarefa($objUltimaTarefaDTO->getNumIdTarefa() + 1); + $objDTO->setStrNome($strNome); + $objDTO->setStrSinHistoricoResumido($strHistoricoResumido); + $objDTO->setStrSinHistoricoCompleto($strHistoricoCompleto); + $objDTO->setStrSinFecharAndamentosAbertos($strFecharAndamentosAbertos); + $objDTO->setStrSinLancarAndamentoFechado($strLancarAndamentoFechado); + $objDTO->setStrSinPermiteProcessoFechado($strPermiteProcessoFechado); + if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { + $objDTO->setStrSinConsultaProcessual($strSinConsultaProcessual); + } + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); + $objBD->cadastrar($objDTO); + } + }; - $objDTO->unSetTodos(); - $objDTO->setStrCodigoOperacao($strCodigoOperacao); - $objDTO->setNumIdTarefa($numIdTarefa); + //TODO: Corrigir mensagem com portugus errado + $fnCadastrar('Processo trmitado externamente para a entidade @UNIDADE_DESTINO@ - @REPOSITORIO_DESTINO@ (@PROCESSO@, @UNIDADE@, @USUARIO@)', 'S', 'S', 'N', 'S', 'N', 'PEN_PROCESSO_EXPEDIDO'); + $fnCadastrar('Processo recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@ (@PROCESSO@, @ENTIDADE_ORIGEM@, @UNIDADE_DESTINO@, @USUARIO@)', 'S', 'S', 'N', 'S', 'N', 'PEN_PROCESSO_RECEBIDO'); + $fnCadastrar('O processo foi recusado pelo orgo @UNIDADE_DESTINO@ pelo seguinte motivo: @MOTIVO@', 'S', 'S', 'N', 'N', 'S', 'PEN_PROCESSO_RECUSADO'); + $fnCadastrar('Trmite externo do processo cancelado em @DATA_HORA@ pelo Usurio @USUARIO@', 'S', 'S', 'N', 'S', 'N', 'PEN_PROCESSO_CANCELADO'); + $fnCadastrar('Operacao externa de @OPERACAO@ registrada em @DATA_HORA@ (@PESSOA_IDENTIFICACAO@ - @PESSOA_NOME@)\n @COMPLEMENTO@', 'S', 'S', 'S', 'S', 'N', 'PEN_OPERACAO_EXTERNA'); - if ($objBD->contar($objDTO) == 0) { - $objBD->cadastrar($objDTO); - } - }; - - //$fnCadastrar("01", 0);// Registro (Padro); - $fnCadastrar("02", 32); // Envio de documento avulso/processo ($TI_PROCESSO_REMETIDO_UNIDADE = 32;); - $fnCadastrar("03", 51); // Cancelamento/exclusao ou envio de documento ($TI_CANCELAMENTO_DOCUMENTO = 51;); - $fnCadastrar("04", 13); // Recebimento de documento ($TI_RECEBIMENTO_DOCUMENTO = 13;); - $fnCadastrar("05", 1); // Autuacao ($TI_GERACAO_PROCEDIMENTO = 1;); - $fnCadastrar("06", 101); // Juntada por anexacao ($TI_ANEXADO_PROCESSO = 101;); - //$fnCadastrar("07", 0);// Juntada por apensacao; - //$fnCadastrar("08", 0);// Desapensacao; - $fnCadastrar("09", 24); // Arquivamento ($TI_ARQUIVAMENTO = 24;); - //$fnCadastrar("10", 0);// Arquivamento no Arquivo Nacional; - //$fnCadastrar("11", 0);// Eliminacao; - //$fnCadastrar("12", 0);// Sinistro; - //$fnCadastrar("13", 0);// Reconstituicao de processo; - $fnCadastrar("14", 26); // Desarquivamento ($TI_DESARQUIVAMENTO = 26;); - //$fnCadastrar("15", 0);// Desmembramento; - //$fnCadastrar("16", 0);// Desentranhamento; - //$fnCadastrar("17", 0);// Encerramento/abertura de volume no processo; - //$fnCadastrar("18", 0);// Registro de extravio; - - $objDTO = new InfraAgendamentoTarefaDTO(); - - $fnCadastrar = function ($strComando, $strDesc) use ($objDTO, $objBD, $objRN) { - - $objDTO->unSetTodos(); - $objDTO->setStrComando($strComando); - - if ($objBD->contar($objDTO) == 0) { - - $objDTO->setStrDescricao($strDesc); - $objDTO->setStrStaPeriodicidadeExecucao('D'); - $objDTO->setStrPeriodicidadeComplemento('0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23'); - $objDTO->setStrSinAtivo('S'); - $objDTO->setStrSinSucesso('S'); + //---------------------------------------------------------------------- + // Operaes por Tarefas + //---------------------------------------------------------------------- + $objDTO = new RelTarefaOperacaoDTO(); - $objBD->cadastrar($objDTO); - } - }; + $fnCadastrar = function ($strCodigoOperacao, $numIdTarefa) use ($objDTO, $objBD): void { - $fnCadastrar('PENAgendamentoRN::seiVerificarServicosBarramento', 'Verificao dos servios de fila de processamento esto em execuo'); + $objDTO->unSetTodos(); + $objDTO->setStrCodigoOperacao($strCodigoOperacao); + $objDTO->setNumIdTarefa($numIdTarefa); - /* ---------- antigo mtodo (instalarV002R003S000US024) ---------- */ + if ($objBD->contar($objDTO) == 0) { + $objBD->cadastrar($objDTO); + } + }; - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_tramite_processado', - 'cols' => array( - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'dth_ultimo_processamento' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO), - 'numero_tentativas' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'sin_recebimento_concluido' => array($objMetaBD->tipoTextoFixo(1), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id_tramite')), - )); + //$fnCadastrar("01", 0);// Registro (Padro); + $fnCadastrar("02", 32); // Envio de documento avulso/processo ($TI_PROCESSO_REMETIDO_UNIDADE = 32;); + $fnCadastrar("03", 51); // Cancelamento/exclusao ou envio de documento ($TI_CANCELAMENTO_DOCUMENTO = 51;); + $fnCadastrar("04", 13); // Recebimento de documento ($TI_RECEBIMENTO_DOCUMENTO = 13;); + $fnCadastrar("05", 1); // Autuacao ($TI_GERACAO_PROCEDIMENTO = 1;); + $fnCadastrar("06", 101); // Juntada por anexacao ($TI_ANEXADO_PROCESSO = 101;); + //$fnCadastrar("07", 0);// Juntada por apensacao; + //$fnCadastrar("08", 0);// Desapensacao; + $fnCadastrar("09", 24); // Arquivamento ($TI_ARQUIVAMENTO = 24;); + //$fnCadastrar("10", 0);// Arquivamento no Arquivo Nacional; + //$fnCadastrar("11", 0);// Eliminacao; + //$fnCadastrar("12", 0);// Sinistro; + //$fnCadastrar("13", 0);// Reconstituicao de processo; + $fnCadastrar("14", 26); // Desarquivamento ($TI_DESARQUIVAMENTO = 26;); + //$fnCadastrar("15", 0);// Desmembramento; + //$fnCadastrar("16", 0);// Desentranhamento; + //$fnCadastrar("17", 0);// Encerramento/abertura de volume no processo; + //$fnCadastrar("18", 0);// Registro de extravio; + + $objDTO = new InfraAgendamentoTarefaDTO(); + + $fnCadastrar = function ($strComando, $strDesc) use ($objDTO, $objBD, $objRN): void { + + $objDTO->unSetTodos(); + $objDTO->setStrComando($strComando); - $objInfraParametro = new InfraParametro($objInfraBanco); - $objInfraParametro->setValor('PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO', '3'); + if ($objBD->contar($objDTO) == 0) { + $objDTO->setStrDescricao($strDesc); + $objDTO->setStrStaPeriodicidadeExecucao('D'); + $objDTO->setStrPeriodicidadeComplemento('0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23'); + $objDTO->setStrSinAtivo('S'); + $objDTO->setStrSinSucesso('S'); - /* ---------- antigo mtodo (instalarV002R003S000IW001) ---------- */ + $objBD->cadastrar($objDTO); + } + }; - $objDTO = new TarefaDTO(); - $objBD = new TarefaBD($objInfraBanco); + $fnCadastrar('PENAgendamentoRN::seiVerificarServicosBarramento', 'Verificao dos servios de fila de processamento esto em execuo'); - $fnAlterar = function ($strIdTarefaModulo, $strNome) use ($objDTO, $objBD) { + /* ---------- antigo mtodo (instalarV002R003S000US024) ---------- */ - $objDTO->unSetTodos(); - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - $objDTO->setNumMaxRegistrosRetorno(1); - $objDTO->retStrNome(); - $objDTO->retNumIdTarefa(); + $objMetaBD->criarTabela(['tabela' => 'md_pen_tramite_processado', 'cols' => ['id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'dth_ultimo_processamento' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO], 'numero_tentativas' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'sin_recebimento_concluido' => [$objMetaBD->tipoTextoFixo(1), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_tramite']]]); - $objDTO = $objBD->consultar($objDTO); + $objInfraParametro = new InfraParametro($objInfraBanco); + $objInfraParametro->setValor('PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO', '3'); - if (empty($objDTO)) { - $objDTO->setStrNome($strNome); - $objBD->cadastrar($objDTO); - } else { + /* ---------- antigo mtodo (instalarV002R003S000IW001) ---------- */ - $objDTO->setStrNome($strNome); - $objBD->alterar($objDTO); - } - }; + $objDTO = new TarefaDTO(); + $objBD = new TarefaBD($objInfraBanco); + + $fnAlterar = function ($strIdTarefaModulo, $strNome) use ($objDTO, $objBD): void { + + $objDTO->unSetTodos(); + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); + $objDTO->setNumMaxRegistrosRetorno(1); + $objDTO->retStrNome(); + $objDTO->retNumIdTarefa(); + + $objDTO = $objBD->consultar($objDTO); + + if (empty($objDTO)) { + + $objDTO->setStrNome($strNome); + $objBD->cadastrar($objDTO); + } else { + + $objDTO->setStrNome($strNome); + $objBD->alterar($objDTO); + } + }; - $fnAlterar('PEN_PROCESSO_RECEBIDO', 'Processo recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@'); + $fnAlterar('PEN_PROCESSO_RECEBIDO', 'Processo recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@'); - /* ---------- antigo mtodo (instalarV002R003S001US035) ---------- */ - $objMetaBanco = $this->inicializarObjMetaBanco(); + /* ---------- antigo mtodo (instalarV002R003S001US035) ---------- */ + $objMetaBanco = $this->inicializarObjMetaBanco(); if (!$objMetaBanco->isColunaExiste('md_pen_tramite_processado', 'tipo_tramite_processo')) { - $objMetaBanco->adicionarColuna('md_pen_tramite_processado', 'tipo_tramite_processo', 'CHAR(2)', PenMetaBD::NNULLO); - $objMetaBanco->adicionarValorPadraoParaColuna('md_pen_tramite_processado', 'tipo_tramite_processo', 'RP'); + $objMetaBanco->adicionarColuna('md_pen_tramite_processado', 'tipo_tramite_processo', 'CHAR(2)', PenMetaBD::NNULLO); + $objMetaBanco->adicionarValorPadraoParaColuna('md_pen_tramite_processado', 'tipo_tramite_processo', 'RP'); } if ($objMetaBanco->isChaveExiste('md_pen_tramite_processado', 'pk_md_pen_tramite_processado')) { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $this->excluirChavePrimariaComIndice("md_pen_tramite_processado", "pk_md_pen_tramite_processado"); - $objInfraMetaBD->adicionarChavePrimaria("md_pen_tramite_processado", "pk_md_pen_tramite_processado", array('id_tramite', 'tipo_tramite_processo')); + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $this->excluirChavePrimariaComIndice("md_pen_tramite_processado", "pk_md_pen_tramite_processado"); + $objInfraMetaBD->adicionarChavePrimaria("md_pen_tramite_processado", "pk_md_pen_tramite_processado", ['id_tramite', 'tipo_tramite_processo']); } - /* ---------- antigo mtodo (instalarV003R003S003IW001) ---------- */ + /* ---------- antigo mtodo (instalarV003R003S003IW001) ---------- */ - //---------------------------------------------------------------------- - // Novas sequncias - //---------------------------------------------------------------------- - $objInfraSequencia = new InfraSequencia($objInfraBanco); + //---------------------------------------------------------------------- + // Novas sequncias + //---------------------------------------------------------------------- + $objInfraSequencia = new InfraSequencia($objInfraBanco); if (!$objInfraSequencia->verificarSequencia('md_pen_rel_doc_map_enviado')) { - $objInfraSequencia->criarSequencia('md_pen_rel_doc_map_enviado', '1', '1', '9999999999'); + $objInfraSequencia->criarSequencia('md_pen_rel_doc_map_enviado', '1', '1', '9999999999'); } if (!$objInfraSequencia->verificarSequencia('md_pen_rel_doc_map_recebido')) { - $objInfraSequencia->criarSequencia('md_pen_rel_doc_map_recebido', '1', '1', '9999999999'); + $objInfraSequencia->criarSequencia('md_pen_rel_doc_map_recebido', '1', '1', '9999999999'); } - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_doc_map_enviado', - 'cols' => array( - 'id_mapeamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'sin_padrao' => array($objMetaBD->tipoTextoFixo(1), 'S') - ), - 'pk' => array('cols' => array('id_mapeamento')), - 'fks' => array( - 'serie' => array('nome' => 'fk_md_pen_rel_doc_map_env_seri', 'cols' => array('id_serie', 'id_serie')), - 'md_pen_especie_documental' => array('nome' => 'fk_md_pen_rel_doc_map_env_espe', 'cols' => array('id_especie', 'codigo_especie')), - ) - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_doc_map_recebido', - 'cols' => array( - 'id_mapeamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'sin_padrao' => array($objMetaBD->tipoTextoFixo(1), 'S') - ), - 'pk' => array('cols' => array('id_mapeamento')), - 'fks' => array( - 'serie' => array('nome' => 'fk_md_pen_rel_doc_map_rec_seri', 'cols' => array('id_serie', 'id_serie')), - 'md_pen_especie_documental' => array('nome' => 'fk_md_pen_rel_doc_map_rec_espe', 'cols' => array('id_especie', 'codigo_especie')), - ) - )); - - $objBD = new PenRelTipoDocMapRecebidoBD($objInfraBanco); - if ($objMetaBD->isTabelaExiste('md_pen_rel_tipo_documento_mapeamento_recebido')) { - $objDTO = new PenRelTipoDocMapRecebidoDTO(); - $fnCadastrar = function ($numCodigoEspecie, $numIdSerie) use ($objDTO, $objBD) { - $objDTO->unSetTodos(); - $objDTO->setNumCodigoEspecie($numCodigoEspecie); - $objDTO->setNumIdSerie($numIdSerie); + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_doc_map_enviado', 'cols' => ['id_mapeamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'sin_padrao' => [$objMetaBD->tipoTextoFixo(1), 'S']], 'pk' => ['cols' => ['id_mapeamento']], 'fks' => ['serie' => ['nome' => 'fk_md_pen_rel_doc_map_env_seri', 'cols' => ['id_serie', 'id_serie']], 'md_pen_especie_documental' => ['nome' => 'fk_md_pen_rel_doc_map_env_espe', 'cols' => ['id_especie', 'codigo_especie']]]]); - if ($objBD->contar($objDTO) == 0) { - $objDTO->setStrPadrao('S'); - $objBD->cadastrar($objDTO); - } - }; + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_doc_map_recebido', 'cols' => ['id_mapeamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'sin_padrao' => [$objMetaBD->tipoTextoFixo(1), 'S']], 'pk' => ['cols' => ['id_mapeamento']], 'fks' => ['serie' => ['nome' => 'fk_md_pen_rel_doc_map_rec_seri', 'cols' => ['id_serie', 'id_serie']], 'md_pen_especie_documental' => ['nome' => 'fk_md_pen_rel_doc_map_rec_espe', 'cols' => ['id_especie', 'codigo_especie']]]]); - $arrDados = $objInfraBanco->consultarSql('SELECT DISTINCT codigo_especie, id_serie FROM md_pen_rel_tipo_documento_mapeamento_recebido'); + $objBD = new PenRelTipoDocMapRecebidoBD($objInfraBanco); + if ($objMetaBD->isTabelaExiste('md_pen_rel_tipo_documento_mapeamento_recebido')) { + $objDTO = new PenRelTipoDocMapRecebidoDTO(); + $fnCadastrar = function ($numCodigoEspecie, $numIdSerie) use ($objDTO, $objBD): void { + $objDTO->unSetTodos(); + $objDTO->setNumCodigoEspecie($numCodigoEspecie); + $objDTO->setNumIdSerie($numIdSerie); + + if ($objBD->contar($objDTO) == 0) { + $objDTO->setStrPadrao('S'); + $objBD->cadastrar($objDTO); + } + }; + + $arrDados = $objInfraBanco->consultarSql('SELECT DISTINCT codigo_especie, id_serie FROM md_pen_rel_tipo_documento_mapeamento_recebido'); if (!empty($arrDados)) { foreach ($arrDados as $arrDocMapRecebido) { - $fnCadastrar($arrDocMapRecebido['codigo_especie'], $arrDocMapRecebido['id_serie']); + $fnCadastrar($arrDocMapRecebido['codigo_especie'], $arrDocMapRecebido['id_serie']); } } - $objMetaBD->removerTabela('md_pen_rel_tipo_documento_mapeamento_recebido'); + $objMetaBD->removerTabela('md_pen_rel_tipo_documento_mapeamento_recebido'); } if ($objMetaBD->isTabelaExiste('md_pen_rel_serie_especie')) { - $objDTO = new PenRelTipoDocMapEnviadoDTO(); - $fnCadastrar = function ($numCodigoEspecie, $numIdSerie) use ($objDTO, $objBD) { + $objDTO = new PenRelTipoDocMapEnviadoDTO(); + $fnCadastrar = function ($numCodigoEspecie, $numIdSerie) use ($objDTO, $objBD): void { - $objDTO->unSetTodos(); - $objDTO->setNumCodigoEspecie($numCodigoEspecie); - $objDTO->setNumIdSerie($numIdSerie); + $objDTO->unSetTodos(); + $objDTO->setNumCodigoEspecie($numCodigoEspecie); + $objDTO->setNumIdSerie($numIdSerie); - if ($objBD->contar($objDTO) == 0) { - $objDTO->setStrPadrao('S'); - $objBD->cadastrar($objDTO); - } - }; + if ($objBD->contar($objDTO) == 0) { + $objDTO->setStrPadrao('S'); + $objBD->cadastrar($objDTO); + } + }; - $arrDados = $objInfraBanco->consultarSql('SELECT DISTINCT codigo_especie, id_serie FROM md_pen_rel_serie_especie'); + $arrDados = $objInfraBanco->consultarSql('SELECT DISTINCT codigo_especie, id_serie FROM md_pen_rel_serie_especie'); if (!empty($arrDados)) { foreach ($arrDados as $arrDocMapEnviado) { - $fnCadastrar($arrDocMapEnviado['codigo_especie'], $arrDocMapEnviado['id_serie']); + $fnCadastrar($arrDocMapEnviado['codigo_especie'], $arrDocMapEnviado['id_serie']); } } - $objMetaBD->removerTabela('md_pen_rel_serie_especie'); + $objMetaBD->removerTabela('md_pen_rel_serie_especie'); } - /* ---------- antigo mtodo (instalarV004R003S003IW002) ---------- */ + /* ---------- antigo mtodo (instalarV004R003S003IW002) ---------- */ - $strTipo = $this->inicializarObjMetaBanco()->tipoTextoGrande(); - $objMetaBanco->adicionarColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); - BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite set cadeia_certificado_temp = cadeia_certificado"); - $objMetaBanco->excluirColuna('md_pen_recibo_tramite', 'cadeia_certificado'); + $strTipo = $this->inicializarObjMetaBanco()->tipoTextoGrande(); + $objMetaBanco->adicionarColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); + BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite set cadeia_certificado_temp = cadeia_certificado"); + $objMetaBanco->excluirColuna('md_pen_recibo_tramite', 'cadeia_certificado'); try { - $objMetaBanco->renomearColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', 'cadeia_certificado', $strTipo); + $objMetaBanco->renomearColuna('md_pen_recibo_tramite', 'cadeia_certificado_temp', 'cadeia_certificado', $strTipo); } catch (Exception $e) { if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { - throw $e; + throw $e; } } - $objMetaBanco->adicionarColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); - BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite_enviado set cadeia_certificado_temp = cadeia_certificado"); - $objMetaBanco->excluirColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado'); + $objMetaBanco->adicionarColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', $strTipo, PenMetaBD::SNULLO); + BancoSEI::getInstance()->executarSql("update md_pen_recibo_tramite_enviado set cadeia_certificado_temp = cadeia_certificado"); + $objMetaBanco->excluirColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado'); try { - $objMetaBanco->renomearColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', 'cadeia_certificado', $strTipo); + $objMetaBanco->renomearColuna('md_pen_recibo_tramite_enviado', 'cadeia_certificado_temp', 'cadeia_certificado', $strTipo); } catch (Exception $e) { if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { - throw $e; + throw $e; } } - /* ---------- antigo mtodo (instalarV005R003S005IW018) ---------- */ - $objBD = new TarefaBD(BancoSEI::getInstance()); - $objDTO = new TarefaDTO(); - - $fnCadastrar = function ($strNome = '', $strHistoricoResumido = 'N', $strHistoricoCompleto = 'N', $strFecharAndamentosAbertos = 'N', $strLancarAndamentoFechado = 'N', $strPermiteProcessoFechado = 'N', $strIdTarefaModulo = '', $strSinConsultaProcessual = 'N') use ($objDTO, $objBD) { - $objDTO->unSetTodos(); - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - - if ($objBD->contar($objDTO) == 0) { - - $objUltimaTarefaDTO = new TarefaDTO(); - $objUltimaTarefaDTO->retNumIdTarefa(); - $objUltimaTarefaDTO->setNumMaxRegistrosRetorno(1); - $objUltimaTarefaDTO->setOrd('IdTarefa', InfraDTO::$TIPO_ORDENACAO_DESC); - $objUltimaTarefaDTO = $objBD->consultar($objUltimaTarefaDTO); - - $objDTO->setNumIdTarefa($objUltimaTarefaDTO->getNumIdTarefa() + 1); - $objDTO->setStrNome($strNome); - $objDTO->setStrSinHistoricoResumido($strHistoricoResumido); - $objDTO->setStrSinHistoricoCompleto($strHistoricoCompleto); - $objDTO->setStrSinFecharAndamentosAbertos($strFecharAndamentosAbertos); - $objDTO->setStrSinLancarAndamentoFechado($strLancarAndamentoFechado); - $objDTO->setStrSinPermiteProcessoFechado($strPermiteProcessoFechado); - if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { - $objDTO->setStrSinConsultaProcessual($strSinConsultaProcessual); + /* ---------- antigo mtodo (instalarV005R003S005IW018) ---------- */ + $objBD = new TarefaBD(BancoSEI::getInstance()); + $objDTO = new TarefaDTO(); + + $fnCadastrar = function ($strNome = '', $strHistoricoResumido = 'N', $strHistoricoCompleto = 'N', $strFecharAndamentosAbertos = 'N', $strLancarAndamentoFechado = 'N', $strPermiteProcessoFechado = 'N', $strIdTarefaModulo = '', $strSinConsultaProcessual = 'N') use ($objDTO, $objBD): void { + $objDTO->unSetTodos(); + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); + + if ($objBD->contar($objDTO) == 0) { + + $objUltimaTarefaDTO = new TarefaDTO(); + $objUltimaTarefaDTO->retNumIdTarefa(); + $objUltimaTarefaDTO->setNumMaxRegistrosRetorno(1); + $objUltimaTarefaDTO->setOrd('IdTarefa', InfraDTO::$TIPO_ORDENACAO_DESC); + $objUltimaTarefaDTO = $objBD->consultar($objUltimaTarefaDTO); + + $objDTO->setNumIdTarefa($objUltimaTarefaDTO->getNumIdTarefa() + 1); + $objDTO->setStrNome($strNome); + $objDTO->setStrSinHistoricoResumido($strHistoricoResumido); + $objDTO->setStrSinHistoricoCompleto($strHistoricoCompleto); + $objDTO->setStrSinFecharAndamentosAbertos($strFecharAndamentosAbertos); + $objDTO->setStrSinLancarAndamentoFechado($strLancarAndamentoFechado); + $objDTO->setStrSinPermiteProcessoFechado($strPermiteProcessoFechado); + if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { + $objDTO->setStrSinConsultaProcessual($strSinConsultaProcessual); + } + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); + $objBD->cadastrar($objDTO); } - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - $objBD->cadastrar($objDTO); - } - }; + }; - $fnCadastrar('O trmite externo do processo foi abortado manualmente devido a falha no trmite', 'S', 'S', 'N', 'N', 'S', 'PEN_EXPEDICAO_PROCESSO_ABORTADA'); + $fnCadastrar('O trmite externo do processo foi abortado manualmente devido a falha no trmite', 'S', 'S', 'N', 'N', 'S', 'PEN_EXPEDICAO_PROCESSO_ABORTADA'); - /* ---------- antigo mtodo (instalarV005R003S005IW023) ---------- */ - $objBD = new TarefaBD(BancoSEI::getInstance()); + /* ---------- antigo mtodo (instalarV005R003S005IW023) ---------- */ + $objBD = new TarefaBD(BancoSEI::getInstance()); - $objDTO = new TarefaDTO(); - $objDTO->retNumIdTarefa(); - $objDTO->retStrNome(); + $objDTO = new TarefaDTO(); + $objDTO->retNumIdTarefa(); + $objDTO->retStrNome(); - $fnAtualizar = function ($strIdTarefaModulo, $strNome) use ($objDTO, $objBD) { + $fnAtualizar = function ($strIdTarefaModulo, $strNome) use ($objDTO, $objBD): void { - $objDTO->unSetTodos(); - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); + $objDTO->unSetTodos(); + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - $objTarefaDTO = $objBD->consultar($objDTO); + $objTarefaDTO = $objBD->consultar($objDTO); - if (!empty($objTarefaDTO)) { + if (!empty($objTarefaDTO)) { - $objTarefaDTO->setStrNome($strNome); + $objTarefaDTO->setStrNome($strNome); - $objBD->alterar($objTarefaDTO); - } - }; - // Tramitao externa do processo @processo@ concluda com sucesso. Recebido na @UnidadeDestino@ - @hierarquia_superior@ -@repositrio_de_estruturas@ - $fnAtualizar('PEN_PROCESSO_EXPEDIDO', 'Processo em tramitao externa para @UNIDADE_DESTINO@ - @UNIDADE_DESTINO_HIRARQUIA@ - @REPOSITORIO_DESTINO@'); - $fnAtualizar('PEN_PROCESSO_RECEBIDO', 'Processo recebido da unidade externa @ENTIDADE_ORIGEM@ - @ENTIDADE_ORIGEM_HIRARQUIA@ - @REPOSITORIO_ORIGEM@'); - $fnAtualizar('PEN_OPERACAO_EXTERNA', 'Tramitao externa do processo @PROTOCOLO_FORMATADO@ concluda com sucesso. Recebido em @UNIDADE_DESTINO@ - @UNIDADE_DESTINO_HIRARQUIA@ - @REPOSITORIO_DESTINO@'); - - /* ---------- antigo mtodo (instalarV006R004S004WI001) ---------- */ - $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - $objInfraParametro->setValor('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO', 50); - - /* ---------- antigo mtodo (instalarV007R004S005WI002) ---------- */ - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_recibo_tramite_hash', - 'cols' => array( - 'id_tramite_hash' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'numero_registro' => array($objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO), - 'id_tramite' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'tipo_recibo' => array($objMetaBD->tipoTextoFixo(1), PenMetaBD::NNULLO), - 'hash_componente_digital ' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id_tramite_hash')), - 'fks' => array( - 'md_pen_tramite' => array('nome' => 'fk_md_pen_rec_tram_hash_tram', 'cols' => array(array('numero_registro', 'id_tramite'), array('numero_registro', 'id_tramite'))) - ) - )); - - $objMetaBD->adicionarColuna('md_pen_recibo_tramite_recebido', 'cadeia_certificado', $this->inicializarObjMetaBanco()->tipoTextoGrande(), PenMetaBD::SNULLO); - - $objInfraSequencia = new InfraSequencia(BancoSEI::getInstance()); + $objBD->alterar($objTarefaDTO); + } + }; + // Tramitao externa do processo @processo@ concluda com sucesso. Recebido na @UnidadeDestino@ - @hierarquia_superior@ -@repositrio_de_estruturas@ + $fnAtualizar('PEN_PROCESSO_EXPEDIDO', 'Processo em tramitao externa para @UNIDADE_DESTINO@ - @UNIDADE_DESTINO_HIRARQUIA@ - @REPOSITORIO_DESTINO@'); + $fnAtualizar('PEN_PROCESSO_RECEBIDO', 'Processo recebido da unidade externa @ENTIDADE_ORIGEM@ - @ENTIDADE_ORIGEM_HIRARQUIA@ - @REPOSITORIO_ORIGEM@'); + $fnAtualizar('PEN_OPERACAO_EXTERNA', 'Tramitao externa do processo @PROTOCOLO_FORMATADO@ concluda com sucesso. Recebido em @UNIDADE_DESTINO@ - @UNIDADE_DESTINO_HIRARQUIA@ - @REPOSITORIO_DESTINO@'); + + /* ---------- antigo mtodo (instalarV006R004S004WI001) ---------- */ + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + $objInfraParametro->setValor('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO', 50); + + /* ---------- antigo mtodo (instalarV007R004S005WI002) ---------- */ + + $objMetaBD->criarTabela(['tabela' => 'md_pen_recibo_tramite_hash', 'cols' => ['id_tramite_hash' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'numero_registro' => [$objMetaBD->tipoTextoFixo(16), PenMetaBD::NNULLO], 'id_tramite' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'tipo_recibo' => [$objMetaBD->tipoTextoFixo(1), PenMetaBD::NNULLO], 'hash_componente_digital ' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_tramite_hash']], 'fks' => ['md_pen_tramite' => ['nome' => 'fk_md_pen_rec_tram_hash_tram', 'cols' => [['numero_registro', 'id_tramite'], ['numero_registro', 'id_tramite']]]]]); + + $objMetaBD->adicionarColuna('md_pen_recibo_tramite_recebido', 'cadeia_certificado', $this->inicializarObjMetaBanco()->tipoTextoGrande(), PenMetaBD::SNULLO); + + $objInfraSequencia = new InfraSequencia(BancoSEI::getInstance()); if (!$objInfraSequencia->verificarSequencia('md_pen_recibo_tramite_hash')) { - $objInfraSequencia->criarSequencia('md_pen_recibo_tramite_hash', '1', '1', '9999999999'); + $objInfraSequencia->criarSequencia('md_pen_recibo_tramite_hash', '1', '1', '9999999999'); } if (InfraUtil::compararVersoes(SEI_VERSAO, '<=', '4.0.0')) { - $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - $objInfraParametro->setValor('PEN_VERSAO_MODULO_SEI', '0.0.0'); + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + $objInfraParametro->setValor('PEN_VERSAO_MODULO_SEI', '0.0.0'); } - $this->atualizarNumeroVersao("1.0.0"); + $this->atualizarNumeroVersao("1.0.0"); - $this->logar(' EXECUTADA A INSTALACAO DA VERSAO 0.0.1 DO MODULO TRAMITA GOV.BR NO SEI COM SUCESSO'); + $this->logar(' EXECUTADA A INSTALACAO DA VERSAO 0.0.1 DO MODULO TRAMITA GOV.BR NO SEI COM SUCESSO'); } - /* Contm atualizaes da versao 1.0.1 do modulo */ + /* Contm atualizaes da versao 1.0.1 do modulo */ protected function instalarV101() - { - $objBD = new TarefaBD(BancoSEI::getInstance()); - - $objTarefaDTO = new TarefaDTO(); - $objTarefaDTO->setStrIdTarefaModulo('PEN_PROCESSO_RECEBIDO'); - $objTarefaDTO->retNumIdTarefa(); - - $objTarefaDTO = $objBD->consultar($objTarefaDTO); - - $objTarefaDTO->setStrSinLancarAndamentoFechado('N'); - $objTarefaDTO->setStrSinPermiteProcessoFechado('S'); - - $objBD->alterar($objTarefaDTO); - - /* ---------- antigo mtodo (instalarV006R004S001US039) ---------- */ - $objMetaBD = $this->inicializarObjMetaBanco(); - $objInfraBanco = BancoSEI::getInstance(); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_hipotese_legal', - 'cols' => array( - 'id_hipotese_legal' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'nome' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO), - 'sin_ativo' => array($objMetaBD->tipoTextoFixo(1), 'S'), - ), - 'pk' => array('cols' => array('id_hipotese_legal')), - )); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_hipotese_legal', - 'cols' => array( - 'id_mapeamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_hipotese_legal' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_hipotese_legal_pen' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'tipo' => array($objMetaBD->tipoTextoFixo(1), 'E'), - 'sin_ativo' => array($objMetaBD->tipoTextoFixo(1), 'S'), - ), - 'pk' => array('cols' => array('id_mapeamento')), - 'fks' => array( - 'hipotese_legal' => array('nome' => 'fk_md_pen_rel_hipotese_legal', 'cols' => array('id_hipotese_legal', 'id_hipotese_legal')), - 'md_pen_hipotese_legal' => array('nome' => 'fk_md_pen_rel_hipotese_pen', 'cols' => array('id_hipotese_legal', 'id_hipotese_legal_pen')) - ) - )); - - $objInfraSequencia = new InfraSequencia($objInfraBanco); + { + $objBD = new TarefaBD(BancoSEI::getInstance()); + + $objTarefaDTO = new TarefaDTO(); + $objTarefaDTO->setStrIdTarefaModulo('PEN_PROCESSO_RECEBIDO'); + $objTarefaDTO->retNumIdTarefa(); + + $objTarefaDTO = $objBD->consultar($objTarefaDTO); + + $objTarefaDTO->setStrSinLancarAndamentoFechado('N'); + $objTarefaDTO->setStrSinPermiteProcessoFechado('S'); + + $objBD->alterar($objTarefaDTO); + + /* ---------- antigo mtodo (instalarV006R004S001US039) ---------- */ + $objMetaBD = $this->inicializarObjMetaBanco(); + $objInfraBanco = BancoSEI::getInstance(); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_hipotese_legal', 'cols' => ['id_hipotese_legal' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'nome' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::NNULLO], 'sin_ativo' => [$objMetaBD->tipoTextoFixo(1), 'S']], 'pk' => ['cols' => ['id_hipotese_legal']]]); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_hipotese_legal', 'cols' => ['id_mapeamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_hipotese_legal' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_hipotese_legal_pen' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'tipo' => [$objMetaBD->tipoTextoFixo(1), 'E'], 'sin_ativo' => [$objMetaBD->tipoTextoFixo(1), 'S']], 'pk' => ['cols' => ['id_mapeamento']], 'fks' => ['hipotese_legal' => ['nome' => 'fk_md_pen_rel_hipotese_legal', 'cols' => ['id_hipotese_legal', 'id_hipotese_legal']], 'md_pen_hipotese_legal' => ['nome' => 'fk_md_pen_rel_hipotese_pen', 'cols' => ['id_hipotese_legal', 'id_hipotese_legal_pen']]]]); + + $objInfraSequencia = new InfraSequencia($objInfraBanco); if (!$objInfraSequencia->verificarSequencia('md_pen_hipotese_legal')) { - $objInfraSequencia->criarSequencia('md_pen_hipotese_legal', '1', '1', '9999999999'); + $objInfraSequencia->criarSequencia('md_pen_hipotese_legal', '1', '1', '9999999999'); } if (!$objInfraSequencia->verificarSequencia('md_pen_rel_hipotese_legal')) { - $objInfraSequencia->criarSequencia('md_pen_rel_hipotese_legal', '1', '1', '9999999999'); + $objInfraSequencia->criarSequencia('md_pen_rel_hipotese_legal', '1', '1', '9999999999'); } - $objHipoteseLegalDTO = new HipoteseLegalDTO(); - $objHipoteseLegalDTO->setDistinct(true); - $objHipoteseLegalDTO->setStrStaNivelAcesso(1); - $objHipoteseLegalDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC); - $objHipoteseLegalDTO->retNumIdHipoteseLegal(); - $objHipoteseLegalDTO->retStrNome(); + $objHipoteseLegalDTO = new HipoteseLegalDTO(); + $objHipoteseLegalDTO->setDistinct(true); + $objHipoteseLegalDTO->setStrStaNivelAcesso(1); + $objHipoteseLegalDTO->setOrdStrNome(InfraDTO::$TIPO_ORDENACAO_ASC); + $objHipoteseLegalDTO->retNumIdHipoteseLegal(); + $objHipoteseLegalDTO->retStrNome(); - $objMetaBD = $this->inicializarObjMetaBanco(); + $objMetaBD = $this->inicializarObjMetaBanco(); - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_parametro', - 'cols' => array( - 'nome' => array($objMetaBD->tipoTextoVariavel(100), PenMetaBD::NNULLO), - 'valor' => array($objMetaBD->tipoTextoGrande(), PenMetaBD::SNULLO) - ), - 'pk' => array('cols' => array('nome')), - )); + $objMetaBD->criarTabela(['tabela' => 'md_pen_parametro', 'cols' => ['nome' => [$objMetaBD->tipoTextoVariavel(100), PenMetaBD::NNULLO], 'valor' => [$objMetaBD->tipoTextoGrande(), PenMetaBD::SNULLO]], 'pk' => ['cols' => ['nome']]]); - //Agendamento - $objDTO = new InfraAgendamentoTarefaDTO(); + //Agendamento + $objDTO = new InfraAgendamentoTarefaDTO(); - $fnCadastrar = function ($strComando, $strDesc) use ($objDTO, $objBD, $objRN) { + $fnCadastrar = function ($strComando, $strDesc) use ($objDTO, $objBD, $objRN): void { - $objDTO->unSetTodos(); - $objDTO->setStrComando($strComando); + $objDTO->unSetTodos(); + $objDTO->setStrComando($strComando); - if ($objBD->contar($objDTO) == 0) { + if ($objBD->contar($objDTO) == 0) { - $objDTO->setStrDescricao($strDesc); - $objDTO->setStrStaPeriodicidadeExecucao('D'); - $objDTO->setStrPeriodicidadeComplemento('0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23'); - $objDTO->setStrSinAtivo('S'); - $objDTO->setStrSinSucesso('S'); + $objDTO->setStrDescricao($strDesc); + $objDTO->setStrStaPeriodicidadeExecucao('D'); + $objDTO->setStrPeriodicidadeComplemento('0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23'); + $objDTO->setStrSinAtivo('S'); + $objDTO->setStrSinSucesso('S'); - $objBD->cadastrar($objDTO); - } - }; + $objBD->cadastrar($objDTO); + } + }; - $fnCadastrar('PENAgendamentoRN::atualizarHipotesesLegais', 'Verificao se h novas hipteses legais do barramento.'); + $fnCadastrar('PENAgendamentoRN::atualizarHipotesesLegais', 'Verificao se h novas hipteses legais do barramento.'); - $this->atualizarNumeroVersao("1.0.1"); + $this->atualizarNumeroVersao("1.0.1"); } - /* Contm atualizaes da versao 1.1.0 do modulo */ + /* Contm atualizaes da versao 1.1.0 do modulo */ protected function instalarV110() - { - $objMetaBD = $this->objMeta; - - //Adiciona a coluna de indentificao nas hipteses que vem do barramento - $objMetaBD->adicionarColuna('md_pen_hipotese_legal', 'identificacao', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::SNULLO); - - //Adiciona a coluna de descricao nos parmetros - $objMetaBD->adicionarColuna('md_pen_parametro', 'descricao', $this->inicializarObjMetaBanco()->tipoTextoVariavel(255), PenMetaBD::SNULLO); - - //Cria os parmetros do mdulo PEN barramento (md_pen_parametro [ nome, valor ]) - $this->criarParametro('PEN_ENDERECO_WEBSERVICE', 'https://pen-api.trafficmanager.net/interoperabilidade/soap/v3/', 'Endereo do Web Service'); - $this->criarParametro('PEN_ENDERECO_WEBSERVICE_PENDENCIAS', 'https://pen-pendencias.trafficmanager.net/', 'Endereo do Web Service de Pendncias'); - $this->criarParametro('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO', 'N', 'Envia E-mail de Notificao de Recebimento'); - $this->criarParametro('PEN_ID_REPOSITORIO_ORIGEM', '1', 'ID do Repositrio de Origem'); - $this->criarParametro('PEN_LOCALIZACAO_CERTIFICADO_DIGITAL', '/opt/sei/config/mod-pen/certificado.pem', 'Localizao do Certificado Digital'); - $this->criarParametro('PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO', '3', 'Nmero Mximo de Tentativas de Recebimento'); - $this->criarParametro('PEN_SENHA_CERTIFICADO_DIGITAL', '1234', 'Senha do Certificado Digital'); - $this->criarParametro('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO', '50', 'Tamanho Mximo de Documento Expedido'); - $this->criarParametro('PEN_TIPO_PROCESSO_EXTERNO', '', 'Tipo de Processo Externo'); - $this->criarParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '', 'Unidade Geradora de Processo e Documento Recebido'); - - //Deleta os parmetros do infra_parametros - $this->deletaParametroInfra('PEN_ENDERECO_WEBSERVICE'); - $this->deletaParametroInfra('PEN_ENDERECO_WEBSERVICE_PENDENCIAS'); - $this->deletaParametroInfra('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO'); - $this->deletaParametroInfra('PEN_ID_REPOSITORIO_ORIGEM'); - $this->deletaParametroInfra('PEN_LOCALIZACAO_CERTIFICADO_DIGITAL'); - $this->deletaParametroInfra('PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO'); - $this->deletaParametroInfra('PEN_SENHA_CERTIFICADO_DIGITAL'); - $this->deletaParametroInfra('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO'); - $this->deletaParametroInfra('PEN_TIPO_PROCESSO_EXTERNO'); - $this->deletaParametroInfra('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); - - //Alterar nomeclatura do recurso - $objDTO = new PenParametroDTO(); - $objDTO->setStrNome('HIPOTESE_LEGAL_PADRAO'); - $objDTO->retStrNome(); - $objBD = new PenParametroBD(BancoSEI::getInstance()); - $objDTO = $objBD->consultar($objDTO); - if ($objDTO) { - $objDTO->setStrDescricao('Hiptese Legal Padro'); - $objBD->alterar($objDTO); - } else { + { + $objMetaBD = $this->objMeta; + + //Adiciona a coluna de indentificao nas hipteses que vem do barramento + $objMetaBD->adicionarColuna('md_pen_hipotese_legal', 'identificacao', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::SNULLO); + + //Adiciona a coluna de descricao nos parmetros + $objMetaBD->adicionarColuna('md_pen_parametro', 'descricao', $this->inicializarObjMetaBanco()->tipoTextoVariavel(255), PenMetaBD::SNULLO); + + //Cria os parmetros do mdulo PEN barramento (md_pen_parametro [ nome, valor ]) + $this->criarParametro('PEN_ENDERECO_WEBSERVICE', 'https://pen-api.trafficmanager.net/interoperabilidade/soap/v3/', 'Endereo do Web Service'); + $this->criarParametro('PEN_ENDERECO_WEBSERVICE_PENDENCIAS', 'https://pen-pendencias.trafficmanager.net/', 'Endereo do Web Service de Pendncias'); + $this->criarParametro('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO', 'N', 'Envia E-mail de Notificao de Recebimento'); + $this->criarParametro('PEN_ID_REPOSITORIO_ORIGEM', '1', 'ID do Repositrio de Origem'); + $this->criarParametro('PEN_LOCALIZACAO_CERTIFICADO_DIGITAL', '/opt/sei/config/mod-pen/certificado.pem', 'Localizao do Certificado Digital'); + $this->criarParametro('PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO', '3', 'Nmero Mximo de Tentativas de Recebimento'); + $this->criarParametro('PEN_SENHA_CERTIFICADO_DIGITAL', '1234', 'Senha do Certificado Digital'); + $this->criarParametro('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO', '50', 'Tamanho Mximo de Documento Expedido'); + $this->criarParametro('PEN_TIPO_PROCESSO_EXTERNO', '', 'Tipo de Processo Externo'); + $this->criarParametro('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '', 'Unidade Geradora de Processo e Documento Recebido'); + + //Deleta os parmetros do infra_parametros + $this->deletaParametroInfra('PEN_ENDERECO_WEBSERVICE'); + $this->deletaParametroInfra('PEN_ENDERECO_WEBSERVICE_PENDENCIAS'); + $this->deletaParametroInfra('PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO'); + $this->deletaParametroInfra('PEN_ID_REPOSITORIO_ORIGEM'); + $this->deletaParametroInfra('PEN_LOCALIZACAO_CERTIFICADO_DIGITAL'); + $this->deletaParametroInfra('PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO'); + $this->deletaParametroInfra('PEN_SENHA_CERTIFICADO_DIGITAL'); + $this->deletaParametroInfra('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO'); + $this->deletaParametroInfra('PEN_TIPO_PROCESSO_EXTERNO'); + $this->deletaParametroInfra('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'); + + //Alterar nomeclatura do recurso $objDTO = new PenParametroDTO(); $objDTO->setStrNome('HIPOTESE_LEGAL_PADRAO'); - $objDTO->setStrValor(1); - $objDTO->setStrDescricao('Hiptese Legal Padro'); - $objBD->cadastrar($objDTO); + $objDTO->retStrNome(); + $objBD = new PenParametroBD(BancoSEI::getInstance()); + $objDTO = $objBD->consultar($objDTO); + if ($objDTO) { + $objDTO->setStrDescricao('Hiptese Legal Padro'); + $objBD->alterar($objDTO); + } else { + $objDTO = new PenParametroDTO(); + $objDTO->setStrNome('HIPOTESE_LEGAL_PADRAO'); + $objDTO->setStrValor(1); + $objDTO->setStrDescricao('Hiptese Legal Padro'); + $objBD->cadastrar($objDTO); } - $this->atualizarNumeroVersao("1.1.0"); + $this->atualizarNumeroVersao("1.1.0"); } - /* Contm atualizaes da versao 1.1.1 do mdulo */ + /* Contm atualizaes da versao 1.1.1 do mdulo */ protected function instalarV111() - { + { - //Ajuste em nome da varivel de verso do mdulo VERSAO_MODULO_PEN - BancoSEI::getInstance()->executarSql("update infra_parametro set nome = '" . PENIntegracao::PARAMETRO_VERSAO_MODULO . "' where nome = '" . PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO . "'"); + //Ajuste em nome da varivel de verso do mdulo VERSAO_MODULO_PEN + BancoSEI::getInstance()->executarSql("update infra_parametro set nome = '" . PENIntegracao::PARAMETRO_VERSAO_MODULO . "' where nome = '" . PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO . "'"); - $this->atualizarNumeroVersao("1.1.1"); + $this->atualizarNumeroVersao("1.1.1"); } - /* Contm atualizaes da versao 1.1.7 do mdulo */ + /* Contm atualizaes da versao 1.1.7 do mdulo */ protected function instalarV117() - { - - /* Cadastramento de novas espcies documentais */ - $objEspecieDocumentalBD = new EspecieDocumentalBD(BancoSEI::getInstance()); - $objEspecieDocumentalDTO = new EspecieDocumentalDTO(); - - $fnCadastrar = function ($dblIdEspecie, $strNomeEspecie, $strDescricao) use ($objEspecieDocumentalDTO, $objEspecieDocumentalBD) { - $objEspecieDocumentalDTO->unSetTodos(); - $objEspecieDocumentalDTO->setDblIdEspecie($dblIdEspecie); - if ($objEspecieDocumentalBD->contar($objEspecieDocumentalDTO) == 0) { - $objEspecieDocumentalDTO->setStrNomeEspecie($strNomeEspecie); - // Descrio da espcie documental no mais necessria a partir da verso 2.0.0 - $objEspecieDocumentalBD->cadastrar($objEspecieDocumentalDTO); - } - }; + { + + /* Cadastramento de novas espcies documentais */ + $objEspecieDocumentalBD = new EspecieDocumentalBD(BancoSEI::getInstance()); + $objEspecieDocumentalDTO = new EspecieDocumentalDTO(); + + $fnCadastrar = function ($dblIdEspecie, $strNomeEspecie, $strDescricao) use ($objEspecieDocumentalDTO, $objEspecieDocumentalBD): void { + $objEspecieDocumentalDTO->unSetTodos(); + $objEspecieDocumentalDTO->setDblIdEspecie($dblIdEspecie); + if ($objEspecieDocumentalBD->contar($objEspecieDocumentalDTO) == 0) { + $objEspecieDocumentalDTO->setStrNomeEspecie($strNomeEspecie); + // Descrio da espcie documental no mais necessria a partir da verso 2.0.0 + $objEspecieDocumentalBD->cadastrar($objEspecieDocumentalDTO); + } + }; - $fnCadastrar(178, 'Alegaes', 'Muito comum no Judicirio, tendo previso no CPC. Podendo ser complementado "Finais", o que representaria o documento "Alegaes Finais".'); - $fnCadastrar(179, 'Anexo', 'Documento ou processo juntado em carter definitivo a outro processo, para dar continuidade a uma ao administrativa.'); - $fnCadastrar(180, 'Documento', 'Informao registrada, qualquer que seja o suporte ou formato, que no est reunida e ordenada em processo.'); - $fnCadastrar(181, 'Apartado', 'Apartado por si s, autos apartados ou partado sigiloso.'); - $fnCadastrar(182, 'Apresentao', 'Documentos que so apresentaes propriamente ditas.'); - $fnCadastrar(183, 'Diagnstico', 'Diagnstico mdico, auditoria, etc.'); - $fnCadastrar(184, 'Exame', 'Exame laboratorial, mdico, etc.'); - $fnCadastrar(185, 'Pgina', 'Pgina do Dirio Oficial da Unio.'); - $fnCadastrar(186, 'Estudo', 'Podendo ser complementado com "Tcnico Preliminar da Contratao"; "Tcnico".'); - $fnCadastrar(999, 'Outra', 'Outras espcies documentais no identificadas.'); + $fnCadastrar(178, 'Alegaes', 'Muito comum no Judicirio, tendo previso no CPC. Podendo ser complementado "Finais", o que representaria o documento "Alegaes Finais".'); + $fnCadastrar(179, 'Anexo', 'Documento ou processo juntado em carter definitivo a outro processo, para dar continuidade a uma ao administrativa.'); + $fnCadastrar(180, 'Documento', 'Informao registrada, qualquer que seja o suporte ou formato, que no est reunida e ordenada em processo.'); + $fnCadastrar(181, 'Apartado', 'Apartado por si s, autos apartados ou partado sigiloso.'); + $fnCadastrar(182, 'Apresentao', 'Documentos que so apresentaes propriamente ditas.'); + $fnCadastrar(183, 'Diagnstico', 'Diagnstico mdico, auditoria, etc.'); + $fnCadastrar(184, 'Exame', 'Exame laboratorial, mdico, etc.'); + $fnCadastrar(185, 'Pgina', 'Pgina do Dirio Oficial da Unio.'); + $fnCadastrar(186, 'Estudo', 'Podendo ser complementado com "Tcnico Preliminar da Contratao"; "Tcnico".'); + $fnCadastrar(999, 'Outra', 'Outras espcies documentais no identificadas.'); - $this->atualizarNumeroVersao("1.1.7"); + $this->atualizarNumeroVersao("1.1.7"); } - /* Contm atualizaes da versao 1.1.8 do mdulo */ + /* Contm atualizaes da versao 1.1.8 do mdulo */ protected function instalarV118() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - //Correo de chave primria para considerar campo de tipo de recibo - $this->excluirChavePrimariaComIndice('md_pen_tramite_processado', 'pk_md_pen_tramite_processado'); - $objInfraMetaBD->adicionarChavePrimaria('md_pen_tramite_processado', 'pk_md_pen_tramite_processado', array('id_tramite', 'tipo_tramite_processo')); + //Correo de chave primria para considerar campo de tipo de recibo + $this->excluirChavePrimariaComIndice('md_pen_tramite_processado', 'pk_md_pen_tramite_processado'); + $objInfraMetaBD->adicionarChavePrimaria('md_pen_tramite_processado', 'pk_md_pen_tramite_processado', ['id_tramite', 'tipo_tramite_processo']); - //Atribuio de dados da unidade de origem e destino no trmite - $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_repositorio_origem', $objInfraMetaBD->tipoNumero(16), 'null'); - $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_estrutura_origem', $objInfraMetaBD->tipoNumero(16), 'null'); - $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_repositorio_destino', $objInfraMetaBD->tipoNumero(16), 'null'); - $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_estrutura_destino', $objInfraMetaBD->tipoNumero(16), 'null'); + //Atribuio de dados da unidade de origem e destino no trmite + $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_repositorio_origem', $objInfraMetaBD->tipoNumero(16), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_estrutura_origem', $objInfraMetaBD->tipoNumero(16), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_repositorio_destino', $objInfraMetaBD->tipoNumero(16), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'id_estrutura_destino', $objInfraMetaBD->tipoNumero(16), 'null'); - $this->atualizarNumeroVersao("1.1.8"); + $this->atualizarNumeroVersao("1.1.8"); } - /* Contm atualizaes da versao 1.1.9 do mdulo */ + /* Contm atualizaes da versao 1.1.9 do mdulo */ protected function instalarV119() - { - $this->atualizarNumeroVersao("1.1.9"); + { + $this->atualizarNumeroVersao("1.1.9"); } - /* Contm atualizaes da versao 1.1.10 do mdulo */ + /* Contm atualizaes da versao 1.1.10 do mdulo */ protected function instalarV1110() - { - $this->atualizarNumeroVersao("1.1.10"); + { + $this->atualizarNumeroVersao("1.1.10"); } - /* Contm atualizaes da versao 1.1.11 do mdulo */ + /* Contm atualizaes da versao 1.1.11 do mdulo */ protected function instalarV1111() - { - BancoSEI::getInstance()->executarSql("DELETE FROM participante WHERE EXISTS (SELECT md_pen_processo_eletronico.id_procedimento FROM md_pen_processo_eletronico WHERE md_pen_processo_eletronico.id_procedimento = participante.id_protocolo AND participante.sta_participacao='R')"); + { + BancoSEI::getInstance()->executarSql("DELETE FROM participante WHERE EXISTS (SELECT md_pen_processo_eletronico.id_procedimento FROM md_pen_processo_eletronico WHERE md_pen_processo_eletronico.id_procedimento = participante.id_protocolo AND participante.sta_participacao='R')"); - $this->atualizarNumeroVersao("1.1.11"); + $this->atualizarNumeroVersao("1.1.11"); } - /* Contm atualizaes da versao 1.1.12 do mdulo */ + /* Contm atualizaes da versao 1.1.12 do mdulo */ protected function instalarV1112() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - //[#22] Correo de erro de consistncia no recebimento de processos com concorrncia - $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'sta_tipo_tramite', $objInfraMetaBD->tipoTextoFixo(1), 'null'); - $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'id_procedimento', $objInfraMetaBD->tipoNumeroGrande(), 'null'); - $objInfraMetaBD->adicionarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); + //[#22] Correo de erro de consistncia no recebimento de processos com concorrncia + $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'sta_tipo_tramite', $objInfraMetaBD->tipoTextoFixo(1), 'null'); + $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'id_procedimento', $objInfraMetaBD->tipoNumeroGrande(), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); - $objTramiteDTO = new TramiteDTO(); - $objTramiteDTO->retNumIdTramite(); - $objTramiteDTO->retStrNumeroRegistro(); + $objTramiteDTO = new TramiteDTO(); + $objTramiteDTO->retNumIdTramite(); + $objTramiteDTO->retStrNumeroRegistro(); - $objTramiteRN = new TramiteBD(BancoSEI::getInstance()); - $arrObjTramiteDTO = $objTramiteRN->listar($objTramiteDTO); + $objTramiteRN = new TramiteBD(BancoSEI::getInstance()); + $arrObjTramiteDTO = $objTramiteRN->listar($objTramiteDTO); foreach ($arrObjTramiteDTO as $objTramiteDTO) { - $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); - $objProcedimentoAndamentoDTO->retDblIdAndamento(); - $objProcedimentoAndamentoDTO->retStrNumeroRegistro(); - $objProcedimentoAndamentoDTO->retDblIdTramite(); - $objProcedimentoAndamentoDTO->setDblIdTramite($objTramiteDTO->getNumIdTramite()); - - $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD(BancoSEI::getInstance()); - $arrObjProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->listar($objProcedimentoAndamentoDTO); + $objProcedimentoAndamentoDTO = new ProcedimentoAndamentoDTO(); + $objProcedimentoAndamentoDTO->retDblIdAndamento(); + $objProcedimentoAndamentoDTO->retStrNumeroRegistro(); + $objProcedimentoAndamentoDTO->retDblIdTramite(); + $objProcedimentoAndamentoDTO->setDblIdTramite($objTramiteDTO->getNumIdTramite()); + + $objProcedimentoAndamentoBD = new ProcedimentoAndamentoBD(BancoSEI::getInstance()); + $arrObjProcedimentoAndamentoDTO = $objProcedimentoAndamentoBD->listar($objProcedimentoAndamentoDTO); foreach ($arrObjProcedimentoAndamentoDTO as $objProcedimentoAndamentoDTO) { $objProcedimentoAndamentoDTO->setStrNumeroRegistro($objTramiteDTO->getStrNumeroRegistro()); @@ -1570,695 +1291,659 @@ protected function instalarV1112() } } - $this->atualizarNumeroVersao("1.1.12"); + $this->atualizarNumeroVersao("1.1.12"); } - /* Contm atualizaes da versao 1.1.13 do mdulo */ + /* Contm atualizaes da versao 1.1.13 do mdulo */ protected function instalarV1113() - { + { - //Fix-31 - Erro ao Configurar Campo 'numero_registro' como Not Null no Scritp de atualiza<E7><E3>o - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); + //Fix-31 - Erro ao Configurar Campo 'numero_registro' como Not Null no Scritp de atualiza<E7><E3>o + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); - $this->atualizarNumeroVersao("1.1.13"); + $this->atualizarNumeroVersao("1.1.13"); } - /* Contm atualizaes da versao 1.1.14 do mdulo */ + /* Contm atualizaes da versao 1.1.14 do mdulo */ protected function instalarV1114() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraSequencia = new InfraSequencia(BancoSEI::getInstance()); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + new InfraSequencia(BancoSEI::getInstance()); - SessaoSEI::getInstance(false)->simularLogin(SessaoSEI::$USUARIO_SEI, SessaoSEI::$UNIDADE_TESTE); - SessaoInfra::setObjInfraSessao(SessaoSEI::getInstance()); - BancoInfra::setObjInfraIBanco(BancoSEI::getInstance()); + SessaoSEI::getInstance(false)->simularLogin(SessaoSEI::$USUARIO_SEI, SessaoSEI::$UNIDADE_TESTE); + SessaoInfra::setObjInfraSessao(SessaoSEI::getInstance()); + BancoInfra::setObjInfraIBanco(BancoSEI::getInstance()); - //[Fix-35] Correo de erro de integridade ao retornar mais de um elemento na consulta de mapeamento - $objInfraMetaBD->criarIndice('md_pen_rel_doc_map_enviado', 'ak1_rel_doc_map_enviado', array('id_serie'), true); - $objInfraMetaBD->criarIndice('md_pen_rel_doc_map_recebido', 'ak1_rel_doc_map_recebido', array('codigo_especie'), true); + //[Fix-35] Correo de erro de integridade ao retornar mais de um elemento na consulta de mapeamento + $objInfraMetaBD->criarIndice('md_pen_rel_doc_map_enviado', 'ak1_rel_doc_map_enviado', ['id_serie'], true); + $objInfraMetaBD->criarIndice('md_pen_rel_doc_map_recebido', 'ak1_rel_doc_map_recebido', ['codigo_especie'], true); - //30 - Correo de erros de chave duplicada devido a concorrncia de transaes - $objInfraSequenciaRN = new InfraSequenciaRN(); - $objInfraSequenciaDTO = new InfraSequenciaDTO(); + //30 - Correo de erros de chave duplicada devido a concorrncia de transaes + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); - //Sequncia: md_pen_seq_procedimento_andam - $rs = BancoSEI::getInstance()->consultarSql('select max(id_andamento) as total from md_pen_procedimento_andamento'); - $numMaxId = $rs[0]['total']; + //Sequncia: md_pen_seq_procedimento_andam + $rs = BancoSEI::getInstance()->consultarSql('select max(id_andamento) as total from md_pen_procedimento_andamento'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_procedimento_andam', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_procedimento_andamento'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_procedimento_andam', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_procedimento_andamento'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - //Sequncia: md_pen_seq_hipotese_legal - $rs = BancoSEI::getInstance()->consultarSql('select max(id_hipotese_legal) as total from md_pen_hipotese_legal'); - $numMaxId = $rs[0]['total']; + //Sequncia: md_pen_seq_hipotese_legal + $rs = BancoSEI::getInstance()->consultarSql('select max(id_hipotese_legal) as total from md_pen_hipotese_legal'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_hipotese_legal', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_hipotese_legal'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_hipotese_legal', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_hipotese_legal'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - //Sequncia: md_pen_seq_rel_hipotese_legal - $rs = BancoSEI::getInstance()->consultarSql('select max(id_mapeamento) as total from md_pen_rel_hipotese_legal'); - $numMaxId = $rs[0]['total']; + //Sequncia: md_pen_seq_rel_hipotese_legal + $rs = BancoSEI::getInstance()->consultarSql('select max(id_mapeamento) as total from md_pen_rel_hipotese_legal'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_rel_hipotese_legal', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_rel_hipotese_legal'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_rel_hipotese_legal', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_rel_hipotese_legal'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - //Sequncia: md_pen_seq_recibo_tramite_hash - $rs = BancoSEI::getInstance()->consultarSql('select max(id_tramite_hash) as total from md_pen_recibo_tramite_hash'); - $numMaxId = $rs[0]['total']; + //Sequncia: md_pen_seq_recibo_tramite_hash + $rs = BancoSEI::getInstance()->consultarSql('select max(id_tramite_hash) as total from md_pen_recibo_tramite_hash'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_recibo_tramite_hash', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_recibo_tramite_hash'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - - //Sequncia: md_pen_seq_rel_doc_map_enviado - $rs = BancoSEI::getInstance()->consultarSql('select max(id_mapeamento) as total from md_pen_rel_doc_map_enviado'); - $numMaxId = $rs[0]['total']; + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_recibo_tramite_hash', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_recibo_tramite_hash'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + //Sequncia: md_pen_seq_rel_doc_map_enviado + $rs = BancoSEI::getInstance()->consultarSql('select max(id_mapeamento) as total from md_pen_rel_doc_map_enviado'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_rel_doc_map_enviado', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_rel_doc_map_enviado'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - - //Sequncia: md_pen_seq_rel_doc_map_recebid - $rs = BancoSEI::getInstance()->consultarSql('select max(id_mapeamento) as total from md_pen_rel_doc_map_recebido'); - $numMaxId = $rs[0]['total']; + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_rel_doc_map_enviado', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_rel_doc_map_enviado'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + //Sequncia: md_pen_seq_rel_doc_map_recebid + $rs = BancoSEI::getInstance()->consultarSql('select max(id_mapeamento) as total from md_pen_rel_doc_map_recebido'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_rel_doc_map_recebid', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_rel_doc_map_recebido'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_rel_doc_map_recebid', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_rel_doc_map_recebido'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - //Sequncia: md_pen_seq_tramite_pendente - $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_tramite_pendente'); - $numMaxId = $rs[0]['total']; + //Sequncia: md_pen_seq_tramite_pendente + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_tramite_pendente'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_tramite_pendente', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_tramite_pendente'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_tramite_pendente', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_tramite_pendente'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - //Fix 28 - Erro Data too long for column 'nome' at row 1 - $objInfraMetaBD->alterarColuna('md_pen_componente_digital', 'nome', $objInfraMetaBD->tipoTextoVariavel(255), 'not null'); + //Fix 28 - Erro Data too long for column 'nome' at row 1 + $objInfraMetaBD->alterarColuna('md_pen_componente_digital', 'nome', $objInfraMetaBD->tipoTextoVariavel(255), 'not null'); - $this->atualizarNumeroVersao("1.1.14"); + $this->atualizarNumeroVersao("1.1.14"); } - /* Contm atualizaes da versao 1.1.15 do mdulo */ + /* Contm atualizaes da versao 1.1.15 do mdulo */ protected function instalarV1115() - { + { - //Fix-31 - Erro ao Configurar Campo 'numero_registro' como Not Null no Scritp de atualiza<E7><E3>o - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); + //Fix-31 - Erro ao Configurar Campo 'numero_registro' como Not Null no Scritp de atualiza<E7><E3>o + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); - $this->atualizarNumeroVersao("1.1.15"); + $this->atualizarNumeroVersao("1.1.15"); } - /* Contm atualizaes da versao 1.1.16 do mdulo */ + /* Contm atualizaes da versao 1.1.16 do mdulo */ protected function instalarV1116() - { + { - //Fix-31 - Erro ao Configurar Campo 'numero_registro' como Not Null no Scritp de atualiza<E7><E3>o - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); + //Fix-31 - Erro ao Configurar Campo 'numero_registro' como Not Null no Scritp de atualiza<E7><E3>o + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->alterarColuna('md_pen_procedimento_andamento', 'numero_registro', $objInfraMetaBD->tipoTextoFixo(16), 'null'); - $this->atualizarNumeroVersao("1.1.16"); + $this->atualizarNumeroVersao("1.1.16"); } - /* Contm atualizaes da versao 1.1.17 do mdulo */ + /* Contm atualizaes da versao 1.1.17 do mdulo */ protected function instalarV1117() - { - - // Definio de funo annima responsvel por realizar as seguintes tarefas: - // (1) Identificar a tarefa com ID conflitante do SEI - // (2) Criar nova tarefa identica mas com ID correto dentro das faixas definidas pelo SEI (maior que 1000) - // (3) Atualizar o id_tarefa de todas as atividades relacionadas - // (4) Remover a tarefa anterior com ID invlido - // (5) Atualizar o campo id_tarefa_modulo com o valor correspondente - $fnCadastrar = function ($numIdTarefa, $strIdTarefaModulo) { - - // Identificar a tarefa com ID conflitante do SEI - $objTarefaRN = new TarefaRN(); - $objTarefaBD = new TarefaBD(BancoSEI::getInstance()); - $objTarefaDTOAntigo = new TarefaDTO(); - $objTarefaDTOAntigo->retTodos(); - $objTarefaDTOAntigo->setStrIdTarefaModulo($strIdTarefaModulo); - $objTarefaDTOAntigo = $objTarefaBD->consultar($objTarefaDTOAntigo); - - if (isset($objTarefaDTOAntigo)) { - try { - // Criar nova tarefa identica mas com ID correto dentro das faixas definidas pelo SEI (maior que 1000) - InfraDebug::getInstance()->gravar("Duplicando tarefa customizadas $strIdTarefaModulo utilizando o controle de sequncia 1000"); - $objTarefaDTO = new TarefaDTO(); - $objTarefaDTO->setNumIdTarefa($numIdTarefa); - $objTarefaDTO->setStrNome($objTarefaDTOAntigo->getStrNome()); - $objTarefaDTO->setStrSinHistoricoResumido($objTarefaDTOAntigo->getStrSinHistoricoResumido()); - $objTarefaDTO->setStrSinHistoricoCompleto($objTarefaDTOAntigo->getStrSinHistoricoCompleto()); - $objTarefaDTO->setStrSinFecharAndamentosAbertos($objTarefaDTOAntigo->getStrSinFecharAndamentosAbertos()); - $objTarefaDTO->setStrSinLancarAndamentoFechado($objTarefaDTOAntigo->getStrSinLancarAndamentoFechado()); - $objTarefaDTO->setStrSinPermiteProcessoFechado($objTarefaDTOAntigo->getStrSinPermiteProcessoFechado()); - if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { - $objTarefaDTO->setStrSinConsultaProcessual($objTarefaDTOAntigo->getStrSinConsultaProcessual()); + { + + // Definio de funo annima responsvel por realizar as seguintes tarefas: + // (1) Identificar a tarefa com ID conflitante do SEI + // (2) Criar nova tarefa identica mas com ID correto dentro das faixas definidas pelo SEI (maior que 1000) + // (3) Atualizar o id_tarefa de todas as atividades relacionadas + // (4) Remover a tarefa anterior com ID invlido + // (5) Atualizar o campo id_tarefa_modulo com o valor correspondente + $fnCadastrar = function ($numIdTarefa, $strIdTarefaModulo): void { + + // Identificar a tarefa com ID conflitante do SEI + $objTarefaRN = new TarefaRN(); + $objTarefaBD = new TarefaBD(BancoSEI::getInstance()); + $objTarefaDTOAntigo = new TarefaDTO(); + $objTarefaDTOAntigo->retTodos(); + $objTarefaDTOAntigo->setStrIdTarefaModulo($strIdTarefaModulo); + $objTarefaDTOAntigo = $objTarefaBD->consultar($objTarefaDTOAntigo); + + if (isset($objTarefaDTOAntigo)) { + try { + // Criar nova tarefa identica mas com ID correto dentro das faixas definidas pelo SEI (maior que 1000) + InfraDebug::getInstance()->gravar("Duplicando tarefa customizadas $strIdTarefaModulo utilizando o controle de sequncia 1000"); + $objTarefaDTO = new TarefaDTO(); + $objTarefaDTO->setNumIdTarefa($numIdTarefa); + $objTarefaDTO->setStrNome($objTarefaDTOAntigo->getStrNome()); + $objTarefaDTO->setStrSinHistoricoResumido($objTarefaDTOAntigo->getStrSinHistoricoResumido()); + $objTarefaDTO->setStrSinHistoricoCompleto($objTarefaDTOAntigo->getStrSinHistoricoCompleto()); + $objTarefaDTO->setStrSinFecharAndamentosAbertos($objTarefaDTOAntigo->getStrSinFecharAndamentosAbertos()); + $objTarefaDTO->setStrSinLancarAndamentoFechado($objTarefaDTOAntigo->getStrSinLancarAndamentoFechado()); + $objTarefaDTO->setStrSinPermiteProcessoFechado($objTarefaDTOAntigo->getStrSinPermiteProcessoFechado()); + if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { + $objTarefaDTO->setStrSinConsultaProcessual($objTarefaDTOAntigo->getStrSinConsultaProcessual()); + } + $objTarefaDTO->setStrIdTarefaModulo(null); + $objTarefaBD->cadastrar($objTarefaDTO); + + // Atualizar o id_tarefa de todas as atividades relacionadas + InfraDebug::getInstance()->gravar("Atualizando atividades com chave da nova tarefa $strIdTarefaModulo"); + $numIdTarefaAnterior = $objTarefaDTOAntigo->getNumIdTarefa(); + BancoSEI::getInstance()->executarSql("UPDATE atividade SET id_tarefa = $numIdTarefa where id_tarefa = $numIdTarefaAnterior"); + + // Remover a tarefa anterior com ID invlido + InfraDebug::getInstance()->gravar("Apagando a tarefa anterior $strIdTarefaModulo"); + $objTarefaBD->excluir($objTarefaDTOAntigo); + + // Atualizar o campo id_tarefa_modulo com o valor correspondente + $objTarefaDTOUpdate = new TarefaDTO(); + $objTarefaDTOUpdate->setNumIdTarefa($numIdTarefa); + $objTarefaDTOUpdate->setStrIdTarefaModulo($strIdTarefaModulo); + $objTarefaBD->alterar($objTarefaDTOUpdate); + } catch (Exception $e) { + throw new InfraException($e); } - $objTarefaDTO->setStrIdTarefaModulo(null); - $objTarefaBD->cadastrar($objTarefaDTO); - - // Atualizar o id_tarefa de todas as atividades relacionadas - InfraDebug::getInstance()->gravar("Atualizando atividades com chave da nova tarefa $strIdTarefaModulo"); - $numIdTarefaAnterior = $objTarefaDTOAntigo->getNumIdTarefa(); - BancoSEI::getInstance()->executarSql("UPDATE atividade SET id_tarefa = $numIdTarefa where id_tarefa = $numIdTarefaAnterior"); - - // Remover a tarefa anterior com ID invlido - InfraDebug::getInstance()->gravar("Apagando a tarefa anterior $strIdTarefaModulo"); - $objTarefaBD->excluir($objTarefaDTOAntigo); - - // Atualizar o campo id_tarefa_modulo com o valor correspondente - $objTarefaDTOUpdate = new TarefaDTO(); - $objTarefaDTOUpdate->setNumIdTarefa($numIdTarefa); - $objTarefaDTOUpdate->setStrIdTarefaModulo($strIdTarefaModulo); - $objTarefaBD->alterar($objTarefaDTOUpdate); - } catch (Exception $e) { - throw new InfraException($e); } - } - }; + }; - $rsTabelaTarefa = BancoSEI::getInstance()->consultarSql('select max(id_tarefa) as ultimo from tarefa'); - $numMaxId = $rsTabelaTarefa[0]['ultimo']; + $rsTabelaTarefa = BancoSEI::getInstance()->consultarSql('select max(id_tarefa) as ultimo from tarefa'); + $numMaxId = $rsTabelaTarefa[0]['ultimo']; if (!isset($numMaxId) || $numMaxId < 1000) { - $numMaxId = 1000; + $numMaxId = 1000; } - $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_EXPEDIDO'); - $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_RECEBIDO'); - $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_RECUSADO'); - $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_CANCELADO'); - $fnCadastrar(++$numMaxId, 'PEN_OPERACAO_EXTERNA'); - $fnCadastrar(++$numMaxId, 'PEN_EXPEDICAO_PROCESSO_ABORTADA'); + $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_EXPEDIDO'); + $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_RECEBIDO'); + $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_RECUSADO'); + $fnCadastrar(++$numMaxId, 'PEN_PROCESSO_CANCELADO'); + $fnCadastrar(++$numMaxId, 'PEN_OPERACAO_EXTERNA'); + $fnCadastrar(++$numMaxId, 'PEN_EXPEDICAO_PROCESSO_ABORTADA'); - InfraDebug::getInstance()->gravar('Atualizando sequncia das tabelas do sistema'); + InfraDebug::getInstance()->gravar('Atualizando sequncia das tabelas do sistema'); - //Na verso 3.1.0 do SEI, houve uma mudana na rotina de atualizao das sequences do banco de dados, - //deixando de se utilizar a classe VersaoRN para utilizar a nova classe ScriptRN. - //Devido a esta mudana, necessrio avaliar qual a atual verso do SEI executar a rotina correta + //Na verso 3.1.0 do SEI, houve uma mudana na rotina de atualizao das sequences do banco de dados, + //deixando de se utilizar a classe VersaoRN para utilizar a nova classe ScriptRN. + //Devido a esta mudana, necessrio avaliar qual a atual verso do SEI executar a rotina correta if (InfraUtil::compararVersoes('3.1.0', "<=", SEI_VERSAO)) { - //Procedimento de atualizao de sequncias compatvel com SEI 3.1.X - $objScriptRN = new ScriptRN(); - $objScriptRN->atualizarSequencias(); + //Procedimento de atualizao de sequncias compatvel com SEI 3.1.X + $objScriptRN = new ScriptRN(); + $objScriptRN->atualizarSequencias(); } else { - //Procedimento de atualizao de sequncias compatvel com SEI 3.0.X - $objVersaoRN = new VersaoRN(); - $objVersaoRN->atualizarSequencias(); + //Procedimento de atualizao de sequncias compatvel com SEI 3.0.X + $objVersaoRN = new VersaoRN(); + $objVersaoRN->atualizarSequencias(); } - $this->atualizarNumeroVersao("1.1.17"); + $this->atualizarNumeroVersao("1.1.17"); } - /* Contm atualizaes da versao 1.2.0 do mdulo */ + /* Contm atualizaes da versao 1.2.0 do mdulo */ protected function instalarV1200() - { - $this->atualizarNumeroVersao("1.2.0"); + { + $this->atualizarNumeroVersao("1.2.0"); } - /* Contm atualizaes da versao 1.2.1 do mdulo */ + /* Contm atualizaes da versao 1.2.1 do mdulo */ protected function instalarV1201() - { - //Fix-47 - Corrigir erro com mapeamento de espcies documentais da origem - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'codigo_especie', $objInfraMetaBD->tipoNumero(), 'null'); - $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'nome_especie_produtor', $objInfraMetaBD->tipoTextoVariavel(255), 'null'); + { + //Fix-47 - Corrigir erro com mapeamento de espcies documentais da origem + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'codigo_especie', $objInfraMetaBD->tipoNumero(), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'nome_especie_produtor', $objInfraMetaBD->tipoTextoVariavel(255), 'null'); - $this->atualizarNumeroVersao("1.2.1"); + $this->atualizarNumeroVersao("1.2.1"); } - /* Contm atualizaes da versao 1.2.2 do mdulo */ + /* Contm atualizaes da versao 1.2.2 do mdulo */ protected function instalarV1202() - { - $this->atualizarNumeroVersao("1.2.2"); + { + $this->atualizarNumeroVersao("1.2.2"); } - /* Contm atualizaes da versao 1.2.3 do mdulo */ + /* Contm atualizaes da versao 1.2.3 do mdulo */ protected function instalarV1203() - { - $this->atualizarNumeroVersao("1.2.3"); + { + $this->atualizarNumeroVersao("1.2.3"); } - /* Contm atualizaes da versao 1.2.4 do mdulo */ + /* Contm atualizaes da versao 1.2.4 do mdulo */ protected function instalarV1204() - { - $this->atualizarNumeroVersao("1.2.4"); + { + $this->atualizarNumeroVersao("1.2.4"); } - /* Contm atualizaes da versao 1.2.5 do mdulo */ + /* Contm atualizaes da versao 1.2.5 do mdulo */ protected function instalarV1205() - { - $this->atualizarNumeroVersao("1.2.5"); + { + $this->atualizarNumeroVersao("1.2.5"); } - /* Contm atualizaes da versao 1.2.6 do mdulo */ + /* Contm atualizaes da versao 1.2.6 do mdulo */ protected function instalarV1206() - { - $this->atualizarNumeroVersao("1.2.6"); + { + $this->atualizarNumeroVersao("1.2.6"); } - /* Contm atualizaes da versao 1.3.0 do mdulo */ + /* Contm atualizaes da versao 1.3.0 do mdulo */ protected function instalarV1300() - { - //Alterar nomeclatura do recurso - $objPenParametroDTO = new PenParametroDTO(); - $objPenParametroDTO->setStrNome('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO'); - $objPenParametroDTO->retStrNome(); - $objPenParametroBD = new PenParametroBD(BancoSEI::getInstance()); - $objPenParametroDTO = $objPenParametroBD->consultar($objPenParametroDTO); - if ($objPenParametroDTO) { - $objPenParametroDTO->setStrValor(10); - $objPenParametroDTO->setStrDescricao('Tamanho mximo de bloco para envio de arquivo'); - $objPenParametroBD->alterar($objPenParametroDTO); - } else { + { + //Alterar nomeclatura do recurso $objPenParametroDTO = new PenParametroDTO(); $objPenParametroDTO->setStrNome('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO'); - $objPenParametroDTO->setStrValor(10); - $objPenParametroDTO->setStrDescricao('Tamanho mximo de bloco para envio de arquivo'); - $objPenParametroBD->cadastrar($objPenParametroDTO); + $objPenParametroDTO->retStrNome(); + $objPenParametroBD = new PenParametroBD(BancoSEI::getInstance()); + $objPenParametroDTO = $objPenParametroBD->consultar($objPenParametroDTO); + if ($objPenParametroDTO) { + $objPenParametroDTO->setStrValor(10); + $objPenParametroDTO->setStrDescricao('Tamanho mximo de bloco para envio de arquivo'); + $objPenParametroBD->alterar($objPenParametroDTO); + } else { + $objPenParametroDTO = new PenParametroDTO(); + $objPenParametroDTO->setStrNome('PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO'); + $objPenParametroDTO->setStrValor(10); + $objPenParametroDTO->setStrDescricao('Tamanho mximo de bloco para envio de arquivo'); + $objPenParametroBD->cadastrar($objPenParametroDTO); } - $this->atualizarNumeroVersao("1.3.0"); + $this->atualizarNumeroVersao("1.3.0"); } - /** - * Mtodo Responsavel por realizar as atualizaes na Base de Dados referentes as novas implementaes - * Receber/Enviar Documento Avulso - * Receber/Enviar Multiplos Componentes Digitais - * @author Josinaldo Jnior <josenaldo.pedro@gmail.com> - * @throws InfraException - */ + /** + * Mtodo Responsavel por realizar as atualizaes na Base de Dados referentes as novas implementaes + * Receber/Enviar Documento Avulso + * Receber/Enviar Multiplos Componentes Digitais + * + * @author Josinaldo Jnior <josenaldo.pedro@gmail.com> + * @throws InfraException + */ protected function instalarV1400() - { - $objBD = new TarefaBD(BancoSEI::getInstance()); - $objDTO = new TarefaDTO(); - - $fnCadastrar = function ($strNome = '', $strHistoricoResumido = 'N', $strHistoricoCompleto = 'N', $strFecharAndamentosAbertos = 'N', $strLancarAndamentoFechado = 'N', $strPermiteProcessoFechado = 'N', $strIdTarefaModulo = '', $strSinConsultaProcessual = 'N') use ($objDTO, $objBD) { - $objDTO->unSetTodos(); - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - - if ($objBD->contar($objDTO) == 0) { - $objUltimaTarefaDTO = new TarefaDTO(); - $objUltimaTarefaDTO->retNumIdTarefa(); - $objUltimaTarefaDTO->setNumMaxRegistrosRetorno(1); - $objUltimaTarefaDTO->setOrd('IdTarefa', InfraDTO::$TIPO_ORDENACAO_DESC); - $objUltimaTarefaDTO = $objBD->consultar($objUltimaTarefaDTO); - - $objDTO->setNumIdTarefa($objUltimaTarefaDTO->getNumIdTarefa() + 1); - $objDTO->setStrNome($strNome); - $objDTO->setStrSinHistoricoResumido($strHistoricoResumido); - $objDTO->setStrSinHistoricoCompleto($strHistoricoCompleto); - $objDTO->setStrSinFecharAndamentosAbertos($strFecharAndamentosAbertos); - $objDTO->setStrSinLancarAndamentoFechado($strLancarAndamentoFechado); - $objDTO->setStrSinPermiteProcessoFechado($strPermiteProcessoFechado); - if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { - $objDTO->setStrSinConsultaProcessual($strSinConsultaProcessual); + { + $objBD = new TarefaBD(BancoSEI::getInstance()); + $objDTO = new TarefaDTO(); + + $fnCadastrar = function ($strNome = '', $strHistoricoResumido = 'N', $strHistoricoCompleto = 'N', $strFecharAndamentosAbertos = 'N', $strLancarAndamentoFechado = 'N', $strPermiteProcessoFechado = 'N', $strIdTarefaModulo = '', $strSinConsultaProcessual = 'N') use ($objDTO, $objBD): void { + $objDTO->unSetTodos(); + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); + + if ($objBD->contar($objDTO) == 0) { + $objUltimaTarefaDTO = new TarefaDTO(); + $objUltimaTarefaDTO->retNumIdTarefa(); + $objUltimaTarefaDTO->setNumMaxRegistrosRetorno(1); + $objUltimaTarefaDTO->setOrd('IdTarefa', InfraDTO::$TIPO_ORDENACAO_DESC); + $objUltimaTarefaDTO = $objBD->consultar($objUltimaTarefaDTO); + + $objDTO->setNumIdTarefa($objUltimaTarefaDTO->getNumIdTarefa() + 1); + $objDTO->setStrNome($strNome); + $objDTO->setStrSinHistoricoResumido($strHistoricoResumido); + $objDTO->setStrSinHistoricoCompleto($strHistoricoCompleto); + $objDTO->setStrSinFecharAndamentosAbertos($strFecharAndamentosAbertos); + $objDTO->setStrSinLancarAndamentoFechado($strLancarAndamentoFechado); + $objDTO->setStrSinPermiteProcessoFechado($strPermiteProcessoFechado); + if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.1.1")) { + $objDTO->setStrSinConsultaProcessual($strSinConsultaProcessual); + } + $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); + $objBD->cadastrar($objDTO); } - $objDTO->setStrIdTarefaModulo($strIdTarefaModulo); - $objBD->cadastrar($objDTO); - } - }; - - $fnCadastrar('Documento recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@ (@PROCESSO@, @ENTIDADE_ORIGEM@, @UNIDADE_DESTINO@, @USUARIO@)', 'S', 'S', 'N', 'S', 'N', 'PEN_DOCUMENTO_AVULSO_RECEBIDO'); - - // Modificaes de Banco referentes a feature 76 - $objMetaBD = $this->objMeta; - - $objMetaBD->adicionarColuna('md_pen_componente_digital', 'ordem_documento', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::SNULLO); - BancoSEI::getInstance()->executarSql("update md_pen_componente_digital set ordem_documento = ordem"); - BancoSEI::getInstance()->executarSql("update md_pen_componente_digital set ordem = 1"); - $objMetaBD->alterarColuna('md_pen_componente_digital', 'ordem_documento', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::NNULLO); - - // Adiciona a coluna para identificar se a criao do processo se deu por documento avulso (D) ou processo (P) - // Atualizar os registros existentes para P - Tipo Processo - $objMetaBD->adicionarColuna('md_pen_processo_eletronico', 'sta_tipo_protocolo', $this->inicializarObjMetaBanco()->tipoTextoVariavel(1), PenMetaBD::SNULLO); - BancoSEI::getInstance()->executarSql("update md_pen_processo_eletronico set sta_tipo_protocolo = 'P'"); - $objMetaBD->alterarColuna('md_pen_processo_eletronico', 'sta_tipo_protocolo', $this->inicializarObjMetaBanco()->tipoTextoVariavel(1), PenMetaBD::NNULLO); - $objMetaBD->adicionarValorPadraoParaColuna('md_pen_processo_eletronico', 'sta_tipo_protocolo', 'P'); - - // Adicionar Chave primaria - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $this->excluirChavePrimariaComIndice('md_pen_componente_digital', 'pk_md_pen_componente_digital'); - $objInfraMetaBD->adicionarChavePrimaria('md_pen_componente_digital', 'pk_md_pen_componente_digital', array('numero_registro', 'id_procedimento', 'id_documento', 'id_tramite', 'ordem')); - - // Definio de ordem em que os parmetros aparecem na pgina - $objMetaBD->adicionarColuna('md_pen_parametro', 'sequencia', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::SNULLO); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 1 where nome = 'PEN_ENDERECO_WEBSERVICE'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 2 where nome = 'PEN_ENDERECO_WEBSERVICE_PENDENCIAS'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 3 where nome = 'PEN_LOCALIZACAO_CERTIFICADO_DIGITAL'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 4 where nome = 'PEN_SENHA_CERTIFICADO_DIGITAL'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 5 where nome = 'PEN_ID_REPOSITORIO_ORIGEM'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 6 where nome = 'PEN_TIPO_PROCESSO_EXTERNO'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 7 where nome = 'PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 8 where nome = 'PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 9 where nome = 'PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO'"); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = null where nome = 'HIPOTESE_LEGAL_PADRAO'"); - // Este parmetro passar a ser interno do sistema e ser configurado com o valor 5 MB que ser o valor fixo utilizado para updaload e download - BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = null, valor = 5 where nome = 'PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO'"); - - // Altera o parmetro da verso de banco - $this->atualizarNumeroVersao("1.4.0"); + }; + + $fnCadastrar('Documento recebido da entidade @ENTIDADE_ORIGEM@ - @REPOSITORIO_ORIGEM@ (@PROCESSO@, @ENTIDADE_ORIGEM@, @UNIDADE_DESTINO@, @USUARIO@)', 'S', 'S', 'N', 'S', 'N', 'PEN_DOCUMENTO_AVULSO_RECEBIDO'); + + // Modificaes de Banco referentes a feature 76 + $objMetaBD = $this->objMeta; + + $objMetaBD->adicionarColuna('md_pen_componente_digital', 'ordem_documento', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::SNULLO); + BancoSEI::getInstance()->executarSql("update md_pen_componente_digital set ordem_documento = ordem"); + BancoSEI::getInstance()->executarSql("update md_pen_componente_digital set ordem = 1"); + $objMetaBD->alterarColuna('md_pen_componente_digital', 'ordem_documento', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::NNULLO); + + // Adiciona a coluna para identificar se a criao do processo se deu por documento avulso (D) ou processo (P) + // Atualizar os registros existentes para P - Tipo Processo + $objMetaBD->adicionarColuna('md_pen_processo_eletronico', 'sta_tipo_protocolo', $this->inicializarObjMetaBanco()->tipoTextoVariavel(1), PenMetaBD::SNULLO); + BancoSEI::getInstance()->executarSql("update md_pen_processo_eletronico set sta_tipo_protocolo = 'P'"); + $objMetaBD->alterarColuna('md_pen_processo_eletronico', 'sta_tipo_protocolo', $this->inicializarObjMetaBanco()->tipoTextoVariavel(1), PenMetaBD::NNULLO); + $objMetaBD->adicionarValorPadraoParaColuna('md_pen_processo_eletronico', 'sta_tipo_protocolo', 'P'); + + // Adicionar Chave primaria + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $this->excluirChavePrimariaComIndice('md_pen_componente_digital', 'pk_md_pen_componente_digital'); + $objInfraMetaBD->adicionarChavePrimaria('md_pen_componente_digital', 'pk_md_pen_componente_digital', ['numero_registro', 'id_procedimento', 'id_documento', 'id_tramite', 'ordem']); + + // Definio de ordem em que os parmetros aparecem na pgina + $objMetaBD->adicionarColuna('md_pen_parametro', 'sequencia', $this->inicializarObjMetaBanco()->tipoNumero(), PenMetaBD::SNULLO); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 1 where nome = 'PEN_ENDERECO_WEBSERVICE'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 2 where nome = 'PEN_ENDERECO_WEBSERVICE_PENDENCIAS'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 3 where nome = 'PEN_LOCALIZACAO_CERTIFICADO_DIGITAL'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 4 where nome = 'PEN_SENHA_CERTIFICADO_DIGITAL'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 5 where nome = 'PEN_ID_REPOSITORIO_ORIGEM'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 6 where nome = 'PEN_TIPO_PROCESSO_EXTERNO'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 7 where nome = 'PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 8 where nome = 'PEN_ENVIA_EMAIL_NOTIFICACAO_RECEBIMENTO'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = 9 where nome = 'PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO'"); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = null where nome = 'HIPOTESE_LEGAL_PADRAO'"); + // Este parmetro passar a ser interno do sistema e ser configurado com o valor 5 MB que ser o valor fixo utilizado para updaload e download + BancoSEI::getInstance()->executarSql("update md_pen_parametro set sequencia = null, valor = 5 where nome = 'PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO'"); + + // Altera o parmetro da verso de banco + $this->atualizarNumeroVersao("1.4.0"); } protected function instalarV1401() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - // Aumento de tamanho campo de armazenamento do hash dos recibos para contemplar os diferentes tamanhos de chaves criptogrficas - $this->removerIndicesTabela($objInfraMetaBD, array("md_pen_recibo_tramite_recebido", "md_pen_recibo_tramite", "md_pen_tramite_recibo_envio", "md_pen_recibo_tramite_enviado")); + // Aumento de tamanho campo de armazenamento do hash dos recibos para contemplar os diferentes tamanhos de chaves criptogrficas + $this->removerIndicesTabela($objInfraMetaBD, ["md_pen_recibo_tramite_recebido", "md_pen_recibo_tramite", "md_pen_tramite_recibo_envio", "md_pen_recibo_tramite_enviado"]); - // Remove chaves estrangeiras e primrias com supresso de mensagens de erro devido a incompatibilidade de nomes entre diferentes verses do sistema - $bolSuprimirError = true; - $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_tramite_recebido_md_pen_tramite", $bolSuprimirError); - $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_receb_tram", $bolSuprimirError); - $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", $bolSuprimirError); - $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_recebido", $bolSuprimirError); + // Remove chaves estrangeiras e primrias com supresso de mensagens de erro devido a incompatibilidade de nomes entre diferentes verses do sistema + $bolSuprimirError = true; + $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_tramite_recebido_md_pen_tramite", $bolSuprimirError); + $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_receb_tram", $bolSuprimirError); + $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", $bolSuprimirError); + $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_recebido", $bolSuprimirError); - $objInfraMetaBD->adicionarChavePrimaria("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", array("numero_registro", "id_tramite")); - $objInfraMetaBD->adicionarChaveEstrangeira("fk_md_pen_recibo_receb_tram", "md_pen_recibo_tramite_recebido", array('numero_registro', 'id_tramite'), "md_pen_tramite", array('numero_registro', 'id_tramite'), false); - $objInfraMetaBD->alterarColuna("md_pen_recibo_tramite_recebido", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); - $objInfraMetaBD->alterarColuna("md_pen_recibo_tramite", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); - $objInfraMetaBD->alterarColuna("md_pen_tramite_recibo_envio", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); - $objInfraMetaBD->alterarColuna("md_pen_recibo_tramite_enviado", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); + $objInfraMetaBD->adicionarChavePrimaria("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", ["numero_registro", "id_tramite"]); + $objInfraMetaBD->adicionarChaveEstrangeira("fk_md_pen_recibo_receb_tram", "md_pen_recibo_tramite_recebido", ['numero_registro', 'id_tramite'], "md_pen_tramite", ['numero_registro', 'id_tramite'], false); + $objInfraMetaBD->alterarColuna("md_pen_recibo_tramite_recebido", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); + $objInfraMetaBD->alterarColuna("md_pen_recibo_tramite", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); + $objInfraMetaBD->alterarColuna("md_pen_tramite_recibo_envio", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); + $objInfraMetaBD->alterarColuna("md_pen_recibo_tramite_enviado", "hash_assinatura", $objInfraMetaBD->tipoTextoVariavel(1000), "not null"); - // Altera o parmetro da verso de banco - $this->atualizarNumeroVersao("1.4.1"); + // Altera o parmetro da verso de banco + $this->atualizarNumeroVersao("1.4.1"); } protected function instalarV1402() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - // Aumento de tamanho campo de armazenamento do hash dos recibos para contemplar os diferentes tamanhos de chaves criptogrficas - $this->removerIndicesTabela($objInfraMetaBD, array("md_pen_recibo_tramite_recebido", "md_pen_recibo_tramite", "md_pen_tramite_recibo_envio", "md_pen_recibo_tramite_enviado")); + // Aumento de tamanho campo de armazenamento do hash dos recibos para contemplar os diferentes tamanhos de chaves criptogrficas + $this->removerIndicesTabela($objInfraMetaBD, ["md_pen_recibo_tramite_recebido", "md_pen_recibo_tramite", "md_pen_tramite_recibo_envio", "md_pen_recibo_tramite_enviado"]); - // Remove chaves estrangeiras e primrias com supresso de mensagens de erro devido a incompatibilidade de nomes entre diferentes verses do sistema - $bolSuprimirError = true; - $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_tramite_recebido_md_pen_tramite", $bolSuprimirError); - $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_receb_tram", $bolSuprimirError); - $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", $bolSuprimirError); - $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_recebido", $bolSuprimirError); + // Remove chaves estrangeiras e primrias com supresso de mensagens de erro devido a incompatibilidade de nomes entre diferentes verses do sistema + $bolSuprimirError = true; + $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_tramite_recebido_md_pen_tramite", $bolSuprimirError); + $this->excluirChaveEstrangeira("md_pen_recibo_tramite_recebido", "fk_md_pen_recibo_receb_tram", $bolSuprimirError); + $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", $bolSuprimirError); + $this->excluirChavePrimariaComIndice("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_recebido", $bolSuprimirError); - $objInfraMetaBD->adicionarChavePrimaria("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", array("numero_registro", "id_tramite")); - $objInfraMetaBD->adicionarChaveEstrangeira("fk_md_pen_recibo_receb_tram", "md_pen_recibo_tramite_recebido", array('numero_registro', 'id_tramite'), "md_pen_tramite", array('numero_registro', 'id_tramite'), false); + $objInfraMetaBD->adicionarChavePrimaria("md_pen_recibo_tramite_recebido", "pk_md_pen_recibo_tramite_receb", ["numero_registro", "id_tramite"]); + $objInfraMetaBD->adicionarChaveEstrangeira("fk_md_pen_recibo_receb_tram", "md_pen_recibo_tramite_recebido", ['numero_registro', 'id_tramite'], "md_pen_tramite", ['numero_registro', 'id_tramite'], false); - $this->atualizarNumeroVersao("1.4.2"); + $this->atualizarNumeroVersao("1.4.2"); } protected function instalarV1403() - { - $this->atualizarNumeroVersao("1.4.3"); + { + $this->atualizarNumeroVersao("1.4.3"); } protected function instalarV1500() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->adicionarColuna("md_pen_componente_digital", "id_procedimento_anexado", $objInfraMetaBD->tipoNumeroGrande(), 'null'); - $objInfraMetaBD->adicionarColuna("md_pen_componente_digital", "protocolo_procedimento_anexado", $objInfraMetaBD->tipoTextoVariavel(50), 'null'); - $objInfraMetaBD->adicionarColuna("md_pen_componente_digital", "ordem_documento_anexado", $objInfraMetaBD->tipoNumero(), 'null'); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->adicionarColuna("md_pen_componente_digital", "id_procedimento_anexado", $objInfraMetaBD->tipoNumeroGrande(), 'null'); + $objInfraMetaBD->adicionarColuna("md_pen_componente_digital", "protocolo_procedimento_anexado", $objInfraMetaBD->tipoTextoVariavel(50), 'null'); + $objInfraMetaBD->adicionarColuna("md_pen_componente_digital", "ordem_documento_anexado", $objInfraMetaBD->tipoNumero(), 'null'); - $this->atualizarNumeroVersao("1.5.0"); + $this->atualizarNumeroVersao("1.5.0"); } protected function instalarV1501() - { - $this->atualizarNumeroVersao("1.5.1"); + { + $this->atualizarNumeroVersao("1.5.1"); } protected function instalarV1502() - { - $this->atualizarNumeroVersao("1.5.2"); + { + $this->atualizarNumeroVersao("1.5.2"); } protected function instalarV1503() - { - $this->atualizarNumeroVersao("1.5.3"); + { + $this->atualizarNumeroVersao("1.5.3"); } // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps protected function instalarV2000_beta1() - { - $objMetaBD = $this->objMeta; - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->excluirColuna("md_pen_especie_documental", "descricao"); - - // Ajustes em parmetros de configurao do mdulo - $objInfraMetaBD->adicionarColuna('md_pen_parametro', 'valor_novo', $objInfraMetaBD->tipoTextoGrande(), 'null'); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set valor_novo = valor"); - $objInfraMetaBD->excluirColuna('md_pen_parametro', 'valor'); - $objInfraMetaBD->adicionarColuna('md_pen_parametro', 'valor', $objInfraMetaBD->tipoTextoGrande(), 'null'); - BancoSEI::getInstance()->executarSql("update md_pen_parametro set valor = valor_novo"); - $objInfraMetaBD->excluirColuna('md_pen_parametro', 'valor_novo'); - - $objPenParametroDTO = new PenParametroDTO(); - $objPenParametroDTO->setStrNome("PEN_ID_REPOSITORIO_ORIGEM"); - $objPenParametroDTO->setStrDescricao("Repositrio de Estruturas do rgo"); - $objPenParametroBD = new PenParametroBD(BancoSEI::getInstance()); - $objPenParametroBD->alterar($objPenParametroDTO); - - $objPenParametroDTO = new PenParametroDTO(); - $objPenParametroDTO->setStrNome("PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO"); - $objPenParametroDTO->setStrDescricao("Unidade SEI para Representao de rgos Externos"); - $objPenParametroBD = new PenParametroBD(BancoSEI::getInstance()); - $objPenParametroBD->alterar($objPenParametroDTO); - - $this->logar("CADASTRAMENTO DE AGENDAMENTO DE TAREFAS DO TRAMITA GOV.BR PARA ATUALIZAO DE HIPTESES LEGAIS E ESPCIES DOCUMENTAIS"); - // Remove agendamento de tarefas de atualizao de hipteses legais - $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); - $objInfraAgendamentoTarefaDTO = new InfraAgendamentoTarefaDTO(); - $objInfraAgendamentoTarefaDTO->setStrComando("PENAgendamentoRN::atualizarHipotesesLegais"); - $objInfraAgendamentoTarefaDTO->retNumIdInfraAgendamentoTarefa(); - $objInfraAgendamentoTarefaDTO = $objInfraAgendamentoTarefaBD->consultar($objInfraAgendamentoTarefaDTO); + { + $objMetaBD = $this->objMeta; + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->excluirColuna("md_pen_especie_documental", "descricao"); + + // Ajustes em parmetros de configurao do mdulo + $objInfraMetaBD->adicionarColuna('md_pen_parametro', 'valor_novo', $objInfraMetaBD->tipoTextoGrande(), 'null'); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set valor_novo = valor"); + $objInfraMetaBD->excluirColuna('md_pen_parametro', 'valor'); + $objInfraMetaBD->adicionarColuna('md_pen_parametro', 'valor', $objInfraMetaBD->tipoTextoGrande(), 'null'); + BancoSEI::getInstance()->executarSql("update md_pen_parametro set valor = valor_novo"); + $objInfraMetaBD->excluirColuna('md_pen_parametro', 'valor_novo'); + + $objPenParametroDTO = new PenParametroDTO(); + $objPenParametroDTO->setStrNome("PEN_ID_REPOSITORIO_ORIGEM"); + $objPenParametroDTO->setStrDescricao("Repositrio de Estruturas do rgo"); + $objPenParametroBD = new PenParametroBD(BancoSEI::getInstance()); + $objPenParametroBD->alterar($objPenParametroDTO); + + $objPenParametroDTO = new PenParametroDTO(); + $objPenParametroDTO->setStrNome("PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO"); + $objPenParametroDTO->setStrDescricao("Unidade SEI para Representao de rgos Externos"); + $objPenParametroBD = new PenParametroBD(BancoSEI::getInstance()); + $objPenParametroBD->alterar($objPenParametroDTO); + + $this->logar("CADASTRAMENTO DE AGENDAMENTO DE TAREFAS DO TRAMITA GOV.BR PARA ATUALIZAO DE HIPTESES LEGAIS E ESPCIES DOCUMENTAIS"); + // Remove agendamento de tarefas de atualizao de hipteses legais + $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); + $objInfraAgendamentoTarefaDTO = new InfraAgendamentoTarefaDTO(); + $objInfraAgendamentoTarefaDTO->setStrComando("PENAgendamentoRN::atualizarHipotesesLegais"); + $objInfraAgendamentoTarefaDTO->retNumIdInfraAgendamentoTarefa(); + $objInfraAgendamentoTarefaDTO = $objInfraAgendamentoTarefaBD->consultar($objInfraAgendamentoTarefaDTO); if (isset($objInfraAgendamentoTarefaDTO)) { - $objInfraAgendamentoTarefaBD->excluir($objInfraAgendamentoTarefaDTO); + $objInfraAgendamentoTarefaBD->excluir($objInfraAgendamentoTarefaDTO); } - // Adicionar agendamento de atualizao de informaes - $objAgendamentoInformacoesPEN = new InfraAgendamentoTarefaDTO(); - $objAgendamentoInformacoesPEN->setStrComando("PENAgendamentoRN::atualizarInformacoesPEN"); + // Adicionar agendamento de atualizao de informaes + $objAgendamentoInformacoesPEN = new InfraAgendamentoTarefaDTO(); + $objAgendamentoInformacoesPEN->setStrComando("PENAgendamentoRN::atualizarInformacoesPEN"); if ($objInfraAgendamentoTarefaBD->contar($objAgendamentoInformacoesPEN) == 0) { - $strDesc = "Atualizao de Informaes gerais do Barramento para o correto funcionamento do mdulo \n\n"; - $strDesc .= "- Atualizao de Hipteses Legais\n"; - $strDesc .= "- Atualizao de Espcies Documentais\n"; - $strDesc .= "- Mapeamento de Espcies Documentais com Tipos de Documentos do SEI\n"; - $objAgendamentoInformacoesPEN->setStrDescricao($strDesc); - $objAgendamentoInformacoesPEN->setStrStaPeriodicidadeExecucao("S"); - $objAgendamentoInformacoesPEN->setStrPeriodicidadeComplemento("1,2,3,4,5,6,7"); - $objAgendamentoInformacoesPEN->setStrSinAtivo("S"); - $objAgendamentoInformacoesPEN->setStrSinSucesso("S"); - $objInfraAgendamentoTarefaBD->cadastrar($objAgendamentoInformacoesPEN); + $strDesc = "Atualizao de Informaes gerais do Barramento para o correto funcionamento do mdulo \n\n"; + $strDesc .= "- Atualizao de Hipteses Legais\n"; + $strDesc .= "- Atualizao de Espcies Documentais\n"; + $strDesc .= "- Mapeamento de Espcies Documentais com Tipos de Documentos do SEI\n"; + $objAgendamentoInformacoesPEN->setStrDescricao($strDesc); + $objAgendamentoInformacoesPEN->setStrStaPeriodicidadeExecucao("S"); + $objAgendamentoInformacoesPEN->setStrPeriodicidadeComplemento("1,2,3,4,5,6,7"); + $objAgendamentoInformacoesPEN->setStrSinAtivo("S"); + $objAgendamentoInformacoesPEN->setStrSinSucesso("S"); + $objInfraAgendamentoTarefaBD->cadastrar($objAgendamentoInformacoesPEN); } - $this->logar("CADASTRAMENTO DE AGENDAMENTO DE TAREFAS DO MDULO TRAMITA GOV.BR PARA RECEBIMENTO DE PROCESSOS DO TRAMITA GOV.BR"); - // Adicionar agendamento de atualizao de informaes - $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); - $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasPEN"); + $this->logar("CADASTRAMENTO DE AGENDAMENTO DE TAREFAS DO MDULO TRAMITA GOV.BR PARA RECEBIMENTO DE PROCESSOS DO TRAMITA GOV.BR"); + // Adicionar agendamento de atualizao de informaes + $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasPEN"); if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) == 0) { - $strDesc = "Recebe as notificaes de novos trmites de processos/documentos, notificaes de concluso de trmites ou recusas de recebimento de processos por outras instituies. \n\n"; - $strDesc .= "Este agendamento considera os seguintes parmetros durante sua execuo:\n"; - $strDesc .= " - debug: Indica se o log de debug gerado no processamento ser registrado nos logs do sistema (valores: true,false | padro: false)\n"; - $strDesc .= " - workers: Quantidade de processos paralelos que sero abertos para processamento de tarefas (valores: 0-9 | padro: 4)\n"; - $objReceberProcessosPEN->setStrDescricao($strDesc); - $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); - $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); - $objReceberProcessosPEN->setStrSinAtivo("S"); - $objReceberProcessosPEN->setStrSinSucesso("S"); - $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); + $strDesc = "Recebe as notificaes de novos trmites de processos/documentos, notificaes de concluso de trmites ou recusas de recebimento de processos por outras instituies. \n\n"; + $strDesc .= "Este agendamento considera os seguintes parmetros durante sua execuo:\n"; + $strDesc .= " - debug: Indica se o log de debug gerado no processamento ser registrado nos logs do sistema (valores: true,false | padro: false)\n"; + $strDesc .= " - workers: Quantidade de processos paralelos que sero abertos para processamento de tarefas (valores: 0-9 | padro: 4)\n"; + $objReceberProcessosPEN->setStrDescricao($strDesc); + $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); + $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); + $objReceberProcessosPEN->setStrSinAtivo("S"); + $objReceberProcessosPEN->setStrSinSucesso("S"); + $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); } - // Remoo de agendamento de tarefas do verificao dos servios do Barramento por no ser mais necessrio - $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); - $objInfraAgendamentoTarefaDTO = new InfraAgendamentoTarefaDTO(); - $objInfraAgendamentoTarefaDTO->retNumIdInfraAgendamentoTarefa(); - $objInfraAgendamentoTarefaDTO->setStrComando("PENAgendamentoRN::seiVerificarServicosBarramento"); - $objInfraAgendamentoTarefaDTO->setBolExclusaoLogica(false); - $objInfraAgendamentoTarefaDTO = $objInfraAgendamentoTarefaBD->consultar($objInfraAgendamentoTarefaDTO); + // Remoo de agendamento de tarefas do verificao dos servios do Barramento por no ser mais necessrio + $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); + $objInfraAgendamentoTarefaDTO = new InfraAgendamentoTarefaDTO(); + $objInfraAgendamentoTarefaDTO->retNumIdInfraAgendamentoTarefa(); + $objInfraAgendamentoTarefaDTO->setStrComando("PENAgendamentoRN::seiVerificarServicosBarramento"); + $objInfraAgendamentoTarefaDTO->setBolExclusaoLogica(false); + $objInfraAgendamentoTarefaDTO = $objInfraAgendamentoTarefaBD->consultar($objInfraAgendamentoTarefaDTO); if (isset($objInfraAgendamentoTarefaDTO)) { - $this->logar('Removendo agendamento de verificao de servios de integrao do Barramento Tramita GOV.BR'); - $objInfraAgendamentoTarefaBD->excluir($objInfraAgendamentoTarefaDTO); + $this->logar('Removendo agendamento de verificao de servios de integrao do Barramento Tramita GOV.BR'); + $objInfraAgendamentoTarefaBD->excluir($objInfraAgendamentoTarefaDTO); } - // Remoo de coluna sin_padrao da tabela md_pen_rel_doc_map_enviado - $this->logar("REMOO DE COLUNAS DE DESATIVAO DE MAPEAMENTO DE ESPCIES NO MAIS UTILIZADOS"); - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_doc_map_enviado_tmp', - 'cols' => array( - 'id_mapeamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO) - ) - )); - - BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_enviado_tmp (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_enviado"); - BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_enviado"); - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_doc_map_enviado', - 'cols' => array( - 'id_mapeamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - ), - 'pk' => array('cols' => array('id_mapeamento')), - 'fks' => array( - 'serie' => array('nome' => 'fk_md_pen_rel_doc_map_env_seri', 'cols' => array('id_serie', 'id_serie')), - 'md_pen_especie_documental' => array('nome' => 'fk_md_pen_rel_doc_map_env_espe', 'cols' => array('id_especie', 'codigo_especie')), - ) - )); - - BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_enviado (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_enviado_tmp"); - BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_enviado_tmp"); - - // Remoo de coluna sin_padrao da tabela md_pen_rel_doc_map_enviado - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_doc_map_recebido_tm', - 'cols' => array( - 'id_mapeamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - ) - )); - - BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_recebido_tm (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_recebido"); - BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_recebido"); - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_doc_map_recebido', - 'cols' => array( - 'id_mapeamento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'codigo_especie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_serie' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - ), - 'pk' => array('cols' => array('id_mapeamento')), - 'fks' => array( - 'serie' => array('nome' => 'fk_md_pen_rel_doc_map_rec_seri', 'cols' => array('id_serie', 'id_serie')), - 'md_pen_especie_documental' => array('nome' => 'fk_md_pen_rel_doc_map_rec_espe', 'cols' => array('id_especie', 'codigo_especie')), - ) - )); - - BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_recebido (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_recebido_tm"); - BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_recebido_tm"); - - // Atribui automaticamente a espcie documental 999 - Outra como mapeamento padro de espcies para envio de processo - PenParametroRN::persistirParametro("PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO", "999"); - - // Remoo de parmetros do banco de dados do SEI devido a necessidade de migrao - // para arquivo de configurao do mdulo em sei/config/mod-pen/ConfiguracaoModPEN.php - $this->logar("REMOO DE PARMETROS DO BANCO DE DADOS DO SEI DEVIDO MIGRAO PARA ARQUIVO DE CONFIGURAO"); - $this->removerParametro("PEN_ENDERECO_WEBSERVICE"); - $this->removerParametro("PEN_ENDERECO_WEBSERVICE_PENDENCIAS"); - $this->removerParametro("PEN_SENHA_CERTIFICADO_DIGITAL"); - $this->removerParametro("PEN_LOCALIZACAO_CERTIFICADO_DIGITAL"); - $this->removerParametro("PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO"); + // Remoo de coluna sin_padrao da tabela md_pen_rel_doc_map_enviado + $this->logar("REMOO DE COLUNAS DE DESATIVAO DE MAPEAMENTO DE ESPCIES NO MAIS UTILIZADOS"); + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_doc_map_enviado_tmp', 'cols' => ['id_mapeamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO]]]); + + BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_enviado_tmp (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_enviado"); + BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_enviado"); + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_doc_map_enviado', 'cols' => ['id_mapeamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_mapeamento']], 'fks' => ['serie' => ['nome' => 'fk_md_pen_rel_doc_map_env_seri', 'cols' => ['id_serie', 'id_serie']], 'md_pen_especie_documental' => ['nome' => 'fk_md_pen_rel_doc_map_env_espe', 'cols' => ['id_especie', 'codigo_especie']]]]); + + BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_enviado (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_enviado_tmp"); + BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_enviado_tmp"); + + // Remoo de coluna sin_padrao da tabela md_pen_rel_doc_map_enviado + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_doc_map_recebido_tm', 'cols' => ['id_mapeamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO]]]); + + BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_recebido_tm (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_recebido"); + BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_recebido"); + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_doc_map_recebido', 'cols' => ['id_mapeamento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'codigo_especie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_serie' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_mapeamento']], 'fks' => ['serie' => ['nome' => 'fk_md_pen_rel_doc_map_rec_seri', 'cols' => ['id_serie', 'id_serie']], 'md_pen_especie_documental' => ['nome' => 'fk_md_pen_rel_doc_map_rec_espe', 'cols' => ['id_especie', 'codigo_especie']]]]); + + BancoSEI::getInstance()->executarSql("insert into md_pen_rel_doc_map_recebido (id_mapeamento, codigo_especie, id_serie) select id_mapeamento, codigo_especie, id_serie from md_pen_rel_doc_map_recebido_tm"); + BancoSEI::getInstance()->executarSql("drop table md_pen_rel_doc_map_recebido_tm"); + + // Atribui automaticamente a espcie documental 999 - Outra como mapeamento padro de espcies para envio de processo + PenParametroRN::persistirParametro("PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO", "999"); + + // Remoo de parmetros do banco de dados do SEI devido a necessidade de migrao + // para arquivo de configurao do mdulo em sei/config/mod-pen/ConfiguracaoModPEN.php + $this->logar("REMOO DE PARMETROS DO BANCO DE DADOS DO SEI DEVIDO MIGRAO PARA ARQUIVO DE CONFIGURAO"); + $this->removerParametro("PEN_ENDERECO_WEBSERVICE"); + $this->removerParametro("PEN_ENDERECO_WEBSERVICE_PENDENCIAS"); + $this->removerParametro("PEN_SENHA_CERTIFICADO_DIGITAL"); + $this->removerParametro("PEN_LOCALIZACAO_CERTIFICADO_DIGITAL"); + $this->removerParametro("PEN_NUMERO_TENTATIVAS_TRAMITE_RECEBIMENTO"); try { - $this->logar("ATUALIZANDO LISTA DE HIPTESES LEGAIS DO BARRAMENTO DE SERVIOS TRAMITA GOV.BR"); - $objPENAgendamentoRN = new PENAgendamentoRN(); - $objPENAgendamentoRN->atualizarHipotesesLegais(); + $this->logar("ATUALIZANDO LISTA DE HIPTESES LEGAIS DO BARRAMENTO DE SERVIOS TRAMITA GOV.BR"); + $objPENAgendamentoRN = new PENAgendamentoRN(); + $objPENAgendamentoRN->atualizarHipotesesLegais(); } catch (\Exception $th) { - $strMensagemErroMapeamentoAutomatico = "Aviso: No foi possvel realizar a atualizao automtico das hipteses legais do TRAMITA GOV.BR pois servio encontra-se inacessvel\n"; - $strMensagemErroMapeamentoAutomatico .= "A atualizao poder ser realizada posteriormente de forma automtica pelo agendamento da tarefa PENAgendamentoRN::atualizarInformacoesPEN"; - $this->logar($strMensagemErroMapeamentoAutomatico); + $strMensagemErroMapeamentoAutomatico = "Aviso: No foi possvel realizar a atualizao automtico das hipteses legais do TRAMITA GOV.BR pois servio encontra-se inacessvel\n"; + $strMensagemErroMapeamentoAutomatico .= "A atualizao poder ser realizada posteriormente de forma automtica pelo agendamento da tarefa PENAgendamentoRN::atualizarInformacoesPEN"; + $this->logar($strMensagemErroMapeamentoAutomatico); } try { - $objPENAgendamentoRN = new PENAgendamentoRN(); - $objPENAgendamentoRN->atualizarEspeciesDocumentais(); + $objPENAgendamentoRN = new PENAgendamentoRN(); + $objPENAgendamentoRN->atualizarEspeciesDocumentais(); } catch (\Exception $th) { - $strMensagemErroMapeamentoAutomatico = "Aviso: No foi possvel realizar a atualizao automtico das espcies documentais do TRAMITA GOV.BR pois servio encontra-se inacessvel\n"; - $strMensagemErroMapeamentoAutomatico .= "Mapeamento poder ser realizado posteriormente de forma automtica pelo agendamento da tarefa PENAgendamentoRN::atualizarInformacoesPEN"; - $this->logar($strMensagemErroMapeamentoAutomatico); + $strMensagemErroMapeamentoAutomatico = "Aviso: No foi possvel realizar a atualizao automtico das espcies documentais do TRAMITA GOV.BR pois servio encontra-se inacessvel\n"; + $strMensagemErroMapeamentoAutomatico .= "Mapeamento poder ser realizado posteriormente de forma automtica pelo agendamento da tarefa PENAgendamentoRN::atualizarInformacoesPEN"; + $this->logar($strMensagemErroMapeamentoAutomatico); } - $this->logar("INICIANDO O MAPEAMENTO AUTOMTICO DOS TIPOS DE DOCUMENTOS DO SEI COM AS ESPCIES DOCUMENTAIS DO TRAMITA GOV.BR PARA ENVIO"); - $objPenRelTipoDocMapEnviadoRN = new PenRelTipoDocMapEnviadoRN(); - $objPenRelTipoDocMapEnviadoRN->mapearEspeciesDocumentaisEnvio(); + $this->logar("INICIANDO O MAPEAMENTO AUTOMTICO DOS TIPOS DE DOCUMENTOS DO SEI COM AS ESPCIES DOCUMENTAIS DO TRAMITA GOV.BR PARA ENVIO"); + $objPenRelTipoDocMapEnviadoRN = new PenRelTipoDocMapEnviadoRN(); + $objPenRelTipoDocMapEnviadoRN->mapearEspeciesDocumentaisEnvio(); - $this->logar("INICIANDO O MAPEAMENTO AUTOMTICO DAS ESPCIES DOCUMENTAIS DO TRAMITA GOV.BR COM OS TIPOS DE DOCUMENTOS DO SEI PARA RECEBIMENTO"); - $objPenRelTipoDocMapRecebidoRN = new PenRelTipoDocMapRecebidoRN(); - $objPenRelTipoDocMapRecebidoRN->mapearEspeciesDocumentaisRecebimento(); + $this->logar("INICIANDO O MAPEAMENTO AUTOMTICO DAS ESPCIES DOCUMENTAIS DO TRAMITA GOV.BR COM OS TIPOS DE DOCUMENTOS DO SEI PARA RECEBIMENTO"); + $objPenRelTipoDocMapRecebidoRN = new PenRelTipoDocMapRecebidoRN(); + $objPenRelTipoDocMapRecebidoRN->mapearEspeciesDocumentaisRecebimento(); - $this->atualizarNumeroVersao("2.0.0-beta1"); + $this->atualizarNumeroVersao("2.0.0-beta1"); } // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps protected function instalarV2000_beta2() - { - $this->atualizarNumeroVersao("2.0.0-beta2"); + { + $this->atualizarNumeroVersao("2.0.0-beta2"); } // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps protected function instalarV2000_beta3() - { - $this->atualizarNumeroVersao("2.0.0-beta3"); + { + $this->atualizarNumeroVersao("2.0.0-beta3"); } // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps protected function instalarV2000_beta4() - { - $this->atualizarNumeroVersao("2.0.0-beta4"); + { + $this->atualizarNumeroVersao("2.0.0-beta4"); } // phpcs:ignore PSR1.Methods.CamelCapsMethodName.NotCamelCaps protected function instalarV2000_beta5() - { - $this->atualizarNumeroVersao("2.0.0-beta5"); + { + $this->atualizarNumeroVersao("2.0.0-beta5"); } protected function instalarV2000() - { - $this->atualizarNumeroVersao("2.0.0"); + { + $this->atualizarNumeroVersao("2.0.0"); } protected function instalarV2001() - { - $this->atualizarNumeroVersao("2.0.1"); + { + $this->atualizarNumeroVersao("2.0.1"); } protected function instalarV2100() - { - // Ajuste da coluna de ordem dos documentos e componentes digitais do processo - $recordset = $this->listarComponenteDigitaisDesatualizados(); + { + // Ajuste da coluna de ordem dos documentos e componentes digitais do processo + $recordset = $this->listarComponenteDigitaisDesatualizados(); if (!empty($recordset)) { foreach ($recordset as $item) { - BancoSEI::getInstance()->executarSql(" + BancoSEI::getInstance()->executarSql( + " update md_pen_componente_digital set ordem_documento = ordem where @@ -2268,11 +1953,13 @@ protected function instalarV2100() id_tramite = " . $item['id_tramite'] . " and ordem = " . $item['ordem'] . " and ordem_documento = " . $item['ordem_documento'] . " - "); + " + ); } foreach ($recordset as $item) { - BancoSEI::getInstance()->executarSql(" + BancoSEI::getInstance()->executarSql( + " update md_pen_componente_digital set ordem = 1 where @@ -2281,481 +1968,373 @@ protected function instalarV2100() id_documento = " . $item['id_documento'] . " and id_tramite = " . $item['id_tramite'] . " and ordem = " . $item['ordem'] . " - "); + " + ); } } - // Nova coluna para registro de ordem do documento refernciado, apresentado como doc anexado na rvore de processo - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'ordem_documento_referenciado', $objInfraMetaBD->tipoNumero(11), 'null'); + // Nova coluna para registro de ordem do documento refernciado, apresentado como doc anexado na rvore de processo + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'ordem_documento_referenciado', $objInfraMetaBD->tipoNumero(11), 'null'); - $this->atualizarNumeroVersao("2.1.0"); + $this->atualizarNumeroVersao("2.1.0"); } protected function instalarV2101() - { - $this->atualizarNumeroVersao("2.1.1"); + { + $this->atualizarNumeroVersao("2.1.1"); } protected function instalarV2102() - { - $this->atualizarNumeroVersao("2.1.2"); + { + $this->atualizarNumeroVersao("2.1.2"); } protected function instalarV2103() - { - $this->atualizarNumeroVersao("2.1.3"); + { + $this->atualizarNumeroVersao("2.1.3"); } protected function instalarV2104() - { - $this->atualizarNumeroVersao("2.1.4"); + { + $this->atualizarNumeroVersao("2.1.4"); } protected function instalarV2105() - { - $this->atualizarNumeroVersao("2.1.5"); + { + $this->atualizarNumeroVersao("2.1.5"); } protected function instalarV2106() - { - $this->atualizarNumeroVersao("2.1.6"); + { + $this->atualizarNumeroVersao("2.1.6"); } protected function instalarV2107() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->criarIndice('md_pen_rel_hipotese_legal', 'ak1_rel_hipotese_legal', array('id_hipotese_legal', 'id_hipotese_legal_pen', 'tipo'), true); - $this->atualizarNumeroVersao("2.1.7"); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->criarIndice('md_pen_rel_hipotese_legal', 'ak1_rel_hipotese_legal', ['id_hipotese_legal', 'id_hipotese_legal_pen', 'tipo'], true); + $this->atualizarNumeroVersao("2.1.7"); } protected function instalarV3000() - { - $this->atualizarNumeroVersao("3.0.0"); + { + $this->atualizarNumeroVersao("3.0.0"); } protected function instalarV3001() - { - $this->atualizarNumeroVersao("3.0.1"); + { + $this->atualizarNumeroVersao("3.0.1"); } protected function instalarV3010() - { - $objInfraBanco = BancoSEI::getInstance(); - $objMetaBD = $this->objMeta; - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_expedir_lote', - 'cols' => array( - 'id_lote' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_repositorio_destino' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'str_repositorio_destino' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), - 'id_repositorio_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_unidade_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_unidade_destino' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'str_unidade_destino' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), - 'id_usuario' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'dth_registro' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id_lote')), - 'fks' => array( - 'usuario' => array('nome' => 'fk_md_pen_expedir_lote_usuario', 'cols' => array('id_usuario', 'id_usuario')), - 'unidade' => array('nome' => 'fk_md_pen_expedir_lote_unidade', 'cols' => array('id_unidade', 'id_unidade')), - ) - )); - - //Sequncia: md_pen_seq_lote - $rs = BancoSEI::getInstance()->consultarSql('select max(id_lote) as total from md_pen_expedir_lote'); - $numMaxId = $rs[0]['total']; + { + $objInfraBanco = BancoSEI::getInstance(); + $objMetaBD = $this->objMeta; + + $objMetaBD->criarTabela(['tabela' => 'md_pen_expedir_lote', 'cols' => ['id_lote' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_repositorio_destino' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'str_repositorio_destino' => [$objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO], 'id_repositorio_origem' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_unidade_origem' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_unidade_destino' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'str_unidade_destino' => [$objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO], 'id_usuario' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_unidade' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'dth_registro' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_lote']], 'fks' => ['usuario' => ['nome' => 'fk_md_pen_expedir_lote_usuario', 'cols' => ['id_usuario', 'id_usuario']], 'unidade' => ['nome' => 'fk_md_pen_expedir_lote_unidade', 'cols' => ['id_unidade', 'id_unidade']]]]); + + //Sequncia: md_pen_seq_lote + $rs = BancoSEI::getInstance()->consultarSql('select max(id_lote) as total from md_pen_expedir_lote'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - $objInfraBanco->criarSequencialNativa('md_pen_seq_expedir_lote', $numMaxId + 1); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_rel_expedir_lote', - 'cols' => array( - 'id_lote' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_procedimento' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_andamento' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_atividade_expedicao' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id_procedimento', 'id_lote')), - 'fks' => array( - 'md_pen_expedir_lote' => array('nome' => 'fk_md_pen_rel_expedir_lote', 'cols' => array('id_lote', 'id_lote')), - 'procedimento' => array('nome' => 'fk_md_pen_rel_expedir_lote', 'cols' => array('id_procedimento', 'id_procedimento')), - ) - )); - - $this->atualizarNumeroVersao("3.1.0"); + $objInfraBanco->criarSequencialNativa('md_pen_seq_expedir_lote', $numMaxId + 1); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_rel_expedir_lote', 'cols' => ['id_lote' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_procedimento' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_andamento' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_atividade_expedicao' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id_procedimento', 'id_lote']], 'fks' => ['md_pen_expedir_lote' => ['nome' => 'fk_md_pen_rel_expedir_lote', 'cols' => ['id_lote', 'id_lote']], 'procedimento' => ['nome' => 'fk_md_pen_rel_expedir_lote', 'cols' => ['id_procedimento', 'id_procedimento']]]]); + + $this->atualizarNumeroVersao("3.1.0"); } protected function instalarV3011() - { - $this->atualizarNumeroVersao("3.1.1"); + { + $this->atualizarNumeroVersao("3.1.1"); } protected function instalarV3012() - { - $this->atualizarNumeroVersao("3.1.2"); + { + $this->atualizarNumeroVersao("3.1.2"); } protected function instalarV3013() - { - $this->atualizarNumeroVersao("3.1.3"); + { + $this->atualizarNumeroVersao("3.1.3"); } protected function instalarV3014() - { - $objInfraBanco = BancoSEI::getInstance(); - $objInfraParametro = new InfraParametro($objInfraBanco); - $objInfraParametro->setValor('SEI_FEDERACAO_NUMERO_PROCESSO', 0); - $this->atualizarNumeroVersao("3.1.4"); + { + $objInfraBanco = BancoSEI::getInstance(); + $objInfraParametro = new InfraParametro($objInfraBanco); + $objInfraParametro->setValor('SEI_FEDERACAO_NUMERO_PROCESSO', 0); + $this->atualizarNumeroVersao("3.1.4"); } protected function instalarV3015() - { - $this->atualizarNumeroVersao("3.1.5"); + { + $this->atualizarNumeroVersao("3.1.5"); } protected function instalarV3016() - { - $this->atualizarNumeroVersao("3.1.6"); + { + $this->atualizarNumeroVersao("3.1.6"); } protected function instalarV3017() - { - $this->atualizarNumeroVersao("3.1.7"); + { + $this->atualizarNumeroVersao("3.1.7"); } protected function instalarV3018() - { - $this->atualizarNumeroVersao("3.1.8"); + { + $this->atualizarNumeroVersao("3.1.8"); } protected function instalarV3019() - { - $this->atualizarNumeroVersao("3.1.9"); + { + $this->atualizarNumeroVersao("3.1.9"); } protected function instalarV30110() - { - $this->atualizarNumeroVersao("3.1.10"); + { + $this->atualizarNumeroVersao("3.1.10"); } protected function instalarV30111() - { - $this->atualizarNumeroVersao("3.1.11"); + { + $this->atualizarNumeroVersao("3.1.11"); } protected function instalarV30112() - { - $this->atualizarNumeroVersao("3.1.12"); + { + $this->atualizarNumeroVersao("3.1.12"); } protected function instalarV30113() - { - $this->atualizarNumeroVersao("3.1.13"); + { + $this->atualizarNumeroVersao("3.1.13"); } protected function instalarV30114() - { - $this->atualizarNumeroVersao("3.1.14"); + { + $this->atualizarNumeroVersao("3.1.14"); } protected function instalarV30115() - { - $this->atualizarNumeroVersao("3.1.15"); + { + $this->atualizarNumeroVersao("3.1.15"); } protected function instalarV30116() - { - $this->atualizarNumeroVersao("3.1.16"); + { + $this->atualizarNumeroVersao("3.1.16"); } protected function instalarV30117() - { - $this->atualizarNumeroVersao("3.1.17"); + { + $this->atualizarNumeroVersao("3.1.17"); } protected function instalarV30118() - { - $this->atualizarNumeroVersao("3.1.18"); + { + $this->atualizarNumeroVersao("3.1.18"); } protected function instalarV30119() - { - $this->atualizarNumeroVersao("3.1.19"); + { + $this->atualizarNumeroVersao("3.1.19"); } protected function instalarV30120() - { - $this->atualizarNumeroVersao("3.1.20"); + { + $this->atualizarNumeroVersao("3.1.20"); } protected function instalarV30121() - { - $this->atualizarNumeroVersao("3.1.21"); + { + $this->atualizarNumeroVersao("3.1.21"); } protected function instalarV30122() - { - $objMetaBanco = $this->inicializarObjMetaBanco(); - $objMetaBanco->renomearTabela("md_pen_rel_expedir_lote_procedimento", "md_pen_rel_expedir_lote"); - $this->atualizarNumeroVersao("3.1.22"); + { + $objMetaBanco = $this->inicializarObjMetaBanco(); + $objMetaBanco->renomearTabela("md_pen_rel_expedir_lote_procedimento", "md_pen_rel_expedir_lote"); + $this->atualizarNumeroVersao("3.1.22"); } protected function instalarV3020() - { - $this->atualizarNumeroVersao("3.2.0"); - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'id_anexo_imutavel', $objInfraMetaBD->tipoNumeroGrande(), 'null'); - $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'tarja_legada', $objInfraMetaBD->tipoTextoFixo(1), 'null'); - BancoSEI::getInstance()->executarSql("update md_pen_componente_digital set tarja_legada='S'"); + { + $this->atualizarNumeroVersao("3.2.0"); + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'id_anexo_imutavel', $objInfraMetaBD->tipoNumeroGrande(), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_componente_digital', 'tarja_legada', $objInfraMetaBD->tipoTextoFixo(1), 'null'); + BancoSEI::getInstance()->executarSql("update md_pen_componente_digital set tarja_legada='S'"); } protected function instalarV3021() - { - $this->atualizarNumeroVersao("3.2.1"); + { + $this->atualizarNumeroVersao("3.2.1"); } protected function instalarV3022() - { - $this->atualizarNumeroVersao("3.2.2"); + { + $this->atualizarNumeroVersao("3.2.2"); } protected function instalarV3023() - { - $this->atualizarNumeroVersao("3.2.3"); + { + $this->atualizarNumeroVersao("3.2.3"); } protected function instalarV3024() - { - $this->atualizarNumeroVersao("3.2.4"); + { + $this->atualizarNumeroVersao("3.2.4"); } protected function instalarV3030() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - // Modificao de tipo de dados para a coluna ticket_envio_componentes na tabela md_pen_tramite - $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'ticket_envio_componentes_temp', $objInfraMetaBD->tipoTextoVariavel(10), 'null'); - BancoSEI::getInstance()->executarSql("update md_pen_tramite set ticket_envio_componentes_temp=ticket_envio_componentes"); - $objInfraMetaBD->excluirColuna('md_pen_tramite', 'ticket_envio_componentes'); - $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'ticket_envio_componentes', $objInfraMetaBD->tipoTextoVariavel(10), 'null'); - BancoSEI::getInstance()->executarSql("update md_pen_tramite set ticket_envio_componentes=ticket_envio_componentes_temp"); - $objInfraMetaBD->excluirColuna('md_pen_tramite', 'ticket_envio_componentes_temp'); + // Modificao de tipo de dados para a coluna ticket_envio_componentes na tabela md_pen_tramite + $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'ticket_envio_componentes_temp', $objInfraMetaBD->tipoTextoVariavel(10), 'null'); + BancoSEI::getInstance()->executarSql("update md_pen_tramite set ticket_envio_componentes_temp=ticket_envio_componentes"); + $objInfraMetaBD->excluirColuna('md_pen_tramite', 'ticket_envio_componentes'); + $objInfraMetaBD->adicionarColuna('md_pen_tramite', 'ticket_envio_componentes', $objInfraMetaBD->tipoTextoVariavel(10), 'null'); + BancoSEI::getInstance()->executarSql("update md_pen_tramite set ticket_envio_componentes=ticket_envio_componentes_temp"); + $objInfraMetaBD->excluirColuna('md_pen_tramite', 'ticket_envio_componentes_temp'); - $objInfraMetaBD->adicionarColuna('md_pen_rel_expedir_lote', 'tentativas', $objInfraMetaBD->tipoNumero(), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_rel_expedir_lote', 'tentativas', $objInfraMetaBD->tipoNumero(), 'null'); - $objPenParametroRN = new PenParametroRN(); - $objPenParametroDTO = new PenParametroDTO(); - $objPenParametroDTO->setStrNome("PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO"); - $objPenParametroDTO->retStrNome(); - $objPenParametroRN->excluir($objPenParametroDTO); + $objPenParametroRN = new PenParametroRN(); + $objPenParametroDTO = new PenParametroDTO(); + $objPenParametroDTO->setStrNome("PEN_TAMANHO_MAXIMO_DOCUMENTO_EXPEDIDO"); + $objPenParametroDTO->retStrNome(); + $objPenParametroRN->excluir($objPenParametroDTO); - // Corrige chave primaria da tabela de componentes digitais - $this->excluirChavePrimariaComIndice('md_pen_componente_digital', 'pk_md_pen_componente_digital'); - $objInfraMetaBD->adicionarChavePrimaria('md_pen_componente_digital', 'pk_md_pen_componente_digital', array('numero_registro', 'id_procedimento', 'id_documento', 'id_tramite', 'ordem_documento', 'ordem')); + // Corrige chave primaria da tabela de componentes digitais + $this->excluirChavePrimariaComIndice('md_pen_componente_digital', 'pk_md_pen_componente_digital'); + $objInfraMetaBD->adicionarChavePrimaria('md_pen_componente_digital', 'pk_md_pen_componente_digital', ['numero_registro', 'id_procedimento', 'id_documento', 'id_tramite', 'ordem_documento', 'ordem']); - $this->atualizarNumeroVersao("3.3.0"); + $this->atualizarNumeroVersao("3.3.0"); } protected function instalarV3031() - { - $this->atualizarNumeroVersao("3.3.1"); + { + $this->atualizarNumeroVersao("3.3.1"); } protected function instalarV3032() - { - $this->atualizarNumeroVersao("3.3.2"); + { + $this->atualizarNumeroVersao("3.3.2"); } protected function instalarV3040() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - $objInfraMetaBD->adicionarColuna('md_pen_unidade', 'sigla_unidade_rh', $objInfraMetaBD->tipoTextoVariavel(20), 'null'); - $objInfraMetaBD->adicionarColuna('md_pen_unidade', 'nome_unidade_rh', $objInfraMetaBD->tipoTextoVariavel(250), 'null'); - $this->atualizarNumeroVersao("3.4.0"); + { + $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); + $objInfraMetaBD->adicionarColuna('md_pen_unidade', 'sigla_unidade_rh', $objInfraMetaBD->tipoTextoVariavel(20), 'null'); + $objInfraMetaBD->adicionarColuna('md_pen_unidade', 'nome_unidade_rh', $objInfraMetaBD->tipoTextoVariavel(250), 'null'); + $this->atualizarNumeroVersao("3.4.0"); } protected function instalarV3050() - { - $objMetaBD = $this->objMeta; - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_orgao_externo', - 'cols' => array( - 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_orgao_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'str_orgao_origem' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), - 'id_estrutura_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'str_estrutura_origem' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), - 'id_orgao_destino' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'str_orgao_destino' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO), - 'sin_ativo' => array($objMetaBD->tipoTextoFixo(1), 'S'), - 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'dth_criacao' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id')), - 'fks' => array( - 'unidade' => array('nome' => 'fk_md_pen_orgao_externo', 'cols' => array('id_unidade', 'id_unidade')), - ) - )); - - # Criar sequencia para tramite em bloco - $objInfraSequenciaRN = new InfraSequenciaRN(); - $objInfraSequenciaDTO = new InfraSequenciaDTO(); - - //Sequncia: md_pen_seq_tramita_em_bloco - $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_orgao_externo'); - $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; - - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_orgao_externo', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_orgao_externo'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_map_tipo_processo', - 'cols' => array( - 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_map_orgao' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_tipo_processo_origem' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_tipo_processo_destino' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'nome_tipo_processo' => array($objMetaBD->tipoTextoVariavel(250), PenMetaBD::SNULLO), - 'sin_ativo' => array($objMetaBD->tipoTextoFixo(1), 'S'), - 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'dth_criacao' => array($objMetaBD->tipoDataHora(), PenMetaBD::NNULLO) - ), - 'pk' => array('cols' => array('id')), - 'fks' => array( - 'unidade' => array('nome' => 'fk_md_pen_map_tipo_processo', 'cols' => array('id_unidade', 'id_unidade')), - 'md_pen_orgao_externo' => array('nome' => 'fk_md_pen_mapeamento_orgao', 'cols' => array('id', 'id_map_orgao')), - ) - )); - - # Criar sequencia - $objInfraSequenciaRN = new InfraSequenciaRN(); - $objInfraSequenciaDTO = new InfraSequenciaDTO(); - - //Sequncia - $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_orgao_externo'); - $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; - - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_map_tp_procedimento', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_map_tipo_processo'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - - $this->atualizarNumeroVersao("3.5.0"); - } - - // novo tramite em bloco + { + $objMetaBD = $this->objMeta; + + $objMetaBD->criarTabela(['tabela' => 'md_pen_orgao_externo', 'cols' => ['id' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_orgao_origem' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'str_orgao_origem' => [$objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO], 'id_estrutura_origem' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'str_estrutura_origem' => [$objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO], 'id_orgao_destino' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'str_orgao_destino' => [$objMetaBD->tipoTextoVariavel(250), PenMetaBD::NNULLO], 'sin_ativo' => [$objMetaBD->tipoTextoFixo(1), 'S'], 'id_unidade' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'dth_criacao' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id']], 'fks' => ['unidade' => ['nome' => 'fk_md_pen_orgao_externo', 'cols' => ['id_unidade', 'id_unidade']]]]); + + // Criar sequencia para tramite em bloco + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); + + //Sequncia: md_pen_seq_tramita_em_bloco + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_orgao_externo'); + $numMaxId = $rs[0]['total'] ?? 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_orgao_externo', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_orgao_externo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_map_tipo_processo', 'cols' => ['id' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_map_orgao' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_tipo_processo_origem' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_tipo_processo_destino' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'nome_tipo_processo' => [$objMetaBD->tipoTextoVariavel(250), PenMetaBD::SNULLO], 'sin_ativo' => [$objMetaBD->tipoTextoFixo(1), 'S'], 'id_unidade' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'dth_criacao' => [$objMetaBD->tipoDataHora(), PenMetaBD::NNULLO]], 'pk' => ['cols' => ['id']], 'fks' => ['unidade' => ['nome' => 'fk_md_pen_map_tipo_processo', 'cols' => ['id_unidade', 'id_unidade']], 'md_pen_orgao_externo' => ['nome' => 'fk_md_pen_mapeamento_orgao', 'cols' => ['id', 'id_map_orgao']]]]); + + // Criar sequencia + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); + + //Sequncia + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_orgao_externo'); + $numMaxId = $rs[0]['total'] ?? 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_map_tp_procedimento', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_map_tipo_processo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $this->atualizarNumeroVersao("3.5.0"); + } + + // novo tramite em bloco protected function instalarV3060() - { - $objInfraMetaBD = new InfraMetaBD(BancoSEI::getInstance()); - - $objMetaBD = $this->objMeta; - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_bloco', - 'cols' => array( - 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_unidade' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'id_usuario' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'descricao' => array($objMetaBD->tipoTextoVariavel(255), PenMetaBD::SNULLO), - 'idx_bloco' => array($objMetaBD->tipoTextoVariavel(500), PenMetaBD::SNULLO), - 'sta_tipo' => array($objMetaBD->tipoTextoFixo(1), PenMetaBD::SNULLO), - 'sta_estado' => array($objMetaBD->tipoTextoFixo(1), PenMetaBD::SNULLO), - ), - 'pk' => array('cols' => array('id')), - 'uk' => array(), - 'fks' => array( - 'unidade' => array('nome' => 'fk_tramite_bloco_unidade', 'cols' => array('id_unidade', 'id_unidade')), - 'usuario' => array('nome' => 'fk_tramite_bloco_usuario', 'cols' => array('id_usuario', 'id_usuario')), - ) - )); - - # Criar sequencia para tramite em bloco - - $objInfraSequenciaRN = new InfraSequenciaRN(); - $objInfraSequenciaDTO = new InfraSequenciaDTO(); - - //Sequncia: md_pen_seq_tramita_em_bloco - $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_bloco'); - $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; - - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_bloco', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_bloco'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_bloco_protocolo', - 'cols' => array( - 'id' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_protocolo' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_tramita_em_bloco' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'sequencia' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'idx_rel_bloco_protocolo' => array($objMetaBD->tipoTextoVariavel(4000), PenMetaBD::SNULLO), - ), - 'pk' => array('cols' => array('id')), - 'uk' => array('id_protocolo', 'id_tramita_em_bloco', 'sequencia'), - 'fks' => array( - 'protocolo' => array('nome' => 'fk_bloco_protocolo', 'cols' => array('id_protocolo', 'id_protocolo')), - ) - )); - - //Sequncia: md_pen_bloco_protocolo - $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_bloco_protocolo'); - $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; - - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_bloco_protocolo', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_bloco_protocolo'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - - //Envio parcial - $objInfraBanco = BancoSEI::getInstance(); - $objMetaBD = $this->objMeta; - - $objMetaBD->criarTabela(array( - 'tabela' => 'md_pen_envio_comp_digitais', - 'cols' => array( - 'id_comp_digitais' => array($objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_estrutura' => array($objMetaBD->tipoNumero(), PenMetaBD::NNULLO), - 'str_estrutura' => array($objMetaBD->tipoTextoGrande(), PenMetaBD::NNULLO), - 'id_unidade_pen' => array($objMetaBD->tipoNumero(), PenMetaBD::SNULLO), - 'str_unidade_pen' => array($objMetaBD->tipoTextoGrande(), PenMetaBD::SNULLO), - ), - 'pk' => array('cols' => array('id_comp_digitais')), - 'uk' => array('id_estrutura', 'id_unidade_pen'), - )); - - # Criar sequencia para tramite em bloco - - $objInfraSequenciaRN = new InfraSequenciaRN(); - $objInfraSequenciaDTO = new InfraSequenciaDTO(); - - //Sequncia: md_pen_seq_tramita_em_bloco - $rs = BancoSEI::getInstance()->consultarSql('select max(id_comp_digitais) as total from md_pen_envio_comp_digitais'); - $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; - - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_envio_comp_digitais', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_envio_comp_digitais'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - - //Inserir Componentes Digitais no Banco de acordo com os parmetros do ConfiguracaoModPEN.php - $arrObjEnviarDocumentosPendentes = ConfiguracaoModPEN::getInstance()->getValor("PEN", "EnviarApenasComponentesDigitaisPendentes", false); - $objParamEnviarDocumentosPendentes = !is_null($arrObjEnviarDocumentosPendentes) ? $arrObjEnviarDocumentosPendentes : false; - $objSessaoSEI = SessaoSEI::getInstance(); - $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); - $objRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); + { + new InfraMetaBD(BancoSEI::getInstance()); + + $objMetaBD = $this->objMeta; + $objMetaBD->criarTabela(['tabela' => 'md_pen_bloco', 'cols' => ['id' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_unidade' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'id_usuario' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'descricao' => [$objMetaBD->tipoTextoVariavel(255), PenMetaBD::SNULLO], 'idx_bloco' => [$objMetaBD->tipoTextoVariavel(500), PenMetaBD::SNULLO], 'sta_tipo' => [$objMetaBD->tipoTextoFixo(1), PenMetaBD::SNULLO], 'sta_estado' => [$objMetaBD->tipoTextoFixo(1), PenMetaBD::SNULLO]], 'pk' => ['cols' => ['id']], 'uk' => [], 'fks' => ['unidade' => ['nome' => 'fk_tramite_bloco_unidade', 'cols' => ['id_unidade', 'id_unidade']], 'usuario' => ['nome' => 'fk_tramite_bloco_usuario', 'cols' => ['id_usuario', 'id_usuario']]]]); + + // Criar sequencia para tramite em bloco + + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); + + //Sequncia: md_pen_seq_tramita_em_bloco + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_bloco'); + $numMaxId = $rs[0]['total'] ?? 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_bloco', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_bloco'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + $objMetaBD->criarTabela(['tabela' => 'md_pen_bloco_protocolo', 'cols' => ['id' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'id_protocolo' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_tramita_em_bloco' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'sequencia' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'idx_rel_bloco_protocolo' => [$objMetaBD->tipoTextoVariavel(4000), PenMetaBD::SNULLO]], 'pk' => ['cols' => ['id']], 'uk' => ['id_protocolo', 'id_tramita_em_bloco', 'sequencia'], 'fks' => ['protocolo' => ['nome' => 'fk_bloco_protocolo', 'cols' => ['id_protocolo', 'id_protocolo']]]]); + + //Sequncia: md_pen_bloco_protocolo + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_bloco_protocolo'); + $numMaxId = $rs[0]['total'] ?? 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_bloco_protocolo', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_bloco_protocolo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + //Envio parcial + BancoSEI::getInstance(); + $objMetaBD = $this->objMeta; + + $objMetaBD->criarTabela(['tabela' => 'md_pen_envio_comp_digitais', 'cols' => ['id_comp_digitais' => [$objMetaBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_estrutura' => [$objMetaBD->tipoNumero(), PenMetaBD::NNULLO], 'str_estrutura' => [$objMetaBD->tipoTextoGrande(), PenMetaBD::NNULLO], 'id_unidade_pen' => [$objMetaBD->tipoNumero(), PenMetaBD::SNULLO], 'str_unidade_pen' => [$objMetaBD->tipoTextoGrande(), PenMetaBD::SNULLO]], 'pk' => ['cols' => ['id_comp_digitais']], 'uk' => ['id_estrutura', 'id_unidade_pen']]); + + // Criar sequencia para tramite em bloco + + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); + + //Sequncia: md_pen_seq_tramita_em_bloco + $rs = BancoSEI::getInstance()->consultarSql('select max(id_comp_digitais) as total from md_pen_envio_comp_digitais'); + $numMaxId = $rs[0]['total'] ?? 0; + + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_envio_comp_digitais', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_envio_comp_digitais'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + + //Inserir Componentes Digitais no Banco de acordo com os parmetros do ConfiguracaoModPEN.php + $arrObjEnviarDocumentosPendentes = ConfiguracaoModPEN::getInstance()->getValor("PEN", "EnviarApenasComponentesDigitaisPendentes", false); + $objParamEnviarDocumentosPendentes = !is_null($arrObjEnviarDocumentosPendentes) ? $arrObjEnviarDocumentosPendentes : false; + SessaoSEI::getInstance(); + $objPenRestricaoEnvioComponentesDigitaisRN = new PenRestricaoEnvioComponentesDigitaisRN(); + $objRestricaoEnvioComponentesDigitaisDTO = new PenRestricaoEnvioComponentesDigitaisDTO(); if (is_array($objParamEnviarDocumentosPendentes)) { foreach ($arrObjEnviarDocumentosPendentes as $arrKeyIdUnidade_pen => $arrIdUnidade_pen) { @@ -2765,265 +2344,258 @@ protected function instalarV3060() $objProcessoEletronico = new ProcessoEletronicoRN(); $objProcessoEletronicoDTO = $objProcessoEletronico->consultarRepositoriosDeEstruturas($arrKeyIdUnidade_pen); if (!is_null($objProcessoEletronicoDTO->getStrNome())) { - $objRestricaoEnvioComponentesDigitaisDTO->setStrStrEstrutura($objProcessoEletronicoDTO->getStrNome()); - $objRestricaoEnvioComponentesDigitaisDTO->setNumIdUnidadePen($IdUnidade_pen); - $objProcessoEletronicoDTO = $objProcessoEletronico->listarEstruturas($arrKeyIdUnidade_pen, $IdUnidade_pen); + $objRestricaoEnvioComponentesDigitaisDTO->setStrStrEstrutura($objProcessoEletronicoDTO->getStrNome()); + $objRestricaoEnvioComponentesDigitaisDTO->setNumIdUnidadePen($IdUnidade_pen); + $objProcessoEletronicoDTO = $objProcessoEletronico->listarEstruturas($arrKeyIdUnidade_pen, $IdUnidade_pen); if (count($objProcessoEletronicoDTO) > 0) { if ((!is_null($objProcessoEletronicoDTO[0]->getStrSigla())) && ($objProcessoEletronicoDTO[0]->getStrSigla() <> "")) { - $objRestricaoEnvioComponentesDigitaisDTO->setStrStrUnidadePen($objProcessoEletronicoDTO[0]->getStrSigla()); - $objPenRestricaoEnvioComponentesDigitaisRN->cadastrar($objRestricaoEnvioComponentesDigitaisDTO); + $objRestricaoEnvioComponentesDigitaisDTO->setStrStrUnidadePen($objProcessoEletronicoDTO[0]->getStrSigla()); + $objPenRestricaoEnvioComponentesDigitaisRN->cadastrar($objRestricaoEnvioComponentesDigitaisDTO); } } } } catch (Exception $e) { - throw new InfraException("Erro na parametrizao EnviarApenasComponentesDigitaisPendentes em ConfiguraoModPEN.php"); - try { - LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); - } catch (Exception $e) { - } + throw new InfraException("Erro na parametrizao EnviarApenasComponentesDigitaisPendentes em ConfiguraoModPEN.php"); } } } } - $this->atualizarNumeroVersao("3.6.0"); + $this->atualizarNumeroVersao("3.6.0"); } - protected function instalarV3061(){ - $this->atualizarNumeroVersao("3.6.1"); + protected function instalarV3061() + { + $this->atualizarNumeroVersao("3.6.1"); } - protected function instalarV3062(){ - $this->atualizarNumeroVersao("3.6.2"); + protected function instalarV3062() + { + $this->atualizarNumeroVersao("3.6.2"); } protected function instalarV3070() - { - // Criao da tabela restrio - $objMetaRestricaoBD = $this->objMeta; - $SNULLO = BancoSEI::getInstance() instanceof InfraPostgreSql ? 'null' : PenMetaBD::SNULLO; + { + // Criao da tabela restrio + $objMetaRestricaoBD = $this->objMeta; + $SNULLO = BancoSEI::getInstance() instanceof InfraPostgreSql ? 'null' : PenMetaBD::SNULLO; - // Remoo de coluna sin_padrao da tabela md_pen_rel_doc_map_enviado - $this->logar("CRIANDO TABELA DE CONFIGURACAO PARA RESTRICAO "); - $objMetaRestricaoBD->criarTabela(array( - 'tabela' => 'md_pen_uni_restr', - 'cols' => array( - 'id' => array($objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_unidade' => array($objMetaRestricaoBD->tipoNumero(), PenMetaBD::NNULLO), - 'id_unidade_rh' => array($objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'id_unidade_restricao' => array($objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::NNULLO), - 'nome_unidade_restricao' => array($objMetaRestricaoBD->tipoTextoVariavel(255), PenMetaBD::SNULLO), - 'id_unidade_rh_restricao' => array($objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::SNULLO), - 'nome_unidade_rh_restricao' => array($objMetaRestricaoBD->tipoTextoVariavel(255), PenMetaBD::SNULLO), - ), - 'pk' => array('cols' => array('id')), - 'fks' => array( - 'unidade' => array('id_unidade', 'id_unidade') - ) - )); + // Remoo de coluna sin_padrao da tabela md_pen_rel_doc_map_enviado + $this->logar("CRIANDO TABELA DE CONFIGURACAO PARA RESTRICAO "); + $objMetaRestricaoBD->criarTabela(['tabela' => 'md_pen_uni_restr', 'cols' => ['id' => [$objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_unidade' => [$objMetaRestricaoBD->tipoNumero(), PenMetaBD::NNULLO], 'id_unidade_rh' => [$objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'id_unidade_restricao' => [$objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::NNULLO], 'nome_unidade_restricao' => [$objMetaRestricaoBD->tipoTextoVariavel(255), PenMetaBD::SNULLO], 'id_unidade_rh_restricao' => [$objMetaRestricaoBD->tipoNumeroGrande(), PenMetaBD::SNULLO], 'nome_unidade_rh_restricao' => [$objMetaRestricaoBD->tipoTextoVariavel(255), PenMetaBD::SNULLO]], 'pk' => ['cols' => ['id']], 'fks' => ['unidade' => ['id_unidade', 'id_unidade']]]); - // Criando nova sequncia - $objInfraSequenciaRestricaoRN = new InfraSequenciaRN(); - $objInfraSequenciaRestricaoDTO = new InfraSequenciaDTO(); + // Criando nova sequncia + $objInfraSequenciaRestricaoRN = new InfraSequenciaRN(); + $objInfraSequenciaRestricaoDTO = new InfraSequenciaDTO(); - //Sequncia: md_pen_seq_hipotese_legal - $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_uni_restr'); - $numMaxId = $rs[0]['total']; + //Sequncia: md_pen_seq_hipotese_legal + $rs = BancoSEI::getInstance()->consultarSql('select max(id) as total from md_pen_uni_restr'); + $numMaxId = $rs[0]['total']; if ($numMaxId == null) { - $numMaxId = 0; + $numMaxId = 0; } - BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_uni_restr', $numMaxId + 1); - $objInfraSequenciaRestricaoDTO->setStrNome('md_pen_uni_restr'); - $objInfraSequenciaRestricaoDTO->retStrNome(); - $arrObjInfraSequenciaRestricaoDTO = $objInfraSequenciaRestricaoRN->listar($objInfraSequenciaRestricaoDTO); - $objInfraSequenciaRestricaoRN->excluir($arrObjInfraSequenciaRestricaoDTO); + BancoSEI::getInstance()->criarSequencialNativa('md_pen_seq_uni_restr', $numMaxId + 1); + $objInfraSequenciaRestricaoDTO->setStrNome('md_pen_uni_restr'); + $objInfraSequenciaRestricaoDTO->retStrNome(); + $arrObjInfraSequenciaRestricaoDTO = $objInfraSequenciaRestricaoRN->listar($objInfraSequenciaRestricaoDTO); + $objInfraSequenciaRestricaoRN->excluir($arrObjInfraSequenciaRestricaoDTO); - // FIM da Criao da tabela restrio + // FIM da Criao da tabela restrio - $objMetaBD = $this->objMeta; - $objInfraBanco = BancoSEI::getInstance(); + $objMetaBD = $this->objMeta; + $objInfraBanco = BancoSEI::getInstance(); - $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); - $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); - $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasPEN"); - $objReceberProcessosPEN->setBolExclusaoLogica(false); - $objReceberProcessosPEN->retTodos(); - if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) > 0) { + $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); + $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasPEN"); + $objReceberProcessosPEN->setBolExclusaoLogica(false); $objReceberProcessosPEN->retTodos(); - $objReceberProcessosPEN = $objInfraAgendamentoTarefaBD->consultar($objReceberProcessosPEN); - $objInfraAgendamentoTarefaBD->excluir($objReceberProcessosPEN); + if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) > 0) { + $objReceberProcessosPEN->retTodos(); + $objReceberProcessosPEN = $objInfraAgendamentoTarefaBD->consultar($objReceberProcessosPEN); + $objInfraAgendamentoTarefaBD->excluir($objReceberProcessosPEN); } - // Alterar colunas em md_pen_expedir_lote - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_repositorio_destino', $objMetaBD->tipoNumero(), $SNULLO); - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'str_repositorio_destino', $objMetaBD->tipoTextoVariavel(250), $SNULLO); - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_repositorio_origem', $objMetaBD->tipoNumero(), $SNULLO); - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade_origem', $objMetaBD->tipoNumero(), $SNULLO); - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade_destino', $objMetaBD->tipoNumero(), $SNULLO); - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'str_unidade_destino', $objMetaBD->tipoTextoVariavel(250), $SNULLO); - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_usuario', $objMetaBD->tipoNumero(), $SNULLO); - $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade', $objMetaBD->tipoNumero(), $SNULLO); + // Alterar colunas em md_pen_expedir_lote + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_repositorio_destino', $objMetaBD->tipoNumero(), $SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'str_repositorio_destino', $objMetaBD->tipoTextoVariavel(250), $SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_repositorio_origem', $objMetaBD->tipoNumero(), $SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade_origem', $objMetaBD->tipoNumero(), $SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade_destino', $objMetaBD->tipoNumero(), $SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'str_unidade_destino', $objMetaBD->tipoTextoVariavel(250), $SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_usuario', $objMetaBD->tipoNumero(), $SNULLO); + $objMetaBD->alterarColuna('md_pen_expedir_lote', 'id_unidade', $objMetaBD->tipoNumero(), $SNULLO); - // Alterar id da tabela - $this->excluirChaveEstrangeira("md_pen_rel_expedir_lote", "fk_md_pen_rel_expedir_lote", true); + // Alterar id da tabela + $this->excluirChaveEstrangeira("md_pen_rel_expedir_lote", "fk_md_pen_rel_expedir_lote", true); try { - $objMetaBD->renomearColuna("md_pen_expedir_lote", "id_lote", "id_bloco_processo", $objMetaBD->tipoNumero()); + $objMetaBD->renomearColuna("md_pen_expedir_lote", "id_lote", "id_bloco_processo", $objMetaBD->tipoNumero()); } catch (Exception $e) { if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { - throw $e; + throw $e; } } - $this->excluirChaveEstrangeira("md_pen_expedir_lote", "fk_bloco_protocolo", true); - $this->excluirChaveEstrangeira("md_pen_rel_expedir_lote", "fk_md_pen_rel_expedir_lote", true); - $this->excluirChaveEstrangeira("md_pen_bloco_protocolo", "fk_bloco_protocolo", true); + $this->excluirChaveEstrangeira("md_pen_expedir_lote", "fk_bloco_protocolo", true); + $this->excluirChaveEstrangeira("md_pen_rel_expedir_lote", "fk_md_pen_rel_expedir_lote", true); + $this->excluirChaveEstrangeira("md_pen_bloco_protocolo", "fk_bloco_protocolo", true); try { - $objMetaBD->novoRenomearTabela("md_pen_expedir_lote", "md_pen_bloco_processo"); + $objMetaBD->novoRenomearTabela("md_pen_expedir_lote", "md_pen_bloco_processo"); } catch (Exception $e) { if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { - throw $e; + throw $e; } } - $objInfraSequenciaRN = new InfraSequenciaRN(); - $objInfraSequenciaDTO = new InfraSequenciaDTO(); + $objInfraSequenciaRN = new InfraSequenciaRN(); + $objInfraSequenciaDTO = new InfraSequenciaDTO(); - //Sequncia: md_pen_seq_lote - $rs = BancoSEI::getInstance()->consultarSql('select max(id_bloco_processo) as total from md_pen_bloco_processo'); - $numMaxId = isset($rs[0]['total']) ? $rs[0]['total'] : 0; - $objInfraBanco->criarSequencialNativa('md_pen_seq_bloco_processo', $numMaxId + 1); - $objInfraSequenciaDTO->setStrNome('md_pen_seq_bloco_processo'); - $objInfraSequenciaDTO->retStrNome(); - $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); - $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); + //Sequncia: md_pen_seq_lote + $rs = BancoSEI::getInstance()->consultarSql('select max(id_bloco_processo) as total from md_pen_bloco_processo'); + $numMaxId = $rs[0]['total'] ?? 0; + $objInfraBanco->criarSequencialNativa('md_pen_seq_bloco_processo', $numMaxId + 1); + $objInfraSequenciaDTO->setStrNome('md_pen_seq_bloco_processo'); + $objInfraSequenciaDTO->retStrNome(); + $arrObjInfraSequenciaDTO = $objInfraSequenciaRN->listar($objInfraSequenciaDTO); + $objInfraSequenciaRN->excluir($arrObjInfraSequenciaDTO); - // Atualizar md_pen_bloco_processo->ordem para 1 - $objInfraBanco->executarSql('delete from md_pen_bloco_processo'); + // Atualizar md_pen_bloco_processo->ordem para 1 + $objInfraBanco->executarSql('delete from md_pen_bloco_processo'); - // Excluir bloco legados - $this->limparBlocos(); + // Excluir bloco legados + $this->limparBlocos(); - // Adicionar coluna de atualizao do registro - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'dth_atualizado', $objMetaBD->tipoDataHora(), $SNULLO); - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'dth_envio', $objMetaBD->tipoDataHora(), $SNULLO); + // Adicionar coluna de atualizao do registro + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'dth_atualizado', $objMetaBD->tipoDataHora(), $SNULLO); + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'dth_envio', $objMetaBD->tipoDataHora(), $SNULLO); - // Adicionar campos extrar para a tabela md_pen_bloco_processo - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_protocolo', $objMetaBD->tipoNumeroGrande(10), PenMetaBD::NNULLO); - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_bloco', $objMetaBD->tipoNumero(10), PenMetaBD::NNULLO); - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'sequencia', $objMetaBD->tipoNumero(10), $SNULLO); - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_andamento', $objMetaBD->tipoNumero(11), $SNULLO); - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_atividade_expedicao', $objMetaBD->tipoTextoVariavel(4000), $SNULLO); - $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'tentativas', $objMetaBD->tipoNumero(), $SNULLO); + // Adicionar campos extrar para a tabela md_pen_bloco_processo + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_protocolo', $objMetaBD->tipoNumeroGrande(10), PenMetaBD::NNULLO); + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_bloco', $objMetaBD->tipoNumero(10), PenMetaBD::NNULLO); + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'sequencia', $objMetaBD->tipoNumero(10), $SNULLO); + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_andamento', $objMetaBD->tipoNumero(11), $SNULLO); + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'id_atividade_expedicao', $objMetaBD->tipoTextoVariavel(4000), $SNULLO); + $objMetaBD->adicionarColuna('md_pen_bloco_processo', 'tentativas', $objMetaBD->tipoNumero(), $SNULLO); - $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_proc_procedi", "md_pen_bloco_processo", array('id_protocolo'), "protocolo", array('id_protocolo'), false); - $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_processo_bl", "md_pen_bloco_processo", array('id_bloco'), "md_pen_bloco", array('id'), false); + $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_proc_procedi", "md_pen_bloco_processo", ['id_protocolo'], "protocolo", ['id_protocolo'], false); + $objMetaBD->adicionarChaveEstrangeira("fk_md_pen_bloco_processo_bl", "md_pen_bloco_processo", ['id_bloco'], "md_pen_bloco", ['id'], false); - //Adicionar coluna para ordenar blocos por unidade - $objMetaBD->adicionarColuna('md_pen_bloco', 'ordem', $objMetaBD->tipoNumero(10), PenMetaBD::NNULLO); + //Adicionar coluna para ordenar blocos por unidade + $objMetaBD->adicionarColuna('md_pen_bloco', 'ordem', $objMetaBD->tipoNumero(10), PenMetaBD::NNULLO); - $tabelas = ['md_pen_bloco_protocolo', - 'md_pen_seq_bloco_protocolo', - 'md_pen_rel_expedir_lote', - 'md_pen_seq_expedir_lote']; + $tabelas = ['md_pen_bloco_protocolo', + 'md_pen_seq_bloco_protocolo', + 'md_pen_rel_expedir_lote', + 'md_pen_seq_expedir_lote']; - $this->removerTabelas($tabelas); + $this->removerTabelas($tabelas); - // Adicionar agendamento de atualizao de informaes de envio - $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); - $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); - $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasEnvioPEN"); - if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) == 0) { - $strDesc = "Recebe as notificaes de novos trmites de processos/documentos, notificaes de concluso de trmites ou recusas de recebimento de processos por outras instituies. \n\n"; - $strDesc .= "Este agendamento considera os seguintes parmetros durante sua execuo:\n"; - $strDesc .= " - debug: Indica se o log de debug gerado no processamento ser registrado nos logs do sistema (valores: true,false | padro: false)\n"; - $strDesc .= " - workers: Quantidade de processos paralelos que sero abertos para processamento de tarefas (valores: 0-9 | padro: 4)\n"; - $objReceberProcessosPEN->setStrDescricao($strDesc); - $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); - $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); - $objReceberProcessosPEN->setStrSinAtivo("S"); - $objReceberProcessosPEN->setStrSinSucesso("S"); - $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); - } + // Adicionar agendamento de atualizao de informaes de envio + $objInfraAgendamentoTarefaBD = new InfraAgendamentoTarefaBD(BancoSEI::getInstance()); + $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasEnvioPEN"); + if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) == 0) { + $strDesc = "Recebe as notificaes de novos trmites de processos/documentos, notificaes de concluso de trmites ou recusas de recebimento de processos por outras instituies. \n\n"; + $strDesc .= "Este agendamento considera os seguintes parmetros durante sua execuo:\n"; + $strDesc .= " - debug: Indica se o log de debug gerado no processamento ser registrado nos logs do sistema (valores: true,false | padro: false)\n"; + $strDesc .= " - workers: Quantidade de processos paralelos que sero abertos para processamento de tarefas (valores: 0-9 | padro: 4)\n"; + $objReceberProcessosPEN->setStrDescricao($strDesc); + $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); + $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); + $objReceberProcessosPEN->setStrSinAtivo("S"); + $objReceberProcessosPEN->setStrSinSucesso("S"); + $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); + } - $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); - $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasRecebimentoPEN"); - if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) == 0) { + $objReceberProcessosPEN = new InfraAgendamentoTarefaDTO(); $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasRecebimentoPEN"); - $strDesc = "Recebe as notificaes de novos trmites de processos/documentos, notificaes de concluso de trmites ou recusas de recebimento de processos por outras instituies. \n\n"; - $strDesc .= "Este agendamento considera os seguintes parmetros durante sua execuo:\n"; - $strDesc .= " - debug: Indica se o log de debug gerado no processamento ser registrado nos logs do sistema (valores: true,false | padro: false)\n"; - $strDesc .= " - workers: Quantidade de processos paralelos que sero abertos para processamento de tarefas (valores: 0-9 | padro: 4)\n"; - $objReceberProcessosPEN->setStrDescricao($strDesc); - $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); - $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); - $objReceberProcessosPEN->setStrSinAtivo("S"); - $objReceberProcessosPEN->setStrSinSucesso("S"); - $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); - } + if ($objInfraAgendamentoTarefaBD->contar($objReceberProcessosPEN) == 0) { + $objReceberProcessosPEN->setStrComando("PENAgendamentoRN::processarTarefasRecebimentoPEN"); + $strDesc = "Recebe as notificaes de novos trmites de processos/documentos, notificaes de concluso de trmites ou recusas de recebimento de processos por outras instituies. \n\n"; + $strDesc .= "Este agendamento considera os seguintes parmetros durante sua execuo:\n"; + $strDesc .= " - debug: Indica se o log de debug gerado no processamento ser registrado nos logs do sistema (valores: true,false | padro: false)\n"; + $strDesc .= " - workers: Quantidade de processos paralelos que sero abertos para processamento de tarefas (valores: 0-9 | padro: 4)\n"; + $objReceberProcessosPEN->setStrDescricao($strDesc); + $objReceberProcessosPEN->setStrStaPeriodicidadeExecucao("N"); + $objReceberProcessosPEN->setStrPeriodicidadeComplemento("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58"); + $objReceberProcessosPEN->setStrSinAtivo("S"); + $objReceberProcessosPEN->setStrSinSucesso("S"); + $objInfraAgendamentoTarefaBD->cadastrar($objReceberProcessosPEN); + } - $this->atualizarHipotesesLegais(); + $this->atualizarHipotesesLegais(); - $objMetaBD->adicionarColuna('md_pen_envio_comp_digitais', 'str_estrutura_novo', $objMetaBD->tipoTextoVariavel(255), 'null'); - BancoSEI::getInstance()->executarSql("update md_pen_envio_comp_digitais set str_estrutura_novo = str_estrutura"); - $objMetaBD->excluirColuna('md_pen_envio_comp_digitais', 'str_estrutura'); - try { - $objMetaBD->renomearColuna('md_pen_envio_comp_digitais', 'str_estrutura_novo', 'str_estrutura', $objMetaBD->tipoTextoVariavel(255)); - } catch (Exception $e) { - if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { - throw $e; + $objMetaBD->adicionarColuna('md_pen_envio_comp_digitais', 'str_estrutura_novo', $objMetaBD->tipoTextoVariavel(255), 'null'); + BancoSEI::getInstance()->executarSql("update md_pen_envio_comp_digitais set str_estrutura_novo = str_estrutura"); + $objMetaBD->excluirColuna('md_pen_envio_comp_digitais', 'str_estrutura'); + try { + $objMetaBD->renomearColuna('md_pen_envio_comp_digitais', 'str_estrutura_novo', 'str_estrutura', $objMetaBD->tipoTextoVariavel(255)); + } catch (Exception $e) { + if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { + throw $e; + } } - } - $objMetaBD->adicionarColuna('md_pen_envio_comp_digitais', 'str_unidade_pen_novo', $objMetaBD->tipoTextoVariavel(255), 'null'); - BancoSEI::getInstance()->executarSql("update md_pen_envio_comp_digitais set str_unidade_pen_novo = str_unidade_pen"); - $objMetaBD->excluirColuna('md_pen_envio_comp_digitais', 'str_unidade_pen'); - try { - $objMetaBD->renomearColuna('md_pen_envio_comp_digitais', 'str_unidade_pen_novo', 'str_unidade_pen', $objMetaBD->tipoTextoVariavel(255)); - } catch (Exception $e) { - if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { - throw $e; + $objMetaBD->adicionarColuna('md_pen_envio_comp_digitais', 'str_unidade_pen_novo', $objMetaBD->tipoTextoVariavel(255), 'null'); + BancoSEI::getInstance()->executarSql("update md_pen_envio_comp_digitais set str_unidade_pen_novo = str_unidade_pen"); + $objMetaBD->excluirColuna('md_pen_envio_comp_digitais', 'str_unidade_pen'); + try { + $objMetaBD->renomearColuna('md_pen_envio_comp_digitais', 'str_unidade_pen_novo', 'str_unidade_pen', $objMetaBD->tipoTextoVariavel(255)); + } catch (Exception $e) { + if (strpos($e->__toString(), 'Caution: Changing any part of an object name could break scripts and stored procedures.') === false) { + throw $e; + } } - } - $this->atualizarNumeroVersao("3.7.0"); + $this->atualizarNumeroVersao("3.7.0"); + } + + protected function instalarV3080() + { + $this->atualizarNumeroVersao("3.8.0"); + } + + protected function instalarV4000() + { + $this->atualizarNumeroVersao("4.0.0"); } - /** - * Remover blocos legados - * - * @return void - */ + /** + * Remover blocos legados + * + * @return void + */ public function limparBlocos() - { - $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); - $objTramiteEmBlocoDTO->retNumId(); - $objTramiteEmBlocoDTO->retNumIdUnidade(); - $objTramiteEmBlocoDTO->retStrStaEstado(); - - $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); - $arrObjTramiteEmBlocoDTO = $objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO); + { + $objTramiteEmBlocoDTO = new TramiteEmBlocoDTO(); + $objTramiteEmBlocoDTO->retNumId(); + $objTramiteEmBlocoDTO->retNumIdUnidade(); + $objTramiteEmBlocoDTO->retStrStaEstado(); + + $objTramiteEmBlocoRN = new TramiteEmBlocoRN(); + $arrObjTramiteEmBlocoDTO = $objTramiteEmBlocoRN->listar($objTramiteEmBlocoDTO); if (!is_null($arrObjTramiteEmBlocoDTO) && count($arrObjTramiteEmBlocoDTO) > 0) { - $objTramiteEmBlocoRN->excluir($arrObjTramiteEmBlocoDTO); + $objTramiteEmBlocoRN->excluir($arrObjTramiteEmBlocoDTO); } } public function atualizarHipotesesLegais() - { - $penRelHipoteseLegal = new PenRelHipoteseLegalDTO(); - $penRelHipoteseLegal->retDblIdMap(); - $penRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); + { + $penRelHipoteseLegal = new PenRelHipoteseLegalDTO(); + $penRelHipoteseLegal->retDblIdMap(); + $penRelHipoteseLegalRN = new PenRelHipoteseLegalEnvioRN(); if ($penRelHipoteseLegalRN->contar($penRelHipoteseLegal) == 0) { - $hipoteseLegalDTO = new HipoteseLegalDTO(); - $hipoteseLegalDTO->setStrSinAtivo('S'); - $hipoteseLegalDTO->retStrNome(); - $hipoteseLegalDTO->retNumIdHipoteseLegal(); + $hipoteseLegalDTO = new HipoteseLegalDTO(); + $hipoteseLegalDTO->setStrSinAtivo('S'); + $hipoteseLegalDTO->retStrNome(); + $hipoteseLegalDTO->retNumIdHipoteseLegal(); - $hipoteseLegalRN = new HipoteseLegalRN(); - $arrHipoteseLegal = $hipoteseLegalRN->listar($hipoteseLegalDTO); + $hipoteseLegalRN = new HipoteseLegalRN(); + $arrHipoteseLegal = $hipoteseLegalRN->listar($hipoteseLegalDTO); - $penHipoteseLegalRN = new PenHipoteseLegalRN(); + $penHipoteseLegalRN = new PenHipoteseLegalRN(); foreach ($arrHipoteseLegal as $hipoteseLegal) { $penHipoteseLegal = new PenHipoteseLegalDTO(); @@ -3035,34 +2607,35 @@ public function atualizarHipotesesLegais() $penHipoteseLegal = $penHipoteseLegalRN->consultar($penHipoteseLegal); if ($penHipoteseLegal) { - $penRelHipoteseLegal = new PenRelHipoteseLegalDTO(); - $penRelHipoteseLegal->setNumIdHipoteseLegal($hipoteseLegal->getNumIdHipoteseLegal()); - $penRelHipoteseLegal->setNumIdBarramento($penHipoteseLegal->getNumIdHipoteseLegal()); - $penRelHipoteseLegal->retDblIdMap(); - $penRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN(); - $penRelHipoteseLegalRecebimentoRN = new PenRelHipoteseLegalEnvioRN(); - - $penRelHipoteseLegal->setStrTipo('R'); + $penRelHipoteseLegal = new PenRelHipoteseLegalDTO(); + $penRelHipoteseLegal->setNumIdHipoteseLegal($hipoteseLegal->getNumIdHipoteseLegal()); + $penRelHipoteseLegal->setNumIdBarramento($penHipoteseLegal->getNumIdHipoteseLegal()); + $penRelHipoteseLegal->retDblIdMap(); + $penRelHipoteseLegalEnvioRN = new PenRelHipoteseLegalEnvioRN(); + $penRelHipoteseLegalRecebimentoRN = new PenRelHipoteseLegalEnvioRN(); + + $penRelHipoteseLegal->setStrTipo('R'); if (!$penRelHipoteseLegalRecebimentoRN->consultar($penRelHipoteseLegal)) { $penRelHipoteseLegalRecebimentoRN->cadastrar($penRelHipoteseLegal); } - $penRelHipoteseLegal->setStrTipo('E'); + $penRelHipoteseLegal->setStrTipo('E'); if (!$penRelHipoteseLegalEnvioRN->consultar($penRelHipoteseLegal)) { - $penRelHipoteseLegalEnvioRN->cadastrar($penRelHipoteseLegal); + $penRelHipoteseLegalEnvioRN->cadastrar($penRelHipoteseLegal); } } } } } - /** - * Remover tabelas verificando se existe - * @param array $tabelas - * @return void - */ + /** + * Remover tabelas verificando se existe + * + * @param array $tabelas + * @return void + */ private function removerTabelas($tabelas) - { + { foreach($tabelas as $tabela) { if ($this->objMeta->isTabelaExiste($tabela)) { $this->objMeta->removerTabela($tabela); @@ -3072,64 +2645,60 @@ private function removerTabelas($tabelas) } try { - session_start(); + session_start(); if (InfraUtil::compararVersoes(SEI_VERSAO, ">=", "4.0.0")) { - $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); - - SessaoSEI::getInstance(false); - BancoSEI::getInstance()->setBolScript(true); - - $objVersaoSeiRN = new VersaoSei4RN(); - $strNomeParametro = $objVersaoSeiRN->verificarVersaoInstalada(); - $strVersaoModuloPen = $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO, false) ?: $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO, false); - $objVersaoSeiRN->setStrNome('Integrao Tramita GOV.BR'); - $objVersaoSeiRN->setStrVersaoAtual(PENIntegracao::VERSAO_MODULO); - $objVersaoSeiRN->setStrParametroVersao($strNomeParametro); - $objVersaoSeiRN->setArrVersoes(array( - '0.0.0' => 'versao_0_0_0', - $strVersaoModuloPen => 'atualizarVersaoCompatibilidade', - PENIntegracao::VERSAO_MODULO => 'atualizarVersaoCompatibilidade', - )); - - - $objVersaoSeiRN->setStrVersaoInfra("1.583.4"); - $objVersaoSeiRN->setBolMySql(true); - $objVersaoSeiRN->setBolOracle(true); - $objVersaoSeiRN->setBolSqlServer(true); - $objVersaoSeiRN->setBolPostgreSql(true); - $objVersaoSeiRN->setBolErroVersaoInexistente(false); - - $objVersaoSeiRN->atualizarVersao(); + $objInfraParametro = new InfraParametro(BancoSEI::getInstance()); + + SessaoSEI::getInstance(false); + BancoSEI::getInstance()->setBolScript(true); + + $objVersaoSeiRN = new VersaoSei4RN(); + $strNomeParametro = $objVersaoSeiRN->verificarVersaoInstalada(); + $strVersaoModuloPen = $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO, false) ?: $objInfraParametro->getValor(PENIntegracao::PARAMETRO_VERSAO_MODULO_ANTIGO, false); + $objVersaoSeiRN->setStrNome('Integrao Tramita GOV.BR'); + $objVersaoSeiRN->setStrVersaoAtual(PENIntegracao::VERSAO_MODULO); + $objVersaoSeiRN->setStrParametroVersao($strNomeParametro); + $objVersaoSeiRN->setArrVersoes(['0.0.0' => 'versao_0_0_0', $strVersaoModuloPen => 'atualizarVersaoCompatibilidade', PENIntegracao::VERSAO_MODULO => 'atualizarVersaoCompatibilidade']); + + + $objVersaoSeiRN->setStrVersaoInfra("1.583.4"); + $objVersaoSeiRN->setBolMySql(true); + $objVersaoSeiRN->setBolOracle(true); + $objVersaoSeiRN->setBolSqlServer(true); + $objVersaoSeiRN->setBolPostgreSql(true); + $objVersaoSeiRN->setBolErroVersaoInexistente(false); + + $objVersaoSeiRN->atualizarVersao(); } else { - BancoSEI::getInstance()->setBolScript(true); + BancoSEI::getInstance()->setBolScript(true); if (!ConfiguracaoSEI::getInstance()->isSetValor('BancoSEI', 'UsuarioScript')) { - throw new InfraException('Chave BancoSEI/UsuarioScript no encontrada.'); + throw new InfraException('Chave BancoSEI/UsuarioScript no encontrada.'); } if (InfraString::isBolVazia(ConfiguracaoSEI::getInstance()->getValor('BancoSEI', 'UsuarioScript'))) { - throw new InfraException('Chave BancoSEI/UsuarioScript no possui valor.'); + throw new InfraException('Chave BancoSEI/UsuarioScript no possui valor.'); } if (!ConfiguracaoSEI::getInstance()->isSetValor('BancoSEI', 'SenhaScript')) { - throw new InfraException('Chave BancoSEI/SenhaScript no encontrada.'); + throw new InfraException('Chave BancoSEI/SenhaScript no encontrada.'); } if (InfraString::isBolVazia(ConfiguracaoSEI::getInstance()->getValor('BancoSEI', 'SenhaScript'))) { - throw new InfraException('Chave BancoSEI/SenhaScript no possui valor.'); + throw new InfraException('Chave BancoSEI/SenhaScript no possui valor.'); } - $objAtualizarRN = new PenAtualizarSeiRN(); - $objAtualizarRN->atualizarVersao(); + $objAtualizarRN = new PenAtualizarSeiRN(); + $objAtualizarRN->atualizarVersao(); } - exit(0); + exit(0); } catch (Exception $e) { - echo (InfraException::inspecionar($e)); + echo (InfraException::inspecionar($e)); try { - LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); + LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); } catch (Exception $e) { } - exit(1); + exit(1); } \ No newline at end of file diff --git a/src/scripts/sip_atualizar_versao_modulo_pen.php b/src/scripts/sip_atualizar_versao_modulo_pen.php index dc2692ba4..2801d01f4 100755 --- a/src/scripts/sip_atualizar_versao_modulo_pen.php +++ b/src/scripts/sip_atualizar_versao_modulo_pen.php @@ -1,7 +1,7 @@ <?php // Identificao da verso do mdulo mod-sei-pen. Este deve estar sempre sincronizado com a verso definida em PENIntegracao.php -define("VERSAO_MODULO_PEN", "3.7.0"); +define("VERSAO_MODULO_PEN", "4.0.0"); $dirSipWeb = !defined("DIR_SIP_WEB") ? getenv("DIR_SIP_WEB") ?: __DIR__ . "/../../web" : DIR_SIP_WEB; require_once $dirSipWeb . '/Sip.php'; @@ -56,8 +56,8 @@ class PenAtualizarSipRN extends InfraRN const PARAMETRO_VERSAO_MODULO = 'VERSAO_MODULO_PEN'; protected $versaoMinRequirida = '1.30.0'; - private $arrRecurso = array(); - private $arrMenu = array(); + private $arrRecurso = []; + private $arrMenu = []; public function __construct() { @@ -71,8 +71,6 @@ protected function inicializarObjInfraIBanco() /** * Inicia o script criando um contator interno do tempo de execuo - * - * @return null */ protected function inicializar($strTitulo) { @@ -92,11 +90,10 @@ protected function atualizarVersaoConectado() $this->inicializar('INICIANDO ATUALIZACAO DO MODULO TRAMITA GOV.BR NO SIP VERSAO'); //testando se esta usando BDs suportados - if ( - !(BancoSip::getInstance() instanceof InfraMySql) && - !(BancoSip::getInstance() instanceof InfraSqlServer) && - !(BancoSip::getInstance() instanceof InfraOracle) && - !(BancoSip::getInstance() instanceof InfraPostgreSql) + if (!(BancoSip::getInstance() instanceof InfraMySql) + && !(BancoSip::getInstance() instanceof InfraSqlServer) + && !(BancoSip::getInstance() instanceof InfraOracle) + && !(BancoSip::getInstance() instanceof InfraPostgreSql) ) { $this->finalizar('BANCO DE DADOS NAO SUPORTADO: ' . get_parent_class(BancoSip::getInstance()), true); @@ -116,7 +113,7 @@ protected function atualizarVersaoConectado() // Aplicao de scripts de atualizao de forma incremental // Ausncia de [break;] proposital para realizar a atualizao incremental de verses $strVersaoModuloPen = $objInfraParametro->getValor(self::PARAMETRO_VERSAO_MODULO, false) ?: $objInfraParametro->getValor(self::PARAMETRO_VERSAO_MODULO_ANTIGO, false); - // phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment + // phpcs:disable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment switch ($strVersaoModuloPen) { case '': //case '' - Nenhuma verso instalada case '0.0.0': @@ -300,13 +297,17 @@ protected function atualizarVersaoConectado() $this->instalarV3062(); case '3.6.2': $this->instalarV3070(); + case '3.7.0': + $this->instalarV3080(); + case '3.8.0': + $this->instalarV4000(); break; // Ausncia de [break;] proposital para realizar a atualizao incremental de verses default: $this->finalizar('VERSAO DO MDULO J CONSTA COMO ATUALIZADA'); return; } - // phpcs:enable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment + // phpcs:enable PSR2.ControlStructures.SwitchDeclaration.TerminatingComment $this->finalizar('FIM'); @@ -323,8 +324,6 @@ protected function atualizarVersaoConectado() /** * Finaliza o script informando o tempo de execuo. - * - * @return null */ protected function finalizar($strMsg = null, $bolErro = false) { @@ -347,8 +346,6 @@ protected function finalizar($strMsg = null, $bolErro = false) /** * Adiciona uma mensagem ao output para o usurio - * - * @return null */ protected function logar($strMsg) { @@ -399,6 +396,7 @@ protected function getNumIdMenu($strMenu = 'Principal', $numIdSistema = 0) /** * Cria novo recurso no SIP + * * @return int Cdigo do Recurso gerado */ protected function criarRecurso($strNome, $strDescricao, $numIdSistema) @@ -470,24 +468,24 @@ protected function consultarRecurso($numIdSistema, $strNomeRecurso) } protected function consultarItemMenu($numIdSistema, $strNomeRecurso) - { - $numIdRecurso = $this->consultarRecurso($numIdSistema, $strNomeRecurso); + { + $numIdRecurso = $this->consultarRecurso($numIdSistema, $strNomeRecurso); - $objItemMenuDTO = new ItemMenuDTO(); - $objItemMenuDTO->setBolExclusaoLogica(false); - $objItemMenuDTO->setNumIdSistema($numIdSistema); - $objItemMenuDTO->setNumIdRecurso($numIdRecurso); - $objItemMenuDTO->retNumIdMenu(); - $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setBolExclusaoLogica(false); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdRecurso($numIdRecurso); + $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO->retNumIdItemMenu(); - $objItemMenuRN = new ItemMenuRN(); - $objItemMenuDTO = $objItemMenuRN->consultar($objItemMenuDTO); + $objItemMenuRN = new ItemMenuRN(); + $objItemMenuDTO = $objItemMenuRN->consultar($objItemMenuDTO); - if ($objItemMenuDTO == null){ - throw new InfraException("Item de menu no pode ser localizado."); + if ($objItemMenuDTO == null) { + throw new InfraException("Item de menu no pode ser localizado."); } - return array($objItemMenuDTO->getNumIdItemMenu(), $objItemMenuDTO->getNumIdMenu(), $numIdRecurso); + return [$objItemMenuDTO->getNumIdItemMenu(), $objItemMenuDTO->getNumIdMenu(), $numIdRecurso]; } /** * Cria um novo menu lateral para o sistema SEI @@ -525,7 +523,7 @@ protected function criarMenu($strRotulo, $numSequencia, $numIdItemMenuPai, $numI } if (!empty($numIdRecurso)) { - $this->arrMenu[] = array($objDTO->getNumIdItemMenu(), $numIdMenu, $numIdRecurso); + $this->arrMenu[] = [$objDTO->getNumIdItemMenu(), $numIdMenu, $numIdRecurso]; } return $objDTO->getNumIdItemMenu(); @@ -565,7 +563,7 @@ public function addMenusToPerfil($numIdPerfil, $numIdSistema) foreach ($this->arrMenu as $array) { - list($numIdItemMenu, $numIdMenu, $numIdRecurso) = $array; + [$numIdItemMenu, $numIdMenu, $numIdRecurso] = $array; $objDTO->setNumIdPerfil($numIdPerfil); $objDTO->setNumIdSistema($numIdSistema); @@ -587,7 +585,7 @@ public function atribuirPerfil($numIdSistema) $objRN = $this; // Vincula a um perfil os recursos e menus adicionados nos mtodos criarMenu e criarReturso - $fnCadastrar = function ($strNome, $numIdSistema) use ($objDTO, $objBD, $objRN) { + $fnCadastrar = function ($strNome, $numIdSistema) use ($objDTO, $objBD, $objRN): void { $objDTO->unSetTodos(); $objDTO->setNumIdSistema($numIdSistema); @@ -610,13 +608,13 @@ public function atribuirPerfil($numIdSistema) /** * Atualiza o nmero de verso do mdulo nas tabelas de parmetro do sistema * - * @param string $parStrNumeroVersao + * @param string $parStrNumeroVersao * @return void */ private function atualizarNumeroVersao($parStrNumeroVersao) { $objInfraParametroDTO = new InfraParametroDTO(); - $objInfraParametroDTO->setStrNome(array(self::PARAMETRO_VERSAO_MODULO, self::PARAMETRO_VERSAO_MODULO_ANTIGO), InfraDTO::$OPER_IN); + $objInfraParametroDTO->setStrNome([self::PARAMETRO_VERSAO_MODULO, self::PARAMETRO_VERSAO_MODULO_ANTIGO], InfraDTO::$OPER_IN); $objInfraParametroDTO->retTodos(); $objInfraParametroBD = new InfraParametroBD(BancoSip::getInstance()); $arrObjInfraParametroDTO = $objInfraParametroBD->listar($objInfraParametroDTO); @@ -1163,14 +1161,7 @@ private function instalarV111() $this->renomearRecurso($numIdSistema, 'apensados_selecionar_expedir_procedimento', 'pen_apensados_selecionar_expedir_procedimento'); //Atualizao com recursos no adicionados automaticamente em verses anteriores - $this->arrRecurso = array_merge($this->arrRecurso, array( - $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_envio_alterar"), - $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_envio_excluir"), - $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_recebimento_alterar"), - $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_recebimento_excluir"), - $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_recebimento_visualizar"), - $this->consultarRecurso($numIdSistema, "pen_parametros_configuracao_alterar") - )); + $this->arrRecurso = array_merge($this->arrRecurso, [$this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_envio_alterar"), $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_envio_excluir"), $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_recebimento_alterar"), $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_recebimento_excluir"), $this->consultarRecurso($numIdSistema, "pen_map_tipo_documento_recebimento_visualizar"), $this->consultarRecurso($numIdSistema, "pen_parametros_configuracao_alterar")]); $this->atribuirPerfil($numIdSistema); @@ -1190,10 +1181,7 @@ private function instalarV111() $objRelPerfilRecursoDTO->retTodos(); $objRelPerfilRecursoDTO->setNumIdSistema($numIdSistema); $objRelPerfilRecursoDTO->setNumIdPerfil($numIdPerfilSeiAdministrador); - $arrRecursosRemoverAdministrador = array( - $this->consultarRecurso($numIdSistema, "pen_procedimento_expedido_listar"), - $this->consultarRecurso($numIdSistema, "pen_procedimento_expedir"), - ); + $arrRecursosRemoverAdministrador = [$this->consultarRecurso($numIdSistema, "pen_procedimento_expedido_listar"), $this->consultarRecurso($numIdSistema, "pen_procedimento_expedir")]; $objRelPerfilRecursoDTO->setNumIdRecurso($arrRecursosRemoverAdministrador, InfraDTO::$OPER_IN); $objRelPerfilRecursoRN = new RelPerfilRecursoRN(); $objRelPerfilRecursoRN->excluir($objRelPerfilRecursoRN->listar($objRelPerfilRecursoDTO)); @@ -1209,7 +1197,7 @@ private function instalarV119() { /* Corrige nome de menu de trmite de documentos */ $numIdSistema = $this->getNumIdSistema('SEI'); - $numIdMenuPai = $this->getNumIdMenu('Principal', $numIdSistema); + $this->getNumIdMenu('Principal', $numIdSistema); //Corrige nome do recurso $objRecursoDTO = new RecursoDTO(); @@ -1490,29 +1478,26 @@ private function instalarV2000_beta1() ScriptSip::adicionarItemMenu($numIdSistemaSei, $numIdPerfilSeiAdministrador, $numIdMenuSEI, $numIdItemMenuMapeamento, $numIdRecursoMapRecebimentoListar, "Recebimento", 20); // Redefinir ordem de apresentao dos menus de administrao do mdulo - $arrOrdemMenusAdministracaoPEN = array( - array("rotulo" => "Parmetros de Configurao", "sequencia" => 10, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"), - array("rotulo" => "Mapeamento de Tipos de Documentos", "sequencia" => 20, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"), - array("rotulo" => "Mapeamento de Unidades", "sequencia" => 30, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"), - array("rotulo" => "Mapeamento de Hipteses Legais", "sequencia" => 40, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"), + $arrOrdemMenusAdministracaoPEN = [["rotulo" => "Parmetros de Configurao", "sequencia" => 10, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"], ["rotulo" => "Mapeamento de Tipos de Documentos", "sequencia" => 20, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"], ["rotulo" => "Mapeamento de Unidades", "sequencia" => 30, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"], ["rotulo" => "Mapeamento de Hipteses Legais", "sequencia" => 40, "rotuloMenuSuperior" => "Processo Eletrnico Nacional"]]; + + array_map( + function ($item) use ($numIdSistemaSei, $numIdMenuSEI): void { + $objItemMenuRN = new ItemMenuRN(); + $numIdItemMenuPai = ScriptSip::obterIdItemMenu($numIdSistemaSei, $numIdMenuSEI, $item["rotuloMenuSuperior"]); + + // Obtm id do item de menu, baseado no sistema, rtulo e, principalmente, ID DO ITEM SUPERIOR + $numIdItemMenu = $this->obterIdItemMenu($numIdSistemaSei, $numIdMenuSEI, $numIdItemMenuPai, $item["rotulo"]); + if (isset($numIdItemMenu)) { + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdMenu($numIdMenuSEI); + $objItemMenuDTO->setNumIdItemMenu($numIdItemMenu); + $objItemMenuDTO->setNumIdItemMenuPai($numIdItemMenuPai); + $objItemMenuDTO->setNumSequencia($item["sequencia"]); + $objItemMenuRN->alterar($objItemMenuDTO); + } + }, $arrOrdemMenusAdministracaoPEN ); - array_map(function ($item) use ($numIdSistemaSei, $numIdMenuSEI) { - $objItemMenuRN = new ItemMenuRN(); - $numIdItemMenuPai = ScriptSip::obterIdItemMenu($numIdSistemaSei, $numIdMenuSEI, $item["rotuloMenuSuperior"]); - - // Obtm id do item de menu, baseado no sistema, rtulo e, principalmente, ID DO ITEM SUPERIOR - $numIdItemMenu = $this->obterIdItemMenu($numIdSistemaSei, $numIdMenuSEI, $numIdItemMenuPai, $item["rotulo"]); - if (isset($numIdItemMenu)) { - $objItemMenuDTO = new ItemMenuDTO(); - $objItemMenuDTO->setNumIdMenu($numIdMenuSEI); - $objItemMenuDTO->setNumIdItemMenu($numIdItemMenu); - $objItemMenuDTO->setNumIdItemMenuPai($numIdItemMenuPai); - $objItemMenuDTO->setNumSequencia($item["sequencia"]); - $objItemMenuRN->alterar($objItemMenuDTO); - } - }, $arrOrdemMenusAdministracaoPEN); - $this->logar('Atribuio de permisses do mdulo ao perfil Bsico do SEI'); $strNomeMenuProcessosTramitados = "Processos Tramitados Externamente"; @@ -1740,7 +1725,7 @@ protected function instalarV30112() protected function instalarV30113() { - $atualizarIconeMenu = function ($numIdSistema, $numIdMenuPai, $strNomeRecurso, $strIcone, $numSequencia) { + $atualizarIconeMenu = function ($numIdSistema, $numIdMenuPai, $strNomeRecurso, $strIcone, $numSequencia): void { $objRecursoDTO = new RecursoDTO(); $objRecursoDTO->setNumIdSistema($numIdSistema); $objRecursoDTO->setStrNome($strNomeRecurso); @@ -1852,187 +1837,187 @@ protected function instalarV3024() } protected function instalarV3030() - { + { $this->atualizarNumeroVersao("3.3.0"); } protected function instalarV3031() - { + { $this->atualizarNumeroVersao("3.3.1"); } protected function instalarV3032() - { + { $this->atualizarNumeroVersao("3.3.2"); } protected function instalarV3040() - { + { $this->atualizarNumeroVersao("3.4.0"); } protected function instalarV3050() - { - /* Corrige nome de menu de trmite de documentos */ - $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + { + /* Corrige nome de menu de trmite de documentos */ + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); - $numIdSistema = $this->getNumIdSistema('SEI'); - $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); - $objItemMenuDTO = new ItemMenuDTO(); - $objItemMenuDTO->setNumIdSistema($numIdSistema); - $objItemMenuDTO->setNumIdMenu($numIdMenu); - $objItemMenuDTO->setStrRotulo('Processo Eletrnico Nacional'); - $objItemMenuDTO->setNumMaxRegistrosRetorno(1); - $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setStrRotulo('Processo Eletrnico Nacional'); + $objItemMenuDTO->setNumMaxRegistrosRetorno(1); + $objItemMenuDTO->retNumIdItemMenu(); - $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); if (empty($objItemMenuDTO)) { - throw new InfraException('Menu "Processo Eletrnico Nacional" no foi localizado'); + throw new InfraException('Menu "Processo Eletrnico Nacional" no foi localizado'); } - // Adicionar submenu - $this->logar('Atribuio de permisses do mdulo ao perfil do SEI'); - - $this->criarRecurso('pen_map_orgaos_externos_salvar', 'Salvar relacionamento entre unidades', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_excluir', 'Excluir relacionamento entre unidades', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_cadastrar', 'Cadastro de relacionamento entre unidades', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_desativar', 'Desativar relacionamento entre unidades', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_reativar', 'Reativar relacionamento entre unidades', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_mapeamento', 'Mapeamento de tipo de processo', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_mapeamento_excluir', 'Excluir mapeamento de tipo de processo', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_atualizar', 'Atualizar relacionamento entre unidades', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_externos_visualizar', 'Visualizar relacionamento entre unidades', $numIdSistema); - $this->criarRecurso('pen_map_orgaos_importar_tipos_processos', 'Importar tipos de processo', $numIdSistema); - $this->criarRecurso('pen_map_tipo_processo_padrao', 'Consultar tipo de processo padro', $numIdSistema); - $this->criarRecurso('pen_map_tipo_processo_padrao_salvar', 'Cadastrar tipo de processo padro', $numIdSistema); - - $numIdRecursoListar = $this->criarRecurso('pen_map_orgaos_externos_listar', 'Listagem de relacionamento entre unidades', $numIdSistema); - $numIdRecursoExportar = $this->criarRecurso('pen_map_orgaos_exportar_tipos_processos', 'Exportar tipos de processo', $numIdSistema); - $numIdRecursoReativar = $this->criarRecurso('pen_map_tipo_processo_reativar', 'Reativar mapeamento de tipo de processo', $numIdSistema); - - $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_listar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_salvar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_excluir'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_cadastrar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_atualizar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_visualizar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_desativar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_reativar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_importar_tipos_processos'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_exportar_tipos_processos'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_mapeamento'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_mapeamento_excluir'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_tipo_processo_padrao'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_tipo_processo_padrao_salvar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_tipo_processo_reativar'); - - // Administrao > Processo Eletrnico Nacional > Mapeamento de Tipos de Processo - $numIdItemMenu = $this->criarMenu('Mapeamento de Tipos de Processo', 40, $objItemMenuDTO->getNumIdItemMenu(), $numIdMenu, null, $numIdSistema); - - // Administrao > Processo Eletrnico Nacional > rgos Externos > Listar - $numIdItemMenuRecuso = $this->criarMenu('Relacionamento entre Unidades', 20, $numIdItemMenu, $numIdMenu, $numIdRecursoListar, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($numIdPerfilSeiAdministrador, $numIdRecursoListar, $numIdMenu, $numIdItemMenuRecuso); - - // Administrao > Processo Eletrnico Nacional > rgos Externos > Exportar Tipo de Processo - $numIdItemMenuRecuso = $this->criarMenu('Exportao de Tipos de Processo', 21, $numIdItemMenu, $numIdMenu, $numIdRecursoExportar, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($numIdPerfilSeiAdministrador, $numIdRecursoExportar, $numIdMenu, $numIdItemMenuRecuso); - - // Administrao > Processo Eletrnico Nacional > rgos Externos > Reativar Tipo de Processo - $numIdItemMenuRecuso = $this->criarMenu('Reativar Mapeamento de Tipos de Processo', 22, $numIdItemMenu, $numIdMenu, $numIdRecursoReativar, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($numIdPerfilSeiAdministrador, $numIdRecursoReativar, $numIdMenu, $numIdItemMenuRecuso); - - // Nova verso - $this->atualizarNumeroVersao("3.5.0"); + // Adicionar submenu + $this->logar('Atribuio de permisses do mdulo ao perfil do SEI'); + + $this->criarRecurso('pen_map_orgaos_externos_salvar', 'Salvar relacionamento entre unidades', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_excluir', 'Excluir relacionamento entre unidades', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_cadastrar', 'Cadastro de relacionamento entre unidades', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_desativar', 'Desativar relacionamento entre unidades', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_reativar', 'Reativar relacionamento entre unidades', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_mapeamento', 'Mapeamento de tipo de processo', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_mapeamento_excluir', 'Excluir mapeamento de tipo de processo', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_atualizar', 'Atualizar relacionamento entre unidades', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_externos_visualizar', 'Visualizar relacionamento entre unidades', $numIdSistema); + $this->criarRecurso('pen_map_orgaos_importar_tipos_processos', 'Importar tipos de processo', $numIdSistema); + $this->criarRecurso('pen_map_tipo_processo_padrao', 'Consultar tipo de processo padro', $numIdSistema); + $this->criarRecurso('pen_map_tipo_processo_padrao_salvar', 'Cadastrar tipo de processo padro', $numIdSistema); + + $numIdRecursoListar = $this->criarRecurso('pen_map_orgaos_externos_listar', 'Listagem de relacionamento entre unidades', $numIdSistema); + $numIdRecursoExportar = $this->criarRecurso('pen_map_orgaos_exportar_tipos_processos', 'Exportar tipos de processo', $numIdSistema); + $numIdRecursoReativar = $this->criarRecurso('pen_map_tipo_processo_reativar', 'Reativar mapeamento de tipo de processo', $numIdSistema); + + $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_salvar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_excluir'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_cadastrar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_atualizar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_visualizar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_desativar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_reativar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_importar_tipos_processos'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_exportar_tipos_processos'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_mapeamento'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_orgaos_externos_mapeamento_excluir'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_tipo_processo_padrao'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_tipo_processo_padrao_salvar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $numIdPerfilSeiAdministrador, 'pen_map_tipo_processo_reativar'); + + // Administrao > Processo Eletrnico Nacional > Mapeamento de Tipos de Processo + $numIdItemMenu = $this->criarMenu('Mapeamento de Tipos de Processo', 40, $objItemMenuDTO->getNumIdItemMenu(), $numIdMenu, null, $numIdSistema); + + // Administrao > Processo Eletrnico Nacional > rgos Externos > Listar + $numIdItemMenuRecuso = $this->criarMenu('Relacionamento entre Unidades', 20, $numIdItemMenu, $numIdMenu, $numIdRecursoListar, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($numIdPerfilSeiAdministrador, $numIdRecursoListar, $numIdMenu, $numIdItemMenuRecuso); + + // Administrao > Processo Eletrnico Nacional > rgos Externos > Exportar Tipo de Processo + $numIdItemMenuRecuso = $this->criarMenu('Exportao de Tipos de Processo', 21, $numIdItemMenu, $numIdMenu, $numIdRecursoExportar, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($numIdPerfilSeiAdministrador, $numIdRecursoExportar, $numIdMenu, $numIdItemMenuRecuso); + + // Administrao > Processo Eletrnico Nacional > rgos Externos > Reativar Tipo de Processo + $numIdItemMenuRecuso = $this->criarMenu('Reativar Mapeamento de Tipos de Processo', 22, $numIdItemMenu, $numIdMenu, $numIdRecursoReativar, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($numIdPerfilSeiAdministrador, $numIdRecursoReativar, $numIdMenu, $numIdItemMenuRecuso); + + // Nova verso + $this->atualizarNumeroVersao("3.5.0"); } protected function instalarV3060() - { + { - $numIdSistema = $this->getNumIdSistema('SEI'); - $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); - $objItemMenuDTO = new ItemMenuDTO(); - $objItemMenuDTO->setNumIdMenu($numIdMenu); - $objItemMenuDTO->setNumIdSistema($numIdSistema); - $objItemMenuDTO->setStrRotulo('Processo Eletrnico Nacional'); - $objItemMenuDTO->retNumIdMenu(); - $objItemMenuDTO->retNumIdItemMenu(); - $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); - $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setStrRotulo('Processo Eletrnico Nacional'); + $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); - $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); - $objItemMenuDTO = $objItemMenuBD->alterar($objItemMenuDTO); + $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); + $objItemMenuDTO = $objItemMenuBD->alterar($objItemMenuDTO); - // adicionar permisso - $idPerfilAdm = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); - $idPerfilBasico = ScriptSip::obterIdPerfil($numIdSistema, "Bsico"); + // adicionar permisso + $idPerfilAdm = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); + $idPerfilBasico = ScriptSip::obterIdPerfil($numIdSistema, "Bsico"); - // Adicionar menu - $this->logar('Atribuio de permisses do mdulo ao perfil do SEI'); + // Adicionar menu + $this->logar('Atribuio de permisses do mdulo ao perfil do SEI'); try { - // Remove item de menu anterior e seus submenus configurados de forma errada - $numIdItemMenuMapTipDoc = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados Externamente'); - ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenuMapTipDoc); + // Remove item de menu anterior e seus submenus configurados de forma errada + $numIdItemMenuMapTipDoc = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados Externamente'); + ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenuMapTipDoc); - $numIdItemMenuMapTipDoc = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados em Lote'); - ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenuMapTipDoc); + $numIdItemMenuMapTipDoc = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados em Lote'); + ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenuMapTipDoc); } catch (\Exception $e) { - $this->logar("Item de menu de mapeamento de tipos de documentos no pode ser localizado"); + $this->logar("Item de menu de mapeamento de tipos de documentos no pode ser localizado"); } - //---------------------------------------------------------------------- - // Tramita.GOV.BR - //---------------------------------------------------------------------- - $numIdRecurso1 = $this->criarRecurso('pen_procedimento_expedido_listar', 'Tramita GOV.BR', $numIdSistema); - $numIdRecurso2 = $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trmite Externo', $numIdSistema); - $numIdRecurso3 = $this->criarRecurso('pen_procedimento_expedido_listar', 'Processos Tramitados Externamente', $numIdSistema); - $numIdRecurso4 = $this->criarRecurso('pen_expedir_lote_listar', 'Processos Tramitados em Bloco', $numIdSistema); + //---------------------------------------------------------------------- + // Tramita.GOV.BR + //---------------------------------------------------------------------- + $numIdRecurso1 = $this->criarRecurso('pen_procedimento_expedido_listar', 'Tramita GOV.BR', $numIdSistema); + $numIdRecurso2 = $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trmite Externo', $numIdSistema); + $numIdRecurso3 = $this->criarRecurso('pen_procedimento_expedido_listar', 'Processos Tramitados Externamente', $numIdSistema); + $this->criarRecurso('pen_expedir_lote_listar', 'Processos Tramitados em Bloco', $numIdSistema); - $this->criarRecurso('md_pen_tramita_em_bloco_cadastrar', 'Cadastrar Bloco de Tramite Externo', $numIdSistema); - $this->criarRecurso('md_pen_tramita_em_bloco_alterar', 'Alterar Descrio do bloco de Tramite Externo', $numIdSistema); - $this->criarRecurso('md_pen_tramita_em_bloco_excluir', 'Excluir processos do bloco de Tramite Externo', $numIdSistema); - $this->criarRecurso('pen_tramite_em_bloco_consultar', 'Alterar Descrio do bloco de Tramite Externo', $numIdSistema); - $this->criarRecurso('pen_tramita_em_bloco_protocolo_listar', 'Listar Processos do bloco de Tramite Externo', $numIdSistema); - $this->criarRecurso('pen_tramita_em_bloco_protocolo_excluir', 'Excluir processos do bloco de Tramite Externo', $numIdSistema); - $this->criarRecurso('pen_tramita_em_bloco_protocolo_cancelar', 'Cancelar processos do bloco de Tramite Externo', $numIdSistema); - - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilAdm, 'pen_procedimento_expedido_listar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilAdm, 'md_pen_tramita_em_bloco'); - - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilAdm, 'pen_expedir_lote_listar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'md_pen_tramita_em_bloco'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'md_pen_tramita_em_bloco_excluir'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_cadastrar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_alterar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_consultar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_cancelar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramita_em_bloco_protocolo_listar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramita_em_bloco_protocolo_excluir'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramita_em_bloco_protocolo_cancelar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_incluir_processo_em_bloco_tramite'); - - $idMenuTramita = $this->criarMenu('Tramita GOV.BR', 55, null, $numIdMenu, $numIdRecurso1, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($idPerfilAdm, $numIdRecurso1, $numIdMenu, $idMenuTramita); - - $idMenuBlocoTramiteExterno = $this->criarMenu('Blocos de Trmite Externo', 56, $idMenuTramita, $numIdMenu, $numIdRecurso2, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($idPerfilAdm, $numIdRecurso2, $numIdMenu, $idMenuBlocoTramiteExterno); - - $idMenuProcessoTramitadosExterno = $this->criarMenu('Processos Tramitados Externamente', 57, $idMenuTramita, $numIdMenu, $numIdRecurso3, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($idPerfilAdm, $numIdRecurso3, $numIdMenu, $idMenuProcessoTramitadosExterno); + $this->criarRecurso('md_pen_tramita_em_bloco_cadastrar', 'Cadastrar Bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('md_pen_tramita_em_bloco_alterar', 'Alterar Descrio do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('md_pen_tramita_em_bloco_excluir', 'Excluir processos do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramite_em_bloco_consultar', 'Alterar Descrio do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramita_em_bloco_protocolo_listar', 'Listar Processos do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramita_em_bloco_protocolo_excluir', 'Excluir processos do bloco de Tramite Externo', $numIdSistema); + $this->criarRecurso('pen_tramita_em_bloco_protocolo_cancelar', 'Cancelar processos do bloco de Tramite Externo', $numIdSistema); + + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilAdm, 'pen_procedimento_expedido_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilAdm, 'md_pen_tramita_em_bloco'); + + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilAdm, 'pen_expedir_lote_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'md_pen_tramita_em_bloco'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'md_pen_tramita_em_bloco_excluir'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_cadastrar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_alterar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_consultar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramite_em_bloco_cancelar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramita_em_bloco_protocolo_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramita_em_bloco_protocolo_excluir'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_tramita_em_bloco_protocolo_cancelar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_incluir_processo_em_bloco_tramite'); + + $idMenuTramita = $this->criarMenu('Tramita GOV.BR', 55, null, $numIdMenu, $numIdRecurso1, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($idPerfilAdm, $numIdRecurso1, $numIdMenu, $idMenuTramita); + + $idMenuBlocoTramiteExterno = $this->criarMenu('Blocos de Trmite Externo', 56, $idMenuTramita, $numIdMenu, $numIdRecurso2, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($idPerfilAdm, $numIdRecurso2, $numIdMenu, $idMenuBlocoTramiteExterno); + + $idMenuProcessoTramitadosExterno = $this->criarMenu('Processos Tramitados Externamente', 57, $idMenuTramita, $numIdMenu, $numIdRecurso3, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($idPerfilAdm, $numIdRecurso3, $numIdMenu, $idMenuProcessoTramitadosExterno); if (InfraUtil::compararVersoes(SIP_VERSAO, ">=", "3.0.0")) { - $objItemMenuDTO = new ItemMenuDTO(); - $objItemMenuDTO->setNumIdItemMenu($idMenuTramita); - $objItemMenuDTO->setNumIdSistema($numIdSistema); - $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); - $objItemMenuDTO->retNumIdMenu(); - $objItemMenuDTO->retNumIdItemMenu(); - $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); - $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdItemMenu($idMenuTramita); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); + $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); if (isset($objItemMenuDTO)) { $objItemMenuDTO->setStrIcone('pen_tramite_externo_lote.svg'); @@ -2042,175 +2027,185 @@ protected function instalarV3060() } - /* Corrige nome de menu de trâmite de documentos */ - $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); - $numIdSistema = $this->getNumIdSistema('SEI'); - $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); - $objItemMenuDTO = new ItemMenuDTO(); - $objItemMenuDTO->setNumIdSistema($numIdSistema); - $objItemMenuDTO->setNumIdMenu($numIdMenu); - $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); - $objItemMenuDTO->setNumMaxRegistrosRetorno(1); - $objItemMenuDTO->retNumIdItemMenu(); - $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + /* Corrige nome de menu de trâmite de documentos */ + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); + $objItemMenuDTO->setNumMaxRegistrosRetorno(1); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); if (empty($objItemMenuDTO)) { - throw new InfraException('Menu "Tramita GOV.BR" no foi localizado'); + throw new InfraException('Menu "Tramita GOV.BR" no foi localizado'); } - // Adicionar item de menu Mapeamento de Envio Parcial - $this->logar('Atribuio de permisses do mdulo ao perfil do SEI'); + // Adicionar item de menu Mapeamento de Envio Parcial + $this->logar('Atribuio de permisses do mdulo ao perfil do SEI'); - $this->criarMenu('Mapeamento de Envio Parcial', 90, $objItemMenuDTO->getNumIdItemMenu(), $numIdMenu, $numIdRecurso, $numIdSistema); - $numIdRecurso = $this->criarRecurso('pen_map_envio_parcial_listar', 'Mapeamento de Envio Parcial', $numIdSistema); + $this->criarMenu('Mapeamento de Envio Parcial', 90, $objItemMenuDTO->getNumIdItemMenu(), $numIdMenu, $numIdRecurso, $numIdSistema); + $numIdRecurso = $this->criarRecurso('pen_map_envio_parcial_listar', 'Mapeamento de Envio Parcial', $numIdSistema); - $this->criarRecurso('pen_map_envio_parcial_salvar', 'Salvar Mapeamento de Envio Parcial', $numIdSistema); - $this->criarRecurso('pen_map_envio_parcial_excluir', 'Excluir Mapeamento de Envio Parcial', $numIdSistema); - $this->criarRecurso('pen_map_envio_parcial_cadastrar', 'Cadastro de Mapeamento de Envio Parcial', $numIdSistema); - $this->criarRecurso('pen_map_envio_parcial_atualizar', 'Atualizar Mapeamento de Envio Parcial', $numIdSistema); - $this->criarRecurso('pen_map_envio_parcial_visualizar', 'Visualizar Mapeamento de Envio Parcial', $numIdSistema); + $this->criarRecurso('pen_map_envio_parcial_salvar', 'Salvar Mapeamento de Envio Parcial', $numIdSistema); + $this->criarRecurso('pen_map_envio_parcial_excluir', 'Excluir Mapeamento de Envio Parcial', $numIdSistema); + $this->criarRecurso('pen_map_envio_parcial_cadastrar', 'Cadastro de Mapeamento de Envio Parcial', $numIdSistema); + $this->criarRecurso('pen_map_envio_parcial_atualizar', 'Atualizar Mapeamento de Envio Parcial', $numIdSistema); + $this->criarRecurso('pen_map_envio_parcial_visualizar', 'Visualizar Mapeamento de Envio Parcial', $numIdSistema); - $numIdSistemaSei = $this->getNumIdSistema('SEI'); - $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_listar'); - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_salvar'); - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_cadastrar'); - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_atualizar'); - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_visualizar'); - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_excluir'); - ScriptSip::adicionarItemMenu($numIdSistemaSei, $numIdPerfilSeiAdministrador, $numIdMenu, $objItemMenuDTO->getNumIdItemMenu(), $numIdRecurso, "Mapeamento de Envio Parcial", 90); + $numIdSistemaSei = $this->getNumIdSistema('SEI'); + $numIdPerfilSeiAdministrador = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_salvar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_cadastrar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_atualizar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_visualizar'); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $numIdPerfilSeiAdministrador, 'pen_map_envio_parcial_excluir'); + ScriptSip::adicionarItemMenu($numIdSistemaSei, $numIdPerfilSeiAdministrador, $numIdMenu, $objItemMenuDTO->getNumIdItemMenu(), $numIdRecurso, "Mapeamento de Envio Parcial", 90); - $this->atualizarNumeroVersao("3.6.0"); + $this->atualizarNumeroVersao("3.6.0"); } protected function instalarV3061() - { + { try{ - $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdSistema = $this->getNumIdSistema('SEI'); - $numIdMenu = ScriptSip::obterIdMenu($numIdSistema, 'Principal'); - $numIdItemMenuMapTipDoc = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados em Bloco'); - ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenuMapTipDoc); + $numIdMenu = ScriptSip::obterIdMenu($numIdSistema, 'Principal'); + $numIdItemMenuMapTipDoc = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados em Bloco'); + ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenuMapTipDoc); } catch (\Exception $e) { - $this->logar("Item de menu de mapeamento de tipos de documentos no pode ser localizado"); + $this->logar("Item de menu de mapeamento de tipos de documentos no pode ser localizado"); } - $this->atualizarNumeroVersao("3.6.1"); + $this->atualizarNumeroVersao("3.6.1"); } protected function instalarV3062() - { - $numIdSistemaSei = $this->getNumIdSistema('SEI'); - $idPerfilBasico = ScriptSip::obterIdPerfil($numIdSistemaSei, "Bsico"); - ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $idPerfilBasico, 'pen_map_envio_parcial_listar'); - $this->atualizarNumeroVersao("3.6.2"); + { + $numIdSistemaSei = $this->getNumIdSistema('SEI'); + $idPerfilBasico = ScriptSip::obterIdPerfil($numIdSistemaSei, "Bsico"); + ScriptSip::adicionarRecursoPerfil($numIdSistemaSei, $idPerfilBasico, 'pen_map_envio_parcial_listar'); + $this->atualizarNumeroVersao("3.6.2"); } protected function instalarV3070() - { - $numIdSistema = $this->getNumIdSistema('SEI'); - $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); + { + $numIdSistema = $this->getNumIdSistema('SEI'); + $numIdMenu = $this->getNumIdMenu('Principal', $numIdSistema); - $idPerfilAdm = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); - $idPerfilBasico = ScriptSip::obterIdPerfil($numIdSistema, "Bsico"); + $idPerfilAdm = ScriptSip::obterIdPerfil($numIdSistema, "Administrador"); + $idPerfilBasico = ScriptSip::obterIdPerfil($numIdSistema, "Bsico"); try { - // Remove item de menu anterior e seus submenus configurados de forma errada - $numIdItemMenu = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados Externamente'); - ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenu); + // Remove item de menu anterior e seus submenus configurados de forma errada + $numIdItemMenu = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados Externamente'); + ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenu); - $numIdItemMenu = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados em Bloco'); - ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenu); + $numIdItemMenu = ScriptSip::obterIdItemMenu($numIdSistema, $numIdMenu, 'Processos Tramitados em Bloco'); + ScriptSip::removerItemMenu($numIdSistema, $numIdMenu, $numIdItemMenu); } catch (\Exception $e) { - $this->logar("Item de menu 'Processos Tramitados em Bloco' e/ou 'Processos Tramitados Externamente' no localizado(s)"); + $this->logar("Item de menu 'Processos Tramitados em Bloco' e/ou 'Processos Tramitados Externamente' no localizado(s)"); } - /* Corrige nome de menu de trmite de documentos */ - $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); + /* Corrige nome de menu de trmite de documentos */ + $objItemMenuBD = new ItemMenuBD(BancoSip::getInstance()); - $objItemMenuDTO = new ItemMenuDTO(); - $objItemMenuDTO->setNumIdSistema($numIdSistema); - $objItemMenuDTO->setNumIdMenu($numIdMenu); - $objItemMenuDTO->setNumIdItemMenuPai(null); - $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); - $objItemMenuDTO->setNumMaxRegistrosRetorno(1); - $objItemMenuDTO->retNumIdItemMenu(); - $objItemMenuDTO->retNumIdMenu(); + $objItemMenuDTO = new ItemMenuDTO(); + $objItemMenuDTO->setNumIdSistema($numIdSistema); + $objItemMenuDTO->setNumIdMenu($numIdMenu); + $objItemMenuDTO->setNumIdItemMenuPai(null); + $objItemMenuDTO->setStrRotulo('Tramita GOV.BR'); + $objItemMenuDTO->setNumMaxRegistrosRetorno(1); + $objItemMenuDTO->retNumIdItemMenu(); + $objItemMenuDTO->retNumIdMenu(); - $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); + $objItemMenuDTO = $objItemMenuBD->consultar($objItemMenuDTO); if (empty($objItemMenuDTO)) { - throw new InfraException('Menu "Tramita GOV.BR" no foi localizado'); + throw new InfraException('Menu "Tramita GOV.BR" no foi localizado'); } - $idMenuTramita = $objItemMenuDTO->getNumIdItemMenu(); - $numIdRecurso = $this->criarRecurso('pen_procedimento_expedido_listar', 'Processos em Tramitao Externa', $numIdSistema); + $idMenuTramita = $objItemMenuDTO->getNumIdItemMenu(); + $numIdRecurso = $this->criarRecurso('pen_procedimento_expedido_listar', 'Processos em Tramitao Externa', $numIdSistema); - $idMenuProcessoTramitadosExterno = $this->criarMenu('Processos em Tramitao Externa', 57, $idMenuTramita, $numIdMenu, $numIdRecurso, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($idPerfilBasico, $numIdRecurso, $numIdMenu, $idMenuProcessoTramitadosExterno); - $this->excluirRelPerfilItemMenu($idPerfilAdm, $numIdRecurso, $numIdMenu, $idMenuProcessoTramitadosExterno); + $idMenuProcessoTramitadosExterno = $this->criarMenu('Processos em Tramitao Externa', 57, $idMenuTramita, $numIdMenu, $numIdRecurso, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($idPerfilBasico, $numIdRecurso, $numIdMenu, $idMenuProcessoTramitadosExterno); + $this->excluirRelPerfilItemMenu($idPerfilAdm, $numIdRecurso, $numIdMenu, $idMenuProcessoTramitadosExterno); - $this->renomearRecurso($numIdSistema, 'pen_expedir_lote', 'pen_expedir_bloco'); + $this->renomearRecurso($numIdSistema, 'pen_expedir_lote', 'pen_expedir_bloco'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_map_envio_parcial_visualizar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_procedimento_expedido_listar'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'md_pen_tramita_em_bloco'); - ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_expedir_bloco'); - ScriptSip::removerRecursoPerfil($numIdSistema, 'pen_expedir_bloco', $idPerfilAdm); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_map_envio_parcial_visualizar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_procedimento_expedido_listar'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'md_pen_tramita_em_bloco'); + ScriptSip::adicionarRecursoPerfil($numIdSistema, $idPerfilBasico, 'pen_expedir_bloco'); + ScriptSip::removerRecursoPerfil($numIdSistema, 'pen_expedir_bloco', $idPerfilAdm); - $numIdRecurso1 = $this->criarRecurso('pen_procedimento_expedido_listar', 'Tramita GOV.BR', $numIdSistema); - $idMenuTramita = $this->criarMenu('Tramita GOV.BR', 55, null, $numIdMenu, $numIdRecurso1, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($idPerfilBasico, $numIdRecurso1, $numIdMenu, $idMenuTramita); - $this->excluirRelPerfilItemMenu($idPerfilAdm, $numIdRecurso1, $numIdMenu, $idMenuTramita); + $numIdRecurso1 = $this->criarRecurso('pen_procedimento_expedido_listar', 'Tramita GOV.BR', $numIdSistema); + $idMenuTramita = $this->criarMenu('Tramita GOV.BR', 55, null, $numIdMenu, $numIdRecurso1, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($idPerfilBasico, $numIdRecurso1, $numIdMenu, $idMenuTramita); + $this->excluirRelPerfilItemMenu($idPerfilAdm, $numIdRecurso1, $numIdMenu, $idMenuTramita); - $numIdRecurso2 = $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trmite Externo', $numIdSistema); - $idMenuBlocoTramiteExterno = $this->criarMenu('Blocos de Trmite Externo', 56, $idMenuTramita, $numIdMenu, $numIdRecurso2, $numIdSistema); - $this->cadastrarRelPerfilItemMenu($idPerfilBasico, $numIdRecurso2, $numIdMenu, $idMenuBlocoTramiteExterno); - $this->excluirRelPerfilItemMenu($idPerfilAdm, $numIdRecurso2, $numIdMenu, $idMenuBlocoTramiteExterno); + $numIdRecurso2 = $this->criarRecurso('md_pen_tramita_em_bloco', 'Blocos de Trmite Externo', $numIdSistema); + $idMenuBlocoTramiteExterno = $this->criarMenu('Blocos de Trmite Externo', 56, $idMenuTramita, $numIdMenu, $numIdRecurso2, $numIdSistema); + $this->cadastrarRelPerfilItemMenu($idPerfilBasico, $numIdRecurso2, $numIdMenu, $idMenuBlocoTramiteExterno); + $this->excluirRelPerfilItemMenu($idPerfilAdm, $numIdRecurso2, $numIdMenu, $idMenuBlocoTramiteExterno); - $this->atualizarNumeroVersao("3.7.0"); + $this->atualizarNumeroVersao("3.7.0"); } - /** - * Cadastrar item do menu em um perfil expecifico - * - * @return void - */ + protected function instalarV3080() + { + $this->atualizarNumeroVersao("3.8.0"); + } + + protected function instalarV4000() + { + $this->atualizarNumeroVersao("4.0.0"); + } + + /** + * Cadastrar item do menu em um perfil expecifico + * + * @return void + */ private function cadastrarRelPerfilItemMenu($numIdPerfil, $numIdRecurso, $numIdMenu, $numIdItemMenuRecuso) - { - $numIdSistema = $this->getNumIdSistema('SEI'); + { + $numIdSistema = $this->getNumIdSistema('SEI'); - $objDTO = new RelPerfilItemMenuDTO(); - $objBD = new RelPerfilItemMenuBD(BancoSip::getInstance()); + $objDTO = new RelPerfilItemMenuDTO(); + $objBD = new RelPerfilItemMenuBD(BancoSip::getInstance()); - $objDTO->setNumIdPerfil($numIdPerfil); - $objDTO->setNumIdSistema($numIdSistema); - $objDTO->setNumIdRecurso($numIdRecurso); - $objDTO->setNumIdMenu($numIdMenu); - $objDTO->setNumIdItemMenu($numIdItemMenuRecuso); + $objDTO->setNumIdPerfil($numIdPerfil); + $objDTO->setNumIdSistema($numIdSistema); + $objDTO->setNumIdRecurso($numIdRecurso); + $objDTO->setNumIdMenu($numIdMenu); + $objDTO->setNumIdItemMenu($numIdItemMenuRecuso); if ($objBD->contar($objDTO) == 0) { $objBD->cadastrar($objDTO); } } - /** - * Excluir item do menu em um perfil expecifico - * - * @return void - */ + /** + * Excluir item do menu em um perfil expecifico + * + * @return void + */ private function excluirRelPerfilItemMenu($numIdPerfil, $numIdRecurso, $numIdMenu, $numIdItemMenuRecuso) - { - $numIdSistema = $this->getNumIdSistema('SEI'); + { + $numIdSistema = $this->getNumIdSistema('SEI'); - $objDTO = new RelPerfilItemMenuDTO(); - $objBD = new RelPerfilItemMenuBD(BancoSip::getInstance()); + $objDTO = new RelPerfilItemMenuDTO(); + $objBD = new RelPerfilItemMenuBD(BancoSip::getInstance()); - $objDTO->setNumIdPerfil($numIdPerfil); - $objDTO->setNumIdSistema($numIdSistema); - $objDTO->setNumIdRecurso($numIdRecurso); - $objDTO->setNumIdMenu($numIdMenu); - $objDTO->setNumIdItemMenu($numIdItemMenuRecuso); + $objDTO->setNumIdPerfil($numIdPerfil); + $objDTO->setNumIdSistema($numIdSistema); + $objDTO->setNumIdRecurso($numIdRecurso); + $objDTO->setNumIdMenu($numIdMenu); + $objDTO->setNumIdItemMenu($numIdItemMenuRecuso); if ($objBD->contar($objDTO) == 1) { $objBD->excluir($objDTO); @@ -2237,11 +2232,7 @@ private function excluirRelPerfilItemMenu($numIdPerfil, $numIdRecurso, $numIdMen $objVersaoSipRN->setStrNome(PenAtualizarSipRN::NOME_MODULO); $objVersaoSipRN->setStrParametroVersao(PenAtualizarSipRN::PARAMETRO_VERSAO_MODULO); $objVersaoSipRN->setArrVersoes( - array( - '0.0.0' => 'versao_0_0_0', - $strVersaoModuloPen => 'atualizarVersaoCompatibilidade', - VERSAO_MODULO_PEN => 'atualizarVersaoCompatibilidade', - ) + ['0.0.0' => 'versao_0_0_0', $strVersaoModuloPen => 'atualizarVersaoCompatibilidade', VERSAO_MODULO_PEN => 'atualizarVersaoCompatibilidade'] ); $objVersaoSipRN->setStrVersaoAtual(VERSAO_MODULO_PEN); diff --git a/src/scripts/verifica_instalacao_modulo_pen.php b/src/scripts/verifica_instalacao_modulo_pen.php index 88acc8025..29db22d8c 100755 --- a/src/scripts/verifica_instalacao_modulo_pen.php +++ b/src/scripts/verifica_instalacao_modulo_pen.php @@ -12,7 +12,7 @@ $resultado = 0; - $fnPrint = function($strMensagem, $numIdentacao = 0) { + $fnPrint = function ($strMensagem, $numIdentacao = 0): void { DebugPen::getInstance()->gravar($strMensagem, $numIdentacao, false, false); }; @@ -25,47 +25,47 @@ $fnPrint("INICIANDO VERIFICAO DA INSTALAO DO MDULO MOD-SEI-PEN:", 0); sleep(1); - if($objVerificadorInstalacaoRN->verificarPosicionamentoScripts()){ + if($objVerificadorInstalacaoRN->verificarPosicionamentoScripts()) { $fnPrint("- Arquivos do mdulo posicionados corretamente", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarAtivacaoModulo()){ + if($objVerificadorInstalacaoRN->verificarAtivacaoModulo()) { $fnPrint("- Mdulo corretamente ativado no arquivo de configuracao do sistema", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarArquivoConfiguracao()){ + if($objVerificadorInstalacaoRN->verificarArquivoConfiguracao()) { $fnPrint("- Parmetros tcnicos obrigatrios de integrao atribudos em ConfiguracaoModPEN.php", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarCertificadoDigital()){ + if($objVerificadorInstalacaoRN->verificarCertificadoDigital()) { $fnPrint("- Certificado digital localizado e corretamente configurado", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarConexaoBarramentoPEN()){ + if($objVerificadorInstalacaoRN->verificarConexaoBarramentoPEN()) { $fnPrint("- Conexo com o Tramita GOV.BR realizada com sucesso", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarAcessoPendenciasTramitePEN()){ + if($objVerificadorInstalacaoRN->verificarAcessoPendenciasTramitePEN()) { $fnPrint("- Acesso aos dados do Comit de Protocolo vinculado ao certificado realizado com sucesso", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarConfiguracaoGearman()){ + if($objVerificadorInstalacaoRN->verificarConfiguracaoGearman()) { $fnPrint("- Conexo com o servidor de processamento de tarefas Gearman realizada com sucesso", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarCompatibilidadeModulo()){ + if($objVerificadorInstalacaoRN->verificarCompatibilidadeModulo()) { $fnPrint("- Verificada a compatibilidade do mod-sei-pen com a atual verso do SEI", 1); } sleep(1); - if($objVerificadorInstalacaoRN->verificarCompatibilidadeBanco()){ + if($objVerificadorInstalacaoRN->verificarCompatibilidadeBanco()) { $fnPrint("- Base de dados do SEI corretamente atualizada com a verso atual do mod-sei-pen", 1); } diff --git a/src/sei_desbloquear_processo_manual.php b/src/sei_desbloquear_processo_manual.php index 40547b6ef..06c128cd7 100755 --- a/src/sei_desbloquear_processo_manual.php +++ b/src/sei_desbloquear_processo_manual.php @@ -7,36 +7,34 @@ * PHP 5.3.3 (cli) (built: Jul 9 2015 17:39:00) * Copyright (c) 1997-2010 The PHP Group * Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies - * - * */ try { - require_once DIR_SEI_WEB.'/SEI.php'; - + include_once DIR_SEI_WEB.'/SEI.php'; + $objPenConsoleRN = new PenConsoleRN(); $arrArgs = $objPenConsoleRN->getTokens(); - + $objAtualizarRN = new PenAtualizarSeiRN($arrArgs); $objAtualizarRN->atualizarVersao(); exit(0); } catch(InfraException $e){ - + print $e->getStrDescricao().PHP_EOL; } catch(Exception $e) { - + print InfraException::inspecionar($e); - + try { LogSEI::getInstance()->gravar(InfraException::inspecionar($e)); } catch (Exception $e) { - + } - + exit(1); } @@ -65,6 +63,4 @@ DROP TABLE `sei`.`pen_tramite_pendente`; ALTER TABLE unidade DROP COLUMN id_unidade_rh; SET FOREIGN_KEY_CHECKS = 1; - - */ diff --git a/tests_sei3/funcional/assets/config/ConfiguracaoModPEN.exemplo.php b/tests_sei3/funcional/assets/config/ConfiguracaoModPEN.exemplo.php deleted file mode 100644 index 82c90e568..000000000 --- a/tests_sei3/funcional/assets/config/ConfiguracaoModPEN.exemplo.php +++ /dev/null @@ -1,98 +0,0 @@ - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => getenv('CERTIFICADO'), - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => getenv('CERTIFICADO_SENHA'), - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - // "Gearman" => array( - // "Servidor" => "", - // "Porta" => "", //Padro: 4730 - // ) - - "ControleURL" => array( - "atual"=>"servidor.gov.br", - "antigos"=>array( - "[servidor_php]", - "[servidor_php2]", - ) - ), - - // Configurao padro do Envio Parcial - "EnviarApenasComponentesDigitaisPendentes" => false - // "EnviarApenasComponentesDigitaisPendentes" => array( - // "1" => array( // 1 = Poder Executivo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ), - // "21" => array( // 2 = Poder Legislativo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ) - // ) - - ) - ); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/assets/config/ConfiguracaoModPEN.php b/tests_sei3/funcional/assets/config/ConfiguracaoModPEN.php deleted file mode 100755 index 2d86f9cc6..000000000 --- a/tests_sei3/funcional/assets/config/ConfiguracaoModPEN.php +++ /dev/null @@ -1,86 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => getenv('CERTIFICADO'), - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => getenv('CERTIFICADO_SENHA'), - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - // "Gearman" => array( - // "Servidor" => "", - // "Porta" => "", //Padro: 4730 - // ) - - "ControleURL" => array( - "atual"=>"servidor.gov.br", - "antigos"=>array( - "[servidor_php]", - "[servidor_php2]", - ) - ), - - // Configurao padro do Envio Parcial - "EnviarApenasComponentesDigitaisPendentes" => false - ) - ); - } -} diff --git a/tests_sei3/funcional/assets/config/ConfiguracaoSEI.php b/tests_sei3/funcional/assets/config/ConfiguracaoSEI.php deleted file mode 100755 index d81e373bc..000000000 --- a/tests_sei3/funcional/assets/config/ConfiguracaoSEI.php +++ /dev/null @@ -1,109 +0,0 @@ -<? - -class ConfiguracaoSEI extends InfraConfiguracao { - - private static $instance = null; - - public static function getInstance(){ - if (ConfiguracaoSEI::$instance == null) { - ConfiguracaoSEI::$instance = new ConfiguracaoSEI(); - } - return ConfiguracaoSEI::$instance; - } - - public function getArrConfiguracoes(){ - return array( - 'SEI' => array( - 'URL' => getenv('HOST_URL').'/sei', - 'Producao' => false, - 'RepositorioArquivos' => '/var/sei/arquivos', - - 'DigitosDocumento' => 7, - 'NumLoginUsuarioExternoSemCaptcha' => 3, - 'TamSenhaUsuarioExterno' => 8, - 'DebugWebServices' => 2, - 'MaxMemoriaPdfGb' => 4, - 'Modulos' => array( - "PENIntegracao" => "pen", - ) - ), - - 'SessaoSEI' => array( - 'SiglaOrgaoSistema' => 'ABC', - 'SiglaSistema' => 'SEI', - 'PaginaLogin' => getenv('HOST_URL') . '/sip/login.php', - 'SipWsdl' => getenv('HOST_URL') . '/sip/controlador_ws.php?servico=wsdl', - 'https' => false - ), - - 'PaginaSEI' => array( - 'NomeSistema' => 'SEI', - 'NomeSistemaComplemento' => SEI_VERSAO, - 'LogoMenu' => '', - 'OrgaoTopoJanela' => 'S', - ), - - 'BancoSEI' => array( - 'Servidor' => getenv('DATABASE_HOST'), - 'Porta' => getenv('DATABASE_PORT'), - 'Banco' => getenv('SEI_DATABASE_NAME'), - 'Usuario' => getenv('SEI_DATABASE_USER'), - 'Senha' => getenv('SEI_DATABASE_PASSWORD'), - 'UsuarioScript' => getenv('SEI_DATABASE_USER_SCRIPT'), - 'SenhaScript' => getenv('SEI_DATABASE_PASSWORD_SCRIPT'), - 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle - 'PesquisaCaseInsensitive' => false, - ), - - 'BancoAuditoriaSEI' => array( - 'Servidor' => 'mysql', - 'Porta' => '3306', - 'Banco' => 'sei', - 'Usuario' => 'sei_user', - 'Senha' => 'sei_user', - 'Tipo' => 'MySql', //MySql, SqlServer ou Oracle - ), - - 'CacheSEI' => array( - 'Servidor' => 'memcached', - 'Porta' => '11211', - 'Timeout' => 2, - 'Tempo' => 3600, - ), - - 'Solr' => array( - 'Servidor' => 'http://solr:8983/solr', - 'CoreProtocolos' => 'sei-protocolos', - 'CoreBasesConhecimento' => 'sei-bases-conhecimento', - 'CorePublicacoes' => 'sei-publicacoes', - 'TempoCommitProtocolos' => 300, - 'TempoCommitBasesConhecimento' => 60, - 'TempoCommitPublicacoes' => 60, - ), - - 'JODConverter' => array( - 'Servidor' => 'http://jod/converter/service' - ), - - 'HostWebService' => array( - 'Sip' => array('*'), - 'Publicacao' => array('*'), - 'Ouvidoria' => array('*'), - ), - - 'InfraMail' => array( - 'Tipo' => '2', - 'Servidor' => 'smtp', - 'Porta' => '1025', - 'Codificacao' => '8bit', - 'MaxDestinatarios' => 999, - 'MaxTamAnexosMb' => 999, - 'Autenticar' => false, - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => '', //TLS, SSL ou vazio - 'Protegido' => 'desenv@instituicao.gov.br', - ), - ); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/assets/config/ConfiguracaoSip.php b/tests_sei3/funcional/assets/config/ConfiguracaoSip.php deleted file mode 100755 index 59beffa28..000000000 --- a/tests_sei3/funcional/assets/config/ConfiguracaoSip.php +++ /dev/null @@ -1,88 +0,0 @@ -<? - -class ConfiguracaoSip extends InfraConfiguracao { - - private static $instance = null; - - public static function getInstance(){ - if (ConfiguracaoSip::$instance == null) { - ConfiguracaoSip::$instance = new ConfiguracaoSip(); - } - return ConfiguracaoSip::$instance; - } - - public function getArrConfiguracoes(){ - return array( - 'Sip' => array( - 'URL' => getenv('HOST_URL').'/sip', - 'Producao' => false, - 'NumLoginSemCaptcha' => 3, - 'TempoLimiteValidacaoLogin' => 60, - 'Modulos' => array( - //'ABCExemploIntegracao' => 'abc/exemplo', - ), - ), - - 'PaginaSip' => array( - 'NomeSistema' => 'SIP', - 'NomeSistemaComplemento' => '', - ), - - 'SessaoSip' => array( - 'SiglaOrgaoSistema' => 'ABC', - 'SiglaSistema' => 'SIP', - 'PaginaLogin' => getenv('HOST_URL') . '/sip/login.php', - 'SipWsdl' => getenv('HOST_URL') . '/sip/controlador_ws.php?servico=wsdl', - 'https' => false - ), - - 'BancoSip' => array( - 'Servidor' => getenv('DATABASE_HOST'), - 'Porta' => getenv('DATABASE_PORT'), - 'Banco' => getenv('SIP_DATABASE_NAME'), - 'Usuario' => getenv('SIP_DATABASE_USER'), - 'Senha' => getenv('SIP_DATABASE_PASSWORD'), - 'UsuarioScript' => getenv('SIP_DATABASE_USER_SCRIPT'), - 'SenhaScript' => getenv('SIP_DATABASE_PASSWORD_SCRIPT'), - 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle - 'PesquisaCaseInsensitive' => false, - ), - - 'BancoAuditoriaSip' => array( - 'Servidor' => 'mysql', - 'Porta' => '3306', - 'Banco' => 'sip', - 'Usuario' => 'sip_user', - 'Senha' => 'sip_user', - 'Tipo' => 'MySql', //MySql, SqlServer ou Oracle - ), - - 'CacheSip' => array( - 'Servidor' => 'memcached', - 'Porta' => '11211', - 'Timeout' => 2, - 'Tempo' => 3600, - ), - - 'HostWebService' => array( - 'Replicacao' => array('*'), - 'Pesquisa' => array('*'), - 'Autenticacao' => array('*') - ), - - 'InfraMail' => array( - 'Tipo' => '2', - 'Servidor' => 'smtp', - 'Porta' => '1025', - 'Codificacao' => '8bit', - 'MaxDestinatarios' => 999, - 'MaxTamAnexosMb' => 999, - 'Seguranca' => '', //TLS, SSL ou vazio - 'Autenticar' => false, - 'Usuario' => '', - 'Senha' => '', - 'Protegido' => 'desenv@instituicao.gov.br' - ) - ); - } - } \ No newline at end of file diff --git a/tests_sei3/funcional/assets/config/supervisor.ini b/tests_sei3/funcional/assets/config/supervisor.ini deleted file mode 100755 index 354114e69..000000000 --- a/tests_sei3/funcional/assets/config/supervisor.ini +++ /dev/null @@ -1,37 +0,0 @@ - -[program:processamento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/ProcessamentoTarefasPEN.php --worker=%(process_num)02d -directory=/opt/sei/web -process_name=%(program_name)s_%(process_num)02d -numprocs=4 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_backups=50 -logfile_maxbytes=10MB -logfile=/var/log/supervisor/sei_processar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_processar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_processar_pendencias.log-err -stderr_events_enabled=true - -[program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoTarefasPEN.php --monitorar --segundo-plano -directory=/opt/sei/web -numprocs=1 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_maxbytes=10MB -logfile_backups=50 -logfile=/var/log/supervisor/sei_monitorar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err -stderr_events_enabled=true diff --git a/tests_sei3/funcional/bootstrap.php b/tests_sei3/funcional/bootstrap.php deleted file mode 100755 index 8fb3da6b3..000000000 --- a/tests_sei3/funcional/bootstrap.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php - -require_once __DIR__ . '/vendor/autoload.php'; - -//Classes utilitrias para manipulao dos dados do SEI -require_once __DIR__ . '/src/utils/DatabaseUtils.php'; -require_once __DIR__ . '/src/utils/ParameterUtils.php'; - -//Representao das pginas sob teste -require_once __DIR__ . '/src/paginas/PaginaTeste.php'; -require_once __DIR__ . '/src/paginas/PaginaLogin.php'; -require_once __DIR__ . '/src/paginas/PaginaControleProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaIniciarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaEnviarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaIncluirDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaAssinaturaDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaTramitarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaConsultarAndamentos.php'; -require_once __DIR__ . '/src/paginas/PaginaProcessosTramitadosExternamente.php'; -require_once __DIR__ . '/src/paginas/PaginaReciboTramite.php'; -require_once __DIR__ . '/src/paginas/PaginaEditarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaAnexarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaCancelarDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaMoverDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaTramitarProcessoEmLote.php'; - -require_once __DIR__ . '/tests/CenarioBaseTestCase.php'; diff --git a/tests_sei3/funcional/composer.json b/tests_sei3/funcional/composer.json deleted file mode 100755 index 274ffe178..000000000 --- a/tests_sei3/funcional/composer.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "config": { - "platform": { - "php": "7.4" - } - }, - - "autoload": { - "classmap": [ - "src/" - ] - }, - - "require-dev": { - "phpunit/phpunit": "8.*", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit-selenium": "*", - "besimple/soap": "*", - "brandonwamboldt/utilphp": "*", - "brianium/paratest": "*" - } -} diff --git a/tests_sei3/funcional/docker-compose.yml b/tests_sei3/funcional/docker-compose.yml deleted file mode 100755 index d2f84ae68..000000000 --- a/tests_sei3/funcional/docker-compose.yml +++ /dev/null @@ -1,208 +0,0 @@ -version: '2' - -services: - - ### CONTAINERS COMPARTILHADOS ENTRE OS AMBIENTES DE TESTE ### - smtp: - image: guilhermeadc/sei3_mailcatcher:${ENVIRONMENT_VERSION} - ports: - - "1080:1080" - - org1-memcached: - image: guilhermeadc/sei3_memcached:${ENVIRONMENT_VERSION} - ports: - - "11211" - - org2-memcached: - image: guilhermeadc/sei3_memcached:${ENVIRONMENT_VERSION} - ports: - - "11211" - - proxy: - image: diouxx/apache-proxy - ports: - - "8000:8000" - volumes: - - ./assets/proxy:/opt/proxy-conf - links: - - org1-http:org1-http - - org2-http:org2-http - - selenium: - image: selenium/standalone-chrome-debug - links: - - proxy:org1-http - - proxy:org2-http - ports: - - "4444:4444" - - "5900:5900" - volumes: - - /dev/shm:/dev/shm - - ./assets/arquivos/test_files_index.txt:/test_files_index.txt - - /tmp:/tmp - - php-test-functional: - image: processoeletronico/vagrant_sei4_httpd - container_name: php-test-functional - depends_on: - - org1-database - - org2-database - - selenium - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/config:/opt/sei/config/mod-pen - - .:/tests - - /tmp:/tmp - environment: - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9000 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - ORG1_CERTIFICADO=${ORG1_CERTIFICADO} - - ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - ORG2_CERTIFICADO=${ORG2_CERTIFICADO} - - ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org1-database:${ORG1_DATABASE_HOST} - - org2-database:${ORG2_DATABASE_HOST} - - selenium:selenium - command: "true" - - php-test-unit: - image: guilhermeadc/sei3_httpd-2.4:${ENVIRONMENT_VERSION} - container_name: php-test-unit - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/config:/opt/sei/config/mod-pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - ../unitario:/tests - - ../../src:/opt/sei/web/modulos/pen - environment: - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - ORG1_CERTIFICADO=${ORG1_CERTIFICADO} - - ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - ORG2_CERTIFICADO=${ORG2_CERTIFICADO} - - ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - extra_hosts: - - "host.docker.internal:host-gateway" - command: "true" - - ### CONTAINERS DO AMBIENTE DO ÓRGÃO 1 ### - - org1-database: - image: ${ORG1_DATABASE_IMAGE}:${ENVIRONMENT_VERSION} - ports: - - "${ORG1_DATABASE_HOST_PORT}:${ORG1_DATABASE_GUEST_PORT}" - - org1-http: - image: guilhermeadc/sei3_httpd-2.4:${ENVIRONMENT_VERSION} - restart: always - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/cron.d:/etc/cron.d - - ./assets/config:/opt/sei/config/mod-pen - - ../../src/scripts:/opt/sei/scripts/mod-pen - - ../../src/scripts:/opt/sip/scripts/mod-pen - - ../../src/bin:/opt/sei/bin/mod-pen - - ../../src:/opt/sei/web/modulos/pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php - environment: - #- LANG=pt_BR.ISO-8859-1 - - HOST_URL=http://${ORG1_HOSTNAME}:${ORG1_PORT} - - CERTIFICADO=${ORG1_CERTIFICADO} - - CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9000 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - DATABASE_TYPE=${ORG1_DATABASE_TYPE} - - DATABASE_HOST=${ORG1_DATABASE_HOST} - - DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT} - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - - SIP_DATABASE_USER_SCRIPT=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD_SCRIPT=${SIP_DATABASE_PASSWORD} - - SEI_DATABASE_USER_SCRIPT=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD_SCRIPT=${SEI_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org1-memcached:memcached - - smtp:smtp - - org1-database:${ORG1_DATABASE_HOST} - - ### CONTAINERS DO AMBIENTE DO ÓRGÃO 2 ### - - org2-database: - image: ${ORG2_DATABASE_IMAGE}:${ENVIRONMENT_VERSION} - ports: - - "${ORG2_DATABASE_HOST_PORT}:${ORG2_DATABASE_GUEST_PORT}" - - org2-http: - image: guilhermeadc/sei3_httpd-2.4:${ENVIRONMENT_VERSION} - restart: always - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ../../src/scripts:/opt/sei/scripts/mod-pen - - ../../src/scripts:/opt/sip/scripts/mod-pen - - ../../src/bin:/opt/sei/bin/mod-pen - - ../../src:/opt/sei/web/modulos/pen - - ./assets/config:/opt/sei/config/mod-pen - - ./assets/cron.d:/etc/cron.d - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php - environment: - #- LANG=pt_BR.ISO-8859-1 - - HOST_URL=http://${ORG2_HOSTNAME}:${ORG2_PORT} - - CERTIFICADO=${ORG2_CERTIFICADO} - - CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9000 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - DATABASE_TYPE=${ORG2_DATABASE_TYPE} - - DATABASE_HOST=${ORG2_DATABASE_HOST} - - DATABASE_PORT=${ORG2_DATABASE_GUEST_PORT} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - - SIP_DATABASE_USER_SCRIPT=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD_SCRIPT=${SIP_DATABASE_PASSWORD} - - SEI_DATABASE_USER_SCRIPT=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD_SCRIPT=${SEI_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org2-memcached:memcached - - smtp:smtp - - org2-database:${ORG2_DATABASE_HOST} diff --git a/tests_sei3/funcional/env_mysql b/tests_sei3/funcional/env_mysql deleted file mode 100755 index e543ff57a..000000000 --- a/tests_sei3/funcional/env_mysql +++ /dev/null @@ -1,50 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=8.1 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados MYSQL do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=guilhermeadc/sei3_mysql-5.7 -ORG1_DATABASE_HOST=mysql -ORG1_DATABASE_TYPE=MySql -ORG1_DATABASE_GUEST_PORT=3306 -ORG1_DATABASE_HOST_PORT=33061 -CONTEXTO_ORGAO_A_DB_SEI_DSN="mysql:host=org1-database;port=3306;dbname=sei" - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados MYSQL do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=guilhermeadc/sei3_mysql-5.7 -ORG2_DATABASE_HOST=mysql -ORG2_DATABASE_TYPE=MySql -ORG2_DATABASE_GUEST_PORT=3306 -ORG2_DATABASE_HOST_PORT=33062 -CONTEXTO_ORGAO_B_DB_SEI_DSN="mysql:host=org2-database;port=3306;dbname=sei" - diff --git a/tests_sei3/funcional/env_oracle b/tests_sei3/funcional/env_oracle deleted file mode 100755 index a5869ce02..000000000 --- a/tests_sei3/funcional/env_oracle +++ /dev/null @@ -1,43 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=8.1 - -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei -SEI_DATABASE_PASSWORD=sei_user - -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip -SIP_DATABASE_PASSWORD=sip_user - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados ORACLE do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=guilhermeadc/sei3_oracle-11g -ORG1_DATABASE_HOST=oracle -ORG1_DATABASE_TYPE=Oracle -ORG1_DATABASE_GUEST_PORT=1521 -ORG1_DATABASE_HOST_PORT=15211 -CONTEXTO_ORGAO_A_DB_SEI_DSN=oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=org1-database)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))) - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 2 ##### -# Configurações do banco de dados ORACLE do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=guilhermeadc/sei3_oracle-11g -ORG2_DATABASE_HOST=oracle -ORG2_DATABASE_TYPE=Oracle -ORG2_DATABASE_GUEST_PORT=1521 -ORG2_DATABASE_HOST_PORT=15212 -CONTEXTO_ORGAO_B_DB_SEI_DSN=oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=org2-database)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))) \ No newline at end of file diff --git a/tests_sei3/funcional/env_sqlserver b/tests_sei3/funcional/env_sqlserver deleted file mode 100755 index 70dde8c18..000000000 --- a/tests_sei3/funcional/env_sqlserver +++ /dev/null @@ -1,44 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=8.1 - -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados SQL SERVER do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=guilhermeadc/sei3_sqlserver-2017 -ORG1_DATABASE_HOST=sqlserver -ORG1_DATABASE_TYPE=SqlServer -ORG1_DATABASE_GUEST_PORT=1433 -ORG1_DATABASE_HOST_PORT=14331 -CONTEXTO_ORGAO_A_DB_SEI_DSN=sqlsrv:server=org1-database,1433; Database=sei - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 2 ##### -# Configurações do banco de dados SQL SERVER do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=guilhermeadc/sei3_sqlserver-2017 -ORG2_DATABASE_HOST=sqlserver -ORG2_DATABASE_TYPE=SqlServer -ORG2_DATABASE_GUEST_PORT=1433 -ORG2_DATABASE_HOST_PORT=14332 -CONTEXTO_ORGAO_B_DB_SEI_DSN=sqlsrv:server=org2-database,1433; Database=sei \ No newline at end of file diff --git a/tests_sei3/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php b/tests_sei3/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php deleted file mode 100644 index bbd5c017f..000000000 --- a/tests_sei3/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php - -class ImportacaoTiposProcessoFixture -{ - private static $contexto; - - public function __construct(string $contexto) - { - self::$contexto = $contexto; - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $bancoOrgaoA = new DatabaseUtils(self::$contexto); - $tiposProcessos = $this->getTiposProcessos($dados['idMapeamento'], $dados['sinAtivo']); - - foreach ($tiposProcessos as $tipoProcesso) { - $bancoOrgaoA->execute( - "INSERT INTO md_pen_map_tipo_processo (id, id_map_orgao, id_tipo_processo_origem, nome_tipo_processo, sin_ativo, id_unidade, dth_criacao) ". - "VALUES(?,?,?,?,?,?,?)", - array( - $tipoProcesso[0], - $tipoProcesso[1], - $tipoProcesso[2], - $tipoProcesso[3], - $tipoProcesso[4], - $tipoProcesso[5], - $tipoProcesso[6] - ) - ); - } - - return $tiposProcessos; - } - - public function deletar($dados = []): void - { - $bancoOrgaoA = new DatabaseUtils(self::$contexto); - $tiposProcessos = $this->getTiposProcessos($dados['idMapeamento']); - - foreach ($tiposProcessos as $tipoProcesso) { - $bancoOrgaoA->execute( - "DELETE FROM md_pen_map_tipo_processo WHERE id = ?", - array($tipoProcesso[0]) - ); - } - - } - - public function getTiposProcessos(int $idMapeamento, string $sinAtivo = 'S') - { - $tiposProcessos = array(); - - $tiposProcessos[] = [9997, $idMapeamento, 100000347, utf8_encode('Acompanhamento Legislativo: Cmara dos Deputados'), $sinAtivo, 110000001, date('Y-m-d H:i:s')]; - $tiposProcessos[] = [9998, $idMapeamento, 100000348, utf8_encode('Acompanhamento Legislativo: Congresso Nacional'), $sinAtivo, 110000001, date('Y-m-d H:i:s')]; - $tiposProcessos[] = [9999, $idMapeamento, 100000425, utf8_encode('mauro teste'), $sinAtivo, 110000001, date('Y-m-d H:i:s')]; - - return $tiposProcessos; - } -} diff --git a/tests_sei3/funcional/src/fixtures/PenMapUnidadesFixture.php b/tests_sei3/funcional/src/fixtures/PenMapUnidadesFixture.php deleted file mode 100644 index 1300aae12..000000000 --- a/tests_sei3/funcional/src/fixtures/PenMapUnidadesFixture.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * Responsvel por cadastrar novo mapeamento de unidades caso no exista - */ -class PenMapUnidadesFixture -{ - private static $bancoOrgaoA; - private static $dados; - - /** - * @param string $contexto - * @param array $dados - */ - public function __construct(string $contexto, array $dados) - { - self::$bancoOrgaoA = new DatabaseUtils($contexto); - self::$dados = $dados; - } - - /** - * Consulta mapeamento de unidade - * Se existe atualiza sigla e nome - * Se no existe cadastra um novo - * - * @return void - */ - public function gravar(): void - { - $penUnidade = $this->consultar(); - if (!empty($penUnidade)) { - $this->atualizar(); - } else { - $this->cadastrar(); - } - } - - /** - * Consultar mapeamento de unidade - * - * @return array|null - */ - public function consultar() - { - return self::$bancoOrgaoA->query( - 'select id_unidade, id_unidade_rh from md_pen_unidade where id_unidade = ? and id_unidade_rh = ?', - array(110000001, self::$dados['id']) - ); - } - - /** - * Cadastrar mapeamento de unidade - * - * @return void - */ - public function cadastrar(): void - { - self::$bancoOrgaoA->execute( - "INSERT INTO md_pen_unidade (id_unidade, id_unidade_rh, sigla_unidade_rh, nome_unidade_rh) ". - "VALUES(?, ?, ?, ?)", - array(110000001, self::$dados['id'], self::$dados['sigla'], self::$dados['nome']) - ); - } - - /** - * Atualizar mapeamento de unidade - * - * @return void - */ - public function atualizar(): void - { - self::$bancoOrgaoA->execute( - "UPDATE md_pen_unidade SET sigla_unidade_rh = ?, nome_unidade_rh = ? ". - "WHERE id_unidade = ? AND id_unidade_rh = ?", - array(self::$dados['sigla'], self::$dados['nome'], 110000001, self::$dados['id']) - ); - } - - /** - * Deletear mapeamento de unidade - * - * @return void - */ - public function deletar(): void - { - self::$bancoOrgaoA->execute( - "DELETE FROM md_pen_unidade WHERE id_unidade = ? and id_unidade_rh = ?", - array(110000001, self::$dados['id']) - ); - } -} diff --git a/tests_sei3/funcional/src/fixtures/PenOrgaoExternoFixture.php b/tests_sei3/funcional/src/fixtures/PenOrgaoExternoFixture.php deleted file mode 100644 index 5191cb637..000000000 --- a/tests_sei3/funcional/src/fixtures/PenOrgaoExternoFixture.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php - -class PenOrgaoExternoFixture -{ - private static $contexto; - - public function __construct(string $contexto) - { - self::$contexto = $contexto; - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $penMapUnidadesFixture = new PenMapUnidadesFixture(self::$contexto, $dados); - $penMapUnidadesFixture->gravar(); - - $bancoOrgaoA = new DatabaseUtils(self::$contexto); - $bancoOrgaoA->execute( - "insert into md_pen_orgao_externo ". - "(id,id_orgao_origem,str_orgao_origem,id_estrutura_origem,str_estrutura_origem,id_orgao_destino,str_orgao_destino,sin_ativo,id_unidade,dth_criacao) ". - "values (?,?,?,?,?,?,?,?,?,?) ", - array( - 999999, - $dados['idOrigem'], $dados['nomeOrigem'], $dados['idRepositorio'], $dados['repositorioEstruturas'], - $dados['id'], $dados['nome'], - 'S', 110000001, date('Y-m-d H:i:s') - ) - ); - - return 999999; - } - - public function deletar(int $id): void - { - $bancoOrgaoA = new DatabaseUtils(self::$contexto); - $bancoOrgaoA->execute("delete from md_pen_orgao_externo where id = ?", array($id)); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaAnexarProcesso.php b/tests_sei3/funcional/src/paginas/PaginaAnexarProcesso.php deleted file mode 100755 index 7e1516bfa..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaAnexarProcesso.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -class PaginaAnexarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function protocolo($protocolo) - { - $protocoloInput = $this->test->byId('txtProtocolo'); - - if(isset($protocolo)){ - $protocoloInput->value($protocolo); - $this->test->byId('btnPesquisar')->click(); - } - - return $protocoloInput->value(); - } - - public function anexar() - { - $anexarButton = $this->test->byId('sbmAnexar'); - $anexarButton->click(); - $this->alertTextAndClose(); - } - - - public function anexarProcesso($protocolo) - { - $this->protocolo($protocolo); - $this->anexar(); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaAssinaturaDocumento.php b/tests_sei3/funcional/src/paginas/PaginaAssinaturaDocumento.php deleted file mode 100755 index 205de3dbb..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaAssinaturaDocumento.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaAssinaturaDocumento extends PaginaTeste -{ - const JANELA_ASSINATURA = "janelaAssinatura"; - - function __construct($test) - { - parent::__construct($test); - } - - public function assinante($strAssinante) - { - $this->test->window(self::JANELA_ASSINATURA); - $input = $this->test->byId("txtUsuario"); - - if(isset($strAssinante)){ - $input->value($strAssinante); - $this->test->waitUntil(function($testCase) { - $nomeAssinante = $testCase->byId("txtUsuario")->value(); - $testCase->byLinkText($nomeAssinante)->click(); - return true; - }, 8000); - } - - return $input->value(); - } - - public function senha($value) - { - $this->test->window(self::JANELA_ASSINATURA); - $input = $this->test->byId("pwdSenha"); - return $input->value($value); - } - - public function selecionarOrgaoAssinante($strOrgaoAssinante) - { - $this->test->window(self::JANELA_ASSINATURA); - $input = $this->test->byId("selOrgao"); - $this->test->select($input)->selectOptionByLabel($strOrgaoAssinante); - return $this->test->select($input)->selectedLabel(); - } - - public function selecionarCargoAssinante($strCargoAssinante) - { - $this->test->window(self::JANELA_ASSINATURA); - $input = $this->test->byId("selCargoFuncao"); - $this->test->select($input)->selectOptionByLabel($strCargoAssinante); - return $this->test->select($input)->selectedLabel(); - } - - public function assinarComLoginSenha($pwdSenha) - { - $this->test->window(self::JANELA_ASSINATURA); - $input = $this->test->byId("pwdSenha"); - $input->value($pwdSenha); - $this->test->keys(Keys::ENTER); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php b/tests_sei3/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php deleted file mode 100644 index 1f980863f..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php +++ /dev/null @@ -1,238 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaCadastrarProcessoEmBloco extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarListagemBlocoDeTramite() - { - $this->test->frame(null); - $xpath = "//a[contains(@href, 'acao=md_pen_tramita_em_bloco')]"; - $link = $this->test->byXPath($xpath); - $url = $link->attribute('href'); - $this->test->url($url); - } - - /** - * Setar parametro para novo mapeamento de orgos externos - * - * @return void - */ - public function setarParametros($estrutura, $origem) - { - $this->selectRepositorio($estrutura); - $this->selectUnidade($origem, 'Origem'); // Seleciona Orgo de Origem - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @return string - */ - private function selectRepositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade'); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - public function novoBlocoDeTramite() - { - $this->test->byId("bntNovo")->click(); - } - - - public function criarNovoBloco() - { - $this->test->byId('txtDescricao')->value('Bloco para teste automatizado'); - } - - public function editarBlocoDeTramite($descricao = null) - { - $this->test->byXPath("(//img[@title='Alterar Bloco'])[1]")->click(); - - if ($descricao != null) { - $this->test->byId('txtDescricao')->clear(); - $this->test->byId('txtDescricao')->value($descricao); - } - } - - public function selecionarExcluirBloco() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } - - public function tramitarProcessoExternamente($repositorio, $unidadeDestino, $unidadeDestinoHierarquia, $urgente = false, $callbackEnvio = null, $timeout = PEN_WAIT_TIMEOUT) - { - // Preencher parmetros do trmite - $this->selectRepositorio($repositorio); - $this->selectUnidade($unidadeDestino, 'origem', $unidadeDestinoHierarquia); - $this->btnEnviar(); - - if ($callbackEnvio == null) { - $mensagemAlerta = null; - try { - $mensagemAlerta = $this->alertTextAndClose(true); - } catch (Exception $e) { - } - if ($mensagemAlerta) { - throw new Exception($mensagemAlerta); - } - } - - try { - $mensagemAlerta = $this->alertTextAndClose(true); - } catch (Exception $e) { - } - - if (isset($mensagemAlerta)) { - throw new Exception($mensagemAlerta); - } - - $callbackEnvio = $callbackEnvio ?: function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = utf8_encode('Trmite externo do processo finalizado com sucesso!'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - }; - - try { - $this->test->waitUntil($callbackEnvio, $timeout); - } finally { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - sleep(1); - } - - public function realizarValidacaoRecebimentoProcessoNoDestinatario($processoTeste) - { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - - $this->test->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - print_r(count($listaDocumentos)); - - sleep(5); - - die('aki'); - } - - public function retornarTextoColunaDaTabelaDeBlocos() - { - $tabela = $this->test->byXPath('//tr[@class="infraTrClara odd"]'); - $terceiraColuna = $tabela->byXPath('./td[3]'); - - return $terceiraColuna->text(); - } - - public function retornarQuantidadeDeProcessosNoBloco() - { - // Localiza todas as linhas da tabela com o XPath - $linhasDaTabela = $this->test->elements($this->test->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - // Obtm o nmero de linhas - return count($linhasDaTabela); - } - - - public function bntTramitarBloco() - { - $this->test->byXPath("(//img[@title='Tramitar Bloco'])[1]")->click(); - } - - public function bntVisualizarProcessos() - { - $this->test->byXPath("(//img[@title='Visualizar Processos'])[1]")->click(); - } - - public function btnSalvar() - { - $buttonElement = $this->test->byXPath("//button[@type='submit' and @value='Salvar']"); - $buttonElement->click(); - } - - public function btnEnviar() - { - $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Enviar']"); - $buttonElement->click(); - } - -} \ No newline at end of file diff --git a/tests_sei3/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php b/tests_sei3/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php deleted file mode 100644 index f6c0ce38a..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php +++ /dev/null @@ -1,226 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Classe responsvel por teste funcional de - * mapeamento de envio parcial de componentes digitais - */ -class PaginaCadastroMapEnvioCompDigitais extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Clicar no boto novo - * - * @return void - */ - public function novo() - { - $this->test->byId("btnNovo")->click(); - } - - /** - * Selecionar repositrio - * Selecionar unidade - * - * @param string $estrutura - * @param string $unidade - * @return void - */ - public function setarParametros($estrutura, $unidade) - { - $this->selectRepositorio($estrutura); - $this->selectUnidade($unidade); - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @return string - */ - private function selectRepositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade'); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); - }catch(Exception $e){} - - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Clicar no boto salvar - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function editar() - { - $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); - } - - /** - * Exluir mapeamentos existentes - * - * @return void - */ - public function excluirMapeamentosExistentes() - { - try{ - $lnkInfraCheck=$this->test->byXPath('//*[@id="lnkInfraCheck"]'); - $lnkInfraCheck->click(); - $this->excluirSelecionados(); - sleep(1); - $mensagem = $this->buscarMensagemAlerta(); - $this->test->assertStringContainsString( - utf8_encode('Mapeamento excludo com sucesso.'), - $mensagem - ); - } catch (Exception $e) { - } - } - - /** - * Selecionar todos os resultados - * - * @return void - */ - public function selecionarTodos() - { - $this->test->byXPath('//*[@id="lnkInfraCheck"]')->click(); - } - - /** - * Excluir selecionados - * - * @return void - */ - public function excluirSelecionados() - { - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Selecionar primeira checkbox de excluso - * Seleciona boto excluir - * Seleciona boto de confirmao - * - * @return void - */ - public function selecionarExcluir() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no boto pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function selecionarPesquisa($textoPesquisa) - { - $this->test->byId('txtNomeEstrutura')->clear(); - $this->test->byId('txtNomeEstrutura')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Selecionar todos os intens para impresso - * - * @return void - */ - public function selecionarImprimir() - { - $this->test->byId("lnkInfraCheck")->click(); - // $this->test->byId("btnImprimir")->click(); - } - - /** - * Buscar item de tabela por nome - * - * @param string $nome - * @return string|null - */ - public function buscarNome($nome) - { - try { - $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); - return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? - $nomeSelecionado : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $bolExisteAlerta; - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/src/paginas/PaginaCadastroOrgaoExterno.php b/tests_sei3/funcional/src/paginas/PaginaCadastroOrgaoExterno.php deleted file mode 100644 index 142f3e132..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaCadastroOrgaoExterno.php +++ /dev/null @@ -1,264 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaCadastroOrgaoExterno extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarCadastroOrgaoExterno() - { - $this->test->frame(null); - $xpath = "//a[contains(@href, 'acao=pen_map_orgaos_externos_listar')]"; - $link = $this->test->byXPath($xpath); - $url = $link->attribute('href'); - $this->test->url($url); - } - - /** - * Setar parametro para novo mapeamento de orgos externos - * - * @return void - */ - public function setarParametros($estrutura, $origem, $destino) - { - $this->selectRepositorio($estrutura, 'Origem'); - $this->selectUnidade($origem, 'Origem'); // Seleciona Orgo de Origem - $this->selectUnidadeDestino($destino, 'Destino'); // Seleciona Orgo de Destino - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @param string $origemDestino - * @return string - */ - private function selectRepositorio($siglaRepositorio, $origemDestino) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas' . $origemDestino)); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas' . $origemDestino)->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade' . $origemDestino); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade' . $origemDestino)->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidadeDestino($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade' . $origemDestino); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade' . $origemDestino)->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Seleciona boto novo da pgina - * - * @return void - */ - public function novoMapOrgao() - { - $this->test->byId("btnNovo")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function editarMapOrgao() - { - $this->test->byXPath("(//img[@title='Alterar Relacionamento'])[1]")->click(); - } - - /** - * Selecionar primeira checkbox de excluso - * Seleciona boto excluir - * Seleciona boto de confirmao - * - * @return void - */ - public function selecionarExcluirMapOrgao() - { - $this->test->byXPath("(//input[@id='chkInfraItem0'])")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - - // return $this->alertTextAndClose(); - } - - /** - * Selcionar boto salvar da pgina - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - public function abrirSelecaoDeArquivoParaImportacao() - { - $this->test->byXPath("(//img[@title='Importar CSV'])[1]")->click(); - sleep(2); - $fileChooser = $this->test->byId('importArquivoCsv'); - $this->test->waitUntil(function ($testCase) use ($fileChooser) { - $fileChooser - ->sendKeys('/opt/sei/web/modulos/mod-sei-pen/tests_super/funcional/assets/arquivos/tipos_processos.csv') - ->keys(Keys::CLEAR); - },PEN_WAIT_TIMEOUT); - $this->test->waitUntil(function($testCase) { - return true; - }); - } - - /** - * Buscar orgo de origem por nome - * - * @param string $origem - * @return string|null - */ - public function buscarOrgaoOrigem($origem) - { - try { - $orgaoOrigem = $this->test->byXPath("//td[contains(.,'" . $origem . "')]")->text(); - return !empty($orgaoOrigem) && !is_null($orgaoOrigem) ? - $orgaoOrigem : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar orgo de destino por nome - * - * @param string $origem - * @return string|null - */ - public function buscarOrgaoDestino($destino) - { - try { - $orgaoDestino = $this->test->byXPath("//td[contains(.,'" . $destino . "')]")->text(); - return !empty($orgaoDestino) && !is_null($orgaoDestino) ? - $orgaoDestino : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $bolExisteAlerta; - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no bot?o pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function selecionarPesquisa($textoPesquisa) - { - $this->test->byId('txtSiglaOrigem')->clear(); - $this->test->byId('txtSiglaOrigem')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Buscar item de tabela por nome - * - * @param string $nome - * @return string|null - */ - public function buscarNome($nome) - { - try { - $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); - return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? - $nomeSelecionado : - null; - } catch (Exception $ex) { - return null; - } - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaCancelarDocumento.php b/tests_sei3/funcional/src/paginas/PaginaCancelarDocumento.php deleted file mode 100755 index 214cdeaf8..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaCancelarDocumento.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -class PaginaCancelarDocumento extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function cancelar($motivoCancelamento) - { - $this->motivoCancelamento($motivoCancelamento); - $this->salvar(); - } - - private function motivoCancelamento($value) - { - $input = $this->test->byId("txaMotivo"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - private function salvar() - { - $this->test->byId("sbmSalvar")->click(); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaConsultarAndamentos.php b/tests_sei3/funcional/src/paginas/PaginaConsultarAndamentos.php deleted file mode 100755 index ffd6bac8f..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaConsultarAndamentos.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -class PaginaConsultarAndamentos extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemTramite($mensagemTramite) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoEmTramitacao($strUnidadeDestino) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "Processo em tramitação externa para $strUnidadeDestino"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoRecebido($strUnidadeDestino) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "Recebido em $strUnidadeDestino"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoRejeitado($strUnidadeDestino, $strMotivo) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "O processo foi recusado pelo orgão $strUnidadeDestino pelo seguinte motivo: $strMotivo"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaControleProcesso.php b/tests_sei3/funcional/src/paginas/PaginaControleProcesso.php deleted file mode 100755 index 227f998e0..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaControleProcesso.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -class PaginaControleProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - protected function obterLinhasProcessos($processosGerados, $processosRecebidos) - { - $paineisPesquisa = array(); - if($processosGerados) $paineisPesquisa[] = 'tblProcessosGerados'; - if($processosRecebidos) $paineisPesquisa[] = 'tblProcessosRecebidos'; - - $resultado = array(); - foreach ($paineisPesquisa as $painel) { - try { - $resultado = array_merge($resultado, $this->test->byId($painel)->elements($this->test->using('css selector')->value('tr'))); - } catch (\Exception $th) { } - } - - return $resultado; - } - - protected function listarProcessos($processosGerados, $processosRecebidos) - { - $listaProtocolos = array(); - $processosRows = $this->obterLinhasProcessos($processosGerados, $processosRecebidos); - if(isset($processosRows) && count($processosRows) > 0){ - for ($i=1; $i < count($processosRows); $i++) { - $listaProtocolos[] = trim($processosRows[$i]->text()); - } - } - - return $listaProtocolos; - } - - public function processosGerados() - { - return $this->listarProcessos(true, false); - } - - public function processosRecebidos() - { - return $this->listarProcessos(false, true); - } - - public function contemProcesso($numeroProcesso, $processosGerados = true, $processosRecebidos = true) - { - $listaProcessos = $this->listarProcessos($processosGerados, $processosRecebidos); - return ($listaProcessos != null) ? in_array($numeroProcesso, $listaProcessos) : false; - } - - public function contemAlertaProcessoRecusado($numeroProcesso) - { - $processosRows = $this->obterLinhasProcessos(true, true); - foreach ($processosRows as $row) { - try{ - if(strpos($row->text(), $numeroProcesso) !== false){ - foreach ($row->elements($this->test->using('css selector')->value('img')) as $icone) { - if(strpos($icone->attribute("src"), 'pen_tramite_recusado.png') !== false) - return true; - } - } - } - catch(\Exception $e) { - return false; - } - } - - return false; - } - - public function localizarProcessoPelaDescricao($descricao) - { - $processosRows = $this->obterLinhasProcessos(true, true); - foreach ($processosRows as $row) { - try{ - foreach ($row->elements($this->test->using('css selector')->value('a')) as $link) { - if(strpos($link->attribute("onmouseover"), $descricao) !== false) - return $link->text(); - } - } - catch(\Exception $e) { - return false; - } - } - - return false; - } - - public function abrirProcesso($strProtocolo) - { - $this->test->byLinkText($strProtocolo)->click(); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaDocumento.php b/tests_sei3/funcional/src/paginas/PaginaDocumento.php deleted file mode 100755 index 231da8938..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaDocumento.php +++ /dev/null @@ -1,177 +0,0 @@ -<?php - -class PaginaDocumento extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarParaAssinarDocumento() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Assinar Documento']")->click(); - } - - public function navegarParaConsultarDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Consultar/Alterar Documento')]")->click(); - } - - public function navegarParaCancelarDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Cancelar Documento')]")->click(); - } - - public function navegarParaMoverDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Mover Documento para outro Processo')]")->click(); - } - - public function ehProcessoAnexado() - { - sleep(2); - - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//div[@id='divInformacao']/a[contains(@href, 'acao=procedimento_trabalhar')]"); - $this->test->byXPath("//img[contains(@alt, 'Desanexar Processo')]"); - return true; - } catch (\Exception $e) { - return false; - } - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function observacoesNaTabela($value = null) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byXPath("//table[@class='infraTable']//tr[2]/td[2]")->text(); - } - - public function dataElaboracao($value = null) - { - $input = $this->test->byId("txtDataElaboracao"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function nomeAnexo() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byXPath("//table[@id='tblAnexos']//tr[2]/td[2]")->text(); - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - $options = $this->test->byId('selInteressadosProcedimento')->elements($this->test->using('css selector')->value('option')); - return array_map(function($opt) {return $opt->text();}, $options); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("optRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("optSigiloso")->click(); - } - } - - if($this->test->byId("optPublico")->selected()) - return self::STA_NIVEL_ACESSO_PUBLICO; - else if($this->test->byId("optRestrito")->selected()) - return self::STA_NIVEL_ACESSO_RESTRITO; - else if($this->test->byId("optSigiloso")->selected()) - return self::STA_NIVEL_ACESSO_SIGILOSO; - - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function recuperarHipoteseLegal() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - return $select->selectedLabel(); - } - - public function salvarDocumento() - { - $this->test->byId("btnSalvar")->click(); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaEditarProcesso.php b/tests_sei3/funcional/src/paginas/PaginaEditarProcesso.php deleted file mode 100755 index 8d4061b48..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaEditarProcesso.php +++ /dev/null @@ -1,130 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaEditarProcesso extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function protocoloInformado($value = null) - { - $input = $this->test->byId("txtProtocoloInformar"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function dataGeracaoProtocolo($value = null) - { - $input = $this->test->byId("txtDtaGeracaoInformar"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("optRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("optSigiloso")->click(); - } - } - - if($this->test->byId("optPublico")->selected()) - return self::STA_NIVEL_ACESSO_PUBLICO; - else if($this->test->byId("optRestrito")->selected()) - return self::STA_NIVEL_ACESSO_RESTRITO; - else if($this->test->byId("optSigiloso")->selected()) - return self::STA_NIVEL_ACESSO_SIGILOSO; - - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - $options = $this->test->byId('selInteressadosProcedimento')->elements($this->test->using('css selector')->value('option')); - return array_map(function($opt) {return $opt->text();}, $options); - } - - public function salvarProcesso() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function recuperarHipoteseLegal() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - return $select->selectedLabel(); - } - - public function gerarProtocolo() - { - $strSequencia = str_pad(rand(1, 999999), 6, "0", STR_PAD_LEFT); - return '999990.' . $strSequencia . '/2015-00'; - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaEnviarProcesso.php b/tests_sei3/funcional/src/paginas/PaginaEnviarProcesso.php deleted file mode 100755 index 32eba51a6..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaEnviarProcesso.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php - -class PaginaEnviarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - $this->unidadeInput = $test->byId('txtUnidade'); - $this->manterAbertoCheck = $test->byId('chkSinManterAberto'); - $this->removerAnotacoesCheck = $test->byId('chkSinRemoverAnotacoes'); - $this->enviarNotificacaoCheck = $test->byId('chkSinEnviarEmailNotificacao'); - $this->dataCertaOption = $test->byId('optDataCerta'); - $this->prazoInput = $test->byId('txtPrazo'); - $this->diasOption = $test->byId('optDias'); - $this->diasInput = $test->byId('txtDias'); - $this->diasUteisInput = $test->byId('chkSinDiasUteis'); - $this->enviarButton = $test->byId('sbmEnviar'); - } - - public function adicionarUnidade($nomeUnidade) - { - $this->unidadeInput->value($nomeUnidade); - $this->test->waitUntil(function($testCase) { - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - $testCase->byLinkText($nomeUnidade)->click(); - return true; - }, 8000); - } - - public function salvar() - { - $this->enviarButton->click(); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaEnvioParcialListar.php b/tests_sei3/funcional/src/paginas/PaginaEnvioParcialListar.php deleted file mode 100644 index 68a63dfbc..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaEnvioParcialListar.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaEnvioParcialListar extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarEnvioParcialListar() - { - $this->test->frame(null); - $xpath = "//a[contains(@href, 'acao=pen_map_envio_parcial_listar')]"; - $link = $this->test->byXPath($xpath); - $url = $link->attribute('href'); - $this->test->url($url); - } - - public function reativarMapeamento() - { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Inativo"); - $this->test->byXPath("//a[contains(@class, 'reativar')]")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function reativarMapeamentoCheckbox() - { - $this->test->byXPath("(//input[@id='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnReativar")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function desativarMapeamento() - { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Ativo"); - $this->test->byXPath("//a[contains(@class, 'desativar')]")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function desativarMapeamentoCheckbox() - { - $this->test->byXPath("(//input[@id='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnDesativar")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function selectEstado($estado) - { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel($estado); - } - - public function mensagemValidacao($status) - { - return utf8_encode("Relacionamento entre Unidades foi {$status} com sucesso."); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/src/paginas/PaginaExportarTiposProcesso.php b/tests_sei3/funcional/src/paginas/PaginaExportarTiposProcesso.php deleted file mode 100644 index 64d01ac84..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaExportarTiposProcesso.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaExportarTiposProcesso extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarExportarTiposProcessos() - { - $this->test->frame(null); - $xpath = "//a[contains(@href, 'acao=pen_map_orgaos_exportar_tipos_processos')]"; - $link = $this->test->byXPath($xpath); - $url = $link->attribute('href'); - $this->test->url($url); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function selecionarParaExportar() - { - $this->test->byXPath("(//input[@id='chkInfraItem0'])")->click(); - $this->test->byXPath("(//input[@id='chkInfraItem2'])")->click(); - $this->test->byXPath("(//input[@id='chkInfraItem3'])")->click(); - $this->test->byXPath("(//input[@id='chkInfraItem5'])")->click(); - $this->test->byId("btnExportar")->click(); - } - - public function verificarExisteBotao(string $nomeBtn) - { - try { - return $this->test->byXPath("(//button[@id='".$nomeBtn."'])")->text(); - } catch (Exception $e) { - return null; - } - } - - public function verificarQuantidadeDeLinhasSelecionadas() - { - $this->test->waitUntil(function($testCase) { - $trs = $this->test->byId('tableExportar') - ->elements($this->test->using('css selector')->value('tr')); - $testCase->assertEquals(count($trs), 5); - return true; - }); - } - - public function btnExportar() - { - $this->test->byId("btnExportarModal")->click(); - sleep(5); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * - * @return void - */ - public function selecionarPesquisa() - { - $this->test->byId('txtNomeTipoProcessoPesquisa')->clear(); - $this->test->byId('txtNomeTipoProcessoPesquisa')->value('Ouvidoria'); - $this->test->byId("sbmPesquisar")->click(); - } - - /** - * Buscar se foi pesquisado - * - * @return void - */ - public function buscarPesquisa() - { - try { - $elementos = $this->test->byXPath("//td[contains(.,'Ouvidoria:')]")->text(); - return !empty($elementos) && !is_null($elementos); - } catch (Exception $e) { - return false; - } - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaIncluirDocumento.php b/tests_sei3/funcional/src/paginas/PaginaIncluirDocumento.php deleted file mode 100755 index fa7ef8954..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaIncluirDocumento.php +++ /dev/null @@ -1,189 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit_Extensions_Selenium2TestCase_Keys as Keys; - -class PaginaIncluirDocumento extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 1; - const STA_NIVEL_ACESSO_RESTRITO = 2; - const STA_NIVEL_ACESSO_SIGILOSO = 3; - - const STA_FORMATO_NATO_DIGITAL = 1; - - public function __construct($test) - { - parent::__construct($test); - } - - public function selecionarTipoDocumento($tipoDocumento) - { - try{ - $this->test->byId('txtFiltro')->value($tipoDocumento); - sleep(2); - $this->test->byLinkText($tipoDocumento)->click(); - } - catch (Exception $e){ - $this->test->byId("imgExibirSeries")->click(); - $this->test->byId('txtFiltro')->value($tipoDocumento); - sleep(2); - $this->test->byLinkText($tipoDocumento)->click(); - } - } - - public function selecionarTipoDocumentoExterno() - { - $this->selecionarTipoDocumento('Externo'); - } - - public function descricao($value) - { - $input = $this->test->byId("txtDescricao"); - return $input->value($value); - } - - public function tipoDocumento($value) - { - $input = $this->test->byId("selSerie"); - $this->test->select($input)->selectOptionByLabel($value); - } - - public function formato($value) - { - if($value != self::STA_FORMATO_NATO_DIGITAL) - throw new Exception("Outros formatos não implementados em PaginaIncluirDocumento"); - - $this->test->byId("divOptNato")->click(); - } - - public function anexo($arquivo) - { - $input = $this->test->byId("filArquivo"); - $input->value($arquivo); - $this->test->waitUntil(function($testCase) use($arquivo) { - $testCase->assertStringContainsString(basename($arquivo), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function dataElaboracao($value) - { - $input = $this->test->byId("txtDataElaboracao"); - return $input->value($value); - } - - public function observacoes($value) - { - $input = $this->test->byId("txaObservacoes"); - return $input->value($value); - } - - public function adicionarInteressado($nomeInteressado) - { - $input = $this->test->byId("txtInteressado"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - - sleep(2); - } - - public function salvarDocumento() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $input = $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $input = $this->test->byId("optRestrito")->click(); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $input = $this->test->byId("optSigiloso")->click(); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - /*$select = $this->test->select($this->test->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo);*/ - } - } - } - - public function gerarDocumentoTeste(array $dadosDocumento = null) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Incluir Documento']")->click(); - sleep(2); - - $dadosDocumento = $dadosDocumento ?: array(); - $dadosDocumento["TIPO_DOCUMENTO"] = @$dadosDocumento["TIPO_DOCUMENTO"] ?: "Ofcio"; - $dadosDocumento["DESCRICAO"] = @$dadosDocumento["DESCRICAO"] ?: util::random_string(20); - $dadosDocumento["OBSERVACOES"] = @$dadosDocumento["OBSERVACOES"] ?: util::random_string(100); - $dadosDocumento["INTERESSADOS"] = @$dadosDocumento["INTERESSADOS"] ?: util::random_string(40); - $dadosDocumento["RESTRICAO"] = @$dadosDocumento["RESTRICAO"] ?: PaginaIncluirDocumento::STA_NIVEL_ACESSO_PUBLICO; - $dadosDocumento["HIPOTESE_LEGAL"] = @$dadosDocumento["HIPOTESE_LEGAL"] ?: ""; - - //$paginaIncluirDocumento = new PaginaIncluirDocumento($test); - $this->selecionarTipoDocumento($dadosDocumento["TIPO_DOCUMENTO"]); - $this->descricao($dadosDocumento["DESCRICAO"]); - $this->observacoes($dadosDocumento["OBSERVACOES"]); - $this->selecionarRestricao($dadosDocumento["RESTRICAO"], $dadosDocumento["HIPOTESE_LEGAL"]); - $this->salvarDocumento(); - - $url = parse_url($this->test->byId("ifrArvoreHtml")->attribute("src")); - parse_str($url['query'], $query); - $dadosDocumento["ID_DOCUMENTO"] = $query["id_documento"]; - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->window($this->test->windowHandles()[1]); - $this->test->closeWindow(); - $this->test->window(''); - - $this->test->frame(NULL); - $this->test->frame("ifrArvore"); - - return trim($this->test->byId('anchor' . $query["id_documento"])->text()); - } - - public function gerarDocumentoExternoTeste(array $dadosDocumento, $comAnexo) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Incluir Documento']")->click(); - sleep(2); - - $dadosDocumento = $dadosDocumento ?: array(); - $dadosDocumento["TIPO_DOCUMENTO"] = @$dadosDocumento["TIPO_DOCUMENTO"] ?: "Ofcio"; - $dadosDocumento["DESCRICAO"] = @$dadosDocumento["DESCRICAO"] ?: util::random_string(20); - $dadosDocumento["DATA_ELABORACAO"] = @$dadosDocumento["DATA_ELABORACAO"] ?: date("d/m/Y"); - $dadosDocumento["FORMATO_DOCUMENTO"] = @$dadosDocumento["FORMATO_DOCUMENTO"] ?: self::STA_FORMATO_NATO_DIGITAL; - $dadosDocumento["OBSERVACOES"] = @$dadosDocumento["OBSERVACOES"] ?: util::random_string(100); - $dadosDocumento["INTERESSADOS"] = @$dadosDocumento["INTERESSADOS"] ?: util::random_string(40); - $dadosDocumento["RESTRICAO"] = @$dadosDocumento["RESTRICAO"] ?: PaginaIncluirDocumento::STA_NIVEL_ACESSO_PUBLICO; - $dadosDocumento["HIPOTESE_LEGAL"] = @$dadosDocumento["HIPOTESE_LEGAL"] ?: ""; - - $this->selecionarTipoDocumentoExterno(); - sleep(2); - $this->tipoDocumento($dadosDocumento["TIPO_DOCUMENTO"]); - sleep(2); - - $this->dataElaboracao($dadosDocumento["DATA_ELABORACAO"]); - $this->formato($dadosDocumento["FORMATO_DOCUMENTO"]); - if($comAnexo){ - $this->anexo($dadosDocumento["ARQUIVO"]); - } - $this->observacoes($dadosDocumento["OBSERVACOES"]); - $this->selecionarRestricao($dadosDocumento["RESTRICAO"], $dadosDocumento["HIPOTESE_LEGAL"]); - $this->salvarDocumento(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaIniciarProcesso.php b/tests_sei3/funcional/src/paginas/PaginaIniciarProcesso.php deleted file mode 100755 index c591e0edc..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaIniciarProcesso.php +++ /dev/null @@ -1,170 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - - -class PaginaIniciarProcesso extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function selecionarTipoProcesso($tipoProcesso) - { - try{ - $this->test->byId('txtFiltro')->value($tipoProcesso); - sleep(2); - $this->test->byLinkText($tipoProcesso)->click(); - } - catch (Exception $e){ - $this->test->byId("imgExibirTiposProcedimento")->click(); - $this->test->byId('txtFiltro')->value($tipoProcesso); - sleep(2); - $this->test->byLinkText($tipoProcesso)->click(); - } - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function selecionarProtocoloManual() - { - $this->test->byId("optProtocoloManual")->click(); - } - - public function protocoloInformado($value = null) - { - $input = $this->test->byId("txtProtocoloInformar"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function dataGeracaoProtocolo($value = null) - { - $input = $this->test->byId("txtDtaGeracaoInformar"); - if(isset($value)) $input->value($value); - return $input->value(); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("optRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("optSigiloso")->click(); - } - } - - if($this->test->byId("optPublico")->selected()) - return self::STA_NIVEL_ACESSO_PUBLICO; - else if($this->test->byId("optRestrito")->selected()) - return self::STA_NIVEL_ACESSO_RESTRITO; - else if($this->test->byId("optSigiloso")->selected()) - return self::STA_NIVEL_ACESSO_SIGILOSO; - - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - return $this->test->select($this->test->byId('selInteressadosProcedimento'))->selectedLabels(); - } - - public function salvarProcesso() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->test->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function gerarProtocolo() - { - $strSequencia = str_pad(rand(1, 999999), 6, "0", STR_PAD_LEFT); - return '999990.' . $strSequencia . '/2015-00'; - } - - public static function gerarProcessoTeste($test, array $dadosProcesso = null) - { - $test->byLinkText("Iniciar Processo")->click(); - - $dadosProcesso = $dadosProcesso ?: array(); - $dadosProcesso["TIPO_PROCESSO"] = @$dadosProcesso["TIPO_PROCESSO"] ?: "Licitao: Prego Eletrnico"; - $dadosProcesso["DESCRICAO"] = @$dadosProcesso["DESCRICAO"] ?: util::random_string(20); - $dadosProcesso["OBSERVACOES"] = @$dadosProcesso["OBSERVACOES"] ?: util::random_string(100); - $dadosProcesso["INTERESSADOS"] = @$dadosProcesso["INTERESSADOS"] ?: util::random_string(40); - $dadosProcesso["RESTRICAO"] = @$dadosProcesso["RESTRICAO"] ?: PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO; - $dadosProcesso["HIPOTESE_LEGAL"] = @$dadosProcesso["HIPOTESE_LEGAL"] ?: ""; - - $paginaIniciarProcesso = new PaginaIniciarProcesso($test); - $paginaIniciarProcesso->selecionarTipoProcesso($dadosProcesso["TIPO_PROCESSO"]); - $paginaIniciarProcesso->descricao($dadosProcesso["DESCRICAO"]); - $paginaIniciarProcesso->observacoes($dadosProcesso["OBSERVACOES"]); - $paginaIniciarProcesso->selecionarRestricao($dadosProcesso["RESTRICAO"], $dadosProcesso["HIPOTESE_LEGAL"]); - $paginaIniciarProcesso->adicionarInteressado($dadosProcesso["INTERESSADOS"]); - - $paginaIniciarProcesso->salvarProcesso(); - - $test->frame(null); - $test->frame("ifrArvore"); - $protocoloProcesso = trim($test->byXPath("//span[@title='". $dadosProcesso["TIPO_PROCESSO"] ."']")->text()); - - return $protocoloProcesso; - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaLogin.php b/tests_sei3/funcional/src/paginas/PaginaLogin.php deleted file mode 100755 index 211eca5ec..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaLogin.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php - -class PaginaLogin extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - $this->usuarioInput = $test->byId('txtUsuario'); - $this->passwordInput = $test->byId('pwdSenha'); - $this->loginButton = $test->byId('sbmLogin'); - } - - public function usuario($value) - { - if(isset($value)) - $this->usuarioInput->value($value); - - return $this->usuarioInput->value(); - } - - public function senha($value) - { - if(isset($value)) - $this->passwordInput->value($value); - - return $this->passwordInput->value(); - } - - public function orgao() - { - return $this->test->byId('divInfraBarraSuperior')->text(); - } - - public function submit() - { - $this->loginButton->click(); - return $this->test; - } - - public static function executarAutenticacao($test, $usuario="teste", $senha="teste") - { - $paginaLogin = new PaginaLogin($test); - $paginaLogin->usuario($usuario); - $paginaLogin->senha($senha); - $paginaLogin->submit(); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/src/paginas/PaginaMoverDocumento.php b/tests_sei3/funcional/src/paginas/PaginaMoverDocumento.php deleted file mode 100755 index 0064812a3..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaMoverDocumento.php +++ /dev/null @@ -1,44 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaMoverDocumento extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function moverDocumentoParaProcesso($protocoloDestino, $motivoMovimentacao) - { - $this->processoDestino($protocoloDestino); - $this->motivoMovimentacao($motivoMovimentacao); - $this->mover(); - } - - private function processoDestino($value) - { - $input = $this->test->byId("txtProcedimentoDestino"); - if(isset($value)) { - $input->value($value); - $this->test->keys(Keys::ENTER); - } - - return $input->value(); - } - - private function motivoMovimentacao($value) - { - $input = $this->test->byId("txaMotivo"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - private function mover() - { - $this->test->byId("sbmMover")->click(); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaProcesso.php b/tests_sei3/funcional/src/paginas/PaginaProcesso.php deleted file mode 100755 index ea9504df6..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaProcesso.php +++ /dev/null @@ -1,236 +0,0 @@ -<?php - -class PaginaProcesso extends PaginaTeste -{ - const STA_STATUS_PROCESSO_ABERTO = 1; - const STA_STATUS_PROCESSO_CONCLUIDO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function concluirProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $concluirProcessoButton = $this->test->byXPath("//img[@alt='Concluir Processo']"); - $concluirProcessoButton->click(); - } - - public function incluirDocumento() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $incluirDocumentoButton = $this->test->byXPath("//img[@alt='Incluir Documento']"); - $incluirDocumentoButton->click(); - } - - public function enviarProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Enviar Processo']")->click(); - } - - public function cancelarTramitacaoExterna() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath(utf8_encode("//img[@alt='Cancelar Tramitao Externa']"))->click(); - } - - public function navegarParaEditarProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Consultar/Alterar Processo']"); - $this->editarProcessoButton->click(); - } - - public function navegarParaTramitarProcesso() - { - $this->test->waitUntil(function($testCase) { - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Envio Externo de Processo']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString('Envio Externo de Processo', $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaConsultarAndamentos() - { - $this->test->waitUntil(function($testCase) { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $testCase->byLinkText('Consultar Andamento')->click(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - sleep(2); - $testCase->assertStringContainsString(utf8_encode('Histrico do Processo'), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaConsultarRecibos() - { - $this->test->waitUntil(function($testCase) { - // Selecionar processo na árvore - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Consultar Recibos']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString('Consultar Recibos', $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaAnexarProcesso() - { - $this->test->waitUntil(function($testCase) { - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Anexar Processo']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString(utf8_encode('Anexao de Processos'), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function informacao() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byId('divInformacao')->text(); - } - - public function processoAberto() - { - try - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Reabrir Processo']"); - return false; - } - catch(Exception $e) - { - return true; - } - } - - public function processoBloqueado() - { - try - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byXPath("//img[@title='Processo Bloqueado']"); - return true; - } - catch(Exception $e) - { - return false; - } - } - - public function deveSerDocumentoAnexo($bolDevePossuir, $nomeDocumentoArvore) - { - try - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - if($bolDevePossuir){ - $this->test->byLinkText($nomeDocumentoArvore)->byXPath(".//following-sibling::a[1]/img[@src='imagens/anexos.gif']"); - } - return true; - } - catch(Exception $e) - { - return false; - } - } - - public function ehDocumentoCancelado($nomeDocumentoArvore) - { - try - { - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeDocumentoArvore)->byXPath(".//preceding-sibling::a[1]/img[@src='imagens/protocolo_cancelado.gif']"); - return true; - } - catch(Exception $e) - { - return false; - }finally{ - $this->test->timeouts()->implicitWait($to); - } - } - - public function ehDocumentoMovido($nomeDocumentoArvore) - { - try - { - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeDocumentoArvore)->byXPath(".//preceding-sibling::a[1]/img[@src='imagens/sei_documento_movido.gif']"); - return true; - } - catch(Exception $e) - { - return false; - }finally{ - $this->test->timeouts()->implicitWait($to); - } - } - - private function selecionarItemArvore($nomeArvore) - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeArvore)->click(); - } - - public function selecionarDocumento($nomeDocumentoArvore) - { - $this->selecionarItemArvore($nomeDocumentoArvore); - } - - public function selecionarProcesso() - { - $this->selecionarItemArvore($this->listarArvoreProcesso()[0]); - sleep(1); - } - - public function listarDocumentos() - { - $itens = $this->listarArvoreProcesso(); - return (count($itens) > 1) ? array_slice($itens, 1) : null; - } - - private function listarArvoreProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $itens = $this->test->elements($this->test->using('css selector')->value('div.infraArvore > a > span')); - return array_map(function($item) {return $item->text();}, $itens); - } - -} diff --git a/tests_sei3/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php b/tests_sei3/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php deleted file mode 100755 index 410edf20e..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - -class PaginaProcessosTramitadosExternamente extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemProcesso($numeroProcesso) - { - return strpos($this->test->byCssSelector('body')->text(), $numeroProcesso) !== false; - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/src/paginas/PaginaReciboTramite.php b/tests_sei3/funcional/src/paginas/PaginaReciboTramite.php deleted file mode 100755 index 451bd858d..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaReciboTramite.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -class PaginaReciboTramite extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemTramite($mensagemTramite, $verificaReciboEnvio=false, $verificaReciboConclusao=false) - { - $result = false; - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - - //Localiza colunas com dados da tramitao - $linhasResumoTramite = $this->test->elements($this->test->using('css selector')->value('div.infraAreaTabela > table tr')); - if(count($linhasResumoTramite) > 0) { - foreach ($linhasResumoTramite as $linha) { - $colunas = $linha->elements($this->test->using('css selector')->value('td')); - - if(count($colunas) == 2){ - //Verifica se trmite informado foi localizado no histrico - $result = strpos($colunas[0]->text(), $mensagemTramite) !== false; - - //Verifica se recibo de envio do processo foi localizado - if($result && $verificaReciboEnvio) { - try{ - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $colunas[1]->element($this->test->using('css selector')->value(utf8_encode('a > img[title=\'Recibo de Confirmao de Envio\']'))); - } - catch(Exception $e){ $result = false; } - finally{ $this->test->timeouts()->implicitWait($to); } - } - - //Verifica se recibo de concluso do trmite processo foi localizado - if($result && $verificaReciboConclusao) { - try{ - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $colunas[1]->element($this->test->using('css selector')->value(utf8_encode('a > img[title=\'Recibo de Concluso de Trmite\']'))); - } - catch(Exception $e){ $result = false; } - finally{ $this->test->timeouts()->implicitWait($to); } - } - - if($result) { - break; - } - } - - } - } - - return $result; - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaTeste.php b/tests_sei3/funcional/src/paginas/PaginaTeste.php deleted file mode 100755 index e61e00cab..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaTeste.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTeste -{ - public function __construct($test) - { - $this->test = $test; - $this->test->timeouts()->implicitWait(10000); - } - - public function titulo() - { - return $this->test->title(); - } - - public function alertTextAndClose($confirm=true) - { - sleep(2); - $result = $this->test->alertText(); - $result = (!is_array($result) ? $result : null); - - if(isset($confirm) && $confirm) - $this->test->acceptAlert(); - else - $this->dismissAlert(); - - #var_dump($result); - return $result; - } - - public function unidadeContexto($unidadeContexto) - { - $this->test->frame(null); - $select = $this->test->select($this->test->byId('selInfraUnidades')); - $select->selectOptionByLabel($unidadeContexto); - } - - public function navegarParaControleProcesso() - { - $this->test->frame(null); - $this->test->byXPath("//img[@alt='Controle de Processos']")->click(); - } - - public function sairSistema() - { - $this->test->frame(null); - $this->test->byXPath("//img[@alt='Sair do Sistema']")->click(); - } - - public static function selecionarUnidadeContexto($test, $unidadeContexto) - { - $paginaTeste = new PaginaTeste($test); - $paginaTeste->unidadeContexto($unidadeContexto); - } - - public function pesquisar($termoPesquisa) - { - $this->test->frame(null); - $this->test->byId("txtPesquisaRapida")->value($termoPesquisa); - $this->test->keys(Keys::ENTER); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaTipoProcessoReativar.php b/tests_sei3/funcional/src/paginas/PaginaTipoProcessoReativar.php deleted file mode 100644 index 794a2f834..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaTipoProcessoReativar.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTipoProcessoReativar extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarTipoProcessoReativar() - { - $this->test->frame(null); - $xpath = "//a[contains(@href, 'acao=pen_map_tipo_processo_reativar')]"; - $link = $this->test->byXPath($xpath); - $url = $link->attribute('href'); - $this->test->url($url); - } - - public function reativarMapeamento() - { - $this->test->byXPath("//a[contains(@class, 'reativar')]")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); - } - - public function reativarMapeamentoCheckbox() - { - $this->test->byXPath("(//input[@id='chkInfraItem0'])")->click(); - $this->test->byXPath("(//input[@id='chkInfraItem1'])")->click(); - $this->test->byId("btnReativar")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null)$this->test->keys(Keys::ENTER); - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $bolExisteAlerta; - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaTramitarProcesso.php b/tests_sei3/funcional/src/paginas/PaginaTramitarProcesso.php deleted file mode 100755 index 1078b25b2..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaTramitarProcesso.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramitarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - - } - - public function repositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - public function unidade($nomeUnidade, $hierarquia=null) - { - $this->unidadeInput =$this->test->byId('txtUnidade'); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($hierarquia) { - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - public function urgente($urgente) - { - $this->urgenteCheck = $this->test->byId('chkSinUrgente'); - if(isset($urgente) && ((!$urgente && $this->urgenteCheck->selected()) || ($urgente && !$this->urgenteCheck->selected()))) - $this->urgenteCheck->click(); - - return $this->urgenteCheck->selected(); - } - - public function tramitar() - { - $tramitarButton = $this->test->byXPath("//button[@value='Enviar']"); - $tramitarButton->click(); - } - - public function fecharBarraProgresso() - { - $btnFechar = $this->test->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaTramitarProcessoEmLote.php b/tests_sei3/funcional/src/paginas/PaginaTramitarProcessoEmLote.php deleted file mode 100755 index 49ed14d39..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaTramitarProcessoEmLote.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramitarProcessoEmLote extends PaginaTeste -{ - const STA_ANDAMENTO_PROCESSAMENTO = "Em Processamento"; - const STA_ANDAMENTO_CANCELADO = "Cancelado"; - const STA_ANDAMENTO_CONCLUIDO = "Concludo"; - - public function __construct($test) - { - parent::__construct($test); - - } - - public function selecionarProcessos($numProtocolo=null) - { - - if(is_null($numProtocolo)){ - try{ - $chkGerados = $this->test->byXPath("//*[@id='imgGeradosCheck']"); - $chkGerados->click(); - } catch(Exception $e){} - - try{ - $chkRecebidos = $this->test->byXPath("//*[@id='imgRecebidosCheck']"); - $chkRecebidos->click(); - } catch(Exception $e){} - }else{ - $chkProtocolo = $this->test->byXPath('//tr[contains(.,"'.$numProtocolo.'")]/td'); - $chkProtocolo->click(); - } - - } - - public function navegarControleProcessos() - { - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Envio Externo de Processo em Lote']"); - $this->editarProcessoButton->click(); - } - - public function informacaoLote() - { - return $this->test->byId('divInfraAreaTelaD')->text(); - } - - public function navegarProcessoEmLote($selAndamento, $numProtocolo=null) - { - if(!is_null($selAndamento)){ - $select = $this->test->select($this->test->byId('selAndamento')); - $select->selectOptionByLabel($selAndamento); - } - - if(!is_null($numProtocolo)){ - $this->protocoloInput=$this->test->byId('txtProcedimentoFormatado'); - $this->protocoloInput->value($numProtocolo); - } - - $this->presquisarProcessoButton = $this->test->byXPath("//*[@id='sbmPesquisar']"); - $this->presquisarProcessoButton->click(); - - } -} diff --git a/tests_sei3/funcional/src/paginas/PaginaTramiteEmBloco.php b/tests_sei3/funcional/src/paginas/PaginaTramiteEmBloco.php deleted file mode 100644 index ee268e290..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaTramiteEmBloco.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Classe de teste da pgina de tramite em bloco - */ -class PaginaTramiteEmBloco extends PaginaTeste -{ - const STA_ANDAMENTO_PROCESSAMENTO = "Aguardando Processamento"; - const STA_ANDAMENTO_CANCELADO = "Cancelado"; - const STA_ANDAMENTO_CONCLUIDO = "Concludo"; - - /** - * @inheritdoc - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Selecionar processo - * @param array $arrNumProtocolo - * @return void - */ - public function selecionarProcessos($numProtocolo) - { - if(!is_null($numProtocolo)){ - $checkbox = $this->test->byCssSelector('input[title="' . $numProtocolo . '"]'); - $checkbox->click(); - } - } - - /** - * Selecionar tramite em bloco - * @return void - */ - public function selecionarTramiteEmBloco() - { - $btnTramiteEmBloco = $this->test->byXPath( - "//img[@alt='". utf8_encode("Incluir Processos no Bloco de Trmite") ."']" - ); - $btnTramiteEmBloco->click(); - } - - /** - * Selecionar bloco - * @param string $selAndamento - * @return void - */ - public function selecionarBloco() - { - $select = $this->test->select($this->test->byId('selBlocos')); - $select->selectOptionByValue(); - } - - /** - * Clicar em salvar - * @return void - */ - public function clicarSalvar() - { - $btnSalvar = $this->test->byXPath("//button[@name='sbmCadastrarProcessoEmBloco']"); - $btnSalvar->click(); - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $bolExisteAlerta; - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php b/tests_sei3/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php deleted file mode 100644 index d68c387ca..000000000 --- a/tests_sei3/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramiteMapeamentoOrgaoExterno extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarRelacionamentoEntreOrgaos() - { - $this->test->frame(null); - $xpath = "//a[contains(@href, 'acao=pen_map_orgaos_externos_listar')]"; - $link = $this->test->byXPath($xpath); - $url = $link->attribute('href'); - $this->test->url($url); - } - - public function reativarMapeamento() - { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Inativo"); - $this->test->byXPath("//a[contains(@class, 'reativar')]")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function reativarMapeamentoCheckbox() - { - $this->test->byXPath("(//input[@id='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnReativar")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function desativarMapeamento() - { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Ativo"); - $this->test->byXPath("//a[contains(@class, 'desativar')]")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function desativarMapeamentoCheckbox() - { - $this->test->byXPath("(//input[@id='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnDesativar")->click(); - $bolExisteAlerta = $this->alertTextAndClose(); - $bolExisteAlerta != null ? $this->test->keys(Keys::ENTER) : null; - - return $this->alertTextAndClose(); - } - - public function selectEstado($estado) - { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel($estado); - } - - public function mensagemValidacao($status) - { - return utf8_encode("Relacionamento entre Unidades foi {$status} com sucesso."); - } -} diff --git a/tests_sei3/funcional/src/utils/DatabaseUtils.php b/tests_sei3/funcional/src/utils/DatabaseUtils.php deleted file mode 100755 index 6c43f4bd4..000000000 --- a/tests_sei3/funcional/src/utils/DatabaseUtils.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -class DatabaseUtils -{ - private $connection; - - function __construct($nomeContexto) - { - $dns = getenv($nomeContexto . '_DB_SEI_DSN'); - $user = getenv("SEI_DATABASE_USER"); - $password = getenv("SEI_DATABASE_PASSWORD"); - $this->connection = new PDO($dns, $user, $password); - } - - - public function execute($sql, $params){ - $statement = $this->connection->prepare($sql); - $result = $statement->execute($params); - return $result; - } - - - public function query($sql, $params){ - $statement = $this->connection->prepare($sql); - $statement->execute($params); - return $statement->fetchAll(); - } - - - public function getBdType(){ - return $this->connection->getAttribute(PDO::ATTR_DRIVER_NAME); - } -} diff --git a/tests_sei3/funcional/src/utils/ParameterUtils.php b/tests_sei3/funcional/src/utils/ParameterUtils.php deleted file mode 100755 index d91d90ead..000000000 --- a/tests_sei3/funcional/src/utils/ParameterUtils.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -require_once dirname(__FILE__)."/DatabaseUtils.php"; - -class ParameterUtils{ - - const SEI_HABILITAR_NUMERO_PROCESSO_INFORMADO = "SEI_HABILITAR_NUMERO_PROCESSO_INFORMADO"; - const PARAM_NUMERO_INFORMADO_DESABILITADO = 0; - const PARAM_NUMERO_INFORMADO_PROTOCOLO = 1; - const PARAM_NUMERO_INFORMADO_UNIDADES = 2; - - private $databaseUtils; - - function __construct($nomeContexto) - { - $this->databaseUtils = new DatabaseUtils($nomeContexto); - } - - public function getParameter($parameter){ - $result = null; - $query = "SELECT valor FROM md_pen_parametro WHERE nome = ?"; - $values = $this->databaseUtils->query($query, array($parameter)); - - if(isset($values)){ - $result = $values[0]["valor"]; - } - - return $result; - } - - public function setParameter($parameter, $value){ - $query = "UPDATE md_pen_parametro SET valor = ? WHERE nome = ?"; - return $this->databaseUtils->execute($query, array($value, $parameter)); - } -} diff --git a/tests_sei3/funcional/tests/CancelamentoTramiteProcessoTest.php b/tests_sei3/funcional/tests/CancelamentoTramiteProcessoTest.php deleted file mode 100755 index e1f6c4c85..000000000 --- a/tests_sei3/funcional/tests/CancelamentoTramiteProcessoTest.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * - * Execution Groups - * @group execute_without_receiving - */ -class CancelamentoTramiteProcessoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de cancelamento de trmite com processo contendo documento gerado (interno) - * - * @group envio - * - * @return void - */ - public function test_cancelamento_tramite_contendo_documento_interno() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoInterno(self::$documentoTeste); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false - ); - - $this->paginaProcesso->cancelarTramitacaoExterna(); - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - $mensagemEsperada = utf8_encode("O trmite externo do processo foi cancelado com sucesso!"); - $this->assertStringContainsString($mensagemEsperada, $mensagemAlerta); - $this->assertFalse($this->paginaProcesso->processoBloqueado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertFalse($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - - } - - /** - * Teste de verificao que o processo cancelado no foi efetivamente recebido no sistema destinatrio - * - * @group verificacao_recebimento - * - * @depends test_cancelamento_tramite_contendo_documento_interno - * - * @return void - */ - public function test_verificar_nao_recebimento_processo_destinatario_documento_interno() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } - - - /** - * Teste de cancelamento de trmite com processo contendo documento externo - * - * @group envio - * - * @return void - */ - public function test_cancelamento_tramite_contendo_documento_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_001.pdf'); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste); - - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false - ); - - $this->paginaProcesso->cancelarTramitacaoExterna(); - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - $mensagemEsperada = utf8_encode("O trmite externo do processo foi cancelado com sucesso!"); - $this->assertStringContainsString($mensagemEsperada, $mensagemAlerta); - $this->assertFalse($this->paginaProcesso->processoBloqueado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertFalse($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - - } - - /** - * Teste de verificao que o processo cancelado no foi efetivamente recebido no sistema destinatrio - * - * @group verificacao_recebimento - * - * @depends test_cancelamento_tramite_contendo_documento_externo - * - * @return void - */ - public function test_verificar_nao_recebimento_processo_destinatario_documento_externo() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei3/funcional/tests/CenarioBaseTestCase.php b/tests_sei3/funcional/tests/CenarioBaseTestCase.php deleted file mode 100755 index 75cd9f98a..000000000 --- a/tests_sei3/funcional/tests/CenarioBaseTestCase.php +++ /dev/null @@ -1,815 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase; - -use function PHPSTORM_META\map; - -/** - * Classe base contendo rotinas comuns utilizadas nos casos de teste do mdulo - */ -class CenarioBaseTestCase extends Selenium2TestCase -{ - const PASTA_ARQUIVOS_TESTE = "/tmp"; - - //Referncia para unidades que sero consideradas no fluxo de trmite (Remetente -> Destinatrio) - protected static $urlSistemaRemetente = null; - protected static $siglaOrgaoRemetente = null; - protected static $siglaUnidadeRemetente = null; - protected static $nomeUnidadeRemetente = null; - - protected static $urlSistemaDestinatario = null; - protected static $siglaOrgaoDestinatario = null; - protected static $siglaUnidadeDestinatario = null; - protected static $nomeUnidadeDestinatario = null; - - //Referncias para as pginas do SEI utilizadas nos cenarios de teste - protected $paginaBase = null; - protected $paginaProcesso = null; - protected $paginaTramitar = null; - protected $paginaDocumento = null; - protected $paginaReciboTramite = null; - protected $paginaEditarProcesso = null; - protected $paginaControleProcesso = null; - protected $paginaConsultarAndamentos = null; - protected $paginaAssinaturaDocumento = null; - protected $paginaIncluirDocumento = null; - protected $paginaProcessosTramitadosExternamente = null; - protected $paginaAnexarProcesso = null; - protected $paginaCancelarDocumento = null; - protected $paginaTramitarProcessoEmLote = null; - protected $paginaMoverDocumento = null; - protected $paginaCadastroOrgaoExterno = null; - protected $paginaCadastroMapEnvioCompDigitais = null; - protected $paginaTramiteMapeamentoOrgaoExterno = null; - protected $paginaExportarTiposProcesso = null; - protected $paginaTipoProcessoReativar = null; - protected $paginaCadastrarProcessoEmBloco = null; - protected $paginaTramiteEmBloco = null; - protected $paginaEnvioParcialListar = null; - - public function setUpPage(): void - { - $this->paginaBase = new PaginaTeste($this); - $this->paginaDocumento = new PaginaDocumento($this); - $this->paginaAssinaturaDocumento = new PaginaAssinaturaDocumento($this); - $this->paginaProcesso = new PaginaProcesso($this); - $this->paginaTramitar = new PaginaTramitarProcesso($this); - $this->paginaReciboTramite = new PaginaReciboTramite($this); - $this->paginaConsultarAndamentos = new PaginaConsultarAndamentos($this); - $this->paginaProcessosTramitadosExternamente = new PaginaProcessosTramitadosExternamente($this); - $this->paginaControleProcesso = new PaginaControleProcesso($this); - $this->paginaIncluirDocumento = new PaginaIncluirDocumento($this); - $this->paginaEditarProcesso = new PaginaEditarProcesso($this); - $this->paginaAnexarProcesso = new PaginaAnexarProcesso($this); - $this->paginaCancelarDocumento = new PaginaCancelarDocumento($this); - $this->paginaMoverDocumento = new PaginaMoverDocumento($this); - $this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this); - $this->paginaTramiteMapeamentoOrgaoExterno = new PaginaTramiteMapeamentoOrgaoExterno($this); - $this->paginaCadastroMapEnvioCompDigitais = new PaginaCadastroMapEnvioCompDigitais($this); - $this->paginaCadastroOrgaoExterno = new PaginaCadastroOrgaoExterno($this); - $this->paginaExportarTiposProcesso = new PaginaExportarTiposProcesso($this); - $this->paginaTipoProcessoReativar = new PaginaTipoProcessoReativar($this); - $this->paginaCadastrarProcessoEmBloco = new PaginaCadastrarProcessoEmBloco($this); - $this->paginaTramiteEmBloco = new PaginaTramiteEmBloco($this); - $this->paginaEnvioParcialListar = new PaginaEnvioParcialListar($this); - $this->currentWindow()->maximize(); - } - - public static function setUpBeforeClass(): void - { - //TODO: Migrar todo o cdigo abaixo para uma classe utilitria de configurao dos testes - /***************** CONFIGURAO PRELIMINAR DO RGO 1 *****************/ - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ID_REPOSITORIO_ORIGEM', CONTEXTO_ORGAO_A_ID_REP_ESTRUTURAS); - $parametrosOrgaoA->setParameter('PEN_TIPO_PROCESSO_EXTERNO', '100000256'); - $parametrosOrgaoA->setParameter('HIPOTESE_LEGAL_PADRAO', '1'); // Controle Interno - $parametrosOrgaoA->setParameter('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '110000003'); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update unidade set sin_envio_processo=? where sigla=?", array('S', 'TESTE_1_2')); - - // Configurao do mapeamento de unidades - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000001', CONTEXTO_ORGAO_A_ID_ESTRUTURA)); - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); - // Configurao do prefxo de processos - $bancoOrgaoA->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_A_NUMERO_SEI, CONTEXTO_ORGAO_A_SIGLA_ORGAO)); - $bancoOrgaoA->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_A_SIGLA_UNIDADE)); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); - - // Remoo de mapeamento de espcie no mapeada na origem - $nomeSerieNaoMapeada = utf8_encode(CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO); - $serieNaoMapeadaOrigem = $bancoOrgaoA->query('select ID_SERIE from serie where nome = ?', array($nomeSerieNaoMapeada)); - $bancoOrgaoA->execute("delete from md_pen_rel_doc_map_enviado where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(1, 3, 3, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(2, 4, 4, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(3, 3, 3, 'R', 'S')); - - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - // Habilitao da extenso docx - $bancoOrgaoA->execute("update arquivo_extensao set sin_ativo=? where extensao=?", array('S', 'docx')); - - /***************** CONFIGURAO PRELIMINAR DO RGO 2 *****************/ - $parametrosOrgaoB = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoB->setParameter('PEN_ID_REPOSITORIO_ORIGEM', CONTEXTO_ORGAO_B_ID_REP_ESTRUTURAS); - $parametrosOrgaoB->setParameter('PEN_TIPO_PROCESSO_EXTERNO', '100000256'); - $parametrosOrgaoB->setParameter('HIPOTESE_LEGAL_PADRAO', '1'); // Controle Interno - $parametrosOrgaoB->setParameter('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '110000003'); - - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update unidade set sin_envio_processo=? where sigla=?", array('S', 'TESTE_1_2')); - - $bancoOrgaoB->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values ('110000001', ?)", array(CONTEXTO_ORGAO_B_ID_ESTRUTURA)); - $bancoOrgaoB->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values ('110000002', ?)", array(CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA)); - - $bancoOrgaoB->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_B_NUMERO_SEI, CONTEXTO_ORGAO_B_SIGLA_ORGAO)); - $bancoOrgaoB->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_B_SIGLA_UNIDADE)); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasPEN'", null); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - // Remoo de mapeamento de espcie no mapeada na origem - $nomeSerieNaoMapeada = utf8_encode(CONTEXTO_ORGAO_B_TIPO_DOCUMENTO_NAO_MAPEADO); - $serieNaoMapeadaOrigem = $bancoOrgaoB->query('select ID_SERIE from serie where nome = ?', array($nomeSerieNaoMapeada)); - $bancoOrgaoB->execute("delete from md_pen_rel_doc_map_recebido where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(4, 3, 3, 'E', 'S')); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(5, 3, 3, 'R', 'S')); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - //para corrigir o erro do oracle que retorna stream sem acentuao das palavras no teste de URL - if ($bancoOrgaoA->getBdType() == "oci") { - $result = $bancoOrgaoA->query("SELECT texto FROM tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?", array("V", "S")); - $strTarja = stream_get_contents($result[0]["TEXTO"]); - $bancoOrgaoA->execute("update tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=?", array($strTarja, "V", "S")); - } - } - - public static function tearDownAfterClass(): void - { - } - - public function setUp(): void - { - $this->setHost(PHPUNIT_HOST); - $this->setPort(intval(PHPUNIT_PORT)); - $this->setBrowser(PHPUNIT_BROWSER); - $this->setBrowserUrl(PHPUNIT_TESTS_URL); - $this->setDesiredCapabilities( - array( - 'platform' => 'LINUX', - 'chromeOptions' => array( - 'w3c' => false, - 'args' => [ - '--profile-directory=' . uniqid(), - '--disable-features=TranslateUI', - '--disable-translate', - ], - ) - ) - ); - } - - protected function definirRemetenteProcesso($urlSistema, $siglaOrgao, $siglaUnidade, $nomeUnidade) - { - self::$urlSistemaRemetente = $urlSistema; - self::$siglaOrgaoRemetente = $siglaOrgao; - self::$siglaUnidadeRemetente = $siglaUnidade; - self::$nomeUnidadeRemetente = $nomeUnidade; - } - - protected function definirDestinatarioProcesso($urlSistema, $siglaOrgao, $siglaUnidade, $nomeUnidade) - { - self::$urlSistemaDestinatario = $urlSistema; - self::$siglaOrgaoDestinatario = $siglaOrgao; - self::$siglaUnidadeDestinatario = $siglaUnidade; - self::$nomeUnidadeDestinatario = $nomeUnidade; - } - - protected function definirContextoTeste($nomeContexto) - { - $objContexto = array( - 'URL' => constant($nomeContexto . '_URL'), - 'ORGAO' => constant($nomeContexto . '_SIGLA_ORGAO'), - 'SIGLA_UNIDADE' => constant($nomeContexto . '_SIGLA_UNIDADE'), - 'SIGLA_UNIDADE_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_HIERARQUIA'), - 'NOME_UNIDADE' => constant($nomeContexto . '_NOME_UNIDADE'), - 'LOGIN' => constant($nomeContexto . '_USUARIO_LOGIN'), - 'SENHA' => constant($nomeContexto . '_USUARIO_SENHA'), - 'TIPO_PROCESSO' => constant($nomeContexto . '_TIPO_PROCESSO'), - 'TIPO_DOCUMENTO' => constant($nomeContexto . '_TIPO_DOCUMENTO'), - 'TIPO_DOCUMENTO_NAO_MAPEADO' => constant($nomeContexto . '_TIPO_DOCUMENTO_NAO_MAPEADO'), - 'CARGO_ASSINATURA' => constant($nomeContexto . '_CARGO_ASSINATURA'), - 'SIGLA_UNIDADE_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_HIERARQUIA'), - 'SIGLA_UNIDADE_SECUNDARIA' => constant($nomeContexto . '_SIGLA_UNIDADE_SECUNDARIA'), - 'SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA'), - 'NOME_UNIDADE_SECUNDARIA' => constant($nomeContexto . '_NOME_UNIDADE_SECUNDARIA'), - 'HIPOTESE_RESTRICAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO'), - 'HIPOTESE_RESTRICAO_NAO_MAPEADO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_NAO_MAPEADO'), - 'REP_ESTRUTURAS' => constant($nomeContexto . '_REP_ESTRUTURAS'), - 'HIPOTESE_RESTRICAO_PADRAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_PADRAO'), - 'ID_REP_ESTRUTURAS' => constant($nomeContexto . '_ID_REP_ESTRUTURAS'), - 'ID_ESTRUTURA' => constant($nomeContexto . '_ID_ESTRUTURA'), - 'SIGLA_ESTRUTURA' => constant($nomeContexto . '_SIGLA_ESTRUTURA'), - 'HIPOTESE_RESTRICAO_INATIVA' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_INATIVA'), - 'TIPO_PROCESSO_SIGILOSO' => constant($nomeContexto . '_TIPO_PROCESSO_SIGILOSO'), - 'HIPOTESE_SIGILOSO' => constant($nomeContexto . '_HIPOTESE_SIGILOSO'), - ); - switch ($nomeContexto) { - case CONTEXTO_ORGAO_A: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO_SENHA'); - break; - - case CONTEXTO_ORGAO_B: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG2_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG2_CERTIFICADO_SENHA'); - break; - - default: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO_SENHA'); - break; - } - - return $objContexto; - } - - protected function acessarSistema($url, $siglaUnidade, $login, $senha) - { - $this->url($url); - PaginaLogin::executarAutenticacao($this, $login, $senha); - PaginaTeste::selecionarUnidadeContexto($this, $siglaUnidade); - $this->url($url); - } - - protected function selecionarUnidadeInterna($unidadeDestino) - { - PaginaTeste::selecionarUnidadeContexto($this, $unidadeDestino); - } - - protected function sairSistema() - { - $this->paginaBase->sairSistema(); - } - - protected function cadastrarProcesso(&$dadosProcesso) - { - $this->paginaBase->navegarParaControleProcesso(); - $protocoloGerado = PaginaIniciarProcesso::gerarProcessoTeste($this, $dadosProcesso); - $dadosProcesso['PROTOCOLO'] = $protocoloGerado; - sleep(2); - return $protocoloGerado; - } - - protected function abrirProcesso($protocolo) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($protocolo); - } - - protected function abrirProcessoPelaDescricao($descricao) - { - $this->paginaBase->navegarParaControleProcesso(); - $protocolo = $this->paginaControleProcesso->localizarProcessoPelaDescricao($descricao); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo); - } - return $protocolo; - } - - protected function cadastrarDocumentoInterno($dadosDocumentoInterno) - { - $this->paginaProcesso->selecionarProcesso(); - $this->paginaIncluirDocumento->gerarDocumentoTeste($dadosDocumentoInterno); - sleep(2); - } - - protected function cadastrarDocumentoExterno($dadosDocumentoExterno, $comAnexo = true) - { - $this->paginaProcesso->selecionarProcesso(); - $this->paginaIncluirDocumento->gerarDocumentoExternoTeste($dadosDocumentoExterno, $comAnexo); - sleep(2); - } - - protected function assinarDocumento($siglaOrgao, $cargoAssinante, $loginSenha) - { - // Navegar para pgina de assinatura - $this->paginaDocumento->navegarParaAssinarDocumento(); - sleep(2); - - // Assinar documento - $this->paginaAssinaturaDocumento->selecionarOrgaoAssinante($siglaOrgao); - $this->paginaAssinaturaDocumento->selecionarCargoAssinante($cargoAssinante); - $this->paginaAssinaturaDocumento->assinarComLoginSenha($loginSenha); - $this->window(''); - sleep(2); - } - - protected function anexarProcesso($protocoloProcessoAnexado) - { - $this->paginaProcesso->navegarParaAnexarProcesso(); - $this->paginaAnexarProcesso->anexarProcesso($protocoloProcessoAnexado); - } - - protected function tramitarProcessoExternamente($protocolo, $repositorio, $unidadeDestino, $unidadeDestinoHierarquia, $urgente = false, $callbackEnvio = null, $timeout = PEN_WAIT_TIMEOUT) - { - // Acessar funcionalidade de trmite externo - try { - $this->paginaTramitarProcessoEmLote->navegarControleProcessos(); - } catch (Exception $e) { - $this->paginaProcesso->navegarParaTramitarProcesso(); - } - - // Preencher parmetros do trmite - $this->paginaTramitar->repositorio($repositorio); - $this->paginaTramitar->unidade($unidadeDestino, $unidadeDestinoHierarquia); - $this->paginaTramitar->tramitar(); - - if ($callbackEnvio == null) { - $mensagemAlerta = null; - try { - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - } catch (Exception $e) { - } - if ($mensagemAlerta) { - throw new Exception($mensagemAlerta); - } - } - - try { - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - } catch (Exception $e) { - } - - if (isset($mensagemAlerta)) { - throw new Exception($mensagemAlerta); - } - - $callbackEnvio = $callbackEnvio ?: function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = utf8_encode('Trmite externo do processo finalizado com sucesso!'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - }; - - try { - $this->waitUntil($callbackEnvio, $timeout); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - sleep(1); - } - - protected function tramitarProcessoInternamente($unidadeDestino) - { - // Acessar funcionalidade de trmite interno - $this->paginaProcesso->navegarParaTramitarProcessoInterno(); - - // Preencher parmetros do trmite - $this->paginaTramitar->unidadeInterna($unidadeDestino); - $this->paginaTramitar->tramitarInterno(); - - sleep(1); - } - - protected function navegarParaCancelarDocumento($ordemDocumento) - { - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - $this->paginaProcesso->selecionarDocumento($listaDocumentos[$ordemDocumento]); - $this->paginaDocumento->navegarParaCancelarDocumento(); - } - - protected function tramitarProcessoInternamenteParaCancelamento($unidadeOrigem, $unidadeDestino, $protocolo) - { - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamente($unidadeDestino); - - //Selecionar unidade interna - $this->selecionarUnidadeInterna($unidadeDestino); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo['PROTOCOLO']); - } - - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamente($unidadeOrigem); - - //Selecionar unidade interna - $this->selecionarUnidadeInterna($unidadeOrigem); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo['PROTOCOLO']); - } - - sleep(1); - } - - protected function validarRecibosTramite($mensagem, $verificarReciboEnvio, $verificarReciboConclusao) - { - $mensagem = utf8_encode($mensagem); - $this->waitUntil(function ($testCase) use ($mensagem, $verificarReciboEnvio, $verificarReciboConclusao) { - sleep(5); - $testCase->refresh(); - $testCase->paginaProcesso->navegarParaConsultarRecibos(); - $this->assertTrue($testCase->paginaReciboTramite->contemTramite($mensagem, $verificarReciboEnvio, $verificarReciboConclusao)); - return true; - }, PEN_WAIT_TIMEOUT); - } - - protected function validarHistoricoTramite( - $unidadeDestino, - $verificarProcessoEmTramitacao = true, - $verificarProcessoRecebido = true, - $verificarProcessoRejeitado = false, - $motivoRecusa = null - ) { - $this->paginaProcesso->navegarParaConsultarAndamentos(); - - if ($verificarProcessoEmTramitacao) { - $this->assertTrue($this->paginaConsultarAndamentos->contemTramiteProcessoEmTramitacao($unidadeDestino)); - } - - if ($verificarProcessoRecebido) { - $this->assertTrue($this->paginaConsultarAndamentos->contemTramiteProcessoRecebido($unidadeDestino)); - } - - if ($verificarProcessoRejeitado) { - - $motivoRecusa = utf8_encode($motivoRecusa); - $this->waitUntil(function ($testCase) use ($unidadeDestino, $motivoRecusa) { - sleep(5); - $testCase->refresh(); - $testCase->paginaProcesso->navegarParaConsultarAndamentos(); - $this->assertTrue($testCase->paginaConsultarAndamentos->contemTramiteProcessoRejeitado($unidadeDestino, $motivoRecusa)); - return true; - }, PEN_WAIT_TIMEOUT); - } - } - - protected function validarDadosProcesso($descricao, $restricao, $observacoes, $listaInteressados, $hipoteseLegal = null) - { - sleep(2); - $this->paginaProcesso->navegarParaEditarProcesso(); - $this->paginaEditarProcesso = new PaginaEditarProcesso($this); - $this->assertEquals(utf8_encode($descricao), $this->paginaEditarProcesso->descricao()); - $this->assertEquals($restricao, $this->paginaEditarProcesso->restricao()); - - $listaInteressados = is_array($listaInteressados) ? $listaInteressados : array($listaInteressados); - for ($i = 0; $i < count($listaInteressados); $i++) { - $this->assertStringStartsWith(substr($listaInteressados[$i], 0, 100), $this->paginaEditarProcesso->listarInteressados()[$i]); - } - - if ($observacoes) { - $this->assertStringContainsString($observacoes, $this->byCssSelector('body')->text()); - } - - if ($hipoteseLegal != null) { - $hipoteseLegalDocumento = $this->paginaEditarProcesso->recuperarHipoteseLegal(); - $this->assertEquals($hipoteseLegal, $hipoteseLegalDocumento); - } - } - - protected function validarDocumentoCancelado($nomeDocArvore) - { - sleep(2); - $this->assertTrue($this->paginaProcesso->ehDocumentoCancelado($nomeDocArvore)); - } - - protected function validarDocumentoMovido($nomeDocArvore) - { - sleep(2); - $this->assertTrue($this->paginaProcesso->ehDocumentoMovido($nomeDocArvore)); - } - - protected function validarDadosDocumento($nomeDocArvore, $dadosDocumento, $destinatario, $unidadeSecundaria = false, $hipoteseLegal = null) - { - sleep(2); - - // Verifica se documento possui marcao de documento anexado - $bolPossuiDocumentoReferenciado = !is_null($dadosDocumento['ORDEM_DOCUMENTO_REFERENCIADO']); - $this->assertTrue($this->paginaProcesso->deveSerDocumentoAnexo($bolPossuiDocumentoReferenciado, $nomeDocArvore)); - - if (($this->paginaProcesso->ehDocumentoCancelado($nomeDocArvore) == false) and ($this->paginaProcesso->ehDocumentoMovido($nomeDocArvore) == false)) { - - $this->paginaProcesso->selecionarDocumento($nomeDocArvore); - $this->paginaDocumento->navegarParaConsultarDocumento(); - - $mesmoOrgao = $dadosDocumento['ORIGEM'] == $destinatario['URL']; - - if ($mesmoOrgao && $dadosDocumento['TIPO'] == 'G') { - $this->assertEquals($dadosDocumento["DESCRICAO"], $this->paginaDocumento->descricao()); - if (!$mesmoOrgao) { - $observacoes = ($unidadeSecundaria) ? $this->paginaDocumento->observacoesNaTabela() : $this->paginaDocumento->observacoes(); - $this->assertEquals($dadosDocumento['OBSERVACOES'], $observacoes); - } - } else { - $this->assertNotNull($this->paginaDocumento->nomeAnexo()); - $contemVariosComponentes = is_array($dadosDocumento['ARQUIVO']); - if (!$contemVariosComponentes) { - $nomeArquivo = $dadosDocumento['ARQUIVO']; - $this->assertStringContainsString(basename($nomeArquivo), $this->paginaDocumento->nomeAnexo()); - if ($hipoteseLegal != null) { - $hipoteseLegalDocumento = $this->paginaDocumento->recuperarHipoteseLegal(); - $this->assertEquals($hipoteseLegal, $hipoteseLegalDocumento); - } - } - } - } - } - - protected function validarProcessosTramitados($protocolo, $deveExistir) - { - $this->frame(null); - $this->paginaBase->navegarParaControleProcesso(); - $xpath = "//a[contains(@href, 'acao=pen_procedimento_expedido_listar')]"; - $link = $this->byXPath($xpath); - $url = $link->attribute('href'); - $this->url($url); - $this->assertEquals($deveExistir, $this->paginaProcessosTramitadosExternamente->contemProcesso($protocolo)); - } - - protected function validarProcessoRejeitado() - { - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - return array( - "TIPO_PROCESSO" => $contextoProducao['TIPO_PROCESSO'], - "DESCRICAO" => util::random_string(100), - "OBSERVACOES" => null, - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoInternoTeste($contextoProducao) - { - return array( - 'TIPO' => 'G', // Documento do tipo Gerado pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DESCRICAO" => trim(str_repeat(util::random_string(9) . ' ', 10)), - "OBSERVACOES" => null, - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ORDEM_DOCUMENTO_REFERENCIADO" => null, - "ARQUIVO" => ".html", - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos = 'arquivo_pequeno.txt', $ordemDocumentoReferenciado = null) - { - // Tratamento para lista de arquivos em casos de documentos com mais de um componente digital - $pasta = self::PASTA_ARQUIVOS_TESTE; - $arquivos = is_array($nomesArquivos) ? array_map(function ($item) use ($pasta) { - return "$pasta/$item"; - }, $nomesArquivos) : "$pasta/$nomesArquivos"; - - return array( - 'TIPO' => 'R', // Documento do tipo Recebido pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DATA_ELABORACAO" => '01/01/2017', - "DESCRICAO" => str_repeat(util::random_string(9) . ' ', 10), - "OBSERVACOES" => util::random_string(500), - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "ORDEM_DOCUMENTO_REFERENCIADO" => $ordemDocumentoReferenciado, - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ARQUIVO" => $arquivos, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoExternoGrandeTeste($contextoProducao, $nomesArquivo = 'arquivo_grande_gerado.txt', $tamanhoMB = 100, $ordemDocumentoReferenciado = null) - { - // Tratamento para lista de arquivos em casos de documentos com mais de um componente digital - $pasta = self::PASTA_ARQUIVOS_TESTE; - shell_exec('dd if=/dev/zero of=' . self::PASTA_ARQUIVOS_TESTE . '/' . $nomesArquivo . ' bs=1M count=' . $tamanhoMB); - $arquivos = "$pasta/$nomesArquivo"; - - return array( - 'TIPO' => 'R', // Documento do tipo Recebido pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DATA_ELABORACAO" => '01/01/2017', - "DESCRICAO" => str_repeat(util::random_string(9) . ' ', 10), - "OBSERVACOES" => util::random_string(500), - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "ORDEM_DOCUMENTO_REFERENCIADO" => $ordemDocumentoReferenciado, - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ARQUIVO" => $arquivos, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - protected function realizarTramiteExterno(&$processoTeste, $documentosTeste, $remetente, $destinatario, $validarTramite) - { - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - // 1 - Acessar sistema do REMETENTE do processo - $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); - - // 2 - Cadastrar novo processo de teste - if (isset($processoTeste['PROTOCOLO'])) { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - $this->abrirProcesso($strProtocoloTeste); - } else { - $strProtocoloTeste = $this->cadastrarProcesso($processoTeste); - $processoTeste['PROTOCOLO'] = $strProtocoloTeste; - } - - // 3 - Incluir Documentos no Processo - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - foreach ($documentosTeste as $doc) { - if ($doc['TIPO'] == 'G') { - $this->cadastrarDocumentoInterno($doc); - $this->assinarDocumento($remetente['ORGAO'], $remetente['CARGO_ASSINATURA'], $remetente['SENHA']); - } else if ($doc['TIPO'] == 'R') { - $this->cadastrarDocumentoExterno($doc); - } - } - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $paginaTramitar = $this->paginaTramitar; - $this->tramitarProcessoExternamente($strProtocoloTeste, $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - if ($validarTramite) { - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding($destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", $strProtocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$nomeUnidadeDestinatario, true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = $remetente['URL'] != $destinatario['URL']; - $this->validarProcessosTramitados($strProtocoloTeste, $deveExistir); - } - } - - public function realizarTramiteExternoSemvalidacaoNoRemetente(&$processoTeste, $documentosTeste, $remetente, $destinatario) - { - $this->realizarTramiteExterno($processoTeste, $documentosTeste, $remetente, $destinatario, false); - } - - public function realizarTramiteExternoComValidacaoNoRemetente(&$processoTeste, $documentosTeste, $remetente, $destinatario) - { - $this->realizarTramiteExterno($processoTeste, $documentosTeste, $remetente, $destinatario, true); - } - - public function realizarValidacaoRecebimentoProcessoNoDestinatario($processoTeste, $documentosTeste, $destinatario, $devolucao = false, $unidadeSecundaria = false) - { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - - // 10 - Acessar sistema de REMETENTE do processo - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $this->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $devolucao = $processoTeste['ORIGEM'] == $destinatario['URL']; - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= $processoTeste['TIPO_PROCESSO']; - $processoTeste['OBSERVACOES'] = (!$devolucao) ? $strTipoProcesso : $processoTeste['OBSERVACOES']; - $this->validarDadosProcesso($processoTeste['DESCRICAO'], $processoTeste['RESTRICAO'], $processoTeste['OBSERVACOES'], $processoTeste['INTERESSADOS']); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - $this->assertEquals(count($listaDocumentos), count($documentosTeste)); - - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], $destinatario, $unidadeSecundaria, null); - } - } - - public function realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentosTeste, $destinatario, $devolucao = false, $unidadeSecundaria = false) - { - $strProtocoloTeste = null; - $strDescricao = $documentosTeste['DESCRICAO']; - - // Acessar sistema de REMETENTE do processo - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - - // Abrir protocolo na tela de controle de processos pelo texto da descrio - $this->waitUntil(function ($testCase) use ($strDescricao, &$strProtocoloTeste) { - sleep(5); - $strProtocoloTeste = $this->abrirProcessoPelaDescricao($strDescricao); - $this->assertNotFalse($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // Validar dados do processo - $this->validarDadosProcesso($documentosTeste['DESCRICAO'], $documentosTeste['RESTRICAO'], null, array($documentosTeste['INTERESSADOS'])); - - // Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Documento $strProtocoloTeste", false, true); - - // Validar dados do documento - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - $this->assertEquals(count($listaDocumentos), count($documentosTeste)); - - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], $destinatario, $unidadeSecundaria); - } - - return array( - "TIPO_PROCESSO" => $destinatario['TIPO_PROCESSO'], - "DESCRICAO" => $documentosTeste[0]['DESCRICAO'], - "OBSERVACOES" => null, - "INTERESSADOS" => $documentosTeste[0]['INTERESSADOS'], - "RESTRICAO" => $documentosTeste[0]['RESTRICAO'], - "ORIGEM" => $destinatario['URL'], - "PROTOCOLO" => $strProtocoloTeste - ); - } - - public function realizarValidacaoNAORecebimentoProcessoNoDestinatario($destinatario, $processoTeste) - { - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - $this->paginaBase->navegarParaControleProcesso(); - $this->assertFalse($this->paginaControleProcesso->contemProcesso($processoTeste['PROTOCOLO'], false, false)); - } - - protected function selecionarProcessos($numProtocolo=null) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramitarProcessoEmLote->selecionarProcessos($numProtocolo); - sleep(2); - } - - protected function visualizarProcessoTramitadosEmLote($test) - { - $this->paginaBase->navegarParaControleProcesso(); - $test->byLinkText("Processos Tramitados em Bloco")->click(); - } - - protected function navegarProcessoEmLote($selAndamento, $numProtocolo=null) - { - if($selAndamento == 0){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_PROCESSAMENTO; - }if($selAndamento == 2){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_CONCLUIDO; - }if($selAndamento == 7){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_CANCELADO; - } - $this->paginaTramitarProcessoEmLote->navegarProcessoEmLote($selAndamento, $numProtocolo); - } - - public function atualizarTramitesPEN($bolOrg1 = true, $bolOrg2 = true, $org2Primeiro = true, $quantidade = 1) - { - /*for($i=0;$i<$quantidade;$i++){ - if($org2Primeiro){ - if($bolOrg2)exec(PEN_SCRIPT_MONITORAMENTO_ORG2); - if($bolOrg1)exec(PEN_SCRIPT_MONITORAMENTO_ORG1); - }else{ - if($bolOrg1)exec(PEN_SCRIPT_MONITORAMENTO_ORG1); - if($bolOrg2)exec(PEN_SCRIPT_MONITORAMENTO_ORG2); - } - }*/ - } -} diff --git a/tests_sei3/funcional/tests/MapeamentoEnvioParcialTest.php b/tests_sei3/funcional/tests/MapeamentoEnvioParcialTest.php deleted file mode 100644 index 67a2daf3e..000000000 --- a/tests_sei3/funcional/tests/MapeamentoEnvioParcialTest.php +++ /dev/null @@ -1,169 +0,0 @@ -<?php - -/** - * Testes de mapeamento de envio de envio parcial - */ -class MapeamentoEnvioParcialTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $remetenteB; - - /** - * Teste inicial de cadastro de mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_novo_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->novo(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$remetente['REP_ESTRUTURAS'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - sleep(1); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Mapeamento de Envio Parcial cadastrado com sucesso.'), - $mensagem - ); - } - - /** - * Teste para editar mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_editar_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$remetenteB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->editar(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$remetenteB['REP_ESTRUTURAS'], - self::$remetenteB['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - sleep(1); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Mapeamento de Envio Parcial atualizado com sucesso.'), - $mensagem - ); - } - - /** - * Teste para pesquisar mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_pesquisar_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - - // Buscar pesquisa vazia - $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS'] . 'B'); - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $this->assertNull($nomeRepositorioCadastrado); - - // Buscar pesquisa com sucesso - $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS']); - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $this->assertNotNull($nomeRepositorioCadastrado); - } - - /** - * Teste para imprimir mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_imprimir_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - - // Buscar pesquisa vazia - $this->paginaCadastroMapEnvioCompDigitais->selecionarImprimir(); - $this->assertTrue(true); - } - - /** - * Teste para excluir mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_excluir_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->selecionarExcluir(); - - sleep(1); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Mapeamento excludo com sucesso.'), - $mensagem - ); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php b/tests_sei3/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php deleted file mode 100644 index ca63bf4e7..000000000 --- a/tests_sei3/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php +++ /dev/null @@ -1,142 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Desativar e reativar mapeamento entre orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoDesativarReativarTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - self::$penOrgaoExternoId = $penOrgaoExternoFixture->cadastrar([ - 'idRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'repositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'id' => self::$remetente['ID_ESTRUTURA'], - 'sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'nome' => self::$remetente['NOME_UNIDADE'], - 'idOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'nomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - } - - /** - * Teste de desativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_desativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado('Ativo'); - $mensagemRetornoAlert = $this->paginaTramiteMapeamentoOrgaoExterno->desativarMapeamento(); - - $menssagemValidacao = $this->paginaTramiteMapeamentoOrgaoExterno->mensagemValidacao('desativado'); - $this->assertStringContainsString($menssagemValidacao, $mensagemRetornoAlert); - } - - /** - * Teste de reativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_reativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado('Inativo'); - $mensagemRetornoAlert = $this->paginaTramiteMapeamentoOrgaoExterno->reativarMapeamento(); - - $menssagemValidacao = $this->paginaTramiteMapeamentoOrgaoExterno->mensagemValidacao('reativado'); - $this->assertStringContainsString($menssagemValidacao, $mensagemRetornoAlert); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_desativacao_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado('Ativo'); - $mensagemRetornoAlert = $this->paginaTramiteMapeamentoOrgaoExterno->desativarMapeamentoCheckbox(); - - $menssagemValidacao = $this->paginaTramiteMapeamentoOrgaoExterno->mensagemValidacao('desativado'); - $this->assertStringContainsString($menssagemValidacao, $mensagemRetornoAlert); - - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_reativar_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado('Inativo'); - $mensagemRetornoAlert = $this->paginaTramiteMapeamentoOrgaoExterno->reativarMapeamentoCheckbox(); - - $menssagemValidacao = $this->paginaTramiteMapeamentoOrgaoExterno->mensagemValidacao('reativado'); - $this->assertStringContainsString($menssagemValidacao, $mensagemRetornoAlert); - } - - public static function tearDownAfterClass(): void - { - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - $penOrgaoExternoFixture->deletar(self::$penOrgaoExternoId); - - parent::tearDownAfterClass(); - } -} diff --git a/tests_sei3/funcional/tests/MapeamentoTipoProcessoExcluirTest.php b/tests_sei3/funcional/tests/MapeamentoTipoProcessoExcluirTest.php deleted file mode 100644 index c721e8b25..000000000 --- a/tests_sei3/funcional/tests/MapeamentoTipoProcessoExcluirTest.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Excluir mapeamento entre orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoExcluirTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - self::$penOrgaoExternoId = $penOrgaoExternoFixture->cadastrar([ - 'idRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'repositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'id' => self::$remetente['ID_ESTRUTURA'], - 'sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'nome' => self::$remetente['NOME_UNIDADE'], - 'idOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'nomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - } - - /** - * Teste para excluir de mapeamento de orgo exteno - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_excluir_mapeamento_orgao_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaCadastroOrgaoExterno->selecionarExcluirMapOrgao(self::$penOrgaoExternoId); - sleep(1); - $mensagemRetornoAlert = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $menssagemValidacao = utf8_encode('Relacionamento entre unidades foi excludo com sucesso.'); - - $this->assertStringContainsString( - $menssagemValidacao, - $mensagemRetornoAlert - ); - } - - function tearDown(): void - { - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - $penOrgaoExternoFixture->deletar(self::$penOrgaoExternoId); - - parent::tearDown(); - } -} diff --git a/tests_sei3/funcional/tests/MapeamentoTipoProcessoExportarTest.php b/tests_sei3/funcional/tests/MapeamentoTipoProcessoExportarTest.php deleted file mode 100644 index cdc81f23a..000000000 --- a/tests_sei3/funcional/tests/MapeamentoTipoProcessoExportarTest.php +++ /dev/null @@ -1,66 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Exportar tipos de processos - * Pesquisar tipos de processos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoExportarTest extends CenarioBaseTestCase -{ - public static $remetente; - - /** - * Teste de exportao de tipos de processos - * - * @return void - */ - public function test_exportar_tipos_de_processo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaExportarTiposProcesso->navegarExportarTiposProcessos(); - - $this->paginaExportarTiposProcesso->selecionarParaExportar(); - $this->assertEquals( - $this->paginaExportarTiposProcesso->verificarExisteBotao('btnExportarModal'), - 'Exportar' - ); - $this->assertEquals( - $this->paginaExportarTiposProcesso->verificarExisteBotao('btnFecharModal'), - 'Fechar' - ); - $this->paginaExportarTiposProcesso->verificarQuantidadeDeLinhasSelecionadas(); - $this->paginaExportarTiposProcesso->btnExportar(); - } - - /** - * Teste para pesquisar tipos de processos - * - * @return void - */ - public function test_pesquisar_tipos_de_processos() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaExportarTiposProcesso->navegarExportarTiposProcessos(); - $this->paginaExportarTiposProcesso->selecionarPesquisa(); - sleep(1); - $this->assertTrue($this->paginaExportarTiposProcesso->buscarPesquisa()); - } -} diff --git a/tests_sei3/funcional/tests/MapeamentoTipoProcessoReativarTest.php b/tests_sei3/funcional/tests/MapeamentoTipoProcessoReativarTest.php deleted file mode 100644 index 0d0f884d7..000000000 --- a/tests_sei3/funcional/tests/MapeamentoTipoProcessoReativarTest.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo reativar - * Reativar tipos de processos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoReativarTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - self::$penOrgaoExternoId = $penOrgaoExternoFixture->cadastrar([ - 'idRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'repositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'id' => self::$remetente['ID_ESTRUTURA'], - 'sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'nome' => self::$remetente['NOME_UNIDADE'], - 'idOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'nomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - $importacaoTiposProcessoFixture = new ImportacaoTiposProcessoFixture(CONTEXTO_ORGAO_A); - $importacaoTiposProcessoFixture->cadastrar([ - 'idMapeamento' => self::$penOrgaoExternoId, - 'sinAtivo' => 'N' - ]); - } - - /** - * Teste de reativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_reativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTipoProcessoReativar->navegarTipoProcessoReativar(); - - $this->paginaTipoProcessoReativar->reativarMapeamento(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = utf8_encode('Mapeamento de Tipo de Processo foi reativado com sucesso.'); - $mensagemRetornoAlert = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString($menssagemValidacao, $mensagemRetornoAlert); - return true; - }, PEN_WAIT_TIMEOUT); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_reativar_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTipoProcessoReativar->navegarTipoProcessoReativar(); - - $this->paginaTipoProcessoReativar->reativarMapeamentoCheckbox(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = utf8_encode('Mapeamento de Tipo de Processo foi reativado com sucesso.'); - $mensagemRetornoAlert = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString($menssagemValidacao, $mensagemRetornoAlert); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public static function tearDownAfterClass(): void - { - $importacaoTiposProcessoFixture = new ImportacaoTiposProcessoFixture(CONTEXTO_ORGAO_A); - $importacaoTiposProcessoFixture->deletar(['idMapeamento' => self::$penOrgaoExternoId]); - - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - $penOrgaoExternoFixture->deletar(self::$penOrgaoExternoId); - - parent::tearDownAfterClass(); - } -} diff --git a/tests_sei3/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php b/tests_sei3/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php deleted file mode 100644 index 6ca5a86d7..000000000 --- a/tests_sei3/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Cadastro mapeamento de orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $penMapUnidadesFixture = new PenMapUnidadesFixture(CONTEXTO_ORGAO_A, [ - 'id' => self::$remetente['ID_ESTRUTURA'], - 'sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'nome' => self::$remetente['NOME_UNIDADE'] - ]); - $penMapUnidadesFixture->gravar(); - } - - /** - * Teste de cadastro de novo mapeamento entre ogros - * - * @return void - */ - public function test_cadastrar_novo_mapeamento_orgao_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - $this->paginaCadastroOrgaoExterno->novoMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Relacionamento entre Unidades cadastrado com sucesso.'), - $mensagem - ); - } - - /** - * Teste para cadastro de mapeamento de orgo exteno j existente - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_cadastrar_mapeamento_orgao_externo_ja_cadastrado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - $this->paginaCadastroOrgaoExterno->novoMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Cadastro de relacionamento entre unidades j existente.'), - $mensagem - ); - } - - /** - * Teste para editar mapeamento de orgo exteno - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_editar_mapeamento_orgao_externo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - - $this->paginaCadastroOrgaoExterno->editarMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Relacionamento entre Unidades atualizado com sucesso.'), - $mensagem - ); - } - - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} diff --git a/tests_sei3/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php b/tests_sei3/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php deleted file mode 100644 index 00dd0b47c..000000000 --- a/tests_sei3/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Listar mapeamento entre orgos - * Importar tipos de processo para relacionamento - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - self::$penOrgaoExternoId = $penOrgaoExternoFixture->cadastrar([ - 'idRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'repositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'id' => self::$remetente['ID_ESTRUTURA'], - 'sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'nome' => self::$remetente['NOME_UNIDADE'], - 'idOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'nomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - } - - /** - * Teste para pesquisar mapeamento entre orgos - * - * @Depends test_desativacao_mapeamento_orgao_externo - * - * @return void - */ - public function test_pesquisar_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - - // Buscar pesquisa vazia - $this->paginaCadastroOrgaoExterno->selecionarPesquisa(self::$destinatario['NOME_UNIDADE'] . 'B'); - $nomeRepositorioCadastrado = $this->paginaCadastroOrgaoExterno->buscarNome(self::$destinatario['NOME_UNIDADE']); - $this->assertNull($nomeRepositorioCadastrado); - - // Buscar pesquisa com sucesso - $this->paginaCadastroOrgaoExterno->selecionarPesquisa(self::$destinatario['NOME_UNIDADE']); - $nomeRepositorioCadastrado = $this->paginaCadastroOrgaoExterno->buscarNome(self::$destinatario['NOME_UNIDADE']); - $this->assertNotNull($nomeRepositorioCadastrado); - } - - function tearDown(): void - { - $penOrgaoExternoFixture = new PenOrgaoExternoFixture(CONTEXTO_ORGAO_A); - $penOrgaoExternoFixture->deletar(self::$penOrgaoExternoId); - - parent::tearDown(); - } -} diff --git a/tests_sei3/funcional/tests/RecebimentoDocumentoAnexadoTest.php b/tests_sei3/funcional/tests/RecebimentoDocumentoAnexadoTest.php deleted file mode 100755 index be59e0836..000000000 --- a/tests_sei3/funcional/tests/RecebimentoDocumentoAnexadoTest.php +++ /dev/null @@ -1,287 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class RecebimentoDocumentoAnexadoTest extends CenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $processoTeste; - public static $remetente; - public static $destinatario; - public static $servicoPEN; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - - /** - * Teste de envio de metadados do processo contendo documentos anexados - * - * Inicialmente so enviados 3 documentos, sendo um deles refernciado pelos outros dois documentos - * - * @return void - */ - public function test_envio_processo_com_documento_anexado() - { - // Carregar contexto de testes e dados sobre certificado digital - $ordemDocumentoReferenciado = 1; - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_A); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_B, $ordemDocumentoReferenciado); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_C, $ordemDocumentoReferenciado); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - - // Inicia o envio dos trs primeiros documentos - $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentosPrimeiroEnvio, self::$destinatario); - $reciboTramite = $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - /** - * Teste de trmite externo de processo contendo documento anexado com devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_envio_processo_com_documento_anexado - * - * @return void - */ - public function test_devolucao_processo_com_documento_anexado_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $arrDocumentosSegundoEnvio = array(self::$documentoTeste4, self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $arrDocumentosSegundoEnvio, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo com documento anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_devolucao_processo_com_documento_anexado_para_origem - * - * @return void - */ - public function test_verificar_processo_com_documento_anexado_apos_devolucao() - { - $arrDocumentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentos, self::$destinatario); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - } - - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - $processoTeste = parent::gerarDadosProcessoTeste($contextoProducao); - $processoTeste['INTERESSADOS'] = trim(substr($processoTeste['INTERESSADOS'], 0, 15)); - $processoTeste['DESCRICAO'] = trim(substr($processoTeste['DESCRICAO'], 0, 10)); - return $processoTeste; - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTeste = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTeste['INTERESSADOS'] = trim(substr($dadosDocumentoTeste['INTERESSADOS'], 0, 15)); - $dadosDocumentoTeste['DESCRICAO'] = trim(substr($dadosDocumentoTeste['DESCRICAO'], 0, 10)); - return $dadosDocumentoTeste; - } - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } -} diff --git a/tests_sei3/funcional/tests/RecebimentoDocumentoAvulsoTest.php b/tests_sei3/funcional/tests/RecebimentoDocumentoAvulsoTest.php deleted file mode 100755 index 2941b9f2d..000000000 --- a/tests_sei3/funcional/tests/RecebimentoDocumentoAvulsoTest.php +++ /dev/null @@ -1,211 +0,0 @@ -<?php - -use \utilphp\util; - -class RecebimentoDocumentoAvulsoTest extends CenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - protected $remetente; - protected $destinatario; - protected $servicoPEN; - - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - $this->remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = $this->remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = $this->remetente['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - - public function test_recebimento_documento_avulso_com_2_componentes_digitais() - { - // Simular um trmite chamando a API do Barramento diretamente - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($this->remetente, array(self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B)); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste($documentoTeste); - $novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, $this->remetente, $this->destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoTramite($this->servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvio($this->servicoPEN, $novoTramite); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $this->destinatario); - } - - - /** - * Teste de verificao do correto recebimento do documento avulso - * - * @group verificacao_recebimento - * - * @return void - */ - public function test_recebimento_documento_avulso() - { - // Simular um trmite chamando a API do Barramento diretamente - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($this->remetente, array(self::CONTEUDO_DOCUMENTO_A)); - - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste($documentoTeste); - $novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, $this->remetente, $this->destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoTramite($this->servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvio($this->servicoPEN, $novoTramite); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $this->destinatario); - } - - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = trim(substr($dadosDocumentoTest['INTERESSADOS'], 0, 15)); - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } -} diff --git a/tests_sei3/funcional/tests/RecebimentoInteressadosDuplicadosTest.php b/tests_sei3/funcional/tests/RecebimentoInteressadosDuplicadosTest.php deleted file mode 100755 index 4901dd8c1..000000000 --- a/tests_sei3/funcional/tests/RecebimentoInteressadosDuplicadosTest.php +++ /dev/null @@ -1,255 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class RecebimentoInteressadosDuplicadosTest extends CenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - - public static $processoTeste; - public static $remetente; - public static $destinatario; - public static $servicoPEN; - public static $documentoTeste1; - - /** - * Teste de envio de metadados do processo contendo interessados duplicados - * - * Inicialmente so enviados 2 interessados com o mesmo nome - * - * @group envio - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_envio_processo_com_documento_anexado() - { - // Carregar contexto de testes e dados sobre certificado digital - $ordemDocumentoReferenciado = 1; - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_A); - - // Atribui dois interessados utilizando o mesmo nome - self::$processoTeste['INTERESSADOS'] = array("Interessado com mesmo nome", "Interessado com mesmo nome"); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - - // Inicia o envio do processo - $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1); - $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); - - //Verifica recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - - //Verifica se somente um interessado foi registrado para o processo - self::$processoTeste['INTERESSADOS'] = "Interessado com mesmo nome"; - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentosPrimeiroEnvio, self::$destinatario); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - } - - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - $processoTeste = parent::gerarDadosProcessoTeste($contextoProducao); - $processoTeste['PROTOCOLO'] = sprintf('99999.%06d/2020-00', rand(0, 999999)); - $processoTeste['INTERESSADOS'] = trim(substr($processoTeste['INTERESSADOS'], 0, 15)); - $processoTeste['DESCRICAO'] = trim(substr($processoTeste['DESCRICAO'], 0, 10)); - return $processoTeste; - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTeste = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTeste['INTERESSADOS'] = trim(substr($dadosDocumentoTeste['INTERESSADOS'], 0, 15)); - $dadosDocumentoTeste['DESCRICAO'] = trim(substr($dadosDocumentoTeste['DESCRICAO'], 0, 10)); - return $dadosDocumentoTeste; - } - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - $arrInteressados = array_map(function($item) { - return array('nome' => utf8_encode($item)); - }, - $processoTeste['INTERESSADOS']); - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - 'interessado' => $arrInteressados, - 'documento' => $metadadosDocumentos, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } -} diff --git a/tests_sei3/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php b/tests_sei3/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php deleted file mode 100755 index 4fae1efb7..000000000 --- a/tests_sei3/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class RecebimentoRecusaJustificativaGrandeTest extends CenarioBaseTestCase -{ - - protected $destinatarioWs; - protected $servicoPEN; - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - $this->destinatarioWs = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = $this->destinatarioWs['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = $this->destinatarioWs['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->realizarTramiteExternoSemvalidacaoNoRemetente(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $id_tramite = $bancoOrgaoA->query("select max(id_tramite) as id_tramite from sei.md_pen_componente_digital where protocolo = ?", array(self::$protocoloTeste)); - //recusa o tramite contendo justificativa grande - if (array_key_exists("id_tramite", $id_tramite[0])) { - $id_tramite=$id_tramite[0]["id_tramite"]; - }else{ - $id_tramite=$id_tramite[0]["ID_TRAMITE"]; - } - $this->recusarTramite($this->servicoPEN, $id_tramite); - } - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, sprintf("An exception occurred while executing 'INSERT INTO juntadas (numeracao_sequencial, movimento, ativo, vinculada, criado_em, atualizado_em, id, uuid, documentos_juntado_id, volumes_id, atividades_id, tarefas_id, comunicacoes_id, origem_dados_id, criado_por, atualizado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [1, 'DOCUMENTO RECEBIDO VIA INTEGRA\u00c7\u00c3O COM O BARRAMENTO', 1, 0, '2021-12-02 14:21:48', '2021-12-02 14:21:48', 1317074776, '06ba31e8-75ad-4111-82d ...")); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - private function recusarTramite($servicoPEN, $id_tramite) - { - $justificativa = "An exception occurred while executing 'INSERT INTO juntadas (numeracao_sequencial, movimento, ativo, vinculada, criado_em, atualizado_em, id, uuid, documentos_juntado_id, volumes_id, atividades_id, tarefas_id, comunicacoes_id, origem_dados_id, criado_por, atualizado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [1, 'DOCUMENTO RECEBIDO VIA INTEGRA\u00c7\u00c3O COM O BARRAMENTO', 1, 0, '2021-12-02 14:21:48', '2021-12-02 14:21:48', 1317074776, '06ba31e8-75ad-4111-82dc-6f451f51825e', 1333864526, null, null, null, null, 3534979787, null, null]: ORA-00001: restrio exclusiva (SAPIENS.UNIQ_867686DHDKJ97876) violada"; - - $parametros = new stdClass(); - $parametros->recusaDeTramite = new stdClass(); - $parametros->recusaDeTramite->IDT = $id_tramite; - $parametros->recusaDeTramite->justificativa = utf8_encode($justificativa); - $parametros->recusaDeTramite->motivo = "99"; - return $servicoPEN->recusarTramite($parametros); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } -} diff --git a/tests_sei3/funcional/tests/TramiteBlocoExternoCadastroTest.php b/tests_sei3/funcional/tests/TramiteBlocoExternoCadastroTest.php deleted file mode 100644 index 99b723389..000000000 --- a/tests_sei3/funcional/tests/TramiteBlocoExternoCadastroTest.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -class TramiteBlocoExternoCadastroTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * Teste de cadastro de novo bloco de tramite externo - * - * @return void - */ - public function test_cadastrar_novo_bloco_para_tramite_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penMapUnidadesFixture = new PenMapUnidadesFixture(CONTEXTO_ORGAO_A, [ - 'id' => self::$remetente['ID_ESTRUTURA'], - 'sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'nome' => self::$remetente['NOME_UNIDADE'] - ]); - $penMapUnidadesFixture->gravar(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->novoBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->criarNovoBloco(); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagemRetornoAlert = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $menssagemValidacao = utf8_encode('Bloco de Trmite externo criado com sucesso!'); - - $this->assertStringContainsString( - $menssagemValidacao, - $mensagemRetornoAlert - ); - } - - /** - * Teste para editar bloco de trmite externo j criado - * - * @return void - */ - public function test_editar_bloco_de_tramite() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->editarBlocoDeTramite('Bloco editado para teste automatizado'); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagemRetornoAlert = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $menssagemValidacao = utf8_encode('Bloco de trmite externo alterado com sucesso!'); - - $this->assertStringContainsString( - $menssagemValidacao, - $mensagemRetornoAlert - ); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php b/tests_sei3/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php deleted file mode 100644 index 5626eeb72..000000000 --- a/tests_sei3/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php +++ /dev/null @@ -1,144 +0,0 @@ -<?php - -/** - * Teste de incluso de processo em bloco - * @group group - */ -class TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $penOrgaoExternoId; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - public static $bloco; - - /** - * @inheritdoc - */ - function setUpPage(): void - { - parent::setUpPage(); - - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - } - - /** - * Teste de incluso de processo em bloco - * @return void - */ - public function teste_incluir_processo_em_bloco() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->cadastrarBlocoDeTramite(); - $this->paginaBase->navegarParaControleProcesso(); - $this->cadastrarProcessos(); - - $this->paginaBase->navegarParaControleProcesso(); - // $this->paginaTramiteEmBloco->selecionarProcessos([self::$protocoloTeste]); - $this->paginaTramiteEmBloco->selecionarProcessos(self::$protocoloTeste); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - $this->assertStringContainsString( - utf8_encode('Processo(s) includo(s) com sucesso no bloco'), - $mensagem - ); - - // $this->paginaBase->sairSistema(); - } - - /** - * Teste de incluso do mesmo processo em bloco - * @return void - */ - public function teste_mesmo_processo_em_bloco() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - // $this->paginaTramiteEmBloco->selecionarProcessos([self::$protocoloTeste]); - $this->paginaTramiteEmBloco->selecionarProcessos(self::$protocoloTeste); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - $this->assertStringContainsString( - utf8_encode('Prezado(a) usurio(a), o processo ' . self::$protocoloTeste - . ' encontra-se inserido no bloco '), - $mensagem - ); - - $this->paginaBase->sairSistema(); - - // $this->paginaBase->navegarParaControleProcesso(); - // $this->paginaTramiteEmBloco->selecionarProcessos([$this->objProtocoloDTO->getStrProtocoloFormatado()]); - // $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - // $this->paginaTramiteEmBloco->clicarSalvar(); - // sleep(2); - // $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - // $this->assertStringContainsString( - // utf8_encode( - // 'Prezado(a) usurio(a), o processo ' . $this->objProtocoloDTO->getStrProtocoloFormatado() - // . ' encontra-se inserido no bloco de nmero ' . $this->objBlocoDeTramiteDTO->getNumId() . '.' - // . ' Para continuar com essa ao necessrio que o processo seja removido do bloco em questo.' - // ), - // $mensagem - // ); - } - - /** - * Cadastra o bloco de tramite - * @return void - */ - private function cadastrarBlocoDeTramite() - { - - // Configurao do dados para teste do cenrio - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->novoBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->criarNovoBloco(); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagemRetornoAlert = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $menssagemValidacao = utf8_encode('Bloco de Trmite externo criado com sucesso!'); - - $this->assertStringContainsString( - $menssagemValidacao, - $mensagemRetornoAlert - ); - } - - /** - * Cadastra o bloco de tramite - * @return void - */ - private function cadastrarProcessos() - { - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/tests/TramiteBlocoExternoTest.php b/tests_sei3/funcional/tests/TramiteBlocoExternoTest.php deleted file mode 100644 index 37722e40b..000000000 --- a/tests_sei3/funcional/tests/TramiteBlocoExternoTest.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** - * EnviarProcessoTest - * @group group - */ -class TramiteBlocoExternoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - public static $bloco; - public static $documentoTeste1; - - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - } - - public function teste_incluir_processo_em_bloco() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->cadastrarBlocoDeTramite(); - $this->paginaBase->navegarParaControleProcesso(); - $this->cadastrarProcessos(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaBase->navegarParaControleProcesso(); - // $this->paginaTramiteEmBloco->selecionarProcessos([self::$protocoloTeste]); - $this->paginaTramiteEmBloco->selecionarProcessos(self::$protocoloTeste); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - $this->assertStringContainsString( - utf8_encode('Processo(s) includo(s) com sucesso no bloco'), - $mensagem - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false - ); - - // $this->paginaBase->sairSistema(); - } - - /** - * Cadastra o bloco de tramite - * @return void - */ - private function cadastrarBlocoDeTramite() - { - - // Configurao do dados para teste do cenrio - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->novoBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->criarNovoBloco(); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagemRetornoAlert = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $menssagemValidacao = utf8_encode('Bloco de Trmite externo criado com sucesso!'); - - $this->assertStringContainsString( - $menssagemValidacao, - $mensagemRetornoAlert - ); - } - - /** - * Cadastra o bloco de tramite - * @return void - */ - private function cadastrarProcessos() - { - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - // self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - - $documentosTeste = array_key_exists('TIPO', self::$documentoTeste1) ? array(self::$documentoTeste1) : self::$documentoTeste1; - foreach ($documentosTeste as $doc) { - if ($doc['TIPO'] == 'G') { - $this->cadastrarDocumentoInterno($doc); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - } else if ($doc['TIPO'] == 'R') { - $this->cadastrarDocumentoExterno($doc); - } - } - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/tests/TramiteEnvioParcialTest.php b/tests_sei3/funcional/tests/TramiteEnvioParcialTest.php deleted file mode 100644 index fbf35c024..000000000 --- a/tests_sei3/funcional/tests/TramiteEnvioParcialTest.php +++ /dev/null @@ -1,222 +0,0 @@ -<?php - -/** - * Teste de trmite com envio parcial habilitado - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteEnvioParcialTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $protocoloTestePrincipal; - public static $documentoTeste1; - public static $documentoTeste2; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - /** - * Mapeamento do Envio Parcial no Remetente (Orgo 1) e Destinatrio (Orgo 2) - * - * @group mapeamento - * - * @return void - */ - public function test_novo_mapeamento_envio_parcial_test() - { - // Mapeamento do Envio Parcial no Remetente - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->excluirMapeamentosExistentes(); - - $this->paginaCadastroMapEnvioCompDigitais->novo(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - sleep(1); - // buscar e fechar mensagem de sucesso antes de validar os elementos de tela - // frame/alert sobrepem os elementos da tela - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Mapeamento de Envio Parcial cadastrado com sucesso.'), - $mensagem - ); - - // valida se o mapeamento foi realizado no rgo 1 - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$destinatario['REP_ESTRUTURAS']); - $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$destinatario['NOME_UNIDADE']); - $this->assertNotNull($nomeRepositorioCadastrado); - $this->assertNotNull($nomeUnidadeCadastrado); - - // Mapeamento do Envio Parcial no Destinatrio - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->excluirMapeamentosExistentes(); - - $this->paginaCadastroMapEnvioCompDigitais->novo(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$remetente['REP_ESTRUTURAS'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - sleep(1); - // buscar e fechar mensagem de sucesso antes de validar os elementos de tela - // frame/alert sobrepem os elementos da tela - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - utf8_encode('Mapeamento de Envio Parcial cadastrado com sucesso.'), - $mensagem - ); - - // valida se o mapeamento foi realizado no rgo 2 - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['NOME_UNIDADE']); - $this->assertNotNull($nomeRepositorioCadastrado); - $this->assertNotNull($nomeUnidadeCadastrado); - } - - /* - * Tramitar processo para o rgo 2 com envio parcial mapeado - * @group mapeamento - * - * @return void - */ - public function test_criar_processo_contendo_documento_tramitar_remetente_envio_parcial() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInterno(self::$documentoTeste1); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - /* - * Verificao de processo recebido no rgo 2 com envio parcial mapeado - * @group mapeamento - * - * @return void - */ - public function test_verificar_processo_recebido_tramitar_destinatario_envio_parcial() - { - $documentos = array(self::$documentoTeste1); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - } - - /* - * Devoluo do processo ao rgo 1 com envio parcial mapeado - * @group mapeamento - * - * @return void - */ - public function test_criar_documento_processo_recebido_tramitar_destinatario_envio_parcial() - { - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$destinatario); - $this->cadastrarDocumentoInterno(self::$documentoTeste2); - $this->assinarDocumento(self::$destinatario['ORGAO'], self::$destinatario['CARGO_ASSINATURA'], self::$destinatario['SENHA']); - - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$remetente['REP_ESTRUTURAS'], self::$remetente['NOME_UNIDADE'], self::$remetente['SIGLA_UNIDADE_HIERARQUIA'], false); - - $this->sairSistema(); - } - - /* - * Verificao de processo recebido no rgo 1 com envio parcial mapeado - * @group mapeamento - * - * @return void - */ - public function test_verificar_processo_recebido_tramitar_remetente_envio_parcial() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$remetente); - } - - /** - * Excluir mapeamento de envio parcial no remetente e destinatrio - * - * @group mapeamento - * - * @return void - */ - public function test_excluir_mapeamento_envio_parcial_test() - { - // Excluir mapeamento de envio parcial no remetente - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->excluirMapeamentosExistentes(); - - // Excluir mapeamento de envio parcial no destinatrio - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->excluirMapeamentosExistentes(); - - $this->sairSistema(); - } - - /** - * @group mapeamento - */ - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_sei3/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php b/tests_sei3/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php deleted file mode 100755 index ec39083cc..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php +++ /dev/null @@ -1,269 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteProcessoAnexadoComDevolucaoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Definio de dados de teste do processo a ser anexado - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste anexado e incluir documentos relacionados - self::$protocoloTesteAnexado = $this->cadastrarProcesso(self::$processoTesteAnexado); - $this->cadastrarDocumentoExterno(self::$documentoTeste3); - $this->cadastrarDocumentoExterno(self::$documentoTeste4); - - // Cadastrar novo processo de teste principal e incluir documentos relacionados - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - $this->cadastrarDocumentoExterno(self::$documentoTeste1); - - // Realizar a anexao de processos - $this->anexarProcesso(self::$protocoloTesteAnexado); - - $this->cadastrarDocumentoExterno(self::$documentoTeste2); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_anexado_da_origem - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste2, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Definio de dados de teste do processo principal - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Incluir novos documentos relacionados - $this->abrirProcesso(self::$protocoloTestePrincipal); - $this->cadastrarDocumentoExterno(self::$documentoTeste5); - $this->cadastrarDocumentoExterno(self::$documentoTeste6); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(5, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[4], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoAnexadoTest.php b/tests_sei3/funcional/tests/TramiteProcessoAnexadoTest.php deleted file mode 100755 index 0ae5ed263..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoAnexadoTest.php +++ /dev/null @@ -1,152 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado - * - * Execution Groups - * @group execute_parallel_group2 - */ -class TramiteProcessoAnexadoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Definio de dados de teste do processo a ser anexado - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste anexado e incluir documentos relacionados - self::$protocoloTesteAnexado = $this->cadastrarProcesso(self::$processoTesteAnexado); - $this->cadastrarDocumentoExterno(self::$documentoTeste3); - $this->cadastrarDocumentoExterno(self::$documentoTeste4); - - // Cadastrar novo processo de teste principal e incluir documentos relacionados - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - $this->cadastrarDocumentoExterno(self::$documentoTeste1); - - // Realizar a anexao de processos - $this->anexarProcesso(self::$protocoloTesteAnexado); - - $this->cadastrarDocumentoExterno(self::$documentoTeste2); - - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_anexado_da_origem - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste2, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php b/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php deleted file mode 100755 index edeaf3eef..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php +++ /dev/null @@ -1,164 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoComDevolucaoAlteracaoURLTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $protocoloTeste; - - - public static function tearDownAfterClass() :void { - - - $arrControleURL=[ - "antigo"=>"[servidor_php]", - "novo"=>"servidor.gov.br" - ]; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $result=$bancoOrgaoA->query("SELECT texto FROM sei.tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?;", array("V","S")); - $strTarja=$result[0]["texto"]; - $strTarja = str_replace($arrControleURL['novo'],$arrControleURL['antigo'], $strTarja); - $bancoOrgaoA->execute("update sei.tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=? ", array($strTarja,"V","S")); - - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1,self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_processo_apos_devolucao - * - * @return void - */ - public function test_tramitar_processo_da_origem_novo_url() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$documentoTeste5 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $result=$bancoOrgaoA->query("SELECT texto FROM sei.tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?;", array("V","S")); - $strTarja=$result[0]["texto"]; - - $arrControleURL=[ - "antigo"=>"[servidor_php]", - "novo"=>"servidor.gov.br" - ]; - - $strTarja = str_replace($arrControleURL['antigo'],$arrControleURL['novo'], $strTarja); - $bancoOrgaoA->execute("update sei.tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=? ", array($strTarja,"V","S")); - - $documentos = array(self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem_novo_url - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao_apos_troca_url() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste3, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php b/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php deleted file mode 100755 index 545032cb5..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php +++ /dev/null @@ -1,194 +0,0 @@ -<?php - -/** - * Testes de trmite de um processo tendo a sua devoluo atravs de sua anexao outro processo - * criado no rgo de destino. - * - * O resultado esperado que o novo processo recebido seja criado no remetente e o processo tramitado anteriormente - * seja reaberto, atualizado e anexado ao novo processo recem criado - * - * Execution Groups - * @group execute_alone_group5 - */ -class TramiteProcessoComDevolucaoAnexadoOutroTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de dois processos apartados para o sistema de origem - * - * Posteriormente os dois sero anexados e enviados de volta - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao e a devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_anexado_em_outro_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Incluir novos documentos relacionados no processo anexado - $this->abrirProcesso(self::$protocoloTesteAnexado); - $this->cadastrarDocumentoExterno(self::$documentoTeste3); - - // Gerar dados de testes para representar o processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Cadastra processo principal, seus documentos e anexa processo recebido anteriormente - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - $this->cadastrarDocumentoInterno(self::$documentoTeste4); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - $this->anexarProcesso(self::$protocoloTesteAnexado); - - $this->cadastrarDocumentoExterno(self::$documentoTeste5); - - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_anexado_em_outro_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste5, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php b/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php deleted file mode 100755 index ea0ecd3b4..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php +++ /dev/null @@ -1,189 +0,0 @@ -<?php - -/** - * Teste de trmite de um processo com devoluo contendo novos documentos e com outro processo anexado - * - * O resultado esperado que o processo seja desbloqueado na origem, e o processo anexado seja criado e adicionado - * na posio correta dentro do processo. - * - * Execution Groups - * @group execute_alone_group5 - */ -class TramiteProcessoComDevolucaoContendoOutroAnexadoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo simples para outro orgo - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTestePrincipal, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTestePrincipal = self::$processoTestePrincipal["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao de um novo processo e sua devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_contendo_outro_anexado_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Gerar dados de testes para representar o processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Cadastra processo anexado, seus documentos e anexar ao processo principal recebido anteriormente - self::$protocoloTesteAnexado = $this->cadastrarProcesso(self::$processoTesteAnexado); - $this->cadastrarDocumentoInterno(self::$documentoTeste4); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - $this->cadastrarDocumentoExterno(self::$documentoTeste5); - - // Incluir novos documentos relacionados no processo anexado - $this->abrirProcesso(self::$protocoloTestePrincipal); - $this->anexarProcesso(self::$protocoloTesteAnexado); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExterno(self::$documentoTeste3); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_contendo_outro_anexado_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste3, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste5, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoTest.php b/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoTest.php deleted file mode 100755 index 39127e29f..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoTest.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessoComDevolucaoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php b/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php deleted file mode 100755 index 97331fcde..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoComDevolucaoUnidadeDiferenteTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - self::$destinatario['NOME_UNIDADE'] = self::$destinatario['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE'] = self::$destinatario['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$destinatario['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php b/tests_sei3/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php deleted file mode 100755 index 39cc7b898..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessoComDocumentoRestritoHipotesePadraoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com documentos restritos no mapeado, mas com hiptese padro definida - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_com_documento_restrito_hipotese_nao_mapeada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Configurao de documento restrito - self::$documentoTeste["RESTRICAO"] = PaginaIncluirDocumento::STA_NIVEL_ACESSO_RESTRITO; - self::$documentoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO_NAO_MAPEADO"]; - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_com_documento_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_restrito_hipotese_nao_mapeada() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_com_documento_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_restrito_hipotese_nao_mapeada() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - //$this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario, false, self::$destinatario["HIPOTESE_RESTRICAO_PADRAO"]); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php b/tests_sei3/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php deleted file mode 100755 index 31005ca63..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessoComDocumentoRestritoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com documentos restritos - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_com_documento_restrito() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Configurao de documento restrito - self::$documentoTeste["RESTRICAO"] = PaginaIncluirDocumento::STA_NIVEL_ACESSO_RESTRITO; - self::$documentoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_com_documento_restrito - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_restrito() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_com_documento_restrito - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_restrito() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoComHistoricoTest.php b/tests_sei3/funcional/tests/TramiteProcessoComHistoricoTest.php deleted file mode 100755 index c40ee6e66..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoComHistoricoTest.php +++ /dev/null @@ -1,134 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class TramiteProcessoComHistoricoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - - - $localCertificado = self::$destinatario['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$destinatario['SENHA_CERTIFICADO_DIGITAL']; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - - // Captura o IDT do processo - $idtEnviado=$bancoOrgaoA->query("SELECT tra.id_tramite FROM sei.protocolo p - inner join sei.md_pen_processo_eletronico pen on p.id_protocolo=pen.id_procedimento - inner join sei.md_pen_tramite tra on pen.numero_registro=tra.numero_registro - where protocolo_formatado=?",array(self::$protocoloTeste)); - - if (array_key_exists("id_tramite", $idtEnviado[0])) { - $idtEnviado=$idtEnviado[0]["id_tramite"]; - }else{ - $idtEnviado=$idtEnviado[0]["ID_TRAMITE"]; - } - - $curl_handler = curl_init(); - curl_setopt($curl_handler, CURLOPT_URL, "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/tramites/" . $idtEnviado); - curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl_handler, CURLOPT_FAILONERROR, true); - curl_setopt($curl_handler, CURLOPT_SSLCERT, $localCertificado); - curl_setopt($curl_handler, CURLOPT_SSLCERTPASSWD, $senhaCertificado); - - $saida= json_decode(curl_exec($curl_handler)); - curl_close($curl_handler); - - - - foreach($saida->propriedadesAdicionais as $propriedades){ - - switch($propriedades->chave){ - - case "CLASSIFICACAO_PrazoIntermediario_1": - $this->assertEquals('15', $propriedades->valor ); - break; - - case "CLASSIFICACAO_PrazoCorrente_1": - $this->assertEquals('5', $propriedades->valor ); - break; - - case "MODULO_PEN_VERSAO": - $this->assertTrue(isset($propriedades->valor)); - break; - - case "CLASSIFICACAO_CodigoEstruturado_1": - $this->assertEquals('052.21', $propriedades->valor ); - break; - - case "CLASSIFICACAO_Destinacao_1": - $this->assertEquals('Elimina', substr($propriedades->valor,0,7) ); - break; - - case "CLASSIFICACAO_Observacao_1": - $this->assertEquals('Condicional', substr($propriedades->valor,0,11) ); - break; - - case "CLASSIFICACAO_Descricao_1": - $this->assertEquals('RECEITA (inclusive', substr($propriedades->valor,0,18)); - break; - - - } - } - - // usort($saida->processo->itensHistorico,function($a,$b){ - // return ($a->dataHoraOperacao < $b->dataHoraOperacao? -1: 1); - // }); - - $this->assertEquals(9, sizeof($saida->processo->itensHistorico) ); - - - - - - - } - - - -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php deleted file mode 100755 index 06b807bc4..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo um documento externo que reproduz - * antigo erro de corrompimento de dados da biblioteca BeSimple - * - * @group envio - * @large - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_besimple() - { - //Excente tempo de timeout devido ao tamanho do arquivo arquivo_corrompimento_besimplesoap.pdf - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_corrompimento_besimplesoap.pdf'); - - // 1 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 2 - Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // 3 - Incluir Documentos no Processo - $this->cadastrarDocumentoExterno(self::$documentoTeste); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, null, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_besimple() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_besimple() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php deleted file mode 100755 index 33732c540..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php +++ /dev/null @@ -1,149 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento cancelado - * - * Este mesmo documento deve ser recebido e assinalado com cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento cancelado - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_cancelado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste e incluir documentos relacionados - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste1); - $this->paginaDocumento->navegarParaCancelarDocumento(); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - $processo=self::$processoTeste; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - - $idAnexo = $bancoOrgaoA->query("SELECT an.id_anexo FROM sei.rel_protocolo_protocolo pp - inner join sei.protocolo p on pp.id_protocolo_1=p.id_protocolo - inner join sei.anexo an on an.id_protocolo=pp.id_protocolo_2 - where p.descricao=?",array($processo['DESCRICAO'])); - - if (array_key_exists("id_anexo", $idAnexo[0])) { - $id_Anexo=$idAnexo[0]["id_anexo"]; - }else{ - $id_Anexo=$idAnexo[0]["ID_ANEXO"]; - } - - $bancoOrgaoA->execute("delete from sei.anexo where id_anexo=?",array($id_Anexo)); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_cancelado - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento cancelado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(1, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - - } - -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php deleted file mode 100755 index ebbf4fc3c..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php +++ /dev/null @@ -1,241 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento cancelado - * - * Este mesmo documento deve ser recebido e assinalado com cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoContendoDocumentoCanceladoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento cancelado - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_cancelado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste e incluir documentos relacionados - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste1); - - // Realiza o cancelamento de um documento interno do processo - $this->cadastrarDocumentoInterno(self::$documentoTeste2); - //$this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - $this->paginaDocumento->navegarParaCancelarDocumento(); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - // Realiza o cancelamento de um documento externo do processo - $this->cadastrarDocumentoInterno(self::$documentoTeste3); - $this->paginaDocumento->navegarParaCancelarDocumento(); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_cancelado - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento cancelado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[1]); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[2]); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_destino_processo - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Definio de dados de teste do processo principal - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Incluir novos documentos relacionados - $this->abrirProcesso(self::$protocoloTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste4); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcesso)); - $this->validarDadosDocumento($listaDocumentosProcesso[0], self::$documentoTeste1, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[1]); - $this->validarDocumentoCancelado($listaDocumentosProcesso[2]); - $this->validarDadosDocumento($listaDocumentosProcesso[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php deleted file mode 100755 index 7333e6b8c..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - //Configurao da unidade destinatrio como outra unidade do mesmo rgo - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['NOME_UNIDADE'] = self::$remetente['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - $this->realizarTramiteExternoSemvalidacaoNoRemetente(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - /** - * @depends test_tramitar_processo_contendo_documento_gerado - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * @depends test_verificar_origem_processo_contendo_documento_gerado - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php deleted file mode 100755 index 31bdf5678..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php - -/** - * @group rodarseparado - * @group rodarseparado2 - * @group execute_alone_group1 - */ -class TramiteProcessoContendoDocumentoExternoParticionadoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - public static function setUpBeforeClass() :void { - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(70, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - public static function tearDownAfterClass() :void { - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - - /** - * Teste de trmite externo de processo contendo documento externo particionado acima de 60Mb - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_externo_60mb() - { - //Aumenta o tempo de timeout devido ao tamanho do arquivo arquivo_060.pdf - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_060.pdf'); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Altera tamanho mximo permitido para permitir o envio de arquivo superior 50MBs - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - try { - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(70, 'SEI_TAM_MB_DOC_EXTERNO')); - $this->cadastrarDocumentoExterno(self::$documentoTeste); - } finally { - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - } - - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, null, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_externo_60mb - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_externo_60mb() - { - //Aumenta o tempo de timeout devido ao tamanho do arquivo arquivo_060.pdf - $this->setSeleniumServerRequestsTimeout(60000); - - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_externo_60mb - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_externo_60mb() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php deleted file mode 100755 index c05545b49..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php +++ /dev/null @@ -1,121 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoExternoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo apenas um documento externo - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // 1 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 2 - Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // 3 - Incluir Documentos no Processo - $this->cadastrarDocumentoExterno(self::$documentoTeste); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_externo - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_externo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_contendo_documento_externo - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_externo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php deleted file mode 100755 index 96f6ad20f..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - //Configurao da unidade destinatrio como outra unidade do mesmo rgo - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['NOME_UNIDADE'] = self::$remetente['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - $this->realizarTramiteExternoSemvalidacaoNoRemetente(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - /** - * @depends test_tramitar_processo_contendo_documento_gerado - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * @depends test_verificar_origem_processo_contendo_documento_gerado - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php deleted file mode 100755 index f392f249a..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteProcessoContendoDocumentoGeradoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo apenas um documento interno (gerado) - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // 1 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 2 - Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // 3 - Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste); - - // 4 - Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_gerado - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_contendo_documento_gerado - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php deleted file mode 100755 index 20af277db..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoInternoExternoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoInternoTeste; - public static $documentoExternoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo um documento interno e outro externo - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_interno_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoInternoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoExternoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // 1 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 2 - Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // 3 - Incluir e assinar documentos no processo - $this->cadastrarDocumentoInterno(self::$documentoInternoTeste); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 4 - Incluir documento externo ao processo - $this->cadastrarDocumentoExterno(self::$documentoExternoTeste); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_interno_externo - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_interno_externo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_contendo_documento_interno_externo - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_interno_externo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 2); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoInternoTeste, self::$destinatario); - $this->validarDadosDocumento($listaDocumentos[1], self::$documentoExternoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestino.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestino.php deleted file mode 100644 index 89519c65f..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestino.php +++ /dev/null @@ -1,339 +0,0 @@ -<?php -/* -Escopo do caso de teste: - rgo 1: - 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - 2-criar Documento Externo (documentoTeste1) no Processo Principal - 3-criar Documento Interno (documentoTeste2) no Processo Principal - 4-criar Documento Interno (documentoTeste3) no Processo Principal - 5-tramitar Processo Principal para o rgo 2 com validao no remetente - rgo 2: - 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - 10-criar documento externo (documentoTeste4) no Processo Principal - 11-criar documento interno (documentoTeste5) no Processo Principal - 12-tramitar Processo Principal para o rgo 1 com validao no remetente - rgo 1: - 13-verificar correto recebimento do processo no destino (rgo 1) - 14-criar documento interno (documentoTeste6) no Processo Principal - 15-tramitar Processo Principal para o rgo 2 com validao no remetente - rgo 2: - 16-verificar correto recebimento do processo no destino (rgo 2) - 17-criar documento interno (documentoTeste7) no Processo Principal - 18-tramitar Processo Principal para o rgo 1 com validao no remetente - rgo 1: - 19-verificar correto recebimento do processo no destino (rgo 1) -*/ - -/** - * - * Execution Groups - * @group exxecute_parallel - */ -class TramiteProcessoContendoDocumentoMovidoDestino extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteSecundario; - public static $protocoloTestePrincipal; - public static $protocoloTesteSecundario; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $documentoTeste7; - - /* - Escopo da funo: - rgo 1: - 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - 2-criar Documento Externo (documentoTeste1) no Processo Principal - 3-criar Documento Interno (documentoTeste2) no Processo Principal - 4-criar Documento Interno (documentoTeste3) no Processo Principal - 5-tramitar Processo Principal para o rgo 2 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @Depends CenarioBaseTestCase::setUpBeforeClass - @return void - */ - public function test_criar_processo_contendo_documentos_tramitar_remetente() - { - // definir rgo 1 como remetente e rgo 2 como destinatrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // acessar remetente (rgo 1) - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - - // 2-criar Documento Externo (documentoTeste1) no Processo Principal - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExterno(self::$documentoTeste1); - - // 3-criar Documento Interno (documentoTeste2) no Processo Principal - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInterno(self::$documentoTeste2); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 4-criar Documento Interno (documentoTeste3) no Processo Principal - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInterno(self::$documentoTeste3); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 5-tramitar Processo Principal para o rgo 2 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 2: - 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - 10-criar documento externo (documentoTeste4) no Processo Principal - 11-criar documento interno (documentoTeste5) no Processo Principal - 12-tramitar Processo Principal para o rgo 1 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_criar_processo_contendo_documentos_tramitar_remetente - @return void - */ - public function test_criar_mover_incluir_documentos_devolver_processo_remetente() - { - // 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como destinatrio e rgo 2 como remetente - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - self::$processoTesteSecundario = $this->gerarDadosProcessoTeste(self::$remetente); - self::$protocoloTesteSecundario = $this->cadastrarProcesso(self::$processoTesteSecundario); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // listar documentos do Processo Principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - - // 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - $this->paginaProcesso->selecionarDocumento($listaDocumentosProcessoPrincipal[0]); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso(self::$protocoloTesteSecundario, "Motivo de teste"); - - // 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - $this->paginaProcesso->selecionarDocumento($listaDocumentosProcessoPrincipal[1]); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso(self::$protocoloTesteSecundario, "Motivo de teste"); - - // 10-criar documento externo (documentoTeste4) no Processo Principal - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExterno(self::$documentoTeste4); - - // 11-criar documento interno (documentoTeste5) no Processo Principal - self::$documentoTeste5 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInterno(self::$documentoTeste5); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 12-tramitar Processo Principal para o rgo 1 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 1: - 13-verificar correto recebimento do processo no destino (rgo 1) - 14-criar documento interno (documentoTeste6) no Processo Principal - 15-tramitar Processo Principal para o rgo 2 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_criar_mover_incluir_documentos_devolver_processo_remetente - @return void - */ - public function test_incluir_documento_tramitar_destinatario() - { - // 13-verificar correto recebimento do processo no destino (rgo 1) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como remetente e rgo 2 como destinatrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // 14-criar documento interno (documentoTeste6) no Processo Principal - self::$documentoTeste6 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInterno(self::$documentoTeste6); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 15-tramitar Processo Principal para o rgo 2 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 2: - 16-verificar correto recebimento do processo no destino (rgo 2) - 17-criar documento interno (documentoTeste7) no Processo Principal - 18-tramitar Processo Principal para o rgo 1 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_incluir_documento_tramitar_destinatario - @return void - */ - public function test_incluir_documento_tramitar_remetente() - { - // 16-verificar correto recebimento do processo no destino (rgo 2) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5, self::$documentoTeste6); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como destinatrio e rgo 2 como remetente - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // 17-criar documento interno (documentoTeste7) no Processo Principal - self::$documentoTeste7 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInterno(self::$documentoTeste7); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 18-tramitar Processo Principal para o rgo 1 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 1: - 19-verificar correto recebimento do processo no destino (rgo 1) - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_incluir_documento_tramitar_remetente - @return void - */ - public function test_verificar_processo_documento_destino() - { - // 19-verificar correto recebimento do processo no destino (rgo 1) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5, self::$documentoTeste6, self::$documentoTeste7); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - } - -} \ No newline at end of file diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php deleted file mode 100755 index c9550dd81..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php +++ /dev/null @@ -1,249 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento movido sem anexo - * - * Este mesmo documento deve ser recebido e assinalado como cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessoContendoDocumentoMovidoSemAnexoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento movido - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_movido_sem_anexo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Criar processo secundrio para o qual o documento ser movido - $protocoloSecundarioTeste = $this->cadastrarProcesso($processoSecundarioTeste); - - // Cadastrar novo processo de teste e incluir documentos a ser movido - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste1, false); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste, "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInterno(self::$documentoTeste2); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_movido_sem_anexo - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento movido no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_movido_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem contendo - * mais dois documentos, sendo um deles movido - * - * @group envio - * - * @depends test_verificar_destino_processo_com_documento_movido_sem_anexo - * - * @return void - */ - public function test_devolucao_processo_para_origem_com_novo_documento_movido_sem_anexo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Criar processo secundrio para o qual o novo documento ser movido - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $protocoloSecundarioTeste = $this->cadastrarProcesso($processoSecundarioTeste); - - // Incluir novos documentos ao processo para ser movido - $this->abrirProcesso(self::$protocoloTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste3, false); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste, "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInterno(self::$documentoTeste4); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_para_origem_com_novo_documento_movido_sem_anexo - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_com_dois_documentos_movidos_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcesso)); - $this->validarDocumentoMovido($listaDocumentosProcesso[0]); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[2]); - $this->validarDadosDocumento($listaDocumentosProcesso[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php deleted file mode 100755 index a36397824..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php +++ /dev/null @@ -1,259 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento movido - * - * Este mesmo documento deve ser recebido e assinalado como cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoMovidoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento movido - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_movido() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Criar processo secundrio para o qual o documento ser movido - $protocoloSecundarioTeste = $this->cadastrarProcesso($processoSecundarioTeste); - - // Cadastrar novo processo de teste e incluir documentos a ser movido - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste1); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste, "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInterno(self::$documentoTeste2); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_movido - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento movido no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_movido() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem contendo - * mais dois documentos, sendo um deles movido - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_com_documento_movido - * - * @return void - */ - public function test_devolucao_processo_para_origem_com_novo_documento_movido() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Criar processo secundrio para o qual o novo documento ser movido - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $protocoloSecundarioTeste = $this->cadastrarProcesso($processoSecundarioTeste); - - // Incluir novos documentos ao processo para ser movido - $this->abrirProcesso(self::$protocoloTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste3); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste, "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInterno(self::$documentoTeste4); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem_com_novo_documento_movido - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_com_dois_documentos_movidos() - { - $strProtocoloTeste = self::$protocoloTeste; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcesso)); - $this->validarDocumentoMovido($listaDocumentosProcesso[0]); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[2]); - $this->validarDadosDocumento($listaDocumentosProcesso[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php b/tests_sei3/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php deleted file mode 100755 index b453f3b46..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoVariosDocumentosTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentosTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo vrios documentos - * - * @group envio - * @large - * - * @return void - */ - public function test_tramitar_processo_contendo_varios_documentos() - { - //Aumenta o tempo de timeout devido quantidade de arquivos - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentosTeste = array_merge( - array_fill(0, 3, $this->gerarDadosDocumentoInternoTeste(self::$remetente)), - array_fill(0, 3, $this->gerarDadosDocumentoExternoTeste(self::$remetente)) - ); - - shuffle(self::$documentosTeste); - - $this->realizarTramiteExternoSemvalidacaoNoRemetente(self::$processoTeste, self::$documentosTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_varios_documentos - * - * @return void - */ - public function test_verificar_origem_processo_contendo_varios_documentos() - { - $this->setSeleniumServerRequestsTimeout(6000); - - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_varios_documentos - * - * @return void - */ - public function test_verificar_destino_processo_contendo_varios_documentos() - { - $this->setSeleniumServerRequestsTimeout(6000); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentosTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php b/tests_sei3/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php deleted file mode 100755 index 2fa24a803..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoDocumentoNaoMapeadoDestinoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoA->setParameter('PEN_TIPO_DOCUMENTO_PADRAO_RECEBIMENTO', null); - } - - function tearDown(): void - { - parent::tearDown(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoA->setParameter('PEN_TIPO_DOCUMENTO_PADRAO_RECEBIMENTO', 999); - } - - /** - * Teste de trmite externo de processo contendo documento no mapeado no destino - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_nao_mapeado_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$destinatario['TIPO_DOCUMENTO_NAO_MAPEADO']; - - // 1 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 2 - Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // 3 - Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste); - - // 4 - Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_nao_mapeado_destino() - { - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(utf8_encode("Processo aberto somente na unidade"), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $nomeTipoDocumentoNaoMapeado = mb_convert_encoding(self::$destinatario['TIPO_DOCUMENTO_NAO_MAPEADO'], "ISO-8859-1"); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, - sprintf("O Documento do tipo %s no est mapeado para recebimento no sistema de destino. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro.", $nomeTipoDocumentoNaoMapeado)); - - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - - // Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_contendo_documento_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php b/tests_sei3/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php deleted file mode 100755 index 89461154d..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteProcessoDocumentoNaoMapeadoOrigemTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO', null); - } - - function tearDown(): void - { - parent::tearDown(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO', 999); - } - - /** - * Teste de trmite externo de processo contendo um documento interno com espcie documental no mapeada - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_documento_interno_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$remetente['TIPO_DOCUMENTO_NAO_MAPEADO']; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - $tipoDocumento = mb_convert_encoding(self::$documentoTeste["TIPO_DOCUMENTO"], "ISO-8859-1"); - $mensagemEsperada = sprintf("No existe mapeamento de envio para %s no documento", $tipoDocumento); - $this->expectExceptionMessage(utf8_encode($mensagemEsperada)); - $this->tramitarProcessoExternamente(self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de trmite externo de processo contendo um documento externo com espcie documental no mapeada - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_documento_externo_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$remetente['TIPO_DOCUMENTO_NAO_MAPEADO']; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Incluir Documentos no Processo - $this->cadastrarDocumentoExterno(self::$documentoTeste); - - $tipoDocumento = mb_convert_encoding(self::$documentoTeste["TIPO_DOCUMENTO"], "ISO-8859-1"); - $mensagemEsperada = sprintf("No existe mapeamento de envio para %s no documento", $tipoDocumento); - $this->expectExceptionMessage(utf8_encode($mensagemEsperada)); - $this->tramitarProcessoExternamente(self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php b/tests_sei3/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php deleted file mode 100755 index 5c34b9217..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoExtensaoNaoMapeadoDestinoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo extenso no mapeada no destino - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_extensao_nao_mapeada_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_extensao_nao_permitida.docx'); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste); - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_extensao_nao_mapeada_destino - * - * @return void - */ - public function test_verificar_origem_processo_contendo_extensao_nao_mapeado_destino() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(utf8_encode("Processo aberto somente na unidade"), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, "O formato docx no permitido pelo sistema de destino. Lembre-se que cada rgo/entidade tem autonomia na definio de quantos e quais formatos de arquivo so aceitos pelo seu sistema. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro."); - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_contendo_extensao_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoRestritoComDocumentoRestritoCanceladoComHipoteseInativaTest.php b/tests_sei3/funcional/tests/TramiteProcessoRestritoComDocumentoRestritoCanceladoComHipoteseInativaTest.php deleted file mode 100755 index 16ae55039..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoRestritoComDocumentoRestritoCanceladoComHipoteseInativaTest.php +++ /dev/null @@ -1,164 +0,0 @@ -<?php - -class TramiteProcessoRestritoComDocumentoRestritoCanceladoComHipoteseInativaTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $protocoloTeste; - - - public static function tearDownAfterClass(): void - { - // Ativar hiptese legal Situao Econmico-Financeira de Sujeito Passivo - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update hipotese_legal set sin_ativo=? where id_hipotese_legal=?", array('S', '18')); - - // Ativa hiptese legal Situao Econmico-Financeira de Sujeito Passivo - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update hipotese_legal set sin_ativo=? where id_hipotese_legal=?", array('S', '18')); - } - - - /** - * Teste de trmite externo de processo com documento restrito com hiptese legal inativa cancelado - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_restrivo_com_documento_restrito_cancelado_hipotese_inativa() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Configurao de documento restrito - self::$documentoTeste1["RESTRICAO"] = PaginaIncluirDocumento::STA_NIVEL_ACESSO_RESTRITO; - self::$documentoTeste1["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste1); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Configurao de documento restrito - self::$documentoTeste2["RESTRICAO"] = PaginaIncluirDocumento::STA_NIVEL_ACESSO_RESTRITO; - self::$documentoTeste2["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO_INATIVA"]; - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste2); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - $this->paginaDocumento->navegarParaCancelarDocumento(); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - // Inativa hiptese legal Situao Econmico-Financeira de Sujeito Passivo - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update hipotese_legal set sin_ativo=? where id_hipotese_legal=?", array('N', '18')); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_restrivo_com_documento_restrito_cancelado_hipotese_inativa - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_restrito_cancelado_hipotese_inativa() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo um documento com hiptese legal inativa cancelado - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_restrivo_com_documento_restrito_cancelado_hipotese_inativa - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_restrito_cancelado_hipotese_inativa() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 2); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste1, self::$destinatario); - - // Ativa hiptese legal Situao Econmico-Financeira de Sujeito Passivo - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update hipotese_legal set sin_ativo=? where id_hipotese_legal=?", array('S', '18')); - - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoRestritoComDocumentoSigilosoCanceladoTest.php b/tests_sei3/funcional/tests/TramiteProcessoRestritoComDocumentoSigilosoCanceladoTest.php deleted file mode 100755 index 49c3b3e9c..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoRestritoComDocumentoSigilosoCanceladoTest.php +++ /dev/null @@ -1,156 +0,0 @@ -<?php - -class TramiteProcessoRestritoComDocumentoSigilosoCanceladoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com documento sigiloso cancelado - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_restrivo_com_documento_sigiloso_cancelado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Processo Acesso Informao: Demanda do e-SIC - Sigiloso - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update nivel_acesso_permitido set sta_nivel_acesso=? where id_tipo_procedimento=? and sta_nivel_acesso=?", array('2', '100000381', '0')); - - // hiptese legal Sigilo do Inqurito Policial - Sigiloso - $bancoOrgaoA->execute("update hipotese_legal set sta_nivel_acesso=? where id_hipotese_legal=?", array('2', '17')); - - // Processo Acesso Informao: Demanda do e-SIC - Sigiloso - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update nivel_acesso_permitido set sta_nivel_acesso=? where id_tipo_procedimento=? and sta_nivel_acesso=?", array('2', '100000381', '0')); - - // hiptese legal Sigilo do Inqurito Policial - Sigiloso - $bancoOrgaoB->execute("update hipotese_legal set sta_nivel_acesso=? where id_hipotese_legal=?", array('2', '17')); - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - self::$processoTeste["TIPO_PROCESSO"] = self::$remetente["TIPO_PROCESSO_SIGILOSO"]; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Configurao de documento restrito - self::$documentoTeste1["RESTRICAO"] = PaginaIncluirDocumento::STA_NIVEL_ACESSO_RESTRITO; - self::$documentoTeste1["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste1); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Configurao de documento sigiloso - self::$documentoTeste2["RESTRICAO"] = PaginaIncluirDocumento::STA_NIVEL_ACESSO_SIGILOSO; - self::$documentoTeste2["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_SIGILOSO"]; - - $this->cadastrarDocumentoInterno(self::$documentoTeste2); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - $this->paginaDocumento->navegarParaCancelarDocumento(); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_restrivo_com_documento_sigiloso_cancelado - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_sigiloso_cancelado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo um documento sigiloso cancelado - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_restrivo_com_documento_sigiloso_cancelado - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_sigiloso_cancelado() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 2); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste1, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php b/tests_sei3/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php deleted file mode 100755 index 9941a26d2..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php +++ /dev/null @@ -1,133 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoRestritoHipotesePadraoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com restrio de acesso e hiptese legal no mapeada, mas com hiptese padro definida - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_restrito_hipotese_nao_mapeada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO_NAO_MAPEADO"]; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_origem_processo_restrito_hipotese_nao_mapeada() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_destino_processo_restrito_hipotese_nao_mapeada() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']), - self::$destinatario["HIPOTESE_RESTRICAO_PADRAO"]); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoRestritoTest.php b/tests_sei3/funcional/tests/TramiteProcessoRestritoTest.php deleted file mode 100755 index 9d33233f2..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoRestritoTest.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoRestritoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com restrio de acesso - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_restrito() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - // Incluir Documentos no Processo - $this->cadastrarDocumentoInterno(self::$documentoTeste); - - // Assinar documento interno criado anteriormente - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_restrito - * - * @return void - */ - public function test_verificar_origem_processo_restrito() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_restrito - * - * @return void - */ - public function test_verificar_destino_processo_restrito() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php b/tests_sei3/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php deleted file mode 100755 index b6427d848..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoTamanhoAcimaLimiteDestinoTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - - /** - * - * @Depends TramiteProcessoGrandeTest::tearDownAfterClass - * - * @return void - */ - public static function setUpBeforeClass() :void { - - // Reduo de limite mximo de tamanho de documento externo - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(2, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - public static function tearDownAfterClass() :void { - - // Ajuste do tamanho mximo de arquivo externo permitido para padro - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - /** - * Teste de trmite externo de processo contendo documento com tamanho acima do limite no destinatario - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_tamanho_acima_limite_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_003.pdf'); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - $this->cadastrarDocumentoExterno(self::$documentoTeste); - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_tamanho_acima_limite_destino - * - * @return void - */ - public function test_verificar_origem_processo_tamanho_acima_limite_destino() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $this->atualizarTramitesPEN(); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(utf8_encode("Processo aberto somente na unidade"), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, "O tamanho mximo geral permitido para documentos externos"); - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_tamanho_acima_limite_destino - * - * @return void - */ - public function test_verificar_destino_processo_tamanho_acima_limite_destino() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPai.php b/tests_sei3/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPai.php deleted file mode 100755 index a4246279d..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPai.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -class TramiteProcessoUnidadeSemHierarquiaPaiTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo sem devoluo para testar caso de hierarquia sem pai - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_C); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1); - $this->realizarTramiteExternoSemvalidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $paginaProcesso = new PaginaProcesso($this); - $this->assertStringNotContainsString(utf8_encode("externa para SEGES TESTE SEM PAI - - RE CGPRO"), $paginaProcesso->informacao()); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessoValidacaoEnvioTest.php b/tests_sei3/funcional/tests/TramiteProcessoValidacaoEnvioTest.php deleted file mode 100755 index 9126e36ed..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessoValidacaoEnvioTest.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoValidacaoEnvioTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - } - - function tearDown(): void - { - parent::tearDown(); - } - - /** - * Teste de trmite externo com processo no contendo nenhum documento cadastrado - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_sem_documentos() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcesso(self::$processoTeste); - - $this->expectExceptionMessage(utf8_encode("No possvel tramitar um processo sem documentos")); - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false - ); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php b/tests_sei3/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php deleted file mode 100755 index 4518ede54..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php +++ /dev/null @@ -1,200 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessosComDevolucaoAmbosAnexadosTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de dois processos apartados para o sistema de origem - * - * Posteriormente os dois sero anexados e enviados de volta - * - * @group envio - * - * @return void - */ - public function test_tramitar_processos_separados_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTestePrincipal, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTestePrincipal = self::$processoTestePrincipal["PROTOCOLO"]; - - $this->sairSistema(); - - // Criao e envio do segundo processo, representando o que ser anexado ao processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento dos dois processos separados no destino - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processos_separados_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processos_separados_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - $this->sairSistema(); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao e a devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_recebimento_processos_separados_destino - * - * @return void - */ - public function test_devolucao_processo_anexado_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Definio de dados de teste do processo principal - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Incluir novos documentos relacionados no processo anexado - $this->abrirProcesso(self::$protocoloTesteAnexado); - $this->cadastrarDocumentoExterno(self::$documentoTeste5); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - $this->anexarProcesso(self::$protocoloTesteAnexado); - $this->cadastrarDocumentoExterno(self::$documentoTeste6); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_anexado_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste5, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php b/tests_sei3/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php deleted file mode 100755 index d4be2a6d1..000000000 --- a/tests_sei3/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php +++ /dev/null @@ -1,353 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexados considerando cenrio especfico de trmites e devolues sucessivas - * - * O cenrio descreve uma falha relatada pelos usurios em que um erro de inconsistncia era causado aps a realizao dos seguintes passos: - * - * - Trmite de processo simples X do rgo A para o rgo B - * - Adio de novos documentos e devoluo do processo para rgo A - * - Adio de novos documentos no processo X e anexao ao processo Y - * - Trmite do processo Y para rgo B - * - Adio de novos documentos ao processo Y e devoluo para o rgo A - * - Adio de novos documentos e devoluo para rgo B - * - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessosComDevolucoesEAnexacoesTest extends CenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $documentoTeste7; - public static $documentoTeste8; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de processo apartado para o rgo B - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_simples_para_orgaoB() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do segundo processo, representando o que ser anexado ao processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo simples no rgo B - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_simples_para_orgaoB - * - * @return void - */ - public function test_verificar_recebimento_processo_simples_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_recebimento_processo_simples_destino - * - * @return void - */ - public function test_devolucao_processo_simples_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Definio de dados de teste do processo principal - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao da correta devoluo do processo simples para o rgo A - * - * @group verificacao_recebimento - * - * @depends test_devolucao_processo_simples_para_origem - * - * @return void - */ - public function test_verificar_devolucao_processo_simples_origem() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - - /** - * Teste de trmite de processos contendo o processo simples anexado outro - * - * @group envio - * - * @depends test_verificar_devolucao_processo_simples_origem - * - * @return void - */ - public function test_tramitar_processo_anexado_para_orgaoB() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste principal e incluir documentos relacionados - $this->paginaBase->navegarParaControleProcesso(); - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - $this->cadastrarDocumentoExterno(self::$documentoTeste5); - - // Realizar a anexao de processos - $this->anexarProcesso(self::$protocoloTesteAnexado); - - $this->cadastrarDocumentoInterno(self::$documentoTeste6); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_anexado_para_orgaoB - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $strTipoProcesso = utf8_encode("Tipo de processo no rgo de origem: "); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[3], self::$documentoTeste4, self::$destinatario); - } - - /** - * Teste de trmite externo de processo realizando nova devoluo para a mesma unidade de origem - * - * @group envio - * - * @depends test_verificar_destino_processo_anexado - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Definio de dados de teste do processo principal - self::$documentoTeste7 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste8 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Incluir novos documentos relacionados - $this->abrirProcesso(self::$protocoloTestePrincipal); - $this->cadastrarDocumentoExterno(self::$documentoTeste7); - $this->cadastrarDocumentoInterno(self::$documentoTeste8); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(utf8_encode("Processo em trmite externo para "), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(5, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste6, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste7, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[4], self::$documentoTeste8, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei3/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php b/tests_sei3/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php deleted file mode 100755 index 9d2ac1a3e..000000000 --- a/tests_sei3/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php +++ /dev/null @@ -1,285 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteRecebimentoDocumentoAvulsoTest extends CenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - protected $servicoPEN; - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - - /** - * Teste preparatrio (setUp()). Definio de contextos e instanciao da api de integrao - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de verificao do correto recebimento do documento avulso - * - * @return void - */ - public function test_recebimento_documento_avulso() - { - // Simular um trmite chamando a API do Barramento diretamente - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, array(self::CONTEUDO_DOCUMENTO_A)); - - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste(self::$documentoTeste1); - $novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, self::$remetente, self::$destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoTramite($this->servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvio($this->servicoPEN, $novoTramite); - $this->atualizarTramitesPEN(true,false); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - self::$processoTeste = $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario(self::$documentoTeste1, self::$destinatario); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_recebimento_documento_avulso - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste2, self::$documentoTeste3); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_para_origem_documento_avulso() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste4, self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem_documento_avulso - * - * @return void - */ - public function test_verificar_recebimento_processo_destino_documento_avulso() - { - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = trim(substr($dadosDocumentoTest['INTERESSADOS'], 0, 15)); - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } -} diff --git a/tests_sei3/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_sei3/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php deleted file mode 100755 index bec8c0d78..000000000 --- a/tests_sei3/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php +++ /dev/null @@ -1,401 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteRecebimentoMultiplosComponentesDigitais extends CenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoB['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoB['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, - self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - )); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - - $documentoTeste1 = $this->gerarDadosDocumentoInternoTeste($remetente); - $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); - - $novosDocumentos = array($documentoTeste1, $documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - $totalDdocumentos = array(self::$documentoZip, $documentoTeste1, $documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $totalDdocumentos, $destinatario); - } - - /** - * Teste de recebimento documento avulso com 2 componentes digitais - * - * @return void - */ - public function test_recebimento_documento_avulso_com_2_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($remetente, array(self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B)); - $documentoTeste['INTERESSADOS'] = trim(substr($documentoTeste['INTERESSADOS'], 0, 50)); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoAvulsoTeste($documentoTeste); - $novoTramite = $this->enviarMetadadosDocumento(self::$servicoPEN, $remetente, $destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoDocumentoAvulso(self::$servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvioDocumentoAvulso(self::$servicoPEN, $novoTramite); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_sei3/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_sei3/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php deleted file mode 100755 index bbd299c90..000000000 --- a/tests_sei3/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php +++ /dev/null @@ -1,395 +0,0 @@ -<?php - -use \utilphp\util; - -class TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes extends CenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - public static $totalDocumentos; - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoA['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoA['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C - )); - - self::$totalDocumentos = array(self::$documentoZip); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - $this->atualizarTramitesPEN(true,false); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem_1() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - $documentoTesteInterno = $this->gerarDadosDocumentoInternoTeste($remetente); - - $novosDocumentos = array($documentoTesteInterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - /** - * - * @depends test_devolucao_processo_para_origem_1 - * - * @return void - */ - public function test_devolucao_processo_para_destino_2() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = array_slice(self::$contextoOrgaoB, 0); - $destinatario['SIGLA_UNIDADE'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA']; - $destinatario['NOME_UNIDADE'] = $destinatario['NOME_UNIDADE_SECUNDARIA']; - $destinatario['SIGLA_UNIDADE_HIERARQUIA'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); - - $novosDocumentos = array($documentoTesteExterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => utf8_encode(util::random_string(20)) - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => utf8_encode(util::random_string(20)), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_sei3/unitario/bootstrap.php b/tests_sei3/unitario/bootstrap.php deleted file mode 100755 index 0e18b2deb..000000000 --- a/tests_sei3/unitario/bootstrap.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - -require_once __DIR__ . '/vendor/autoload.php'; - -define('DIR_SEI_WEB', realpath(DIR_SEI_CONFIG . '/../web')); - -set_include_path('.:/php/includes:'.realpath(DIR_SEI_CONFIG . '/../../infra/infra_php')); -require_once DIR_SEI_WEB . '/SEI.php'; -require_once __DIR__ . '/assets/config/ConfiguracaoModPEN.php'; diff --git a/tests_sei3/unitario/composer.json b/tests_sei3/unitario/composer.json deleted file mode 100755 index 6f36d3259..000000000 --- a/tests_sei3/unitario/composer.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "config": { - "platform": { - "php": "7.3.12" - } - }, - - "autoload": { - "classmap": [ - "../../src/rn/" - ] - }, - - "require-dev": { - "phpunit/phpunit": "5.*" - } -} diff --git a/tests_sei3/unitario/phpunit.xml b/tests_sei3/unitario/phpunit.xml deleted file mode 100755 index a723ec328..000000000 --- a/tests_sei3/unitario/phpunit.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit bootstrap="bootstrap.php" colors="true" verbose="true"> - <php> - <!-- Localização do diretório onde está contido os arquivos de configuração do SEI --> - <const name="DIR_SEI_CONFIG" value="/home/guilhermeadc/dev/sei/sei/config"/> - </php> -</phpunit> diff --git a/tests_sei3/unitario/rn/ProcessoEletronicoRNTest.php b/tests_sei3/unitario/rn/ProcessoEletronicoRNTest.php deleted file mode 100755 index 68f289533..000000000 --- a/tests_sei3/unitario/rn/ProcessoEletronicoRNTest.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -use PHPUnit\Framework\TestCase; - -final class ProcessoEletronicoRNTest extends TestCase -{ - private $ProcessoEletronicoRN; - - public function setUp() - { - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); - } - - /** - * Testes do mtodo privado reduzirCampoTexto - * - * @return void - */ - public function testReduzirCampoTexto() - { - $numTamanhoMaximo = 53; - // Teste considerando uma palavra pequena ao final do texto - $strTexto = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee fffffffff ggggggggg hhhhhhhhh iiiiiiiii"; - $strResultadoEsperado = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas uma palavra - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com uma palavra grande ao final - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando texto longo e palavro curta ao finals - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto curto abaixo do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa a"; - $strResultadoEsperado = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - // Teste considerando um texto nulo - $strTexto = null; - $strResultadoEsperado = null; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com ultima palavra menor que a reticencias - $strTexto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniamr quis"; - $strResultadoEsperado = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniam ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - } -} diff --git a/tests_sei4/funcional/Readme.md b/tests_sei4/funcional/Readme.md deleted file mode 100755 index 801659725..000000000 --- a/tests_sei4/funcional/Readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI - - -## 1. Instalação dos pré-requisitos - -Todos os componentes abaixo precisam ser instalados antes de iniciar os testes automatizados. - -### 1.1 Instalação das extensões do PHP - -´´´bash -sudo apt install php-dom php-mbstring php-curl php-soap php-mysql - -´´´ - -### 1.2 Instalação do gerenciador de pacotes Composer - -´´´bash -php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer -´´´ - - -## 2. Atualização das dependências do projeto - -O mod-sei-pen utiliza o PHP Unit e outros utilitários de testes que possuem suas dependencias gerenciadas pelo Composer. Maiores informações sobre como instalar este gerenciados de pacotes para PHP podem ser encontradas em https://getcomposer.org/. -Acesse o diretório do projeto ```tests/``` e execute o comando abaixo para atualizar as depedências do projeto. - -```bash -$ composer install -``` - -## 3. Execução do servidor de teste selenium - -Para que os testes possam simular a interação com um navegador web, é utilizado a ferramenta Selenium (selenium-webdriver). Portanto, será necessário ativar o servidor do Selenium antes de iniciar, indicando qual o driver correto para o navegador a ser utilizado nos testes. - -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: -``` bash -java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-<VERSAO DO DRIVER> lib/selenium-server-standalone-3.11.0.jar -``` - -## 4. Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser revisada para verificar se os parâmetros estão devidamente configurados para a cenário de teste que irá ser executado. A Configuração aplicada encontra-se definida no arquivo **phpunit.xml**. - - -### 5. Execução dos testes funcionais automatizados - -```bash -$ ./vendor/bin/phpunit --testsuite funcional -``` - diff --git a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno.txt b/tests_sei4/funcional/assets/arquivos/arquivo_pequeno.txt deleted file mode 100755 index 376b92666..000000000 --- a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno.txt +++ /dev/null @@ -1 +0,0 @@ -arquivo pequeno diff --git a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_A.pdf b/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_A.pdf deleted file mode 100755 index 2f19792f9..000000000 Binary files a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_A.pdf and /dev/null differ diff --git a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_B.pdf b/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_B.pdf deleted file mode 100755 index 1d1d62b35..000000000 Binary files a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_B.pdf and /dev/null differ diff --git a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_C.pdf b/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_C.pdf deleted file mode 100755 index 01bc7f65c..000000000 Binary files a/tests_sei4/funcional/assets/arquivos/arquivo_pequeno_C.pdf and /dev/null differ diff --git a/tests_sei4/funcional/assets/arquivos/test_files_index.txt b/tests_sei4/funcional/assets/arquivos/test_files_index.txt deleted file mode 100755 index 049632cb7..000000000 --- a/tests_sei4/funcional/assets/arquivos/test_files_index.txt +++ /dev/null @@ -1,10 +0,0 @@ -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno.txt -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_A.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_B.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_C.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_001.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_003.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_020.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_060.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_corrompimento_besimplesoap.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_extensao_nao_permitida.docx diff --git a/tests_sei4/funcional/assets/config/ConfiguracaoModPEN.exemplo.php b/tests_sei4/funcional/assets/config/ConfiguracaoModPEN.exemplo.php deleted file mode 100644 index 8934a1108..000000000 --- a/tests_sei4/funcional/assets/config/ConfiguracaoModPEN.exemplo.php +++ /dev/null @@ -1,99 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => getenv('CERTIFICADO'), - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => getenv('CERTIFICADO_SENHA'), - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - // "Gearman" => array( - // "Servidor" => "", - // "Porta" => "", //Padro: 4730 - // ) - - "ControleURL" => array( - "atual"=>"servidor.gov.br", - "antigos"=>array( - "[servidor_php]", - "[servidor_php2]", - ) - ), - - // Configurao padro do Envio Parcial - "EnviarApenasComponentesDigitaisPendentes" => false - // "EnviarApenasComponentesDigitaisPendentes" => array( - // "1" => array( // 1 = Poder Executivo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ), - // "21" => array( // 2 = Poder Legislativo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ) - // ) - - ) - ); - } -} \ No newline at end of file diff --git a/tests_sei4/funcional/assets/config/ConfiguracaoModPEN.php b/tests_sei4/funcional/assets/config/ConfiguracaoModPEN.php deleted file mode 100755 index 2d86f9cc6..000000000 --- a/tests_sei4/funcional/assets/config/ConfiguracaoModPEN.php +++ /dev/null @@ -1,86 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => getenv('CERTIFICADO'), - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => getenv('CERTIFICADO_SENHA'), - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - // "Gearman" => array( - // "Servidor" => "", - // "Porta" => "", //Padro: 4730 - // ) - - "ControleURL" => array( - "atual"=>"servidor.gov.br", - "antigos"=>array( - "[servidor_php]", - "[servidor_php2]", - ) - ), - - // Configurao padro do Envio Parcial - "EnviarApenasComponentesDigitaisPendentes" => false - ) - ); - } -} diff --git a/tests_sei4/funcional/assets/config/ConfiguracaoSEI.php b/tests_sei4/funcional/assets/config/ConfiguracaoSEI.php deleted file mode 100755 index 7a99562a3..000000000 --- a/tests_sei4/funcional/assets/config/ConfiguracaoSEI.php +++ /dev/null @@ -1,178 +0,0 @@ -<? - -class ConfiguracaoSEI extends InfraConfiguracao { - - private static $instance = null; - - public static function getInstance(){ - if (ConfiguracaoSEI::$instance == null) { - ConfiguracaoSEI::$instance = new ConfiguracaoSEI(); - } - return ConfiguracaoSEI::$instance; - } - - public function getArrConfiguracoes(){ - return array( - 'SEI' => array( - 'URL' => getenv('HOST_URL').'/sei', - 'Producao' => false, - 'DigitosDocumento' => 7, - 'PermitirAcessoLocalPdf' => '', - 'NumLoginUsuarioExternoSemCaptcha' => 3, - 'TamSenhaUsuarioExterno' => 8, - 'DebugWebServices' => 0, - 'RepositorioArquivos' => '/var/sei/arquivos', - 'Modulos' => array( - //'ABCExemploIntegracao' => 'abc/exemplo', - //'PesquisaIntegracao' => 'pesquisa', - //'WScomplementarIntegracao' => 'ws_complementar', - //'PeticionamentoIntegracao' => 'peticionamento', - //'RelacionamentoInstitucionalIntegracao' => 'relacionamento-institucional', - //'CorreiosIntegracao' => 'correios', - //'LitigiosoIntegracao' => 'litigioso', - //'UtilidadesIntegracao' => 'utilidades', - //'MdJulgarIntegracao' => 'trf4/julgamento', - //'MdWsSeiRest' => 'wssei', - 'PENIntegracao' => 'pen', - ), - ), - - 'SessaoSEI' => array( - 'SiglaOrgaoSistema' => 'ABC', - 'SiglaSistema' => 'SEI', - 'PaginaLogin' => getenv('HOST_URL') . '/sip/login.php', - 'SipWsdl' => getenv('HOST_URL') . '/sip/controlador_ws.php?servico=sip', - 'ChaveAcesso' => getenv('SEI_CHAVE_ACESSO'), //ATENAO: gerar uma nova chave para o SEI ap?s a instao (ver documento de instao) - 'https' => false, - ), - - 'PaginaSEI' => array( - 'NomeSistema' => 'SEI', - 'NomeSistemaComplemento' => SEI_VERSAO, - 'LogoMenu' => '', - 'OrgaoTopoJanela' => 'S', - ), - - 'BancoSEI' => array( - 'Servidor' => getenv('DATABASE_HOST'), - 'Porta' => getenv('DATABASE_PORT'), - 'Banco' => getenv('SEI_DATABASE_NAME'), - 'Usuario' => getenv('SEI_DATABASE_USER'), - 'Senha' => getenv('SEI_DATABASE_PASSWORD'), - 'UsuarioScript' => getenv('SEI_DATABASE_USER_SCRIPT'), - 'SenhaScript' => getenv('SEI_DATABASE_PASSWORD_SCRIPT'), - 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle - 'PesquisaCaseInsensitive' => false, - ), - -// 'BancoAuditoriaSEI' => array( -// 'Servidor' => getenv('DATABASE_HOST'), -// 'Porta' => getenv('DATABASE_PORT'), -// 'Banco' => getenv('SEI_DATABASE_NAME'), -// 'Usuario' => getenv('SEI_DATABASE_USER'), -// 'Senha' => getenv('SEI_DATABASE_PASSWORD'), -// 'UsuarioScript' => getenv('SEI_DATABASE_USER_SCRIPT'), -// 'SenhaScript' => getenv('SEI_DATABASE_PASSWORD_SCRIPT'), -// 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle -// 'PesquisaCaseInsensitive' => false, -// ), - - 'CacheSEI' => array( - 'Servidor' => 'memcached', - 'Porta' => '11211', - 'Timeout' => 1, - 'Tempo' => 3600, - ), - - 'Federacao' => array( - 'Habilitado' => false, - 'NumSegundosAcaoRemota' => 10, //Tempo mximo que um link de ao do SEI Federao pode ser executado. - 'NumSegundosSincronizacao' => 300, //Diferena mxima em segundos entre os horrios das instalaes. - 'NumDiasTentativasReplicacao' => 3, //Informa por quanto tempo o sistema tentar replicar sinalizaes em processos para outras instalaes do SEI Federao. - 'ReplicarAcessosOnline' => true, //Sinaliza se as concesses de acessos para r-gos de outras instalaes devem ser replicadas no mesmo instante. Se o valor for false ou se ocorrer um erro ento as replicaes sero tratadas pelo agendamento de replicaes. - 'NumMaxProtocolosConsulta' => 100, //Nmero mximo de protocolos do processo que sero retornados quando outra instituio consultar pelo SEI Federa-o (acima deste valor ser realizada paginao). - 'NumMaxAndamentosConsulta' => 100, //Nmero mximo de andamentos do processo que sero retornados quando outra instituio consultar pelo SEI Federao (acima deste valor ser realizada paginao). - ), - - 'XSS' => array( - 'NivelVerificacao' => 'A', - 'ProtocolosExcecoes' => null, - 'NivelBasico' => array( - 'ValoresNaoPermitidos' => null, - ), - 'NivelAvancado' => array( - 'TagsPermitidas' => null, - 'TagsAtributosPermitidos' => null, - ), - ), - - 'Limites' => array( - //Nvel 1 afeto a Operaes em geral - 'Nivel1TempoSeg' => 60, //Esta chave define o Tempo mximo em segundos para execuo do script. - 'Nivel1MemoriaMb' => 256, //Esta chave define a Quantidade mxima de memria em Megabytes que o script pode utilizar. - //Nvel 2 afeto a Download de documentos, Estatsticas, Gerao de PDF, Migrao de Unidade, Indexao Individual e Substituio de contatos - 'Nivel2TempoSeg' => 600, //Esta chave define o Tempo mximo em segundos para execuo do script. - 'Nivel2MemoriaMb' => 2048, //Esta chave define a Quantidade mxima de memria em Megabytes que o script pode utilizar. - //Nvel 3 afeto a Scripts, Agendamentos, Indexao Massiva, Critrios de Controle Interno e Web Services - 'Nivel3TempoSeg' => 0, //Esta chave define o Tempo mximo em segundos para execuo do script. Este nvel aceita o valor ?0? para indicar sem limite de tempo. - 'Nivel3MemoriaMb' => 4096, //Esta chave define a Quantidade mxima de memria em Megabytes que o script pode utilizar. Este nvel aceita o valor ?-1? para indicar sem limite de memria. - ), - - 'RH' => array( - 'CargoFuncao' => '', //Endereo para o servio de recuperao de Cargos/Funes para assinatura de documentos (opcional). - ), - - 'Solr' => array( - 'Servidor' => 'http://solr:8983/solr', - 'CoreProtocolos' => 'sei-protocolos', - 'CoreBasesConhecimento' => 'sei-bases-conhecimento', - 'CorePublicacoes' => 'sei-publicacoes', - 'TempoCommitProtocolos' => 300, - 'TempoCommitBasesConhecimento' => 60, - 'TempoCommitPublicacoes' => 60, - ), - - 'JODConverter' => array( - 'Servidor' => 'http://jod/converter/service' - ), - - 'HostWebService' => array( - 'Sip' => array('*'), //Refer?ncias (IP e nome na rede) de todas as m?quinas que executam o SIP. - 'Publicacao' => array('*'), //Refer?ncias (IP e nome na rede) das m?quinas de ve?culos de publica??o externos cadastrados no SEI. - 'Ouvidoria' => array('*'), //Refer?ncias (IP e nome na rede) da m?quina que hospeda o formul?rio de Ouvidoria personalizado. Se utilizar o formul?rio padr?o do SEI, ent?o configurar com as m?quinas dos ns de aplica??o do SEI. - ), - - 'InfraMail' => array( - 'Tipo' => '2', //1 = sendmail (neste caso no necessrio configurar os atributos abaixo), 2 = SMTP - 'Servidor' => 'smtp', - 'Porta' => '1025', - 'Codificacao' => '8bit', //8bit, 7bit, binary, base64, quoted-printable - 'Autenticar' => false, //se true ento informar Usuario e Senha - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => '', //TLS, SSL ou vazio - 'MaxDestinatarios' => 25, //numero maximo de destinatarios por mensagem - 'MaxTamAnexosMb' => 15, //tamanho maximo dos anexos em Mb por mensagem - 'Protegido' => '', //campo usado em desenvolvimento, se tiver um email preenchido entao todos os emails enviados terao o destinatario ignorado e substitudo por este valor (evita envio incorreto de email) - /* Abaixo chave opcional desativada com exemplo de preenchimento - 'Dominios' => array( // Opcional. Permite especificar o conjunto de atributos acima individualmente para cada domnio de conta remetente. Se no existir um domnio mapeado ento utilizar os atributos gerais da chave InfraMail. - 'abc.jus.br' => array( - 'Tipo' => '2', - 'Servidor' => '10.1.3.12', - 'Porta' => '25', - 'Codificacao' => '8bit', - 'Autenticar' => false, - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => 'TLS', - 'MaxDestinatarios' => 25, - 'MaxTamAnexosMb' => 15, - 'Protegido' => '', - ), - ), - */ - ), - ); - } -} -?> diff --git a/tests_sei4/funcional/assets/config/lauch.json.example b/tests_sei4/funcional/assets/config/lauch.json.example deleted file mode 100755 index d4b991e62..000000000 --- a/tests_sei4/funcional/assets/config/lauch.json.example +++ /dev/null @@ -1,38 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - - "version": "0.2.0", - "configurations": [ - { - "name": "SEI4", - "type": "php", - "request": "launch", - "internalConsoleOptions":"neverOpen", - "port": 9000, - "stopOnEntry": false, - "pathMappings": { - "${workspaceFolder}":"${workspaceFolder}", - "/opt/sei/scripts/mod-pen":"${workspaceRoot}/mod-sei-pen/src/scripts", - "/opt/sei/web/modulos/pen":"${workspaceRoot}/mod-sei-pen/src", - "/tests":"${workspaceRoot}/mod-sei-pen/tests/funcional", - "/opt":"${workspaceRoot}/sei4/", - } - }, - { - "name": "SEI3", - "type": "php", - "request": "launch", - "internalConsoleOptions":"neverOpen", - "port": 9000, - "stopOnEntry": true, - "pathMappings": { - "${workspaceFolder}":"${workspaceFolder}", - "/opt/sei/scripts/mod-pen":"${workspaceRoot}/mod-sei-pen/src/scripts", - "/opt/sei/web/modulos/pen":"${workspaceRoot}/mod-sei-pen/src", - "/opt":"${workspaceRoot}/sei/", - } - }, - ] -} \ No newline at end of file diff --git a/tests_sei4/funcional/assets/config/xdebug.ini b/tests_sei4/funcional/assets/config/xdebug.ini deleted file mode 100755 index 7df340727..000000000 --- a/tests_sei4/funcional/assets/config/xdebug.ini +++ /dev/null @@ -1,14 +0,0 @@ -; Enable xdebug extension module -zend_extension=/usr/lib64/php/modules/xdebug.so - -;xdebug.remote_enable=1 -xdebug.mode=debug - -;xdebug.remote_host=localhost -xdebug.client_host=#HOSTIP -xdebug.client_port=9000 -xdebug.remote_handler=dbgp -xdebug.discover_client_host=1 - -xdebug.idekey=default - diff --git a/tests_sei4/funcional/assets/cron.d/sei b/tests_sei4/funcional/assets/cron.d/sei deleted file mode 100644 index a91d94293..000000000 --- a/tests_sei4/funcional/assets/cron.d/sei +++ /dev/null @@ -1,3 +0,0 @@ -SHELL=/bin/bash - -* * * * * root . /root/crond_env.sh; /usr/bin/php -c /etc/php.ini /opt/sei/scripts/AgendamentoTarefaSEI.php 2>&1 >> /var/log/sei/agendamento_sei.log diff --git a/tests_sei4/funcional/assets/cron.d/sip b/tests_sei4/funcional/assets/cron.d/sip deleted file mode 100644 index d6f873ea5..000000000 --- a/tests_sei4/funcional/assets/cron.d/sip +++ /dev/null @@ -1,5 +0,0 @@ - -SHELL=/bin/bash - -* * * * * root . /root/crond_env.sh; /usr/bin/php -c /etc/php.ini /opt/sip/scripts/AgendamentoTarefaSip.php 2>&1 >> /var/log/sip/agendamento_sip.log -00 01 * * * root rm -rf /opt/sip/temp/* diff --git a/tests_sei4/funcional/assets/proxy/org1.localhost.conf b/tests_sei4/funcional/assets/proxy/org1.localhost.conf deleted file mode 100755 index 1f70e98e9..000000000 --- a/tests_sei4/funcional/assets/proxy/org1.localhost.conf +++ /dev/null @@ -1,8 +0,0 @@ -Listen 8000 -<VirtualHost *:8000> - ServerName org1-http - - ProxyPass "/" "http://org1-http:8000/" - ProxyPassReverse "/" "http://org1-http:8000/" - -</VirtualHost> \ No newline at end of file diff --git a/tests_sei4/funcional/assets/proxy/org2.localhost.conf b/tests_sei4/funcional/assets/proxy/org2.localhost.conf deleted file mode 100755 index bcbd1e0b9..000000000 --- a/tests_sei4/funcional/assets/proxy/org2.localhost.conf +++ /dev/null @@ -1,8 +0,0 @@ -Listen 8000 -<VirtualHost *:8000> - ServerName org2-http - - ProxyPass "/" "http://org2-http:8000/" - ProxyPassReverse "/" "http://org2-http:8000/" - -</VirtualHost> \ No newline at end of file diff --git a/tests_sei4/funcional/bootstrap.php b/tests_sei4/funcional/bootstrap.php deleted file mode 100755 index 2d202ecd5..000000000 --- a/tests_sei4/funcional/bootstrap.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php -require_once __DIR__ . '/vendor/autoload.php'; - -require_once __DIR__ . '/sei/src/sei/web/SEI.php'; - -define("DIR_SEI_WEB", __DIR__ . '/sei/src/sei/web/'); -define("DIR_TEST", __DIR__ ); -define("DIR_PROJECT", __DIR__ . '/..' ); -define("DIR_INFRA", __DIR__ . '/../src/infra/infra_php' ); - -error_reporting(E_ERROR); -restore_error_handler(); - - -//Classes utilitrias para manipulao dos dados do SEI -require_once __DIR__ . '/src/utils/DatabaseUtils.php'; -require_once __DIR__ . '/src/utils/ParameterUtils.php'; - -//Representao das pginas sob teste -require_once __DIR__ . '/src/paginas/PaginaTeste.php'; -require_once __DIR__ . '/src/paginas/PaginaLogin.php'; -require_once __DIR__ . '/src/paginas/PaginaControleProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaIniciarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaEnviarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaIncluirDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaAssinaturaDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaTramitarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaConsultarAndamentos.php'; -require_once __DIR__ . '/src/paginas/PaginaProcessosTramitadosExternamente.php'; -require_once __DIR__ . '/src/paginas/PaginaReciboTramite.php'; -require_once __DIR__ . '/src/paginas/PaginaEditarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaAnexarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaCancelarDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaMoverDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaTramitarProcessoEmLote.php'; -require_once __DIR__ . '/src/paginas/PaginaCadastroMapEnvioCompDigitais.php'; -require_once __DIR__ . '/src/paginas/PaginaEnvioParcialListar.php'; - -require_once __DIR__ . '/tests/CenarioBaseTestCase.php'; -require_once __DIR__ . '/tests/FixtureCenarioBaseTestCase.php'; diff --git a/tests_sei4/funcional/env_mysql b/tests_sei4/funcional/env_mysql deleted file mode 100755 index 9ea9863cb..000000000 --- a/tests_sei4/funcional/env_mysql +++ /dev/null @@ -1,55 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=9.8 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados MYSQL do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_mysql -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=MySql -ORG1_DATABASE_GUEST_PORT=3306 -ORG1_DATABASE_HOST_PORT=33061 -ORG1_DATABASE_DATA_DIR=/var/lib/mysql -CONTEXTO_ORGAO_A_DB_SEI_DSN="mysql:host=org1-database;port=3306;dbname=sei" - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados MYSQL do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_mysql -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=MySql -ORG2_DATABASE_GUEST_PORT=3306 -ORG2_DATABASE_HOST_PORT=33062 -ORG2_DATABASE_DATA_DIR=/var/lib/mysql -CONTEXTO_ORGAO_B_DB_SEI_DSN="mysql:host=org2-database;port=3306;dbname=sei" - diff --git a/tests_sei4/funcional/env_oracle b/tests_sei4/funcional/env_oracle deleted file mode 100755 index 623c6e642..000000000 --- a/tests_sei4/funcional/env_oracle +++ /dev/null @@ -1,58 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=9.8 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip -SIP_DATABASE_PASSWORD=sip_user - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados ORACLE do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_oracle -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=Oracle -ORG1_DATABASE_GUEST_PORT=1521 -ORG1_DATABASE_HOST_PORT=15211 -ORG1_DATABASE_DATA_DIR=/opt/oracle/oradata -CONTEXTO_ORGAO_A_DB_SEI_DSN="oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=org1-database)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))" - - - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados ORACLE do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_oracle -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=Oracle -ORG2_DATABASE_GUEST_PORT=1521 -ORG2_DATABASE_HOST_PORT=15212 -ORG2_DATABASE_DATA_DIR=/opt/oracle/oradata -CONTEXTO_ORGAO_B_DB_SEI_DSN="oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=org2-database)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))" - - - diff --git a/tests_sei4/funcional/env_postgresql b/tests_sei4/funcional/env_postgresql deleted file mode 100644 index 052469bc5..000000000 --- a/tests_sei4/funcional/env_postgresql +++ /dev/null @@ -1,54 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados POSTGRESQL do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_postgresql -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=PostgreSql -ORG1_DATABASE_GUEST_PORT=5432 -ORG1_DATABASE_HOST_PORT=54321 -ORG1_DATABASE_DATA_DIR=/var/lib/postgresql/data -CONTEXTO_ORGAO_A_DB_SEI_DSN="pgsql:host=org1-database;port=5432;dbname=sei" - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados POSTGRESQL do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_postgresql -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=PostgreSql -ORG2_DATABASE_GUEST_PORT=5432 -ORG2_DATABASE_HOST_PORT=54322 -ORG2_DATABASE_DATA_DIR=/var/lib/postgresql/data -CONTEXTO_ORGAO_B_DB_SEI_DSN="pgsql:host=org2-database;port=5432;dbname=sei" \ No newline at end of file diff --git a/tests_sei4/funcional/env_sqlserver b/tests_sei4/funcional/env_sqlserver deleted file mode 100755 index b3b6ebea3..000000000 --- a/tests_sei4/funcional/env_sqlserver +++ /dev/null @@ -1,57 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=9.8 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados SQL SERVER do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_sqlserver -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=SqlServer -ORG1_DATABASE_GUEST_PORT=1433 -ORG1_DATABASE_HOST_PORT=14331 -ORG1_DATABASE_DATA_DIR=/var/opt/mssql -CONTEXTO_ORGAO_A_DB_SEI_DSN="sqlsrv:server=org1-database,1433; Database=sei" - - - - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados SQL SERVER do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_sqlserver -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=SqlServer -ORG2_DATABASE_GUEST_PORT=1433 -ORG2_DATABASE_HOST_PORT=14332 -ORG2_DATABASE_DATA_DIR=/var/opt/mssql -CONTEXTO_ORGAO_B_DB_SEI_DSN="sqlsrv:server=org2-database,1433; Database=sei" - - diff --git a/tests_sei4/funcional/lib/drivers/chromedriver b/tests_sei4/funcional/lib/drivers/chromedriver deleted file mode 100755 index 7d7041d4b..000000000 Binary files a/tests_sei4/funcional/lib/drivers/chromedriver and /dev/null differ diff --git a/tests_sei4/funcional/phpunit.xml b/tests_sei4/funcional/phpunit.xml deleted file mode 100755 index 20f52b05f..000000000 --- a/tests_sei4/funcional/phpunit.xml +++ /dev/null @@ -1,151 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit - bootstrap="bootstrap.php" - backupGlobals="true" - colors="true" - verbose="true" - cacheResult="false" - stopOnError="false" - stopOnFailure="false" -> - <php> - <const name="PHPUNIT_HOST" value="selenium" /> - <const name="PHPUNIT_PORT" value="4444" /> - <const name="PHPUNIT_BROWSER" value="chrome" /> - <const name="PHPUNIT_TESTS_URL" value="http://localhost/sei" /> - <const name="PEN_ENDERECO_WEBSERVICE" - value="https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/?wsdl" /> - - <!-- Chaves de configurações gerais do teste do Barramento de Serviços do PEN --> - <const name="PEN_WAIT_TIMEOUT" value="360000" /> - <const name="PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES" value="7200000" /> - <const name="PEN_WAIT_TIMEOUT_PROCESSAMENTO_EM_LOTE" value="10800000" /> - <const name="PEN_SCRIPT_MONITORAMENTO_ORG1" value=" " /> - <const name="PEN_SCRIPT_MONITORAMENTO_ORG2" value=" " /> - <const name="ENVIO_PARCIAL" value="true" /> - - <!-- Chaves de configuração dos diferentes ambientes envolvidos no teste do Barramento de - Serviços do PEN --> - <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 1 --> - <const name="CONTEXTO_ORGAO_A" value="CONTEXTO_ORGAO_A" /> - <const name="CONTEXTO_ORGAO_A_URL" value="http://org1-http:8000/sei" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_A_NUMERO_SEI" value="951" /> - <const name="CONTEXTO_ORGAO_A_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_A_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_A_ID_ESTRUTURA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA" - value="INFORME_A_SIGLA_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_A_NOME_UNIDADE" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA" value="TESTE_1_1" /> - <const name="CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> - <const name="CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_A_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_A_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_A_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO" value="Voto" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_A_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_INATIVA" - value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_SIGILOSO" - value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> - - <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 2 --> - <const name="CONTEXTO_ORGAO_B" value="CONTEXTO_ORGAO_B" /> - <const name="CONTEXTO_ORGAO_B_URL" value="http://org2-http:8000/sei" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_B_NUMERO_SEI" value="159" /> - <const name="CONTEXTO_ORGAO_B_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_B_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_B_ID_ESTRUTURA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_2" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA" - value="INFORME_A_SIGLA_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG2" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_B_NOME_UNIDADE" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG2" /> - <const name="CONTEXTO_ORGAO_B_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_B_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA" value="XXXXXXXXXXXXXX" /> - <const name="CONTEXTO_ORGAO_B_NOME_UNIDADE_SECUNDARIA" value="XXXXXXXXXXXXXX" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_B_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_B_TIPO_DOCUMENTO_NAO_MAPEADO" value="Nota" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_INATIVA" - value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_SIGILOSO" - value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> - <const name="CONTEXTO_ORGAO_B_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - - - <!-- CONFIGURAÇÕES DE TESTE Órgão 3, caso de sem hierarquia pai --> - <const name="CONTEXTO_ORGAO_C" value="CONTEXTO_ORGAO_C" /> - <const name="CONTEXTO_ORGAO_C_URL" value="http://xxxxx/sei" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_C_NUMERO_SEI" value="159" /> - <const name="CONTEXTO_ORGAO_C_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_C_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_C_ID_ESTRUTURA" value="121390" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE" value="SEGES TESTE SEM PAI" /> - <const name="CONTEXTO_ORGAO_C_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_C_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_C_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_C_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_C_TIPO_DOCUMENTO_NAO_MAPEADO" value="Nota" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_C_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - </php> - - <testsuites> - <testsuite name="funcional"> - <directory>tests</directory> - </testsuite> - <testsuite name="falsos_positivos"> - <directory>tests_funcional_falsos_positivos_temp</directory> - </testsuite> - <!-- novasuiteaqui --> - </testsuites> - -</phpunit> \ No newline at end of file diff --git a/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php deleted file mode 100644 index 5c2e2faa1..000000000 --- a/tests_sei4/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -class BlocoDeTramiteProtocoloFixture extends \FixtureBase -{ - protected $objBlocoDeTramiteProtocoloDTO; - - public function __construct() - { - $this->objBlocoDeTramiteProtocoloDTO = new \PenBlocoProcessoDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - protected function cadastrar($dados = []) - { - $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUsuario($dados['IdUsuario'] ?: '100000001'); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidade($dados['IdUnidade'] ?: '110000001'); - $dthRegistro = date('d/m/Y H:i:s'); - $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); - $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); - - // atualizao 3.7.0 - $this->objBlocoDeTramiteProtocoloDTO->setNumIdAndamento($dados['IdAndamento'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setStrUnidadeDestino($dados['UnidadeDestino'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeOrigem($dados['IdUnidadeOrigem'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeDestino($dados['IdUnidadeDestino'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdAtividade($dados['IdAtividade'] ?: null); - - $this->objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioOrigem($dados['IdRepositorioOrigem'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioDestino($dados['IdRepositorioDestino'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setDthEnvio($dados['Envio'] ?: $dthRegistro); - - $this->objBlocoDeTramiteProtocoloDTO->setStrRepositorioDestino($dados['RepositorioDestino'] ?: null); - - $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD($this->inicializarObjInfraIBanco()); - $objBlocoDeTramiteProtocoloBD->cadastrar($this->objBlocoDeTramiteProtocoloDTO); - - return $this->objBlocoDeTramiteProtocoloDTO; - } - - protected function listar($dados = []) - { - $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo']); - $this->objBlocoDeTramiteProtocoloDTO->retTodos(); - - $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD($this->inicializarObjInfraIBanco()); - return $objBlocoDeTramiteProtocoloBD->listar($this->objBlocoDeTramiteProtocoloDTO); - } - - protected function alterar($dados = []) - { - - $objBlocoDeTramiteProtocoloDTO = $this->listar($dados)[0]; - - $objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdBloco()); - $objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: $objBlocoDeTramiteProtocoloDTO->getNumSequencia()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUsuario($dados['IdUsuario'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUsuario()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUnidade($dados['IdUnidade'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUnidade()); - $dthRegistro = date('d/m/Y H:i:s'); - $objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $objBlocoDeTramiteProtocoloDTO->getDthRegistro()); - $objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); - - $objBlocoDeTramiteProtocoloDTO->setNumIdAndamento($dados['IdAndamento'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdAndamento()); - $objBlocoDeTramiteProtocoloDTO->setStrUnidadeDestino($dados['UnidadeDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getStrUnidadeDestino()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeOrigem($dados['IdUnidadeOrigem'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUnidadeOrigem()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeDestino($dados['IdUnidadeDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUnidadeDestino()); - $objBlocoDeTramiteProtocoloDTO->setNumIdAtividade($dados['IdAtividade'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdAtividade()); - - $objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioOrigem($dados['IdRepositorioOrigem'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdRepositorioOrigem()); - $objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioDestino($dados['IdRepositorioDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdRepositorioDestino()); - $objBlocoDeTramiteProtocoloDTO->setDthEnvio($dados['Envio'] ?: $objBlocoDeTramiteProtocoloDTO->getDthEnvio()); - - $objBlocoDeTramiteProtocoloDTO->setStrRepositorioDestino($dados['RepositorioDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getStrRepositorioDestino()); - - $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD($this->inicializarObjInfraIBanco()); - return $objBlocoDeTramiteProtocoloBD->alterar($objBlocoDeTramiteProtocoloDTO); - } -} diff --git a/tests_sei4/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php b/tests_sei4/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php deleted file mode 100644 index 087328f64..000000000 --- a/tests_sei4/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php - -/** - * Responsvel por cadastrar novo mapeamento de unidades caso no exista - */ -class PenUnidadeRestricaoFixture extends \FixtureBase -{ - protected $objPenUnidadeRestricaoDTO; - - public function __construct() - { - $this->objPenUnidadeRestricaoDTO = new \PenUnidadeRestricaoDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenUnidadeRestricaoDTO = $this->consultar($dados); - if ($objPenUnidadeRestricaoDTO) { - return $objPenUnidadeRestricaoDTO; - } - - $this->objPenUnidadeRestricaoDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $this->objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($dados['IdUnidadeRH']); - $this->objPenUnidadeRestricaoDTO->setNumIdUnidadeRestricao($dados['IdUnidadeRestricao']); - $this->objPenUnidadeRestricaoDTO->setStrNomeUnidadeRestricao($dados['NomeUnidadeRestricao']); - $this->objPenUnidadeRestricaoDTO->setNumIdUnidadeRHRestricao($dados['IdUnidadeRHRestricao']); - $this->objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao($dados['NomeUnidadeRHRestricao']); - - $objPenUnidadeRestricaoBD = new \PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeRestricaoBD->cadastrar($this->objPenUnidadeRestricaoDTO); - } - - public function consultar($dados = []) - { - $objPenUnidadeRestricaoDTO = new \PenUnidadeRestricaoDTO(); - - $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRestricao($dados['NomeUnidadeRestricao']); - $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao($dados['NomeUnidadeRHRestricao']); - $objPenUnidadeRestricaoDTO->retTodos(); - - $objPenUnidadeRestricaoBD = new \PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeRestricaoBD->consultar($objPenUnidadeRestricaoDTO); - } - - public function excluir($dados = []) - { - - $objPenUnidadeRestricaoDTO = $this->consultar($dados); - if (!$objPenUnidadeRestricaoDTO) { - return false; - } - - $objPenUnidadeRestricaoBD = new \PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeRestricaoBD->excluir($objPenUnidadeRestricaoDTO); - } -} \ No newline at end of file diff --git a/tests_sei4/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php b/tests_sei4/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php deleted file mode 100644 index 2fe3b850b..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php +++ /dev/null @@ -1,253 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaCadastrarProcessoEmBloco extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarListagemBlocoDeTramite() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Blocos de Trmite Externo', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='md_pen_tramita_em_bloco']")->click(); - } - - /** - * Setar parametro para novo mapeamento de orgos externos - * - * @return void - */ - public function setarParametros($estrutura, $origem) - { - $this->selectRepositorio($estrutura); - $this->selectUnidade($origem, 'Origem'); // Seleciona Orgo de Origem - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @return string - */ - private function selectRepositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade'); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - public function novoBlocoDeTramite() - { - $this->test->byId("bntNovo")->click(); - } - - - public function criarNovoBloco() - { - $this->test->byId('txtDescricao')->value('Bloco para teste automatizado'); - } - - public function editarBlocoDeTramite($descricao = null) - { - $this->test->byXPath("(//img[@title='Alterar Bloco'])[1]")->click(); - - if ($descricao != null) { - $this->test->byId('txtDescricao')->clear(); - $this->test->byId('txtDescricao')->value($descricao); - } - } - - public function selecionarExcluirBloco() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } - - public function buscarQuantidadeProcessosRecusados() - { - $linhasDaTabelaRecusadas = $this->test->elements($this->test->using('xpath')->value("//img[@title='Recusado']")); - return count($linhasDaTabelaRecusadas); - } - - public function tramitarProcessoExternamente($repositorio, $unidadeDestino, $unidadeDestinoHierarquia, $urgente = false, $callbackEnvio = null, $timeout = PEN_WAIT_TIMEOUT) - { - // Preencher parmetros do trmite - $this->selectRepositorio($repositorio); - $this->selectUnidade($unidadeDestino, 'origem', $unidadeDestinoHierarquia); - $this->btnEnviar(); - - if ($callbackEnvio == null) { - $mensagemAlerta = null; - try { - $mensagemAlerta = $this->alertTextAndClose(true); - } catch (Exception $e) { - } - if ($mensagemAlerta) { - throw new Exception($mensagemAlerta); - } - } - - try { - $mensagemAlerta = $this->alertTextAndClose(true); - } catch (Exception $e) { - } - - if (isset($mensagemAlerta)) { - throw new Exception($mensagemAlerta); - } - - $callbackEnvio = $callbackEnvio ?: function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Trmite externo do processo finalizado com sucesso!', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - }; - - try { - $this->test->waitUntil($callbackEnvio, $timeout); - } finally { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - sleep(1); - } - - public function realizarValidacaoRecebimentoProcessoNoDestinatario($processoTeste) - { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - - $this->test->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - } - - public function retornarTextoColunaDaTabelaDeBlocos() - { - $tabela = $this->test->byXPath('//tr[@class="infraTrClara odd"]'); - $terceiraColuna = $tabela->byXPath('./td[3]'); - - return $terceiraColuna->text(); - } - - public function retornarQuantidadeDeProcessosNoBloco() - { - // Localiza todas as linhas da tabela com o XPath - $linhasDaTabela = $this->test->elements($this->test->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - // Obtm o nmero de linhas - return count($linhasDaTabela); - } - - - public function bntTramitarBloco() - { - $this->test->byXPath("(//img[@title='Tramitar Bloco'])[1]")->click(); - } - - public function bntVisualizarProcessos() - { - $this->test->byXPath("(//img[@title='Visualizar Processos'])[1]")->click(); - } - - public function btnSelecionarTodosProcessos() - { - $this->test->byXPath("//*[@id='imgInfraCheck']")->click(); - } - - public function btnComandoSuperiorExcluir() - { - $this->test->byXPath('//*[@id="divInfraBarraComandosSuperior"]/button[@value="Excluir"]')->click(); - $this->test->acceptAlert(); - } - - public function btnComandoSuperiorFechar() - { - $this->test->byXPath('//*[@id="divInfraBarraComandosSuperior"]/button[@value="Fechar"]')->click(); - } - - public function btnSalvar() - { - $buttonElement = $this->test->byXPath("//button[@type='submit' and @value='Salvar']"); - $buttonElement->click(); - } - - public function btnEnviar() - { - $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Enviar']"); - $buttonElement->click(); - } - -} \ No newline at end of file diff --git a/tests_sei4/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php b/tests_sei4/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php deleted file mode 100644 index 6d8785069..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php +++ /dev/null @@ -1,224 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Classe responsvel por teste funcional de - * mapeamento de envio parcial de componentes digitais - */ -class PaginaCadastroMapEnvioCompDigitais extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Clicar no boto novo - * - * @return void - */ - public function novo() - { - $this->test->byId("btnNovo")->click(); - } - - /** - * Selecionar repositrio - * Selecionar unidade - * - * @param string $estrutura - * @param string $unidade - * @return void - */ - public function setarParametros($estrutura, $unidade) - { - $this->selectRepositorio($estrutura); - $this->selectUnidade($unidade); - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @return string - */ - private function selectRepositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade'); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){} - - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Clicar no boto salvar - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function editar() - { - $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); - } - - /** - * Exluir mapeamentos existentes - * - * @return void - */ - public function excluirMapeamentosExistentes() - { - try{ - $lnkInfraCheck=$this->test->byXPath('//*[@id="lnkInfraCheck"]'); - $lnkInfraCheck->click(); - $this->excluirSelecionados(); - sleep(1); - $mensagem = $this->buscarMensagemAlerta(); - $this->test->assertStringContainsString( - mb_convert_encoding('Mapeamento excludo com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } catch (Exception $e) { - } - } - - /** - * Selecionar todos os resultados - * - * @return void - */ - public function selecionarTodos() - { - $this->test->byXPath('//*[@id="lnkInfraCheck"]')->click(); - } - - /** - * Excluir selecionados - * - * @return void - */ - public function excluirSelecionados() - { - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Selecionar primeira checkbox de excluso - * Seleciona boto excluir - * Seleciona boto de confirmao - * - * @return void - */ - public function selecionarExcluir() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no boto pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function selecionarPesquisa($textoPesquisa) - { - $this->test->byId('txtNomeEstrutura')->clear(); - $this->test->byId('txtNomeEstrutura')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Selecionar todos os intens para impresso - * - * @return void - */ - public function selecionarImprimir() - { - $this->test->byId("lnkInfraCheck")->click(); - } - - /** - * Buscar item de tabela por nome - * - * @param string $nome - * @return string|null - */ - public function buscarNome($nome) - { - try { - $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); - return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? - $nomeSelecionado : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } -} \ No newline at end of file diff --git a/tests_sei4/funcional/src/paginas/PaginaCancelarDocumento.php b/tests_sei4/funcional/src/paginas/PaginaCancelarDocumento.php deleted file mode 100755 index f1047b591..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaCancelarDocumento.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -class PaginaCancelarDocumento extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function cancelar($motivoCancelamento) - { - $this->motivoCancelamento($motivoCancelamento); - $this->salvar(); - } - - private function motivoCancelamento($value) - { - $input = $this->test->byId("txaMotivo"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - private function salvar() - { - $this->test->byId("sbmSalvar")->click(); - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaConsultarAndamentos.php b/tests_sei4/funcional/src/paginas/PaginaConsultarAndamentos.php deleted file mode 100755 index d46eedd95..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaConsultarAndamentos.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -class PaginaConsultarAndamentos extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemTramite($mensagemTramite) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoEmTramitacao($strUnidadeDestino) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "Processo em tramitação externa para $strUnidadeDestino"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoRecebido($strUnidadeDestino) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "Recebido em $strUnidadeDestino"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoRejeitado($strUnidadeDestino, $strMotivo) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "O processo foi recusado pelo orgão $strUnidadeDestino pelo seguinte motivo: $strMotivo"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaDocumento.php b/tests_sei4/funcional/src/paginas/PaginaDocumento.php deleted file mode 100755 index e130b489a..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaDocumento.php +++ /dev/null @@ -1,181 +0,0 @@ -<?php - -class PaginaDocumento extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarParaAssinarDocumento() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Assinar Documento']")->click(); - } - - public function navegarParaConsultarDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Consultar/Alterar Documento')]")->click(); - } - - public function navegarParaCancelarDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Cancelar Documento')]")->click(); - } - - public function navegarParaMoverDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Mover Documento para outro Processo')]")->click(); - } - - public function ehProcessoAnexado() - { - sleep(2); - - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//div[@id='divArvoreInformacao']/a[contains(@href, 'acao=procedimento_trabalhar')]"); - $this->test->byXPath("//img[contains(@alt, 'Desanexar Processo')]"); - return true; - } catch (\Exception $e) { - return false; - } - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function observacoesNaTabela($value = null) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byXPath("//table[@class='infraTable']//tr[2]/td[2]")->text(); - } - - public function dataElaboracao($value = null) - { - $input = $this->test->byId("txtDataElaboracao"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function nomeAnexo() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byXPath("//table[@id='tblAnexos']/tbody/tr/td[2]/div")->text(); - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - $options = $this->test->byId('selInteressadosProcedimento')->elements($this->test->using('css selector')->value('option')); - return array_map(function($opt) {return $opt->text(); - }, $options); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("optRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("optSigiloso")->click(); - } - } - - if($this->test->byId("optPublico")->selected()) { - return self::STA_NIVEL_ACESSO_PUBLICO; - } else if($this->test->byId("optRestrito")->selected()) { - return self::STA_NIVEL_ACESSO_RESTRITO; - } else if($this->test->byId("optSigiloso")->selected()) { - return self::STA_NIVEL_ACESSO_SIGILOSO; - } - - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function recuperarHipoteseLegal() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - return $select->selectedLabel(); - } - - public function salvarDocumento() - { - $this->test->byId("btnSalvar")->click(); - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaEditarProcesso.php b/tests_sei4/funcional/src/paginas/PaginaEditarProcesso.php deleted file mode 100755 index b8ea504ac..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaEditarProcesso.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php - -use utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaEditarProcesso extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function protocoloInformado($value = null) - { - $input = $this->test->byId("txtProtocoloInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function dataGeracaoProtocolo($value = null) - { - $input = $this->test->byId("txtDtaGeracaoInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("optRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("optSigiloso")->click(); - } - } - - if($this->test->byId("optPublico")->selected()) { - return self::STA_NIVEL_ACESSO_PUBLICO; - } else if($this->test->byId("optRestrito")->selected()) { - return self::STA_NIVEL_ACESSO_RESTRITO; - } else if($this->test->byId("optSigiloso")->selected()) { - return self::STA_NIVEL_ACESSO_SIGILOSO; - } - - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - $options = $this->test->byId('selInteressadosProcedimento')->elements($this->test->using('css selector')->value('option')); - return array_map(function($opt) {return $opt->text(); - }, $options); - } - - public function salvarProcesso() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function recuperarHipoteseLegal() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - return $select->selectedLabel(); - } - - public function gerarProtocolo() - { - $strSequencia = str_pad(rand(1, 999999), 6, "0", STR_PAD_LEFT); - return '999990.' . $strSequencia . '/2015-00'; - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaEnvioParcialListar.php b/tests_sei4/funcional/src/paginas/PaginaEnvioParcialListar.php deleted file mode 100644 index 1abaae0fb..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaEnvioParcialListar.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaEnvioParcialListar extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarEnvioParcialListar() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Mapeamento de Envio Parcial', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_envio_parcial_listar']")->click(); - } - -} diff --git a/tests_sei4/funcional/src/paginas/PaginaIncluirDocumento.php b/tests_sei4/funcional/src/paginas/PaginaIncluirDocumento.php deleted file mode 100755 index d63ba98e4..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaIncluirDocumento.php +++ /dev/null @@ -1,190 +0,0 @@ -<?php - -use utilphp\util; -use PHPUnit_Extensions_Selenium2TestCase_Keys as Keys; - -class PaginaIncluirDocumento extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 1; - const STA_NIVEL_ACESSO_RESTRITO = 2; - const STA_NIVEL_ACESSO_SIGILOSO = 3; - - const STA_FORMATO_NATO_DIGITAL = 1; - - public function __construct($test) - { - parent::__construct($test); - } - - public function selecionarTipoDocumento($tipoDocumento) - { - try{ - $this->test->byId('txtFiltro')->value($tipoDocumento); - sleep(2); - $this->test->byLinkText($tipoDocumento)->click(); - } - catch (Exception $e){ - $this->test->byXPath("//img[@id='imgExibirSeries'] | //a[@id='ancExibirSeries']")->click(); - $this->test->byId('txtFiltro')->value($tipoDocumento); - sleep(2); - $this->test->byLinkText($tipoDocumento)->click(); - } - } - - public function selecionarTipoDocumentoExterno() - { - $this->selecionarTipoDocumento('Externo'); - } - - public function descricao($value) - { - $input = $this->test->byId("txtDescricao"); - return $input->value($value); - } - - public function tipoDocumento($value) - { - $input = $this->test->byId("selSerie"); - $this->test->select($input)->selectOptionByLabel($value); - } - - public function formato($value) - { - if($value != self::STA_FORMATO_NATO_DIGITAL) { - throw new Exception("Outros formatos não implementados em PaginaIncluirDocumento"); - } - - $this->test->byId("divOptNato")->click(); - } - - public function anexo($arquivo) - { - $input = $this->test->byId("filArquivo"); - $input->value($arquivo); - $this->test->waitUntil(function($testCase) use($arquivo) { - $testCase->assertStringContainsString(basename($arquivo), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function dataElaboracao($value) - { - $input = $this->test->byId("txtDataElaboracao"); - return $input->value($value); - } - - public function observacoes($value) - { - $input = $this->test->byId("txaObservacoes"); - return $input->value($value); - } - - public function adicionarInteressado($nomeInteressado) - { - $input = $this->test->byId("txtInteressado"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - - sleep(2); - } - - public function salvarDocumento() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $input = $this->test->byId("lblPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $input = $this->test->byId("lblRestrito")->click(); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $input = $this->test->byId("lblSigiloso")->click(); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - $select = $this->test->select($this->test->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function gerarDocumentoTeste(array $dadosDocumento = null) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Incluir Documento']")->click(); - sleep(2); - - $dadosDocumento = $dadosDocumento ?: array(); - $dadosDocumento["TIPO_DOCUMENTO"] = @$dadosDocumento["TIPO_DOCUMENTO"] ?: "Ofcio"; - $dadosDocumento["DESCRICAO"] = @$dadosDocumento["DESCRICAO"] ?: util::random_string(20); - $dadosDocumento["OBSERVACOES"] = @$dadosDocumento["OBSERVACOES"] ?: util::random_string(100); - $dadosDocumento["INTERESSADOS"] = @$dadosDocumento["INTERESSADOS"] ?: util::random_string(40); - $dadosDocumento["RESTRICAO"] = @$dadosDocumento["RESTRICAO"] ?: PaginaIncluirDocumento::STA_NIVEL_ACESSO_PUBLICO; - $dadosDocumento["HIPOTESE_LEGAL"] = @$dadosDocumento["HIPOTESE_LEGAL"] ?: ""; - - //$paginaIncluirDocumento = new PaginaIncluirDocumento($test); - $this->selecionarTipoDocumento($dadosDocumento["TIPO_DOCUMENTO"]); - $this->descricao($dadosDocumento["DESCRICAO"]); - $this->observacoes($dadosDocumento["OBSERVACOES"]); - $this->selecionarRestricao($dadosDocumento["RESTRICAO"], $dadosDocumento["HIPOTESE_LEGAL"]); - $this->salvarDocumento(); - - $url = parse_url($this->test->byId("ifrArvoreHtml")->attribute("src")); - parse_str($url['query'], $query); - $dadosDocumento["ID_DOCUMENTO"] = $query["id_documento"]; - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->window($this->test->windowHandles()[1]); - $this->test->closeWindow(); - $this->test->window(''); - - $this->test->frame(null); - $this->test->frame("ifrArvore"); - - return trim($this->test->byId('anchor' . $query["id_documento"])->text()); - } - - public function gerarDocumentoExternoTeste(array $dadosDocumento, $comAnexo) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Incluir Documento']")->click(); - sleep(2); - - $dadosDocumento = $dadosDocumento ?: array(); - $dadosDocumento["TIPO_DOCUMENTO"] = @$dadosDocumento["TIPO_DOCUMENTO"] ?: "Ofcio"; - $dadosDocumento["DESCRICAO"] = @$dadosDocumento["DESCRICAO"] ?: util::random_string(20); - $dadosDocumento["DATA_ELABORACAO"] = @$dadosDocumento["DATA_ELABORACAO"] ?: date("d/m/Y"); - $dadosDocumento["FORMATO_DOCUMENTO"] = @$dadosDocumento["FORMATO_DOCUMENTO"] ?: self::STA_FORMATO_NATO_DIGITAL; - $dadosDocumento["OBSERVACOES"] = @$dadosDocumento["OBSERVACOES"] ?: util::random_string(100); - $dadosDocumento["INTERESSADOS"] = @$dadosDocumento["INTERESSADOS"] ?: util::random_string(40); - $dadosDocumento["RESTRICAO"] = @$dadosDocumento["RESTRICAO"] ?: PaginaIncluirDocumento::STA_NIVEL_ACESSO_PUBLICO; - $dadosDocumento["HIPOTESE_LEGAL"] = @$dadosDocumento["HIPOTESE_LEGAL"] ?: ""; - - $this->selecionarTipoDocumentoExterno(); - sleep(2); - $this->tipoDocumento($dadosDocumento["TIPO_DOCUMENTO"]); - sleep(2); - - $this->dataElaboracao($dadosDocumento["DATA_ELABORACAO"]); - $this->formato($dadosDocumento["FORMATO_DOCUMENTO"]); - if($comAnexo){ - $this->anexo($dadosDocumento["ARQUIVO"]); - } - $this->observacoes($dadosDocumento["OBSERVACOES"]); - $this->selecionarRestricao($dadosDocumento["RESTRICAO"], $dadosDocumento["HIPOTESE_LEGAL"]); - $this->salvarDocumento(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaMoverDocumento.php b/tests_sei4/funcional/src/paginas/PaginaMoverDocumento.php deleted file mode 100755 index 2c6b959ff..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaMoverDocumento.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaMoverDocumento extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function moverDocumentoParaProcesso($protocoloDestino, $motivoMovimentacao) - { - $this->processoDestino($protocoloDestino); - $this->motivoMovimentacao($motivoMovimentacao); - $this->mover(); - } - - private function processoDestino($value) - { - $input = $this->test->byId("txtProcedimentoDestino"); - if(isset($value)) { - $input->value($value); - sleep(2); - $this->test->keys(Keys::ENTER); - } - - sleep(2); - return $input->value(); - } - - private function motivoMovimentacao($value) - { - $input = $this->test->byId("txaMotivo"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - private function mover() - { - $this->test->byId("sbmMover")->click(); - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaProcesso.php b/tests_sei4/funcional/src/paginas/PaginaProcesso.php deleted file mode 100755 index 561ca3989..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaProcesso.php +++ /dev/null @@ -1,275 +0,0 @@ -<?php - -class PaginaProcesso extends PaginaTeste -{ - const STA_STATUS_PROCESSO_ABERTO = 1; - const STA_STATUS_PROCESSO_CONCLUIDO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function concluirProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $concluirProcessoButton = $this->test->byXPath("//img[@alt='Concluir Processo']"); - $concluirProcessoButton->click(); - } - - public function incluirDocumento() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $incluirDocumentoButton = $this->test->byXPath("//img[@alt='Incluir Documento']"); - $incluirDocumentoButton->click(); - } - - public function enviarProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Enviar Processo']")->click(); - } - - public function cancelarTramitacaoExterna() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath(mb_convert_encoding("//img[@alt='Cancelar Tramitao Externa']", 'UTF-8', 'ISO-8859-1'))->click(); - } - - public function navegarParaEditarProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Consultar/Alterar Processo']"); - $this->editarProcessoButton->click(); - } - - public function navegarParaOrdenarDocumentos() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $button = $this->test->byXPath(mb_convert_encoding("//img[@alt='Ordenar rvore do Processo']", 'UTF-8', 'ISO-8859-1')); - $button->click(); - } - - public function trocarOrdenacaoDocumentos() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - - $this->test->byXPath("//*[@id='selRelProtocoloProtocolo']/option[1]")->click(); - sleep(1); - $this->test->byXPath("//*[@id='imgRelProtocoloProtocoloAbaixo']")->click(); - sleep(1); - $this->test->byXPath("//*[@id='divInfraBarraComandosSuperior']/button[@value='Salvar']")->click(); - } - - public function navegarParaTramitarProcesso() - { - $this->test->waitUntil(function($testCase) { - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Envio Externo de Processo']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString('Envio Externo de Processo', $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaConsultarAndamentos() - { - $this->test->waitUntil(function($testCase) { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $testCase->byLinkText('Consultar Andamento')->click(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - sleep(2); - $testCase->assertStringContainsString(mb_convert_encoding('Histrico do Processo', 'UTF-8', 'ISO-8859-1'), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaConsultarRecibos() - { - $this->test->waitUntil(function($testCase) { - // Selecionar processo na árvore - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Consultar Recibos']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString('Consultar Recibos', $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaAnexarProcesso() - { - $this->test->waitUntil(function($testCase) { - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Anexar Processo']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString(mb_convert_encoding('Anexao de Processos', 'UTF-8', 'ISO-8859-1'), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaTramitarProcessoInterno() - { - $this->enviarProcesso(); - } - - public function informacao() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byId('divArvoreInformacao')->text(); - } - - public function processoAberto() - { - try - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Reabrir Processo']"); - return false; - } - catch(Exception $e) - { - return true; - } - } - - public function processoBloqueado() - { - try - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byXPath("//img[@title='Processo Bloqueado']"); - return true; - } - catch(Exception $e) - { - return false; - } - } - - public function deveSerDocumentoAnexo($bolDevePossuir, $nomeDocumentoArvore) - { - try - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - if($bolDevePossuir){ - $idAnexo=$this->test->byXPath("//span[contains(text(),'" . $nomeDocumentoArvore . "')]")->attribute('id'); - $idAnexo=str_replace("span", "", $idAnexo); - $this->test->byXPath("//img[contains(@id,'iconMD_PEN_DOC_REF" . $idAnexo . "')]"); - } - return true; - } - catch(Exception $e) - { - return false; - } - } - - public function ehDocumentoCancelado($nomeDocumentoArvore) - { - try - { - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeDocumentoArvore)->byXPath(".//preceding-sibling::a[1]/img[contains(@src,'svg/documento_cancelado.svg?')]"); - return true; - } - catch(Exception $e) - { - return false; - }finally{ - $this->test->timeouts()->implicitWait($to); - } - } - - public function ehDocumentoMovido($nomeDocumentoArvore) - { - try - { - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeDocumentoArvore)->byXPath(".//preceding-sibling::a[1]/img[contains(@src,'svg/documento_movido.svg?')]"); - return true; - } - catch(Exception $e) - { - return false; - }finally{ - $this->test->timeouts()->implicitWait($to); - } - } - - private function selecionarItemArvore($nomeArvore) - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeArvore)->click(); - } - - public function selecionarDocumento($nomeDocumentoArvore) - { - $this->selecionarItemArvore($nomeDocumentoArvore); - } - - public function selecionarProcesso() - { - $this->selecionarItemArvore($this->listarArvoreProcesso()[0]); - sleep(1); - } - - public function listarDocumentos() - { - $itens = $this->listarArvoreProcesso(); - return (count($itens) > 1) ? array_slice($itens, 1) : null; - } - - private function listarArvoreProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $itens = $this->test->elements($this->test->using('css selector')->value('div.infraArvore > a > span[id]')); - return array_map(function($item) {return $item->text(); - }, $itens); - } - - public function validarBotaoExiste($botao) - { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $botao = $this->test->byXPath("//img[@alt='$botao']"); - return true; - } catch (\Exception $e) { - return false; - } - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaReciboTramite.php b/tests_sei4/funcional/src/paginas/PaginaReciboTramite.php deleted file mode 100755 index 1f1e8f199..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaReciboTramite.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -class PaginaReciboTramite extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemTramite($mensagemTramite, $verificaReciboEnvio = false, $verificaReciboConclusao = false) - { - $result = false; - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - - //Localiza colunas com dados da tramitao - $linhasResumoTramite = $this->test->elements($this->test->using('css selector')->value('div.infraAreaTabela > table tr')); - if(count($linhasResumoTramite) > 0) { - foreach ($linhasResumoTramite as $linha) { - $colunas = $linha->elements($this->test->using('css selector')->value('td')); - - if(count($colunas) == 2){ - //Verifica se trmite informado foi localizado no histrico - $result = strpos($colunas[0]->text(), $mensagemTramite) !== false; - - //Verifica se recibo de envio do processo foi localizado - if($result && $verificaReciboEnvio) { - try{ - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $colunas[1]->element($this->test->using('css selector')->value(mb_convert_encoding('a > img[title=\'Recibo de Confirmao de Envio\']', 'UTF-8', 'ISO-8859-1'))); - } - catch(Exception $e){ $result = false; } - finally{ $this->test->timeouts()->implicitWait($to); } - } - - //Verifica se recibo de concluso do trmite processo foi localizado - if($result && $verificaReciboConclusao) { - try{ - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $colunas[1]->element($this->test->using('css selector')->value(mb_convert_encoding('a > img[title=\'Recibo de Concluso de Trmite\']', 'UTF-8', 'ISO-8859-1'))); - } - catch(Exception $e){ $result = false; } - finally{ $this->test->timeouts()->implicitWait($to); } - } - - if($result) { - break; - } - } - - } - } - - return $result; - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaTramitarProcesso.php b/tests_sei4/funcional/src/paginas/PaginaTramitarProcesso.php deleted file mode 100755 index ecf3e19f6..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaTramitarProcesso.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramitarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - - } - - public function repositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - public function unidade($nomeUnidade, $hierarquia = null) - { - $this->unidadeInput =$this->test->byId('txtUnidade'); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - public function urgente($urgente) - { - $this->urgenteCheck = $this->test->byId('chkSinUrgente'); - if(isset($urgente) && ((!$urgente && $this->urgenteCheck->selected()) || ($urgente && !$this->urgenteCheck->selected()))) { - $this->urgenteCheck->click(); - } - - return $this->urgenteCheck->selected(); - } - - public function tramitar() - { - $tramitarButton = $this->test->byXPath("//button[@value='Enviar']"); - $tramitarButton->click(); - } - - public function fecharBarraProgresso() - { - $btnFechar = $this->test->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } - - public function unidadeInterna($nomeUnidade) - { - $this->unidadeInput =$this->test->byId('txtUnidade'); - $this->unidadeInput->value($nomeUnidade); - //$this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($nomeUnidade) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - sleep(1); - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(1); - return $this->unidadeInput->value(); - } - - public function manterAbertoNaUnidadeAtual() - { - $manterAbertoCheckBox = $this->test->byXPath("//label[@id='lblSinManterAberto']"); - $manterAbertoCheckBox->click(); - } - - public function tramitarInterno() - { - $tramitarButton = $this->test->byXPath("//button[@value='Enviar']"); - $tramitarButton->click(); - } - - public function alertTextAndClose($confirm = true) - { - sleep(2); - $result = $this->test->alertText(); - $result = (!is_array($result) ? $result : null); - - if(isset($confirm) && $confirm) { - $this->test->acceptAlert(); - } else { - $this->dismissAlert(); - } - return $result; - } -} diff --git a/tests_sei4/funcional/src/paginas/PaginaTramiteEmBloco.php b/tests_sei4/funcional/src/paginas/PaginaTramiteEmBloco.php deleted file mode 100644 index f3b0eec38..000000000 --- a/tests_sei4/funcional/src/paginas/PaginaTramiteEmBloco.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Classe de teste da pgina de tramite em bloco - */ -class PaginaTramiteEmBloco extends PaginaTeste -{ - const STA_ANDAMENTO_PROCESSAMENTO = "Aguardando Processamento"; - const STA_ANDAMENTO_CANCELADO = "Cancelado"; - const STA_ANDAMENTO_CONCLUIDO = "Concludo"; - - /** - * @inheritdoc - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Selecionar processo - * @param array $arrNumProtocolo - * @return void - */ - public function selecionarProcessos($arrNumProtocolo = array()) - { - foreach ($arrNumProtocolo as $numProtocolo) { - $chkProtocolo = $this->test->byXPath('//tr[contains(.,"'.$numProtocolo.'")]/td/div/label'); - $chkProtocolo->click(); - } - } - - /** - * Selecionar tramite em bloco - * @return void - */ - public function selecionarTramiteEmBloco() - { - $btnTramiteEmBloco = $this->test->byXPath( - "//img[@alt='". mb_convert_encoding("Incluir Processos no Bloco de Trmite", 'UTF-8', 'ISO-8859-1') ."']" - ); - $btnTramiteEmBloco->click(); - } - - /** - * Seleciona a visualizao detalhada do processo. - * - * Este mtodo simula o clique no boto que troca a visualizao para - * a opo detalhada. Ele utiliza o XPath para encontrar o boto - * correspondente na interface da aplicao. - * - * @return void - */ - public function selecionarVisualizacaoDetalhada() - { - $btnTramiteEmBloco = $this->test->byXPath('//a[@onclick="trocarVisualizacao(\'D\');"]'); - $btnTramiteEmBloco->click(); - } - - /** - * Seleciona um processo especfico com base no nmero do protocolo formatado. - * - * Este mtodo busca o rtulo que contm o nmero do protocolo - * fornecido e simula um clique sobre ele para selecionar o processo. - * - * @param string $numProtocoloFormatado O nmero do protocolo formatado a ser selecionado. - * @return void - */ - public function selecionarProcesso($numProtocoloFormatado) - { - $btnTramiteEmBloco = $this->test->byXPath('//label[@title="' . $numProtocoloFormatado . '"]'); - $btnTramiteEmBloco->click(); - } - - /** - * Verifica o ttulo da pgina atual. - * - * Este mtodo busca e retorna o texto do ttulo da pgina - * atual, comparando-o com o ttulo fornecido. Ele til para - * garantir que a navegao ocorreu corretamente. - * - * @param string $titulo O ttulo esperado da pgina. - * @return string O ttulo da pgina atual. - */ - public function verificarTituloDaPagina($titulo) - { - $tituloDaPagina = $this->test->byXPath('//div[text()="' . $titulo . '"]'); - return $tituloDaPagina->text(); - } - - /** - * Selecionar bloco - * @param string $selAndamento - * @return void - */ - public function selecionarBloco($selAndamento) - { - $select = $this->test->select($this->test->byId('selBlocos')); - $select->selectOptionByValue($selAndamento); - } - - /** - * Clicar em salvar - * @return void - */ - public function clicarSalvar() - { - $btnSalvar = $this->test->byXPath("//button[@name='sbmCadastrarProcessoEmBloco']"); - $btnSalvar->click(); - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } -} \ No newline at end of file diff --git a/tests_sei4/funcional/tests/CenarioBaseTestCase.php b/tests_sei4/funcional/tests/CenarioBaseTestCase.php deleted file mode 100755 index c9d4026fc..000000000 --- a/tests_sei4/funcional/tests/CenarioBaseTestCase.php +++ /dev/null @@ -1,734 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase; - -use function PHPSTORM_META\map; - -/** - * Classe base contendo rotinas comuns utilizadas nos casos de teste do mdulo - */ -class CenarioBaseTestCase extends Selenium2TestCase -{ - const PASTA_ARQUIVOS_TESTE = "/tmp"; - - //Referncia para unidades que sero consideradas no fluxo de trmite (Remetente -> Destinatrio) - protected static $urlSistemaRemetente = null; - protected static $siglaOrgaoRemetente = null; - protected static $siglaUnidadeRemetente = null; - protected static $nomeUnidadeRemetente = null; - - protected static $urlSistemaDestinatario = null; - protected static $siglaOrgaoDestinatario = null; - protected static $siglaUnidadeDestinatario = null; - protected static $nomeUnidadeDestinatario = null; - - //Referncias para as pginas do SEI utilizadas nos cenarios de teste - protected $paginaBase = null; - protected $paginaProcesso = null; - protected $paginaTramitar = null; - protected $paginaDocumento = null; - protected $paginaReciboTramite = null; - protected $paginaEditarProcesso = null; - protected $paginaControleProcesso = null; - protected $paginaConsultarAndamentos = null; - protected $paginaAssinaturaDocumento = null; - protected $paginaIncluirDocumento = null; - protected $paginaProcessosTramitadosExternamente = null; - protected $paginaAnexarProcesso = null; - protected $paginaCancelarDocumento = null; - protected $paginaTramitarProcessoEmLote = null; - protected $paginaMoverDocumento = null; - protected $paginaCadastroOrgaoExterno = null; - protected $paginaCadastroMapEnvioCompDigitais = null; - protected $paginaExportarTiposProcesso = null; - protected $paginaTipoProcessoReativar = null; - protected $paginaCadastrarProcessoEmBloco = null; - protected $paginaTramiteEmBloco = null; - protected $paginaEnvioParcialListar = null; - protected $paginaPenHipoteseLegalListar = null; - protected $paginaMapUnidades = null; - - public function setUpPage(): void - { - $this->paginaBase = new PaginaTeste($this); - $this->paginaDocumento = new PaginaDocumento($this); - $this->paginaAssinaturaDocumento = new PaginaAssinaturaDocumento($this); - $this->paginaProcesso = new PaginaProcesso($this); - $this->paginaTramitar = new PaginaTramitarProcesso($this); - $this->paginaReciboTramite = new PaginaReciboTramite($this); - $this->paginaConsultarAndamentos = new PaginaConsultarAndamentos($this); - $this->paginaProcessosTramitadosExternamente = new PaginaProcessosTramitadosExternamente($this); - $this->paginaControleProcesso = new PaginaControleProcesso($this); - $this->paginaIncluirDocumento = new PaginaIncluirDocumento($this); - $this->paginaEditarProcesso = new PaginaEditarProcesso($this); - $this->paginaAnexarProcesso = new PaginaAnexarProcesso($this); - $this->paginaCancelarDocumento = new PaginaCancelarDocumento($this); - $this->paginaMoverDocumento = new PaginaMoverDocumento($this); - $this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this); - $this->paginaCadastroMapEnvioCompDigitais = new PaginaCadastroMapEnvioCompDigitais($this); - $this->paginaTramiteMapeamentoOrgaoExterno = new PaginaTramiteMapeamentoOrgaoExterno($this); - $this->paginaCadastroOrgaoExterno = new PaginaCadastroOrgaoExterno($this); - $this->paginaExportarTiposProcesso = new PaginaExportarTiposProcesso($this); - $this->paginaTipoProcessoReativar = new PaginaTipoProcessoReativar($this); - $this->paginaCadastrarProcessoEmBloco = new PaginaCadastrarProcessoEmBloco($this); - $this->paginaTramiteEmBloco = new PaginaTramiteEmBloco($this); - $this->paginaEnvioParcialListar = new PaginaEnvioParcialListar($this); - $this->paginaPenHipoteseLegalListar = new PaginaPenHipoteseLegalListar($this); - $this->paginaMapUnidades = new PaginaMapUnidades($this); - $this->currentWindow()->maximize(); - } - - public static function setUpBeforeClass(): void - { - //TODO: Migrar todo o cdigo abaixo para uma classe utilitria de configurao dos testes - /***************** CONFIGURAO PRELIMINAR DO RGO 1 *****************/ - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ID_REPOSITORIO_ORIGEM', CONTEXTO_ORGAO_A_ID_REP_ESTRUTURAS); - $parametrosOrgaoA->setParameter('PEN_TIPO_PROCESSO_EXTERNO', '100000256'); - $parametrosOrgaoA->setParameter('HIPOTESE_LEGAL_PADRAO', '1'); // Controle Interno - $parametrosOrgaoA->setParameter('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '110000003'); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update unidade set sin_envio_processo=? where sigla=?", array('S', 'TESTE_1_2')); - - // Configurao do mapeamento de unidades - putenv("DATABASE_HOST=org1-database"); - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $penMapUnidadesFixture->carregar([ - 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA, - 'Sigla' => CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA, - 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE, - ]); - - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); - // Configurao do prefxo de processos - $bancoOrgaoA->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_A_NUMERO_SEI, CONTEXTO_ORGAO_A_SIGLA_ORGAO)); - $bancoOrgaoA->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_A_SIGLA_UNIDADE)); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); - - // Remoo de mapeamento de espcie no mapeada na origem - $nomeSerieNaoMapeada = mb_convert_encoding(CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO, 'UTF-8', 'ISO-8859-1'); - $serieNaoMapeadaOrigem = $bancoOrgaoA->query('select ID_SERIE from serie where nome = ?', array($nomeSerieNaoMapeada)); - $serieNaoMapeadaOrigem[0] = array_change_key_case($serieNaoMapeadaOrigem[0], CASE_UPPER); - - $bancoOrgaoA->execute("delete from md_pen_rel_doc_map_enviado where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(1, 3, 3, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(2, 4, 4, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(3, 3, 3, 'R', 'S')); - - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - // Habilitao da extenso docx - $bancoOrgaoA->execute("update arquivo_extensao set sin_ativo=? where extensao=?", array('S', 'docx')); - - /***************** CONFIGURAO PRELIMINAR DO RGO 2 *****************/ - $parametrosOrgaoB = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoB->setParameter('PEN_ID_REPOSITORIO_ORIGEM', CONTEXTO_ORGAO_B_ID_REP_ESTRUTURAS); - $parametrosOrgaoB->setParameter('PEN_TIPO_PROCESSO_EXTERNO', '100000256'); - $parametrosOrgaoB->setParameter('HIPOTESE_LEGAL_PADRAO', '1'); // Controle Interno - $parametrosOrgaoB->setParameter('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '110000003'); - - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update unidade set sin_envio_processo=? where sigla=?", array('S', 'TESTE_1_2')); - - putenv("DATABASE_HOST=org2-database"); - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $penMapUnidadesFixture->carregar([ - 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA, - 'Sigla' => CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA, - 'Nome' => CONTEXTO_ORGAO_B_NOME_UNIDADE, - ]); - putenv("DATABASE_HOST=org1-database"); - - $bancoOrgaoB->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values ('110000002', ?)", array(CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA)); - - $bancoOrgaoB->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_B_NUMERO_SEI, CONTEXTO_ORGAO_B_SIGLA_ORGAO)); - $bancoOrgaoB->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_B_SIGLA_UNIDADE)); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - // Remoo de mapeamento de espcie no mapeada na origem - $nomeSerieNaoMapeada = mb_convert_encoding(CONTEXTO_ORGAO_B_TIPO_DOCUMENTO_NAO_MAPEADO, 'UTF-8', 'ISO-8859-1'); - $serieNaoMapeadaOrigem = $bancoOrgaoB->query('select ID_SERIE from serie where nome = ?', array($nomeSerieNaoMapeada)); - $serieNaoMapeadaOrigem[0] = array_change_key_case($serieNaoMapeadaOrigem[0], CASE_UPPER); - - $bancoOrgaoB->execute("delete from md_pen_rel_doc_map_recebido where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(4, 3, 3, 'E', 'S')); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(5, 3, 3, 'R', 'S')); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - //para corrigir o erro do oracle que retorna stream sem acentuao das palavras no teste de URL - if ($bancoOrgaoA->getBdType() == "oci") { - $result = $bancoOrgaoA->query("SELECT texto FROM tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?", array("V", "S")); - $strTarja = stream_get_contents($result[0]["TEXTO"]); - $bancoOrgaoA->execute("update tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=?", array($strTarja, "V", "S")); - } - } - - public static function tearDownAfterClass(): void - { - } - - public function setUp(): void - { - $this->setHost(PHPUNIT_HOST); - $this->setPort(intval(PHPUNIT_PORT)); - $this->setBrowser(PHPUNIT_BROWSER); - $this->setBrowserUrl(PHPUNIT_TESTS_URL); - $this->setDesiredCapabilities( - array( - 'platform' => 'LINUX', - 'chromeOptions' => array( - 'w3c' => false, - 'args' => [ - '--profile-directory=' . uniqid(), - '--disable-features=TranslateUI', - '--disable-translate', - ], - ) - ) - ); - } - - protected function definirRemetenteProcesso($urlSistema, $siglaOrgao, $siglaUnidade, $nomeUnidade) - { - self::$urlSistemaRemetente = $urlSistema; - self::$siglaOrgaoRemetente = $siglaOrgao; - self::$siglaUnidadeRemetente = $siglaUnidade; - self::$nomeUnidadeRemetente = $nomeUnidade; - } - - protected function definirDestinatarioProcesso($urlSistema, $siglaOrgao, $siglaUnidade, $nomeUnidade) - { - self::$urlSistemaDestinatario = $urlSistema; - self::$siglaOrgaoDestinatario = $siglaOrgao; - self::$siglaUnidadeDestinatario = $siglaUnidade; - self::$nomeUnidadeDestinatario = $nomeUnidade; - } - - protected function definirContextoTeste($nomeContexto) - { - $objContexto = array( - 'URL' => constant($nomeContexto . '_URL'), - 'ORGAO' => constant($nomeContexto . '_SIGLA_ORGAO'), - 'SIGLA_UNIDADE' => constant($nomeContexto . '_SIGLA_UNIDADE'), - 'SIGLA_UNIDADE_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_HIERARQUIA'), - 'NOME_UNIDADE' => constant($nomeContexto . '_NOME_UNIDADE'), - 'LOGIN' => constant($nomeContexto . '_USUARIO_LOGIN'), - 'SENHA' => constant($nomeContexto . '_USUARIO_SENHA'), - 'TIPO_PROCESSO' => constant($nomeContexto . '_TIPO_PROCESSO'), - 'TIPO_DOCUMENTO' => constant($nomeContexto . '_TIPO_DOCUMENTO'), - 'TIPO_DOCUMENTO_NAO_MAPEADO' => constant($nomeContexto . '_TIPO_DOCUMENTO_NAO_MAPEADO'), - 'CARGO_ASSINATURA' => constant($nomeContexto . '_CARGO_ASSINATURA'), - 'SIGLA_UNIDADE_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_HIERARQUIA'), - 'SIGLA_UNIDADE_SECUNDARIA' => constant($nomeContexto . '_SIGLA_UNIDADE_SECUNDARIA'), - 'SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA'), - 'NOME_UNIDADE_SECUNDARIA' => constant($nomeContexto . '_NOME_UNIDADE_SECUNDARIA'), - 'HIPOTESE_RESTRICAO_ID' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_ID'), - 'HIPOTESE_RESTRICAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO'), - 'HIPOTESE_RESTRICAO_NAO_MAPEADO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_NAO_MAPEADO'), - 'REP_ESTRUTURAS' => constant($nomeContexto . '_REP_ESTRUTURAS'), - 'HIPOTESE_RESTRICAO_PADRAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_PADRAO'), - 'ID_REP_ESTRUTURAS' => constant($nomeContexto . '_ID_REP_ESTRUTURAS'), - 'ID_ESTRUTURA' => constant($nomeContexto . '_ID_ESTRUTURA'), - 'SIGLA_ESTRUTURA' => constant($nomeContexto . '_SIGLA_ESTRUTURA'), - 'HIPOTESE_RESTRICAO_INATIVA' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_INATIVA'), - 'TIPO_PROCESSO_SIGILOSO' => constant($nomeContexto . '_TIPO_PROCESSO_SIGILOSO'), - 'HIPOTESE_SIGILOSO' => constant($nomeContexto . '_HIPOTESE_SIGILOSO'), - ); - switch ($nomeContexto) { - case CONTEXTO_ORGAO_A: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO_SENHA'); - break; - - case CONTEXTO_ORGAO_B: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG2_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG2_CERTIFICADO_SENHA'); - break; - - default: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO_SENHA'); - break; - } - - return $objContexto; - } - - protected function acessarSistema($url, $siglaUnidade, $login, $senha) - { - $this->url($url); - PaginaLogin::executarAutenticacao($this, $login, $senha); - PaginaTeste::selecionarUnidadeContexto($this, $siglaUnidade); - $this->url($url); - } - - protected function selecionarUnidadeInterna($unidadeDestino) - { - PaginaTeste::selecionarUnidadeContexto($this, $unidadeDestino); - } - - protected function sairSistema() - { - $this->paginaBase->sairSistema(); - } - - protected function abrirProcesso($protocolo) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($protocolo); - } - - protected function abrirProcessoPelaDescricao($descricao) - { - $this->paginaBase->navegarParaControleProcesso(); - $protocolo = $this->paginaControleProcesso->localizarProcessoPelaDescricao($descricao); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo); - } - return $protocolo; - } - - - protected function assinarDocumento($siglaOrgao, $cargoAssinante, $loginSenha) - { - // Navegar para pgina de assinatura - $this->paginaDocumento->navegarParaAssinarDocumento(); - sleep(2); - - // Assinar documento - $this->paginaAssinaturaDocumento->selecionarOrgaoAssinante($siglaOrgao); - $this->paginaAssinaturaDocumento->selecionarCargoAssinante($cargoAssinante); - $this->paginaAssinaturaDocumento->assinarComLoginSenha($loginSenha); - $this->window(''); - sleep(2); - } - - protected function tramitarProcessoExternamente($protocolo, $repositorio, $unidadeDestino, $unidadeDestinoHierarquia, $urgente = false, $callbackEnvio = null, $timeout = PEN_WAIT_TIMEOUT) - { - // Acessar funcionalidade de trmite externo - try { - $this->paginaTramitarProcessoEmLote->navegarControleProcessos(); - } catch (Exception $e) { - $this->paginaProcesso->navegarParaTramitarProcesso(); - } - - // Preencher parmetros do trmite - $this->paginaTramitar->repositorio($repositorio); - $this->paginaTramitar->unidade($unidadeDestino, $unidadeDestinoHierarquia); - $this->paginaTramitar->tramitar(); - - if ($callbackEnvio == null) { - $mensagemAlerta = null; - try { - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - } catch (Exception $e) { - } - if ($mensagemAlerta) { - throw new Exception($mensagemAlerta); - } - } - - try { - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - } catch (Exception $e) { - } - - if (isset($mensagemAlerta)) { - throw new Exception($mensagemAlerta); - } - - $callbackEnvio = $callbackEnvio ?: function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Trmite externo do processo finalizado com sucesso!', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - }; - - try { - $this->waitUntil($callbackEnvio, $timeout); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - sleep(1); - } - - protected function tramitarProcessoInternamente($unidadeDestino, $manterAbertoNaUnidadeAtual = false) - { - // Acessar funcionalidade de trmite interno - $this->paginaProcesso->navegarParaTramitarProcessoInterno(); - - // Preencher parmetros do trmite - $this->paginaTramitar->unidadeInterna($unidadeDestino); - if ($manterAbertoNaUnidadeAtual) { - $this->paginaTramitar->manterAbertoNaUnidadeAtual(); - } - $this->paginaTramitar->tramitarInterno(); - - sleep(1); - } - - protected function navegarParaCancelarDocumento($ordemDocumento) - { - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - $this->paginaProcesso->selecionarDocumento($listaDocumentos[$ordemDocumento]); - $this->paginaDocumento->navegarParaCancelarDocumento(); - } - - protected function tramitarProcessoInternamenteParaCancelamento($unidadeOrigem, $unidadeDestino, $protocolo) - { - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamente($unidadeDestino); - - //Selecionar unidade interna - $this->selecionarUnidadeInterna($unidadeDestino); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo['PROTOCOLO']); - } - - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamente($unidadeOrigem); - - //Selecionar unidade interna - $this->selecionarUnidadeInterna($unidadeOrigem); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo['PROTOCOLO']); - } - - sleep(1); - } - - protected function validarRecibosTramite($mensagem, $verificarReciboEnvio, $verificarReciboConclusao) - { - $mensagem = mb_convert_encoding($mensagem, 'UTF-8', 'ISO-8859-1'); - $this->waitUntil(function ($testCase) use ($mensagem, $verificarReciboEnvio, $verificarReciboConclusao) { - sleep(5); - $testCase->refresh(); - $testCase->paginaProcesso->navegarParaConsultarRecibos(); - $this->assertTrue($testCase->paginaReciboTramite->contemTramite($mensagem, $verificarReciboEnvio, $verificarReciboConclusao)); - return true; - }, PEN_WAIT_TIMEOUT); - } - - protected function validarHistoricoTramite( - $unidadeDestino, - $verificarProcessoEmTramitacao = true, - $verificarProcessoRecebido = true, - $verificarProcessoRejeitado = false, - $motivoRecusa = null - ) { - $this->paginaProcesso->navegarParaConsultarAndamentos(); - - if ($verificarProcessoEmTramitacao) { - $this->assertTrue($this->paginaConsultarAndamentos->contemTramiteProcessoEmTramitacao($unidadeDestino)); - } - - if ($verificarProcessoRecebido) { - $this->assertTrue($this->paginaConsultarAndamentos->contemTramiteProcessoRecebido($unidadeDestino)); - } - - if ($verificarProcessoRejeitado) { - - $motivoRecusa = mb_convert_encoding($motivoRecusa, 'UTF-8', 'ISO-8859-1'); - $this->waitUntil(function ($testCase) use ($unidadeDestino, $motivoRecusa) { - sleep(5); - $testCase->refresh(); - $testCase->paginaProcesso->navegarParaConsultarAndamentos(); - $this->assertTrue($testCase->paginaConsultarAndamentos->contemTramiteProcessoRejeitado($unidadeDestino, $motivoRecusa)); - return true; - }, PEN_WAIT_TIMEOUT); - } - } - - protected function validarDadosProcesso($descricao, $restricao, $observacoes, $listaInteressados, $hipoteseLegal = null) - { - sleep(2); - $this->paginaProcesso->navegarParaEditarProcesso(); - $this->paginaEditarProcesso = new PaginaEditarProcesso($this); - $this->assertEquals(mb_convert_encoding($descricao, 'UTF-8', 'ISO-8859-1'), $this->paginaEditarProcesso->descricao()); - $this->assertEquals($restricao, $this->paginaEditarProcesso->restricao()); - - $listaInteressados = is_array($listaInteressados) ? $listaInteressados : array($listaInteressados); - for ($i = 0; $i < count($listaInteressados); $i++) { - $this->assertStringStartsWith(substr($listaInteressados[$i], 0, 100), $this->paginaEditarProcesso->listarInteressados()[$i]); - } - - if ($observacoes) { - $this->assertStringContainsString($observacoes, $this->byCssSelector('body')->text()); - } - - if ($hipoteseLegal != null) { - $hipoteseLegalDocumento = $this->paginaEditarProcesso->recuperarHipoteseLegal(); - $this->assertEquals($hipoteseLegal, $hipoteseLegalDocumento); - } - } - - protected function validarDocumentoCancelado($nomeDocArvore) - { - sleep(2); - $this->assertTrue($this->paginaProcesso->ehDocumentoCancelado($nomeDocArvore)); - } - - protected function validarDocumentoMovido($nomeDocArvore) - { - sleep(2); - $this->assertTrue($this->paginaProcesso->ehDocumentoMovido($nomeDocArvore)); - } - - protected function validarDadosDocumento($nomeDocArvore, $dadosDocumento, $destinatario, $unidadeSecundaria = false, $hipoteseLegal = null) - { - sleep(2); - - // Verifica se documento possui marcao de documento anexado - $bolPossuiDocumentoReferenciado = !is_null($dadosDocumento['ORDEM_DOCUMENTO_REFERENCIADO']); - $this->assertTrue($this->paginaProcesso->deveSerDocumentoAnexo($bolPossuiDocumentoReferenciado, $nomeDocArvore)); - - if (($this->paginaProcesso->ehDocumentoCancelado($nomeDocArvore) == false) and ($this->paginaProcesso->ehDocumentoMovido($nomeDocArvore) == false)) { - - $this->paginaProcesso->selecionarDocumento($nomeDocArvore); - $this->paginaDocumento->navegarParaConsultarDocumento(); - - $mesmoOrgao = $dadosDocumento['ORIGEM'] == $destinatario['URL']; - - if ($mesmoOrgao && $dadosDocumento['TIPO'] == 'G') { - $this->assertEquals($dadosDocumento["DESCRICAO"], $this->paginaDocumento->descricao()); - if (!$mesmoOrgao) { - $observacoes = ($unidadeSecundaria) ? $this->paginaDocumento->observacoesNaTabela() : $this->paginaDocumento->observacoes(); - $this->assertEquals($dadosDocumento['OBSERVACOES'], $observacoes); - } - } else { - $this->assertNotNull($this->paginaDocumento->nomeAnexo()); - $contemVariosComponentes = is_array($dadosDocumento['ARQUIVO']); - if (!$contemVariosComponentes) { - $nomeArquivo = $dadosDocumento['ARQUIVO']; - $this->assertStringContainsString(basename($nomeArquivo), $this->paginaDocumento->nomeAnexo()); - if ($hipoteseLegal != null) { - $hipoteseLegalDocumento = $this->paginaDocumento->recuperarHipoteseLegal(); - $this->assertEquals($hipoteseLegal, $hipoteseLegalDocumento); - } - } - } - } - } - - protected function validarProcessosTramitados($protocolo, $deveExistir) - { - $this->frame(null); - $this->paginaBase->navegarParaControleProcesso(); - $this->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Processos em Tramitao Externa', 'UTF-8', 'ISO-8859-1')); - $this->byLinkText(mb_convert_encoding("Processos em Tramitao Externa", 'UTF-8', 'ISO-8859-1'))->click(); - $this->assertEquals($deveExistir, $this->paginaProcessosTramitadosExternamente->contemProcesso($protocolo)); - } - - protected function validarProcessoRejeitado() - { - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - return array( - "TIPO_PROCESSO" => $contextoProducao['TIPO_PROCESSO'], - "DESCRICAO" => util::random_string(100), - "OBSERVACOES" => null, - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoInternoTeste($contextoProducao) - { - return array( - 'TIPO' => 'G', // Documento do tipo Gerado pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DESCRICAO" => trim(str_repeat(util::random_string(9) . ' ', 10)), - "OBSERVACOES" => null, - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ORDEM_DOCUMENTO_REFERENCIADO" => null, - "ARQUIVO" => ".html", - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos = 'arquivo_pequeno.txt', $ordemDocumentoReferenciado = null) - { - // Tratamento para lista de arquivos em casos de documentos com mais de um componente digital - $pasta = self::PASTA_ARQUIVOS_TESTE; - $arquivos = is_array($nomesArquivos) ? array_map(function ($item) use ($pasta) { - return "$pasta/$item"; - }, $nomesArquivos) : "$pasta/$nomesArquivos"; - - return array( - 'TIPO' => 'R', // Documento do tipo Recebido pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DATA_ELABORACAO" => '01/01/2017', - "DESCRICAO" => str_repeat(util::random_string(9) . ' ', 10), - "OBSERVACOES" => util::random_string(500), - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "ORDEM_DOCUMENTO_REFERENCIADO" => $ordemDocumentoReferenciado, - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ARQUIVO" => $arquivos, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoExternoGrandeTeste($contextoProducao, $nomesArquivo = 'arquivo_grande_gerado.txt', $tamanhoMB = 100, $ordemDocumentoReferenciado = null) - { - // Tratamento para lista de arquivos em casos de documentos com mais de um componente digital - $pasta = self::PASTA_ARQUIVOS_TESTE; - shell_exec('dd if=/dev/zero of=' . self::PASTA_ARQUIVOS_TESTE . '/' . $nomesArquivo . ' bs=1M count=' . $tamanhoMB); - $arquivos = "$pasta/$nomesArquivo"; - - return array( - 'TIPO' => 'R', // Documento do tipo Recebido pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DATA_ELABORACAO" => '01/01/2017', - "DESCRICAO" => str_repeat(util::random_string(9) . ' ', 10), - "OBSERVACOES" => util::random_string(500), - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "ORDEM_DOCUMENTO_REFERENCIADO" => $ordemDocumentoReferenciado, - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ARQUIVO" => $arquivos, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function realizarValidacaoRecebimentoProcessoNoDestinatario($processoTeste, $documentosTeste, $destinatario, $devolucao = false, $unidadeSecundaria = false) - { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - - // 10 - Acessar sistema de REMETENTE do processo - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $this->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $devolucao = $processoTeste['ORIGEM'] == $destinatario['URL']; - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= $processoTeste['TIPO_PROCESSO']; - $processoTeste['OBSERVACOES'] = (!$devolucao) ? $strTipoProcesso : $processoTeste['OBSERVACOES']; - $this->validarDadosProcesso($processoTeste['DESCRICAO'], $processoTeste['RESTRICAO'], $processoTeste['OBSERVACOES'], $processoTeste['INTERESSADOS']); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - $this->assertEquals(count($listaDocumentos), count($documentosTeste)); - - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], $destinatario, $unidadeSecundaria, null); - } - } - - public function realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentosTeste, $destinatario, $devolucao = false, $unidadeSecundaria = false) - { - $strProtocoloTeste = null; - $strDescricao = $documentosTeste['DESCRICAO']; - - // Acessar sistema de REMETENTE do processo - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - - // Abrir protocolo na tela de controle de processos pelo texto da descrio - $this->waitUntil(function ($testCase) use ($strDescricao, &$strProtocoloTeste) { - sleep(5); - $strProtocoloTeste = $this->abrirProcessoPelaDescricao($strDescricao); - $this->assertNotFalse($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // Validar dados do processo - $this->validarDadosProcesso($documentosTeste['DESCRICAO'], $documentosTeste['RESTRICAO'], null, array($documentosTeste['INTERESSADOS'])); - - // Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Documento $strProtocoloTeste", false, true); - - // Validar dados do documento - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - $this->assertEquals(count($listaDocumentos), count($documentosTeste)); - - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], $destinatario, $unidadeSecundaria); - } - - return array( - "TIPO_PROCESSO" => $destinatario['TIPO_PROCESSO'], - "DESCRICAO" => $documentosTeste[0]['DESCRICAO'], - "OBSERVACOES" => null, - "INTERESSADOS" => $documentosTeste[0]['INTERESSADOS'], - "RESTRICAO" => $documentosTeste[0]['RESTRICAO'], - "ORIGEM" => $destinatario['URL'], - "PROTOCOLO" => $strProtocoloTeste - ); - } - - public function realizarValidacaoNAORecebimentoProcessoNoDestinatario($destinatario, $processoTeste) - { - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - $this->paginaBase->navegarParaControleProcesso(); - $this->assertFalse($this->paginaControleProcesso->contemProcesso($processoTeste['PROTOCOLO'], false, false)); - } - - protected function selecionarProcessos($numProtocolo=null) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramitarProcessoEmLote->selecionarProcessos($numProtocolo); - sleep(2); - } - - protected function visualizarProcessoTramitadosEmLote($test) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Processos Tramitados em Bloco', 'UTF-8', 'ISO-8859-1')); - $this->byLinkText("Processos Tramitados em Bloco")->click(); - } - - protected function navegarProcessoEmLote($selAndamento, $numProtocolo=null) - { - if($selAndamento == 0){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_PROCESSAMENTO; - }if($selAndamento == 2){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_CONCLUIDO; - }if($selAndamento == 7){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_CANCELADO; - } - $this->paginaTramitarProcessoEmLote->navegarProcessoEmLote($selAndamento, $numProtocolo); - } - -} diff --git a/tests_sei4/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php b/tests_sei4/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php deleted file mode 100644 index f7f85352a..000000000 --- a/tests_sei4/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php - -/** - * Mapeia as Unidades com limitao de repositrios - * para tramite de processos entre orgos - */ -class MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public $penMapUnidadesFixture; - public $objProtocoloDTO; - - /** - * Set up - * Cria pameamento de unidades para o teste por Fixture - * - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $this->penMapUnidadesFixture = $penMapUnidadesFixture->carregar([ - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'] - ]); - } - - /** - * Teste mapeamento de unidades e limitao dos repositrios para tramite - * - * @return void - */ - public function test_mapeamento_unidades_com_limitacao_de_repositorios() - { - $this->removerRestricaoUnidade(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); - $this->paginaMapUnidades->pesquisarUnidade(self::$remetente['SIGLA_UNIDADE']); - sleep(2); - - $this->paginaMapUnidades->selecionarEditar(); - $this->paginaMapUnidades->limparRestricoes(); - - $this->paginaMapUnidades->selecionarRepoEstruturas(self::$remetente['REP_ESTRUTURAS']); - $this->paginaMapUnidades->selecionarUnidade(self::$remetente['NOME_UNIDADE']); - - $this->paginaMapUnidades->salvar(); - sleep(2); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - 'Mapeamento de Unidade gravado com sucesso.', - $mensagem - ); - $this->sairSistema(); - } - - /** - * Teste para validar se aplicou a restrio de mapeamento de unidades no tramite - * - * @return void - */ - public function test_tramitar_com_limitacao_de_repositorios() - { - $this->criarProcesso(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->abrirProcesso($this->objProtocoloDTO->getStrProtocoloFormatado()); - - $this->paginaProcesso->navegarParaTramitarProcesso(); - $this->paginaMapUnidades->validarRepositorio(self::$remetente['REP_ESTRUTURAS']); - $this->paginaMapUnidades->selecionarUnidade(self::$remetente['NOME_UNIDADE']); - - $this->removerRestricaoUnidade(); - - $this->sairSistema(); - } - - /** - * Criar processo para validar tramitao por Fixture - * - * @return void - */ - private function criarProcesso() - { - // Definio de dados de teste do processo principal - $processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->objProtocoloDTO = $this->cadastrarProcessoFixture($processoTestePrincipal); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $this->objProtocoloDTO->getDblIdProtocolo()); - - } - - /** - * Remover restricao para limpar teste - * - * @return void - */ - private function removerRestricaoUnidade() - { - $penUnidadeRestricaoFixture = new \PenUnidadeRestricaoFixture(); - $penUnidadeRestricaoFixture->remover([ - 'NomeUnidadeRestricao' => self::$remetente['REP_ESTRUTURAS'], - 'NomeUnidadeRHRestricao' => self::$remetente['NOME_UNIDADE'] - ]); - } - -} diff --git a/tests_sei4/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php b/tests_sei4/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php deleted file mode 100755 index 84424de88..000000000 --- a/tests_sei4/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class RecebimentoRecusaJustificativaGrandeTest extends FixtureCenarioBaseTestCase -{ - - protected $destinatarioWs; - protected $servicoPEN; - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - $this->destinatarioWs = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = $this->destinatarioWs['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = $this->destinatarioWs['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $id_tramite = $bancoOrgaoA->query("select max(id_tramite) as id_tramite from md_pen_componente_digital where protocolo = ?", array(self::$protocoloTeste)); - //recusa o tramite contendo justificativa grande - if (array_key_exists("id_tramite", $id_tramite[0])) { - $id_tramite=$id_tramite[0]["id_tramite"]; - }else{ - $id_tramite=$id_tramite[0]["ID_TRAMITE"]; - } - $this->recusarTramite($this->servicoPEN, $id_tramite); - } - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, sprintf("An exception occurred while executing 'INSERT INTO juntadas (numeracao_sequencial, movimento, ativo, vinculada, criado_em, atualizado_em, id, uuid, documentos_juntado_id, volumes_id, atividades_id, tarefas_id, comunicacoes_id, origem_dados_id, criado_por, atualizado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [1, 'DOCUMENTO RECEBIDO VIA INTEGRA\u00c7\u00c3O COM O BARRAMENTO', 1, 0, '2021-12-02 14:21:48', '2021-12-02 14:21:48', 1317074776, '06ba31e8-75ad-4111-82d ...")); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - private function recusarTramite($servicoPEN, $id_tramite) - { - $justificativa = "An exception occurred while executing 'INSERT INTO juntadas (numeracao_sequencial, movimento, ativo, vinculada, criado_em, atualizado_em, id, uuid, documentos_juntado_id, volumes_id, atividades_id, tarefas_id, comunicacoes_id, origem_dados_id, criado_por, atualizado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [1, 'DOCUMENTO RECEBIDO VIA INTEGRA\u00c7\u00c3O COM O BARRAMENTO', 1, 0, '2021-12-02 14:21:48', '2021-12-02 14:21:48', 1317074776, '06ba31e8-75ad-4111-82dc-6f451f51825e', 1333864526, null, null, null, null, 3534979787, null, null]: ORA-00001: restrio exclusiva (SAPIENS.UNIQ_867686DHDKJ97876) violada"; - - $parametros = new stdClass(); - $parametros->recusaDeTramite = new stdClass(); - $parametros->recusaDeTramite->IDT = $id_tramite; - $parametros->recusaDeTramite->justificativa = mb_convert_encoding($justificativa, 'UTF-8', 'ISO-8859-1'); - $parametros->recusaDeTramite->motivo = "99"; - return $servicoPEN->recusarTramite($parametros); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } -} diff --git a/tests_sei4/funcional/tests/TODO.txt b/tests_sei4/funcional/tests/TODO.txt deleted file mode 100755 index 39269254b..000000000 --- a/tests_sei4/funcional/tests/TODO.txt +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################################################################################ -# Lista de testes pendentes de automação e com registro de erro no sistema # -################################################################################################################################################ - -# TODO: Implementar testa para simular erro quando unidades não estão mapeadas em md_pen_unidade -# TODO: Implementar teste para simular se botão tramitar continua aparecendo, mesmo com Barramento indisponível -# TODO: Testar se processo está abrindo normalmente quando não existe comunicação com o barramento -# TODO: Não está sendo tratado as permissões de acesso ao botão de visualizar recibos de trâmite -# TODO: Implementar testes com envio de processo e problema no envio de recibo de conclusão pelo destinatário por questões de indisponibilidade do barramento -# Todo: Implementar teste de desligamento do gearman com vários processos na lista -# TODO: Implementar testes com unidades contendo mapeamentos errados, ou seja, não sendo representando pelo sistema. - - -# TODO: Quando o usuário está sem as devidas permissões aos recursos do módulo, são disparado erros não tratados nas funcionalidades do sistema -# TODO: Ícone de alerta de rejeição e mensagem de rejeição não aparecem na página do processo, somente em Controle de Processo -# TODO: Agendamento de verificação do módulo não está lançando exceção, fazendo que com que o e-mail não seja enviado para o administrador -# TODO: Pesquisa de unidades está registrando erro no log do SEI caso não encontre uma unidade -# TODO: Adicionar botão de pesquisar -# TODO: Pesquisa de unidades deve considerar a também a sigla de unidade ou sigla da hierarquia -# TODO: Mudar popup de barra de progresso para impedir que navegador faça o bloqueio -# TODO: Adicionar botão fechar ao popup de barra de progresso do trâmite externo -# TODO: Adicionar opção de ocultar/extender registros da página de trâmite de processos -# TODO: Implementar tratamento para unidades receptoras -# TODO: Implementar o envio de dados da assinatura digital de documentos externos -# TODO: Implementar trâmite de processos anexados e e-mail com anexos -# TODO: Revisar mensagens de notificação para o usuário final - diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php b/tests_sei4/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php deleted file mode 100644 index 5cad66c85..000000000 --- a/tests_sei4/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -/** - * Classe de Teste para Incluso de Processo por Visualizao Detalhada em Bloco de Trmite. - * - * Esta classe realiza testes automatizados para verificar a incluso de processos em blocos de trmite - * atravs da visualizao detalhada. O teste simula um usurio acessando o sistema, selecionando um processo - * e adicionando-o a um bloco de trmite especfico, validando se a operao foi realizada com sucesso. - */ -class TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * Mtodo que testa a incluso de um processo por meio da visualizao detalhada. - * - * Este mtodo configura o contexto do teste, gera dados necessrios para o teste de incluso, - * realiza o acesso ao sistema, navega at a seo de controle de processos e executa a incluso do - * processo no bloco de trmite. Aps a incluso, o mtodo verifica se a mensagem de sucesso exibida - * corretamente. - * - * @return void - */ - public function teste_inclusao_de_processo_por_visualizacao_detalhada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Gerao dos dados para o processo e documento de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastro do processo e documento - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegao para controle de processo e seleo de visualizao detalhada - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarVisualizacaoDetalhada(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Verificao do ttulo da pgina - $titulo = mb_convert_encoding("Incluir Processo(s) no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'); - $tituloRetorno = $this->paginaTramiteEmBloco->verificarTituloDaPagina($titulo); - $this->assertEquals($titulo, $tituloRetorno); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Espera para a mensagem de sucesso aparecer - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php b/tests_sei4/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php deleted file mode 100755 index cea56aeb1..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php +++ /dev/null @@ -1,293 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteProcessoAnexadoComDevolucaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Definio de dados de teste do processo a ser anexado - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento1DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - $objDocumento2DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $objProtocoloAnexadoDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento3DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - $objDocumento4DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - self::$protocoloTesteAnexado = $objProtocoloAnexadoDTO->getStrProtocoloFormatado(); - - // Preencher variaveis que sero usadas posteriormente nos testes - self::$documentoTeste1['ARQUIVO'] = str_pad($objDocumento1DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste2['ARQUIVO'] = str_pad($objDocumento2DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste3['ARQUIVO'] = str_pad($objDocumento3DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste4['ARQUIVO'] = str_pad($objDocumento4DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - - // Realizar a anexao de processos - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - } - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_anexado_da_origem - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_anexado - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Definio de dados de teste do processo principal - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoExternoTeste(self::$remetente,'arquivo_pequeno_A.pdf'); - - // Selecionar banco do org2 para fazer insero dos documentos - putenv("DATABASE_HOST=org2-database"); - - // Busca ID que Protocolo principal recebeu no org2 - $objProtocoloPrincipalOrg2DTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - - //Incluir novos documentos relacionados - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloPrincipalOrg2DTO->getDblIdProtocolo()); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste6, $objProtocoloPrincipalOrg2DTO->getDblIdProtocolo()); - - - //Fim das operaes no BD do org2 - putenv("DATABASE_HOST=org1-database"); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(5, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[4], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php b/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php deleted file mode 100755 index cd147622c..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoComDevolucaoUnidadeDiferenteTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - self::$destinatario['NOME_UNIDADE'] = self::$destinatario['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE'] = self::$destinatario['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$destinatario['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - putenv("DATABASE_HOST=org2-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php b/tests_sei4/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php deleted file mode 100755 index 02e72901f..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessoComDocumentoRestritoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - /** - * Teste de trmite externo de processo com documentos restritos - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_com_documento_restrito() - { - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); // Cadastrar novo processo de teste - self::$documentoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; // Configurao de documento restrito - self::$documentoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; // Configurar Hipotese legal - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, self::$protocoloTeste->getDblIdProtocolo()); // Incluir Documentos no Processo - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_com_documento_restrito - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_restrito() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->pesquisar(self::$protocoloTeste->getStrProtocoloFormatado()); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste->getStrProtocoloFormatado(), $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste->getStrProtocoloFormatado(), $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_com_documento_restrito - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_restrito() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - // 11 - Abrir protocolo na tela de controle de processos - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } - - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoComHistoricoTest.php b/tests_sei4/funcional/tests/TramiteProcessoComHistoricoTest.php deleted file mode 100755 index b5d8929d3..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoComHistoricoTest.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class TramiteProcessoComHistoricoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - - $localCertificado = self::$destinatario['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$destinatario['SENHA_CERTIFICADO_DIGITAL']; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - - // Captura o IDT do processo - $idtEnviado = $bancoOrgaoA->query("SELECT tra.id_tramite FROM protocolo p - inner join md_pen_processo_eletronico pen on p.id_protocolo=pen.id_procedimento - inner join md_pen_tramite tra on pen.numero_registro=tra.numero_registro - where protocolo_formatado=?",array(self::$protocoloTeste)); - - if (array_key_exists("id_tramite", $idtEnviado[0])) { - $idtEnviado=$idtEnviado[0]["id_tramite"]; - } else { - $idtEnviado=$idtEnviado[0]["ID_TRAMITE"]; - } - - $curl_handler = curl_init(); - curl_setopt($curl_handler, CURLOPT_URL, "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/tramites/" . $idtEnviado); - curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl_handler, CURLOPT_FAILONERROR, true); - curl_setopt($curl_handler, CURLOPT_SSLCERT, $localCertificado); - curl_setopt($curl_handler, CURLOPT_SSLCERTPASSWD, $senhaCertificado); - - $saida = json_decode(curl_exec($curl_handler)); - curl_close($curl_handler); - - foreach($saida->propriedadesAdicionais as $propriedades){ - - switch($propriedades->chave){ - - case "CLASSIFICACAO_PrazoIntermediario_1": - $this->assertEquals('15', $propriedades->valor ); - break; - - case "CLASSIFICACAO_PrazoCorrente_1": - $this->assertEquals('5', $propriedades->valor ); - break; - - case "MODULO_PEN_VERSAO": - $this->assertTrue(isset($propriedades->valor)); - break; - - case "CLASSIFICACAO_CodigoEstruturado_1": - $this->assertEquals('052.211', $propriedades->valor ); - break; - - case "CLASSIFICACAO_Destinacao_1": - $this->assertEquals('Elimina', substr($propriedades->valor,0,7) ); - break; - - case "CLASSIFICACAO_Observacao_1": - $this->assertEquals('Quanto ao estabelecimento', substr($propriedades->valor,0,25) ); - break; - - case "CLASSIFICACAO_Descricao_1": - $this->assertEquals('RECEITA CORRENTE', substr($propriedades->valor,0,16)); - break; - - } - } - - $this->assertEquals(9, sizeof($saida->processo->itensHistorico) ); - - } - -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php b/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php deleted file mode 100755 index 214e32b16..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo um documento externo que reproduz - * antigo erro de corrompimento de dados da biblioteca BeSimple - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_besimple() - { - //Excente tempo de timeout devido ao tamanho do arquivo arquivo_corrompimento_besimplesoap.pdf - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_corrompimento_besimplesoap.pdf'); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, null, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_besimple() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_besimple() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php b/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php deleted file mode 100755 index a307d83c1..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste tramitar processo contendo documento gerado - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * @large - * - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - //Configurao da unidade destinatrio como outra unidade do mesmo rgo - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['NOME_UNIDADE'] = self::$remetente['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - /** - * @depends test_tramitar_processo_contendo_documento_gerado - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * @depends test_verificar_origem_processo_contendo_documento_gerado - * @large - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php b/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php deleted file mode 100755 index f18aa0b99..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * @group rodarseparado - * @group rodarseparado2 - * @group execute_alone_group1 - */ -class TramiteProcessoContendoDocumentoExternoParticionadoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - public static function setUpBeforeClass() :void { - - parent::setUpBeforeClass(); - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(70, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - public static function tearDownAfterClass() :void { - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - - /** - * Teste de trmite externo de processo contendo documento externo particionado acima de 60Mb - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_externo_60mb() - { - //Aumenta o tempo de timeout devido ao tamanho do arquivo arquivo_060.pdf - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_060.pdf'); - - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Altera tamanho mximo permitido para permitir o envio de arquivo superior 50MBs - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - try { - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(70, 'SEI_TAM_MB_DOC_EXTERNO')); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - } finally { - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - } - putenv("DATABASE_HOST=org1-database"); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, null, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_externo_60mb - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_externo_60mb() - { - //Aumenta o tempo de timeout devido ao tamanho do arquivo arquivo_060.pdf - $this->setSeleniumServerRequestsTimeout(60000); - - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_externo_60mb - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_externo_60mb() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei4/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php b/tests_sei4/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php deleted file mode 100755 index 13c7ba1c0..000000000 --- a/tests_sei4/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoValidacaoBotaoIncluirTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * - * @Depends TramiteProcessoGrandeTest::tearDownAfterClass - * - * @return void - */ - public static function setUpBeforeClass() :void { - - // Altera status de qualquer Bloco aberto - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update md_pen_bloco set sta_estado=? where sta_estado=?", array('C', 'A')); - - // Limpa os mapeamentos de unidade - $bancoOrgaoA->execute("delete from md_pen_unidade", array()); - } - - public static function tearDownAfterClass() :void { - - // Recadastra os mapeamentos da unidade - putenv("DATABASE_HOST=org1-database"); - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $penMapUnidadesFixture->carregar([ - 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA, - 'Sigla' => CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA, - 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE, - ]); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); - } - - /** - * Teste de trmite externo de processo com restrio de acesso - * - * @group envio - * @large - * - * - * @return void - */ - public function test_tramitar_processo_restrito() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste(mb_convert_encoding("Incluir Processo no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'))); - } -} diff --git a/tests_sei4/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php b/tests_sei4/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php deleted file mode 100755 index 99d2c2473..000000000 --- a/tests_sei4/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php +++ /dev/null @@ -1,288 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteRecebimentoDocumentoAvulsoTest extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - protected $servicoPEN; - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - - /** - * Teste preparatrio (setUp()). Definio de contextos e instanciao da api de integrao - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de verificao do correto recebimento do documento avulso - * - * @return void - */ - public function test_recebimento_documento_avulso() - { - // Simular um trmite chamando a API do Barramento diretamente - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, array(self::CONTEUDO_DOCUMENTO_A)); - - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste(self::$documentoTeste1); - $novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, self::$remetente, self::$destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoTramite($this->servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvio($this->servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - self::$processoTeste = $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario(self::$documentoTeste1, self::$destinatario); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_recebimento_documento_avulso - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste2, self::$documentoTeste3); - putenv("DATABASE_HOST=org1-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_para_origem_documento_avulso() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - putenv("DATABASE_HOST=org2-database"); - $documentos = array(self::$documentoTeste4, self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem_documento_avulso - * - * @return void - */ - public function test_verificar_recebimento_processo_destino_documento_avulso() - { - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = trim(substr($dadosDocumentoTest['INTERESSADOS'], 0, 15)); - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } -} diff --git a/tests_sei4/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php b/tests_sei4/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php deleted file mode 100755 index 768308bb9..000000000 --- a/tests_sei4/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php +++ /dev/null @@ -1,256 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class TramiteRecebimentoInteressadosDuplicadosTest extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - - public static $processoTeste; - public static $remetente; - public static $destinatario; - public static $servicoPEN; - public static $documentoTeste1; - - /** - * Teste de envio de metadados do processo contendo interessados duplicados - * - * Inicialmente so enviados 2 interessados com o mesmo nome - * - * @group envio - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_envio_processo_com_documento_anexado() - { - // Carregar contexto de testes e dados sobre certificado digital - $ordemDocumentoReferenciado = 1; - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_A); - - // Atribui dois interessados utilizando o mesmo nome - self::$processoTeste['INTERESSADOS'] = array("Interessado com mesmo nome", "Interessado com mesmo nome"); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - - // Inicia o envio do processo - $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1); - $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); - - - //Verifica recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - - //Verifica se somente um interessado foi registrado para o processo - self::$processoTeste['INTERESSADOS'] = "Interessado com mesmo nome"; - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentosPrimeiroEnvio, self::$destinatario); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - } - - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - $processoTeste = parent::gerarDadosProcessoTeste($contextoProducao); - $processoTeste['PROTOCOLO'] = sprintf('99999.%06d/2020-00', rand(0, 999999)); - $processoTeste['INTERESSADOS'] = trim(substr($processoTeste['INTERESSADOS'], 0, 15)); - $processoTeste['DESCRICAO'] = trim(substr($processoTeste['DESCRICAO'], 0, 10)); - return $processoTeste; - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTeste = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTeste['INTERESSADOS'] = trim(substr($dadosDocumentoTeste['INTERESSADOS'], 0, 15)); - $dadosDocumentoTeste['DESCRICAO'] = trim(substr($dadosDocumentoTeste['DESCRICAO'], 0, 10)); - return $dadosDocumentoTeste; - } - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - $arrInteressados = array_map(function($item) { - return array('nome' => mb_convert_encoding($item, 'UTF-8', 'ISO-8859-1')); - }, - $processoTeste['INTERESSADOS']); - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => $arrInteressados, - 'documento' => $metadadosDocumentos, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } -} diff --git a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php deleted file mode 100755 index f7b286f6b..000000000 --- a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php +++ /dev/null @@ -1,402 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteRecebimentoMultiplosComponentesDigitais extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoB['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoB['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, - self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - )); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - $documentoTeste1 = $this->gerarDadosDocumentoInternoTeste($remetente); - $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); - - $novosDocumentos = array($documentoTeste1, $documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - } - - /** - * Teste de recebimento documento avulso com 2 componentes digitais - * - * @return void - */ - public function test_recebimento_documento_avulso_com_2_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($remetente, array(self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B)); - $documentoTeste['INTERESSADOS'] = trim(substr($documentoTeste['INTERESSADOS'], 0, 50)); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoAvulsoTeste($documentoTeste); - $novoTramite = $this->enviarMetadadosDocumento(self::$servicoPEN, $remetente, $destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoDocumentoAvulso(self::$servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvioDocumentoAvulso(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php deleted file mode 100755 index ae5e514ac..000000000 --- a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php +++ /dev/null @@ -1,396 +0,0 @@ -<?php - -use \utilphp\util; - -class TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - public static $totalDocumentos; - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoA['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoA['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C - )); - - self::$totalDocumentos = array(self::$documentoZip); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem_1() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - $documentoTesteInterno = $this->gerarDadosDocumentoInternoTeste($remetente); - - putenv("DATABASE_HOST=org2-database"); - $novosDocumentos = array($documentoTesteInterno); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - /** - * - * @depends test_devolucao_processo_para_origem_1 - * - * @return void - */ - public function test_devolucao_processo_para_destino_2() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = array_slice(self::$contextoOrgaoB, 0); - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); - - putenv("DATABASE_HOST=org1-database"); - $novosDocumentos = array($documentoTesteExterno); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_sei4/integracao/Readme.md b/tests_sei4/integracao/Readme.md deleted file mode 100755 index 14acc24c1..000000000 --- a/tests_sei4/integracao/Readme.md +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------- -CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI ---------------------------------------------------- - -1 - Atualizar as Dependências do Projeto -Acessar o diretório do projeto sei-teste e atualizar as dependências do composer ->> composer install - -2 - Executar o Servidor de Teste Selenium -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38 lib/selenium-server-standalone-3.11.0.jar - -Windows: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38.exe lib/selenium-server-standalone-3.11.0.jar - - -4 - Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser acessada para configurar os seguintes parâmetros de teste que irão guiar diferentes cenários de teste do sistema: - -4.1 - Configurar todos os parâmetros do arquivo phpunit.xml para guiar o teste de acordo com a atual configuração do banco de dados. Os principais são os seguintes: - - * PHPUNIT_TESTS_URL - - * CONTEXTO_ORGAO_A - - * CONTEXTO_ORGAO_A_URL - - * CONTEXTO_ORGAO_A_SIGLA_ORGAO - - * CONTEXTO_ORGAO_A_REP_ESTRUTURAS - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE - - * CONTEXTO_ORGAO_A_NOME_UNIDADE - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA - - * CONTEXTO_ORGAO_A_USUARIO_LOGIN - - * CONTEXTO_ORGAO_A_USUARIO_SENHA - - * CONTEXTO_ORGAO_A_TIPO_PROCESSO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_CARGO_ASSINATURA - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO - - - - -3 - Executar o Teste Funcional Automatizado - -Linux: ->> ./vendor/bin/phpunit - -Windows: ->> .\vendor\bin\phpunit.bat - - diff --git a/tests_sei4/unitario/Readme.md b/tests_sei4/unitario/Readme.md deleted file mode 100755 index 14acc24c1..000000000 --- a/tests_sei4/unitario/Readme.md +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------- -CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI ---------------------------------------------------- - -1 - Atualizar as Dependências do Projeto -Acessar o diretório do projeto sei-teste e atualizar as dependências do composer ->> composer install - -2 - Executar o Servidor de Teste Selenium -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38 lib/selenium-server-standalone-3.11.0.jar - -Windows: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38.exe lib/selenium-server-standalone-3.11.0.jar - - -4 - Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser acessada para configurar os seguintes parâmetros de teste que irão guiar diferentes cenários de teste do sistema: - -4.1 - Configurar todos os parâmetros do arquivo phpunit.xml para guiar o teste de acordo com a atual configuração do banco de dados. Os principais são os seguintes: - - * PHPUNIT_TESTS_URL - - * CONTEXTO_ORGAO_A - - * CONTEXTO_ORGAO_A_URL - - * CONTEXTO_ORGAO_A_SIGLA_ORGAO - - * CONTEXTO_ORGAO_A_REP_ESTRUTURAS - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE - - * CONTEXTO_ORGAO_A_NOME_UNIDADE - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA - - * CONTEXTO_ORGAO_A_USUARIO_LOGIN - - * CONTEXTO_ORGAO_A_USUARIO_SENHA - - * CONTEXTO_ORGAO_A_TIPO_PROCESSO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_CARGO_ASSINATURA - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO - - - - -3 - Executar o Teste Funcional Automatizado - -Linux: ->> ./vendor/bin/phpunit - -Windows: ->> .\vendor\bin\phpunit.bat - - diff --git a/tests_sei4/unitario/assets/config/ConfiguracaoModPEN.php b/tests_sei4/unitario/assets/config/ConfiguracaoModPEN.php deleted file mode 100755 index fbbf00c0c..000000000 --- a/tests_sei4/unitario/assets/config/ConfiguracaoModPEN.php +++ /dev/null @@ -1,75 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => '/tmp/', - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => '123456', - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - "Gearman" => array( - "Servidor" => "", - "Porta" => "", //Padro: 4730 - ) - ) - ); - } -} diff --git a/tests_sei4/unitario/bootstrap.php b/tests_sei4/unitario/bootstrap.php deleted file mode 100755 index 69fdb7ba6..000000000 --- a/tests_sei4/unitario/bootstrap.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - -//require_once __DIR__ . '/vendor/autoload.php'; - -// define('DIR_SEI_WEB', realpath(DIR_SEI_CONFIG . '/../web')); - -// set_include_path('.:/php/includes:'.realpath(DIR_SEI_CONFIG . '/../../infra/infra_php')); -// require_once DIR_SEI_WEB . '/SEI.php'; -//require_once __DIR__ . '/assets/config/ConfiguracaoModPEN.php'; diff --git a/tests_sei4/unitario/composer.json b/tests_sei4/unitario/composer.json deleted file mode 100755 index 0db18d095..000000000 --- a/tests_sei4/unitario/composer.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "config": { - "platform": { - "php": "7.3.12" - } - }, - - "autoload-dev": { - "files": [ - "/opt/sei/web/SEI.php", - "/opt/sip/web/Sip.php" - ] - }, - - "include-path": [ - "/opt/infra/infra_php" - ], - - "require-dev": { - "phpunit/phpunit": "5.*" - } -} diff --git a/tests_sei4/unitario/composer.phar b/tests_sei4/unitario/composer.phar deleted file mode 100755 index 9c9f54ecd..000000000 Binary files a/tests_sei4/unitario/composer.phar and /dev/null differ diff --git a/tests_sei4/unitario/php.ini b/tests_sei4/unitario/php.ini deleted file mode 100755 index 99d148bf3..000000000 --- a/tests_sei4/unitario/php.ini +++ /dev/null @@ -1,20 +0,0 @@ -[php] -; Parâmetros recomendados no Manual de Instalação do SEI 3.0.0 -default_charset = "iso-8859-1" -session.gc_maxlifetime = 28800 -short_open_tag = On -default_socket_timeout = 60 -max_input_vars = 2000 -magic-quotes-gpc = 0 -magic_quotes_runtime = 0 -magic_quotes_sybase = 0 -post_max_size = 110M -upload_max_filesize = 100M - -; Parâmetros recomendados para ambiente de desenvolvimento -error_reporting = E_ALL -display_errors = On -display_startup_errors = On -track_errors = On -html_errors = On -always_populate_raw_post_data = -1 \ No newline at end of file diff --git a/tests_sei4/unitario/phpunit.xml b/tests_sei4/unitario/phpunit.xml deleted file mode 100755 index bd3fb6dac..000000000 --- a/tests_sei4/unitario/phpunit.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit bootstrap="bootstrap.php" colors="true" verbose="true"> - <php> - <!-- Localização do diretório onde está contido os arquivos de configuração do SEI --> - <const name="DIR_SEI_CONFIG" value="/opt/sei/config"/> - </php> -</phpunit> diff --git a/tests_sei4/unitario/rn/ProcessoEletronicoRNTest.php b/tests_sei4/unitario/rn/ProcessoEletronicoRNTest.php deleted file mode 100755 index dedc8dbe7..000000000 --- a/tests_sei4/unitario/rn/ProcessoEletronicoRNTest.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -use PHPUnit\Framework\TestCase; - -final class ProcessoEletronicoRNTest extends TestCase -{ - private $ProcessoEletronicoRN; - - public function setUp() - { - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); - } - - /** - * Testes do mtodo privado reduzirCampoTexto - * - * @return void - */ - public function testReduzirCampoTexto() - { - $numTamanhoMaximo = 53; - // Teste considerando uma palavra pequena ao final do texto - $strTexto = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee fffffffff ggggggggg hhhhhhhhh iiiiiiiii"; - $strResultadoEsperado = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas uma palavra - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com uma palavra grande ao final - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando texto longo e palavro curta ao finals - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto curto abaixo do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa a"; - $strResultadoEsperado = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - // Teste considerando um texto nulo - $strTexto = null; - $strResultadoEsperado = null; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com ultima palavra menor que a reticencias - $strTexto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniamr quis"; - $strResultadoEsperado = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniam ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - } - - public function testCompararVersoes(){ - $this->assertTrue(InfraUtil::compararVersoes("0.0.1", "<", "0.0.2")); - $this->assertTrue(InfraUtil::compararVersoes("0.1.0", "<", "0.2.0")); - $this->assertTrue(InfraUtil::compararVersoes("1.0.0", "<", "2.0.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "==", "4.0.3.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "<", "4.0.3.1")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.4", ">", "4.0.3.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3.0", "==", "4.0.3.5", 3, true)); - } -} diff --git a/tests_sei41/funcional/Readme.md b/tests_sei41/funcional/Readme.md deleted file mode 100755 index 801659725..000000000 --- a/tests_sei41/funcional/Readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI - - -## 1. Instalação dos pré-requisitos - -Todos os componentes abaixo precisam ser instalados antes de iniciar os testes automatizados. - -### 1.1 Instalação das extensões do PHP - -´´´bash -sudo apt install php-dom php-mbstring php-curl php-soap php-mysql - -´´´ - -### 1.2 Instalação do gerenciador de pacotes Composer - -´´´bash -php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer -´´´ - - -## 2. Atualização das dependências do projeto - -O mod-sei-pen utiliza o PHP Unit e outros utilitários de testes que possuem suas dependencias gerenciadas pelo Composer. Maiores informações sobre como instalar este gerenciados de pacotes para PHP podem ser encontradas em https://getcomposer.org/. -Acesse o diretório do projeto ```tests/``` e execute o comando abaixo para atualizar as depedências do projeto. - -```bash -$ composer install -``` - -## 3. Execução do servidor de teste selenium - -Para que os testes possam simular a interação com um navegador web, é utilizado a ferramenta Selenium (selenium-webdriver). Portanto, será necessário ativar o servidor do Selenium antes de iniciar, indicando qual o driver correto para o navegador a ser utilizado nos testes. - -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: -``` bash -java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-<VERSAO DO DRIVER> lib/selenium-server-standalone-3.11.0.jar -``` - -## 4. Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser revisada para verificar se os parâmetros estão devidamente configurados para a cenário de teste que irá ser executado. A Configuração aplicada encontra-se definida no arquivo **phpunit.xml**. - - -### 5. Execução dos testes funcionais automatizados - -```bash -$ ./vendor/bin/phpunit --testsuite funcional -``` - diff --git a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno.txt b/tests_sei41/funcional/assets/arquivos/arquivo_pequeno.txt deleted file mode 100755 index 376b92666..000000000 --- a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno.txt +++ /dev/null @@ -1 +0,0 @@ -arquivo pequeno diff --git a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_A.pdf b/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_A.pdf deleted file mode 100755 index 2f19792f9..000000000 Binary files a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_A.pdf and /dev/null differ diff --git a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_B.pdf b/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_B.pdf deleted file mode 100755 index 1d1d62b35..000000000 Binary files a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_B.pdf and /dev/null differ diff --git a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_C.pdf b/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_C.pdf deleted file mode 100755 index 01bc7f65c..000000000 Binary files a/tests_sei41/funcional/assets/arquivos/arquivo_pequeno_C.pdf and /dev/null differ diff --git a/tests_sei41/funcional/assets/arquivos/test_files_index.txt b/tests_sei41/funcional/assets/arquivos/test_files_index.txt deleted file mode 100755 index 049632cb7..000000000 --- a/tests_sei41/funcional/assets/arquivos/test_files_index.txt +++ /dev/null @@ -1,10 +0,0 @@ -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno.txt -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_A.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_B.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_C.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_001.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_003.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_020.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_060.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_corrompimento_besimplesoap.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_extensao_nao_permitida.docx diff --git a/tests_sei41/funcional/assets/config/ConfiguracaoModPEN.exemplo.php b/tests_sei41/funcional/assets/config/ConfiguracaoModPEN.exemplo.php deleted file mode 100644 index 8934a1108..000000000 --- a/tests_sei41/funcional/assets/config/ConfiguracaoModPEN.exemplo.php +++ /dev/null @@ -1,99 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => getenv('CERTIFICADO'), - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => getenv('CERTIFICADO_SENHA'), - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - // "Gearman" => array( - // "Servidor" => "", - // "Porta" => "", //Padro: 4730 - // ) - - "ControleURL" => array( - "atual"=>"servidor.gov.br", - "antigos"=>array( - "[servidor_php]", - "[servidor_php2]", - ) - ), - - // Configurao padro do Envio Parcial - "EnviarApenasComponentesDigitaisPendentes" => false - // "EnviarApenasComponentesDigitaisPendentes" => array( - // "1" => array( // 1 = Poder Executivo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ), - // "21" => array( // 2 = Poder Legislativo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ) - // ) - - ) - ); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/assets/config/ConfiguracaoSip.php b/tests_sei41/funcional/assets/config/ConfiguracaoSip.php deleted file mode 100755 index 6c5fd18fe..000000000 --- a/tests_sei41/funcional/assets/config/ConfiguracaoSip.php +++ /dev/null @@ -1,110 +0,0 @@ -<? - -class ConfiguracaoSip extends InfraConfiguracao { - - private static $instance = null; - - public static function getInstance(){ - if (ConfiguracaoSip::$instance == null) { - ConfiguracaoSip::$instance = new ConfiguracaoSip(); - } - return ConfiguracaoSip::$instance; - } - - public function getArrConfiguracoes(){ - return array( - 'Sip' => array( - 'URL' => getenv('HOST_URL').'/sip', - 'Producao' => false, - 'NumLoginSemCaptcha' => 3, - 'TempoLimiteValidacaoLogin' => 60, - 'Modulos' => array( - //'ABCExemploIntegracao' => 'abc/exemplo', - ), - ), - - 'PaginaSip' => array( - 'NomeSistema' => 'SIP', - 'NomeSistemaComplemento' => '', - ), - - 'SessaoSip' => array( - 'SiglaOrgaoSistema' => 'ABC', - 'SiglaSistema' => 'SIP', - 'PaginaLogin' => getenv('SEI_HOST_URL') . '/sip/login.php', - 'SipWsdl' => getenv('HOST_URL') . '/sip/controlador_ws.php?servico=sip', - 'ChaveAcesso' => getenv('SIP_CHAVE_ACESSO'), //ATENO: gerar uma nova chave para o SIP aps a instalao (ver documento de instalao) - 'https' => false, - ), - - 'BancoSip' => array( - 'Servidor' => getenv('DATABASE_HOST'), - 'Porta' => getenv('DATABASE_PORT'), - 'Banco' => getenv('SIP_DATABASE_NAME'), - 'Usuario' => getenv('SIP_DATABASE_USER'), - 'Senha' => getenv('SIP_DATABASE_PASSWORD'), - 'UsuarioScript' => getenv('SIP_DATABASE_USER_SCRIPT'), - 'SenhaScript' => getenv('SIP_DATABASE_PASSWORD_SCRIPT'), - 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle - 'PesquisaCaseInsensitive' => false, - ), - -// 'BancoAuditoriaSip' => array( -// 'Servidor' => getenv('DATABASE_HOST'), -// 'Porta' => getenv('DATABASE_PORT'), -// 'Banco' => getenv('SIP_DATABASE_NAME'), -// 'Usuario' => getenv('SIP_DATABASE_USER'), -// 'Senha' => getenv('SIP_DATABASE_PASSWORD'), -// 'UsuarioScript' => getenv('SIP_DATABASE_USER_SCRIPT'), -// 'SenhaScript' => getenv('SIP_DATABASE_PASSWORD_SCRIPT'), -// 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle -// 'PesquisaCaseInsensitive' => false, -// ), - - 'CacheSip' => array( - 'Servidor' => 'memcached', - 'Porta' => '11211', - 'Timeout' => 2, - 'Tempo' => 3600, - ), - -// 'HostWebService' => array( -// 'Replicacao' => array('*'), //endereo ou IP da mquina que implementa o servio de replicao de usurio -// 'Pesquisa' => array('*'), //endereos/IPs das mquinas do SEI -// 'Autenticacao' => array('*') //endereos/IPs das mquinas do SEI -// ), - - 'InfraMail' => array( - 'Tipo' => '1', //1 = sendmail (neste caso n?o ? necess?rio configurar os atributos abaixo), 2 = SMTP - 'Servidor' => 'smtp', - 'Porta' => '1025', - 'Codificacao' => '8bit', //8bit, 7bit, binary, base64, quoted-printable - 'Autenticar' => false, //se true ent?o informar Usuario e Senha - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => '', //TLS, SSL ou vazio - 'MaxDestinatarios' => 25, //numero maximo de destinatarios por mensagem - 'MaxTamAnexosMb' => 15, //tamanho maximo dos anexos em Mb por mensagem - 'Protegido' => '', //campo usado em desenvolvimento, se tiver um email preenchido ento todos os emails enviados tero o destinatario ignorado e substitudo por este valor (evita envio incorreto de email) - /* Abaixo chave opcional desativada com exemplo de preenchimento - 'Dominios' => array( // Opcional. Permite especificar o conjunto de atributos acima individualmente para cada domnio de conta remetente. Se n?o existir um dom?nio mapeado ento utilizar os atributos gerais da chave InfraMail. - 'abc.jus.br' => array( - 'Tipo' => '2', - 'Servidor' => '10.1.3.12', - 'Porta' => '25', - 'Codificacao' => '8bit', - 'Autenticar' => false, - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => 'TLS', - 'MaxDestinatarios' => 25, - 'MaxTamAnexosMb' => 15, - 'Protegido' => '', - ), - ), - */ - ), - ); - } -} -?> \ No newline at end of file diff --git a/tests_sei41/funcional/assets/config/lauch.json.example b/tests_sei41/funcional/assets/config/lauch.json.example deleted file mode 100755 index d4b991e62..000000000 --- a/tests_sei41/funcional/assets/config/lauch.json.example +++ /dev/null @@ -1,38 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - - "version": "0.2.0", - "configurations": [ - { - "name": "SEI4", - "type": "php", - "request": "launch", - "internalConsoleOptions":"neverOpen", - "port": 9000, - "stopOnEntry": false, - "pathMappings": { - "${workspaceFolder}":"${workspaceFolder}", - "/opt/sei/scripts/mod-pen":"${workspaceRoot}/mod-sei-pen/src/scripts", - "/opt/sei/web/modulos/pen":"${workspaceRoot}/mod-sei-pen/src", - "/tests":"${workspaceRoot}/mod-sei-pen/tests/funcional", - "/opt":"${workspaceRoot}/sei4/", - } - }, - { - "name": "SEI3", - "type": "php", - "request": "launch", - "internalConsoleOptions":"neverOpen", - "port": 9000, - "stopOnEntry": true, - "pathMappings": { - "${workspaceFolder}":"${workspaceFolder}", - "/opt/sei/scripts/mod-pen":"${workspaceRoot}/mod-sei-pen/src/scripts", - "/opt/sei/web/modulos/pen":"${workspaceRoot}/mod-sei-pen/src", - "/opt":"${workspaceRoot}/sei/", - } - }, - ] -} \ No newline at end of file diff --git a/tests_sei41/funcional/assets/config/supervisor.ini b/tests_sei41/funcional/assets/config/supervisor.ini deleted file mode 100755 index 5515e0aa6..000000000 --- a/tests_sei41/funcional/assets/config/supervisor.ini +++ /dev/null @@ -1,55 +0,0 @@ - -[program:processamento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/ProcessamentoTarefasPEN.php --worker=%(process_num)02d -directory=/opt/sei/web -process_name=%(program_name)s_%(process_num)02d -numprocs=4 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_backups=50 -logfile_maxbytes=10MB -logfile=/var/log/supervisor/sei_processar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_processar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_processar_pendencias.log-err -stderr_events_enabled=true - -[program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php --monitorar --segundo-plano -directory=/opt/sei/web -numprocs=1 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_maxbytes=10MB -logfile_backups=50 -logfile=/var/log/supervisor/sei_monitorar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err -stderr_events_enabled=true - -[program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php --monitorar --segundo-plano -directory=/opt/sei/web -numprocs=1 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_maxbytes=10MB -logfile_backups=50 -logfile=/var/log/supervisor/sei_monitorar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err -stderr_events_enabled=true diff --git a/tests_sei41/funcional/assets/config/xdebug.ini b/tests_sei41/funcional/assets/config/xdebug.ini deleted file mode 100755 index 7df340727..000000000 --- a/tests_sei41/funcional/assets/config/xdebug.ini +++ /dev/null @@ -1,14 +0,0 @@ -; Enable xdebug extension module -zend_extension=/usr/lib64/php/modules/xdebug.so - -;xdebug.remote_enable=1 -xdebug.mode=debug - -;xdebug.remote_host=localhost -xdebug.client_host=#HOSTIP -xdebug.client_port=9000 -xdebug.remote_handler=dbgp -xdebug.discover_client_host=1 - -xdebug.idekey=default - diff --git a/tests_sei41/funcional/assets/cron.d/sei b/tests_sei41/funcional/assets/cron.d/sei deleted file mode 100644 index a91d94293..000000000 --- a/tests_sei41/funcional/assets/cron.d/sei +++ /dev/null @@ -1,3 +0,0 @@ -SHELL=/bin/bash - -* * * * * root . /root/crond_env.sh; /usr/bin/php -c /etc/php.ini /opt/sei/scripts/AgendamentoTarefaSEI.php 2>&1 >> /var/log/sei/agendamento_sei.log diff --git a/tests_sei41/funcional/assets/cron.d/sip b/tests_sei41/funcional/assets/cron.d/sip deleted file mode 100644 index d6f873ea5..000000000 --- a/tests_sei41/funcional/assets/cron.d/sip +++ /dev/null @@ -1,5 +0,0 @@ - -SHELL=/bin/bash - -* * * * * root . /root/crond_env.sh; /usr/bin/php -c /etc/php.ini /opt/sip/scripts/AgendamentoTarefaSip.php 2>&1 >> /var/log/sip/agendamento_sip.log -00 01 * * * root rm -rf /opt/sip/temp/* diff --git a/tests_sei41/funcional/assets/proxy/org1.localhost.conf b/tests_sei41/funcional/assets/proxy/org1.localhost.conf deleted file mode 100755 index 1f70e98e9..000000000 --- a/tests_sei41/funcional/assets/proxy/org1.localhost.conf +++ /dev/null @@ -1,8 +0,0 @@ -Listen 8000 -<VirtualHost *:8000> - ServerName org1-http - - ProxyPass "/" "http://org1-http:8000/" - ProxyPassReverse "/" "http://org1-http:8000/" - -</VirtualHost> \ No newline at end of file diff --git a/tests_sei41/funcional/assets/proxy/org2.localhost.conf b/tests_sei41/funcional/assets/proxy/org2.localhost.conf deleted file mode 100755 index bcbd1e0b9..000000000 --- a/tests_sei41/funcional/assets/proxy/org2.localhost.conf +++ /dev/null @@ -1,8 +0,0 @@ -Listen 8000 -<VirtualHost *:8000> - ServerName org2-http - - ProxyPass "/" "http://org2-http:8000/" - ProxyPassReverse "/" "http://org2-http:8000/" - -</VirtualHost> \ No newline at end of file diff --git a/tests_sei41/funcional/composer.phar b/tests_sei41/funcional/composer.phar deleted file mode 100755 index 9c9f54ecd..000000000 Binary files a/tests_sei41/funcional/composer.phar and /dev/null differ diff --git a/tests_sei41/funcional/docker-compose.yml b/tests_sei41/funcional/docker-compose.yml deleted file mode 100755 index bdd44ccb9..000000000 --- a/tests_sei41/funcional/docker-compose.yml +++ /dev/null @@ -1,236 +0,0 @@ -version: '2' - -services: - - ### CONTAINERS COMPARTILHADOS ENTRE OS AMBIENTES DE TESTE ### - smtp: - image: processoeletronico/vagrant_sei4_mailcatcher:${ENVIRONMENT_VERSION} - ports: - - "1080:1080" - - org1-memcached: - image: processoeletronico/vagrant_sei4_memcached:${ENVIRONMENT_VERSION} - ports: - - "11211" - - org2-memcached: - image: processoeletronico/vagrant_sei4_memcached:${ENVIRONMENT_VERSION} - ports: - - "11211" - - proxy: - image: diouxx/apache-proxy - ports: - - "8000:8000" - volumes: - - ./assets/proxy/:/opt/proxy-conf - links: - - org1-http:org1-http - - org2-http:org2-http - - selenium: - image: selenium/standalone-chrome-debug - links: - - proxy:org1-http - - proxy:org2-http - ports: - - "4444:4444" - - "5900:5900" - volumes: - - /dev/shm:/dev/shm - - ./assets/arquivos/test_files_index.txt:/test_files_index.txt - - /tmp:/tmp - - php-test-functional: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} - depends_on: - - org1-database - - org2-database - - selenium - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - .:/tests - - ${SEI_PATH}/../tests:/tests/sei - - ${SEI_PATH}/../src:/tests/sei/src - - ./src/fixtures:/tests/sei/modpen/fixtures - - ../../src/dto:/tests/sei/modpen/dto - - ../../src/bd:/tests/sei/modpen/bd - - ./assets/config:/opt/sei/config/mod-pen - - /tmp:/tmp - - /tmp/sei_arquivos_1:/var/sei/arquivos/${ORG1_DATABASE_HOST} - - /tmp/sei_arquivos_2:/var/sei/arquivos/${ORG2_DATABASE_HOST} - - ./assets/config/ConfiguracaoSEI.php:/tests/sei/src/sei/config/ConfiguracaoSEI.php:ro - - ../../src:/tests/sei/src/sei/web/modulos/pen - - ./assets/config:/tests/sei/src/sei/config/mod-pen - environment: - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - ORG1_CERTIFICADO=${ORG1_CERTIFICADO} - - ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - ORG2_CERTIFICADO=${ORG2_CERTIFICADO} - - ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - - DATABASE_IMAGE=${ORG1_DATABASE_IMAGE} - - DATABASE_TYPE=${ORG1_DATABASE_TYPE} - - DATABASE_HOST=${ORG1_DATABASE_HOST} - - DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT} - - SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org1-database:${ORG1_DATABASE_HOST} - - org2-database:${ORG2_DATABASE_HOST} - - selenium:selenium - command: "true" - - php-test-unit: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/config:/opt/sei/config/mod-pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - ../unitario:/tests - - ../../src:/opt/sei/web/modulos/pen - environment: - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - ORG1_CERTIFICADO=${ORG1_CERTIFICADO} - - ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - ORG2_CERTIFICADO=${ORG2_CERTIFICADO} - - ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - extra_hosts: - - "host.docker.internal:host-gateway" - command: "true" - - ### CONTAINERS DO AMBIENTE DO ÓRGÃO 1 ### - - org1-database: - image: ${ORG1_DATABASE_IMAGE}:${ENVIRONMENT_VERSION} - restart: always - environment: - MYSQL_ROOT_PASSWORD: P@ssword - ports: - - "${ORG1_DATABASE_HOST_PORT}:${ORG1_DATABASE_GUEST_PORT}" - - org1-http: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} - restart: always - depends_on: - - org1-database - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/cron.d:/etc/cron.d - - ./assets/config:/opt/sei/config/mod-pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - ../../src/scripts:/opt/sei/scripts/mod-pen - - ../../src/scripts:/opt/sip/scripts/mod-pen - - ../../src/bin:/opt/sei/bin/mod-pen - - ../../src:/opt/sei/web/modulos/pen - - /tmp/sei_arquivos_1:/var/sei/arquivos - environment: - - LANG=pt_BR.ISO-8859-1 - - HOST_URL=http://${ORG1_HOSTNAME}:${ORG1_PORT} - - CERTIFICADO=${ORG1_CERTIFICADO} - - CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - APP_SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - - APP_SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - - DATABASE_TYPE=${ORG1_DATABASE_TYPE} - - DATABASE_HOST=${ORG1_DATABASE_HOST} - - DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT} - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org1-memcached:memcached - - smtp:smtp - - org1-database:${ORG1_DATABASE_HOST} - - ### CONTAINERS DO AMBIENTE DO ÓRGÃO 2 ### - - org2-database: - image: ${ORG2_DATABASE_IMAGE}:${ENVIRONMENT_VERSION} - restart: always - environment: - MYSQL_ROOT_PASSWORD: P@ssword - ports: - - "${ORG2_DATABASE_HOST_PORT}:${ORG2_DATABASE_GUEST_PORT}" - - org2-http: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} - restart: always - depends_on: - - org2-database - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/cron.d:/etc/cron.d - - ./assets/config:/opt/sei/config/mod-pen - - ../../src/scripts:/opt/sei/scripts/mod-pen - - ../../src/scripts:/opt/sip/scripts/mod-pen - - ../../src/bin:/opt/sei/bin/mod-pen - - ../../src:/opt/sei/web/modulos/pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - /tmp/sei_arquivos_2:/var/sei/arquivos - environment: - - LANG=pt_BR.ISO-8859-1 - - HOST_URL=http://${ORG2_HOSTNAME}:${ORG2_PORT} - - CERTIFICADO=${ORG2_CERTIFICADO} - - CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - APP_SIP_CHAVE_ACESSO=${ORG2_APP_SIP_CHAVE_ACESSO} - - APP_SEI_CHAVE_ACESSO=${ORG2_APP_SEI_CHAVE_ACESSO} - - DATABASE_TYPE=${ORG2_DATABASE_TYPE} - - DATABASE_HOST=${ORG2_DATABASE_HOST} - - DATABASE_PORT=${ORG2_DATABASE_GUEST_PORT} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_CHAVE_ACESSO=${ORG2_APP_SEI_CHAVE_ACESSO} - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - SIP_CHAVE_ACESSO=${ORG2_APP_SIP_CHAVE_ACESSO} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org2-memcached:memcached - - smtp:smtp - - org2-database:${ORG2_DATABASE_HOST} \ No newline at end of file diff --git a/tests_sei41/funcional/env_oracle b/tests_sei41/funcional/env_oracle deleted file mode 100755 index d56a9a980..000000000 --- a/tests_sei41/funcional/env_oracle +++ /dev/null @@ -1,59 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip -SIP_DATABASE_PASSWORD=sip_user - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados ORACLE do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_oracle -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=Oracle -ORG1_DATABASE_GUEST_PORT=1521 -ORG1_DATABASE_HOST_PORT=15211 -ORG1_DATABASE_DATA_DIR=/opt/oracle/oradata -CONTEXTO_ORGAO_A_DB_SEI_DSN="oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=org1-database)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))" - - - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados ORACLE do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_oracle -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=Oracle -ORG2_DATABASE_GUEST_PORT=1521 -ORG2_DATABASE_HOST_PORT=15212 -ORG2_DATABASE_DATA_DIR=/opt/oracle/oradata -CONTEXTO_ORGAO_B_DB_SEI_DSN="oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=org2-database)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))" - - - - diff --git a/tests_sei41/funcional/env_sqlserver b/tests_sei41/funcional/env_sqlserver deleted file mode 100755 index 7da50a36a..000000000 --- a/tests_sei41/funcional/env_sqlserver +++ /dev/null @@ -1,58 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados SQL SERVER do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_sqlserver -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=SqlServer -ORG1_DATABASE_GUEST_PORT=1433 -ORG1_DATABASE_HOST_PORT=14331 -ORG1_DATABASE_DATA_DIR=/var/opt/mssql -CONTEXTO_ORGAO_A_DB_SEI_DSN="sqlsrv:server=org1-database,1433; Database=sei" - - - - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados SQL SERVER do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_sqlserver -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=SqlServer -ORG2_DATABASE_GUEST_PORT=1433 -ORG2_DATABASE_HOST_PORT=14332 -ORG2_DATABASE_DATA_DIR=/var/opt/mssql -CONTEXTO_ORGAO_B_DB_SEI_DSN="sqlsrv:server=org2-database,1433; Database=sei" - - - diff --git a/tests_sei41/funcional/lib/drivers/chromedriver b/tests_sei41/funcional/lib/drivers/chromedriver deleted file mode 100755 index 7d7041d4b..000000000 Binary files a/tests_sei41/funcional/lib/drivers/chromedriver and /dev/null differ diff --git a/tests_sei41/funcional/phpunit.xml b/tests_sei41/funcional/phpunit.xml deleted file mode 100755 index 20f52b05f..000000000 --- a/tests_sei41/funcional/phpunit.xml +++ /dev/null @@ -1,151 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit - bootstrap="bootstrap.php" - backupGlobals="true" - colors="true" - verbose="true" - cacheResult="false" - stopOnError="false" - stopOnFailure="false" -> - <php> - <const name="PHPUNIT_HOST" value="selenium" /> - <const name="PHPUNIT_PORT" value="4444" /> - <const name="PHPUNIT_BROWSER" value="chrome" /> - <const name="PHPUNIT_TESTS_URL" value="http://localhost/sei" /> - <const name="PEN_ENDERECO_WEBSERVICE" - value="https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/?wsdl" /> - - <!-- Chaves de configurações gerais do teste do Barramento de Serviços do PEN --> - <const name="PEN_WAIT_TIMEOUT" value="360000" /> - <const name="PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES" value="7200000" /> - <const name="PEN_WAIT_TIMEOUT_PROCESSAMENTO_EM_LOTE" value="10800000" /> - <const name="PEN_SCRIPT_MONITORAMENTO_ORG1" value=" " /> - <const name="PEN_SCRIPT_MONITORAMENTO_ORG2" value=" " /> - <const name="ENVIO_PARCIAL" value="true" /> - - <!-- Chaves de configuração dos diferentes ambientes envolvidos no teste do Barramento de - Serviços do PEN --> - <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 1 --> - <const name="CONTEXTO_ORGAO_A" value="CONTEXTO_ORGAO_A" /> - <const name="CONTEXTO_ORGAO_A_URL" value="http://org1-http:8000/sei" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_A_NUMERO_SEI" value="951" /> - <const name="CONTEXTO_ORGAO_A_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_A_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_A_ID_ESTRUTURA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA" - value="INFORME_A_SIGLA_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_A_NOME_UNIDADE" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA" value="TESTE_1_1" /> - <const name="CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> - <const name="CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_A_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_A_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_A_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO" value="Voto" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_A_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_INATIVA" - value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_SIGILOSO" - value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> - - <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 2 --> - <const name="CONTEXTO_ORGAO_B" value="CONTEXTO_ORGAO_B" /> - <const name="CONTEXTO_ORGAO_B_URL" value="http://org2-http:8000/sei" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_B_NUMERO_SEI" value="159" /> - <const name="CONTEXTO_ORGAO_B_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_B_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_B_ID_ESTRUTURA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_2" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA" - value="INFORME_A_SIGLA_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG2" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_B_NOME_UNIDADE" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG2" /> - <const name="CONTEXTO_ORGAO_B_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_B_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA" value="XXXXXXXXXXXXXX" /> - <const name="CONTEXTO_ORGAO_B_NOME_UNIDADE_SECUNDARIA" value="XXXXXXXXXXXXXX" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_B_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_B_TIPO_DOCUMENTO_NAO_MAPEADO" value="Nota" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_INATIVA" - value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_SIGILOSO" - value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> - <const name="CONTEXTO_ORGAO_B_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - - - <!-- CONFIGURAÇÕES DE TESTE Órgão 3, caso de sem hierarquia pai --> - <const name="CONTEXTO_ORGAO_C" value="CONTEXTO_ORGAO_C" /> - <const name="CONTEXTO_ORGAO_C_URL" value="http://xxxxx/sei" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_C_NUMERO_SEI" value="159" /> - <const name="CONTEXTO_ORGAO_C_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_C_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_C_ID_ESTRUTURA" value="121390" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE" value="SEGES TESTE SEM PAI" /> - <const name="CONTEXTO_ORGAO_C_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_C_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_C_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_C_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_C_TIPO_DOCUMENTO_NAO_MAPEADO" value="Nota" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_C_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - </php> - - <testsuites> - <testsuite name="funcional"> - <directory>tests</directory> - </testsuite> - <testsuite name="falsos_positivos"> - <directory>tests_funcional_falsos_positivos_temp</directory> - </testsuite> - <!-- novasuiteaqui --> - </testsuites> - -</phpunit> \ No newline at end of file diff --git a/tests_sei41/funcional/src/fixtures/BlocoDeTramiteFixture.php b/tests_sei41/funcional/src/fixtures/BlocoDeTramiteFixture.php deleted file mode 100644 index 4b37d6633..000000000 --- a/tests_sei41/funcional/src/fixtures/BlocoDeTramiteFixture.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php - -use InfraData; - -class BlocoDeTramiteFixture extends \FixtureBase -{ - protected $objBlocoDeTramiteDTO; - - const TRATAMENTO = 'Presidente, Substituto'; - const ID_TARJA_ASSINATURA = 2; - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - protected function cadastrar($dados = []) - { - $objBlocoDeTramiteDTO = new \TramiteEmBlocoDTO(); - - $ordem = $this->pegarProximaOrdem($dados['IdUnidade'] ?: 110000001); - - $objBlocoDeTramiteDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objBlocoDeTramiteDTO->setNumIdUsuario($dados['IdUsuario'] ?: 100000001); - $objBlocoDeTramiteDTO->setStrDescricao($dados['Descricao'] ?: 'Bloco para envio'); - $objBlocoDeTramiteDTO->setStrIdxBloco($dados['IdxBloco'] ?: 'Bloco para envio'); - $objBlocoDeTramiteDTO->setStrStaTipo($dados['IdxBloco'] ?: 'I'); - $objBlocoDeTramiteDTO->setStrStaEstado($dados['IdxBloco'] ?: 'A'); - $objBlocoDeTramiteDTO->setNumOrdem($ordem); - - $objBlocoDeTramiteDB = new \TramiteEmBlocoBD($this->inicializarObjInfraIBanco()); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteDB->cadastrar($objBlocoDeTramiteDTO); - - $objUnidadeDTO = $this->consultarUnidadeRelacionada($objBlocoDeTramiteDTO); - $objBlocoDeTramiteDTO->setStrSiglaUnidade($objUnidadeDTO->getStrSigla()); - - return $objBlocoDeTramiteDTO; - } - - protected function consultarUnidadeRelacionada(TramiteEmBlocoDTO $objBlocoDeTramiteDB) - { - $objUnidadeDTO = new \UnidadeDTO(); - $objUnidadeDTO->setNumIdUnidade($objBlocoDeTramiteDB->getNumIdUnidade()); - $objUnidadeDTO->retTodos(); - - $objUnidadeBD = new \UnidadeBD($this->inicializarObjInfraIBanco()); - return $objUnidadeBD->consultar($objUnidadeDTO); - } - - public function excluir($id) - { - $dto = new \TramiteEmBlocoDTO(); - $dto->setNumId($id); - $dto->retNumId(); - - $objBD = new \TramiteEmBlocoBD($this->inicializarObjInfraIBanco()); - $objBD->excluir($dto); - } - - private function pegarProximaOrdem($unidade) - { - $tramiteEmBlocoDTO = new \TramiteEmBlocoDTO(); - $tramiteEmBlocoDTO->setNumIdUnidade($unidade); - $tramiteEmBlocoDTO->setOrdNumOrdem(\InfraDTO::$TIPO_ORDENACAO_DESC); - $tramiteEmBlocoDTO->retNumOrdem(); - $tramiteEmBlocoDTO->setNumMaxRegistrosRetorno(1); - - $objBD = new \TramiteEmBlocoBD($this->inicializarObjInfraIBanco()); - $tramiteEmBlocoDTO = $objBD->consultar($tramiteEmBlocoDTO); - - if ($tramiteEmBlocoDTO == null) { - $ordem = 1; - } else { - $ordem = $tramiteEmBlocoDTO->getNumOrdem() + 1; - } - - return $ordem; - } -} diff --git a/tests_sei41/funcional/src/fixtures/FixtureBase.php b/tests_sei41/funcional/src/fixtures/FixtureBase.php deleted file mode 100644 index 7a0811c2b..000000000 --- a/tests_sei41/funcional/src/fixtures/FixtureBase.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -abstract class FixtureBase extends \InfraRN -{ - abstract protected function cadastrar($dados); - - protected function cadastrarInternoControlado($parametros){ - $dto = $this->cadastrar($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function carregar($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->cadastrarInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } - - public function carregarVarios($dados = null, $quantidade = 1){ - $resultado = []; - for ($i=0; $i < $quantidade; $i++) { - $resultado[] = $this->carregar($dados); - } - - return $resultado; - } - - public function carregarVariados($dados){ - $resultado = []; - foreach ($dados as $dado) { - $resultado[] = $this->carregar($dado); - } - - return $resultado; - } - - protected function listarInternoControlado($parametros){ - $dto = $this->listar($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function buscar($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->listarInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } - - protected function removerInternoControlado($parametros){ - $dto = $this->excluir($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function remover($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->removerInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } - - public function atualizarInternoControlado($parametros){ - $dto = $this->alterar($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function atualizar($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->atualizarInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } -} diff --git a/tests_sei41/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php b/tests_sei41/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php deleted file mode 100644 index 0eb1436c5..000000000 --- a/tests_sei41/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -class ImportacaoTiposProcessoFixture extends \FixtureBase -{ - protected $objPenMapTipoProcedimentoDTO; - protected $dthRegistro; - - public function __construct() - { - $this->objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $this->dthRegistro = \InfraData::getStrDataAtual(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenMapTipoProcedimentoDTO = $this->consultar($dados); - if ($objPenMapTipoProcedimentoDTO) { - return $objPenMapTipoProcedimentoDTO; - } - - $this->objPenMapTipoProcedimentoDTO->setNumIdMapOrgao($dados['IdMapeamento']); - $this->objPenMapTipoProcedimentoDTO->setNumIdTipoProcessoOrigem($dados['IdProcedimento']); - $this->objPenMapTipoProcedimentoDTO->setStrNomeTipoProcesso($dados['NomeProcedimento']); - $this->objPenMapTipoProcedimentoDTO->setNumIdUnidade(($dados['IdUnidade'] ?: 110000001)); - $this->objPenMapTipoProcedimentoDTO->setStrAtivo(($dados['SinAtivo'] ?: 'S')); - $this->objPenMapTipoProcedimentoDTO->setDthRegistro(\InfraData::getStrDataAtual()); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->cadastrar($this->objPenMapTipoProcedimentoDTO); - } - - public function consultar($dados = []) - { - $objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $objPenMapTipoProcedimentoDTO->setNumIdMapOrgao($dados['IdMapeamento']); - $objPenMapTipoProcedimentoDTO->setNumIdTipoProcessoOrigem($dados['IdProcedimento']); - $objPenMapTipoProcedimentoDTO->setNumIdUnidade(($dados['IdUnidade'] ?: 110000001)); - $objPenMapTipoProcedimentoDTO->setStrAtivo(($dados['SinAtivo'] ?: 'S')); - $objPenMapTipoProcedimentoDTO->retTodos(); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->consultar($objPenMapTipoProcedimentoDTO); - } - - public function listar($dados = []) - { - $objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $objPenMapTipoProcedimentoDTO->setNumIdMapOrgao($dados['IdMapeamento']); - if ($dados['IdProcedimento']) { - $objPenMapTipoProcedimentoDTO->setNumIdTipoProcessoOrigem($dados['IdProcedimento']); - } - if ($dados['IdUnidade']) { - $objPenMapTipoProcedimentoDTO->setNumIdUnidade($dados['IdUnidade']); - - } - if ($dados['SinAtivo']) { - $objPenMapTipoProcedimentoDTO->setStrAtivo($dados['SinAtivo']); - } - $objPenMapTipoProcedimentoDTO->retTodos(); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->listar($objPenMapTipoProcedimentoDTO); - } - - public function excluir($dados = []) - { - $objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $objPenMapTipoProcedimentoDTO->setDblId($dados['Id']); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->excluir($objPenMapTipoProcedimentoDTO); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/src/fixtures/PenMapEnvioParcialFixture.php b/tests_sei41/funcional/src/fixtures/PenMapEnvioParcialFixture.php deleted file mode 100644 index 0e6172cf3..000000000 --- a/tests_sei41/funcional/src/fixtures/PenMapEnvioParcialFixture.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -use InfraData; - -class PenMapEnvioParcialFixture extends \FixtureBase -{ - protected $objMapEnvioParcialDTO; - - public function __construct() - { - $this->objMapEnvioParcialDTO = new \PenRestricaoEnvioComponentesDigitaisDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - protected function cadastrar($dados = []) - { - $objMapEnvioParcialDTO = $this->consultar($dados); - if ($objMapEnvioParcialDTO) { - return $objMapEnvioParcialDTO; - } - - $this->objMapEnvioParcialDTO->setNumIdEstrutura($dados['IdEstrutura'] ?: 5); - $this->objMapEnvioParcialDTO->setStrStrEstrutura($dados['StrEstrutura'] ?: 'RE CGPRO'); - $this->objMapEnvioParcialDTO->setNumIdUnidadePen($dados['IdUnidadePen']); - $this->objMapEnvioParcialDTO->setStrStrUnidadePen($dados['StrUnidadePen']); - - $objMapEnvioParcialDB = new \PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - $objMapEnvioParcialDB->cadastrar($this->objMapEnvioParcialDTO); - - return $this->objMapEnvioParcialDTO; - } - - public function consultar($dados = []) - { - $objMapEnvioParcialDTO = new \PenRestricaoEnvioComponentesDigitaisDTO(); - $objMapEnvioParcialDTO->setNumIdEstrutura($dados['IdEstrutura'] ?: 5); - $objMapEnvioParcialDTO->setStrStrEstrutura($dados['StrEstrutura'] ?: 'RE CGPRO'); - $objMapEnvioParcialDTO->setNumIdUnidadePen($dados['IdUnidadePen']); - $objMapEnvioParcialDTO->setStrStrUnidadePen($dados['StrUnidadePen']); - $objMapEnvioParcialDTO->retTodos(); - - $objMapEnvioParcialDB = new \PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - return $objMapEnvioParcialDB->consultar($objMapEnvioParcialDTO); - } - - public function excluir($dados = []) - { - $this->$objMapEnvioParcialDTO = new \PenRestricaoEnvioComponentesDigitaisDTO(); - $this->$objMapEnvioParcialDTO->setDblId($dados['Id']); - - $objMapEnvioParcialDB = new \PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - $objMapEnvioParcialDB->excluir($this->$objMapEnvioParcialDTO); - } -} diff --git a/tests_sei41/funcional/src/fixtures/PenMapUnidadesFixture.php b/tests_sei41/funcional/src/fixtures/PenMapUnidadesFixture.php deleted file mode 100644 index ea698cb2d..000000000 --- a/tests_sei41/funcional/src/fixtures/PenMapUnidadesFixture.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php - -/** - * Responsvel por cadastrar novo mapeamento de unidades caso no exista - */ -class PenMapUnidadesFixture extends \FixtureBase -{ - protected $objPenUnidadeDTO; - - public function __construct() - { - $this->objPenUnidadeDTO = new \PenUnidadeDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenUnidadeDTO = $this->consultar($dados); - if ($objPenUnidadeDTO) { - return $objPenUnidadeDTO; - } - - $this->objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $this->objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); - $this->objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); - $this->objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); - - $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeBD->cadastrar($this->objPenUnidadeDTO); - } - - public function consultar($dados = []) - { - $objPenUnidadeDTO = new \PenUnidadeDTO(); - $objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); - $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); - $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); - $objPenUnidadeDTO->retTodos(); - - $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeBD->consultar($objPenUnidadeDTO); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php b/tests_sei41/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php deleted file mode 100644 index 087328f64..000000000 --- a/tests_sei41/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php - -/** - * Responsvel por cadastrar novo mapeamento de unidades caso no exista - */ -class PenUnidadeRestricaoFixture extends \FixtureBase -{ - protected $objPenUnidadeRestricaoDTO; - - public function __construct() - { - $this->objPenUnidadeRestricaoDTO = new \PenUnidadeRestricaoDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenUnidadeRestricaoDTO = $this->consultar($dados); - if ($objPenUnidadeRestricaoDTO) { - return $objPenUnidadeRestricaoDTO; - } - - $this->objPenUnidadeRestricaoDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $this->objPenUnidadeRestricaoDTO->setNumIdUnidadeRH($dados['IdUnidadeRH']); - $this->objPenUnidadeRestricaoDTO->setNumIdUnidadeRestricao($dados['IdUnidadeRestricao']); - $this->objPenUnidadeRestricaoDTO->setStrNomeUnidadeRestricao($dados['NomeUnidadeRestricao']); - $this->objPenUnidadeRestricaoDTO->setNumIdUnidadeRHRestricao($dados['IdUnidadeRHRestricao']); - $this->objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao($dados['NomeUnidadeRHRestricao']); - - $objPenUnidadeRestricaoBD = new \PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeRestricaoBD->cadastrar($this->objPenUnidadeRestricaoDTO); - } - - public function consultar($dados = []) - { - $objPenUnidadeRestricaoDTO = new \PenUnidadeRestricaoDTO(); - - $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRestricao($dados['NomeUnidadeRestricao']); - $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao($dados['NomeUnidadeRHRestricao']); - $objPenUnidadeRestricaoDTO->retTodos(); - - $objPenUnidadeRestricaoBD = new \PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeRestricaoBD->consultar($objPenUnidadeRestricaoDTO); - } - - public function excluir($dados = []) - { - - $objPenUnidadeRestricaoDTO = $this->consultar($dados); - if (!$objPenUnidadeRestricaoDTO) { - return false; - } - - $objPenUnidadeRestricaoBD = new \PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeRestricaoBD->excluir($objPenUnidadeRestricaoDTO); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/src/fixtures/PenOrgaoExternoFixture.php b/tests_sei41/funcional/src/fixtures/PenOrgaoExternoFixture.php deleted file mode 100644 index 474b0b83f..000000000 --- a/tests_sei41/funcional/src/fixtures/PenOrgaoExternoFixture.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php - -class PenOrgaoExternoFixture extends \FixtureBase -{ - protected $objPenOrgaoExternoDTO; - - public function __construct() - { - $this->objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $this->objPenOrgaoExternoDTO = $this->consultar($dados); - if ($this->objPenOrgaoExternoDTO) { - return $this->objPenOrgaoExternoDTO; - } - - $this->objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - $this->objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($dados['IdOrigem']); - $this->objPenOrgaoExternoDTO->setStrOrgaoOrigem($dados['NomeOrigem']); - $this->objPenOrgaoExternoDTO->setNumIdEstrutaOrganizacionalOrigem($dados['IdRepositorio']); - $this->objPenOrgaoExternoDTO->setStrEstrutaOrganizacionalOrigem($dados['RepositorioEstruturas']); - - $this->objPenOrgaoExternoDTO->setNumIdOrgaoDestino($dados['Id']); - $this->objPenOrgaoExternoDTO->setStrOrgaoDestino($dados['Nome']); - - $this->objPenOrgaoExternoDTO->setDthRegistro($dados['DataRegistro'] ?: \InfraData::getStrDataAtual()); - $this->objPenOrgaoExternoDTO->setStrAtivo($dados['SinAtivo'] ?: 'S'); - $this->objPenOrgaoExternoDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - - $objPenOrgaoExternoBD = new \PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - $this->objPenOrgaoExternoDTO = $objPenOrgaoExternoBD->cadastrar($this->objPenOrgaoExternoDTO); - - return $this->objPenOrgaoExternoDTO; - } - - public function consultar($dados = []) - { - $objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($dados['IdOrigem']); - $objPenOrgaoExternoDTO->setNumIdOrgaoDestino($dados['Id']); - $objPenOrgaoExternoDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objPenOrgaoExternoDTO->retTodos(); - - $objPenOrgaoExternoBD = new \PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objPenOrgaoExternoBD->consultar($objPenOrgaoExternoDTO); - } - - public function excluir($dados = []) - { - $objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->setDblId($dados['Id']); - - $objPenOrgaoExternoBD = new \PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objPenOrgaoExternoBD->excluir($objPenOrgaoExternoDTO); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/src/fixtures/TipoProcessoPadraoFixture.php b/tests_sei41/funcional/src/fixtures/TipoProcessoPadraoFixture.php deleted file mode 100644 index dad75f16f..000000000 --- a/tests_sei41/funcional/src/fixtures/TipoProcessoPadraoFixture.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -use InfraData; - -class TipoProcessoPadraoFixture extends \FixtureBase -{ - protected $objPenParametroDTO; - - public function __construct() - { - $this->objPenParametroDTO = new \PenParametroDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenParametroDTO = new \PenParametroDTO(); - $objPenParametroDTO->setStrNome($dados['Nome']); - - $objPenParametroBD = new \PenParametroBD($this->inicializarObjInfraIBanco()); - if($objPenParametroBD->contar($objPenParametroDTO) > 0) { - $objPenParametroDTO->setStrValor($dados['Valor']); - $objPenParametroBD->alterar($objPenParametroDTO); - } - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaAnexarProcesso.php b/tests_sei41/funcional/src/paginas/PaginaAnexarProcesso.php deleted file mode 100755 index 183a933d7..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaAnexarProcesso.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -class PaginaAnexarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function protocolo($protocolo) - { - $protocoloInput = $this->test->byId('txtProtocolo'); - - if(isset($protocolo)){ - $protocoloInput->value($protocolo); - $this->test->byId('btnPesquisar')->click(); - } - - return $protocoloInput->value(); - } - - public function anexar() - { - $anexarButton = $this->test->byId('sbmAnexar'); - $anexarButton->click(); - $this->alertTextAndClose(); - } - - - public function anexarProcesso($protocolo) - { - $this->protocolo($protocolo); - $this->anexar(); - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaAssinaturaDocumento.php b/tests_sei41/funcional/src/paginas/PaginaAssinaturaDocumento.php deleted file mode 100755 index cd3de4a1d..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaAssinaturaDocumento.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaAssinaturaDocumento extends PaginaTeste -{ - const JANELA_ASSINATURA = "janelaAssinatura"; - - public function __construct($test) - { - parent::__construct($test); - } - - public function assinante($strAssinante) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("txtUsuario"); - - if(isset($strAssinante)){ - $input->value($strAssinante); - $this->test->waitUntil(function($testCase) { - $nomeAssinante = $testCase->byId("txtUsuario")->value(); - $testCase->byLinkText($nomeAssinante)->click(); - return true; - }, 8000); - } - - return $input->value(); - } - - public function senha($value) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("pwdSenha"); - return $input->value($value); - } - - public function selecionarOrgaoAssinante($strOrgaoAssinante) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("selOrgao"); - $this->test->select($input)->selectOptionByLabel($strOrgaoAssinante); - return $this->test->select($input)->selectedLabel(); - } - - public function selecionarCargoAssinante($strCargoAssinante) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("selCargoFuncao"); - $this->test->select($input)->selectOptionByLabel($strCargoAssinante); - return $this->test->select($input)->selectedLabel(); - } - - public function assinarComLoginSenha($pwdSenha) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("pwdSenha"); - $input->value($pwdSenha); - $this->test->keys(Keys::ENTER); - } - -} diff --git a/tests_sei41/funcional/src/paginas/PaginaCadastroOrgaoExterno.php b/tests_sei41/funcional/src/paginas/PaginaCadastroOrgaoExterno.php deleted file mode 100644 index d33cc9da2..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaCadastroOrgaoExterno.php +++ /dev/null @@ -1,259 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaCadastroOrgaoExterno extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarCadastroOrgaoExterno() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Relacionamento entre Unidades', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_orgaos_externos_listar']")->click(); - } - - /** - * Setar parametro para novo mapeamento de orgos externos - * - * @return void - */ - public function setarParametros($estrutura, $origem, $destino) - { - $this->selectRepositorio($estrutura, 'Origem'); - $this->selectUnidade($origem, 'Origem'); // Seleciona Orgo de Origem - $this->selectUnidadeDestino($destino, 'Destino'); // Seleciona Orgo de Destino - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @param string $origemDestino - * @return string - */ - private function selectRepositorio($siglaRepositorio, $origemDestino) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas' . $origemDestino)); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas' . $origemDestino)->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade' . $origemDestino); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade' . $origemDestino)->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidadeDestino($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade' . $origemDestino); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade' . $origemDestino)->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Seleciona boto novo da pgina - * - * @return void - */ - public function novoMapOrgao() - { - $this->test->byId("btnNovo")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function editarMapOrgao() - { - $this->test->byXPath("(//img[@title='Alterar Relacionamento'])[1]")->click(); - } - - /** - * Selecionar primeira checkbox de excluso - * Seleciona boto excluir - * Seleciona boto de confirmao - * - * @return void - */ - public function selecionarExcluirMapOrgao() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Selcionar boto salvar da pgina - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - public function abrirSelecaoDeArquivoParaImportacao() - { - $this->test->byXPath("(//img[@title='Importar CSV'])[1]")->click(); - sleep(2); - $fileChooser = $this->test->byId('importArquivoCsv'); - $this->test->waitUntil(function ($testCase) use ($fileChooser) { - $fileChooser - ->sendKeys('/opt/sei/web/modulos/mod-sei-pen/tests_super/funcional/assets/arquivos/tipos_processos.csv') - ->keys(Keys::CLEAR); - }, PEN_WAIT_TIMEOUT); - $this->test->waitUntil(function($testCase) { - return true; - }); - } - - /** - * Buscar orgo de origem por nome - * - * @param string $origem - * @return string|null - */ - public function buscarOrgaoOrigem($origem) - { - try { - $orgaoOrigem = $this->test->byXPath("//td[contains(.,'" . $origem . "')]")->text(); - return !empty($orgaoOrigem) && !is_null($orgaoOrigem) ? - $orgaoOrigem : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar orgo de destino por nome - * - * @param string $origem - * @return string|null - */ - public function buscarOrgaoDestino($destino) - { - try { - $orgaoDestino = $this->test->byXPath("//td[contains(.,'" . $destino . "')]")->text(); - return !empty($orgaoDestino) && !is_null($orgaoDestino) ? - $orgaoDestino : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no bot?o pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function selecionarPesquisa($textoPesquisa) - { - $this->test->byId('txtSiglaOrigem')->clear(); - $this->test->byId('txtSiglaOrigem')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Buscar item de tabela por nome - * - * @param string $nome - * @return string|null - */ - public function buscarNome($nome) - { - try { - $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); - return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? - $nomeSelecionado : - null; - } catch (Exception $ex) { - return null; - } - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaControleProcesso.php b/tests_sei41/funcional/src/paginas/PaginaControleProcesso.php deleted file mode 100755 index bbbf1d6c4..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaControleProcesso.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -class PaginaControleProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - protected function obterLinhasProcessos($processosGerados, $processosRecebidos) - { - $paineisPesquisa = array(); - if($processosGerados) { $paineisPesquisa[] = 'tblProcessosGerados'; - } - if($processosRecebidos) { $paineisPesquisa[] = 'tblProcessosRecebidos'; - } - - $resultado = array(); - foreach ($paineisPesquisa as $painel) { - try { - $resultado = array_merge($resultado, $this->test->byId($painel)->elements($this->test->using('css selector')->value('tr'))); - } catch (\Exception $th) { } - } - - return $resultado; - } - - protected function listarProcessos($processosGerados, $processosRecebidos) - { - $listaProtocolos = array(); - $processosRows = $this->obterLinhasProcessos($processosGerados, $processosRecebidos); - if(isset($processosRows) && count($processosRows) > 0){ - for ($i=1; $i < count($processosRows); $i++) { - $listaProtocolos[] = trim($processosRows[$i]->text()); - } - } - - return $listaProtocolos; - } - - public function processosGerados() - { - return $this->listarProcessos(true, false); - } - - public function processosRecebidos() - { - return $this->listarProcessos(false, true); - } - - public function contemProcesso($numeroProcesso, $processosGerados = true, $processosRecebidos = true) - { - $listaProcessos = $this->listarProcessos($processosGerados, $processosRecebidos); - return ($listaProcessos != null) ? in_array($numeroProcesso, $listaProcessos) : false; - } - - public function contemAlertaProcessoRecusado($numeroProcesso) - { - $processosRows = $this->obterLinhasProcessos(true, true); - foreach ($processosRows as $row) { - try{ - if(strpos($row->text(), $numeroProcesso) !== false){ - foreach ($row->elements($this->test->using('css selector')->value('img')) as $icone) { - if(strpos($icone->attribute("src"), 'pen_tramite_recusado.png') !== false) { - return true; - } - } - } - } - catch(\Exception $e) { - return false; - } - } - - return false; - } - - public function localizarProcessoPelaDescricao($descricao) - { - $processosRows = $this->obterLinhasProcessos(true, true); - foreach ($processosRows as $row) { - try{ - foreach ($row->elements($this->test->using('css selector')->value('a')) as $link) { - if(strpos($link->attribute("onmouseover"), $descricao) !== false) { - return $link->text(); - } - } - } - catch(\Exception $e) { - return false; - } - } - - return false; - } - - public function abrirProcesso($strProtocolo) - { - $this->test->byLinkText($strProtocolo)->click(); - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaEnviarProcesso.php b/tests_sei41/funcional/src/paginas/PaginaEnviarProcesso.php deleted file mode 100755 index 2221bc6fe..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaEnviarProcesso.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php - -class PaginaEnviarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - $this->unidadeInput = $test->byId('txtUnidade'); - $this->manterAbertoCheck = $test->byId('chkSinManterAberto'); - $this->removerAnotacoesCheck = $test->byId('chkSinRemoverAnotacoes'); - $this->enviarNotificacaoCheck = $test->byId('chkSinEnviarEmailNotificacao'); - $this->dataCertaOption = $test->byId('optDataCerta'); - $this->prazoInput = $test->byId('txtPrazo'); - $this->diasOption = $test->byId('optDias'); - $this->diasInput = $test->byId('txtDias'); - $this->diasUteisInput = $test->byId('chkSinDiasUteis'); - $this->enviarButton = $test->byId('sbmEnviar'); - } - - public function adicionarUnidade($nomeUnidade) - { - $this->unidadeInput->value($nomeUnidade); - $this->test->waitUntil(function($testCase) { - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - $testCase->byLinkText($nomeUnidade)->click(); - return true; - }, 8000); - } - - public function salvar() - { - $this->enviarButton->click(); - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaExportarTiposProcesso.php b/tests_sei41/funcional/src/paginas/PaginaExportarTiposProcesso.php deleted file mode 100644 index c48790dfc..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaExportarTiposProcesso.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaExportarTiposProcesso extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarExportarTiposProcessos() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Exportao de Tipos de Processo', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_orgaos_exportar_tipos_processos']")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function selecionarParaExportar() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byXPath("(//label[@for='chkInfraItem2'])[1]")->click(); - $this->test->byXPath("(//label[@for='chkInfraItem3'])[1]")->click(); - $this->test->byXPath("(//label[@for='chkInfraItem5'])[1]")->click(); - $this->test->byId("btnExportar")->click(); - } - - public function verificarExisteBotao($nomeBtn) - { - try { - return $this->test->byXPath("(//button[@id='".$nomeBtn."'])")->text(); - } catch (Exception $e) { - return null; - } - } - - public function verificarQuantidadeDeLinhasSelecionadas() - { - $this->test->waitUntil(function($testCase) { - $trs = $this->test->byId('tableExportar') - ->elements($this->test->using('css selector')->value('tr')); - $testCase->assertEquals(count($trs), 5); - return true; - }); - } - - public function btnExportar() - { - $this->test->byId("btnExportarModal")->click(); - sleep(5); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * - * @return void - */ - public function selecionarPesquisa() - { - $this->test->byId('txtNomeTipoProcessoPesquisa')->clear(); - $this->test->byId('txtNomeTipoProcessoPesquisa')->value('Ouvidoria'); - $this->test->byId("sbmPesquisar")->click(); - } - - /** - * Buscar se foi pesquisado - * - * @return void - */ - public function buscarPesquisa() - { - try { - $elementos = $this->test->byXPath("//td[contains(.,'Ouvidoria:')]")->text(); - return !empty($elementos) && !is_null($elementos); - } catch (Exception $e) { - return false; - } - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaIniciarProcesso.php b/tests_sei41/funcional/src/paginas/PaginaIniciarProcesso.php deleted file mode 100755 index 4eebcde16..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaIniciarProcesso.php +++ /dev/null @@ -1,175 +0,0 @@ -<?php - -use utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - - -class PaginaIniciarProcesso extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function selecionarTipoProcesso($tipoProcesso) - { - try{ - $this->test->byId('txtFiltro')->value($tipoProcesso); - sleep(2); - $this->test->byLinkText($tipoProcesso)->click(); - } - catch (Exception $e){ - $this->test->byId("ancExibirTiposProcedimento")->click(); - $this->test->byId('txtFiltro')->value($tipoProcesso); - sleep(2); - $this->test->byLinkText($tipoProcesso)->click(); - } - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function selecionarProtocoloManual() - { - $this->test->byId("optProtocoloManual")->click(); - } - - public function protocoloInformado($value = null) - { - $input = $this->test->byId("txtProtocoloInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function dataGeracaoProtocolo($value = null) - { - $input = $this->test->byId("txtDtaGeracaoInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("lblPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("lblRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("lblSigiloso")->click(); - } - } - - if($this->test->byId("lblPublico")->selected()) { - return self::STA_NIVEL_ACESSO_PUBLICO; - } else if($this->test->byId("lblRestrito")->selected()) { - return self::STA_NIVEL_ACESSO_RESTRITO; - } else if($this->test->byId("lblSigiloso")->selected()) { - return self::STA_NIVEL_ACESSO_SIGILOSO; - } - - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - return $this->test->select($this->test->byId('selInteressadosProcedimento'))->selectedLabels(); - } - - public function salvarProcesso() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->test->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function gerarProtocolo() - { - $strSequencia = str_pad(rand(1, 999999), 6, "0", STR_PAD_LEFT); - return '999990.' . $strSequencia . '/2015-00'; - } - - public static function gerarProcessoTeste($test, array $dadosProcesso = null) - { - $test->byLinkText("Iniciar Processo")->click(); - - $dadosProcesso = $dadosProcesso ?: array(); - $dadosProcesso["TIPO_PROCESSO"] = @$dadosProcesso["TIPO_PROCESSO"] ?: "Licitao: Prego Eletrnico"; - $dadosProcesso["DESCRICAO"] = @$dadosProcesso["DESCRICAO"] ?: util::random_string(20); - $dadosProcesso["OBSERVACOES"] = @$dadosProcesso["OBSERVACOES"] ?: util::random_string(100); - $dadosProcesso["INTERESSADOS"] = @$dadosProcesso["INTERESSADOS"] ?: util::random_string(40); - $dadosProcesso["RESTRICAO"] = @$dadosProcesso["RESTRICAO"] ?: PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO; - $dadosProcesso["HIPOTESE_LEGAL"] = @$dadosProcesso["HIPOTESE_LEGAL"] ?: ""; - - $paginaIniciarProcesso = new PaginaIniciarProcesso($test); - $paginaIniciarProcesso->selecionarTipoProcesso($dadosProcesso["TIPO_PROCESSO"]); - $paginaIniciarProcesso->descricao($dadosProcesso["DESCRICAO"]); - $paginaIniciarProcesso->observacoes($dadosProcesso["OBSERVACOES"]); - $paginaIniciarProcesso->selecionarRestricao($dadosProcesso["RESTRICAO"], $dadosProcesso["HIPOTESE_LEGAL"]); - $paginaIniciarProcesso->adicionarInteressado($dadosProcesso["INTERESSADOS"]); - - $paginaIniciarProcesso->salvarProcesso(); - - $test->frame(null); - $test->frame("ifrArvore"); - $protocoloProcesso = trim($test->byXPath("//a[@title='". $dadosProcesso["TIPO_PROCESSO"] ."'] | //span[@title='". $dadosProcesso["TIPO_PROCESSO"] ."']")->text()); - - return $protocoloProcesso; - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaLogin.php b/tests_sei41/funcional/src/paginas/PaginaLogin.php deleted file mode 100755 index e08808fd8..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaLogin.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\WebDriverException; - -class PaginaLogin extends PaginaTeste -{ - public function __construct($test) - { - - parent::__construct($test); - $this->usuarioInput = $test->byId('txtUsuario'); - $this->passwordInput = $test->byId('pwdSenha'); - try{ - $this->loginButton = $test->byId('Acessar'); - } - //SEI 4.0.12 alterou para sbmAcessar - catch (WebDriverException $wde){ - $this->loginButton = $test->byId('sbmAcessar'); - } - } - - public function usuario($value) - { - if(isset($value)) { - $this->usuarioInput->value($value); - } - - return $this->usuarioInput->value(); - } - - public function senha($value) - { - if(isset($value)) { - $this->passwordInput->value($value); - } - - return $this->passwordInput->value(); - } - - public function orgao() - { - return $this->test->byId('divInfraBarraSuperior')->text(); - } - - public function submit() - { - $this->loginButton->click(); - return $this->test; - } - - public static function executarAutenticacao($test, $usuario = "teste", $senha = "teste") - { - $paginaLogin = new PaginaLogin($test); - $paginaLogin->usuario($usuario); - $paginaLogin->senha($senha); - $paginaLogin->submit(); - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaMapUnidades.php b/tests_sei41/funcional/src/paginas/PaginaMapUnidades.php deleted file mode 100644 index 283060074..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaMapUnidades.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaMapUnidades extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarPenMapeamentoUnidades() - { - $this->test->byId("txtInfraPesquisarMenu")->value('Listar'); - $this->test->byXPath("//a[@link='pen_map_unidade_listar']")->click(); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no bot?o pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function pesquisarUnidade($textoPesquisa) - { - $this->test->byId('txtSiglaUnidade')->clear(); - $this->test->byId('txtSiglaUnidade')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function selecionarEditar() - { - $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); - } - - public function selecionarRepoEstruturas($textoEstruturas) - { - $this->repoEstruturaInput = $this->test->byId('txtRepoEstruturas'); - $this->repoEstruturaInput->clear(); - $this->repoEstruturaInput->value($textoEstruturas); - $this->test->keys(Keys::ENTER); - $sucesso = $this->test->waitUntil(function($testCase) { - $bolExisteAlerta=null; - $nomeEstrutura = $testCase->byId('txtRepoEstruturas')->value(); - - try{ - $bolExisteAlerta = $this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){} - $testCase->byPartialLinkText($nomeEstrutura)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->test->assertTrue($sucesso); - } - - public function selecionarUnidade($textoUnidade) - { - $this->repoUnidadeInput = $this->test->byId('txtUnidade'); - $this->repoUnidadeInput->clear(); - $this->repoUnidadeInput->value($textoUnidade); - $this->test->keys(Keys::ENTER); - $sucesso = $this->test->waitUntil(function($testCase) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - - try{ - $bolExisteAlerta = $this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){} - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->test->assertTrue($sucesso); - } - - /** - * Selcionar boto salvar da pgina - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - public function limparRestricoes() - { - $options = $this->test->byId('selRepoEstruturas') - ->elements($this->test->using('css selector')->value('option')); - if (count($options)) { - $this->test->byXPath("//img[@title='Remover Estruturas Selecionadas']")->click(); - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } - - public function validarRepositorio($siglaRepositorio) - { - $repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - $options = $repositorioSelect - ->elements($this->test->using('css selector')->value('option')); - - $contador = 0; - foreach ($options as $option) { - $value = trim($option->value()); - if (empty($value) || is_null($value) || $value == "null") { - continue; - } - - $contador++; - } - - if(isset($siglaRepositorio)){ - $repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - $this->test->assertEquals(1, $contador); - - return $this->test->byId('selRepositorioEstruturas')->value(); - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaPenHipoteseLegalListar.php b/tests_sei41/funcional/src/paginas/PaginaPenHipoteseLegalListar.php deleted file mode 100644 index 2d62e6424..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaPenHipoteseLegalListar.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Pagina de listagem de hiptese legal - */ -class PaginaPenHipoteseLegalListar extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Navegar para a pgina de listagem de hiptese legal - * - * @return void - */ - public function navegarMapeamentoHipoteseLegalListar() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Listar', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_hipotese_legal_envio_listar']")->click(); - } - - /** - * Verificar se a tabela de hiptese legal exibida - * - * @return bool - */ - public function existeTabela() - { - try { - $trTh = $this->test->byXPath('//*[@id="divInfraAreaTabela"]/table/tbody/tr[1]/th[2]')->text(); - return !empty($trTh) && !is_null($trTh) && count($trTh) >= 1; - } catch (Exception $ex) { - return false; - } - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php b/tests_sei41/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php deleted file mode 100755 index fe588cf97..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - -class PaginaProcessosTramitadosExternamente extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemProcesso($numeroProcesso) - { - return strpos($this->test->byCssSelector('body')->text(), $numeroProcesso) !== false; - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/src/paginas/PaginaTeste.php b/tests_sei41/funcional/src/paginas/PaginaTeste.php deleted file mode 100755 index 90e57bc09..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaTeste.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTeste -{ - public function __construct($test) - { - $this->test = $test; - $this->test->timeouts()->implicitWait(10000); - } - - public function titulo() - { - return $this->test->title(); - } - - public function alertTextAndClose($confirm = true) - { - sleep(2); - $result = $this->test->alertText(); - $result = (!is_array($result) ? $result : null); - - if(isset($confirm) && $confirm) { - $this->test->acceptAlert(); - } else { - $this->dismissAlert(); - } - - #var_dump($result); - return $result; - } - - public function unidadeContexto($unidadeContexto) - { - $this->test->frame(null); - $this->test->byXPath("(//a[@id='lnkInfraUnidade'])[2]")->click(); - $this->test->byXPath("//td[contains(.,'" . $unidadeContexto . "')]")->click(); - - } - - public function navegarParaControleProcesso() - { - $this->test->frame(null); - $this->test->byXPath("//img[@title='Controle de Processos']")->click(); - - } - - public function sairSistema() - { - $this->test->frame(null); - $this->test->byXPath("//a[@id='lnkInfraSairSistema'] | //a[@id='lnkSairSistema']")->click(); - } - - public static function selecionarUnidadeContexto($test, $unidadeContexto) - { - $paginaTeste = new PaginaTeste($test); - $paginaTeste->unidadeContexto($unidadeContexto); - } - - public function pesquisar($termoPesquisa) - { - $this->test->frame(null); - $this->test->byId("txtPesquisaRapida")->value($termoPesquisa); - $this->test->keys(Keys::ENTER); - } - - public function refresh() - { - $this->test->refresh(); - } - -} diff --git a/tests_sei41/funcional/src/paginas/PaginaTipoProcessoReativar.php b/tests_sei41/funcional/src/paginas/PaginaTipoProcessoReativar.php deleted file mode 100644 index 08825a270..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaTipoProcessoReativar.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTipoProcessoReativar extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarTipoProcessoReativar() - { - $this->test->byId("txtInfraPesquisarMenu")->value("Reativar Mapeamento de Tipos de Processo"); - - $this->test->byXPath("//a[@link='pen_map_tipo_processo_reativar']")->click(); - } - - public function reativarMapeamento() - { - $this->test->byXPath("//a[contains(@class, 'reativar')]")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - public function reativarMapeamentoCheckbox() - { - $this->test->byXPath("//div[contains(@class, 'infraCheckboxDiv')]")->click(); - $this->test->byId("btnReativar")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaTramitarProcessoEmLote.php b/tests_sei41/funcional/src/paginas/PaginaTramitarProcessoEmLote.php deleted file mode 100755 index 3f2124e8c..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaTramitarProcessoEmLote.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramitarProcessoEmLote extends PaginaTeste -{ - const STA_ANDAMENTO_PROCESSAMENTO = "Em Processamento"; - const STA_ANDAMENTO_CANCELADO = "Cancelado"; - const STA_ANDAMENTO_CONCLUIDO = "Concludo"; - - public function __construct($test) - { - parent::__construct($test); - - } - - public function selecionarProcessos($numProtocolo = null) - { - - if(is_null($numProtocolo)){ - try{ - $chkGerados = $this->test->byXPath("//*[@id='imgGeradosCheck']"); - $chkGerados->click(); - } catch(Exception $e){} - - try{ - $chkRecebidos = $this->test->byXPath("//*[@id='imgRecebidosCheck']"); - $chkRecebidos->click(); - } catch(Exception $e){} - }else{ - $chkProtocolo = $this->test->byXPath('//tr[contains(.,"'.$numProtocolo.'")]/td/div/label'); - $chkProtocolo->click(); - } - - } - - public function navegarControleProcessos() - { - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Envio Externo de Processo em Lote']"); - $this->editarProcessoButton->click(); - } - - public function informacaoLote() - { - return $this->test->byId('divInfraAreaTelaD')->text(); - } - - public function navegarProcessoEmLote($selAndamento, $numProtocolo = null) - { - if(!is_null($selAndamento)){ - $select = $this->test->select($this->test->byId('selAndamento')); - $select->selectOptionByLabel($selAndamento); - } - - if(!is_null($numProtocolo)){ - $this->protocoloInput=$this->test->byId('txtProcedimentoFormatado'); - $this->protocoloInput->value($numProtocolo); - } - - $this->presquisarProcessoButton = $this->test->byXPath("//*[@id='sbmPesquisar']"); - $this->presquisarProcessoButton->click(); - - } -} diff --git a/tests_sei41/funcional/src/paginas/PaginaTramiteEmBloco.php b/tests_sei41/funcional/src/paginas/PaginaTramiteEmBloco.php deleted file mode 100644 index f3b0eec38..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaTramiteEmBloco.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Classe de teste da pgina de tramite em bloco - */ -class PaginaTramiteEmBloco extends PaginaTeste -{ - const STA_ANDAMENTO_PROCESSAMENTO = "Aguardando Processamento"; - const STA_ANDAMENTO_CANCELADO = "Cancelado"; - const STA_ANDAMENTO_CONCLUIDO = "Concludo"; - - /** - * @inheritdoc - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Selecionar processo - * @param array $arrNumProtocolo - * @return void - */ - public function selecionarProcessos($arrNumProtocolo = array()) - { - foreach ($arrNumProtocolo as $numProtocolo) { - $chkProtocolo = $this->test->byXPath('//tr[contains(.,"'.$numProtocolo.'")]/td/div/label'); - $chkProtocolo->click(); - } - } - - /** - * Selecionar tramite em bloco - * @return void - */ - public function selecionarTramiteEmBloco() - { - $btnTramiteEmBloco = $this->test->byXPath( - "//img[@alt='". mb_convert_encoding("Incluir Processos no Bloco de Trmite", 'UTF-8', 'ISO-8859-1') ."']" - ); - $btnTramiteEmBloco->click(); - } - - /** - * Seleciona a visualizao detalhada do processo. - * - * Este mtodo simula o clique no boto que troca a visualizao para - * a opo detalhada. Ele utiliza o XPath para encontrar o boto - * correspondente na interface da aplicao. - * - * @return void - */ - public function selecionarVisualizacaoDetalhada() - { - $btnTramiteEmBloco = $this->test->byXPath('//a[@onclick="trocarVisualizacao(\'D\');"]'); - $btnTramiteEmBloco->click(); - } - - /** - * Seleciona um processo especfico com base no nmero do protocolo formatado. - * - * Este mtodo busca o rtulo que contm o nmero do protocolo - * fornecido e simula um clique sobre ele para selecionar o processo. - * - * @param string $numProtocoloFormatado O nmero do protocolo formatado a ser selecionado. - * @return void - */ - public function selecionarProcesso($numProtocoloFormatado) - { - $btnTramiteEmBloco = $this->test->byXPath('//label[@title="' . $numProtocoloFormatado . '"]'); - $btnTramiteEmBloco->click(); - } - - /** - * Verifica o ttulo da pgina atual. - * - * Este mtodo busca e retorna o texto do ttulo da pgina - * atual, comparando-o com o ttulo fornecido. Ele til para - * garantir que a navegao ocorreu corretamente. - * - * @param string $titulo O ttulo esperado da pgina. - * @return string O ttulo da pgina atual. - */ - public function verificarTituloDaPagina($titulo) - { - $tituloDaPagina = $this->test->byXPath('//div[text()="' . $titulo . '"]'); - return $tituloDaPagina->text(); - } - - /** - * Selecionar bloco - * @param string $selAndamento - * @return void - */ - public function selecionarBloco($selAndamento) - { - $select = $this->test->select($this->test->byId('selBlocos')); - $select->selectOptionByValue($selAndamento); - } - - /** - * Clicar em salvar - * @return void - */ - public function clicarSalvar() - { - $btnSalvar = $this->test->byXPath("//button[@name='sbmCadastrarProcessoEmBloco']"); - $btnSalvar->click(); - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php b/tests_sei41/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php deleted file mode 100644 index 4666cf75c..000000000 --- a/tests_sei41/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramiteMapeamentoOrgaoExterno extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - - } - - public function navegarRelacionamentoEntreOrgaos() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Relacionamento entre Unidades', 'UTF-8', 'ISO-8859-1')); - - $this->test->byLinkText(mb_convert_encoding('Relacionamento entre Unidades', 'UTF-8', 'ISO-8859-1'))->click(); - $this->test->byXPath("//a[@link='pen_map_orgaos_externos_listar']")->click(); - } - - public function reativarMapeamento() { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Inativo"); - $this->test->byXPath("//a[contains(@class, 'reativar')]")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - public function reativarMapeamentoCheckbox() { - $this->test->byXPath("//div[contains(@class, 'infraCheckboxDiv')]")->click(); - $this->test->byId("btnReativar")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - - public function desativarMapeamento() { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Ativo"); - $this->test->byXPath("//a[contains(@class, 'desativar')]")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - public function desativarMapeamentoCheckbox() { - $this->test->byXPath("//div[contains(@class, 'infraCheckboxDiv')]")->click(); - $this->test->byId("btnDesativar")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - - public function selectEstado($estado) { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel($estado); - } -} diff --git a/tests_sei41/funcional/src/utils/DatabaseUtils.php b/tests_sei41/funcional/src/utils/DatabaseUtils.php deleted file mode 100755 index a5df11180..000000000 --- a/tests_sei41/funcional/src/utils/DatabaseUtils.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -class DatabaseUtils -{ - private $connection; - - public function __construct($nomeContexto) - { - $dns = getenv($nomeContexto . '_DB_SEI_DSN'); - $user = getenv("SEI_DATABASE_USER"); - $password = getenv("SEI_DATABASE_PASSWORD"); - $this->connection = new PDO($dns, $user, $password); - } - - - public function execute($sql, $params){ - $statement = $this->connection->prepare($sql); - $result = $statement->execute($params); - return $result; - } - - - public function query($sql, $params){ - $statement = $this->connection->prepare($sql); - $statement->execute($params); - return $statement->fetchAll(); - } - - - public function getBdType(){ - return $this->connection->getAttribute(PDO::ATTR_DRIVER_NAME); - } -} diff --git a/tests_sei41/funcional/src/utils/ParameterUtils.php b/tests_sei41/funcional/src/utils/ParameterUtils.php deleted file mode 100755 index 6366c7e0b..000000000 --- a/tests_sei41/funcional/src/utils/ParameterUtils.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -require_once dirname(__FILE__)."/DatabaseUtils.php"; - -class ParameterUtils{ - - const SEI_HABILITAR_NUMERO_PROCESSO_INFORMADO = "SEI_HABILITAR_NUMERO_PROCESSO_INFORMADO"; - const PARAM_NUMERO_INFORMADO_DESABILITADO = 0; - const PARAM_NUMERO_INFORMADO_PROTOCOLO = 1; - const PARAM_NUMERO_INFORMADO_UNIDADES = 2; - - private $databaseUtils; - - public function __construct($nomeContexto) - { - $this->databaseUtils = new DatabaseUtils($nomeContexto); - } - - public function getParameter($parameter){ - $result = null; - $query = "SELECT valor FROM md_pen_parametro WHERE nome = ?"; - $values = $this->databaseUtils->query($query, array($parameter)); - - if(isset($values)){ - $result = $values[0]["valor"]; - } - - return $result; - } - - public function setParameter($parameter, $value){ - $query = "UPDATE md_pen_parametro SET valor = ? WHERE nome = ?"; - return $this->databaseUtils->execute($query, array($value, $parameter)); - } -} diff --git a/tests_sei41/funcional/tests/FixtureCenarioBaseTestCase.php b/tests_sei41/funcional/tests/FixtureCenarioBaseTestCase.php deleted file mode 100755 index 8daf39101..000000000 --- a/tests_sei41/funcional/tests/FixtureCenarioBaseTestCase.php +++ /dev/null @@ -1,331 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase; -use Tests\Funcional\Sei\Fixtures\{ProtocoloFixture,ProcedimentoFixture,AtividadeFixture,ContatoFixture}; -use Tests\Funcional\Sei\Fixtures\{ParticipanteFixture,RelProtocoloAssuntoFixture,AtributoAndamentoFixture}; -use Tests\Funcional\Sei\Fixtures\{DocumentoFixture,AssinaturaFixture,AnexoFixture,AnexoProcessoFixture}; -use Tests\Funcional\Sei\Fixtures\{HipoteseLegalFixture,TipoProcedimentoFixture}; - -use function PHPSTORM_META\map; -/** - * Classe base contendo rotinas comuns utilizadas nos casos de teste do mdulo que utiliza fixture - */ -class FixtureCenarioBaseTestCase extends CenarioBaseTestCase -{ - protected function cadastrarProcessoFixture(&$dadosProcesso, $cadastrarParticipante = true) - { - if (!is_null($dadosProcesso['HIPOTESE_LEGAL'])){ - $objHipLegalDTO = $this->buscarHipoteseLegal($dadosProcesso); - } - - $parametros = [ - 'Descricao' => $dadosProcesso['DESCRICAO'] ?: util::random_string(20), - 'Interessados' => $dadosProcesso['INTERESSADOS'] ?: util::random_string(40), - 'IdHipoteseLegal' => $dadosProcesso['HIPOTESE_LEGAL'] ? $objHipLegalDTO->getNumIdHipoteseLegal() : null, - 'StaNivelAcessoLocal' => $dadosProcesso["RESTRICAO"] ?: PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - 'StaNivelAcessoGlobal' => $dadosProcesso["RESTRICAO"] ?: PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO - ]; - $objProtocoloFixture = new ProtocoloFixture(); - $objProtocoloDTO = $objProtocoloFixture->carregar($parametros); - $objProcedimentoFixture = new ProcedimentoFixture(); - - $parametrosProcedimento = [ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() - ]; - if (!is_null($dadosProcesso['ID_TIPO_PROCESSO'])) { - $parametrosProcedimento['IdTipoProcedimento'] = $dadosProcesso['ID_TIPO_PROCESSO']; - } - $objProcedimentoDTO = $objProcedimentoFixture->carregar($parametrosProcedimento); - - $objAtividadeFixture = new AtividadeFixture(); - $objAtividadeDTO = $objAtividadeFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdTarefa' => \TarefaRN::$TI_GERACAO_PROCEDIMENTO, - 'IdUsuarioConclusao' => 100000001 - ]); - - $objContatoFixture = new ContatoFixture(); - $objContatoDTO = $objContatoFixture->carregar([ - 'Nome' => $parametros['Interessados'] - ]); - - if ($cadastrarParticipante) { - $objParticipanteFixture = new ParticipanteFixture(); - $objParticipanteDTO = $objParticipanteFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdContato' => $objContatoDTO->getNumIdContato() - ]); - } - - $objProtocoloAssuntoFixture = new RelProtocoloAssuntoFixture(); - $objProtocoloAssuntoFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdAssunto' => 377 - ]); - - $objAtributoAndamentoFixture = new AtributoAndamentoFixture(); - $objAtributoAndamentoFixture->carregar([ - 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade() - ]); - - $dadosProcesso['PROTOCOLO'] = $objProtocoloDTO->getStrProtocoloFormatado(); - - return $objProtocoloDTO; - } - - protected function buscarHipoteseLegal($dados) - { - $param = [ - 'Nome' => trim(explode('(',$dados['HIPOTESE_LEGAL'])[0]), - 'BaseLegal' => explode(')',trim(explode('(',$dados['HIPOTESE_LEGAL'])[1]))[0] - ]; - $objHipLegalFixture = new HipoteseLegalFixture(); - return $objHipLegalFixture->buscar($param)[0]; - } - - protected function cadastrarDocumentoInternoFixture($dadosDocumentoInterno, $idProtocolo, $assinarDocumento = true) - { - - if (!is_null($dadosDocumentoInterno['HIPOTESE_LEGAL'])){ - $objHipLegalDTO = $this->buscarHipoteseLegal($dadosDocumentoInterno); - } - - $dadosDocumentoDTO = [ - 'IdProtocolo' => $idProtocolo, - 'IdProcedimento' => $idProtocolo, - 'Descricao' => $dadosDocumentoInterno['DESCRICAO'], - 'IdHipoteseLegal' => $dadosDocumentoInterno["HIPOTESE_LEGAL"] ? $objHipLegalDTO->getNumIdHipoteseLegal() : null, - 'StaNivelAcessoGlobal' => $dadosDocumentoInterno["RESTRICAO"] ?: \ProtocoloRN::$NA_PUBLICO, - 'StaNivelAcessoLocal' => $dadosDocumentoInterno["RESTRICAO"] ?: \ProtocoloRN::$NA_PUBLICO, - 'IdUnidadeResponsavel' => $dadosDocumentoInterno["UNIDADE_RESPONSAVEL"] ?: null - ]; - - if ($serieDTO = $this->buscarIdSerieDoDocumento($dadosDocumentoInterno['TIPO_DOCUMENTO'])) { - $dadosDocumentoDTO['IdSerie'] = $serieDTO->getNumIdSerie(); - } - - $objDocumentoFixture = new DocumentoFixture(); - $objDocumentoDTO = $objDocumentoFixture->carregar($dadosDocumentoDTO); - - if ($assinarDocumento) { - //Adicionar assinatura ao documento - $objAssinaturaFixture = new AssinaturaFixture(); - $objAssinaturaFixture->carregar([ - 'IdProtocolo' => $idProtocolo, - 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), - ]); - } - - return $objDocumentoDTO; - - } - - protected function cadastrarDocumentoExternoFixture($dadosDocumentoExterno, $idProtocolo) - { - $dadosDocumentoDTO = [ - 'IdProtocolo' => $idProtocolo, - 'IdProcedimento' => $idProtocolo, - 'Descricao' => $dadosDocumentoExterno['DESCRICAO'], - 'StaProtocolo' => \ProtocoloRN::$TP_DOCUMENTO_RECEBIDO, - 'StaDocumento' => \DocumentoRN::$TD_EXTERNO, - 'IdConjuntoEstilos' => NULL, - ]; - - if ($serieDTO = $this->buscarIdSerieDoDocumento($dadosDocumentoExterno['TIPO_DOCUMENTO'])) { - $dadosDocumentoDTO['IdSerie'] = $serieDTO->getNumIdSerie(); - } - - $objDocumentoFixture = new DocumentoFixture(); - $objDocumentoDTO = $objDocumentoFixture->carregar($dadosDocumentoDTO); - - //Adicionar anexo ao documento - $objAnexoFixture = new AnexoFixture(); - $objAnexoFixture->carregar([ - 'IdProtocolo' => $objDocumentoDTO->getDblIdDocumento(), - 'Nome' => basename($dadosDocumentoExterno['ARQUIVO']), - ]); - - $objAtividadeFixture = new AtividadeFixture(); - $objAtividadeDTO = $objAtividadeFixture->carregar([ - 'IdProtocolo' => $idProtocolo, - 'Conclusao' => \InfraData::getStrDataHoraAtual(), - 'IdTarefa' => \TarefaRN::$TI_ARQUIVO_ANEXADO, - 'IdUsuarioConclusao' => 100000001 - ]); - - $objAtributoAndamentoFixture = new AtributoAndamentoFixture(); - $objAtributoAndamentoFixture->carregar([ - 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade(), - 'Nome' => 'ANEXO' - ]); - - return $objDocumentoDTO; - } - - protected function anexarProcessoFixture($protocoloPrincipalId, $protocoloProcessoAnexadoId) - { - // Realizar a anexao de processos - $objAnexoProcessoFixture = new AnexoProcessoFixture(); - $objAnexoProcessoFixture->carregar([ - 'IdProtocolo' => $protocoloPrincipalId, - 'IdDocumento' => $protocoloProcessoAnexadoId, - ]); - } - - protected function consultarProcessoFixture($protocoloFormatado, $staProtocolo = null) - { - $objProtocoloFixture = new ProtocoloFixture(); - $objProtocoloDTO = $objProtocoloFixture->buscar([ - 'ProtocoloFormatado' => $protocoloFormatado, - 'StaProtocolo' => $staProtocolo ?: \ProtocoloRN::$TP_DOCUMENTO_GERADO, - ]); - return $objProtocoloDTO[0]; - } - - protected function realizarTramiteExternoFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario, $validarTramite) - { - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - // 1 - Cadastrar novo processo de teste - if (isset($processoTeste['PROTOCOLO'])) { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - $objProtocoloDTO = $this->consultarProcessoFixture($strProtocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - } else { - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $strProtocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - $processoTeste['PROTOCOLO'] = $strProtocoloTeste; - } - - // 2 - Incluir Documentos no Processo - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - foreach ($documentosTeste as $doc) { - if ($doc['TIPO'] == 'G') { - // cadastra e assina documento interno - $this->cadastrarDocumentoInternoFixture($doc,$objProtocoloDTO->getDblIdProtocolo()); - } else if ($doc['TIPO'] == 'R') { - $this->cadastrarDocumentoExternoFixture($doc, $objProtocoloDTO->getDblIdProtocolo()); - } - } - - // 3 - Acessar sistema do REMETENTE do processo - $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); - - // 4 - Abrir processo - $this->abrirProcesso($strProtocoloTeste); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $paginaTramitar = $this->paginaTramitar; - $this->tramitarProcessoExternamente($strProtocoloTeste, $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - if ($validarTramite) { - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding($destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", $strProtocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$nomeUnidadeDestinatario, true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = $remetente['URL'] != $destinatario['URL']; - $this->validarProcessosTramitados($strProtocoloTeste, $deveExistir); - } - } - - public function realizarTramiteExternoComValidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) - { - $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, true); - } - - public function realizarTramiteExternoSemValidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) - { - $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, false); - } - - protected function buscarIdSerieDoDocumento($tipoDocumento) - { - $serieDTO = new \SerieDTO(); - $serieDTO->setStrNome($tipoDocumento); - $serieDTO->retNumIdSerie(); - $serieDTO->setNumMaxRegistrosRetorno(1); - - $objBD = new \SerieBD(\BancoSEI::getInstance()); - return $objBD->consultar($serieDTO); - } - - protected function atualizarProcessoFixture($objProtocoloDTO, $dadosProcesso = []) - { - if (!is_null($dadosProcesso['DESCRICAO'])) { - $parametros['Descricao'] = $dadosProcesso['DESCRICAO']; - } - - if (!is_null($dadosProcesso['INTERESSADOS'])) { - $parametros['Interessados'] = $dadosProcesso['INTERESSADOS']; - } - - $parametros['IdProtocolo'] = $objProtocoloDTO->getDblIdProtocolo(); - $objProtocoloFixture = new ProtocoloFixture(); - - return $objProtocoloFixture->atualizar($parametros); - } - /** - * Mtodo cadastrarHipoteseLegal - * - * Este mtodo realiza o cadastro de uma hiptese legal para testes de trmite de processos e documentos. - * Ele recebe um array com os dados da hiptese legal, cria uma nova instncia de `HipoteseLegalFixture`, - * e utiliza esses dados para carregar a hiptese legal no sistema. - * - * @param array $hipotesLegal Um array contendo os dados da hiptese legal a ser cadastrada, com as seguintes chaves: - * - `HIPOTESE_LEGAL` (string): O nome da hiptese legal. - * - `HIPOTESE_LEGAL_BASE_LEGAL` (string): A base legal associada hiptese. - * - `HIPOTESE_LEGAL_DESCRICAO` (string) [opcional]: Uma descrio para a hiptese legal (padro: 'Nova hipotese legal para testes'). - * - `HIPOTESE_LEGAL_STA_NIVEL_ACESSO` (int) [opcional]: O nvel de acesso para a hiptese legal (padro: nvel restrito). - * - `HIPOTESE_LEGAL_SIN_ATIVO` (string) [opcional]: Indicador de atividade da hiptese legal ('S' para ativo por padro). - * - * @return object $objHipoteseLegalDTO Retorna um objeto `HipoteseLegalDTO` contendo os dados da hiptese legal cadastrada. - */ - protected function cadastrarHipoteseLegal($hipotesLegal) - { - // Criao de uma nova instncia de HipoteseLegalFixture - $objHipLegalFixture = new HipoteseLegalFixture(); - - // Definio dos parmetros para cadastro da hiptese legal - $param = [ - 'Nome' => $hipotesLegal['HIPOTESE_LEGAL'], - 'BaseLegal' => $hipotesLegal['HIPOTESE_LEGAL_BASE_LEGAL'], - 'Descricao' => $hipotesLegal['HIPOTESE_LEGAL_DESCRICAO'] ?? 'Nova hipotese legal para testes', - 'StaNivelAcesso' => $hipotesLegal['HIPOTESE_LEGAL_STA_NIVEL_ACESSO'] ?? \ProtocoloRN::$NA_RESTRITO, - 'SinAtivo' => $hipotesLegal['HIPOTESE_LEGAL_SIN_ATIVO'] ?? "S" - ]; - - // Carregar a hiptese legal com os parmetros fornecidos - $objHipoteseLegalDTO = $objHipLegalFixture->carregar($param); - - // Retorna o objeto DTO da hiptese legal cadastrada - return $objHipoteseLegalDTO; - } - - protected function cadastrarTipoProcedimentoFixture($dados = []) - { - $objTipoProcedimentoFixture = new TipoProcedimentoFixture(); - $objTipoProcedimentoDTO = $objTipoProcedimentoFixture->carregar([ - 'Nome' => $dados['NOME'] - ]); - - return $objTipoProcedimentoDTO; - } - -} diff --git a/tests_sei41/funcional/tests/MapeamentoEnvioParcialTest.php b/tests_sei41/funcional/tests/MapeamentoEnvioParcialTest.php deleted file mode 100644 index 309e7b77c..000000000 --- a/tests_sei41/funcional/tests/MapeamentoEnvioParcialTest.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php - -/** - * Testes de mapeamento de envio de envio parcial - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoEnvioParcialTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $remetenteB; - - /** - * Teste inicial de cadastro de mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_novo_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->novo(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$remetente['REP_ESTRUTURAS'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['NOME_UNIDADE']); - - sleep(1); - $this->assertNotNull($nomeRepositorioCadastrado); - $this->assertNotNull($nomeUnidadeCadastrado); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Mapeamento de Envio Parcial cadastrado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste para editar mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_editar_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$remetenteB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->editar(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$remetenteB['REP_ESTRUTURAS'], - self::$remetenteB['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['REP_ESTRUTURAS']); - $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['NOME_UNIDADE']); - - sleep(1); - $this->assertNotNull($nomeRepositorioCadastrado); - $this->assertNotNull($nomeUnidadeCadastrado); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Mapeamento de Envio Parcial atualizado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste para pesquisar mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_pesquisar_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - - // Buscar pesquisa vazia - $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS'] . 'B'); - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $this->assertNull($nomeRepositorioCadastrado); - - // Buscar pesquisa com sucesso - $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS']); - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $this->assertNotNull($nomeRepositorioCadastrado); - } - - /** - * Teste para imprimir mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_imprimir_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - - // Buscar pesquisa vazia - $this->paginaCadastroMapEnvioCompDigitais->selecionarImprimir(); - $this->assertTrue(true); - } - - /** - * Teste para excluir mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_excluir_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->selecionarExcluir(); - - sleep(1); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Mapeamento excludo com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/MapeamentoHipoteseLegalTest.php b/tests_sei41/funcional/tests/MapeamentoHipoteseLegalTest.php deleted file mode 100644 index bb93e2fef..000000000 --- a/tests_sei41/funcional/tests/MapeamentoHipoteseLegalTest.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -/** - * Testa a funcionalidade de mapeamento de hiptese legal - */ -class MapeamentoHipoteseLegalTest extends FixtureCenarioBaseTestCase -{ - /** - * @var array - */ - public static $remetente; - - /** - * Verificar se lista de mapeamento de hiptese legal exibida - * - * @group hipotese_legal - * - * @return void - */ - public function test_verificar_lista_mapeamento_hipotese_legal_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaPenHipoteseLegalListar->navegarMapeamentoHipoteseLegalListar(); - $this->assertTrue($this->paginaPenHipoteseLegalListar->existeTabela()); - - $this->sairSistema(); - } -} diff --git a/tests_sei41/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php b/tests_sei41/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php deleted file mode 100644 index 696b26a21..000000000 --- a/tests_sei41/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php +++ /dev/null @@ -1,176 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Desativar e reativar mapeamento entre orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoDesativarReativarTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_desativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Ativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->desativarMapeamento(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi desativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de reativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_reativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Inativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->reativarMapeamento(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_desativacao_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Ativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->desativarMapeamentoCheckbox(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi desativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_reativar_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Inativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->reativarMapeamentoCheckbox(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - $importacaoTiposProcessoFixture = new \ImportacaoTiposProcessoFixture(); - $arrObjPenMapTipoProcedimentoDTO = $importacaoTiposProcessoFixture->buscar([ - 'IdMapeamento' => self::$penOrgaoExternoId - ]); - - foreach ($arrObjPenMapTipoProcedimentoDTO as $objPenMapTipoProcedimentoDTO) { - $importacaoTiposProcessoFixture->remover([ - 'Id' => $objPenMapTipoProcedimentoDTO->getDblId() - ]); - } - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $penOrgaoExternoFixture->remover([ - 'Id' => self::$penOrgaoExternoId, - ]); - - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/MapeamentoTipoProcessoExcluirTest.php b/tests_sei41/funcional/tests/MapeamentoTipoProcessoExcluirTest.php deleted file mode 100644 index 0276282ae..000000000 --- a/tests_sei41/funcional/tests/MapeamentoTipoProcessoExcluirTest.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Excluir mapeamento entre orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoExcluirTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - } - - /** - * Teste para excluir de mapeamento de orgo exteno - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_excluir_mapeamento_orgao_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - sleep(5); - $this->paginaCadastroOrgaoExterno->selecionarExcluirMapOrgao(self::$penOrgaoExternoId); - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Relacionamento entre unidades foi excludo com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/MapeamentoTipoProcessoExportarTest.php b/tests_sei41/funcional/tests/MapeamentoTipoProcessoExportarTest.php deleted file mode 100644 index 9524d5c5c..000000000 --- a/tests_sei41/funcional/tests/MapeamentoTipoProcessoExportarTest.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Exportar tipos de processos - * Pesquisar tipos de processos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoExportarTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - - /** - * Teste de exportao de tipos de processos - * - * @return void - */ - public function test_exportar_tipos_de_processo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaExportarTiposProcesso->navegarExportarTiposProcessos(); - - $this->paginaExportarTiposProcesso->selecionarParaExportar(); - $this->assertEquals( - $this->paginaExportarTiposProcesso->verificarExisteBotao('btnExportarModal'), - 'Exportar' - ); - $this->assertEquals( - $this->paginaExportarTiposProcesso->verificarExisteBotao('btnFecharModal'), - 'Fechar' - ); - $this->paginaExportarTiposProcesso->verificarQuantidadeDeLinhasSelecionadas(); - $this->paginaExportarTiposProcesso->btnExportar(); - - $this->sairSistema(); - } - - /** - * Teste para pesquisar tipos de processos - * - * @return void - */ - public function test_pesquisar_tipos_de_processos() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaExportarTiposProcesso->navegarExportarTiposProcessos(); - $this->paginaExportarTiposProcesso->selecionarPesquisa(); - sleep(1); - $this->assertTrue($this->paginaExportarTiposProcesso->buscarPesquisa()); - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/MapeamentoTipoProcessoReativarTest.php b/tests_sei41/funcional/tests/MapeamentoTipoProcessoReativarTest.php deleted file mode 100644 index d171c163d..000000000 --- a/tests_sei41/funcional/tests/MapeamentoTipoProcessoReativarTest.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo reativar - * Reativar tipos de processos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoReativarTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - public static $arrImportacaoTiposProcessoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - - $importacaoTiposProcessoFixture = new \ImportacaoTiposProcessoFixture(); - $tiposProcessos = $this->getTiposProcessos($objPenOrgaoExternoDTO->getDblId(), 'N'); - $arrObjPenMapTipoProcedimentoDTO = $importacaoTiposProcessoFixture->carregarVariados($tiposProcessos); - - foreach ($arrObjPenMapTipoProcedimentoDTO as $objPenMapTipoProcedimentoDTO) { - self::$arrImportacaoTiposProcessoId[] = $objPenMapTipoProcedimentoDTO->getDblId(); - } - } - - /** - * Teste de reativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_reativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTipoProcessoReativar->navegarTipoProcessoReativar(); - $this->paginaTipoProcessoReativar->reativarMapeamento(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Mapeamento de Tipo de Processo foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_reativar_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTipoProcessoReativar->navegarTipoProcessoReativar(); - $this->paginaTipoProcessoReativar->reativarMapeamentoCheckbox(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Mapeamento de Tipo de Processo foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - $importacaoTiposProcessoFixture = new \ImportacaoTiposProcessoFixture(); - $arrObjPenMapTipoProcedimentoDTO = $importacaoTiposProcessoFixture->buscar([ - 'IdMapeamento' => self::$penOrgaoExternoId - ]); - - foreach ($arrObjPenMapTipoProcedimentoDTO as $objPenMapTipoProcedimentoDTO) { - $importacaoTiposProcessoFixture->remover([ - 'Id' => $objPenMapTipoProcedimentoDTO->getDblId() - ]); - } - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $penOrgaoExternoFixture->remover([ - 'Id' => self::$penOrgaoExternoId, - ]); - - parent::tearDownAfterClass(); - } - - private function getTiposProcessos(int $idMapeamento, string $sinAtivo = 'S') - { - return array( - array( - 'IdMapeamento' => $idMapeamento, - 'IdProcedimento' => 100000348, - 'NomeProcedimento' => mb_convert_encoding('Acompanhamento Legislativo: Congresso Nacional', 'UTF-8', 'ISO-8859-1'), - 'SinAtivo' => $sinAtivo - ), - array( - 'IdMapeamento' => $idMapeamento, - 'IdProcedimento' => 100000425, - 'NomeProcedimento' => mb_convert_encoding('mauro teste', 'UTF-8', 'ISO-8859-1'), - 'SinAtivo' => $sinAtivo - ) - ); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php b/tests_sei41/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php deleted file mode 100644 index bf15fc0b7..000000000 --- a/tests_sei41/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Cadastro mapeamento de orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - } - - /** - * Teste de cadastro de novo mapeamento entre ogros - * - * @return void - */ - public function test_cadastrar_novo_mapeamento_orgao_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - $this->paginaCadastroOrgaoExterno->novoMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - $orgaoOrigem = $this->paginaCadastroOrgaoExterno->buscarOrgaoOrigem(self::$destinatario['NOME_UNIDADE']); - $orgaoDestino = $this->paginaCadastroOrgaoExterno->buscarOrgaoDestino(self::$remetente['NOME_UNIDADE']); - - $this->assertNotNull($orgaoOrigem); - $this->assertNotNull($orgaoDestino); - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Relacionamento entre Unidades cadastrado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Teste para cadastro de mapeamento de orgo exteno j existente - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_cadastrar_mapeamento_orgao_externo_ja_cadastrado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - $this->paginaCadastroOrgaoExterno->novoMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Cadastro de relacionamento entre unidades j existente.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Teste para editar mapeamento de orgo exteno - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_editar_mapeamento_orgao_externo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - - $this->paginaCadastroOrgaoExterno->editarMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - $orgaoOrigem = $this->paginaCadastroOrgaoExterno->buscarOrgaoOrigem(self::$destinatario['NOME_UNIDADE']); - $orgaoDestino = $this->paginaCadastroOrgaoExterno->buscarOrgaoDestino(self::$remetente['NOME_UNIDADE']); - - $this->assertNotNull($orgaoOrigem); - $this->assertNotNull($orgaoDestino); - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Relacionamento entre Unidades atualizado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php b/tests_sei41/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php deleted file mode 100644 index 3ad753e1f..000000000 --- a/tests_sei41/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Listar mapeamento entre orgos - * Importar tipos de processo para relacionamento - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - } - - /** - * Teste para pesquisar mapeamento entre orgos - * - * @Depends test_desativacao_mapeamento_orgao_externo - * - * @return void - */ - public function test_pesquisar_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - - // Buscar pesquisa vazia - $this->paginaCadastroOrgaoExterno->selecionarPesquisa(self::$destinatario['NOME_UNIDADE'] . 'B'); - $nomeRepositorioCadastrado = $this->paginaCadastroOrgaoExterno->buscarNome(self::$destinatario['NOME_UNIDADE']); - $this->assertNull($nomeRepositorioCadastrado); - - // Buscar pesquisa com sucesso - $this->paginaCadastroOrgaoExterno->selecionarPesquisa(self::$destinatario['NOME_UNIDADE']); - $nomeRepositorioCadastrado = $this->paginaCadastroOrgaoExterno->buscarNome(self::$destinatario['NOME_UNIDADE']); - $this->assertNotNull($nomeRepositorioCadastrado); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $penOrgaoExternoFixture->remover([ - 'Id' => self::$penOrgaoExternoId, - ]); - - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php b/tests_sei41/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php deleted file mode 100644 index 2912e6c6a..000000000 --- a/tests_sei41/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -/** - * Testes de mapeamento de envio de envio parcial - */ -class ProcessoBlocoDeTramiteTravasDeTramitacaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objProtocoloDTO; - - /** - * Teste inicial que gera processsos com documentos assinados e bloco, em seguida move para unidade secundaria mantendo-o aberto na atual - * e tenta executar o tramite em bloco para receber a mensagem de erro - * - * @group mapeamento - * - * @return void - */ - public function test_validar_tramite_bloco_mensagem_multi_unidade() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $processoTeste = $this->gerarDadosProcessoTeste($remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste($remetente); - - // Cadastrar novo processo de teste e documento - self::$objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, self::$objProtocoloDTO->getDblIdProtocolo()); - - // Cadastrar novo bloco de tramite e insere protocolo - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abre processo e tramita internamente ele para a unidade secundria, deixando ele aberto na atual - $this->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], true); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - try { - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } catch (Exception $ex) { - $this->assertStringContainsString( - utf8_encode('No possvel tramitar um processo aberto em mais de uma unidade.'), - $ex->getMessage() - ); - } - } - - /** - * Teste seguinte que finaliza o processo na unidade atual deixando-o aberto apenas na unidade secundaria - * e tenta executar o tramite em bloco para receber a mensagem de erro - * - * @group mapeamento - * - * @return void - */ - public function test_validar_tramite_bloco_mensagem_nao_possui_andamento_aberto() - { - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abre e conclui processo na unidade atual, desta forma ficando aberto apenas na unidade secundaria - $this->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $this->paginaProcesso->concluirProcesso(); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - try { - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } catch (Exception $ex) { - $this->assertStringContainsString( - utf8_encode('O processo ' . self::$objProtocoloDTO->getStrProtocoloFormatado() . ' no possui andamento aberto nesta unidade'), - $ex->getMessage() - ); - } - } - -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php b/tests_sei41/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php deleted file mode 100755 index ba6aafd51..000000000 --- a/tests_sei41/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class RecebimentoRecusaJustificativaGrandeTest extends FixtureCenarioBaseTestCase -{ - - protected $destinatarioWs; - protected $servicoPEN; - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - $this->destinatarioWs = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = $this->destinatarioWs['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = $this->destinatarioWs['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $id_tramite = $bancoOrgaoA->query("select max(id_tramite) as id_tramite from md_pen_componente_digital where protocolo = ?", array(self::$protocoloTeste)); - //recusa o tramite contendo justificativa grande - if (array_key_exists("id_tramite", $id_tramite[0])) { - $id_tramite=$id_tramite[0]["id_tramite"]; - }else{ - $id_tramite=$id_tramite[0]["ID_TRAMITE"]; - } - $this->recusarTramite($this->servicoPEN, $id_tramite); - } - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, sprintf("An exception occurred while executing 'INSERT INTO juntadas (numeracao_sequencial, movimento, ativo, vinculada, criado_em, atualizado_em, id, uuid, documentos_juntado_id, volumes_id, atividades_id, tarefas_id, comunicacoes_id, origem_dados_id, criado_por, atualizado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [1, 'DOCUMENTO RECEBIDO VIA INTEGRA\u00c7\u00c3O COM O BARRAMENTO', 1, 0, '2021-12-02 14:21:48', '2021-12-02 14:21:48', 1317074776, '06ba31e8-75ad-4111-82d ...")); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - private function recusarTramite($servicoPEN, $id_tramite) - { - $justificativa = "An exception occurred while executing 'INSERT INTO juntadas (numeracao_sequencial, movimento, ativo, vinculada, criado_em, atualizado_em, id, uuid, documentos_juntado_id, volumes_id, atividades_id, tarefas_id, comunicacoes_id, origem_dados_id, criado_por, atualizado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [1, 'DOCUMENTO RECEBIDO VIA INTEGRA\u00c7\u00c3O COM O BARRAMENTO', 1, 0, '2021-12-02 14:21:48', '2021-12-02 14:21:48', 1317074776, '06ba31e8-75ad-4111-82dc-6f451f51825e', 1333864526, null, null, null, null, 3534979787, null, null]: ORA-00001: restrio exclusiva (SAPIENS.UNIQ_867686DHDKJ97876) violada"; - - $parametros = new stdClass(); - $parametros->recusaDeTramite = new stdClass(); - $parametros->recusaDeTramite->IDT = $id_tramite; - $parametros->recusaDeTramite->justificativa = mb_convert_encoding($justificativa, 'UTF-8', 'ISO-8859-1'); - $parametros->recusaDeTramite->motivo = "99"; - return $servicoPEN->recusarTramite($parametros); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } -} diff --git a/tests_sei41/funcional/tests/TODO.txt b/tests_sei41/funcional/tests/TODO.txt deleted file mode 100755 index 39269254b..000000000 --- a/tests_sei41/funcional/tests/TODO.txt +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################################################################################ -# Lista de testes pendentes de automação e com registro de erro no sistema # -################################################################################################################################################ - -# TODO: Implementar testa para simular erro quando unidades não estão mapeadas em md_pen_unidade -# TODO: Implementar teste para simular se botão tramitar continua aparecendo, mesmo com Barramento indisponível -# TODO: Testar se processo está abrindo normalmente quando não existe comunicação com o barramento -# TODO: Não está sendo tratado as permissões de acesso ao botão de visualizar recibos de trâmite -# TODO: Implementar testes com envio de processo e problema no envio de recibo de conclusão pelo destinatário por questões de indisponibilidade do barramento -# Todo: Implementar teste de desligamento do gearman com vários processos na lista -# TODO: Implementar testes com unidades contendo mapeamentos errados, ou seja, não sendo representando pelo sistema. - - -# TODO: Quando o usuário está sem as devidas permissões aos recursos do módulo, são disparado erros não tratados nas funcionalidades do sistema -# TODO: Ícone de alerta de rejeição e mensagem de rejeição não aparecem na página do processo, somente em Controle de Processo -# TODO: Agendamento de verificação do módulo não está lançando exceção, fazendo que com que o e-mail não seja enviado para o administrador -# TODO: Pesquisa de unidades está registrando erro no log do SEI caso não encontre uma unidade -# TODO: Adicionar botão de pesquisar -# TODO: Pesquisa de unidades deve considerar a também a sigla de unidade ou sigla da hierarquia -# TODO: Mudar popup de barra de progresso para impedir que navegador faça o bloqueio -# TODO: Adicionar botão fechar ao popup de barra de progresso do trâmite externo -# TODO: Adicionar opção de ocultar/extender registros da página de trâmite de processos -# TODO: Implementar tratamento para unidades receptoras -# TODO: Implementar o envio de dados da assinatura digital de documentos externos -# TODO: Implementar trâmite de processos anexados e e-mail com anexos -# TODO: Revisar mensagens de notificação para o usuário final - diff --git a/tests_sei41/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php b/tests_sei41/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php deleted file mode 100755 index f3eb491a8..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php +++ /dev/null @@ -1,234 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco_status6() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocolo = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - ]); - - $this->assertEquals(6, $objBlocoDeTramiteProtocolo[0]->getNumIdAndamento()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco_status7() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->abrirProcesso($objProtocoloDTO->getStrProtocoloFormatado()); - $this->paginaProcesso->cancelarTramitacaoExterna(); - $this->paginaTramitar->alertTextAndClose(true); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocolo = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - ]); - - $this->assertEquals(7, $objBlocoDeTramiteProtocolo[0]->getNumIdAndamento()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco_status9() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($remetente, 'arquivo_extensao_nao_permitida.docx'); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoExternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocolo = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - ]); - - $this->assertEquals(9, $objBlocoDeTramiteProtocolo[0]->getNumIdAndamento()); - return true; - }, PEN_WAIT_TIMEOUT); - } - -} diff --git a/tests_sei41/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php b/tests_sei41/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php deleted file mode 100755 index c76e5b886..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteBlocoDeTramiteSituacaoProcessoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $idsEmAndamento; - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco() - { - self::$idsEmAndamento = [ - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO - ]; - - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals("Aguardando Processamento", $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() - ])[0]; - - $statusEmAndamento = in_array($objBlocoDeTramiteProtocoloFixtureDTO->getNumIdAndamento(), self::$idsEmAndamento); - $this->assertTrue($statusEmAndamento); - return true; - }, PEN_WAIT_TIMEOUT); - } - -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoCadastroTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoCadastroTest.php deleted file mode 100644 index 7e37d24e1..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoCadastroTest.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -/** - * Cadastrar e editrar bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoCadastroTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * Teste de cadastro de novo bloco de tramite externo - * - * @return void - */ - public function test_cadastrar_novo_bloco_para_tramite_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->novoBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->criarNovoBloco(); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Bloco de Trmite externo criado com sucesso!', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Teste para editar bloco de trmite externo j criado - * - * @return void - */ - public function test_editar_bloco_de_tramite() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->editarBlocoDeTramite('Bloco editado para teste automatizado'); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Bloco de trmite externo alterado com sucesso!', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php deleted file mode 100644 index 8967980f4..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php +++ /dev/null @@ -1,240 +0,0 @@ -<?php - -class TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - public static $processoTeste1; - public static $objProtocoloDTO1; - public static $documentoTeste1; - - public static $processoTeste2; - public static $objProtocoloDTO2; - public static $documentoTeste2; - - public static $processoTeste3; - public static $objProtocoloDTO3; - public static $documentoTeste3; - - public static $objBlocoDeTramiteDTO1; - public static $objBlocoDeTramiteDTO2; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - - putenv("DATABASE_HOST=org2-database"); - $objTipoProcessoPadraoFixture = new \TipoProcessoPadraoFixture(); - $objTipoProcessoPadraoFixture->carregar([ - 'Nome' => 'PEN_TIPO_PROCESSO_EXTERNO', - 'Valor' => null - ]); - putenv("DATABASE_HOST=org1-database"); - } - - public function test_tramite_bloco_externo_com_processo_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->prepararCenariosFixtures(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - // Sada do sistema - $this->sairSistema(); - } - - public function test_verificar_envio_processo() - { - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalEmProcessamento = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - try { - $statusImg = $statusTd->byXPath(mb_convert_encoding(".//img[@title='Aguardando Processamento']", 'UTF-8', 'ISO-8859-1')); - if ($statusImg){ - $totalEmProcessamento++; - } - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada - } - } - $this->assertEquals($totalEmProcessamento,0); // Todos processos enviados - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(5); - } - - public function test_verificar_envio_tramite_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $novoStatus); - - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $quantidadeLinhasRecusadas = $this->paginaCadastrarProcessoEmBloco->buscarQuantidadeProcessosRecusados(); - - $this->assertEquals($quantidadeLinhasRecusadas, 1); - - // Sada do sistema - $this->sairSistema(); - } - - public function test_incluir_processo_recusado_em_novo_bloco() - { - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - self::$objBlocoDeTramiteDTO2 = $objBlocoDeTramiteFixture->carregar(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = self::$objProtocoloDTO3->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Verificao do ttulo da pgina - $titulo = mb_convert_encoding("Incluir Processo(s) no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'); - $tituloRetorno = $this->paginaTramiteEmBloco->verificarTituloDaPagina($titulo); - $this->assertEquals($titulo, $tituloRetorno); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO2->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Espera para a mensagem de sucesso aparecer - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . self::$objBlocoDeTramiteDTO2->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } - - private function prepararCenariosFixtures() - { - // Carregar dados do bloco de trmite - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - self::$objBlocoDeTramiteDTO1 = $objBlocoDeTramiteFixture->carregar(); - - // Gerao dos dados para o processo e documento de teste 1 - self::$processoTeste1 = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - // Cadastro do processo e documento 1 - self::$objProtocoloDTO1 = $this->cadastrarProcessoFixture(self::$processoTeste1); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, self::$objProtocoloDTO1->getDblIdProtocolo()); - $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO1->getDblIdProtocolo(), - 'IdBloco' => self::$objBlocoDeTramiteDTO1->getNumId() - ]); - - // Gerao dos dados para o processo e documento de teste 2 - self::$processoTeste2 = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastro do processo e documento 2 - self::$objProtocoloDTO2 = $this->cadastrarProcessoFixture(self::$processoTeste2); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$objProtocoloDTO2->getDblIdProtocolo()); - $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO2->getDblIdProtocolo(), - 'IdBloco' => self::$objBlocoDeTramiteDTO1->getNumId() - ]); - - // Gerao dos dados para o processo e documento de teste 3 recusa - self::$processoTeste3 = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objTipoProcedimentoDTO = $this->cadastrarTipoProcedimentoFixture([ - 'NOME' => 'Recusa: Teste Funcional', - ]); - self::$processoTeste3['ID_TIPO_PROCESSO'] = $objTipoProcedimentoDTO->getNumIdTipoProcedimento(); - - // Cadastro do processo e documento 3 recusa - self::$objProtocoloDTO3 = $this->cadastrarProcessoFixture(self::$processoTeste3); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, self::$objProtocoloDTO3->getDblIdProtocolo()); - $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO3->getDblIdProtocolo(), - 'IdBloco' => self::$objBlocoDeTramiteDTO1->getNumId() - ]); - } - - public static function tearDownAfterClass(): void - { - putenv("DATABASE_HOST=org2-database"); - parent::tearDownAfterClass(); - $objTipoProcessoPadraoFixture = new \TipoProcessoPadraoFixture(); - $objTipoProcessoPadraoFixture->carregar([ - 'Nome' => 'PEN_TIPO_PROCESSO_EXTERNO', - 'Valor' => '100000256' - ]); - putenv("DATABASE_HOST=org1-database"); - } -} diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php deleted file mode 100644 index 6ed68cd23..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php +++ /dev/null @@ -1,177 +0,0 @@ -<?php -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoEstadoProcessosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - public static $documentoTeste; - - /** - * Incluir processo que contm documento de outra unidade dentro de um bloco externo - * - * @return void - */ - public function test_inclusao_de_processo_com_base_no_estado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $arrProcessosTestes = $this->cadastrarBlocoComProcessosComEstadoDeTramite(); - - $arrNupsProcessosTestes = array_keys($arrProcessosTestes); - - $strProcessoNaoEnviado = $arrNupsProcessosTestes[0]; - $strProcessoSucesso = $arrNupsProcessosTestes[1]; - $strProcessoCancelado = $arrNupsProcessosTestes[2]; - $strProcessoRecusado = $arrNupsProcessosTestes[3]; - $strProcessoAguardandoProcessamento = $arrNupsProcessosTestes[4]; - - // Testar Incluso de processo com estado de NO ENVIADO no bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoNaoEnviado, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding( - "Prezado(a) usurio(a), o processo " . $strProcessoNaoEnviado - . " encontra-se inserido no bloco" - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Testar Incluso de processo com estado de SUCESSO em outro bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoSucesso, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Testar Incluso de processo com estado de CANCELADO em outro bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoCancelado, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Testar Incluso de processo com estado de AGUARDANDO PROCESSAMENTO em outro bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoAguardandoProcessamento, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding( - "Prezado(a) usurio(a), o processo " . $strProcessoAguardandoProcessamento - . " encontra-se inserido no bloco" - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra processo em um bloco de tramite - */ - public function cadastrarProcessoBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteProtocoloFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } - - /** - * Registra um bloco contendo um processo, atribuindo-lhe o estado especificado do processo em um tramite em bloco. - * Estados possveis: Aberto, Em processamento, Recusado, Cancelado, Sucesso - * - * @return array - */ - private function cadastrarBlocoComProcessosComEstadoDeTramite() - { - $arrEstados = [ - null, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, - ]; - - $arrProcessosComEstado = []; - for ($i = 0; $i < count($arrEstados); $i++) { - - $objProtocoloDTO = $this->cadastrarProcessos(); - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $dadosBlocoProcesso = []; - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - - $arrProcessosComEstado[$protocoloFormatado] = $arrEstados[$i]; - - // Popula o array com os dados necessrios para esta iterao - $dadosBlocoProcesso['IdUnidadeOrigem'] = self::$remetente['ID_ESTRUTURA']; - $dadosBlocoProcesso['IdUnidadeDestino'] = self::$destinatario['ID_ESTRUTURA']; - $dadosBlocoProcesso['UnidadeDestino'] = self::$destinatario['NOME_UNIDADE']; - $dadosBlocoProcesso['IdBloco'] = $objBlocoDeTramiteDTO->getNumId(); - $dadosBlocoProcesso['IdProtocolo'] = $objProtocoloDTO->getDblIdProtocolo(); - $dadosBlocoProcesso['IdAndamento'] = $arrEstados[$i]; - - $dadosBlocoProcesso['IdRepositorioOrigem'] = self::$remetente['ID_ESTRUTURA'] ?: null; - $dadosBlocoProcesso['IdRepositorioDestino'] = self::$destinatario['ID_REP_ESTRUTURAS'] ?: null; - $dadosBlocoProcesso['RepositorioDestino'] = self::$remetente['NOME_UNIDADE'] ?: null; - - $this->cadastrarProcessoBlocoDeTramite($dadosBlocoProcesso); - } - - return $arrProcessosComEstado; - } - - private function inserirProcessoEmUmBloco($strProtocoloFormatado, $numIdBloco) - { - $this->paginaBase->navegarParaControleProcesso(); - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - $this->paginaTramiteEmBloco->selecionarProcessos([$strProtocoloFormatado]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco($numIdBloco); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(2); - return $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php deleted file mode 100644 index ff03308d5..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php - -/** - * Classe TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest - * - * Esta classe contm testes automatizados para a incluso de processos e documentos - * em blocos de trmite quando h hipteses legais no mapeadas. A classe estende - * FixtureCenarioBaseTestCase e se concentra em dois cenrios principais: - * - * 1. Incluso de processo restrito com hiptese legal no mapeada. - * 2. Incluso de documento restrito com hiptese legal no mapeada. - */ -class TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest extends FixtureCenarioBaseTestCase -{ - /** - * @var array $remetente Dados do remetente do processo - */ - public static $remetente; - - /** - * @var array $destinatario Dados do destinatrio do processo - */ - public static $destinatario; - - /** - * Teste: Incluso de processo em bloco restrito com hiptese legal no mapeada - * - * Este mtodo testa a incluso de um processo restrito em um bloco de trmite - * quando h uma hiptese legal no mapeada associada ao processo. - * - * Passos do teste: - * - Configurao do cenrio de teste com remetente e destinatrio. - * - Gerao de dados do processo e documento para o teste. - * - Cadastro de uma hiptese legal no mapeada para o processo. - * - Incluso do processo no bloco de trmite e verificao da mensagem de alerta. - */ - public function teste_inclusao_de_processo_em_bloco_restrito_com_hipotese_legal_nao_mapeada() - { - // Configurao dos dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Gerao dos dados para o processo e documento de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar Hiptese Legal no mapeada para tramitar o processo - $objHipoteseLegalDTO = $this->cadastrarHipoteseLegal([ - 'HIPOTESE_LEGAL' => 'Hipotese Legal Recusa Processo', - 'HIPOTESE_LEGAL_BASE_LEGAL' => 'Base Hipotese Legal Recusa Processo' - ]); - $processoTeste["HIPOTESE_LEGAL"] = $objHipoteseLegalDTO->getStrNome(). '('. $objHipoteseLegalDTO->getStrBaseLegal().')'; - $processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - - // Cadastro do processo e documento - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegao para controle de processo e seleo de visualizao detalhada - $this->paginaBase->navegarParaControleProcesso(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Verificar se a mensagem de sucesso foi exibida - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - // Validao: a mensagem de alerta deve conter a hiptese legal no mapeada - $this->assertStringContainsString( - mb_convert_encoding('Hiptese legal "'. $objHipoteseLegalDTO->getStrNome() . '" do processo '.$protocoloFormatado.' no mapeada', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } - - /** - * Teste: Incluso de documento restrito com hiptese legal no mapeada - * - * Este mtodo testa a incluso de um documento restrito em um processo com - * uma hiptese legal no mapeada. - * - * Passos do teste: - * - Configurao do cenrio de teste com remetente e destinatrio. - * - Gerao de dados do processo e documento para o teste. - * - Cadastro de uma hiptese legal no mapeada para o documento. - * - Incluso do documento no bloco de trmite e verificao da mensagem de alerta. - */ - public function teste_inclusao_de_processo_em_bloco_com_documento_restrito_com_hipotese_legal_nao_mapeada() - { - // Configurao dos dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Gerao dos dados para o processo e documento de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastro do processo e documento - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - // Cadastrar Hiptese Legal no mapeada para tramitar o documento - $objHipoteseLegalDTO = $this->cadastrarHipoteseLegal([ - 'HIPOTESE_LEGAL' => 'Hipotese Legal Recusa Documento', - 'HIPOTESE_LEGAL_BASE_LEGAL' => 'Base Hipotese Legal Recusa Documento' - ]); - - $documentoTeste["HIPOTESE_LEGAL"] = $objHipoteseLegalDTO->getStrNome(). '('. $objHipoteseLegalDTO->getStrBaseLegal().')'; - $documentoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; - - // Cadastro do documento restrito - $objDocummentoDTO = $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegao para controle de processo e seleo de visualizao detalhada - $this->paginaBase->navegarParaControleProcesso(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Verificar se a mensagem de sucesso foi exibida - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - // Validao: a mensagem de alerta deve conter a hiptese legal no mapeada - $numeroDocumento = str_pad($objDocummentoDTO->getDblIdDocumento(), 6, "0", STR_PAD_LEFT); - $this->assertStringContainsString( - mb_convert_encoding('Hiptese legal "'. $objHipoteseLegalDTO->getStrNome() . '" do documento Ofcio '.$numeroDocumento.' no mapeada', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } -} diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoTest.php deleted file mode 100644 index 8f9df00e5..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoTest.php +++ /dev/null @@ -1,156 +0,0 @@ -<?php -/** - * Cadastrar e editrar bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoInclusaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - - /** - * Teste em duas etapas - * 1 - Verifica se o bloco criado na unidade secundaria vista na listagem da SUA unidade. Esperado: retorne True - * 2 - Verifica se o bloco criado na unidade secundaria vista na listagem de OUTRA unidade. Esperado: retorne False - * - * @return void - */ - public function test_verificar_inclusao_em_bloco_de_outra_unidade() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE_SECUNDARIA']); - $dados = [ - 'IdUnidade' => 110000002, - 'Descricao' => 'bloco_criado_' . self::$remetente['SIGLA_UNIDADE_SECUNDARIA'] - ]; - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite($dados); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - - // etapa 1 - $arrColunaDescricao = $this->elements($this->using('xpath')->value("//td[4]")); - $bolEncontrado = false; - foreach ($arrColunaDescricao as $elemento) { - if (trim($elemento->text()) === self::$objBlocoDeTramiteDTO->getStrDescricao()) { - $bolEncontrado = true; - break; - } - } - - $this->assertTrue($bolEncontrado); - - // etapa 2 - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE']); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - - $arrColunaDescricao = $this->elements($this->using('xpath')->value("//td[4]")); - - $bolEncontrado = false; - foreach ($arrColunaDescricao as $elemento) { - if (trim($elemento->text()) === self::$objBlocoDeTramiteDTO->getStrDescricao()) { - $bolEncontrado = true; - break; - } - } - - $this->assertFalse($bolEncontrado); - - $this->sairSistema(); - } - - /** - * Teste Incluir processo j adicionado em outro bloco - * - * @return void - */ - public function test_incluir_processo_em_mais_de_um_bloco() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - self::$objProtocoloDTO = $this->cadastrarProcessos(); - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $dados = [ - 'IdProtocolo' => self::$objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]; - - $this->cadastrarProcessoBlocoDeTramite($dados); - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $this->paginaBase->navegarParaControleProcesso(); - - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding( - 'Prezado(a) usurio(a), o processo ' . self::$objProtocoloDTO->getStrProtocoloFormatado() - . ' encontra-se inserido no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem() . ' - ' - . self::$objBlocoDeTramiteDTO->getStrDescricao() - . ' da unidade ' . self::$remetente['SIGLA_UNIDADE'] - . '. Para continuar com essa ao necessrio que o processo seja removido do bloco em questo.' - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra processo em um bloco de tramite - */ - public function cadastrarProcessoBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteProtocoloFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php deleted file mode 100644 index ae069d57f..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -/** - * Teste de tramite de processos em bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoLimiteAnexoTest extends FixtureCenarioBaseTestCase -{ - protected static $numQtyProcessos = 2; // max: 99 - protected static $tramitar = false; // mude para false, caso queira rodar o script sem o tramite final - - public static $remetente; - public static $destinatario; - - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - } - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * @large - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - // Definio de dados de teste do processo principal - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_pequeno_A.pdf'); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - for ($i = 0; $i < self::$numQtyProcessos; $i++) { - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoExternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - } - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - if (self::$tramitar == true) { - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - sleep(10); - } else { - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - $qtyProcessos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->assertEquals($qtyProcessos, self::$numQtyProcessos); - } - - $this->sairSistema(); - } - - public function test_verificar_envio_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalConcluidos = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - if (self::$tramitar == true) { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Concludo'])", 'UTF-8', 'ISO-8859-1')); - } else { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Em aberto'])", 'UTF-8', 'ISO-8859-1')); - } - $totalConcluidos++; - } - $this->assertEquals($totalConcluidos, self::$numQtyProcessos); - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(5); - } - - public function test_verificar_envio_tramite_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - - if (self::$tramitar == true) { - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $novoStatus); - } else { - $this->assertEquals(mb_convert_encoding("Aberto", 'UTF-8', 'ISO-8859-1'), $novoStatus); - } - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteTest.php deleted file mode 100644 index 0afa56e49..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoLimiteTest.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php - -/** - * Teste de tramite de processos em bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoLimiteTest extends FixtureCenarioBaseTestCase -{ - protected static $numQtyProcessos = 4; // max: 99 - protected static $tramitar = false; // mude para false, caso queira rodar o script sem o tramite final - - public static $remetente; - public static $destinatario; - - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - public function teste_tramite_bloco_externo() - { - // Definio de dados de teste do processo principal - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - for ($i = 0; $i < self::$numQtyProcessos; $i++) { - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - } - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - - if (self::$tramitar == true) { - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - sleep(5); - - } else { - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - $qtyProcessos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->assertEquals($qtyProcessos, self::$numQtyProcessos); - } - - $this->sairSistema(); - } - - /** - * Verificar se o bloco foi enviado - * - * - * @return void - */ - public function test_verificar_envio_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalConcluidos = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - if (self::$tramitar == true) { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Concludo'])", 'UTF-8', 'ISO-8859-1')); - } else { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Em aberto'])", 'UTF-8', 'ISO-8859-1')); - } - $totalConcluidos++; - } - $this->assertEquals($totalConcluidos, self::$numQtyProcessos); - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(5); - - $this->sairSistema(); - } - - /** - * Verificar atualizao do bloco - * - * - * @return void - */ - public function test_verificar_envio_tramite_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - - if (self::$tramitar == true) { - $this->waitUntil(function ($testCase) { - sleep(5); - $testCase->refresh(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - $this->assertNotEquals('Aguardando Processamento', $novoStatus); - return true; - }, PEN_WAIT_TIMEOUT); - - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $novoStatus); - } else { - $this->assertEquals("Aberto", $novoStatus); - } - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php deleted file mode 100644 index 01902c8da..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** - * Teste de incluso de processo em bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest extends FixtureCenarioBaseTestCase -{ - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - public static $remetente; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - } - - /** - * Teste de incluso de processo em bloco - * @return void - */ - public function teste_incluir_processo_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - self::$objProtocoloDTO = $this->cadastrarProcessos(); - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . self::$objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->paginaBase->sairSistema(); - } - - /** - * Teste de incluso do mesmo processo em bloco - * @return void - */ - public function teste_mesmo_processo_em_bloco() - { - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - $this->assertStringContainsString( - mb_convert_encoding( - 'Prezado(a) usurio(a), o processo ' . self::$objProtocoloDTO->getStrProtocoloFormatado() - . ' encontra-se inserido no bloco ' . self::$objBlocoDeTramiteDTO->getNumOrdem() . ' - ' - . self::$objBlocoDeTramiteDTO->getStrDescricao() - . ' da unidade ' . self::$objBlocoDeTramiteDTO->getStrSiglaUnidade() - . '. Para continuar com essa ao necessrio que o processo seja removido do bloco em questo.' - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->paginaBase->sairSistema(); - } - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite() - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar(); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoTest.php deleted file mode 100644 index 8fcf31a76..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoTest.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php - -/** - * Enviar bloco simples - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - public function teste_tramite_bloco_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - sleep(1); - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoUnidadeTest.php b/tests_sei41/funcional/tests/TramiteBlocoExternoUnidadeTest.php deleted file mode 100644 index 546b099fc..000000000 --- a/tests_sei41/funcional/tests/TramiteBlocoExternoUnidadeTest.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoUnidadeTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - public static $documentoTeste; - - /** - * Incluir processo que contm documento de outra unidade dentro de um bloco externo - * - * @return void - */ - public function test_envio_de_bloco_externo_para_outra_unidade() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - self::$objProtocoloDTO = $this->cadastrarProcessos(); - - $this->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - // enviar processo e criar documento na unidade secundria - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE_SECUNDARIA']); - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE_SECUNDARIA']); - - $this->paginaControleProcesso->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentoTeste['UNIDADE_RESPONSAVEL'] = 110000002; - $this->cadastrarDocumentoInternoFixture($documentoTeste, self::$objProtocoloDTO->getDblIdProtocolo()); - - // devolver processo com novo documento - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE']); - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE']); - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - sleep(2); - - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding( - "Processo(s) includo(s) com sucesso no bloco " . self::$objBlocoDeTramiteDTO->getNumOrdem() - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra processo em um bloco de tramite - */ - public function cadastrarProcessoBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteProtocoloFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteEnvioParcialTest.php b/tests_sei41/funcional/tests/TramiteEnvioParcialTest.php deleted file mode 100644 index 43f5fd9eb..000000000 --- a/tests_sei41/funcional/tests/TramiteEnvioParcialTest.php +++ /dev/null @@ -1,264 +0,0 @@ -<?php - -/** - * Teste de trmite com envio parcial habilitado - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteEnvioParcialTest extends FixtureCenarioBaseTestCase -{ - private $objProtocoloFixture; - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $protocoloTestePrincipal; - public static $documentoTeste1; - public static $documentoTeste2; - public static $arrIdMapEnvioParcialOrgaoA; - public static $arrIdMapEnvioParcialOrgaoB; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - /* - * Tramitar processo para o rgo 2 com envio parcial mapeado - * @group mapeamento - * - * @return void - */ - public function test_criar_processo_contendo_documento_tramitar_remetente_envio_parcial() - { - $this->criarCenarioTramiteEnvioParcialTest(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTestePrincipal->getStrProtocoloFormatado()); - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - $this->sairSistema(); - } - - /* - * Verificar processo recebido no rgo 2 com envio parcial mapeado - * @group mapeamento - * - * @depends test_criar_processo_contendo_documento_tramitar_remetente_envio_parcial - * @return void - */ - public function test_verificar_processo_recebido_tramitar_destinatario_envio_parcial() - { - $strProtocoloTeste = self::$protocoloTestePrincipal->getStrProtocoloFormatado(); - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $testCase->refresh(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - self::$processoTestePrincipal['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - $this->assertTrue(count($listaDocumentos) == 1); - - $this->sairSistema(); - } - - /* - * Devolver processo ao rgo 1 com envio parcial mapeado - * @group mapeamento - * - * @depends test_verificar_processo_recebido_tramitar_destinatario_envio_parcial - * @return void - */ - public function test_criar_documento_processo_recebido_tramitar_destinatario_envio_parcial() - { - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - putenv("DATABASE_HOST=org2-database"); - - $this->paginaBase->navegarParaControleProcesso(); - - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$destinatario); - $protocoloTestePrincipalOrg2 = $this->consultarProcessoFixture(self::$protocoloTestePrincipal->getStrProtocoloFormatado(), \ProtocoloRN::$TP_PROCEDIMENTO); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $protocoloTestePrincipalOrg2->getDblIdProtocolo()); - - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTestePrincipal->getStrProtocoloFormatado()); - - sleep(5); - - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$remetente['REP_ESTRUTURAS'], - self::$remetente['NOME_UNIDADE'], - self::$remetente['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - $this->sairSistema(); - } - - /* - * Verificar processo recebido no rgo 1 com envio parcial mapeado - * @group mapeamento - * - * @depends test_criar_documento_processo_recebido_tramitar_destinatario_envio_parcial - * @return void - */ - public function test_verificar_processo_recebido_tramitar_remetente_envio_parcial() - { - $strProtocoloTeste = self::$protocoloTestePrincipal->getStrProtocoloFormatado(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $testCase->refresh(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - self::$processoTestePrincipal['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - $this->assertTrue(count($listaDocumentos) == 2); - - $documentosTeste = array(self::$documentoTeste1, self::$documentoTeste2); - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], self::$remetente, false, null); - } - - $this->sairSistema(); - } - - /** - * Excluir mapeamentos de Envio Parcial no Remetente e Destinatrio - * @group mapeamento - */ - public static function tearDownAfterClass(): void - { - $penMapEnvioParcialFixture = new \PenMapEnvioParcialFixture(); - - putenv("DATABASE_HOST=org1-database"); - foreach (self::$arrIdMapEnvioParcialOrgaoA as $idMapEnvioParcial) { - $penMapEnvioParcialFixture->remover([ - 'Id' => $idMapEnvioParcial - ]); - } - - putenv("DATABASE_HOST=org2-database"); - foreach (self::$arrIdMapEnvioParcialOrgaoB as $idMapEnvioParcial) { - $penMapEnvioParcialFixture->remover([ - 'Id' => $idMapEnvioParcial - ]); - } - putenv("DATABASE_HOST=org1-database"); - parent::tearDownAfterClass(); - } - - /* - * Criar processo e mapear Envio Parcial no Remetente e Destinatrio - * @group mapeamento - * - * @return void - */ - private function criarCenarioTramiteEnvioParcialTest() - { - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - self::$protocoloTestePrincipal = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, self::$protocoloTestePrincipal->getDblIdProtocolo()); - - // Mapear Envio Parcial no Remetente - self::$arrIdMapEnvioParcialOrgaoA = array(); - putenv("DATABASE_HOST=org1-database"); - $objPenMapEnvioParcialFixture = new PenMapEnvioParcialFixture(); - $objMapEnvioParcial = $objPenMapEnvioParcialFixture->carregar([ - 'IdEstrutura' => self::$destinatario['ID_REP_ESTRUTURAS'], - 'StrEstrutura' => self::$destinatario['REP_ESTRUTURAS'], - 'IdUnidadePen' => self::$destinatario['ID_ESTRUTURA'], - 'StrUnidadePen' => self::$destinatario['NOME_UNIDADE'] - ]); - self::$arrIdMapEnvioParcialOrgaoA[] = $objMapEnvioParcial->getDblId(); - - // Mapear Envio Parcial no Destinatrio - self::$arrIdMapEnvioParcialOrgaoB = array(); - putenv("DATABASE_HOST=org2-database"); - $objPenMapEnvioParcialFixture = new PenMapEnvioParcialFixture(); - $objMapEnvioParcial = $objPenMapEnvioParcialFixture->carregar([ - 'IdEstrutura' => self::$remetente['ID_REP_ESTRUTURAS'], - 'StrEstrutura' => self::$remetente['REP_ESTRUTURAS'], - 'IdUnidadePen' => self::$remetente['ID_ESTRUTURA'], - 'StrUnidadePen' => self::$remetente['NOME_UNIDADE'] - ]); - self::$arrIdMapEnvioParcialOrgaoB[] = $objMapEnvioParcial->getDblId(); - - putenv("DATABASE_HOST=org1-database"); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoAnexadoTest.php b/tests_sei41/funcional/tests/TramiteProcessoAnexadoTest.php deleted file mode 100755 index 2f79fb1a3..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoAnexadoTest.php +++ /dev/null @@ -1,162 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado - * - * Execution Groups - * @group execute_parallel_group2 - */ -class TramiteProcessoAnexadoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Definio de dados de teste do processo a ser anexado - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento1DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - $objDocumento2DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $objProtocoloAnexadoDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento3DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - $objDocumento4DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - self::$protocoloTesteAnexado = $objProtocoloAnexadoDTO->getStrProtocoloFormatado(); - - // Preencher variaveis que sero usadas posteriormente nos testes - self::$documentoTeste1['ARQUIVO'] = str_pad($objDocumento1DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste2['ARQUIVO'] = str_pad($objDocumento2DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste3['ARQUIVO'] = str_pad($objDocumento3DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste4['ARQUIVO'] = str_pad($objDocumento4DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - - // Realizar a anexao de processos - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - } - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_anexado_da_origem - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php b/tests_sei41/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php deleted file mode 100755 index aebc5bbaf..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php +++ /dev/null @@ -1,294 +0,0 @@ -<?php - -/** - * Blocos no tramitados devem possuir estado "Aberto". - * Blocos tramitados no podem ser mais alterados (processos excludos). - */ -class TramiteProcessoBlocoDeTramitePermissoesTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $protocoloTeste; - protected static $numQtyProcessos = 1; // max: 99 - - /** - * Diminui tamanho de doc externo no ORG2 para obter processo com status recusado - */ - public static function setUpBeforeClass() : void { - parent::setUpBeforeClass(); - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(2, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - /** - * Volta tamanho de doc externo no ORG2 para default - */ - public static function tearDownAfterClass() : void { - - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - /** - * Tramite para obter posteriormente processo com status cancelado - */ - public function test_tramite_contendo_documento_interno() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste1, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Troca ordenao de documento para ao tramitar obter status cancelado - * @depends test_tramite_contendo_documento_interno - */ - public function test_trocar_ordenacao_documento() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - putenv("DATABASE_HOST=org1-database"); - - // Definio de dados de teste - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // Validao dos dados do processo principal - try { - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcesso)); - $this->validarDadosDocumento($listaDocumentosProcesso[0], self::$documentoTeste1, self::$remetente); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$remetente); - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada] - print_r($listaDocumentosProcesso); - } - - - $this->paginaProcesso->selecionarProcesso(); - $this->paginaProcesso->navegarParaOrdenarDocumentos(); - sleep(1); - $this->paginaProcesso->trocarOrdenacaoDocumentos(); - - // Validao dos dados do processo principal - try { - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcesso)); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste1, self::$remetente); - $this->validarDadosDocumento($listaDocumentosProcesso[0], self::$documentoTeste2, self::$remetente); - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada] - print_r($listaDocumentosProcesso); - } - sleep(1); - $this->sairSistema(); - - } - - /** - * Inclui processos ao bloco de tramite, excluir e adiciona novamente - * @depends test_trocar_ordenacao_documento - */ - public function test_criar_excluir_processos_em_bloco_externo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - putenv("DATABASE_HOST=org1-database"); - - // Definio de dados de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $arrProtocolos = array(); - // cancelado - $objProtocoloDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - $arrProtocolos[] = $objProtocoloDTO; - - for ($i = 0; $i < self::$numQtyProcessos; $i++) { - // sucesso - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - $arrProtocolos[] = $objProtocoloDTO; - - } - - // recusado - $documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_003.pdf'); - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoExternoFixture($documentoTeste3, $objProtocoloDTO->getDblIdProtocolo()); - $arrProtocolos[] = $objProtocoloDTO; - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - - foreach ($arrProtocolos as $objProtocoloDTO) { - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - } - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - sleep(1); - - // Executa remoo de protocolos do bloco e verifica status - $this->paginaCadastrarProcessoEmBloco->btnSelecionarTodosProcessos(); - $this->paginaCadastrarProcessoEmBloco->btnComandoSuperiorExcluir(); - $qtdProcessoBloco = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - $this->assertEquals($qtdProcessoBloco, 0); - $this->paginaCadastrarProcessoEmBloco->btnComandoSuperiorFechar(); - sleep(1); - - $linhasDaTabela = $this->elements($this->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - foreach ($linhasDaTabela as $linha) { - $numOrdem = $linha->byXPath('./td[2]')->text(); - if ($numOrdem == $objBlocoDeTramiteDTO->getNumOrdem()) { - $status = $linha->byXPath('./td[3]')->text(); - $this->assertEquals($status, 'Aberto'); - $this->assertEquals($objBlocoDeTramiteDTO->getStrStaEstado(), 'A'); - break; - } - } - - // Adiciona novamente protocolos ao bloco - foreach ($arrProtocolos as $objProtocoloDTO) { - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - } - - $this->sairSistema(); - } - - /** - * Tramitar bloco externamente - * @depends test_criar_excluir_processos_em_bloco_externo - */ - public function test_tramite_bloco_externo() - { - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - // Tramitar Bloco - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - } - - - /** - * Verificar se o bloco foi enviado - * @depends test_tramite_bloco_externo - * @return void - */ - public function test_verificar_envio_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalConcluidos = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - try { - $statusImg = $statusTd->byXPath(mb_convert_encoding(".//img[@title='Concludo']", 'UTF-8', 'ISO-8859-1')); - if ($statusImg){ - $totalConcluidos++; - } - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada - } - } - $this->assertEquals($totalConcluidos,self::$numQtyProcessos); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - /** - * Verificar se possivel excluir processos do bloco aps tramite - * @depends test_verificar_envio_processo - * @return void - */ - public function test_verificar_possivel_exclusao_processo_bloco() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - $qtdProcessoBloco = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->paginaCadastrarProcessoEmBloco->btnSelecionarTodosProcessos(); - $this->paginaCadastrarProcessoEmBloco->btnComandoSuperiorExcluir(); - $qtdProcessoBlocoPos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->assertEquals($qtdProcessoBloco,$qtdProcessoBlocoPos); - - sleep(2); - - $this->sairSistema(); - } - -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php b/tests_sei41/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php deleted file mode 100755 index 3e1e44bf1..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoBlocoDeTramiteRegrasTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $objBlocoDeTramiteDTO; - - public static function setUpBeforeClass():void - { - parent::setUpBeforeClass(); - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - self::$objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - } - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_documento_nao_assinado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo(), false); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('No possvel tramitar um processos com documentos gerados e no assinados', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste pra validar mensagem de processo bloqueado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_processo_bloqueado() - { - // Configurao do dados para teste do cenrio - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update protocolo set sta_estado=? where id_protocolo=?", array(4, $objProtocoloDTO->getDblIdProtocolo())); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Prezado(a) usurio(a), o processo ' . $objProtocoloDTO->getStrProtocoloFormatado() . ' encontra-se bloqueado. Dessa forma, no foi possvel realizar a sua insero no bloco selecionado.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste pra validar a mensagem de processo aberto em mais de uma unidade ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_processo_aberto_em_mais_de_uma_unidade() - { - // Configurao do dados para teste do cenrio - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso($objProtocoloDTO->getStrProtocoloFormatado()); - - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], true); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('No possvel tramitar um processo aberto em mais de uma unidade.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - $this->assertStringContainsString( - mb_convert_encoding('Processo ' . $objProtocoloDTO->getStrProtocoloFormatado() . ' est aberto na(s) unidade(s): ' . self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste pra validar a mensagem de processo sem documentos nao pode ser incluido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_processo_sem_documento() - { - // Configurao do dados para teste do cenrio - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('No possvel tramitar um processo sem documentos', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoComCancelamentoTest.php b/tests_sei41/funcional/tests/TramiteProcessoComCancelamentoTest.php deleted file mode 100755 index f32641701..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoComCancelamentoTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * - * Execution Groups - * @group execute_without_receiving - */ -class TramiteProcessoComCancelamentoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de cancelamento de trmite com processo contendo documento gerado (interno) - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_cancelamento_tramite_contendo_documento_interno() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $this->paginaProcesso->cancelarTramitacaoExterna(); - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - $mensagemEsperada = mb_convert_encoding("O trmite externo do processo foi cancelado com sucesso!", 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($mensagemEsperada, $mensagemAlerta); - $this->assertFalse($this->paginaProcesso->processoBloqueado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertFalse($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - - } - - /** - * Teste de verificao que o processo cancelado no foi efetivamente recebido no sistema destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_cancelamento_tramite_contendo_documento_interno - * - * @return void - */ - public function test_verificar_nao_recebimento_processo_destinatario_documento_interno() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } - - - /** - * Teste de cancelamento de trmite com processo contendo documento externo - * - * @group envio - * @large - * - * @depends test_verificar_nao_recebimento_processo_destinatario_documento_interno - * - * @return void - */ - public function test_cancelamento_tramite_contendo_documento_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_001.pdf'); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $this->paginaProcesso->cancelarTramitacaoExterna(); - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - $mensagemEsperada = mb_convert_encoding("O trmite externo do processo foi cancelado com sucesso!", 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($mensagemEsperada, $mensagemAlerta); - $this->assertFalse($this->paginaProcesso->processoBloqueado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertFalse($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - - } - - /** - * Teste de verificao que o processo cancelado no foi efetivamente recebido no sistema destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_cancelamento_tramite_contendo_documento_externo - * - * @return void - */ - public function test_verificar_nao_recebimento_processo_destinatario_documento_externo() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php b/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php deleted file mode 100755 index 9b0848036..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoComDevolucaoAlteracaoURLTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $protocoloTeste; - - - public static function tearDownAfterClass() :void { - - - $arrControleURL=[ - "antigo"=>"[servidor_php]", - "novo"=>"servidor.gov.br" - ]; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $result=$bancoOrgaoA->query("SELECT texto FROM tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?", array("V","S")); - if ($bancoOrgaoA->getBdType()!="oci") { - $strTarja=$result[0]["texto"]; - }else{ - $strTarja=stream_get_contents($result[0]["TEXTO"]); - } - $strTarja = str_replace($arrControleURL['novo'],$arrControleURL['antigo'], $strTarja); - $bancoOrgaoA->execute("update tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=?", array($strTarja,"V","S")); - - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3); - putenv("DATABASE_HOST=org2-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1,self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_processo_apos_devolucao - * - * @return void - */ - public function test_tramitar_processo_da_origem_novo_url() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$documentoTeste5 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - putenv("DATABASE_HOST=org1-database"); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $result=$bancoOrgaoA->query("SELECT texto FROM tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?", array("V","S")); - if ($bancoOrgaoA->getBdType()!="oci") { - $strTarja=$result[0]["texto"]; - }else{ - $strTarja=stream_get_contents($result[0]["TEXTO"]); - } - - $arrControleURL=[ - "antigo"=>"[servidor_php]", - "novo"=>"servidor.gov.br" - ]; - - $strTarja = str_replace($arrControleURL['antigo'],$arrControleURL['novo'], $strTarja); - $bancoOrgaoA->execute("update tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=?", array($strTarja,"V","S")); - - $documentos = array(self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem_novo_url - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao_apos_troca_url() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste3, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php b/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php deleted file mode 100755 index d0335677a..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php +++ /dev/null @@ -1,210 +0,0 @@ -<?php - -/** - * Testes de trmite de um processo tendo a sua devoluo atravs de sua anexao outro processo - * criado no rgo de destino. - * - * O resultado esperado que o novo processo recebido seja criado no remetente e o processo tramitado anteriormente - * seja reaberto, atualizado e anexado ao novo processo recem criado - * - * Execution Groups - * @group execute_alone_group5 - */ -class TramiteProcessoComDevolucaoAnexadoOutroTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de dois processos apartados para o sistema de origem - * - * Posteriormente os dois sero anexados e enviados de volta - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao e a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_anexado_em_outro_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - // Selecionar banco do org2 para fazer insero dos documentos - putenv("DATABASE_HOST=org2-database"); - - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Busca ID que Protocolo principal recebeu no org2 - $objProtocoloAnexadoDTO = $this->consultarProcessoFixture(self::$protocoloTesteAnexado, \ProtocoloRN::$TP_PROCEDIMENTO); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Gerar dados de testes para representar o processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Cadastra processo principal, seus documentos e anexa processo recebido anteriormente - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - - // Cadastra e assina - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4,$objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - putenv("DATABASE_HOST=org1-database"); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abre processo principal para tramitar - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_anexado_em_outro_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste5, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php b/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php deleted file mode 100755 index 7dd5d7fd4..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php +++ /dev/null @@ -1,199 +0,0 @@ -<?php - -/** - * Teste de trmite de um processo com devoluo contendo novos documentos e com outro processo anexado - * - * O resultado esperado que o processo seja desbloqueado na origem, e o processo anexado seja criado e adicionado - * na posio correta dentro do processo. - * - * Execution Groups - * @group execute_alone_group5 - */ -class TramiteProcessoComDevolucaoContendoOutroAnexadoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo simples para outro orgo - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComvalidacaoNoRemetenteFixture(self::$processoTestePrincipal, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTestePrincipal = self::$processoTestePrincipal["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao de um novo processo e sua devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_contendo_outro_anexado_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Gerar dados de testes para representar o processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Cadastra processo anexado, seus documentos e anexar ao processo principal recebido anteriormente - $objProtocoloAnexadoDTO = $this->cadastrarProcessoFixture(self::$processoTesteAnexado); - self::$protocoloTesteAnexado = $objProtocoloAnexadoDTO->getStrProtocoloFormatado(); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Incluir novos documentos relacionados no processo anexado - $objProtocoloPrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_contendo_outro_anexado_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste3, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste5, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoTest.php b/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoTest.php deleted file mode 100755 index a1c428bc6..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoTest.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessoComDevolucaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - putenv("DATABASE_HOST=org2-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php b/tests_sei41/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php deleted file mode 100755 index 5690f39bd..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessoComDocumentoRestritoHipotesePadraoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com documentos restritos no mapeado, mas com hiptese padro definida - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_com_documento_restrito_hipotese_nao_mapeada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Configurao de documento restrito - self::$documentoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; - self::$documentoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO_NAO_MAPEADO"]; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_com_documento_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_restrito_hipotese_nao_mapeada() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_com_documento_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_restrito_hipotese_nao_mapeada() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - //$this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario, false, self::$destinatario["HIPOTESE_RESTRICAO_PADRAO"]); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php b/tests_sei41/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php deleted file mode 100755 index 02e72901f..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessoComDocumentoRestritoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - /** - * Teste de trmite externo de processo com documentos restritos - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_com_documento_restrito() - { - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); // Cadastrar novo processo de teste - self::$documentoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; // Configurao de documento restrito - self::$documentoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; // Configurar Hipotese legal - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, self::$protocoloTeste->getDblIdProtocolo()); // Incluir Documentos no Processo - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_com_documento_restrito - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_restrito() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->pesquisar(self::$protocoloTeste->getStrProtocoloFormatado()); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste->getStrProtocoloFormatado(), $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste->getStrProtocoloFormatado(), $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_com_documento_restrito - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_restrito() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - // 11 - Abrir protocolo na tela de controle de processos - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } - - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php deleted file mode 100755 index 214e32b16..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo um documento externo que reproduz - * antigo erro de corrompimento de dados da biblioteca BeSimple - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_besimple() - { - //Excente tempo de timeout devido ao tamanho do arquivo arquivo_corrompimento_besimplesoap.pdf - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_corrompimento_besimplesoap.pdf'); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, null, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_besimple() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_besimple() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php deleted file mode 100755 index 4954a0c39..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento cancelado - * - * Este mesmo documento deve ser recebido e assinalado com cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento cancelado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_cancelado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - self::$protocoloTeste = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamenteParaCancelamento(self::$remetente['SIGLA_UNIDADE'], self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], [ 'PROTOCOLO' => self::$protocoloTeste ]); - - $this->navegarParaCancelarDocumento(0); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - $processo=self::$processoTeste; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - - $idAnexo = $bancoOrgaoA->query("SELECT an.id_anexo FROM rel_protocolo_protocolo pp - inner join protocolo p on pp.id_protocolo_1=p.id_protocolo - inner join anexo an on an.id_protocolo=pp.id_protocolo_2 - where p.descricao=?",array($processo['DESCRICAO'])); - - if (array_key_exists("id_anexo", $idAnexo[0])) { - $id_Anexo=$idAnexo[0]["id_anexo"]; - }else{ - $id_Anexo=$idAnexo[0]["ID_ANEXO"]; - } - - $bancoOrgaoA->execute("delete from anexo where id_anexo=?",array($id_Anexo)); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_cancelado - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento cancelado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(1, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - - } - -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php deleted file mode 100755 index 7e9434aad..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php +++ /dev/null @@ -1,244 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento cancelado - * - * Este mesmo documento deve ser recebido e assinalado com cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoContendoDocumentoCanceladoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento cancelado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_cancelado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $objProtocoloTesteDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloTesteDTO->getStrProtocoloFormatado(); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, $objProtocoloTesteDTO->getDblIdProtocolo()); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloTesteDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamenteParaCancelamento(self::$remetente['SIGLA_UNIDADE'], self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], [ 'PROTOCOLO' => self::$protocoloTeste ]); - - $this->navegarParaCancelarDocumento(1); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_cancelado - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento cancelado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[1]); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Busca dados do protocolo no org2 - $objProtocoloTesteDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Incluir novos documentos relacionados - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloTesteDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcesso)); - $this->validarDadosDocumento($listaDocumentosProcesso[0], self::$documentoTeste1, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[1]); - $this->validarDadosDocumento($listaDocumentosProcesso[2], self::$documentoTeste3, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php deleted file mode 100755 index dd2bc2fbb..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoExternoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo apenas um documento externo - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_externo - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_externo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_externo - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_externo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php deleted file mode 100755 index 5db274cb4..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Test tramitar processo contendo documento gerado - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * @large - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - //Configurao da unidade destinatrio como outra unidade do mesmo rgo - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['NOME_UNIDADE'] = self::$remetente['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - /** - * @depends test_tramitar_processo_contendo_documento_gerado - * @large - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * @depends test_verificar_origem_processo_contendo_documento_gerado - * @large - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php deleted file mode 100755 index fa510bf50..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php +++ /dev/null @@ -1,130 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteProcessoContendoDocumentoGeradoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo apenas um documento interno (gerado) - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - - // 1 - Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // 2 - Incluir Documentos no Processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // 3 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 4 - Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_gerado - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_gerado - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php deleted file mode 100755 index f89930efc..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoInternoExternoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoInternoTeste; - public static $documentoExternoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo um documento interno e outro externo - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_interno_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoInternoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoExternoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // 1 - Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // 2 - Incluir e assinar documentos no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoInternoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // 3 - Incluir documento externo ao processo - $this->cadastrarDocumentoExternoFixture(self::$documentoExternoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // 4 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 5 - Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_interno_externo - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_interno_externo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 7 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 8 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 9 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 10 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_interno_externo - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_interno_externo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 2); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoInternoTeste, self::$destinatario); - $this->validarDadosDocumento($listaDocumentos[1], self::$documentoExternoTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php deleted file mode 100644 index eabd162b2..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php +++ /dev/null @@ -1,353 +0,0 @@ -<?php -/* -Escopo do caso de teste: - rgo 1: - 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - 2-criar Documento Externo (documentoTeste1) no Processo Principal - 3-criar Documento Interno (documentoTeste2) no Processo Principal - 4-criar Documento Interno (documentoTeste3) no Processo Principal - 5-tramitar Processo Principal para o rgo 2 com validao no remetente - rgo 2: - 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - 10-criar documento externo (documentoTeste4) no Processo Principal - 11-criar documento interno (documentoTeste5) no Processo Principal - 12-tramitar Processo Principal para o rgo 1 com validao no remetente - rgo 1: - 13-verificar correto recebimento do processo no destino (rgo 1) - 14-criar documento interno (documentoTeste6) no Processo Principal - 15-tramitar Processo Principal para o rgo 2 com validao no remetente - rgo 2: - 16-verificar correto recebimento do processo no destino (rgo 2) - 17-criar documento interno (documentoTeste7) no Processo Principal - 18-tramitar Processo Principal para o rgo 1 com validao no remetente - rgo 1: - 19-verificar correto recebimento do processo no destino (rgo 1) -*/ - -/** - * - * Execution Groups - * @group exxecute_parallel - */ -class TramiteProcessoContendoDocumentoMovidoDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteSecundario; - public static $protocoloTestePrincipal; - public static $protocoloTesteSecundario; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $documentoTeste7; - public static $objProtocoloTestePrincipalDTO; - public static $objProtocoloTestePrincipalOrg2DTO; - - - - /* - Escopo da funo: - rgo 1: - 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - 2-criar Documento Externo (documentoTeste1) no Processo Principal - 3-criar Documento Interno (documentoTeste2) no Processo Principal - 4-criar Documento Interno (documentoTeste3) no Processo Principal - 5-tramitar Processo Principal para o rgo 2 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @Depends CenarioBaseTestCase::setUpBeforeClass - @return void - */ - public function test_criar_processo_contendo_documentos_tramitar_remetente() - { - // definir rgo 1 como remetente e rgo 2 como destinatrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - - // 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - // $this->paginaBase->navegarParaControleProcesso(); - self::$objProtocoloTestePrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - self::$protocoloTestePrincipal = self::$objProtocoloTestePrincipalDTO->getStrProtocoloFormatado(); - - // 2-criar Documento Externo (documentoTeste1) no Processo Principal - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // 3-criar Documento Interno (documentoTeste2) no Processo Principal - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // 4-criar Documento Interno (documentoTeste3) no Processo Principal - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // acessar remetente (rgo 1) - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // 5-tramitar Processo Principal para o rgo 2 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 2: - 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - 10-criar documento externo (documentoTeste4) no Processo Principal - 11-criar documento interno (documentoTeste5) no Processo Principal - 12-tramitar Processo Principal para o rgo 1 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_criar_processo_contendo_documentos_tramitar_remetente - @return void - */ - public function test_criar_mover_incluir_documentos_devolver_processo_remetente() - { - // 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como destinatrio e rgo 2 como remetente - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - putenv("DATABASE_HOST=org2-database"); - self::$processoTesteSecundario = $this->gerarDadosProcessoTeste(self::$remetente); - $objProtocoloSecundarioDTO = $this->cadastrarProcessoFixture(self::$processoTesteSecundario); - self::$protocoloTesteSecundario = $objProtocoloSecundarioDTO->getStrProtocoloFormatado(); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // listar documentos do Processo Principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - - // 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - $this->paginaProcesso->selecionarDocumento($listaDocumentosProcessoPrincipal[0]); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso(self::$protocoloTesteSecundario, "Motivo de teste"); - - // 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - $this->paginaProcesso->selecionarDocumento($listaDocumentosProcessoPrincipal[1]); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso(self::$protocoloTesteSecundario, "Motivo de teste"); - - // Consultar processo org-2 - self::$objProtocoloTestePrincipalOrg2DTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, $staProtocolo = 'P'); - - // 10-criar documento externo (documentoTeste4) no Processo Principal - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste4, self::$objProtocoloTestePrincipalOrg2DTO->getDblIdProtocolo()); - - // 11-criar documento interno (documentoTeste5) no Processo Principal - self::$documentoTeste5 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste5,self::$objProtocoloTestePrincipalOrg2DTO->getDblIdProtocolo()); - - // 12-tramitar Processo Principal para o rgo 1 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 1: - 13-verificar correto recebimento do processo no destino (rgo 1) - 14-criar documento interno (documentoTeste6) no Processo Principal - 15-tramitar Processo Principal para o rgo 2 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_criar_mover_incluir_documentos_devolver_processo_remetente - @return void - */ - public function test_incluir_documento_tramitar_destinatario() - { - // 13-verificar correto recebimento do processo no destino (rgo 1) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como remetente e rgo 2 como destinatrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - putenv("DATABASE_HOST=org1-database"); - - self::$objProtocoloTestePrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, $staProtocolo = 'P'); - - // 14-criar documento interno (documentoTeste6) no Processo Principal - self::$documentoTeste6 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste6,self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // 15-tramitar Processo Principal para o rgo 2 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 2: - 16-verificar correto recebimento do processo no destino (rgo 2) - 17-criar documento interno (documentoTeste7) no Processo Principal - 18-tramitar Processo Principal para o rgo 1 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_incluir_documento_tramitar_destinatario - @return void - */ - public function test_incluir_documento_tramitar_remetente() - { - // 16-verificar correto recebimento do processo no destino (rgo 2) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5, self::$documentoTeste6); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como destinatrio e rgo 2 como remetente - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - self::$objProtocoloTestePrincipalOrg2DTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, $staProtocolo = 'P'); - - // 17-criar documento interno (documentoTeste7) no Processo Principal - self::$documentoTeste7 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste7, self::$objProtocoloTestePrincipalOrg2DTO->getDblIdProtocolo()); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // 18-tramitar Processo Principal para o rgo 1 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 1: - 19-verificar correto recebimento do processo no destino (rgo 1) - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_incluir_documento_tramitar_remetente - @return void - */ - public function test_verificar_processo_documento_destino() - { - // 19-verificar correto recebimento do processo no destino (rgo 1) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5, self::$documentoTeste6, self::$documentoTeste7); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - } - -} \ No newline at end of file diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php deleted file mode 100755 index ca147035c..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php +++ /dev/null @@ -1,327 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento movido sem anexo - * - * Este mesmo documento deve ser recebido e assinalado como cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessoContendoDocumentoMovidoSemAnexoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - } - - /** - * Teste inicial de trmite de um processo contendo um documento movido - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_movido_sem_anexo() - { - - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Criar processo secundrio para o qual o documento ser movido - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - // Incluir documentos a ser movido - $documentoMover = $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, self::$protocoloTeste->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - // Navegar para mover documento - $nomeDocArvore = self::$documentoTeste1['TIPO_DOCUMENTO'] . ' 1 (' . str_pad($documentoMover->getDblIdDocumento(), 6, "0", STR_PAD_LEFT) . ')'; - $this->paginaProcesso->selecionarDocumento($nomeDocArvore); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$protocoloTeste->getDblIdProtocolo()); - $this->paginaBase->refresh(); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_movido_sem_anexo - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->pesquisar(self::$protocoloTeste->getStrProtocoloFormatado()); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste->getStrProtocoloFormatado(), $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste->getStrProtocoloFormatado(), $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento movido no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_movido_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - } - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem contendo - * mais dois documentos, sendo um deles movido - * - * @group envio - * - * @depends test_verificar_destino_processo_com_documento_movido_sem_anexo - * - * @return void - */ - public function test_devolucao_processo_para_origem_com_novo_documento_movido_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Mudar banco para cadastrar DTO - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Consultar processo org-2 - $processoOrg2 = $this->consultarProcessoFixture($strProtocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Criar processo secundrio para o qual o documento ser movido - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - - // Incluir documentos a ser movido - $documentoMover = $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $processoOrg2->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - - // Navegar para mover documento - $nomeDocArvore = self::$documentoTeste1['TIPO_DOCUMENTO'] . ' 1 (' . str_pad($documentoMover->getDblIdDocumento(), 6, "0", STR_PAD_LEFT) . ')'; - $this->paginaProcesso->selecionarDocumento($nomeDocArvore); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $processoOrg2->getDblIdProtocolo()); - $this->paginaBase->refresh(); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_para_origem_com_novo_documento_movido_sem_anexo - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->pesquisar(self::$protocoloTeste->getStrProtocoloFormatado()); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste->getStrProtocoloFormatado(), $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste->getStrProtocoloFormatado(), $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_com_dois_documentos_movidos_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcesso)); - $this->validarDocumentoMovido($listaDocumentosProcesso[0]); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[2]); - $this->validarDadosDocumento($listaDocumentosProcesso[3], self::$documentoTeste4, self::$destinatario); - } - - /** - * @inheritDoc - */ - public static function tearDownAfterClass(): void - { - putenv("DATABASE_HOST=org1-database"); - parent::tearDownAfterClass(); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php deleted file mode 100755 index 3288324f2..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php +++ /dev/null @@ -1,269 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento movido - * - * Este mesmo documento deve ser recebido e assinalado como cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoMovidoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento movido - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_movido() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Criar processo principal e processo secundrio - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - - // Cadastrando documentos no processo principal - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, self::$protocoloTeste->getDblIdProtocolo()); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$protocoloTeste->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - self::$protocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // Movendo documento do processo principal para o processo secundrio - $documentoParaMover = $this->paginaProcesso->listarDocumentos()[0]; - $this->paginaProcesso->selecionarDocumento($documentoParaMover); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_movido - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento movido no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_movido() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem contendo - * mais dois documentos, sendo um deles movido - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_com_documento_movido - * - * @return void - */ - public function test_devolucao_processo_para_origem_com_novo_documento_movido() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Criar processo secundrio para o qual o novo documento ser movido - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - putenv("DATABASE_HOST=org2-database"); - - // Criar novo processo secundrio na ORG 2 - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - - // Busca dados do Protocolo principal no ORG 2 - $objProtocoloTesteDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Criar novo documento externo no processo principal recebido na ORG 2" - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloTesteDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - // Acessando novo documento externo e movendo-o ao novo processo secundario da ORG 2 - $listaDeDocumentos = $this->paginaProcesso->listarDocumentos(); - $documentoParaMover = $listaDeDocumentos[array_key_last($listaDeDocumentos)]; - $this->paginaProcesso->selecionarDocumento($documentoParaMover); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Cadastrando novo documento interno no processo principal - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloTesteDTO->getDblIdProtocolo()); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem_com_novo_documento_movido - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_com_dois_documentos_movidos() - { - $strProtocoloTeste = self::$protocoloTeste; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcesso)); - $this->validarDocumentoMovido($listaDocumentosProcesso[0]); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[2]); - $this->validarDadosDocumento($listaDocumentosProcesso[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php b/tests_sei41/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php deleted file mode 100755 index 0df44fcfc..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoVariosDocumentosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentosTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo vrios documentos - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_varios_documentos() - { - //Aumenta o tempo de timeout devido quantidade de arquivos - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentosTeste = array_merge( - array_fill(0, 3, $this->gerarDadosDocumentoInternoTeste(self::$remetente)), - array_fill(0, 3, $this->gerarDadosDocumentoExternoTeste(self::$remetente)) - ); - - shuffle(self::$documentosTeste); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentosTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_varios_documentos - * - * @return void - */ - public function test_verificar_origem_processo_contendo_varios_documentos() - { - $this->setSeleniumServerRequestsTimeout(6000); - - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_varios_documentos - * - * @return void - */ - public function test_verificar_destino_processo_contendo_varios_documentos() - { - $this->setSeleniumServerRequestsTimeout(6000); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentosTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php b/tests_sei41/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php deleted file mode 100755 index 0ed2eb27a..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoDocumentoNaoMapeadoDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoA->setParameter('PEN_TIPO_DOCUMENTO_PADRAO_RECEBIMENTO', null); - } - - function tearDown(): void - { - parent::tearDown(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoA->setParameter('PEN_TIPO_DOCUMENTO_PADRAO_RECEBIMENTO', 999); - } - - /** - * Teste de trmite externo de processo contendo documento no mapeado no destino - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_nao_mapeado_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$destinatario['TIPO_DOCUMENTO_NAO_MAPEADO']; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_nao_mapeado_destino() - { - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(mb_convert_encoding("Processo aberto somente na unidade", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $nomeTipoDocumentoNaoMapeado = mb_convert_encoding(self::$destinatario['TIPO_DOCUMENTO_NAO_MAPEADO'], "ISO-8859-1"); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, - sprintf("O Documento do tipo %s no est mapeado para recebimento no sistema de destino. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro.", $nomeTipoDocumentoNaoMapeado)); - - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - - // Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php b/tests_sei41/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php deleted file mode 100755 index 70bf78aa1..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteProcessoDocumentoNaoMapeadoOrigemTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - public static function setUpBeforeClass() :void { - - parent::setUpBeforeClass(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO', null); - - } - - public static function tearDownAfterClass() :void { - - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO', 999); - - } - - /** - * Teste de trmite externo de processo contendo um documento interno com espcie documental no mapeada - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_documento_interno_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$remetente['TIPO_DOCUMENTO_NAO_MAPEADO']; - - // Cadastrar novo processo de teste - // Incluir Documentos no Processo - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, self::$protocoloTeste->getDblIdProtocolo()); - self::$protocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $tipoDocumento = mb_convert_encoding(self::$documentoTeste["TIPO_DOCUMENTO"], "ISO-8859-1"); - $mensagemEsperada = sprintf("No existe mapeamento de envio para %s no documento", $tipoDocumento); - $this->expectExceptionMessage(mb_convert_encoding($mensagemEsperada, 'UTF-8', 'ISO-8859-1')); - $this->tramitarProcessoExternamente(self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de trmite externo de processo contendo um documento externo com espcie documental no mapeada - * - * @group envio - * @large - * - * @depends test_tramitar_processo_documento_interno_nao_mapeado - * - * @return void - */ - public function test_tramitar_processo_documento_externo_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$remetente['TIPO_DOCUMENTO_NAO_MAPEADO']; - - // Cadastrar novo processo de teste - // Incluir Documentos no Processo - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, self::$protocoloTeste->getDblIdProtocolo()); - self::$protocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $tipoDocumento = mb_convert_encoding(self::$documentoTeste["TIPO_DOCUMENTO"], "ISO-8859-1"); - $mensagemEsperada = sprintf("No existe mapeamento de envio para %s no documento", $tipoDocumento); - $this->expectExceptionMessage(mb_convert_encoding($mensagemEsperada, 'UTF-8', 'ISO-8859-1')); - $this->tramitarProcessoExternamente(self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php b/tests_sei41/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php deleted file mode 100755 index dc1418b3b..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoExtensaoNaoMapeadoDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo extenso no mapeada no destino - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_extensao_nao_mapeada_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_extensao_nao_permitida.docx'); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_extensao_nao_mapeada_destino - * - * @return void - */ - public function test_verificar_origem_processo_contendo_extensao_nao_mapeado_destino() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(mb_convert_encoding("Processo aberto somente na unidade", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, "O formato docx no permitido pelo sistema de destino. Lembre-se que cada rgo/entidade tem autonomia na definio de quantos e quais formatos de arquivo so aceitos pelo seu sistema. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro."); - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_extensao_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php b/tests_sei41/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php deleted file mode 100755 index 52d24a8aa..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoRestritoHipotesePadraoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com restrio de acesso e hiptese legal no mapeada, mas com hiptese padro definida - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_restrito_hipotese_nao_mapeada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO_NAO_MAPEADO"]; - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_origem_processo_restrito_hipotese_nao_mapeada() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_destino_processo_restrito_hipotese_nao_mapeada() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']), - self::$destinatario["HIPOTESE_RESTRICAO_NAO_MAPEADO"]); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoRestritoTest.php b/tests_sei41/funcional/tests/TramiteProcessoRestritoTest.php deleted file mode 100755 index d025d067d..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoRestritoTest.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoRestritoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com restrio de acesso - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_restrito() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_restrito - * - * @return void - */ - public function test_verificar_origem_processo_restrito() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_restrito - * - * @return void - */ - public function test_verificar_destino_processo_restrito() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php b/tests_sei41/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php deleted file mode 100755 index 01eb1d373..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoSemDadosBlocoDeTramiteTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - - /** - * Teste de validar existencia do boto de remover processo do bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_existencia_botao_remover_do_bloco() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste, false); - $this->atualizarProcessoFixture($objProtocoloDTO, ['DESCRICAO' => '']); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - $this->assertStringContainsString( - utf8_encode('Descrio do processo '.$objProtocoloDTO->getStrProtocoloFormatado().' no informado.'), - $mensagem - ); - $this->assertStringContainsString( - utf8_encode('Interessados do processo '.$objProtocoloDTO->getStrProtocoloFormatado().' no informados.'), - $mensagem - ); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php b/tests_sei41/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php deleted file mode 100755 index 1096c867d..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php +++ /dev/null @@ -1,131 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoTamanhoAcimaLimiteDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - - /** - * - * @Depends TramiteProcessoGrandeTest::tearDownAfterClass - * - * @return void - */ - public static function setUpBeforeClass() :void { - - // Reduo de limite mximo de tamanho de documento externo - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(2, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - public static function tearDownAfterClass() :void { - - // Ajuste do tamanho mximo de arquivo externo permitido para padro - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - /** - * Teste de trmite externo de processo contendo documento com tamanho acima do limite no destinatario - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_tamanho_acima_limite_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_003.pdf'); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_tamanho_acima_limite_destino - * - * @return void - */ - public function test_verificar_origem_processo_tamanho_acima_limite_destino() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(mb_convert_encoding("Processo aberto somente na unidade", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, "O tamanho mximo geral permitido para documentos externos"); - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_tamanho_acima_limite_destino - * - * @return void - */ - public function test_verificar_destino_processo_tamanho_acima_limite_destino() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php b/tests_sei41/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php deleted file mode 100755 index ab0589345..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - -class TramiteProcessoUnidadeSemHierarquiaPaiTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo sem devoluo para testar caso de hierarquia sem pai - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_C); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1); - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $paginaProcesso = new PaginaProcesso($this); - $this->assertStringNotContainsString(mb_convert_encoding("externa para SEGES TESTE SEM PAI - - RE CGPRO", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php b/tests_sei41/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php deleted file mode 100755 index eaca7e579..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoValidacaoBotoesAposIncluirTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de validar existencia do boto de remover processo do bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_existencia_botao_remover_do_bloco() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste("Envio Externo de Processo")); - $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste(mb_convert_encoding("Incluir Processo no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'))); - $this->assertTrue($this->paginaProcesso->validarBotaoExiste(mb_convert_encoding("Remover Processo do Bloco de Trmite", 'UTF-8', 'ISO-8859-1'))); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessoValidacaoEnvioTest.php b/tests_sei41/funcional/tests/TramiteProcessoValidacaoEnvioTest.php deleted file mode 100755 index 4911f0d39..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessoValidacaoEnvioTest.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoValidacaoEnvioTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - } - - function tearDown(): void - { - parent::tearDown(); - } - - /** - * Teste de trmite externo com processo no contendo nenhum documento cadastrado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_sem_documentos() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - $this->expectExceptionMessage(mb_convert_encoding("No possvel tramitar um processo sem documentos", 'UTF-8', 'ISO-8859-1')); - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false - ); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php b/tests_sei41/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php deleted file mode 100755 index f25744119..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php +++ /dev/null @@ -1,216 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessosComDevolucaoAmbosAnexadosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de dois processos apartados para o sistema de origem - * - * Posteriormente os dois sero anexados e enviados de volta - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processos_separados_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTestePrincipal, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTestePrincipal = self::$processoTestePrincipal["PROTOCOLO"]; - - $this->sairSistema(); - - // Criao e envio do segundo processo, representando o que ser anexado ao processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento dos dois processos separados no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processos_separados_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processos_separados_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - $this->sairSistema(); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao e a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processos_separados_destino - * - * @return void - */ - public function test_devolucao_processo_anexado_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $objProtocoloAnexadoDTO = $this->consultarProcessoFixture(self::$protocoloTesteAnexado, \ProtocoloRN::$TP_PROCEDIMENTO); - $objProtocoloPrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Cadastra documento Externo ao processo anexado - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Anexa processo ao processo principal - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Cadastra documento Externo ao processo principal - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste6, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - putenv("DATABASE_HOST=org1-database"); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_anexado_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste5, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php b/tests_sei41/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php deleted file mode 100755 index 419099288..000000000 --- a/tests_sei41/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php +++ /dev/null @@ -1,382 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexados considerando cenrio especfico de trmites e devolues sucessivas - * - * O cenrio descreve uma falha relatada pelos usurios em que um erro de inconsistncia era causado aps a realizao dos seguintes passos: - * - * - Trmite de processo simples X do rgo A para o rgo B - * - Adio de novos documentos e devoluo do processo para rgo A - * - Adio de novos documentos no processo X e anexao ao processo Y - * - Trmite do processo Y para rgo B - * - Adio de novos documentos ao processo Y e devoluo para o rgo A - * - Adio de novos documentos e devoluo para rgo B - * - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessosComDevolucoesEAnexacoesTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $documentoTeste7; - public static $documentoTeste8; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - public static $objProtocoloTestePrincipalDTO; - public static $objProtocoloTesteAnexadoDTO; - - - - - /** - * Teste inicial de trmite de processo apartado para o rgo B - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_simples_para_orgaoB() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do segundo processo, representando o que ser anexado ao processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo simples no rgo B - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_simples_para_orgaoB - * - * @return void - */ - public function test_verificar_recebimento_processo_simples_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_simples_destino - * - * @return void - */ - public function test_devolucao_processo_simples_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - - putenv("DATABASE_HOST=org1-database"); - } - - - /** - * Teste de verificao da correta devoluo do processo simples para o rgo A - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_simples_para_origem - * - * @return void - */ - public function test_verificar_devolucao_processo_simples_origem() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - - /** - * Teste de trmite de processos contendo o processo simples anexado outro - * - * @group envio - * @large - * - * @depends test_verificar_devolucao_processo_simples_origem - * - * @return void - */ - public function test_tramitar_processo_anexado_para_orgaoB() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloTestePrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - self::$protocoloTestePrincipal = $objProtocoloTestePrincipalDTO->getStrProtocoloFormatado(); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - $objProtocoloTesteAnexadoDTO = $this->consultarProcessoFixture(self::$protocoloTesteAnexado, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Realizar a anexao de processos - $this->anexarProcessoFixture($objProtocoloTestePrincipalDTO->getDblIdProtocolo(), $objProtocoloTesteAnexadoDTO->getDblIdProtocolo()); - - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste6, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_anexado_para_orgaoB - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[3], self::$documentoTeste4, self::$destinatario); - } - - /** - * Teste de trmite externo de processo realizando nova devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_anexado - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste7 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste8 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Consulta no Org2/B o DTO do Protocolo Principal - $objProtocoloTestePrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Incluir novos documentos relacionados - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste7, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste8, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - putenv("DATABASE_HOST=org1-database"); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(5, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste6, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste7, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[4], self::$documentoTeste8, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_sei41/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php b/tests_sei41/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php deleted file mode 100755 index ade7952e3..000000000 --- a/tests_sei41/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php +++ /dev/null @@ -1,295 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class TramiteRecebimentoDocumentoAnexadoTest extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $processoTeste; - public static $remetente; - public static $destinatario; - public static $servicoPEN; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - - /** - * Teste de envio de metadados do processo contendo documentos anexados - * - * Inicialmente so enviados 3 documentos, sendo um deles refernciado pelos outros dois documentos - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_envio_processo_com_documento_anexado() - { - // Carregar contexto de testes e dados sobre certificado digital - $ordemDocumentoReferenciado = 1; - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_A); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_B, $ordemDocumentoReferenciado); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_C, $ordemDocumentoReferenciado); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - - // Inicia o envio dos trs primeiros documentos - $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentosPrimeiroEnvio, self::$destinatario); - $reciboTramite = $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - /** - * Teste de trmite externo de processo contendo documento anexado com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_envio_processo_com_documento_anexado - * - * @return void - */ - public function test_devolucao_processo_com_documento_anexado_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $arrDocumentosSegundoEnvio = array(self::$documentoTeste4, self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $arrDocumentosSegundoEnvio, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo com documento anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_com_documento_anexado_para_origem - * - * @return void - */ - public function test_verificar_processo_com_documento_anexado_apos_devolucao() - { - $arrDocumentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentos, self::$destinatario); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - } - - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - $processoTeste = parent::gerarDadosProcessoTeste($contextoProducao); - $processoTeste['INTERESSADOS'] = trim(substr($processoTeste['INTERESSADOS'], 0, 15)); - $processoTeste['DESCRICAO'] = trim(substr($processoTeste['DESCRICAO'], 0, 10)); - return $processoTeste; - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTeste = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTeste['INTERESSADOS'] = trim(substr($dadosDocumentoTeste['INTERESSADOS'], 0, 15)); - $dadosDocumentoTeste['DESCRICAO'] = trim(substr($dadosDocumentoTeste['DESCRICAO'], 0, 10)); - return $dadosDocumentoTeste; - } - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } -} diff --git a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php deleted file mode 100755 index d1036ae72..000000000 --- a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php +++ /dev/null @@ -1,403 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteRecebimentoMultiplosComponentesDigitais extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoB['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoB['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, - self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - )); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - $documentoTeste1 = $this->gerarDadosDocumentoInternoTeste($remetente); - $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); - - $novosDocumentos = array($documentoTeste1, $documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - } - - /** - * Teste de recebimento documento avulso com 2 componentes digitais - * - * @return void - */ - public function test_recebimento_documento_avulso_com_2_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($remetente, array(self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B)); - $documentoTeste['INTERESSADOS'] = trim(substr($documentoTeste['INTERESSADOS'], 0, 50)); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoAvulsoTeste($documentoTeste); - $novoTramite = $this->enviarMetadadosDocumento(self::$servicoPEN, $remetente, $destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoDocumentoAvulso(self::$servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvioDocumentoAvulso(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php deleted file mode 100755 index 48982791b..000000000 --- a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php +++ /dev/null @@ -1,397 +0,0 @@ -<?php - -use \utilphp\util; - -class TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - public static $totalDocumentos; - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoA['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoA['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C - )); - - self::$totalDocumentos = array(self::$documentoZip); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem_1() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - $documentoTesteInterno = $this->gerarDadosDocumentoInternoTeste($remetente); - - putenv("DATABASE_HOST=org2-database"); - $novosDocumentos = array($documentoTesteInterno); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - /** - * - * @depends test_devolucao_processo_para_origem_1 - * - * @return void - */ - public function test_devolucao_processo_para_destino_2() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = array_slice(self::$contextoOrgaoB, 0); - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); - - putenv("DATABASE_HOST=org1-database"); - $novosDocumentos = array($documentoTesteExterno); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_sei41/integracao/Readme.md b/tests_sei41/integracao/Readme.md deleted file mode 100755 index 14acc24c1..000000000 --- a/tests_sei41/integracao/Readme.md +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------- -CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI ---------------------------------------------------- - -1 - Atualizar as Dependências do Projeto -Acessar o diretório do projeto sei-teste e atualizar as dependências do composer ->> composer install - -2 - Executar o Servidor de Teste Selenium -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38 lib/selenium-server-standalone-3.11.0.jar - -Windows: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38.exe lib/selenium-server-standalone-3.11.0.jar - - -4 - Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser acessada para configurar os seguintes parâmetros de teste que irão guiar diferentes cenários de teste do sistema: - -4.1 - Configurar todos os parâmetros do arquivo phpunit.xml para guiar o teste de acordo com a atual configuração do banco de dados. Os principais são os seguintes: - - * PHPUNIT_TESTS_URL - - * CONTEXTO_ORGAO_A - - * CONTEXTO_ORGAO_A_URL - - * CONTEXTO_ORGAO_A_SIGLA_ORGAO - - * CONTEXTO_ORGAO_A_REP_ESTRUTURAS - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE - - * CONTEXTO_ORGAO_A_NOME_UNIDADE - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA - - * CONTEXTO_ORGAO_A_USUARIO_LOGIN - - * CONTEXTO_ORGAO_A_USUARIO_SENHA - - * CONTEXTO_ORGAO_A_TIPO_PROCESSO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_CARGO_ASSINATURA - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO - - - - -3 - Executar o Teste Funcional Automatizado - -Linux: ->> ./vendor/bin/phpunit - -Windows: ->> .\vendor\bin\phpunit.bat - - diff --git a/tests_sei41/unitario/Readme.md b/tests_sei41/unitario/Readme.md deleted file mode 100755 index 14acc24c1..000000000 --- a/tests_sei41/unitario/Readme.md +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------- -CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI ---------------------------------------------------- - -1 - Atualizar as Dependências do Projeto -Acessar o diretório do projeto sei-teste e atualizar as dependências do composer ->> composer install - -2 - Executar o Servidor de Teste Selenium -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38 lib/selenium-server-standalone-3.11.0.jar - -Windows: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38.exe lib/selenium-server-standalone-3.11.0.jar - - -4 - Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser acessada para configurar os seguintes parâmetros de teste que irão guiar diferentes cenários de teste do sistema: - -4.1 - Configurar todos os parâmetros do arquivo phpunit.xml para guiar o teste de acordo com a atual configuração do banco de dados. Os principais são os seguintes: - - * PHPUNIT_TESTS_URL - - * CONTEXTO_ORGAO_A - - * CONTEXTO_ORGAO_A_URL - - * CONTEXTO_ORGAO_A_SIGLA_ORGAO - - * CONTEXTO_ORGAO_A_REP_ESTRUTURAS - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE - - * CONTEXTO_ORGAO_A_NOME_UNIDADE - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA - - * CONTEXTO_ORGAO_A_USUARIO_LOGIN - - * CONTEXTO_ORGAO_A_USUARIO_SENHA - - * CONTEXTO_ORGAO_A_TIPO_PROCESSO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_CARGO_ASSINATURA - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO - - - - -3 - Executar o Teste Funcional Automatizado - -Linux: ->> ./vendor/bin/phpunit - -Windows: ->> .\vendor\bin\phpunit.bat - - diff --git a/tests_sei41/unitario/assets/config/ConfiguracaoModPEN.php b/tests_sei41/unitario/assets/config/ConfiguracaoModPEN.php deleted file mode 100755 index fbbf00c0c..000000000 --- a/tests_sei41/unitario/assets/config/ConfiguracaoModPEN.php +++ /dev/null @@ -1,75 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => '/tmp/', - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => '123456', - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - "Gearman" => array( - "Servidor" => "", - "Porta" => "", //Padro: 4730 - ) - ) - ); - } -} diff --git a/tests_sei41/unitario/bootstrap.php b/tests_sei41/unitario/bootstrap.php deleted file mode 100755 index 69fdb7ba6..000000000 --- a/tests_sei41/unitario/bootstrap.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - -//require_once __DIR__ . '/vendor/autoload.php'; - -// define('DIR_SEI_WEB', realpath(DIR_SEI_CONFIG . '/../web')); - -// set_include_path('.:/php/includes:'.realpath(DIR_SEI_CONFIG . '/../../infra/infra_php')); -// require_once DIR_SEI_WEB . '/SEI.php'; -//require_once __DIR__ . '/assets/config/ConfiguracaoModPEN.php'; diff --git a/tests_sei41/unitario/composer.json b/tests_sei41/unitario/composer.json deleted file mode 100755 index 0db18d095..000000000 --- a/tests_sei41/unitario/composer.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "config": { - "platform": { - "php": "7.3.12" - } - }, - - "autoload-dev": { - "files": [ - "/opt/sei/web/SEI.php", - "/opt/sip/web/Sip.php" - ] - }, - - "include-path": [ - "/opt/infra/infra_php" - ], - - "require-dev": { - "phpunit/phpunit": "5.*" - } -} diff --git a/tests_sei41/unitario/composer.phar b/tests_sei41/unitario/composer.phar deleted file mode 100755 index 9c9f54ecd..000000000 Binary files a/tests_sei41/unitario/composer.phar and /dev/null differ diff --git a/tests_sei41/unitario/php.ini b/tests_sei41/unitario/php.ini deleted file mode 100755 index 99d148bf3..000000000 --- a/tests_sei41/unitario/php.ini +++ /dev/null @@ -1,20 +0,0 @@ -[php] -; Parâmetros recomendados no Manual de Instalação do SEI 3.0.0 -default_charset = "iso-8859-1" -session.gc_maxlifetime = 28800 -short_open_tag = On -default_socket_timeout = 60 -max_input_vars = 2000 -magic-quotes-gpc = 0 -magic_quotes_runtime = 0 -magic_quotes_sybase = 0 -post_max_size = 110M -upload_max_filesize = 100M - -; Parâmetros recomendados para ambiente de desenvolvimento -error_reporting = E_ALL -display_errors = On -display_startup_errors = On -track_errors = On -html_errors = On -always_populate_raw_post_data = -1 \ No newline at end of file diff --git a/tests_sei41/unitario/phpunit.xml b/tests_sei41/unitario/phpunit.xml deleted file mode 100755 index bd3fb6dac..000000000 --- a/tests_sei41/unitario/phpunit.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit bootstrap="bootstrap.php" colors="true" verbose="true"> - <php> - <!-- Localização do diretório onde está contido os arquivos de configuração do SEI --> - <const name="DIR_SEI_CONFIG" value="/opt/sei/config"/> - </php> -</phpunit> diff --git a/tests_sei41/unitario/rn/ProcessoEletronicoRNTest.php b/tests_sei41/unitario/rn/ProcessoEletronicoRNTest.php deleted file mode 100755 index dedc8dbe7..000000000 --- a/tests_sei41/unitario/rn/ProcessoEletronicoRNTest.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -use PHPUnit\Framework\TestCase; - -final class ProcessoEletronicoRNTest extends TestCase -{ - private $ProcessoEletronicoRN; - - public function setUp() - { - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); - } - - /** - * Testes do mtodo privado reduzirCampoTexto - * - * @return void - */ - public function testReduzirCampoTexto() - { - $numTamanhoMaximo = 53; - // Teste considerando uma palavra pequena ao final do texto - $strTexto = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee fffffffff ggggggggg hhhhhhhhh iiiiiiiii"; - $strResultadoEsperado = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas uma palavra - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com uma palavra grande ao final - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando texto longo e palavro curta ao finals - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto curto abaixo do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa a"; - $strResultadoEsperado = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - // Teste considerando um texto nulo - $strTexto = null; - $strResultadoEsperado = null; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com ultima palavra menor que a reticencias - $strTexto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniamr quis"; - $strResultadoEsperado = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniam ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - } - - public function testCompararVersoes(){ - $this->assertTrue(InfraUtil::compararVersoes("0.0.1", "<", "0.0.2")); - $this->assertTrue(InfraUtil::compararVersoes("0.1.0", "<", "0.2.0")); - $this->assertTrue(InfraUtil::compararVersoes("1.0.0", "<", "2.0.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "==", "4.0.3.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "<", "4.0.3.1")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.4", ">", "4.0.3.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3.0", "==", "4.0.3.5", 3, true)); - } -} diff --git a/tests_sei3/funcional/Readme.md b/tests_sei5/funcional/Readme.md similarity index 100% rename from tests_sei3/funcional/Readme.md rename to tests_sei5/funcional/Readme.md diff --git a/tests_sei3/funcional/assets/arquivos/arquivo_pequeno.txt b/tests_sei5/funcional/assets/arquivos/arquivo_pequeno.txt similarity index 100% rename from tests_sei3/funcional/assets/arquivos/arquivo_pequeno.txt rename to tests_sei5/funcional/assets/arquivos/arquivo_pequeno.txt diff --git a/tests_sei3/funcional/assets/arquivos/arquivo_pequeno_A.pdf b/tests_sei5/funcional/assets/arquivos/arquivo_pequeno_A.pdf similarity index 100% rename from tests_sei3/funcional/assets/arquivos/arquivo_pequeno_A.pdf rename to tests_sei5/funcional/assets/arquivos/arquivo_pequeno_A.pdf diff --git a/tests_sei3/funcional/assets/arquivos/arquivo_pequeno_B.pdf b/tests_sei5/funcional/assets/arquivos/arquivo_pequeno_B.pdf similarity index 100% rename from tests_sei3/funcional/assets/arquivos/arquivo_pequeno_B.pdf rename to tests_sei5/funcional/assets/arquivos/arquivo_pequeno_B.pdf diff --git a/tests_sei3/funcional/assets/arquivos/arquivo_pequeno_C.pdf b/tests_sei5/funcional/assets/arquivos/arquivo_pequeno_C.pdf similarity index 100% rename from tests_sei3/funcional/assets/arquivos/arquivo_pequeno_C.pdf rename to tests_sei5/funcional/assets/arquivos/arquivo_pequeno_C.pdf diff --git a/tests_sei3/funcional/assets/arquivos/test_files_index.txt b/tests_sei5/funcional/assets/arquivos/test_files_index.txt similarity index 100% rename from tests_sei3/funcional/assets/arquivos/test_files_index.txt rename to tests_sei5/funcional/assets/arquivos/test_files_index.txt diff --git a/tests_sei41/funcional/assets/config/ConfiguracaoModPEN.php b/tests_sei5/funcional/assets/config/ConfiguracaoModPEN.php similarity index 96% rename from tests_sei41/funcional/assets/config/ConfiguracaoModPEN.php rename to tests_sei5/funcional/assets/config/ConfiguracaoModPEN.php index 042c57061..d3ceafb68 100755 --- a/tests_sei41/funcional/assets/config/ConfiguracaoModPEN.php +++ b/tests_sei5/funcional/assets/config/ConfiguracaoModPEN.php @@ -36,9 +36,9 @@ public function getArrConfiguracoes() "PEN" => array( // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", + // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/ + // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/rest/v3/ + "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/", // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema diff --git a/tests_sei41/funcional/assets/config/ConfiguracaoSEI.php b/tests_sei5/funcional/assets/config/ConfiguracaoSEI.php similarity index 93% rename from tests_sei41/funcional/assets/config/ConfiguracaoSEI.php rename to tests_sei5/funcional/assets/config/ConfiguracaoSEI.php index 7a99562a3..a4cbd5155 100755 --- a/tests_sei41/funcional/assets/config/ConfiguracaoSEI.php +++ b/tests_sei5/funcional/assets/config/ConfiguracaoSEI.php @@ -32,8 +32,14 @@ public function getArrConfiguracoes(){ //'LitigiosoIntegracao' => 'litigioso', //'UtilidadesIntegracao' => 'utilidades', //'MdJulgarIntegracao' => 'trf4/julgamento', - //'MdWsSeiRest' => 'wssei', - 'PENIntegracao' => 'pen', + //'MdWsSeiRest' => 'wssei/', + 'PENIntegracao' => 'pen', + //'MdGestaoDocumentalIntegracao' => 'gestao-documental', + //'ProtocoloIntegradoIntegracao' => 'protocolo-integrado', + //'AssinaturaAvancadaIntegracao' => 'assinatura-avancada', + //'LoginUnicoIntegracao' => 'loginunico', + //'MdRespostaIntegracao' => 'mod-sei-resposta', + //'MdIncomIntegracao' => 'incom', ), ), @@ -130,6 +136,8 @@ public function getArrConfiguracoes(){ 'TempoCommitProtocolos' => 300, 'TempoCommitBasesConhecimento' => 60, 'TempoCommitPublicacoes' => 60, + 'Usuario' => 'sei', + 'Senha' => 'SolrSei123$', ), 'JODConverter' => array( diff --git a/tests_sei4/funcional/assets/config/ConfiguracaoSip.php b/tests_sei5/funcional/assets/config/ConfiguracaoSip.php similarity index 100% rename from tests_sei4/funcional/assets/config/ConfiguracaoSip.php rename to tests_sei5/funcional/assets/config/ConfiguracaoSip.php diff --git a/tests_sei4/funcional/composer.json b/tests_sei5/funcional/assets/config/composer.json similarity index 54% rename from tests_sei4/funcional/composer.json rename to tests_sei5/funcional/assets/config/composer.json index 43ad659c7..b1507ec37 100755 --- a/tests_sei4/funcional/composer.json +++ b/tests_sei5/funcional/assets/config/composer.json @@ -1,29 +1,18 @@ -{ - "config": { - "platform": { - "php": "7.3.12" - } - }, - - "autoload": { - "classmap": [ - "src/", - "sei/modpen/" - ] - }, - - "autoload-dev": { - "psr-4": { - "Tests\\": "sei/" - } - }, - - "require-dev": { - "phpunit/phpunit": "8.*", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit-selenium": "*", - "besimple/soap": "*", - "brandonwamboldt/utilphp": "1.1.*", - "brianium/paratest": "4.*" - } -} +{ + "config": { + "platform": { + "php": "7.3.12" + } + }, + + + "require-dev": { + "phpunit/phpunit": "8.*", + "phpunit/php-code-coverage": "*", + "phpunit/phpunit-selenium": "*", + "besimple/soap": "*", + "brandonwamboldt/utilphp": "1.1.*", + "brianium/paratest": "4.*", + "guzzlehttp/guzzle": "^7.0" + } +} \ No newline at end of file diff --git a/tests_sei3/funcional/assets/config/lauch.json.example b/tests_sei5/funcional/assets/config/lauch.json.example similarity index 100% rename from tests_sei3/funcional/assets/config/lauch.json.example rename to tests_sei5/funcional/assets/config/lauch.json.example diff --git a/tests_sei4/funcional/assets/config/supervisor.ini b/tests_sei5/funcional/assets/config/supervisor.ini similarity index 100% rename from tests_sei4/funcional/assets/config/supervisor.ini rename to tests_sei5/funcional/assets/config/supervisor.ini diff --git a/tests_sei5/funcional/assets/config/teste.txt b/tests_sei5/funcional/assets/config/teste.txt new file mode 100755 index 000000000..e69de29bb diff --git a/tests_sei3/funcional/assets/config/xdebug.ini b/tests_sei5/funcional/assets/config/xdebug.ini similarity index 100% rename from tests_sei3/funcional/assets/config/xdebug.ini rename to tests_sei5/funcional/assets/config/xdebug.ini diff --git a/tests_sei3/funcional/assets/cron.d/sei b/tests_sei5/funcional/assets/cron.d/sei similarity index 100% rename from tests_sei3/funcional/assets/cron.d/sei rename to tests_sei5/funcional/assets/cron.d/sei diff --git a/tests_sei3/funcional/assets/cron.d/sip b/tests_sei5/funcional/assets/cron.d/sip old mode 100644 new mode 100755 similarity index 100% rename from tests_sei3/funcional/assets/cron.d/sip rename to tests_sei5/funcional/assets/cron.d/sip diff --git a/tests_sei3/funcional/assets/proxy/org1.localhost.conf b/tests_sei5/funcional/assets/proxy/org1.localhost.conf similarity index 100% rename from tests_sei3/funcional/assets/proxy/org1.localhost.conf rename to tests_sei5/funcional/assets/proxy/org1.localhost.conf diff --git a/tests_sei3/funcional/assets/proxy/org2.localhost.conf b/tests_sei5/funcional/assets/proxy/org2.localhost.conf similarity index 100% rename from tests_sei3/funcional/assets/proxy/org2.localhost.conf rename to tests_sei5/funcional/assets/proxy/org2.localhost.conf diff --git a/tests_sei41/funcional/bootstrap.php b/tests_sei5/funcional/bootstrap.php similarity index 91% rename from tests_sei41/funcional/bootstrap.php rename to tests_sei5/funcional/bootstrap.php index 159d03b50..5e0d913b7 100755 --- a/tests_sei41/funcional/bootstrap.php +++ b/tests_sei5/funcional/bootstrap.php @@ -1,10 +1,14 @@ <?php require_once __DIR__ . '/vendor/autoload.php'; + +define("DIR_SEI_VENDOR", __DIR__ . '/vendor'); require_once __DIR__ . '/sei/src/sei/web/SEI.php'; -define("DIR_SEI_WEB", __DIR__ . '/sei/src/sei/web/'); +if (!defined("DIR_SEI_WEB")){ + define("DIR_SEI_WEB", __DIR__ . '/sei/src/sei/web/'); +} define("DIR_TEST", __DIR__ ); define("DIR_PROJECT", __DIR__ . '/..' ); define("DIR_INFRA", __DIR__ . '/../src/infra/infra_php' ); diff --git a/tests_sei41/funcional/composer.json b/tests_sei5/funcional/composer.json similarity index 78% rename from tests_sei41/funcional/composer.json rename to tests_sei5/funcional/composer.json index 311ec3e96..acbb90ebc 100755 --- a/tests_sei41/funcional/composer.json +++ b/tests_sei5/funcional/composer.json @@ -1,7 +1,7 @@ { "config": { "platform": { - "php": "7.3.12" + "php": "8.2" } }, @@ -24,6 +24,7 @@ "phpunit/phpunit-selenium": "*", "besimple/soap": "*", "brandonwamboldt/utilphp": "1.1.*", - "brianium/paratest": "4.*" + "brianium/paratest": "4.*", + "guzzlehttp/guzzle": "^7.0" } } diff --git a/tests_sei3/funcional/composer.phar b/tests_sei5/funcional/composer.phar similarity index 100% rename from tests_sei3/funcional/composer.phar rename to tests_sei5/funcional/composer.phar diff --git a/tests_sei4/funcional/docker-compose.yml b/tests_sei5/funcional/docker-compose.yml similarity index 85% rename from tests_sei4/funcional/docker-compose.yml rename to tests_sei5/funcional/docker-compose.yml index 959cf6378..011ac078d 100755 --- a/tests_sei4/funcional/docker-compose.yml +++ b/tests_sei5/funcional/docker-compose.yml @@ -4,17 +4,17 @@ services: ### CONTAINERS COMPARTILHADOS ENTRE OS AMBIENTES DE TESTE ### smtp: - image: processoeletronico/vagrant_sei4_mailcatcher:${ENVIRONMENT_VERSION} + image: processoeletronico/mailcatcher:${ENVIRONMENT_VERSION} ports: - "1080:1080" org1-memcached: - image: processoeletronico/vagrant_sei4_memcached:${ENVIRONMENT_VERSION} + image: processoeletronico/memcached:${ENVIRONMENT_VERSION} ports: - "11211" org2-memcached: - image: processoeletronico/vagrant_sei4_memcached:${ENVIRONMENT_VERSION} + image: processoeletronico/memcached:${ENVIRONMENT_VERSION} ports: - "11211" @@ -27,7 +27,10 @@ services: links: - org1-http:org1-http - org2-http:org2-http - + solr: + image: ${SOLR_IMAGE}:${ENVIRONMENT_VERSION} + ports: + - "8983:8983" selenium: image: selenium/standalone-chrome-debug links: @@ -39,10 +42,10 @@ services: volumes: - /dev/shm:/dev/shm - ./assets/arquivos/test_files_index.txt:/test_files_index.txt - - /tmp:/tmp + - .tmp:/tmp php-test-functional: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} + image: ${HTTP_IMAGE}:${ENVIRONMENT_VERSION} depends_on: - org1-database - org2-database @@ -51,6 +54,7 @@ services: - ${SEI_PATH}/sei:/opt/sei - ${SEI_PATH}/sip:/opt/sip - ${SEI_PATH}/infra:/opt/infra + - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - .:/tests - ${SEI_PATH}/../tests:/tests/sei - ${SEI_PATH}/../src:/tests/sei/src @@ -58,9 +62,9 @@ services: - ../../src/dto:/tests/sei/modpen/dto - ../../src/bd:/tests/sei/modpen/bd - ./assets/config:/opt/sei/config/mod-pen - - /tmp:/tmp - - /tmp/sei_arquivos_1:/var/sei/arquivos/${ORG1_DATABASE_HOST} - - /tmp/sei_arquivos_2:/var/sei/arquivos/${ORG2_DATABASE_HOST} + - .tmp:/tmp + - .tmp/sei_arquivos_1:/var/sei/arquivos/${ORG1_DATABASE_HOST} + - .tmp/sei_arquivos_2:/var/sei/arquivos/${ORG2_DATABASE_HOST} - ./assets/config/ConfiguracaoSEI.php:/tests/sei/src/sei/config/ConfiguracaoSEI.php:ro - ../../src:/tests/sei/src/sei/web/modulos/pen - ./assets/config:/tests/sei/src/sei/config/mod-pen @@ -82,11 +86,12 @@ services: - DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT} - SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} + - APP_SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - SIP_DATABASE_USER=${SIP_DATABASE_USER} - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - + - HOST_URL=http://${ORG1_HOSTNAME}:${ORG1_PORT} extra_hosts: - "host.docker.internal:host-gateway" links: @@ -96,7 +101,7 @@ services: command: "true" php-test-unit: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} + image: ${HTTP_IMAGE}:${ENVIRONMENT_VERSION} volumes: - ${SEI_PATH}/sei:/opt/sei - ${SEI_PATH}/sip:/opt/sip @@ -118,7 +123,6 @@ services: - ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - ORG2_CERTIFICADO=${ORG2_CERTIFICADO} - ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - extra_hosts: - "host.docker.internal:host-gateway" command: "true" @@ -134,7 +138,7 @@ services: - "${ORG1_DATABASE_HOST_PORT}:${ORG1_DATABASE_GUEST_PORT}" org1-http: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} + image: ${HTTP_IMAGE}:${ENVIRONMENT_VERSION} restart: always depends_on: - org1-database @@ -150,7 +154,10 @@ services: - ../../src/scripts:/opt/sip/scripts/mod-pen - ../../src/bin:/opt/sei/bin/mod-pen - ../../src:/opt/sei/web/modulos/pen - - /tmp/sei_arquivos_1:/var/sei/arquivos + - .tmp/sei_arquivos_1:/var/sei/arquivos + - ./assets/config/composer.json:/opt/sei/web/modulos/pen/composer.json + - ./composer.phar:/opt/sei/web/modulos/pen/composer.phar + - ../../vendor:/opt/sei/web/modulos/pen/vendor environment: - LANG=pt_BR.ISO-8859-1 - HOST_URL=http://${ORG1_HOSTNAME}:${ORG1_PORT} @@ -165,7 +172,6 @@ services: - DATABASE_HOST=${ORG1_DATABASE_HOST} - DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT} - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - SEI_DATABASE_USER=${SEI_DATABASE_USER} @@ -174,13 +180,13 @@ services: - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - SIP_DATABASE_USER=${SIP_DATABASE_USER} - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - "host.docker.internal:host-gateway" links: - org1-memcached:memcached - smtp:smtp - org1-database:${ORG1_DATABASE_HOST} + - solr:solr ### CONTAINERS DO AMBIENTE DO ÓRGÃO 2 ### @@ -193,7 +199,7 @@ services: - "${ORG2_DATABASE_HOST_PORT}:${ORG2_DATABASE_GUEST_PORT}" org2-http: - image: processoeletronico/vagrant_sei4_httpd:${ENVIRONMENT_VERSION} + image: ${HTTP_IMAGE}:${ENVIRONMENT_VERSION} restart: always depends_on: - org2-database @@ -209,7 +215,10 @@ services: - ../../src:/opt/sei/web/modulos/pen - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - /tmp/sei_arquivos_2:/var/sei/arquivos + - .tmp/sei_arquivos_2:/var/sei/arquivos + - ./assets/config/composer.json:/opt/sei/web/modulos/pen/composer.json + - ./composer.phar:/opt/sei/web/modulos/pen/composer.phar + - ../../vendor:/opt/sei/web/modulos/pen/vendor environment: - LANG=pt_BR.ISO-8859-1 - HOST_URL=http://${ORG2_HOSTNAME}:${ORG2_PORT} @@ -224,7 +233,6 @@ services: - DATABASE_HOST=${ORG2_DATABASE_HOST} - DATABASE_PORT=${ORG2_DATABASE_GUEST_PORT} - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_CHAVE_ACESSO=${ORG2_APP_SEI_CHAVE_ACESSO} - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - SEI_DATABASE_USER=${SEI_DATABASE_USER} @@ -233,10 +241,10 @@ services: - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - SIP_DATABASE_USER=${SIP_DATABASE_USER} - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - "host.docker.internal:host-gateway" links: - org2-memcached:memcached - smtp:smtp - org2-database:${ORG2_DATABASE_HOST} + - solr:solr diff --git a/tests_sei41/funcional/env_mysql b/tests_sei5/funcional/env_mysql similarity index 89% rename from tests_sei41/funcional/env_mysql rename to tests_sei5/funcional/env_mysql index 85970b81f..45063f639 100755 --- a/tests_sei41/funcional/env_mysql +++ b/tests_sei5/funcional/env_mysql @@ -1,6 +1,10 @@ ##### Diretório em que está localizada a instalação do SEI ##### SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 +ENVIRONMENT_VERSION=3.6.0 + +HTTP_IMAGE=processoeletronico/app-dev-php8 +SOLR_IMAGE=processoeletronico/solr9.6.1 + SEI_CONFIG=./assets/config/ConfiguracaoSEI.php SEI_DATABASE_NAME=sei SEI_DATABASE_USER=sei_user @@ -11,7 +15,6 @@ SIP_DATABASE_NAME=sip SIP_DATABASE_USER=sip_user SIP_DATABASE_PASSWORD=sip_user - ############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### ORG1_HOSTNAME=org1-http ORG1_PORT=8000 @@ -21,10 +24,9 @@ ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3 ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - ##### BANCO DE DADOS DO ÓRGÃO 1 ##### # Configurações do banco de dados MYSQL do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_mysql +ORG1_DATABASE_IMAGE=processoeletronico/mysql8-sei50 ORG1_DATABASE_HOST=org1-database ORG1_DATABASE_TYPE=MySql ORG1_DATABASE_GUEST_PORT=3306 @@ -44,7 +46,7 @@ ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX # Configurações do banco de dados MYSQL do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_mysql +ORG2_DATABASE_IMAGE=processoeletronico/mysql8-sei50 ORG2_DATABASE_HOST=org2-database ORG2_DATABASE_TYPE=MySql ORG2_DATABASE_GUEST_PORT=3306 diff --git a/tests_super/funcional/env_oracle b/tests_sei5/funcional/env_oracle similarity index 95% rename from tests_super/funcional/env_oracle rename to tests_sei5/funcional/env_oracle index 53778e929..2bd26fafa 100755 --- a/tests_super/funcional/env_oracle +++ b/tests_sei5/funcional/env_oracle @@ -1,6 +1,9 @@ ##### Diretório em que está localizada a instalação do SEI ##### SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 +ENVIRONMENT_VERSION=3.6.0 + +HTTP_IMAGE=processoeletronico/app-dev-php8 +SOLR_IMAGE=processoeletronico/solr9.6.1 SEI_CONFIG=./assets/config/ConfiguracaoSEI.php SEI_DATABASE_NAME=sei @@ -32,8 +35,6 @@ ORG1_DATABASE_DATA_DIR=/opt/oracle/oradata CONTEXTO_ORGAO_A_DB_SEI_DSN="oci:dbname=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=org1-database)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))" - - ############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### ORG2_HOSTNAME=org2-http diff --git a/tests_sei41/funcional/env_postgresql b/tests_sei5/funcional/env_postgresql old mode 100644 new mode 100755 similarity index 94% rename from tests_sei41/funcional/env_postgresql rename to tests_sei5/funcional/env_postgresql index 9a4c694cd..a885b1557 --- a/tests_sei41/funcional/env_postgresql +++ b/tests_sei5/funcional/env_postgresql @@ -1,6 +1,9 @@ ##### Diretório em que está localizada a instalação do SEI ##### SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 +ENVIRONMENT_VERSION=3.6.0 + +HTTP_IMAGE=processoeletronico/app-dev-php8 +SOLR_IMAGE=processoeletronico/solr9.6.1 SEI_CONFIG=./assets/config/ConfiguracaoSEI.php SEI_DATABASE_NAME=sei @@ -12,7 +15,6 @@ SIP_DATABASE_NAME=sip SIP_DATABASE_USER=sip_user SIP_DATABASE_PASSWORD=sip_user - ############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### ORG1_HOSTNAME=org1-http ORG1_PORT=8000 @@ -22,7 +24,6 @@ ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3 ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - ##### BANCO DE DADOS DO ÓRGÃO 1 ##### # Configurações do banco de dados POSTGRESQL do ÓRGÃO 1 ORG1_DATABASE_IMAGE=processoeletronico/vagrant_super41_postgresql diff --git a/tests_super/funcional/env_sqlserver b/tests_sei5/funcional/env_sqlserver similarity index 87% rename from tests_super/funcional/env_sqlserver rename to tests_sei5/funcional/env_sqlserver index 7da50a36a..bc4257ceb 100755 --- a/tests_super/funcional/env_sqlserver +++ b/tests_sei5/funcional/env_sqlserver @@ -1,6 +1,9 @@ ##### Diretório em que está localizada a instalação do SEI ##### SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 +ENVIRONMENT_VERSION=3.6.0 + +HTTP_IMAGE=processoeletronico/app-dev-php8 +SOLR_IMAGE=processoeletronico/solr9.6.1 SEI_CONFIG=./assets/config/ConfiguracaoSEI.php SEI_DATABASE_NAME=sei @@ -23,16 +26,13 @@ ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX ##### BANCO DE DADOS DO ÓRGÃO 1 ##### # Configurações do banco de dados SQL SERVER do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_sei4_sqlserver +ORG1_DATABASE_IMAGE=sqlserver2019-sei50 ORG1_DATABASE_HOST=org1-database ORG1_DATABASE_TYPE=SqlServer ORG1_DATABASE_GUEST_PORT=1433 ORG1_DATABASE_HOST_PORT=14331 ORG1_DATABASE_DATA_DIR=/var/opt/mssql -CONTEXTO_ORGAO_A_DB_SEI_DSN="sqlsrv:server=org1-database,1433; Database=sei" - - - +CONTEXTO_ORGAO_A_DB_SEI_DSN="sqlsrv:server=org1-database,1433; Database=sei;TrustServerCertificate=yes" ############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### @@ -46,13 +46,13 @@ ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX # Configurações do banco de dados SQL SERVER do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_sei4_sqlserver +ORG2_DATABASE_IMAGE=sqlserver2019-sei50 ORG2_DATABASE_HOST=org2-database ORG2_DATABASE_TYPE=SqlServer ORG2_DATABASE_GUEST_PORT=1433 ORG2_DATABASE_HOST_PORT=14332 ORG2_DATABASE_DATA_DIR=/var/opt/mssql -CONTEXTO_ORGAO_B_DB_SEI_DSN="sqlsrv:server=org2-database,1433; Database=sei" +CONTEXTO_ORGAO_B_DB_SEI_DSN="sqlsrv:server=org2-database,1433; Database=sei;TrustServerCertificate=yes" diff --git a/tests_sei3/funcional/lib/drivers/chromedriver b/tests_sei5/funcional/lib/drivers/chromedriver similarity index 100% rename from tests_sei3/funcional/lib/drivers/chromedriver rename to tests_sei5/funcional/lib/drivers/chromedriver diff --git a/tests_sei3/funcional/phpunit.xml b/tests_sei5/funcional/phpunit.xml similarity index 89% rename from tests_sei3/funcional/phpunit.xml rename to tests_sei5/funcional/phpunit.xml index 9fb4ed537..92c33fe2a 100755 --- a/tests_sei3/funcional/phpunit.xml +++ b/tests_sei5/funcional/phpunit.xml @@ -15,8 +15,8 @@ <const name="PHPUNIT_BROWSER" value="chrome" /> <const name="PHPUNIT_TESTS_URL" value="http://localhost/sei" /> <const name="PEN_ENDERECO_WEBSERVICE" - value="https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/?wsdl" /> - + value="https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/" /> + <!-- Chaves de configurações gerais do teste do Barramento de Serviços do PEN --> <const name="PEN_WAIT_TIMEOUT" value="360000" /> <const name="PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES" value="7200000" /> @@ -24,7 +24,7 @@ <const name="PEN_SCRIPT_MONITORAMENTO_ORG1" value=" " /> <const name="PEN_SCRIPT_MONITORAMENTO_ORG2" value=" " /> <const name="ENVIO_PARCIAL" value="true" /> - + <!-- Chaves de configuração dos diferentes ambientes envolvidos no teste do Barramento de Serviços do PEN --> <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 1 --> @@ -46,7 +46,7 @@ <const name="CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA" value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> <const name="CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> + value="INFORME_O_NOME_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> <const name="CONTEXTO_ORGAO_A_USUARIO_LOGIN" value="teste" /> <const name="CONTEXTO_ORGAO_A_USUARIO_SENHA" value="teste" /> @@ -68,12 +68,14 @@ value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> <const name="CONTEXTO_ORGAO_A_HIPOTESE_SIGILOSO" value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> + <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_ID" + value="3" /> <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 2 --> <const name="CONTEXTO_ORGAO_B" value="CONTEXTO_ORGAO_B" /> <const name="CONTEXTO_ORGAO_B_URL" value="http://org2-http:8000/sei" /> <const name="CONTEXTO_ORGAO_B_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_B_NUMERO_SEI" value="159" /> + <const name="CONTEXTO_ORGAO_B_NUMERO_SEI" value="179" /> <const name="CONTEXTO_ORGAO_B_ID_REP_ESTRUTURAS" value="5" /> <const name="CONTEXTO_ORGAO_B_REP_ESTRUTURAS" value="RE CGPRO" /> <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE" value="TESTE" /> @@ -108,6 +110,7 @@ <const name="CONTEXTO_ORGAO_B_CARGO_ASSINATURA" value="Assessor(a)" /> <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_PADRAO" value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> + <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_ID" value="3" /> <!-- CONFIGURAÇÕES DE TESTE Órgão 3, caso de sem hierarquia pai --> @@ -118,11 +121,16 @@ <const name="CONTEXTO_ORGAO_C_ID_REP_ESTRUTURAS" value="5" /> <const name="CONTEXTO_ORGAO_C_REP_ESTRUTURAS" value="RE CGPRO" /> <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE" value="TESTE" /> + <const name="CONTEXTO_ORGAO_C_SIGLA_ESTRUTURA" value="TESTE" /> <const name="CONTEXTO_ORGAO_C_ID_ESTRUTURA" value="121390" /> <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_HIERARQUIA" value="" /> <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE" value="SEGES TESTE SEM PAI" /> <const name="CONTEXTO_ORGAO_C_USUARIO_LOGIN" value="teste" /> <const name="CONTEXTO_ORGAO_C_USUARIO_SENHA" value="teste" /> + <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_INATIVA" value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> + <const name="CONTEXTO_ORGAO_C_TIPO_PROCESSO_SIGILOSO" value="Acesso à Informação: Demanda do e-SIC" /> + <const name="CONTEXTO_ORGAO_C_HIPOTESE_SIGILOSO" + value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE_SECUNDARIA" value="" /> <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA" value="" /> <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> @@ -131,6 +139,7 @@ <const name="CONTEXTO_ORGAO_C_TIPO_DOCUMENTO_NAO_MAPEADO" value="Nota" /> <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO" value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> + <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_ID" value="3" /> <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_NAO_MAPEADO" value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> <const name="CONTEXTO_ORGAO_C_CARGO_ASSINATURA" value="Assessor(a)" /> diff --git a/tests_sei4/funcional/src/fixtures/BlocoDeTramiteFixture.php b/tests_sei5/funcional/src/fixtures/BlocoDeTramiteFixture.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/fixtures/BlocoDeTramiteFixture.php rename to tests_sei5/funcional/src/fixtures/BlocoDeTramiteFixture.php diff --git a/tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_sei5/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei41/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php rename to tests_sei5/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php diff --git a/tests_sei4/funcional/src/fixtures/FixtureBase.php b/tests_sei5/funcional/src/fixtures/FixtureBase.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/fixtures/FixtureBase.php rename to tests_sei5/funcional/src/fixtures/FixtureBase.php diff --git a/tests_sei4/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php b/tests_sei5/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php rename to tests_sei5/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php diff --git a/tests_sei4/funcional/src/fixtures/PenMapEnvioParcialFixture.php b/tests_sei5/funcional/src/fixtures/PenMapEnvioParcialFixture.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/fixtures/PenMapEnvioParcialFixture.php rename to tests_sei5/funcional/src/fixtures/PenMapEnvioParcialFixture.php diff --git a/tests_sei4/funcional/src/fixtures/PenMapUnidadesFixture.php b/tests_sei5/funcional/src/fixtures/PenMapUnidadesFixture.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/fixtures/PenMapUnidadesFixture.php rename to tests_sei5/funcional/src/fixtures/PenMapUnidadesFixture.php diff --git a/tests_super/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php b/tests_sei5/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php old mode 100644 new mode 100755 similarity index 97% rename from tests_super/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php rename to tests_sei5/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php index 087328f64..62ca829c4 --- a/tests_super/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php +++ b/tests_sei5/funcional/src/fixtures/PenMapUnidadesRestricaoFixture.php @@ -40,7 +40,7 @@ public function consultar($dados = []) $objPenUnidadeRestricaoDTO = new \PenUnidadeRestricaoDTO(); $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRestricao($dados['NomeUnidadeRestricao']); - $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao($dados['NomeUnidadeRHRestricao']); + $objPenUnidadeRestricaoDTO->setStrNomeUnidadeRHRestricao($dados['NomeUnidadeRHRestricao']."%", InfraDTO::$OPER_LIKE); $objPenUnidadeRestricaoDTO->retTodos(); $objPenUnidadeRestricaoBD = new \PenUnidadeRestricaoBD($this->inicializarObjInfraIBanco()); diff --git a/tests_sei4/funcional/src/fixtures/PenOrgaoExternoFixture.php b/tests_sei5/funcional/src/fixtures/PenOrgaoExternoFixture.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/fixtures/PenOrgaoExternoFixture.php rename to tests_sei5/funcional/src/fixtures/PenOrgaoExternoFixture.php diff --git a/tests_sei4/funcional/src/fixtures/TipoProcessoPadraoFixture.php b/tests_sei5/funcional/src/fixtures/TipoProcessoPadraoFixture.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/fixtures/TipoProcessoPadraoFixture.php rename to tests_sei5/funcional/src/fixtures/TipoProcessoPadraoFixture.php diff --git a/tests_sei4/funcional/src/paginas/PaginaAnexarProcesso.php b/tests_sei5/funcional/src/paginas/PaginaAnexarProcesso.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaAnexarProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaAnexarProcesso.php diff --git a/tests_sei4/funcional/src/paginas/PaginaAssinaturaDocumento.php b/tests_sei5/funcional/src/paginas/PaginaAssinaturaDocumento.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaAssinaturaDocumento.php rename to tests_sei5/funcional/src/paginas/PaginaAssinaturaDocumento.php diff --git a/tests_sei41/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php b/tests_sei5/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php rename to tests_sei5/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php diff --git a/tests_sei41/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php b/tests_sei5/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php rename to tests_sei5/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php diff --git a/tests_sei4/funcional/src/paginas/PaginaCadastroOrgaoExterno.php b/tests_sei5/funcional/src/paginas/PaginaCadastroOrgaoExterno.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaCadastroOrgaoExterno.php rename to tests_sei5/funcional/src/paginas/PaginaCadastroOrgaoExterno.php diff --git a/tests_sei41/funcional/src/paginas/PaginaCancelarDocumento.php b/tests_sei5/funcional/src/paginas/PaginaCancelarDocumento.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaCancelarDocumento.php rename to tests_sei5/funcional/src/paginas/PaginaCancelarDocumento.php diff --git a/tests_sei41/funcional/src/paginas/PaginaConsultarAndamentos.php b/tests_sei5/funcional/src/paginas/PaginaConsultarAndamentos.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaConsultarAndamentos.php rename to tests_sei5/funcional/src/paginas/PaginaConsultarAndamentos.php diff --git a/tests_sei4/funcional/src/paginas/PaginaControleProcesso.php b/tests_sei5/funcional/src/paginas/PaginaControleProcesso.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaControleProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaControleProcesso.php diff --git a/tests_sei41/funcional/src/paginas/PaginaDocumento.php b/tests_sei5/funcional/src/paginas/PaginaDocumento.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaDocumento.php rename to tests_sei5/funcional/src/paginas/PaginaDocumento.php diff --git a/tests_sei41/funcional/src/paginas/PaginaEditarProcesso.php b/tests_sei5/funcional/src/paginas/PaginaEditarProcesso.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaEditarProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaEditarProcesso.php diff --git a/tests_sei4/funcional/src/paginas/PaginaEnviarProcesso.php b/tests_sei5/funcional/src/paginas/PaginaEnviarProcesso.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaEnviarProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaEnviarProcesso.php diff --git a/tests_sei41/funcional/src/paginas/PaginaEnvioParcialListar.php b/tests_sei5/funcional/src/paginas/PaginaEnvioParcialListar.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaEnvioParcialListar.php rename to tests_sei5/funcional/src/paginas/PaginaEnvioParcialListar.php diff --git a/tests_sei4/funcional/src/paginas/PaginaExportarTiposProcesso.php b/tests_sei5/funcional/src/paginas/PaginaExportarTiposProcesso.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaExportarTiposProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaExportarTiposProcesso.php diff --git a/tests_sei41/funcional/src/paginas/PaginaIncluirDocumento.php b/tests_sei5/funcional/src/paginas/PaginaIncluirDocumento.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaIncluirDocumento.php rename to tests_sei5/funcional/src/paginas/PaginaIncluirDocumento.php diff --git a/tests_sei4/funcional/src/paginas/PaginaIniciarProcesso.php b/tests_sei5/funcional/src/paginas/PaginaIniciarProcesso.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaIniciarProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaIniciarProcesso.php diff --git a/tests_sei4/funcional/src/paginas/PaginaLogin.php b/tests_sei5/funcional/src/paginas/PaginaLogin.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaLogin.php rename to tests_sei5/funcional/src/paginas/PaginaLogin.php diff --git a/tests_sei4/funcional/src/paginas/PaginaMapUnidades.php b/tests_sei5/funcional/src/paginas/PaginaMapUnidades.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaMapUnidades.php rename to tests_sei5/funcional/src/paginas/PaginaMapUnidades.php diff --git a/tests_sei41/funcional/src/paginas/PaginaMoverDocumento.php b/tests_sei5/funcional/src/paginas/PaginaMoverDocumento.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaMoverDocumento.php rename to tests_sei5/funcional/src/paginas/PaginaMoverDocumento.php diff --git a/tests_sei4/funcional/src/paginas/PaginaPenHipoteseLegalListar.php b/tests_sei5/funcional/src/paginas/PaginaPenHipoteseLegalListar.php old mode 100644 new mode 100755 similarity index 93% rename from tests_sei4/funcional/src/paginas/PaginaPenHipoteseLegalListar.php rename to tests_sei5/funcional/src/paginas/PaginaPenHipoteseLegalListar.php index 2d62e6424..e2fda2cfe --- a/tests_sei4/funcional/src/paginas/PaginaPenHipoteseLegalListar.php +++ b/tests_sei5/funcional/src/paginas/PaginaPenHipoteseLegalListar.php @@ -37,7 +37,7 @@ public function existeTabela() { try { $trTh = $this->test->byXPath('//*[@id="divInfraAreaTabela"]/table/tbody/tr[1]/th[2]')->text(); - return !empty($trTh) && !is_null($trTh) && count($trTh) >= 1; + return !empty($trTh) && !is_null($trTh); } catch (Exception $ex) { return false; } diff --git a/tests_sei41/funcional/src/paginas/PaginaProcesso.php b/tests_sei5/funcional/src/paginas/PaginaProcesso.php similarity index 98% rename from tests_sei41/funcional/src/paginas/PaginaProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaProcesso.php index 76da9beca..1a2ab77e2 100755 --- a/tests_sei41/funcional/src/paginas/PaginaProcesso.php +++ b/tests_sei5/funcional/src/paginas/PaginaProcesso.php @@ -66,7 +66,7 @@ public function trocarOrdenacaoDocumentos() $this->test->frame("ifrVisualizacao"); $this->test->byXPath("//*[@id='selRelProtocoloProtocolo']/option[1]")->click(); sleep(1); - $this->test->byXPath("//*[@id='imgRelProtocoloProtocoloAbaixo']")->click(); + $this->test->byXPath("//a[@onclick='objLupaRelProtocoloProtocolo.moverAbaixo();']")->click(); sleep(1); $this->test->byXPath("//*[@id='divInfraBarraComandosSuperior']/button[@value='Salvar']")->click(); } diff --git a/tests_sei4/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php b/tests_sei5/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php rename to tests_sei5/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php diff --git a/tests_sei41/funcional/src/paginas/PaginaReciboTramite.php b/tests_sei5/funcional/src/paginas/PaginaReciboTramite.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaReciboTramite.php rename to tests_sei5/funcional/src/paginas/PaginaReciboTramite.php diff --git a/tests_sei4/funcional/src/paginas/PaginaTeste.php b/tests_sei5/funcional/src/paginas/PaginaTeste.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaTeste.php rename to tests_sei5/funcional/src/paginas/PaginaTeste.php diff --git a/tests_sei4/funcional/src/paginas/PaginaTipoProcessoReativar.php b/tests_sei5/funcional/src/paginas/PaginaTipoProcessoReativar.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaTipoProcessoReativar.php rename to tests_sei5/funcional/src/paginas/PaginaTipoProcessoReativar.php diff --git a/tests_sei41/funcional/src/paginas/PaginaTramitarProcesso.php b/tests_sei5/funcional/src/paginas/PaginaTramitarProcesso.php similarity index 100% rename from tests_sei41/funcional/src/paginas/PaginaTramitarProcesso.php rename to tests_sei5/funcional/src/paginas/PaginaTramitarProcesso.php diff --git a/tests_sei4/funcional/src/paginas/PaginaTramitarProcessoEmLote.php b/tests_sei5/funcional/src/paginas/PaginaTramitarProcessoEmLote.php similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaTramitarProcessoEmLote.php rename to tests_sei5/funcional/src/paginas/PaginaTramitarProcessoEmLote.php diff --git a/tests_super/funcional/src/paginas/PaginaTramiteEmBloco.php b/tests_sei5/funcional/src/paginas/PaginaTramiteEmBloco.php old mode 100644 new mode 100755 similarity index 74% rename from tests_super/funcional/src/paginas/PaginaTramiteEmBloco.php rename to tests_sei5/funcional/src/paginas/PaginaTramiteEmBloco.php index f3b0eec38..b66156a95 --- a/tests_super/funcional/src/paginas/PaginaTramiteEmBloco.php +++ b/tests_sei5/funcional/src/paginas/PaginaTramiteEmBloco.php @@ -44,6 +44,27 @@ public function selecionarTramiteEmBloco() $btnTramiteEmBloco->click(); } + /** + * Seleciona a visualizao detalhada do processo. + * + * Este mtodo simula o clique no boto que troca a visualizao para + * a opo detalhada. Ele utiliza o XPath para encontrar o boto + * correspondente na interface da aplicao. + * + * @return void + */ + public function visualizacaoDetalhadaAberta() + { + try { + $btnVisualizacaoDetalhada = $this->test->byXPath('//a[@onclick="trocarVisualizacao(\'R\');"]'); + if($btnVisualizacaoDetalhada){ + return true; + } + } catch (Exception $e) { + return false; + } + } + /** * Seleciona a visualizao detalhada do processo. * @@ -55,8 +76,21 @@ public function selecionarTramiteEmBloco() */ public function selecionarVisualizacaoDetalhada() { - $btnTramiteEmBloco = $this->test->byXPath('//a[@onclick="trocarVisualizacao(\'D\');"]'); - $btnTramiteEmBloco->click(); + $btnVisualizacaoDetalhada = $this->test->byXPath('//a[@onclick="trocarVisualizacao(\'D\');"]'); + $btnVisualizacaoDetalhada->click(); + } + + /** + * Fecha o visualizao detalhada do processo. + * + * Este mtodo simula o clique no boto que troca a visualizao para + * a opo resumida. * + * @return void + */ + public function fecharVisualizacaoDetalhada() + { + $btnVisualizacaoResumida = $this->test->byXPath('//a[@onclick="trocarVisualizacao(\'R\');"]'); + $btnVisualizacaoResumida->click(); } /** diff --git a/tests_sei4/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php b/tests_sei5/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php rename to tests_sei5/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php diff --git a/tests_sei4/funcional/src/utils/DatabaseUtils.php b/tests_sei5/funcional/src/utils/DatabaseUtils.php similarity index 100% rename from tests_sei4/funcional/src/utils/DatabaseUtils.php rename to tests_sei5/funcional/src/utils/DatabaseUtils.php diff --git a/tests_sei4/funcional/src/utils/ParameterUtils.php b/tests_sei5/funcional/src/utils/ParameterUtils.php similarity index 100% rename from tests_sei4/funcional/src/utils/ParameterUtils.php rename to tests_sei5/funcional/src/utils/ParameterUtils.php diff --git a/tests_sei41/funcional/tests/CenarioBaseTestCase.php b/tests_sei5/funcional/tests/CenarioBaseTestCase.php similarity index 96% rename from tests_sei41/funcional/tests/CenarioBaseTestCase.php rename to tests_sei5/funcional/tests/CenarioBaseTestCase.php index 241afa5d0..e499dec29 100755 --- a/tests_sei41/funcional/tests/CenarioBaseTestCase.php +++ b/tests_sei5/funcional/tests/CenarioBaseTestCase.php @@ -97,12 +97,19 @@ public static function setUpBeforeClass(): void putenv("DATABASE_HOST=org1-database"); $penMapUnidadesFixture = new \PenMapUnidadesFixture(); $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000001, 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA, 'Sigla' => CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA, 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE, ]); - - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); + if (is_numeric(CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)) { + $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000002, + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA, + 'Sigla' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + ]); + } // Configurao do prefxo de processos $bancoOrgaoA->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_A_NUMERO_SEI, CONTEXTO_ORGAO_A_SIGLA_ORGAO)); $bancoOrgaoA->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_A_SIGLA_UNIDADE)); @@ -115,10 +122,6 @@ public static function setUpBeforeClass(): void $serieNaoMapeadaOrigem[0] = array_change_key_case($serieNaoMapeadaOrigem[0], CASE_UPPER); $bancoOrgaoA->execute("delete from md_pen_rel_doc_map_enviado where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(1, 3, 3, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(2, 4, 4, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(3, 3, 3, 'R', 'S')); - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); // Habilitao da extenso docx @@ -137,13 +140,21 @@ public static function setUpBeforeClass(): void putenv("DATABASE_HOST=org2-database"); $penMapUnidadesFixture = new \PenMapUnidadesFixture(); $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000001, 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA, 'Sigla' => CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA, 'Nome' => CONTEXTO_ORGAO_B_NOME_UNIDADE, ]); putenv("DATABASE_HOST=org1-database"); - $bancoOrgaoB->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values ('110000002', ?)", array(CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA)); + if (is_numeric(CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA)) { + $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000002, + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA, + 'Sigla' => CONTEXTO_ORGAO_B_NOME_UNIDADE_SECUNDARIA, + 'Nome' => CONTEXTO_ORGAO_B_NOME_UNIDADE_SECUNDARIA, + ]); + } $bancoOrgaoB->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_B_NUMERO_SEI, CONTEXTO_ORGAO_B_SIGLA_ORGAO)); $bancoOrgaoB->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_B_SIGLA_UNIDADE)); @@ -157,8 +168,6 @@ public static function setUpBeforeClass(): void $serieNaoMapeadaOrigem[0] = array_change_key_case($serieNaoMapeadaOrigem[0], CASE_UPPER); $bancoOrgaoB->execute("delete from md_pen_rel_doc_map_recebido where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(4, 3, 3, 'E', 'S')); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(5, 3, 3, 'R', 'S')); $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); //para corrigir o erro do oracle que retorna stream sem acentuao das palavras no teste de URL @@ -462,6 +471,8 @@ protected function validarHistoricoTramite( } } + + protected function validarDadosProcesso($descricao, $restricao, $observacoes, $listaInteressados, $hipoteseLegal = null) { sleep(2); @@ -503,7 +514,6 @@ protected function validarDadosDocumento($nomeDocArvore, $dadosDocumento, $desti // Verifica se documento possui marcao de documento anexado $bolPossuiDocumentoReferenciado = !is_null($dadosDocumento['ORDEM_DOCUMENTO_REFERENCIADO']); - $this->assertTrue($this->paginaProcesso->deveSerDocumentoAnexo($bolPossuiDocumentoReferenciado, $nomeDocArvore)); if (($this->paginaProcesso->ehDocumentoCancelado($nomeDocArvore) == false) and ($this->paginaProcesso->ehDocumentoMovido($nomeDocArvore) == false)) { diff --git a/tests_sei4/funcional/tests/FixtureCenarioBaseTestCase.php b/tests_sei5/funcional/tests/FixtureCenarioBaseTestCase.php similarity index 99% rename from tests_sei4/funcional/tests/FixtureCenarioBaseTestCase.php rename to tests_sei5/funcional/tests/FixtureCenarioBaseTestCase.php index 8daf39101..2edf5fc3e 100755 --- a/tests_sei4/funcional/tests/FixtureCenarioBaseTestCase.php +++ b/tests_sei5/funcional/tests/FixtureCenarioBaseTestCase.php @@ -61,7 +61,7 @@ protected function cadastrarProcessoFixture(&$dadosProcesso, $cadastrarParticipa $objProtocoloAssuntoFixture = new RelProtocoloAssuntoFixture(); $objProtocoloAssuntoFixture->carregar([ 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdAssunto' => 377 + 'IdAssunto' => 393 ]); $objAtributoAndamentoFixture = new AtributoAndamentoFixture(); diff --git a/tests_sei41/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php b/tests_sei5/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php old mode 100644 new mode 100755 similarity index 99% rename from tests_sei41/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php rename to tests_sei5/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php index f7f85352a..27589ece7 --- a/tests_sei41/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php +++ b/tests_sei5/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php @@ -23,6 +23,7 @@ function setUp(): void $penMapUnidadesFixture = new \PenMapUnidadesFixture(); $this->penMapUnidadesFixture = $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000001, 'Id' => self::$remetente['ID_ESTRUTURA'], 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], 'Nome' => self::$remetente['NOME_UNIDADE'] diff --git a/tests_sei4/funcional/tests/MapeamentoEnvioParcialTest.php b/tests_sei5/funcional/tests/MapeamentoEnvioParcialTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoEnvioParcialTest.php rename to tests_sei5/funcional/tests/MapeamentoEnvioParcialTest.php diff --git a/tests_sei4/funcional/tests/MapeamentoHipoteseLegalTest.php b/tests_sei5/funcional/tests/MapeamentoHipoteseLegalTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoHipoteseLegalTest.php rename to tests_sei5/funcional/tests/MapeamentoHipoteseLegalTest.php diff --git a/tests_sei4/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php b/tests_sei5/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php rename to tests_sei5/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php diff --git a/tests_sei4/funcional/tests/MapeamentoTipoProcessoExcluirTest.php b/tests_sei5/funcional/tests/MapeamentoTipoProcessoExcluirTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoTipoProcessoExcluirTest.php rename to tests_sei5/funcional/tests/MapeamentoTipoProcessoExcluirTest.php diff --git a/tests_sei4/funcional/tests/MapeamentoTipoProcessoExportarTest.php b/tests_sei5/funcional/tests/MapeamentoTipoProcessoExportarTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoTipoProcessoExportarTest.php rename to tests_sei5/funcional/tests/MapeamentoTipoProcessoExportarTest.php diff --git a/tests_sei4/funcional/tests/MapeamentoTipoProcessoReativarTest.php b/tests_sei5/funcional/tests/MapeamentoTipoProcessoReativarTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoTipoProcessoReativarTest.php rename to tests_sei5/funcional/tests/MapeamentoTipoProcessoReativarTest.php diff --git a/tests_sei4/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php b/tests_sei5/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php rename to tests_sei5/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php diff --git a/tests_sei4/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php b/tests_sei5/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php rename to tests_sei5/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php diff --git a/tests_sei4/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php b/tests_sei5/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php rename to tests_sei5/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php diff --git a/tests_super/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php b/tests_sei5/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php similarity index 76% rename from tests_super/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php rename to tests_sei5/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php index ba6aafd51..355e02813 100755 --- a/tests_super/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php +++ b/tests_sei5/funcional/tests/RecebimentoRecusaJustificativaGrandeTest.php @@ -24,8 +24,7 @@ public function setUp(): void // Carregar contexto de testes e dados sobre certificado digital $this->destinatarioWs = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap + $localCertificado = $this->destinatarioWs['LOCALIZACAO_CERTIFICADO_DIGITAL']; $senhaCertificado = $this->destinatarioWs['SENHA_CERTIFICADO_DIGITAL']; $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); @@ -58,7 +57,9 @@ public function test_tramitar_processo_da_origem() }else{ $id_tramite=$id_tramite[0]["ID_TRAMITE"]; } - $this->recusarTramite($this->servicoPEN, $id_tramite); + + sleep(5); + $this->recusarTramite($id_tramite); } /** @@ -90,7 +91,7 @@ public function test_verificar_destino_processo_para_devolucao() } - private function recusarTramite($servicoPEN, $id_tramite) + private function recusarTramite($id_tramite) { $justificativa = "An exception occurred while executing 'INSERT INTO juntadas (numeracao_sequencial, movimento, ativo, vinculada, criado_em, atualizado_em, id, uuid, documentos_juntado_id, volumes_id, atividades_id, tarefas_id, comunicacoes_id, origem_dados_id, criado_por, atualizado_por) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [1, 'DOCUMENTO RECEBIDO VIA INTEGRA\u00c7\u00c3O COM O BARRAMENTO', 1, 0, '2021-12-02 14:21:48', '2021-12-02 14:21:48', 1317074776, '06ba31e8-75ad-4111-82dc-6f451f51825e', 1333864526, null, null, null, null, 3534979787, null, null]: ORA-00001: restrio exclusiva (SAPIENS.UNIQ_867686DHDKJ97876) violada"; @@ -99,30 +100,49 @@ private function recusarTramite($servicoPEN, $id_tramite) $parametros->recusaDeTramite->IDT = $id_tramite; $parametros->recusaDeTramite->justificativa = mb_convert_encoding($justificativa, 'UTF-8', 'ISO-8859-1'); $parametros->recusaDeTramite->motivo = "99"; - return $servicoPEN->recusarTramite($parametros); + + return $this->recusarTramiteAPI($parametros); } - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) + private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); + // TODO: lembrar de pegar url dinamicamente quando SOAP for removido + $strBaseUri = PEN_ENDERECO_WEBSERVICE; + $arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $strClientGuzzle = new GuzzleHttp\Client([ + 'base_uri' => $strBaseUri, + 'timeout' => ProcessoEletronicoRN::WS_TIMEOUT_CONEXAO, + 'headers' => $arrheaders, + 'cert' => [$localCertificado, $senhaCertificado], + ]); + + return $strClientGuzzle; + } + + + public function recusarTramiteAPI($parametros) + { + $idt = $parametros->recusaDeTramite->IDT; + $justificativa = $parametros->recusaDeTramite->justificativa; + $motivo = $parametros->recusaDeTramite->motivo; + + $endpoint = "tramites/{$idt}/recusa"; + + $objProcessoEletronicoRN = new ProcessoEletronicoRN(); + $parametros = [ + 'justificativa' => mb_convert_encoding($objProcessoEletronicoRN->reduzirCampoTexto($justificativa, 1000), 'UTF-8', 'ISO-8859-1'), + 'motivo' => $motivo + ]; + + $response = $this->servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + return $response; } } diff --git a/tests_sei3/funcional/tests/TODO.txt b/tests_sei5/funcional/tests/TODO.txt similarity index 100% rename from tests_sei3/funcional/tests/TODO.txt rename to tests_sei5/funcional/tests/TODO.txt diff --git a/tests_sei4/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php b/tests_sei5/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php rename to tests_sei5/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php b/tests_sei5/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php rename to tests_sei5/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoCadastroTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoCadastroTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoCadastroTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoCadastroTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php diff --git a/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php old mode 100644 new mode 100755 similarity index 83% rename from tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php index 5cad66c85..f68f69fba --- a/tests_sei41/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php +++ b/tests_sei5/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php @@ -11,7 +11,7 @@ class TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest extends { public static $remetente; public static $destinatario; - + /** * Mtodo que testa a incluso de um processo por meio da visualizao detalhada. * @@ -50,8 +50,15 @@ public function teste_inclusao_de_processo_por_visualizacao_detalhada() // Navegao para controle de processo e seleo de visualizao detalhada $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarVisualizacaoDetalhada(); + $visualizacaoDetalhadaAberta = $this->paginaTramiteEmBloco->visualizacaoDetalhadaAberta(); + if($visualizacaoDetalhadaAberta){ + $this->paginaTramiteEmBloco->fecharVisualizacaoDetalhada(); + $this->paginaTramiteEmBloco->selecionarVisualizacaoDetalhada(); + }else{ + $this->paginaTramiteEmBloco->selecionarVisualizacaoDetalhada(); + } + // Seleo do processo e do bloco de trmite $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); @@ -74,7 +81,15 @@ public function teste_inclusao_de_processo_por_visualizacao_detalhada() $mensagem ); + $this->paginaBase->navegarParaControleProcesso(); + + $visualizacaoDetalhadaAberta = $this->paginaTramiteEmBloco->visualizacaoDetalhadaAberta(); + if($visualizacaoDetalhadaAberta){ + $this->paginaTramiteEmBloco->fecharVisualizacaoDetalhada(); + } + // Sada do sistema $this->sairSistema(); - } + } + } diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoInclusaoTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoInclusaoTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoInclusaoTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoInclusaoTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoLimiteTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoLimiteTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoLimiteTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoLimiteTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoTest.php diff --git a/tests_sei4/funcional/tests/TramiteBlocoExternoUnidadeTest.php b/tests_sei5/funcional/tests/TramiteBlocoExternoUnidadeTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteBlocoExternoUnidadeTest.php rename to tests_sei5/funcional/tests/TramiteBlocoExternoUnidadeTest.php diff --git a/tests_sei4/funcional/tests/TramiteEnvioParcialTest.php b/tests_sei5/funcional/tests/TramiteEnvioParcialTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteEnvioParcialTest.php rename to tests_sei5/funcional/tests/TramiteEnvioParcialTest.php diff --git a/tests_sei41/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php b/tests_sei5/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php similarity index 100% rename from tests_sei41/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoAnexadoTest.php b/tests_sei5/funcional/tests/TramiteProcessoAnexadoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoAnexadoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoAnexadoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php b/tests_sei5/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php rename to tests_sei5/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php b/tests_sei5/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php rename to tests_sei5/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoComCancelamentoTest.php b/tests_sei5/funcional/tests/TramiteProcessoComCancelamentoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoComCancelamentoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComCancelamentoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php b/tests_sei5/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php b/tests_sei5/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php b/tests_sei5/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoTest.php b/tests_sei5/funcional/tests/TramiteProcessoComDevolucaoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoComDevolucaoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComDevolucaoTest.php diff --git a/tests_sei41/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php b/tests_sei5/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php similarity index 100% rename from tests_sei41/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php b/tests_sei5/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php similarity index 94% rename from tests_sei4/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php index 5690f39bd..3c3bebe23 100755 --- a/tests_sei4/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php +++ b/tests_sei5/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php @@ -36,6 +36,9 @@ public function test_tramitar_processo_com_documento_restrito_hipotese_nao_mapea $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; + + // A partir da verso SEI 5.0 ao criar um documento restrito o processo torna-se restrito tambm + self::$processoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; // Configurao de documento restrito } diff --git a/tests_super/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php b/tests_sei5/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php similarity index 92% rename from tests_super/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php index 02e72901f..eae2085ef 100755 --- a/tests_super/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php +++ b/tests_sei5/funcional/tests/TramiteProcessoComDocumentoRestritoTest.php @@ -43,7 +43,7 @@ public function test_tramitar_processo_com_documento_restrito() self::$remetente['LOGIN'], self::$remetente['SENHA'] ); - + self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); // Cadastrar novo processo de teste self::$documentoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; // Configurao de documento restrito self::$documentoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; // Configurar Hipotese legal @@ -60,6 +60,10 @@ public function test_tramitar_processo_com_documento_restrito() self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false ); + + // A partir da verso SEI 5.0 ao criar um documento restrito o processo torna-se restrito tambm + self::$processoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; // Configurao de documento restrito + } /** @@ -110,6 +114,8 @@ public function test_verificar_origem_processo_com_documento_restrito() /** * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) + * + * A partir da verso SEI 5.0 ao criar um documento restrito o processo torna-se restrito tambm * * @group verificacao_recebimento * @large diff --git a/tests_sei41/funcional/tests/TramiteProcessoComHistoricoTest.php b/tests_sei5/funcional/tests/TramiteProcessoComHistoricoTest.php similarity index 83% rename from tests_sei41/funcional/tests/TramiteProcessoComHistoricoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoComHistoricoTest.php index b5d8929d3..c0c70bc22 100755 --- a/tests_sei41/funcional/tests/TramiteProcessoComHistoricoTest.php +++ b/tests_sei5/funcional/tests/TramiteProcessoComHistoricoTest.php @@ -62,12 +62,12 @@ public function test_verificar_destino_processo_para_devolucao() if (array_key_exists("id_tramite", $idtEnviado[0])) { $idtEnviado=$idtEnviado[0]["id_tramite"]; - } else { + }else{ $idtEnviado=$idtEnviado[0]["ID_TRAMITE"]; } $curl_handler = curl_init(); - curl_setopt($curl_handler, CURLOPT_URL, "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/tramites/" . $idtEnviado); + curl_setopt($curl_handler, CURLOPT_URL, PEN_ENDERECO_WEBSERVICE ."tramites/" . $idtEnviado); curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl_handler, CURLOPT_FAILONERROR, true); curl_setopt($curl_handler, CURLOPT_SSLCERT, $localCertificado); @@ -81,11 +81,11 @@ public function test_verificar_destino_processo_para_devolucao() switch($propriedades->chave){ case "CLASSIFICACAO_PrazoIntermediario_1": - $this->assertEquals('15', $propriedades->valor ); + $this->assertEquals('5', $propriedades->valor ); break; case "CLASSIFICACAO_PrazoCorrente_1": - $this->assertEquals('5', $propriedades->valor ); + $this->assertEquals('NA', $propriedades->valor ); break; case "MODULO_PEN_VERSAO": @@ -97,22 +97,20 @@ public function test_verificar_destino_processo_para_devolucao() break; case "CLASSIFICACAO_Destinacao_1": - $this->assertEquals('Elimina', substr($propriedades->valor,0,7) ); + $this->assertEquals('E', substr($propriedades->valor,0,1)); break; case "CLASSIFICACAO_Observacao_1": - $this->assertEquals('Quanto ao estabelecimento', substr($propriedades->valor,0,25) ); + $this->assertEquals('Incluem-se documentos referentes', substr($propriedades->valor,0,32)); break; case "CLASSIFICACAO_Descricao_1": - $this->assertEquals('RECEITA CORRENTE', substr($propriedades->valor,0,16)); + $this->assertEquals('RECEITA CORRENTE', $propriedades->valor); break; } } - - $this->assertEquals(9, sizeof($saida->processo->itensHistorico) ); - + $this->assertEquals(9, count($saida->processo->itensHistorico) ); } -} +} \ No newline at end of file diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php similarity index 90% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php index 4954a0c39..7ffbc7660 100755 --- a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php +++ b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php @@ -54,21 +54,6 @@ public function test_tramitar_processo_contendo_documento_cancelado() $processo=self::$processoTeste; - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - - $idAnexo = $bancoOrgaoA->query("SELECT an.id_anexo FROM rel_protocolo_protocolo pp - inner join protocolo p on pp.id_protocolo_1=p.id_protocolo - inner join anexo an on an.id_protocolo=pp.id_protocolo_2 - where p.descricao=?",array($processo['DESCRICAO'])); - - if (array_key_exists("id_anexo", $idAnexo[0])) { - $id_Anexo=$idAnexo[0]["id_anexo"]; - }else{ - $id_Anexo=$idAnexo[0]["ID_ANEXO"]; - } - - $bancoOrgaoA->execute("delete from anexo where id_anexo=?",array($id_Anexo)); - // Trmitar Externamento processo para rgo/unidade destinatria $this->tramitarProcessoExternamente( self::$protocoloTeste, diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php similarity index 97% rename from tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php index a307d83c1..2ae840dca 100755 --- a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php +++ b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php @@ -30,7 +30,6 @@ public function test_tramitar_processo_contendo_documento_gerado() //Configurao da unidade destinatrio como outra unidade do mesmo rgo self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; self::$destinatario['NOME_UNIDADE'] = self::$remetente['NOME_UNIDADE_SECUNDARIA']; self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; @@ -79,6 +78,8 @@ public function test_verificar_origem_processo_contendo_documento_gerado() */ public function test_verificar_destino_processo_contendo_documento_gerado() { + + self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); } } diff --git a/tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php similarity index 100% rename from tests_sei41/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php old mode 100644 new mode 100755 similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php b/tests_sei5/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php rename to tests_sei5/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php b/tests_sei5/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php b/tests_sei5/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php rename to tests_sei5/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php b/tests_sei5/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php b/tests_sei5/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoRestritoTest.php b/tests_sei5/funcional/tests/TramiteProcessoRestritoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoRestritoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoRestritoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php b/tests_sei5/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php rename to tests_sei5/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php b/tests_sei5/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php rename to tests_sei5/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php b/tests_sei5/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php rename to tests_sei5/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php diff --git a/tests_sei41/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php b/tests_sei5/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php similarity index 86% rename from tests_sei41/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php rename to tests_sei5/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php index 3827ee4b8..4c84b811f 100755 --- a/tests_sei41/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php +++ b/tests_sei5/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php @@ -36,13 +36,18 @@ public static function tearDownAfterClass() :void { putenv("DATABASE_HOST=org1-database"); $penMapUnidadesFixture = new \PenMapUnidadesFixture(); $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000001, 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA, 'Sigla' => CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA, 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE, ]); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); + + $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000002, + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA, + 'Sigla' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + ]); } /** diff --git a/tests_sei4/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php b/tests_sei5/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php rename to tests_sei5/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessoValidacaoEnvioTest.php b/tests_sei5/funcional/tests/TramiteProcessoValidacaoEnvioTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessoValidacaoEnvioTest.php rename to tests_sei5/funcional/tests/TramiteProcessoValidacaoEnvioTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php b/tests_sei5/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php rename to tests_sei5/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php diff --git a/tests_sei4/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php b/tests_sei5/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php similarity index 100% rename from tests_sei4/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php rename to tests_sei5/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php diff --git a/tests_sei4/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php b/tests_sei5/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php similarity index 52% rename from tests_sei4/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php rename to tests_sei5/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php index ade7952e3..8e9dbc220 100755 --- a/tests_sei4/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php +++ b/tests_sei5/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php @@ -25,6 +25,8 @@ class TramiteRecebimentoDocumentoAnexadoTest extends FixtureCenarioBaseTestCase public static $documentoTeste4; public static $documentoTeste5; + public static $conteudoCompoonenteDigital; + /** * Teste de envio de metadados do processo contendo documentos anexados * @@ -51,24 +53,25 @@ public function test_envio_processo_com_documento_anexado() self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - // Instanciar objeto de teste utilizando o BeSimpleSoap $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); // Inicia o envio dos trs primeiros documentos $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); + $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); + $novoTramite = $this->enviarMetadadosProcesso(self::$remetente, self::$destinatario, $processoTeste); + $this->enviarComponentesDigitaisDoTramite($novoTramite, $processoTeste); + $reciboTramiteEnvio = $this->receberReciboEnvio($novoTramite); //Verificar recebimento de novo processo administrativo contendo documento avulso enviado $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); + $this->assertNotNull($reciboTramiteEnvio); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentosPrimeiroEnvio, self::$destinatario); - $reciboTramite = $this->receberReciboTramite(self::$servicoPEN, $novoTramite); + $reciboTramiteRecebido = $this->receberReciboTramite($novoTramite); + $this->assertNotNull($reciboTramiteRecebido); } /** @@ -108,92 +111,84 @@ public function test_verificar_processo_com_documento_anexado_apos_devolucao() } - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) + private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); + $arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $strClientGuzzle = new GuzzleHttp\Client([ + 'base_uri' => PEN_ENDERECO_WEBSERVICE, + 'timeout' => ProcessoEletronicoRN::WS_TIMEOUT_CONEXAO, + 'headers' => $arrheaders, + 'cert' => [$localCertificado, $senhaCertificado], + ]); + + return $strClientGuzzle; } - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) + private function enviarMetadadosProcesso($remetente, $destinatario, $processoTeste) { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); + $parametros = []; + $parametros['cabecalho'] = $this->construirCabecalhoTeste($remetente, $destinatario); + $parametros['processo'] = $processoTeste; + + return $this->enviarProcessoAPI($parametros); } - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) + private function enviarComponentesDigitaisDoTramite($novoTramite, $processoTeste) { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); + foreach ($processoTeste['documentos'] as $documentoTeste) { + foreach ($documentoTeste['componentesDigitais'] as $item) { + $dadosDoComponenteDigital = []; + $dadosDoComponenteDigital['protocolo'] = $processoTeste['protocolo']; + $dadosDoComponenteDigital['hashDoComponenteDigital'] = $item['hash']['conteudo']; + $dadosDoComponenteDigital['ticketParaEnvioDeComponentesDigitais'] = $novoTramite['ticketParaEnvioDeComponentesDigitais']; + + $parametros['dadosDoComponenteDigital'] = $dadosDoComponenteDigital; + $this->enviarComponenteDigitalAPI($parametros); } } + } - private function receberReciboEnvio($servicoPEN, $novoTramite) + private function receberReciboEnvio($novoTramite) { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); + $idt = $novoTramite['IDT']; + return $this->receberReciboDeEnvioAPI($idt); } - private function receberReciboTramite($servicoPEN, $novoTramite) + + private function receberReciboTramite($novoTramite) { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); + $idt = $novoTramite['IDT']; + return $this->receberReciboDeTramiteAPI($idt); } private function construirCabecalhoTeste($remetente, $destinatario) { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; + $cabecalho = [ + 'remetente' => [ + 'identificacaoDoRepositorioDeEstruturas' => $remetente['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $remetente['ID_ESTRUTURA'], + ], + 'destinatario' => [ + 'identificacaoDoRepositorioDeEstruturas' => $destinatario['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $destinatario['ID_ESTRUTURA'], + ], + 'enviarApenasComponentesDigitaisPendentes' => false + ]; + return $cabecalho; } public function gerarDadosProcessoTeste($contextoProducao) { $processoTeste = parent::gerarDadosProcessoTeste($contextoProducao); + $processoTeste['PROTOCOLO'] = sprintf('99999.%06d/2020-00', rand(0, 999999)); $processoTeste['INTERESSADOS'] = trim(substr($processoTeste['INTERESSADOS'], 0, 15)); $processoTeste['DESCRICAO'] = trim(substr($processoTeste['DESCRICAO'], 0, 10)); return $processoTeste; @@ -211,7 +206,8 @@ private function construirMetadadosProcessoTeste($processoTeste, $documentosTest { $metadadosDocumentos = array(); foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); + $documentos = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); + $metadadosDocumentos[] = $documentos['documentoDoProcesso']; } return array( @@ -223,11 +219,14 @@ private function construirMetadadosProcessoTeste($processoTeste, $documentosTest 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', 'produtor' => array( 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), + 'tipo' => "orgaopublico", ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], + 'interessados' => array( + [ + "nome" => $processoTeste['INTERESSADOS'], + ] ), - 'documento' => $metadadosDocumentos, + 'documentos' => $metadadosDocumentos, ); } @@ -246,16 +245,17 @@ private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumen $nomeArquivo = basename($caminhoArquivo); $componentes[] = array( 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), + 'hash' => [ + 'algoritmo' => 'SHA256', + 'conteudo' => $hashDocumento + ], 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', + 'mimeType' => 'application/pdf', 'tamanhoEmBytes' => $tamanhoDocumento, 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, ); + + self::$conteudoCompoonenteDigital[$hashDocumento] = $conteudo; } finally { fclose($fp); } @@ -268,10 +268,9 @@ private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumen 'dataHoraDeProducao' => '2017-05-15T03:41:13', 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', 'ordem' => $ordemDocumento, - 'produtor' => array( 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', + "tipo" => "orgaopublico" ), 'especie' => array( @@ -279,17 +278,127 @@ private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumen 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') ), - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], + 'interessados' => array( + [ + "nome" => $documentoTeste['INTERESSADOS'], + "tipo" => "fisica" + ] ), - 'componenteDigital' => $componentes, + 'componentesDigitais' => $componentes, + ); + + $componenteEnvio = array( + 'hashDocumento' => $hashDocumento, + 'conteudo' => $conteudo ); if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); } - return $documentoDoProcesso; + return array( + 'documentoDoProcesso' => $documentoDoProcesso, + 'componenteEnvio' => $componenteEnvio + ); + } + + public function enviarComponenteDigitalAPI($parametros) + { + try { + + $arrParametros = $parametros['dadosDoComponenteDigital']; + $idTicketDeEnvio = $arrParametros['ticketParaEnvioDeComponentesDigitais']; + + $protocolo = $arrParametros['protocolo']; + $hashDoComponenteDigital = $arrParametros['hashDoComponenteDigital']; + + $conteudoComponenteDigital = self::$conteudoCompoonenteDigital[$hashDoComponenteDigital]; + + $queryParams = [ + 'hashDoComponenteDigital' => $hashDoComponenteDigital, + 'protocolo' => $protocolo + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar"; + + $arrOptions = [ + 'query' => $queryParams, + 'multipart' => [ + [ + 'name' => 'conteudo', + 'contents' => $conteudoComponenteDigital, + 'filename' => 'conteudo.html', + 'headers' => ['Content-Type' => 'text/html'] + ], + ], + ]; + + $response = self::$servicoPEN->request('PUT', $endpoint, $arrOptions); + + return $response; + + } catch (\Exception $e) { + $mensagem = "Falha no envio de de componentes no documento"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function receberReciboDeEnvioAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo-de-envio"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = self::$servicoPEN->request('GET', $endpoint, [ + 'query' => $parametros + ]); + + return json_decode($response->getBody(), true); + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite de envio."; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function enviarProcessoAPI($parametros) + { + try { + $endpoint = "tramites/processo"; + + $response = self::$servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no envio de processo"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + + + public function receberReciboDeTramiteAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = self::$servicoPEN->request('GET', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite."; + $this->fail($mensagem . " - " . $e->getMessage()); + } } } diff --git a/tests_sei41/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php b/tests_sei5/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php similarity index 53% rename from tests_sei41/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php rename to tests_sei5/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php index 99d2c2473..56d709a82 100755 --- a/tests_sei41/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php +++ b/tests_sei5/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php @@ -16,6 +16,7 @@ class TramiteRecebimentoDocumentoAvulsoTest extends FixtureCenarioBaseTestCase const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; protected $servicoPEN; + protected $servicoPEN2; public static $remetente; public static $destinatario; public static $processoTeste; @@ -39,12 +40,7 @@ public function setUp(): void // Carregar contexto de testes e dados sobre certificado digital self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); + } /** @@ -52,16 +48,21 @@ public function setUp(): void * * @return void */ - public function test_recebimento_documento_avulso() + public function test_recebimento_metadados_documento_avulso() { + + $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; + $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; + + $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); + // Simular um trmite chamando a API do Barramento diretamente self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, array(self::CONTEUDO_DOCUMENTO_A)); $metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste(self::$documentoTeste1); - $novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, self::$remetente, self::$destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoTramite($this->servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvio($this->servicoPEN, $novoTramite); - + $novoTramite = $this->enviarMetadadosDocumento(self::$remetente, self::$destinatario, $metadadosDocumentoTeste); + $this->enviarComponentesDigitaisDoTramite($novoTramite, $metadadosDocumentoTeste); + $reciboTramite = $this->receberReciboEnvio($novoTramite); //Verificar recebimento de novo processo administrativo contendo documento avulso enviado $this->assertNotNull($novoTramite); @@ -75,7 +76,6 @@ public function test_recebimento_documento_avulso() * @group envio * @large * - * @depends test_recebimento_documento_avulso * * @return void */ @@ -149,76 +149,51 @@ public function test_verificar_recebimento_processo_destino_documento_avulso() $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); } - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) + private function receberReciboEnvio($novoTramite) { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); + $dadosTramite = $novoTramite['tramites']; + $idt = $dadosTramite[0]['IDT']; + return $this->receberReciboDeEnvioAPI($idt); } - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $documentoTeste) + private function enviarMetadadosDocumento($remetente, $destinatario, $documentoTeste) { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } + $parametros = []; + $parametros['cabecalho'] = $this->construirCabecalhoTeste($remetente, $destinatario); + $parametros['documento'] = $documentoTeste['documentoEnvio']; + + return $this->enviarDocumentoAPI($parametros); } - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) + private function enviarComponentesDigitaisDoTramite($novoTramite, $documentoTeste) { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - + $parametros = []; + $dadosDoComponenteDigital['protocolo'] = $documentoTeste['documentoEnvio']['protocolo']; + $dadosDoComponenteDigital['hashDoComponenteDigital'] = $documentoTeste['componenteEnvio']['hashDocumento']; + $dadosDoComponenteDigital['conteudoDoComponenteDigital'] = $documentoTeste['componenteEnvio']['conteudo']; + $dadosDoComponenteDigital['ticketParaEnvioDeComponentesDigitais'] = $novoTramite['ticketParaEnvioDeComponentesDigitais']; + + $parametros['dadosDoComponenteDigital'] = $dadosDoComponenteDigital; + + $this->enviarComponenteDigitalAPI($parametros); } private function construirCabecalhoTeste($remetente, $destinatario) { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; + $cabecalho = [ + 'remetente' => [ + 'identificacaoDoRepositorioDeEstruturas' => $remetente['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $remetente['ID_ESTRUTURA'], + ], + 'destinatarios' => [ + [ + 'identificacaoDoRepositorioDeEstruturas' => $destinatario['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $destinatario['ID_ESTRUTURA'], + ], + ] + ]; + return $cabecalho; } @@ -247,42 +222,147 @@ private function construirMetadadosDocumentoTeste($documentoTeste) $nomeArquivo = basename($caminhoArquivo); $componentes[] = array( 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), + 'hash' => [ + 'algoritmo' => 'SHA256', + 'conteudo' => $hashDocumento + ], 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', + "mimeType" => "application/pdf", 'tamanhoEmBytes' => $tamanhoDocumento, 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, ); } finally { fclose($fp); } } - return array( - 'protocolo' => '13990.000181/2020-00', + $documentoEnvio = array( + 'protocolo' => '13990.000185/2024-00', 'nivelDeSigilo' => 1, 'descricao' => $documentoTeste['DESCRICAO'], 'dataHoraDeProducao' => '2017-05-15T03:41:13', 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), + "nome" => "Nome ABC", + "tipo" => "orgaopublico" ), - 'especie' => array( 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') + 'nomeNoProdutor' => 'Despacho', ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], + 'interessados' => array( + [ + "nome" => $documentoTeste['INTERESSADOS'], + "tipo" => "fisica" + ] ), - 'componenteDigital' => $componentes, + 'componentesDigitais' => $componentes, ); + + $componenteEnvio = array( + 'hashDocumento' => $hashDocumento, + 'conteudo' => $conteudo + ); + + return array( + 'documentoEnvio' => $documentoEnvio, + 'componenteEnvio' => $componenteEnvio + ); + } + + public function enviarDocumentoAPI($parametros) + { + try { + $endpoint = "tramites/documento"; + + $response = $this->servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no envio de documento avulso"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + + public function enviarComponenteDigitalAPI($parametros) + { + try { + + $arrParametros = $parametros['dadosDoComponenteDigital']; + $idTicketDeEnvio = $arrParametros['ticketParaEnvioDeComponentesDigitais']; + + $protocolo = $arrParametros['protocolo']; + $hashDoComponenteDigital = $arrParametros['hashDoComponenteDigital']; + $conteudo = $arrParametros['conteudoDoComponenteDigital']; + + $queryParams = [ + 'hashDoComponenteDigital' => $hashDoComponenteDigital, + 'protocolo' => $protocolo + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar"; + + $arrOptions = [ + 'query' => $queryParams, + 'multipart' => [ + [ + 'name' => 'conteudo', + 'contents' => $conteudo, + 'filename' => 'conteudo.html', + 'headers' => ['Content-Type' => 'text/html'] + ], + ], + ]; + + $response = $this->servicoPEN->request('PUT', $endpoint, $arrOptions); + + return $response; + + } catch (\Exception $e) { + $mensagem = "Falha no envio de de componentes no documento"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + + public function receberReciboDeEnvioAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo-de-envio"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = $this->servicoPEN->request('GET', $endpoint, [ + 'query' => $parametros + ]); + + return json_decode($response->getBody(), true); + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite de envio."; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) + { + $arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $strClientGuzzle = new GuzzleHttp\Client([ + 'base_uri' => PEN_ENDERECO_WEBSERVICE, + 'timeout' => ProcessoEletronicoRN::WS_TIMEOUT_CONEXAO, + 'headers' => $arrheaders, + 'cert' => [$localCertificado, $senhaCertificado], + ]); + + return $strClientGuzzle; } } diff --git a/tests_sei41/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php b/tests_sei5/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php similarity index 51% rename from tests_sei41/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php rename to tests_sei5/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php index 8a86292cc..475911314 100755 --- a/tests_sei41/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php +++ b/tests_sei5/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php @@ -19,6 +19,8 @@ class TramiteRecebimentoInteressadosDuplicadosTest extends FixtureCenarioBaseTes public static $servicoPEN; public static $documentoTeste1; + public static $conteudoCompoonenteDigital; + /** * Teste de envio de metadados do processo contendo interessados duplicados * @@ -42,7 +44,7 @@ public function test_envio_processo_com_documento_anexado() // Atribui dois interessados utilizando o mesmo nome self::$processoTeste['INTERESSADOS'] = array("Interessado com mesmo nome", "Interessado com mesmo nome"); - // Instanciar objeto de teste utilizando o BeSimpleSoap + // Instanciar objeto de teste utilizando o Guzzle $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); @@ -50,9 +52,9 @@ public function test_envio_processo_com_documento_anexado() // Inicia o envio do processo $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1); $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); + $novoTramite = $this->enviarMetadadosProcesso(self::$remetente, self::$destinatario, $processoTeste); + $this->enviarComponentesDigitaisDoTramite($novoTramite, $processoTeste); + $reciboTramite = $this->receberReciboEnvio($novoTramite); //Verifica recebimento de novo processo administrativo contendo documento avulso enviado @@ -65,64 +67,54 @@ public function test_envio_processo_com_documento_anexado() } - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) + private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - + $arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $strClientGuzzle = new GuzzleHttp\Client([ + 'base_uri' => PEN_ENDERECO_WEBSERVICE, + 'timeout' => ProcessoEletronicoRN::WS_TIMEOUT_CONEXAO, + 'headers' => $arrheaders, + 'cert' => [$localCertificado, $senhaCertificado], + ]); + + return $strClientGuzzle; } - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) + private function enviarMetadadosProcesso($remetente, $destinatario, $processoTeste) { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); + $parametros = []; + $parametros['cabecalho'] = $this->construirCabecalhoTeste($remetente, $destinatario); + $parametros['processo'] = $processoTeste; + + return $this->enviarProcessoAPI($parametros); } - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) + private function enviarComponentesDigitaisDoTramite($novoTramite, $processoTeste) { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); + foreach ($processoTeste['documentos'] as $documentoTeste) { + foreach ($documentoTeste['componentesDigitais'] as $item) { + $dadosDoComponenteDigital = []; + $dadosDoComponenteDigital['protocolo'] = $processoTeste['protocolo']; + $dadosDoComponenteDigital['hashDoComponenteDigital'] = $item['hash']['conteudo']; + $dadosDoComponenteDigital['ticketParaEnvioDeComponentesDigitais'] = $novoTramite['ticketParaEnvioDeComponentesDigitais']; + + $parametros['dadosDoComponenteDigital'] = $dadosDoComponenteDigital; + $this->enviarComponenteDigitalAPI($parametros); } } + } - private function receberReciboEnvio($servicoPEN, $novoTramite) + private function receberReciboEnvio($novoTramite) { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); + $idt = $novoTramite['IDT']; + return $this->receberReciboDeEnvioAPI($idt); } private function receberReciboTramite($servicoPEN, $novoTramite) @@ -135,18 +127,18 @@ private function receberReciboTramite($servicoPEN, $novoTramite) private function construirCabecalhoTeste($remetente, $destinatario) { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; + $cabecalho = [ + 'remetente' => [ + 'identificacaoDoRepositorioDeEstruturas' => $remetente['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $remetente['ID_ESTRUTURA'], + ], + 'destinatario' => [ + 'identificacaoDoRepositorioDeEstruturas' => $destinatario['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $destinatario['ID_ESTRUTURA'], + ], + 'enviarApenasComponentesDigitaisPendentes' => false + ]; + return $cabecalho; } @@ -171,7 +163,8 @@ private function construirMetadadosProcessoTeste($processoTeste, $documentosTest { $metadadosDocumentos = array(); foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); + $documentos = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); + $metadadosDocumentos[] = $documentos['documentoDoProcesso']; } $arrInteressados = array_map(function($item) { @@ -188,9 +181,10 @@ private function construirMetadadosProcessoTeste($processoTeste, $documentosTest 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', 'produtor' => array( 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), + 'tipo' => "orgaopublico", ), - 'interessado' => $arrInteressados, - 'documento' => $metadadosDocumentos, + 'interessados' => $arrInteressados, + 'documentos' => $metadadosDocumentos, ); } @@ -209,16 +203,17 @@ private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumen $nomeArquivo = basename($caminhoArquivo); $componentes[] = array( 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), + 'hash' => [ + 'algoritmo' => 'SHA256', + 'conteudo' => $hashDocumento + ], 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', + 'mimeType' => 'application/pdf', 'tamanhoEmBytes' => $tamanhoDocumento, 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, ); + + self::$conteudoCompoonenteDigital = [$hashDocumento => $conteudo]; } finally { fclose($fp); } @@ -231,10 +226,9 @@ private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumen 'dataHoraDeProducao' => '2017-05-15T03:41:13', 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', 'ordem' => $ordemDocumento, - 'produtor' => array( 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', + "tipo" => "orgaopublico" ), 'especie' => array( @@ -242,17 +236,105 @@ private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumen 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') ), - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], + 'interessados' => array( + [ + "nome" => $documentoTeste['INTERESSADOS'], + "tipo" => "fisica" + ] ), - 'componenteDigital' => $componentes, + 'componentesDigitais' => $componentes, + ); + + $componenteEnvio = array( + 'hashDocumento' => $hashDocumento, + 'conteudo' => $conteudo ); if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); } - return $documentoDoProcesso; + return array( + 'documentoDoProcesso' => $documentoDoProcesso, + 'componenteEnvio' => $componenteEnvio + ); + } + + public function enviarProcessoAPI($parametros) + { + try { + $endpoint = "tramites/processo"; + + $response = self::$servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no envio de processo"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function enviarComponenteDigitalAPI($parametros) + { + try { + + $arrParametros = $parametros['dadosDoComponenteDigital']; + $idTicketDeEnvio = $arrParametros['ticketParaEnvioDeComponentesDigitais']; + + $protocolo = $arrParametros['protocolo']; + $hashDoComponenteDigital = $arrParametros['hashDoComponenteDigital']; + + $conteudoComponenteDigital = self::$conteudoCompoonenteDigital[$hashDoComponenteDigital]; + + $queryParams = [ + 'hashDoComponenteDigital' => $hashDoComponenteDigital, + 'protocolo' => $protocolo + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar"; + + $arrOptions = [ + 'query' => $queryParams, + 'multipart' => [ + [ + 'name' => 'conteudo', + 'contents' => $conteudoComponenteDigital, + 'filename' => 'conteudo.html', + 'headers' => ['Content-Type' => 'text/html'] + ], + ], + ]; + + $response = self::$servicoPEN->request('PUT', $endpoint, $arrOptions); + + return $response; + + } catch (\Exception $e) { + $mensagem = "Falha no envio de de componentes no documento"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function receberReciboDeEnvioAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo-de-envio"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = self::$servicoPEN->request('GET', $endpoint, [ + 'query' => $parametros + ]); + + return json_decode($response->getBody(), true); + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite de envio."; + $this->fail($mensagem . " - " . $e->getMessage()); + } } } diff --git a/tests_sei5/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_sei5/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php new file mode 100755 index 000000000..f0780d6f9 --- /dev/null +++ b/tests_sei5/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php @@ -0,0 +1,553 @@ +<?php + +use \utilphp\util; + +/** + * Execution Groups + * @group execute_alone_group1 + */ +class TramiteRecebimentoMultiplosComponentesDigitais extends FixtureCenarioBaseTestCase +{ + const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; + const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; + + const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; + const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; + const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; + + public static $contextoOrgaoA; + public static $contextoOrgaoB; + public static $processoTeste; + public static $protocoloTeste; + public static $servicoPEN; + public static $documentoZip; + + public static $conteudoCompoonenteDigital; + + + + /** + * Teste de recebimento dedocumento avulso com 2 componentes digitais + * + * @Depends CenarioBaseTestCase::setUpBeforeClass + * + * @return void + */ + public function setUp(): void + { + parent::setup(); + + // Carregar contexto de testes e dados sobre certificado digital + self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + // Instanciar objeto de teste utilizando o Guzzle + $localCertificado = self::$contextoOrgaoB['LOCALIZACAO_CERTIFICADO_DIGITAL']; + $senhaCertificado = self::$contextoOrgaoB['SENHA_CERTIFICADO_DIGITAL']; + self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); + } + + /** + * Teste de recebimento processo contendo documento com 3 componentes digitais + * + * @return void + */ + public function test_recebimento_processo_com_3_componentes_digitais() + { + $remetente = self::$contextoOrgaoB; + $destinatario = self::$contextoOrgaoA; + + // Simular um trmite chamando a API do Barramento diretamente + self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); + self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); + self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); + self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( + self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, + self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, + self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, + self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, + )); + + // Simular um trmite chamando a API do Barramento diretamente + $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); + $novoTramite = $this->enviarMetadadosProcesso($remetente, $destinatario, $metadadosProcessoTeste); + + $this->enviarComponentesDigitaisDoProcesso($novoTramite, $metadadosProcessoTeste); + $reciboTramite = $this->receberReciboEnvio($novoTramite); + + + //Verificar recebimento de novo processo administrativo contendo documento avulso enviado + $this->assertNotNull($novoTramite); + $this->assertNotNull($reciboTramite); + $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); + $this->receberReciboTramite($novoTramite); + } + + + /** + * Teste de trmite externo de processo com devoluo para a mesma unidade de origem + * + * @depends test_recebimento_processo_com_3_componentes_digitais + * + * @return void + */ + public function test_devolucao_processo_para_origem() + { + // Configurao do dados para teste do cenrio + $remetente = self::$contextoOrgaoA; + $destinatario = self::$contextoOrgaoB; + $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; + + $documentoTeste1 = $this->gerarDadosDocumentoInternoTeste($remetente); + $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); + + $novosDocumentos = array($documentoTeste1, $documentoTeste2); + $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + + } + + /** + * Teste de recebimento documento avulso com 2 componentes digitais + * + * @return void + */ + public function test_recebimento_documento_avulso_com_2_componentes_digitais() + { + $remetente = self::$contextoOrgaoB; + $destinatario = self::$contextoOrgaoA; + + // Simular um trmite chamando a API do Barramento diretamente + $documentoTeste = $this->gerarDadosDocumentoExternoTeste($remetente, array(self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B)); + $documentoTeste['INTERESSADOS'] = trim(substr($documentoTeste['INTERESSADOS'], 0, 50)); + + // Simular um trmite chamando a API do Barramento diretamente + $metadadosDocumentoTeste = $this->construirMetadadosDocumentoAvulsoTeste($documentoTeste); + $novoTramite = $this->enviarMetadadosDocumento($remetente, $destinatario, $metadadosDocumentoTeste); + $this->enviarComponentesDigitaisDoDocumentoAvulso($novoTramite, $metadadosDocumentoTeste); + sleep(5); + $reciboTramite = $this->receberReciboEnvio($novoTramite); + + + //Verificar recebimento de novo processo administrativo contendo documento avulso enviado + $this->assertNotNull($novoTramite); + $this->assertNotNull($reciboTramite); + $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $destinatario); + } + + private function receberReciboTramite($novoTramite) + { + $idt = $novoTramite['IDT']; + return $this->receberReciboDeTramiteAPI($idt); + } + + private function receberReciboEnvio($novoTramite) + { + // Verifica a origem do envio para determinar se foi realizado por um trmite de documento avulso ou dentro de um processo. + if (isset($novoTramite['tramites'])) { + $numIDT = $novoTramite['tramites'][0]['IDT']; + } else { + $numIDT = $novoTramite['IDT']; + } + + return $this->receberReciboDeEnvioAPI($numIDT); + } + + private function enviarMetadadosProcesso($remetente, $destinatario, $processoTeste) + { + $parametros = []; + $parametros['cabecalho'] = $this->construirCabecalhoTeste($remetente, $destinatario); + $parametros['processo'] = $processoTeste; + + return $this->enviarProcessoAPI($parametros); + } + + private function enviarMetadadosDocumento($remetente, $destinatario, $documentoTeste) + { + $parametros = []; + $parametros['cabecalho'] = $this->construirCabecalhoDocumentoTeste($remetente, $destinatario); + $parametros['documento'] = $documentoTeste['documentoEnvio']; + + return $this->enviarDocumentoAPI($parametros); + } + + private function enviarComponentesDigitaisDoDocumentoAvulso($novoTramite, $documentoTeste) + { + $parametros = []; + $arrComponentesDigitais = $documentoTeste['componenteEnvio']; + + $dadosDoComponenteDigital['protocolo'] = $documentoTeste['documentoEnvio']['protocolo']; + $dadosDoComponenteDigital['ticketParaEnvioDeComponentesDigitais'] = $novoTramite['ticketParaEnvioDeComponentesDigitais']; + $parametros['dadosDoComponenteDigital'] = $dadosDoComponenteDigital; + + foreach ($arrComponentesDigitais as $componentesDigitais) { + $parametros['dadosDoComponenteDigital']['hashDoComponenteDigital'] = $componentesDigitais['hashDocumento']; + self::$conteudoCompoonenteDigital[$componentesDigitais['hashDocumento']] = $componentesDigitais['conteudo']; + $this->enviarComponenteDigitalAPI($parametros); + } + } + + private function enviarComponentesDigitaisDoProcesso($novoTramite, $processoTeste) + { + foreach ($processoTeste['documentos'] as $documentoTeste) { + foreach ($documentoTeste['componentesDigitais'] as $item) { + $dadosDoComponenteDigital = []; + $dadosDoComponenteDigital['protocolo'] = $processoTeste['protocolo']; + $dadosDoComponenteDigital['hashDoComponenteDigital'] = $item['hash']['conteudo']; + $dadosDoComponenteDigital['ticketParaEnvioDeComponentesDigitais'] = $novoTramite['ticketParaEnvioDeComponentesDigitais']; + + $parametros['dadosDoComponenteDigital'] = $dadosDoComponenteDigital; + $this->enviarComponenteDigitalAPI($parametros); + } + } + + } + + private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) + { + $arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $strClientGuzzle = new GuzzleHttp\Client([ + 'base_uri' => PEN_ENDERECO_WEBSERVICE, + 'timeout' => ProcessoEletronicoRN::WS_TIMEOUT_CONEXAO, + 'headers' => $arrheaders, + 'cert' => [$localCertificado, $senhaCertificado], + ]); + + return $strClientGuzzle; + } + + private function construirCabecalhoTeste($remetente, $destinatario) + { + $cabecalho = [ + 'remetente' => [ + 'identificacaoDoRepositorioDeEstruturas' => $remetente['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $remetente['ID_ESTRUTURA'], + ], + 'destinatario' => [ + 'identificacaoDoRepositorioDeEstruturas' => $destinatario['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $destinatario['ID_ESTRUTURA'], + ], + 'enviarApenasComponentesDigitaisPendentes' => false + ]; + + return $cabecalho; + } + + + private function construirCabecalhoDocumentoTeste($remetente, $destinatario) + { + $cabecalho = [ + 'remetente' => [ + 'identificacaoDoRepositorioDeEstruturas' => $remetente['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $remetente['ID_ESTRUTURA'], + ], + 'destinatarios' => [ + [ + 'identificacaoDoRepositorioDeEstruturas' => $destinatario['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $destinatario['ID_ESTRUTURA'], + ], + ] + ]; + + return $cabecalho; + } + + + public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) + { + $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); + $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; + $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); + return $dadosDocumentoTest; + + } + + private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) + { + $componentes = array(); + $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); + $componenteEnvio = []; + foreach ($listaComponentes as $ordem => $caminhoArquivo) { + $caminhoArquivo = realpath($caminhoArquivo); + $fp = fopen($caminhoArquivo, "rb"); + try{ + $conteudo = fread($fp, filesize($caminhoArquivo)); + $tamanhoDocumento = strlen($conteudo); + $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); + $nomeArquivo = basename($caminhoArquivo); + $componentes[] = array( + 'nome' => $nomeArquivo, + 'hash' => [ + 'algoritmo' => 'SHA256', + 'conteudo' => $hashDocumento + ], + 'tipoDeConteudo' => 'txt', + "mimeType" => "application/pdf", + 'tamanhoEmBytes' => $tamanhoDocumento, + 'ordem' => $ordem + 1, + ); + + // Utilizada exclusivamente para o envio de componentes digitais. + // Inclui o contedo do documento anexado, simplificando o processo de integrao. + $componenteEnvio[] = array( + 'hashDocumento' => $hashDocumento, + 'conteudo' => $conteudo + ); + } finally { + fclose($fp); + } + } + + $documentoEnvio = array( + 'protocolo' => '13990.000185/2024-00', + 'nivelDeSigilo' => 1, + 'descricao' => $documentoTeste['DESCRICAO'], + 'dataHoraDeProducao' => '2017-05-15T03:41:13', + 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', + 'produtor' => array( + "nome" => "Nome ABC", + "tipo" => "orgaopublico" + ), + 'especie' => array( + 'codigo' => 42, + 'nomeNoProdutor' => 'Despacho', + ), + 'interessados' => array( + [ + "nome" => $documentoTeste['INTERESSADOS'], + "tipo" => "fisica" + ] + ), + + 'componentesDigitais' => $componentes, + ); + + return array( + 'documentoEnvio' => $documentoEnvio, + 'componenteEnvio' => $componenteEnvio + ); + } + + private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) + { + $componentes = array(); + $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); + + foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { + $caminhoArquivo = realpath($caminhoArquivo); + $fp = fopen($caminhoArquivo, "rb"); + try{ + $conteudo = fread($fp, filesize($caminhoArquivo)); + $tamanhoDocumento = strlen($conteudo); + $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); + $nomeArquivo = basename($caminhoArquivo); + $componentes[] = array( + 'nome' => $nomeArquivo, + 'hash' => [ + 'algoritmo' => 'SHA256', + 'conteudo' => $hashDocumento + ], + 'tipoDeConteudo' => 'txt', + 'mimeType' => 'application/pdf', + 'tamanhoEmBytes' => $tamanhoDocumento, + 'ordem' => $ordemComponente, + ); + + self::$conteudoCompoonenteDigital[$hashDocumento] = $conteudo; + } finally { + fclose($fp); + } + } + + $documentoDoProcesso = array( + 'protocolo' => util::random_string(5), + 'nivelDeSigilo' => 1, + 'descricao' => $documentoTeste['DESCRICAO'], + 'dataHoraDeProducao' => '2017-05-15T03:41:13', + 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', + 'ordem' => $ordemDocumento, + 'produtor' => array( + 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), + "tipo" => "orgaopublico" + ), + + 'especie' => array( + 'codigo' => 42, + 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') + ), + + 'interessados' => array( + [ + "nome" => $documentoTeste['INTERESSADOS'], + "tipo" => "fisica" + ] + ), + + 'componentesDigitais' => $componentes, + ); + + $componenteEnvio = array( + 'hashDocumento' => $hashDocumento, + 'conteudo' => $conteudo + ); + + if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ + $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); + } + + return array( + 'documentoDoProcesso' => $documentoDoProcesso, + 'componenteEnvio' => $componenteEnvio + ); + } + + + private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) + { + $metadadosDocumentos = array(); + foreach ($documentosTeste as $indice => $documentoTeste) { + $documentos = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); + $metadadosDocumentos[] = $documentos['documentoDoProcesso']; + } + + return array( + 'protocolo' => $processoTeste['PROTOCOLO'], + 'nivelDeSigilo' => 1, + 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], + 'descricao' => $processoTeste['DESCRICAO'], + 'dataHoraDeProducao' => '2017-05-15T03:41:13', + 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', + 'produtor' => array( + 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), + 'tipo' => "orgaopublico", + ), + 'interessados' => array( + [ + "nome" => $processoTeste['INTERESSADOS'], + ] + ), + 'documentos' => $metadadosDocumentos, + ); + } + + + public function enviarComponenteDigitalAPI($parametros) + { + try { + + $arrParametros = $parametros['dadosDoComponenteDigital']; + $idTicketDeEnvio = $arrParametros['ticketParaEnvioDeComponentesDigitais']; + + $protocolo = $arrParametros['protocolo']; + $hashDoComponenteDigital = $arrParametros['hashDoComponenteDigital']; + + $conteudoComponenteDigital = self::$conteudoCompoonenteDigital[$hashDoComponenteDigital]; + + $queryParams = [ + 'hashDoComponenteDigital' => $hashDoComponenteDigital, + 'protocolo' => $protocolo + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar"; + + $arrOptions = [ + 'query' => $queryParams, + 'multipart' => [ + [ + 'name' => 'conteudo', + 'contents' => $conteudoComponenteDigital, + 'filename' => 'conteudo.html', + 'headers' => ['Content-Type' => 'text/html'] + ], + ], + ]; + + $response = self::$servicoPEN->request('PUT', $endpoint, $arrOptions); + + return $response; + + } catch (\Exception $e) { + $mensagem = "Falha no envio de de componentes no documento"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function receberReciboDeEnvioAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo-de-envio"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = self::$servicoPEN->request('GET', $endpoint, [ + 'query' => $parametros + ]); + + return json_decode($response->getBody(), true); + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite de envio."; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function enviarProcessoAPI($parametros) + { + try { + $endpoint = "tramites/processo"; + + $response = self::$servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no envio de processo"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + + + public function receberReciboDeTramiteAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = self::$servicoPEN->request('GET', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite."; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function enviarDocumentoAPI($parametros) + { + try { + $endpoint = "tramites/documento"; + + $response = self::$servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no envio de documento avulso"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + +} diff --git a/tests_sei5/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_sei5/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php new file mode 100755 index 000000000..f9b8ab48c --- /dev/null +++ b/tests_sei5/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php @@ -0,0 +1,437 @@ +<?php + +use \utilphp\util; + +class TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes extends FixtureCenarioBaseTestCase +{ + const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; + const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; + + const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; + const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; + const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; + + public static $contextoOrgaoA; + public static $contextoOrgaoB; + public static $processoTeste; + public static $protocoloTeste; + public static $servicoPEN; + public static $documentoZip; + + public static $totalDocumentos; + public static $conteudoCompoonenteDigital; + + + /** + * Teste de recebimento dedocumento avulso com 2 componentes digitais + * + * @Depends CenarioBaseTestCase::setUpBeforeClass + * + * @return void + */ + public function setUp(): void + { + parent::setup(); + + // Carregar contexto de testes e dados sobre certificado digital + self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + // Instanciar objeto de teste utilizando o Guzzle + $localCertificado = self::$contextoOrgaoA['LOCALIZACAO_CERTIFICADO_DIGITAL']; + $senhaCertificado = self::$contextoOrgaoA['SENHA_CERTIFICADO_DIGITAL']; + self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); + } + + /** + * Teste de recebimento processo contendo documento com 3 componentes digitais + * + * @return void + */ + public function test_recebimento_processo_com_3_componentes_digitais() + { + $remetente = self::$contextoOrgaoA; + $destinatario = self::$contextoOrgaoB; + + // Simular um trmite chamando a API do Barramento diretamente + self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); + self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); + self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); + self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( + self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C + )); + + self::$totalDocumentos = array(self::$documentoZip); + + // Simular um trmite chamando a API do Barramento diretamente + $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); + $novoTramite = $this->enviarMetadadosProcesso($remetente, $destinatario, $metadadosProcessoTeste); + + $this->enviarComponentesDigitaisDoProcesso($novoTramite, $metadadosProcessoTeste); + $reciboTramite = $this->receberReciboEnvio($novoTramite); + + + //Verificar recebimento de novo processo administrativo contendo documento avulso enviado + $this->assertNotNull($novoTramite); + $this->assertNotNull($reciboTramite); + $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); + $this->receberReciboTramite($novoTramite); + } + + + /** + * Teste de trmite externo de processo com devoluo para a mesma unidade de origem + * + * @depends test_recebimento_processo_com_3_componentes_digitais + * + * @return void + */ + public function test_devolucao_processo_para_origem_1() + { + // Configurao do dados para teste do cenrio + $remetente = self::$contextoOrgaoB; + $destinatario = self::$contextoOrgaoA; + + $documentoTesteInterno = $this->gerarDadosDocumentoInternoTeste($remetente); + + putenv("DATABASE_HOST=org2-database"); + $novosDocumentos = array($documentoTesteInterno); + $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); + $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); + } + + + /** + * + * @depends test_devolucao_processo_para_origem_1 + * + * @return void + */ + public function test_devolucao_processo_para_destino_2() + { + // Configurao do dados para teste do cenrio + $remetente = self::$contextoOrgaoA; + $destinatario = array_slice(self::$contextoOrgaoB, 0); + $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; + + $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); + + putenv("DATABASE_HOST=org1-database"); + $novosDocumentos = array($documentoTesteExterno); + $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); + $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); + } + + + private function receberReciboEnvio($novoTramite) + { + // Verifica a origem do envio para determinar se foi realizado por um trmite de documento avulso ou dentro de um processo. + if (isset($novoTramite['tramites'])) { + $numIDT = $novoTramite['tramites'][0]['IDT']; + } else { + $numIDT = $novoTramite['IDT']; + } + + return $this->receberReciboDeEnvioAPI($numIDT); + } + + private function receberReciboTramite($novoTramite) + { + $idt = $novoTramite['IDT']; + return $this->receberReciboDeTramiteAPI($idt); + } + + private function enviarMetadadosProcesso($remetente, $destinatario, $processoTeste) + { + $parametros = []; + $parametros['cabecalho'] = $this->construirCabecalhoTeste($remetente, $destinatario); + $parametros['processo'] = $processoTeste; + + return $this->enviarProcessoAPI($parametros); + } + + private function enviarComponentesDigitaisDoProcesso($novoTramite, $processoTeste) + { + foreach ($processoTeste['documentos'] as $documentoTeste) { + foreach ($documentoTeste['componentesDigitais'] as $item) { + $dadosDoComponenteDigital = []; + $dadosDoComponenteDigital['protocolo'] = $processoTeste['protocolo']; + $dadosDoComponenteDigital['hashDoComponenteDigital'] = $item['hash']['conteudo']; + $dadosDoComponenteDigital['ticketParaEnvioDeComponentesDigitais'] = $novoTramite['ticketParaEnvioDeComponentesDigitais']; + + $parametros['dadosDoComponenteDigital'] = $dadosDoComponenteDigital; + $this->enviarComponenteDigitalAPI($parametros); + } + } + + } + + private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) + { + $arrheaders = [ + 'Accept' => '*/*', + 'Content-Type' => 'application/json', + ]; + + $strClientGuzzle = new GuzzleHttp\Client([ + 'base_uri' => PEN_ENDERECO_WEBSERVICE, + 'timeout' => ProcessoEletronicoRN::WS_TIMEOUT_CONEXAO, + 'headers' => $arrheaders, + 'cert' => [$localCertificado, $senhaCertificado], + ]); + + return $strClientGuzzle; + } + + + private function construirCabecalhoTeste($remetente, $destinatario) + { + $cabecalho = [ + 'remetente' => [ + 'identificacaoDoRepositorioDeEstruturas' => $remetente['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $remetente['ID_ESTRUTURA'], + ], + 'destinatario' => [ + 'identificacaoDoRepositorioDeEstruturas' => $destinatario['ID_REP_ESTRUTURAS'], + 'numeroDeIdentificacaoDaEstrutura' => $destinatario['ID_ESTRUTURA'], + ], + 'enviarApenasComponentesDigitaisPendentes' => false + ]; + + return $cabecalho; + } + + + public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) + { + $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); + $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; + $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); + return $dadosDocumentoTest; + + } + + private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) + { + $componentes = array(); + $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); + + foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { + $caminhoArquivo = realpath($caminhoArquivo); + $fp = fopen($caminhoArquivo, "rb"); + try{ + $conteudo = fread($fp, filesize($caminhoArquivo)); + $tamanhoDocumento = strlen($conteudo); + $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); + $nomeArquivo = basename($caminhoArquivo); + $componentes[] = array( + 'nome' => $nomeArquivo, + 'hash' => [ + 'algoritmo' => 'SHA256', + 'conteudo' => $hashDocumento + ], + 'tipoDeConteudo' => 'txt', + 'mimeType' => 'application/pdf', + 'tamanhoEmBytes' => $tamanhoDocumento, + 'ordem' => $ordemComponente, + ); + + self::$conteudoCompoonenteDigital[$hashDocumento] = $conteudo; + } finally { + fclose($fp); + } + } + + $documentoDoProcesso = array( + 'protocolo' => util::random_string(5), + 'nivelDeSigilo' => 1, + 'descricao' => $documentoTeste['DESCRICAO'], + 'dataHoraDeProducao' => '2017-05-15T03:41:13', + 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', + 'ordem' => $ordemDocumento, + 'produtor' => array( + 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), + "tipo" => "orgaopublico" + ), + + 'especie' => array( + 'codigo' => 42, + 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') + ), + + 'interessados' => array( + [ + "nome" => $documentoTeste['INTERESSADOS'], + "tipo" => "fisica" + ] + ), + + 'componentesDigitais' => $componentes, + ); + + $componenteEnvio = array( + 'hashDocumento' => $hashDocumento, + 'conteudo' => $conteudo + ); + + if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ + $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); + } + + return array( + 'documentoDoProcesso' => $documentoDoProcesso, + 'componenteEnvio' => $componenteEnvio + ); + } + + + private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) + { + $metadadosDocumentos = array(); + foreach ($documentosTeste as $indice => $documentoTeste) { + $documentos = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); + $metadadosDocumentos[] = $documentos['documentoDoProcesso']; + } + + return array( + 'protocolo' => $processoTeste['PROTOCOLO'], + 'nivelDeSigilo' => 1, + 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], + 'descricao' => $processoTeste['DESCRICAO'], + 'dataHoraDeProducao' => '2017-05-15T03:41:13', + 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', + 'produtor' => array( + 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), + 'tipo' => "orgaopublico", + ), + 'interessados' => array( + [ + "nome" => $processoTeste['INTERESSADOS'], + ] + ), + 'documentos' => $metadadosDocumentos, + ); + } + + + public function enviarComponenteDigitalAPI($parametros) + { + try { + + $arrParametros = $parametros['dadosDoComponenteDigital']; + $idTicketDeEnvio = $arrParametros['ticketParaEnvioDeComponentesDigitais']; + + $protocolo = $arrParametros['protocolo']; + $hashDoComponenteDigital = $arrParametros['hashDoComponenteDigital']; + + $conteudoComponenteDigital = self::$conteudoCompoonenteDigital[$hashDoComponenteDigital]; + + $queryParams = [ + 'hashDoComponenteDigital' => $hashDoComponenteDigital, + 'protocolo' => $protocolo + ]; + + $endpoint = "tickets-de-envio-de-componente/{$idTicketDeEnvio}/protocolos/componentes-a-enviar"; + + $arrOptions = [ + 'query' => $queryParams, + 'multipart' => [ + [ + 'name' => 'conteudo', + 'contents' => $conteudoComponenteDigital, + 'filename' => 'conteudo.html', + 'headers' => ['Content-Type' => 'text/html'] + ], + ], + ]; + + $response = self::$servicoPEN->request('PUT', $endpoint, $arrOptions); + + return $response; + + } catch (\Exception $e) { + $mensagem = "Falha no envio de de componentes no documento"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function receberReciboDeEnvioAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo-de-envio"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = self::$servicoPEN->request('GET', $endpoint, [ + 'query' => $parametros + ]); + + return json_decode($response->getBody(), true); + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite de envio."; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function enviarProcessoAPI($parametros) + { + try { + $endpoint = "tramites/processo"; + + $response = self::$servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no envio de processo"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + + + public function receberReciboDeTramiteAPI($parNumIdTramite) + { + $endpoint = "tramites/{$parNumIdTramite}/recibo"; + try{ + $parametros = [ + 'IDT' => $parNumIdTramite + ]; + + $response = self::$servicoPEN->request('GET', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no recebimento de recibo de trmite."; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + + public function enviarDocumentoAPI($parametros) + { + try { + $endpoint = "tramites/documento"; + + $response = self::$servicoPEN->request('POST', $endpoint, [ + 'json' => $parametros + ]); + + return json_decode($response->getBody(), true); + + } catch (\Exception $e) { + $mensagem = "Falha no envio de documento avulso"; + $this->fail($mensagem . " - " . $e->getMessage()); + } + } + +} diff --git a/tests_sei3/integracao/Readme.md b/tests_sei5/integracao/Readme.md similarity index 100% rename from tests_sei3/integracao/Readme.md rename to tests_sei5/integracao/Readme.md diff --git a/tests_sei3/unitario/Readme.md b/tests_sei5/unitario/Readme.md similarity index 100% rename from tests_sei3/unitario/Readme.md rename to tests_sei5/unitario/Readme.md diff --git a/tests_sei3/unitario/assets/config/ConfiguracaoModPEN.php b/tests_sei5/unitario/assets/config/ConfiguracaoModPEN.php similarity index 100% rename from tests_sei3/unitario/assets/config/ConfiguracaoModPEN.php rename to tests_sei5/unitario/assets/config/ConfiguracaoModPEN.php diff --git a/tests_sei5/unitario/bootstrap.php b/tests_sei5/unitario/bootstrap.php new file mode 100755 index 000000000..383369434 --- /dev/null +++ b/tests_sei5/unitario/bootstrap.php @@ -0,0 +1,5 @@ +<?php + +require_once __DIR__ . '/vendor/autoload.php'; + +define("DIR_SEI_VENDOR", __DIR__ . '/vendor'); diff --git a/tests_super/unitario/composer.json b/tests_sei5/unitario/composer.json similarity index 62% rename from tests_super/unitario/composer.json rename to tests_sei5/unitario/composer.json index 0db18d095..baf051897 100755 --- a/tests_super/unitario/composer.json +++ b/tests_sei5/unitario/composer.json @@ -17,6 +17,9 @@ ], "require-dev": { - "phpunit/phpunit": "5.*" + "phpunit/phpunit": "9.*", + "phpunit/php-code-coverage": "*", + "phpunit/phpunit-selenium": "dev-master", + "guzzlehttp/guzzle": "^7.0" } } diff --git a/tests_sei4/funcional/composer.phar b/tests_sei5/unitario/composer.phar similarity index 100% rename from tests_sei4/funcional/composer.phar rename to tests_sei5/unitario/composer.phar diff --git a/tests_sei3/unitario/php.ini b/tests_sei5/unitario/php.ini similarity index 100% rename from tests_sei3/unitario/php.ini rename to tests_sei5/unitario/php.ini diff --git a/tests_sei5/unitario/phpunit.xml b/tests_sei5/unitario/phpunit.xml new file mode 100755 index 000000000..4d83f6a17 --- /dev/null +++ b/tests_sei5/unitario/phpunit.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<phpunit bootstrap="bootstrap.php" colors="true" verbose="true"> + <php> + <!-- Localização do diretório onde está contido os arquivos de configuração do SEI --> + <const name="DIR_SEI_CONFIG" value="/opt/sei/config"/> + </php> + <coverage> + <exclude> + <directory suffix=".php">/opt/sei/web/modulos/pen/vendor</directory> + <directory suffix=".php">/opt/sei/web/modulos/pen/config</directory> + </exclude> + <include> + <directory suffix=".php">/opt/sei/web/modulos/pen</directory> + </include> + </coverage> +</phpunit> diff --git a/tests_sei5/unitario/rn/CompararVersoesTest.php b/tests_sei5/unitario/rn/CompararVersoesTest.php new file mode 100755 index 000000000..949f944c3 --- /dev/null +++ b/tests_sei5/unitario/rn/CompararVersoesTest.php @@ -0,0 +1,17 @@ +<?php + +use PHPUnit\Framework\TestCase; + +final class CompararVersoesTest extends TestCase +{ + public function testCompararVersoes() + { + $this->assertTrue(InfraUtil::compararVersoes("0.0.1", "<", "0.0.2")); + $this->assertTrue(InfraUtil::compararVersoes("0.1.0", "<", "0.2.0")); + $this->assertTrue(InfraUtil::compararVersoes("1.0.0", "<", "2.0.0")); + $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "==", "4.0.3.0")); + $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "<", "4.0.3.1")); + $this->assertTrue(InfraUtil::compararVersoes("4.0.4", ">", "4.0.3.0")); + $this->assertTrue(InfraUtil::compararVersoes("4.0.3.0", "==", "4.0.3.5", 3, true)); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/BuscarEstruturaTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/BuscarEstruturaTest.php new file mode 100755 index 000000000..715e414cb --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/BuscarEstruturaTest.php @@ -0,0 +1,140 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo buscarEstrutura da classe ProcessoEletronicoRN. + * + * Esta classe utiliza o PHPUnit para verificar o comportamento do mtodo + * `buscarEstrutura` em diferentes cenrios, simulando respostas e verificando + * excees e resultados esperados. + */ +class BuscarEstruturaTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * Este mock utilizado para simular comportamentos especficos da classe + * ProcessoEletronicoRN, evitando a execuo de implementaes reais e + * focando no teste do mtodo buscarEstrutura. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial do teste. + * + * Este mtodo configura o mock da classe ProcessoEletronicoRN, redefinindo + * os mtodos `get` e `buscarEstruturaRest` para possibilitar a simulao + * dos cenrios de teste. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get', 'buscarEstruturaRest']) + ->getMock(); + } + + /** + * Testa o comportamento do mtodo buscarEstrutura em caso de sucesso. + * + * Simula uma resposta vlida para o mtodo `buscarEstruturaRest` e verifica + * se o retorno do mtodo testado uma instncia vlida da classe EstruturaDTO. + * + * @return void + */ + public function testBuscarEstruturaSucesso() + { + // Mock do retorno esperado da API + $estruturaMock = [ + 'numeroDeIdentificacaoDaEstrutura' => '12345', + 'nome' => 'Estrutura Teste', + 'sigla' => 'ET', + 'ativo' => true, + 'aptoParaReceber' => true, + 'codigoNoOrgaoEntidade' => 'CNOE123', + 'hierarquia' => [ + ['sigla' => 'Nivel1'], + ['sigla' => 'Nivel2'] + ] + ]; + + // Mock do mtodo buscarEstruturaRest + $this->mockService->expects($this->once()) + ->method('buscarEstruturaRest') + ->with(1, 'Estrutura Raiz') + ->willReturn($estruturaMock); + + // Chamada do mtodo + $resultado = $this->mockService->buscarEstrutura( + 1, // idRepositorioEstrutura + 'Estrutura Raiz' // Nome ou identificador raiz + ); + + $this->assertInstanceOf(EstruturaDTO::class, $resultado, 'O retorno deve ser uma instncia da classe EstruturaDTO.'); + } + + /** + * Testa o comportamento do mtodo buscarEstrutura com um repositrio invlido. + * + * Verifica se o mtodo lana a exceo correta ao receber um ID de repositrio invlido. + * + * @return void + */ + public function testBuscarEstruturaComRepositorioInvalido() + { + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + $this->mockService->buscarEstrutura(0); // Passando um ID invlido + } + + /** + * Testa o comportamento do mtodo buscarEstrutura quando a estrutura no encontrada. + * + * Simula o retorno `null` do mtodo `buscarEstruturaRest` e verifica se o + * mtodo principal retorna `null` como esperado. + * + * @return void + */ + public function testBuscarEstruturaNaoEncontrada() + { + // Mock para retorno nulo da API + $this->mockService->expects($this->once()) + ->method('buscarEstruturaRest') + ->with(1, 'Estrutura Raiz') + ->willReturn(null); + + // Chamada do mtodo + $resultado = $this->mockService->buscarEstrutura( + 1, // idRepositorioEstrutura + 'Estrutura Raiz' // Nome ou identificador raiz + ); + + // Assero de retorno nulo + $this->assertNull($resultado); + } + + /** + * Testa o comportamento do mtodo buscarEstrutura quando ocorre uma exceo. + * + * Simula uma exceo no mtodo `get` e verifica se a exceo correta lanada + * pelo mtodo testado. + * + * @return void + */ + public function testBuscarEstruturaLancaExcecao() + { + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception()); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + $this->mockService->consultarEstrutura(159098, 152254, false); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/BuscarEstruturasPorEstruturaPaiTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/BuscarEstruturasPorEstruturaPaiTest.php new file mode 100755 index 000000000..6d72134e3 --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/BuscarEstruturasPorEstruturaPaiTest.php @@ -0,0 +1,136 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes para o mtodo privado `buscarEstruturasPorEstruturaPai`. + * + * Essa classe utiliza PHPUnit para validar o comportamento de mtodos da classe + * `ProcessoEletronicoRN`, especialmente os que envolvem interao com servios externos + * simulados por mocks. + * + * Mtodos testados: + * - `buscarEstruturasPorEstruturaPai` com e sem identificao. + * + * A classe demonstra o uso de mocks para simular dependncias e reflexes para testar + * mtodos privados. + */ +class BuscarEstruturasPorEstruturaPaiTest extends TestCase +{ + /** + * Mock da classe `ProcessoEletronicoRN`. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Cria o mock da classe `ProcessoEletronicoRN` e define os mtodos que podem ser + * simulados durante os testes. + * + * Mtodos simulados: + * - `consultarEstruturas` + * - `tentarNovamenteSobErroHTTP` + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas', 'tentarNovamenteSobErroHTTP']) + ->getMock(); + } + + /** + * Testa o mtodo `buscarEstruturasPorEstruturaPai` com parmetros de identificao. + * + * Verifica se o mtodo: + * - Retorna um array. + * - Retorna o nmero correto de estruturas. + * - As estruturas tm os valores esperados. + */ + public function testBuscarEstruturasPorEstruturaPaiComIdentificacao() + { + // Configurao do mock + $resultadoMock = new stdClass(); + $resultadoMock->estruturasEncontradasNoFiltroPorEstruturaPai = new stdClass(); + $resultadoMock->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura = [ + (object) ['id' => 1, 'nome' => 'Estrutura 1'], + (object) ['id' => 2, 'nome' => 'Estrutura 2'] + ]; + + $this->mockService->expects($this->once()) + ->method('tentarNovamenteSobErroHTTP') + ->willReturnCallback(function ($callback) use ($resultadoMock) { + $mockObjPenWs = $this->getMockBuilder(stdClass::class) + ->addMethods(['consultarEstruturasPorEstruturaPai']) + ->getMock(); + $mockObjPenWs->method('consultarEstruturasPorEstruturaPai') + ->willReturn($resultadoMock); + + return $callback($mockObjPenWs); + }); + + // Reflexo para acessar o mtodo privado + $reflexao = new ReflectionClass($this->mockService); + $metodoPrivado = $reflexao->getMethod('buscarEstruturasPorEstruturaPai'); + $metodoPrivado->setAccessible(true); + + // Teste + $idRepositorioEstrutura = 123; + $numeroDeIdentificacaoDaEstrutura = 'ABC123'; + + $resultado = $metodoPrivado->invokeArgs( + $this->mockService, + [$idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura] + ); + + // Validaes + $this->assertIsArray($resultado, 'Deve retornar um array'); + $this->assertCount(2, $resultado, 'Deve retornar duas estruturas'); + $this->assertEquals('Estrutura 1', $resultado[0]->nome, 'Deve retornar a estrutura 1'); + $this->assertEquals('Estrutura 2', $resultado[1]->nome, 'Deve retornar a estrutura 2'); + } + + /** + * Testa o mtodo `buscarEstruturasPorEstruturaPai` sem parmetros de identificao. + * + * Verifica se o mtodo: + * - Retorna um array. + * - Retorna uma estrutura nica com os valores esperados. + */ + public function testBuscarEstruturasPorEstruturaPaiSemIdentificacao() + { + // Configurao do mock + $resultadoMock = new stdClass(); + $resultadoMock->estruturasEncontradasNoFiltroPorEstruturaPai = new stdClass(); + $resultadoMock->estruturasEncontradasNoFiltroPorEstruturaPai->estrutura = (object) ['id' => 1, 'nome' => 'Estrutura nica']; + + $this->mockService->expects($this->once()) + ->method('tentarNovamenteSobErroHTTP') + ->willReturnCallback(function ($callback) use ($resultadoMock) { + $mockObjPenWs = $this->getMockBuilder(stdClass::class) + ->addMethods(['consultarEstruturasPorEstruturaPai']) + ->getMock(); + $mockObjPenWs->method('consultarEstruturasPorEstruturaPai') + ->willReturn($resultadoMock); + + return $callback($mockObjPenWs); + }); + + // Reflexo para acessar o mtodo privado + $reflexao = new ReflectionClass($this->mockService); + $metodoPrivado = $reflexao->getMethod('buscarEstruturasPorEstruturaPai'); + $metodoPrivado->setAccessible(true); + + // Teste + $idRepositorioEstrutura = 123; + + $resultado = $metodoPrivado->invokeArgs($this->mockService, [$idRepositorioEstrutura]); + + // Validaes + $this->assertIsArray($resultado); + $this->assertCount(1, $resultado); + $this->assertEquals('Estrutura nica', $resultado[0]->nome); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/CancelarTramiteTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/CancelarTramiteTest.php new file mode 100755 index 000000000..4c85d7dfd --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/CancelarTramiteTest.php @@ -0,0 +1,87 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo cancelarTramite da classe ProcessoEletronicoRN. + * + * Esta classe utiliza PHPUnit para verificar o comportamento do mtodo cancelarTramite + * em diferentes cenrios, garantindo que ele funcione conforme o esperado. + * Os testes abordam casos de sucesso e de falha na execuo do mtodo. + * + * @covers \ProcessoEletronicoRN + */ +class CancelarTramiteTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial do teste. + * + * Este mtodo cria um mock da classe ProcessoEletronicoRN e redefine + * o mtodo 'delete' para simular comportamentos durante os testes. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['delete']) + ->getMock(); + } + + /** + * Teste do mtodo cancelarTramite em caso de sucesso. + * + * Este teste simula a execuo do mtodo cancelarTramite quando o mtodo 'delete' do mock + * retorna uma resposta bem-sucedida (null). O teste verifica se o retorno do mtodo + * o esperado (null), indicando que o trmite foi cancelado com sucesso. + * + * @return void + */ + public function testCancelarTramiteSucesso() + { + $mockResponse = null; + + // Configura o mock para retornar a resposta esperada (null) + $this->mockService->expects($this->once()) + ->method('delete') + ->willReturn($mockResponse); + + // Executa o mtodo cancelarTramite + $resultado = $this->mockService->cancelarTramite(999); + + // Verifica se o retorno nulo (indicando sucesso no cancelamento) + $this->assertNull($mockResponse, "O objeto nulo"); + } + + /** + * Teste do mtodo cancelarTramite quando ocorre uma exceo. + * + * Este teste simula a falha no mtodo cancelarTramite, quando o mtodo 'delete' do mock + * lana uma exceo. O teste verifica se a exceo esperada (InfraException) lanada e + * se a mensagem associada exceo est correta. + * + * @return void + * @throws \InfraException Quando ocorre uma falha no cancelamento do trmite + */ + public function testCancelarTramiteLancaExcecao() + { + // Configura o mock para lanar uma exceo + $this->mockService->expects($this->once()) + ->method('delete') + ->willThrowException(new Exception('Erro na requisio')); + + // Espera que a exceo InfraException seja lanada com a mensagem esperada + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha no cancelamento de trmite de processo'); + + // Executa o mtodo cancelarTramite e verifica se a exceo lanada + $this->mockService->cancelarTramite(999); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/CienciaRecusaTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/CienciaRecusaTest.php new file mode 100755 index 000000000..f436fbd3f --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/CienciaRecusaTest.php @@ -0,0 +1,96 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes para o mtodo `cienciaRecusa`. + * + * Esta classe utiliza o PHPUnit para validar o comportamento do mtodo + * `cienciaRecusa` da classe `ProcessoEletronicoRN`. + * + * O mtodo responsvel por registrar a cincia de uma recusa em um trmite, + * cobrindo cenrios de sucesso e tratamento de erros. + * + * A classe utiliza mocks para simular interaes com a dependncia externa + * `ProcessoEletronicoRN`. + */ +class CienciaRecusaTest extends TestCase +{ + /** + * Mock da classe `ProcessoEletronicoRN`. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock da classe `ProcessoEletronicoRN` e define o + * mtodo que pode ser simulado durante os testes. + * + * Mtodos simulados: + * - `get` + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + /** + * Testa o mtodo `cienciaRecusa` com retorno bem-sucedido. + * + * Verifica se o mtodo: + * - Retorna um array com as chaves `status` e `mensagem`. + * - Contm os valores esperados no retorno. + */ + public function testCienciaRecusaComSucesso() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = [ + 'status' => 'sucesso', + 'mensagem' => 'Cincia registrada com sucesso.' + ]; + + $this->mockService->expects($this->once()) + ->method('get') + ->with('tramites/123/ciencia', ['IDT' => 123]) + ->willReturn($resultadoMock); + + // Chamada do mtodo + $resultado = $this->mockService->cienciaRecusa(123); + + // Validaes + $this->assertIsArray($resultado); + $this->assertArrayHasKey('status', $resultado); + $this->assertEquals('sucesso', $resultado['status']); + $this->assertEquals('Cincia registrada com sucesso.', $resultado['mensagem']); + } + + /** + * Testa o mtodo `cienciaRecusa` quando ocorre um erro. + * + * Verifica se o mtodo: + * - Lana a exceo esperada (`InfraException`). + * - Contm a mensagem correta de erro. + */ + public function testCienciaRecusaComErro() + { + // Configurao do mock para lanar uma exceo + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro simulado')); + + // Expectativa de exceo + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha no registro de cincia da recusa de trmite'); + + // Chamada do mtodo (deve lanar exceo) + $this->mockService->cienciaRecusa(123); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEspeciesDocumentaisTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEspeciesDocumentaisTest.php new file mode 100755 index 000000000..2b22a1acc --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEspeciesDocumentaisTest.php @@ -0,0 +1,131 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes para o mtodo `consultarEspeciesDocumentais`. + * + * Esta classe utiliza PHPUnit para validar o comportamento do mtodo + * `consultarEspeciesDocumentais` da classe `ProcessoEletronicoRN`. + * + * O mtodo responsvel por buscar espcies documentais, e os testes + * cobrem cenrios com resultados bem-sucedidos, ausncia de resultados e + * tratamento de erros. + * + * A classe utiliza mocks para simular interaes com a dependncia externa + * `ProcessoEletronicoRN`. + */ +class ConsultarEspeciesDocumentaisTest extends TestCase +{ + /** + * Mock da classe `ProcessoEletronicoRN`. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock da classe `ProcessoEletronicoRN` e define os + * mtodos que podem ser simulados durante os testes. + * + * Mtodos simulados: + * - `get` + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + /** + * Testa o mtodo `consultarEspeciesDocumentais` com retorno bem-sucedido. + * + * Verifica se o mtodo: + * - Retorna um array com as espcies documentais. + * - Converte corretamente as strings para o formato esperado (`ISO-8859-1`). + */ + public function testConsultarEspeciesDocumentaisComSucesso() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = [ + 'especies' => [ + ['nomeNoProdutor' => 'Espcie 1'], + ['nomeNoProdutor' => 'Espcie 2'], + ] + ]; + + $this->mockService->expects($this->once()) + ->method('get') + ->with('especies', []) + ->willReturn($resultadoMock); + + // Chamada do mtodo + $resultado = $this->mockService->consultarEspeciesDocumentais(); + + // Validaes + $this->assertIsArray($resultado); + $this->assertCount(2, $resultado); + $this->assertEquals( + mb_convert_encoding('Espcie 1', 'ISO-8859-1', 'UTF-8'), + $resultado[0] + ); + $this->assertEquals( + mb_convert_encoding('Espcie 2', 'ISO-8859-1', 'UTF-8'), + $resultado[1] + ); + } + + /** + * Testa o mtodo `consultarEspeciesDocumentais` quando no h resultados. + * + * Verifica se o mtodo: + * - Retorna um array vazio. + */ + public function testConsultarEspeciesDocumentaisSemResultados() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = [ + 'especies' => [] + ]; + + $this->mockService->expects($this->once()) + ->method('get') + ->with('especies', []) + ->willReturn($resultadoMock); + + // Chamada do mtodo + $resultado = $this->mockService->consultarEspeciesDocumentais(); + + // Validaes + $this->assertIsArray($resultado); + $this->assertEmpty($resultado); + } + + /** + * Testa o mtodo `consultarEspeciesDocumentais` quando ocorre um erro. + * + * Verifica se o mtodo: + * - Lana a exceo esperada (`InfraException`). + * - Contm a mensagem correta de erro. + */ + public function testConsultarEspeciesDocumentaisComErro() + { + // Configurao do mock para lanar uma exceo + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro simulado')); + + // Expectativa de exceo + $this->expectException(InfraException::class); + $this->expectExceptionMessage('No foi encontrado nenhuma espcie documental.'); + + // Chamada do mtodo (deve lanar exceo) + $this->mockService->consultarEspeciesDocumentais(); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturaTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturaTest.php new file mode 100755 index 000000000..2152b5bb9 --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturaTest.php @@ -0,0 +1,108 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo listarRepositoriosDeEstruturas da classe ProcessoEletronicoRN. + * + * Esta classe utiliza PHPUnit para verificar o comportamento do mtodo listarRepositoriosDeEstruturas + * em diferentes cenrios, garantindo que ele funcione conforme o esperado. + */ +class ConsultarEstruturaTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial do teste. + * + * Este mtodo cria um mock da classe ProcessoEletronicoRN e redefine + * o mtodo 'get' para simular comportamentos durante os testes. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + public function testConsultarEstruturaListaSucesso() + { + $mockResponse = [ + "numeroDeIdentificacaoDaEstrutura" => "159098", + "nome" => "Mauro ORG1 Filha", + "sigla" => "Mauro ORG1 Filha", + "ativo" => true, + "unidadeReceptora" => false, + "aptoParaReceberTramites" => true, + "codigoNoOrgaoEntidade" => "", + "codigoUnidadeReceptora" => "", + "tipoDeTramitacao" => 0, + "hierarquia" => [ + [ + "numeroDeIdentificacaoDaEstrutura" => "152254", + "nome" => "rgo de Desenvolvimento ABC (FIRST) - ORGABC", + "sigla" => "ORGABC" + ] + ] + ]; + + // Configura o mock para retornar a resposta + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + $resultado = $this->mockService->consultarEstrutura(159098, 152254, false); + + $this->assertInstanceOf(EstruturaDTO::class, $resultado, 'O retorno deve ser uma instncia da classe EstruturaDTO.'); + } + + public function testConsultarEstruturaListaBolRetornoRawTrueSucesso() + { + $mockResponse = [ + "numeroDeIdentificacaoDaEstrutura" => "159098", + "nome" => "Mauro ORG1 Filha", + "sigla" => "Mauro ORG1 Filha", + "ativo" => true, + "unidadeReceptora" => false, + "aptoParaReceberTramites" => true, + "codigoNoOrgaoEntidade" => "", + "codigoUnidadeReceptora" => "", + "tipoDeTramitacao" => 0, + "hierarquia" => [ + [ + "numeroDeIdentificacaoDaEstrutura" => "152254", + "nome" => "rgo de Desenvolvimento ABC (FIRST) - ORGABC", + "sigla" => "ORGABC" + ] + ] + ]; + + // Configura o mock para retornar a resposta + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + $resultado = $this->mockService->consultarEstrutura(159098, 152254, true); + + $this->assertInstanceOf(stdClass::class, $resultado, 'O retorno deve ser uma instncia da classe EstruturaDTO.'); + } + + public function testConsultarEstruturaListaLancaExcecao() + { + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro na requisio')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + $this->mockService->consultarEstrutura(159098, 152254, false); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturasPorEstruturaPaiTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturasPorEstruturaPaiTest.php new file mode 100755 index 000000000..519b47b0f --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturasPorEstruturaPaiTest.php @@ -0,0 +1,122 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo `consultarEstruturasPorEstruturaPai` da classe ProcessoEletronicoRN. + * + * Esta classe contm testes unitrios para verificar o comportamento do mtodo + * `consultarEstruturasPorEstruturaPai`, garantindo que ele retorne os resultados + * esperados em diferentes cenrios, incluindo casos de sucesso e situaes de erro. + */ +class ConsultarEstruturasPorEstruturaPaiTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock de ProcessoEletronicoRN e define quais mtodos + * podem ser simulados. + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas', 'validarRestricaoUnidadesCadastradas', 'buscarEstruturasPorEstruturaPai']) + ->getMock(); + } + + /** + * Testa o mtodo consultarEstruturasPorEstruturaPai para um caso de sucesso. + * + * Verifica se a lista de estruturas retornada e ordenada corretamente com base nos nomes. + * + * @return void + */ + public function testConsultarEstruturasPorEstruturaPaiRetornaEstruturasOrdenadas() + { + $idRepositorioEstrutura = 1; + $mockEstruturas = [ + (object)['nome' => 'Unidade B', 'codigo' => '002'], + (object)['nome' => 'Unidade A', 'codigo' => '001'], + (object)['nome' => 'Unidade C', 'codigo' => '003'], + ]; + + $this->mockService->expects($this->once()) + ->method('validarRestricaoUnidadesCadastradas') + ->with($idRepositorioEstrutura) + ->willReturn(null); + + $this->mockService->expects($this->once()) + ->method('buscarEstruturasPorEstruturaPai') + ->with($idRepositorioEstrutura, null) + ->willReturn($mockEstruturas); + + $resultado = $this->mockService->consultarEstruturasPorEstruturaPai($idRepositorioEstrutura); + + $this->assertCount(3, $resultado); + $this->assertEquals('Unidade A', $resultado[0]->nome); + $this->assertEquals('Unidade B', $resultado[1]->nome); + $this->assertEquals('Unidade C', $resultado[2]->nome); + } + + /** + * Testa o mtodo consultarEstruturasPorEstruturaPai para uma unidade pai especfica. + * + * Verifica se a busca por estrutura pai realizada corretamente ao fornecer + * um nmero de identificao especfico. + * + * @return void + */ + public function testConsultarEstruturasPorEstruturaPaiComUnidadePaiEspecifica() + { + $idRepositorioEstrutura = 1; + $numeroDeIdentificacaoDaEstrutura = '001'; + $mockEstruturas = [ + (object)['nome' => 'Unidade D', 'codigo' => '004'], + ]; + + $this->mockService->expects($this->never()) + ->method('validarRestricaoUnidadesCadastradas'); + + $this->mockService->expects($this->once()) + ->method('buscarEstruturasPorEstruturaPai') + ->with($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura) + ->willReturn($mockEstruturas); + + $resultado = $this->mockService->consultarEstruturasPorEstruturaPai($idRepositorioEstrutura, $numeroDeIdentificacaoDaEstrutura); + + $this->assertCount(1, $resultado); + $this->assertEquals('Unidade D', $resultado[0]->nome); + } + + /** + * Testa o mtodo consultarEstruturasPorEstruturaPai quando ocorre um erro. + * + * Verifica se uma exceo InfraException lanada corretamente ao ocorrer + * um erro no mtodo validarRestricaoUnidadesCadastradas. + * + * @return void + */ + public function testConsultarEstruturasPorEstruturaPaiLancaExcecaoParaErro() + { + $idRepositorioEstrutura = 1; + + $this->mockService->expects($this->once()) + ->method('validarRestricaoUnidadesCadastradas') + ->willThrowException(new Exception('Erro no servio')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + $this->mockService->consultarEstruturasPorEstruturaPai($idRepositorioEstrutura); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturasTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturasTest.php new file mode 100755 index 000000000..7acd9b36d --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarEstruturasTest.php @@ -0,0 +1,82 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo listarRepositoriosDeEstruturas da classe ProcessoEletronicoRN. + * + * Esta classe utiliza PHPUnit para verificar o comportamento do mtodo listarRepositoriosDeEstruturas + * em diferentes cenrios, garantindo que ele funcione conforme o esperado. + */ +class ConsultarEstruturasTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial do teste. + * + * Este mtodo cria um mock da classe ProcessoEletronicoRN e redefine + * o mtodo 'get' para simular comportamentos durante os testes. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + public function testConsultarEstruturaListaSucesso() + { + $mockResponse = [ + "estruturas" => [ + [ + "numeroDeIdentificacaoDaEstrutura" => "159098", + "nome" => "Mauro ORG1 Filha", + "sigla" => "Mauro ORG1 Filha", + "ativo" => true, + "unidadeReceptora" => false, + "aptoParaReceberTramites" => true, + "codigoNoOrgaoEntidade" => "", + "codigoUnidadeReceptora" => "", + "tipoDeTramitacao" => 0, + "hierarquia" => [ + [ + "numeroDeIdentificacaoDaEstrutura" => "152254", + "nome" => "rgo de Desenvolvimento ABC (FIRST) - ORGABC", + "sigla" => "ORGABC" + ] + ] + ] + ], + "totalDeRegistros" => 1 + ]; + + // Configura o mock para retornar a resposta + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + $resultado = $this->mockService->consultarEstruturas(159098, []); + + $this->assertIsArray($resultado, 'O retorno deve ser um array.'); + } + + public function testConsultarEstruturaListaLancaExcecao() + { + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro na requisio')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + $this->mockService->consultarEstruturas(159098, []); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarHipotesesLegaisTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarHipotesesLegaisTest.php new file mode 100755 index 000000000..9c13025b7 --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarHipotesesLegaisTest.php @@ -0,0 +1,111 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de Teste para a funcionalidade de consulta de hipteses legais. + * + * Esta classe contm os testes unitrios para o mtodo `consultarHipotesesLegais` + * da classe `ProcessoEletronicoRN`. So verificadas duas condies: + * - Quando a consulta realizada com sucesso e retorna um valor nulo. + * - Quando ocorre uma exceo ao tentar realizar a consulta. + */ +class ConsultarHipotesesLegaisTest extends TestCase +{ + /** + * @var ProcessoEletronicoRN Mock da classe ProcessoEletronicoRN para testes unitrios. + */ + private $mockService; + + /** + * Configurao do ambiente de teste. + * + * Inicializa o mock do servio ProcessoEletronicoRN, substituindo o mtodo 'get' + * para controlar o comportamento do teste. + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + /** + * Testa o sucesso da consulta de hipteses legais. + * + * Este teste verifica se o mtodo `consultarHipotesesLegais` retorna um array de hipoteses + * quando o mtodo 'get' chamado. + * + * @return void + */ + public function testConsultarHipotesesLegaisSucesso() + { + // Define o valor retornado pelo mtodo 'get' mockado + $mockResponse = [ + 'hipoteseslegais' => [ + ] + ]; + + // Configura o mock para esperar que o mtodo 'get' seja chamado uma vez e retorne $mockResponse + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + // Chama o mtodo que est sendo testado + $resultado = $this->mockService->consultarHipotesesLegais(true); + + // Verifica se o resultado nulo, conforme esperado + $this->assertIsArray($resultado); + $this->assertArrayHasKey('hipoteseslegais', $resultado); + } + + /** + * Testa o sucesso da consulta de hipteses legais com retorno vazio. + * + * Este teste verifica se o mtodo `consultarHipotesesLegais` retorna um array vazio + * quando o mtodo 'get' chamado. + * + * @return void + */ + public function testConsultarHipotesesLegaisRetornoVazioSucesso() + { + // Define o valor retornado pelo mtodo 'get' mockado + $mockResponse = []; + + // Configura o mock para esperar que o mtodo 'get' seja chamado uma vez e retorne $mockResponse + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + // Chama o mtodo que est sendo testado + $resultado = $this->mockService->consultarHipotesesLegais(true); + + // Verifica se o resultado nulo, conforme esperado + $this->assertIsArray($resultado); + $this->assertEquals(0, count($resultado)); + } + + /** + * Testa o lanamento de exceo ao tentar consultar as hipteses legais. + * + * Este teste verifica se uma exceo lanada corretamente quando ocorre um erro + * ao tentar realizar a consulta (simulando a exceo gerada pelo mtodo 'get'). + * + * @return void + * @throws InfraException Se a exceo de infra-estrutura for gerada. + */ + public function testConsultarHipotesesLegaisLancaExcecao() + { + // Configura o mock para lanar uma exceo quando o mtodo 'get' for chamado + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro na requisio')); + + // Define a expectativa de que a exceo InfraException ser lanada + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de hipteses legais'); + + // Chama o mtodo que deve lanar a exceo + $this->mockService->consultarHipotesesLegais(true); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarMotivosUrgenciaTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarMotivosUrgenciaTest.php new file mode 100755 index 000000000..ed8532f0b --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarMotivosUrgenciaTest.php @@ -0,0 +1,126 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes para o mtodo `consultarMotivosUrgencia`. + * + * Essa classe utiliza PHPUnit para validar o comportamento do mtodo + * `consultarMotivosUrgencia` da classe `ProcessoEletronicoRN`. + * + * O mtodo responsvel por buscar os motivos de urgncia, e os testes + * simulam cenrios com resultados bem-sucedidos, ausncia de resultados e + * ocorrncia de erros. + * + * A classe faz uso de mocks para simular interaes com a dependncia externa + * `ProcessoEletronicoRN`. + */ +class ConsultarMotivosUrgenciaTest extends TestCase +{ + /** + * Mock da classe `ProcessoEletronicoRN`. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock da classe `ProcessoEletronicoRN` e define os + * mtodos que podem ser simulados durante os testes. + * + * Mtodos simulados: + * - `consultarEstruturas` + * - `get` + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas', 'get']) + ->getMock(); + } + + /** + * Testa o mtodo `consultarMotivosUrgencia` com retorno bem-sucedido. + * + * Verifica se o mtodo: + * - Retorna um array. + * - Contm os motivos de urgncia esperados. + */ + public function testConsultarMotivosUrgenciaComSucesso() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = [ + 'motivosUrgencia' => [ + ['descricao' => 'Motivo 1'], + ['descricao' => 'Motivo 2'], + ] + ]; + + $this->mockService->expects($this->once()) + ->method('get') + ->with('motivosUrgencia', []) + ->willReturn($resultadoMock); + + // Chamada do mtodo + $resultado = $this->mockService->consultarMotivosUrgencia(); + + // Validaes + $this->assertIsArray($resultado); + $this->assertCount(2, $resultado); + $this->assertEquals('Motivo 1', $resultado[0]); + $this->assertEquals('Motivo 2', $resultado[1]); + } + + /** + * Testa o mtodo `consultarMotivosUrgencia` quando no h resultados. + * + * Verifica se o mtodo: + * - Retorna um array vazio. + */ + public function testConsultarMotivosUrgenciaSemResultados() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = [ + 'motivosUrgencia' => [] + ]; + + $this->mockService->expects($this->once()) + ->method('get') + ->with('motivosUrgencia', []) + ->willReturn($resultadoMock); + + // Chamada do mtodo + $resultado = $this->mockService->consultarMotivosUrgencia(); + + // Validaes + $this->assertIsArray($resultado); + $this->assertEmpty($resultado); + } + + /** + * Testa o mtodo `consultarMotivosUrgencia` quando ocorre um erro. + * + * Verifica se o mtodo: + * - Lana a exceo esperada (`InfraException`). + * - Contm a mensagem correta de erro. + */ + public function testConsultarMotivosUrgenciaComErro() + { + // Configurao do mock para lanar uma exceo + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro simulado')); + + // Expectativa de exceo + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + // Chamada do mtodo (deve lanar exceo) + $this->mockService->consultarMotivosUrgencia(); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarRepositoriosDeEstruturasTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarRepositoriosDeEstruturasTest.php new file mode 100755 index 000000000..34788d48b --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ConsultarRepositoriosDeEstruturasTest.php @@ -0,0 +1,125 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes para o mtodo `consultarRepositoriosDeEstruturas`. + * + * Esta classe utiliza PHPUnit para validar o comportamento do mtodo + * `consultarRepositoriosDeEstruturas` da classe `ProcessoEletronicoRN`. + * + * O mtodo responsvel por buscar informaes sobre repositrios de estruturas + * organizacionais, cobrindo cenrios de sucesso, ausncia de resultados e tratamento de erros. + * + * A classe utiliza mocks para simular interaes com a dependncia externa + * `ProcessoEletronicoRN`. + */ +class ConsultarRepositoriosDeEstruturasTest extends TestCase +{ + /** + * Mock da classe `ProcessoEletronicoRN`. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock da classe `ProcessoEletronicoRN` e define o + * mtodo que pode ser simulado durante os testes. + * + * Mtodos simulados: + * - `get` + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + /** + * Testa o mtodo `consultarRepositoriosDeEstruturas` com retorno bem-sucedido. + * + * Verifica se o mtodo: + * - Retorna uma instncia de `RepositorioDTO`. + * - Preenche os atributos da instncia com os valores corretos. + */ + public function testConsultarRepositoriosDeEstruturasComSucesso() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = [ + [ + 'id' => 5, + 'nome' => 'Repositrio 1', + 'ativo' => true + ] + ]; + + $this->mockService->expects($this->once()) + ->method('get') + ->with('repositorios-de-estruturas', ['ativo' => true]) + ->willReturn($resultadoMock); + + // Chamada do mtodo + $resultado = $this->mockService->consultarRepositoriosDeEstruturas(5); + + // Validaes + $this->assertInstanceOf(RepositorioDTO::class, $resultado); + $this->assertEquals(5, $resultado->getNumId()); + $this->assertEquals( + mb_convert_encoding('Repositrio 1', 'ISO-8859-1', 'UTF-8'), + $resultado->getStrNome() + ); + $this->assertTrue($resultado->getBolAtivo()); + } + + /** + * Testa o mtodo `consultarRepositoriosDeEstruturas` quando no h resultados. + * + * Verifica se o mtodo: + * - Retorna `null` quando no h repositrios disponveis. + */ + public function testConsultarRepositoriosDeEstruturasSemResultados() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = []; + + $this->mockService->expects($this->once()) + ->method('get') + ->with('repositorios-de-estruturas', ['ativo' => true]) + ->willReturn($resultadoMock); + + // Chamada do mtodo + $resultado = $this->mockService->consultarRepositoriosDeEstruturas(123); + + // Validaes + $this->assertNull($resultado); + } + + /** + * Testa o mtodo `consultarRepositoriosDeEstruturas` quando ocorre um erro. + * + * Verifica se o mtodo: + * - Lana a exceo esperada (`InfraException`). + * - Contm a mensagem correta de erro. + */ + public function testConsultarRepositoriosDeEstruturasComErro() + { + // Configurao do mock para lanar uma exceo + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro simulado')); + + // Expectativa de exceo + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno dos Repositrios de Estruturas Organizacionais'); + + // Chamada do mtodo (deve lanar exceo) + $this->mockService->consultarRepositoriosDeEstruturas(123); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php new file mode 100755 index 000000000..be505824f --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarEstruturasAutoCompletarTest.php @@ -0,0 +1,130 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes para o mtodo listarEstruturasAutoCompletar. + * + * Esta classe contm testes unitrios que verificam o comportamento do mtodo + * listarEstruturasAutoCompletar da classe ProcessoEletronicoRN, cobrindo casos + * de sucesso, excees e entradas invlidas. + * + * A classe utiliza mocks para isolar as dependncias externas e garantir a + * validao dos cenrios de forma controlada. + */ +class ListarEstruturasAutoCompletarTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock de ProcessoEletronicoRN e define quais mtodos + * podem ser simulados durante os testes. + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas']) + ->getMock(); + } + + /** + * Testa o mtodo listarEstruturasAutoCompletar com parmetros vlidos. + * + * Verifica se o retorno do mtodo formatado corretamente, incluindo: + * - Propriedades convertidas para UTF-8. + * - Hierarquia de siglas mapeada. + * - Quantidade correta de itens no resultado. + */ + public function testListarEstruturasAutoCompletarRetornaEstruturasFormatadas() + { + // Simulao de parmetros e retorno esperado + $idRepositorioEstrutura = 1; + $nome = 'Teste Unidade'; + $mockResultado = [ + 'totalDeRegistros' => 2, + 'estruturas' => [ + [ + 'numeroDeIdentificacaoDaEstrutura' => 101, + 'nome' => 'Unidade A', + 'sigla' => 'UA', + 'ativo' => true, + 'aptoParaReceberTramites' => true, + 'codigoNoOrgaoEntidade' => '123', + 'hierarquia' => [ + ['sigla' => 'ORG'] + ] + ], + [ + 'numeroDeIdentificacaoDaEstrutura' => 102, + 'nome' => 'Unidade B', + 'sigla' => 'UB', + 'ativo' => true, + 'aptoParaReceberTramites' => false, + 'codigoNoOrgaoEntidade' => '456', + 'hierarquia' => [] + ] + ] + ]; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->with($idRepositorioEstrutura, $this->callback(function ($parametros) use ($nome) { + return $parametros['nome'] === $nome && $parametros['apenasAtivas'] === true; + })) + ->willReturn($mockResultado); + + $resultado = $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura, $nome); + + // Asseres sobre o retorno + $this->assertIsArray($resultado); + $this->assertArrayHasKey('diferencaDeRegistros', $resultado); + $this->assertArrayHasKey('itens', $resultado); + $this->assertCount(2, $resultado['itens']); + } + + /** + * Testa o mtodo listarEstruturasAutoCompletar quando ocorre um erro. + * + * Simula um erro no mtodo consultarEstruturas e verifica se uma exceo + * InfraException lanada corretamente com a mensagem esperada. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaErro() + { + $idRepositorioEstrutura = 1; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->willThrowException(new Exception('Erro interno')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } + + /** + * Testa o mtodo listarEstruturasAutoCompletar com repositrio invlido. + * + * Verifica se uma exceo InfraException lanada quando o ID do + * repositrio de estruturas fornecido invlido. + */ + public function testListarEstruturasAutoCompletarLancaExcecaoParaRepositorioInvalido() + { + $idRepositorioEstrutura = null; + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Repositrio de Estruturas invlido'); + + $this->mockService->listarEstruturasAutoCompletar($idRepositorioEstrutura); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarEstruturasBuscaTextualTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarEstruturasBuscaTextualTest.php new file mode 100755 index 000000000..a23711182 --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarEstruturasBuscaTextualTest.php @@ -0,0 +1,124 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes unitrios para o mtodo listarEstruturasBuscaTextual. + * + * Essa classe verifica o comportamento esperado do mtodo + * listarEstruturasBuscaTextual, incluindo casos de sucesso e situaes de erro. + */ +class ListarEstruturasBuscaTextualTest extends TestCase +{ + /** + * Mock da classe que contm o mtodo listarEstruturasBuscaTextual. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial dos testes. + * + * Este mtodo executado antes de cada teste. Ele cria um mock da classe + * ProcessoEletronicoRN e redefine os mtodos 'get' e 'consultarEstruturas' + * para simular diferentes comportamentos durante os testes. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get', 'consultarEstruturas']) + ->getMock(); + } + + /** + * Testa o mtodo listarEstruturasBuscaTextual para um caso de sucesso. + * + * Simula uma resposta vlida do mtodo 'consultarEstruturas' e verifica + * se o retorno uma lista de objetos EstruturaDTO com os dados corretos. + * + * @return void + */ + public function testListarEstruturasBuscaTextualRetornaEstruturas() + { + $idRepositorioEstrutura = 1; + $nome = 'Estrutura Raiz'; + $mockResponse = [ + 'totalDeRegistros' => 2, + 'estruturas' => [ + [ + 'numeroDeIdentificacaoDaEstrutura' => '123', + 'nome' => 'Estrutura 1', + 'sigla' => 'E1', + 'ativo' => true, + 'aptoParaReceberTramites' => true, + 'codigoNoOrgaoEntidade' => '001', + 'hierarquia' => [['sigla' => 'H1'], ['sigla' => 'H2']], + ], + [ + 'numeroDeIdentificacaoDaEstrutura' => '456', + 'nome' => 'Estrutura 2', + 'sigla' => 'E2', + 'ativo' => false, + 'aptoParaReceberTramites' => false, + 'codigoNoOrgaoEntidade' => '002', + 'hierarquia' => [['sigla' => 'H3']], + ] + ] + ]; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->with($idRepositorioEstrutura, $this->arrayHasKey('identificacaoDoRepositorioDeEstruturas')) + ->willReturn($mockResponse); + + $resultado = $this->mockService->listarEstruturasBuscaTextual($idRepositorioEstrutura, $nome); + + $this->assertCount(2, $resultado); + $this->assertInstanceOf(EstruturaDTO::class, $resultado[0]); + $this->assertEquals('123', $resultado[0]->getNumNumeroDeIdentificacaoDaEstrutura()); + $this->assertEquals('Estrutura 1', $resultado[0]->getStrNome()); + $this->assertEquals(['H1', 'H2'], $resultado[0]->getArrHierarquia()); + } + + /** + * Testa o mtodo listarEstruturasBuscaTextual para um repositrio invlido. + * + * Verifica se uma exceo InfraException lanada ao fornecer um ID de repositrio invlido. + * + * @return void + */ + public function testListarEstruturasBuscaTextualLancaExcecaoParaRepositorioInvalido() + { + $idRepositorioEstrutura = null; + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Repositrio de Estruturas invlido'); + + $this->mockService->listarEstruturasBuscaTextual($idRepositorioEstrutura); + } + + /** + * Testa o mtodo listarEstruturasBuscaTextual para falhas no web service. + * + * Simula um erro no mtodo 'consultarEstruturas' e verifica se a exceo + * InfraException lanada com a mensagem correta. + * + * @return void + */ + public function testListarEstruturasBuscaTextualLancaExcecaoParaErroWebService() + { + $idRepositorioEstrutura = 1; + + $this->mockService->expects($this->once()) + ->method('consultarEstruturas') + ->willThrowException(new Exception('Erro no web service')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + $this->mockService->listarEstruturasBuscaTextual($idRepositorioEstrutura); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarPendenciasTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarPendenciasTest.php new file mode 100755 index 000000000..f8d69ea83 --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarPendenciasTest.php @@ -0,0 +1,67 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo listarPendencias da classe ProcessoEletronicoRN. + * + * Esta classe utiliza PHPUnit para verificar o comportamento do mtodo listarPendencias + * em diferentes cenrios, garantindo que ele funcione conforme o esperado. + */ +class ListarPendenciasTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial do teste. + * + * Este mtodo cria um mock da classe ProcessoEletronicoRN e redefine + * o mtodo 'get' para simular comportamentos durante os testes. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + public function testListarPendenciasSucesso() + { + $mockResponse = [ + [ + 'status' => 2, + 'IDT' => 999 + ] + ]; + + // Configura o mock para retornar a resposta + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + $resultado = $this->mockService->listarPendencias(true); + + $this->assertIsArray($resultado, 'O retorno deve ser um array.'); + $this->assertCount(count($mockResponse), $resultado, 'A quantidade de objetos no retorno est incorreta.'); + $this->assertInstanceOf(PendenciaDTO::class, $resultado[0], 'O primeiro objeto na lista deve ser uma instncia da classe RepositorioDTO.'); + } + + public function testListarPendenciasLancaExcecao() + { + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro na requisio')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na listagem de pendncias de trmite de processos'); + + $this->mockService->listarPendencias(true); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarRepositorioTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarRepositorioTest.php new file mode 100755 index 000000000..dbd027c18 --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ListarRepositorioTest.php @@ -0,0 +1,97 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo listarRepositoriosDeEstruturas da classe ProcessoEletronicoRN. + * + * Esta classe utiliza PHPUnit para verificar o comportamento do mtodo listarRepositoriosDeEstruturas + * em diferentes cenrios, garantindo que ele funcione conforme o esperado. + */ +class ListarRepositorioTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial do teste. + * + * Este mtodo cria um mock da classe ProcessoEletronicoRN e redefine + * o mtodo 'get' para simular comportamentos durante os testes. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get']) + ->getMock(); + } + + /** + * Testa o mtodo listarRepositoriosDeEstruturas para garantir que ele + * retorna uma lista de repositrios de estruturas com sucesso. + * + * Cenrio testado: + * - O mtodo 'get' retorna uma lista simulada de repositrios. + * - O retorno do mtodo deve ser um array contendo objetos do tipo RepositorioDTO. + * + * Asseres: + * - O retorno deve ser um array. + * - A quantidade de itens no retorno deve ser igual quantidade simulada. + * - O primeiro item do retorno deve ser uma instncia de RepositorioDTO. + * + * @return void + */ + public function testListarRepositoriosDeEstruturasRetornaListaSucesso() + { + $mockResponse = [ + ["id" => 49, "nome" => "Acre - AC", "ativo" => true], + ["id" => 2, "nome" => "Advocacia-Geral da Unio", "ativo" => true], + ["id" => 7, "nome" => "Alagoas( Estado)", "ativo" => true], + ["id" => 20, "nome" => "Banco Central do Brasil 2", "ativo" => true], + ]; + + // Configura o mock para retornar a resposta + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + $resultado = $this->mockService->listarRepositoriosDeEstruturas(); + + $this->assertIsArray($resultado, 'O retorno deve ser um array.'); + $this->assertCount(count($mockResponse), $resultado, 'A quantidade de objetos no retorno est incorreta.'); + $this->assertInstanceOf(RepositorioDTO::class, $resultado[0], 'O primeiro objeto na lista deve ser uma instncia da classe RepositorioDTO.'); + } + + /** + * Testa o mtodo listarRepositoriosDeEstruturas para garantir que ele lana + * uma exceo quando a requisio falha. + * + * Cenrio testado: + * - O mtodo 'get' lana uma exceo simulada. + * - O mtodo listarRepositoriosDeEstruturas deve capturar a exceo e + * relanar uma InfraException com a mensagem apropriada. + * + * Asseres: + * - Uma exceo do tipo InfraException deve ser lanada. + * - A mensagem da exceo deve ser "Falha na obteno dos Repositrios de Estruturas Organizacionais". + * + * @return void + */ + public function testListarRepositoriosDeEstruturasLancaExcecao() + { + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro na requisio')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno dos Repositrios de Estruturas Organizacionais'); + + $this->mockService->listarRepositoriosDeEstruturas(); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/LitarEstruturasTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/LitarEstruturasTest.php new file mode 100755 index 000000000..45a8d2edb --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/LitarEstruturasTest.php @@ -0,0 +1,120 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de testes para a funcionalidade de listagem de estruturas. + */ +class LitarEstruturasTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock de ProcessoEletronicoRN e define quais mtodos + * podem ser simulados. + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['consultarEstruturas']) + ->getMock(); + } + + /** + * Testa a listagem de estruturas com sucesso. + * + * Este teste verifica se o mtodo listarEstruturas retorna corretamente + * as estruturas esperadas quando os dados so fornecidos corretamente. + */ + public function testListarEstruturasComSucesso() + { + $idRepositorioEstrutura = 1; + $nome = 'Estrutura Teste'; + $mockRetornoConsulta = [ + 'totalDeRegistros' => 1, + 'estruturas' => [ + [ + 'numeroDeIdentificacaoDaEstrutura' => 123, + 'nome' => 'Estrutura 1', + 'sigla' => 'E1', + 'ativo' => true, + 'aptoParaReceberTramites' => false, + 'codigoNoOrgaoEntidade' => '001', + 'hierarquia' => [ + ['sigla' => 'H1'], + ['sigla' => 'H2'], + ], + ], + ], + ]; + + // Define a expectativa para o mock do mtodo consultarEstruturas + $this->mockService + ->expects($this->once()) + ->method('consultarEstruturas') + ->willReturn($mockRetornoConsulta); + + // Executa o mtodo sob teste + $result = $this->mockService->listarEstruturas($idRepositorioEstrutura, $nome); + + // Validaes dos resultados + $this->assertCount(1, $result); + $this->assertInstanceOf(EstruturaDTO::class, $result[0]); + $this->assertEquals(123, $result[0]->getNumNumeroDeIdentificacaoDaEstrutura()); + $this->assertEquals('Estrutura 1', $result[0]->getStrNome()); + $this->assertEquals('E1', $result[0]->getStrSigla()); + $this->assertEquals(['H1', 'H2'], $result[0]->getArrHierarquia()); + } + + /** + * Testa a listagem de estruturas com repositrio invlido. + * + * Este teste verifica se uma exceo lanada quando o ID do repositrio + * de estruturas invlido (null). + */ + public function testListarEstruturasComRepositorioInvalido() + { + $idRepositorioEstrutura = null; + + // Configura as expectativas de exceo + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Repositrio de Estruturas invlido'); + + // Executa o mtodo sob teste + $this->mockService->listarEstruturas($idRepositorioEstrutura); + } + + /** + * Testa a listagem de estruturas com erro na consulta. + * + * Este teste verifica se uma exceo lanada corretamente quando ocorre + * um erro durante a consulta de estruturas. + */ + public function testListarEstruturasComErroNaConsulta() + { + $idRepositorioEstrutura = 1; + + // Configura o mock para lanar uma exceo no mtodo consultarEstruturas + $this->mockService + ->expects($this->once()) + ->method('consultarEstruturas') + ->willThrowException(new Exception('Erro na consulta')); + + // Configura as expectativas de exceo + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na obteno de unidades externas'); + + // Executa o mtodo sob teste + $this->mockService->listarEstruturas($idRepositorioEstrutura); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/ReceberReciboDeTramiteTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ReceberReciboDeTramiteTest.php new file mode 100755 index 000000000..1fb0da91f --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/ReceberReciboDeTramiteTest.php @@ -0,0 +1,103 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste para o mtodo de recebimento de recibo de trmite. + * + * Esta classe realiza testes unitrios para mtodos relacionados ao + * recebimento de recibos de trmite utilizando mocks para simular + * dependncias e comportamento. + */ +class ReceberReciboDeTramiteTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * Este mock usado para simular os comportamentos da classe sem executar + * a implementao real, permitindo testar os mtodos que dependem dela. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial antes de cada teste. + * + * Este mtodo cria o mock de ProcessoEletronicoRN e define quais mtodos + * podem ser simulados. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get', 'converterArrayParaObjeto']) + ->getMock(); + } + + /** + * Testa o recebimento de recibo de trmite com sucesso. + * + * Simula a execuo do mtodo `get` e o retorno de um objeto + * convertido a partir de um array, verificando se o resultado + * final corresponde ao esperado. + * + * @return void + */ + public function testReceberReciboDeTramiteComSucesso() + { + // Mock do retorno esperado do mtodo get + $resultadoMock = [ + 'recibo' => [ + 'hashesDosComponentesDigitais' => ['hash123'], + 'outroDado' => 'valor' + ] + ]; + + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($resultadoMock); + + // Substituir o mtodo esttico converterArrayParaObjeto + $resultadoObjetoMock = (object)[ + 'recibo' => (object)[ + 'hashDoComponenteDigital' => 'hash123', + 'outroDado' => 'valor' + ] + ]; + + $this->mockService->expects($this->once()) + ->method('converterArrayParaObjeto') + ->willReturn($resultadoObjetoMock); + + // Chamada do mtodo + $resultado = $this->mockService->receberReciboDeTramite(123); + + // Asseres + $this->assertIsObject($resultado); + $this->assertEquals('hash123', $resultado->recibo->hashDoComponenteDigital); + $this->assertEquals('valor', $resultado->recibo->outroDado); + } + + /** + * Testa o cenrio em que ocorre um erro ao receber o recibo de trmite. + * + * Simula uma exceo no mtodo `get` e verifica se a exceo correta + * lanada pelo mtodo testado. + * + * @return void + */ + public function testReceberReciboDeTramiteComErro() + { + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro simulado')); + + // Verifica se a exceo esperada lanada + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha no recebimento de recibo de trmite.'); + + $this->mockService->receberReciboDeTramite(123); + } +} \ No newline at end of file diff --git a/tests_sei5/unitario/rn/ProcessoEletronicoRN/SolicitarMetadadosTest.php b/tests_sei5/unitario/rn/ProcessoEletronicoRN/SolicitarMetadadosTest.php new file mode 100755 index 000000000..6c915341b --- /dev/null +++ b/tests_sei5/unitario/rn/ProcessoEletronicoRN/SolicitarMetadadosTest.php @@ -0,0 +1,117 @@ +<?php + +use PHPUnit\Framework\TestCase; + +/** + * Classe de teste unitrio para o mtodo solicitarMetadados. + * + * Esta classe testa o comportamento do mtodo solicitarMetadados da classe ProcessoEletronicoRN, + * simulando dependncias e verificando casos de sucesso e falha. + */ +class SolicitarMetadadosTest extends TestCase +{ + /** + * Mock da classe ProcessoEletronicoRN. + * + * Este mock usado para simular o comportamento da classe real durante os testes. + * + * @var ProcessoEletronicoRN|\PHPUnit\Framework\MockObject\MockObject + */ + private $mockService; + + /** + * Configurao inicial do teste. + * + * Este mtodo cria um mock da classe ProcessoEletronicoRN e redefine + * os mtodos 'get' e 'converterArrayParaObjeto' para simular comportamentos. + * + * @return void + */ + protected function setUp(): void + { + $this->mockService = $this->getMockBuilder(ProcessoEletronicoRN::class) + ->onlyMethods(['get', 'converterArrayParaObjeto']) + ->getMock(); + } + + /** + * Testa o mtodo solicitarMetadados para um caso de sucesso. + * + * Este teste verifica se o mtodo retorna um objeto stdClass corretamente + * configurado quando os dados retornados pelo mtodo get so vlidos. + * + * @return void + */ + public function testSolicitarMetadadosRetornaObjetoCorreto() + { + $parNumIdentificacaoTramite = 123; + + // Simular a resposta do mtodo get + $mockResponse = [ + 'propriedadesAdicionais' => ['algum_valor'], + 'processo' => [ + 'documentos' => [ + [ + 'componentesDigitais' => [ + [ + 'assinaturasDigitais' => [ + ['alguma_assinatura'] + ] + ] + ] + ] + ] + ] + ]; + + $mockConvertedObject = (object) [ + 'NRE' => '123456', + 'processo' => (object) [ + 'documentos' => [(object) ['algum_valor']], + 'interessados' => [(object) ['algum_interessado']] + ] + ]; + + // Configura o mock para o mtodo get + $this->mockService->expects($this->once()) + ->method('get') + ->willReturn($mockResponse); + + // Configura o mock para o mtodo converterArrayParaObjeto + $this->mockService->expects($this->once()) + ->method('converterArrayParaObjeto') + ->willReturn($mockConvertedObject); + + // Chama o mtodo a ser testado + $resultado = $this->mockService->solicitarMetadados($parNumIdentificacaoTramite); + + // Verifica o retorno + $this->assertInstanceOf(stdClass::class, $resultado); + $this->assertEquals($parNumIdentificacaoTramite, $resultado->IDT); + $this->assertEquals('123456', $resultado->metadados->NRE); + } + + /** + * Testa o mtodo solicitarMetadados para um caso de falha. + * + * Este teste verifica se uma exceo InfraException lanada corretamente + * quando o mtodo get falha ao buscar os dados necessrios. + * + * @return void + */ + public function testSolicitarMetadadosLancaExcecao() + { + $parNumIdentificacaoTramite = 123; + + // Configura o mock para o mtodo get para lanar uma exceo + $this->mockService->expects($this->once()) + ->method('get') + ->willThrowException(new Exception('Erro no web service')); + + $this->expectException(InfraException::class); + $this->expectExceptionMessage('Falha na solicitao de metadados do processo'); + + // Chama o mtodo e espera uma exceo + $this->mockService->solicitarMetadados($parNumIdentificacaoTramite); + } +} \ No newline at end of file diff --git a/tests_super/funcional/Readme.md b/tests_super/funcional/Readme.md deleted file mode 100755 index 801659725..000000000 --- a/tests_super/funcional/Readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI - - -## 1. Instalação dos pré-requisitos - -Todos os componentes abaixo precisam ser instalados antes de iniciar os testes automatizados. - -### 1.1 Instalação das extensões do PHP - -´´´bash -sudo apt install php-dom php-mbstring php-curl php-soap php-mysql - -´´´ - -### 1.2 Instalação do gerenciador de pacotes Composer - -´´´bash -php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer -´´´ - - -## 2. Atualização das dependências do projeto - -O mod-sei-pen utiliza o PHP Unit e outros utilitários de testes que possuem suas dependencias gerenciadas pelo Composer. Maiores informações sobre como instalar este gerenciados de pacotes para PHP podem ser encontradas em https://getcomposer.org/. -Acesse o diretório do projeto ```tests/``` e execute o comando abaixo para atualizar as depedências do projeto. - -```bash -$ composer install -``` - -## 3. Execução do servidor de teste selenium - -Para que os testes possam simular a interação com um navegador web, é utilizado a ferramenta Selenium (selenium-webdriver). Portanto, será necessário ativar o servidor do Selenium antes de iniciar, indicando qual o driver correto para o navegador a ser utilizado nos testes. - -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: -``` bash -java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-<VERSAO DO DRIVER> lib/selenium-server-standalone-3.11.0.jar -``` - -## 4. Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser revisada para verificar se os parâmetros estão devidamente configurados para a cenário de teste que irá ser executado. A Configuração aplicada encontra-se definida no arquivo **phpunit.xml**. - - -### 5. Execução dos testes funcionais automatizados - -```bash -$ ./vendor/bin/phpunit --testsuite funcional -``` - diff --git a/tests_super/funcional/assets/arquivos/arquivo_pequeno.txt b/tests_super/funcional/assets/arquivos/arquivo_pequeno.txt deleted file mode 100755 index 376b92666..000000000 --- a/tests_super/funcional/assets/arquivos/arquivo_pequeno.txt +++ /dev/null @@ -1 +0,0 @@ -arquivo pequeno diff --git a/tests_super/funcional/assets/arquivos/arquivo_pequeno_A.pdf b/tests_super/funcional/assets/arquivos/arquivo_pequeno_A.pdf deleted file mode 100755 index 2f19792f9..000000000 Binary files a/tests_super/funcional/assets/arquivos/arquivo_pequeno_A.pdf and /dev/null differ diff --git a/tests_super/funcional/assets/arquivos/arquivo_pequeno_B.pdf b/tests_super/funcional/assets/arquivos/arquivo_pequeno_B.pdf deleted file mode 100755 index 1d1d62b35..000000000 Binary files a/tests_super/funcional/assets/arquivos/arquivo_pequeno_B.pdf and /dev/null differ diff --git a/tests_super/funcional/assets/arquivos/arquivo_pequeno_C.pdf b/tests_super/funcional/assets/arquivos/arquivo_pequeno_C.pdf deleted file mode 100755 index 01bc7f65c..000000000 Binary files a/tests_super/funcional/assets/arquivos/arquivo_pequeno_C.pdf and /dev/null differ diff --git a/tests_super/funcional/assets/arquivos/test_files_index.txt b/tests_super/funcional/assets/arquivos/test_files_index.txt deleted file mode 100755 index 049632cb7..000000000 --- a/tests_super/funcional/assets/arquivos/test_files_index.txt +++ /dev/null @@ -1,10 +0,0 @@ -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno.txt -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_A.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_B.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_pequeno_C.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_001.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_003.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_020.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_060.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_corrompimento_besimplesoap.pdf -https://archive.org/download/arquivo_pdf_testes/arquivo_extensao_nao_permitida.docx diff --git a/tests_super/funcional/assets/config/ConfiguracaoModPEN.exemplo.php b/tests_super/funcional/assets/config/ConfiguracaoModPEN.exemplo.php deleted file mode 100644 index 8934a1108..000000000 --- a/tests_super/funcional/assets/config/ConfiguracaoModPEN.exemplo.php +++ /dev/null @@ -1,99 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => getenv('CERTIFICADO'), - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => getenv('CERTIFICADO_SENHA'), - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - // "Gearman" => array( - // "Servidor" => "", - // "Porta" => "", //Padro: 4730 - // ) - - "ControleURL" => array( - "atual"=>"servidor.gov.br", - "antigos"=>array( - "[servidor_php]", - "[servidor_php2]", - ) - ), - - // Configurao padro do Envio Parcial - "EnviarApenasComponentesDigitaisPendentes" => false - // "EnviarApenasComponentesDigitaisPendentes" => array( - // "1" => array( // 1 = Poder Executivo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ), - // "21" => array( // 2 = Poder Legislativo Federal - // "123456", // Id de estrutura de unidade X do Poder Executivo Federal - // "234567", // Id de estrutura de unidade Y do Poder Executivo Federal - // "345678" // Id de estrutura de unidade Z do Poder Executivo Federal - // ) - // ) - - ) - ); - } -} \ No newline at end of file diff --git a/tests_super/funcional/assets/config/ConfiguracaoModPEN.php b/tests_super/funcional/assets/config/ConfiguracaoModPEN.php deleted file mode 100755 index 2d86f9cc6..000000000 --- a/tests_super/funcional/assets/config/ConfiguracaoModPEN.php +++ /dev/null @@ -1,86 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => getenv('CERTIFICADO'), - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => getenv('CERTIFICADO_SENHA'), - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - // "Gearman" => array( - // "Servidor" => "", - // "Porta" => "", //Padro: 4730 - // ) - - "ControleURL" => array( - "atual"=>"servidor.gov.br", - "antigos"=>array( - "[servidor_php]", - "[servidor_php2]", - ) - ), - - // Configurao padro do Envio Parcial - "EnviarApenasComponentesDigitaisPendentes" => false - ) - ); - } -} diff --git a/tests_super/funcional/assets/config/ConfiguracaoSEI.php b/tests_super/funcional/assets/config/ConfiguracaoSEI.php deleted file mode 100755 index 4370da5a1..000000000 --- a/tests_super/funcional/assets/config/ConfiguracaoSEI.php +++ /dev/null @@ -1,176 +0,0 @@ -<? - -class ConfiguracaoSEI extends InfraConfiguracao { - - private static $instance = null; - - public static function getInstance(){ - if (ConfiguracaoSEI::$instance == null) { - ConfiguracaoSEI::$instance = new ConfiguracaoSEI(); - } - return ConfiguracaoSEI::$instance; - } - - public function getArrConfiguracoes(){ - return array( - 'SEI' => array( - 'URL' => getenv('HOST_URL').'/sei', - 'Producao' => false, - 'DigitosDocumento' => 7, - 'PermitirAcessoLocalPdf' => '', - 'NumLoginUsuarioExternoSemCaptcha' => 3, - 'TamSenhaUsuarioExterno' => 8, - 'DebugWebServices' => 0, - 'RepositorioArquivos' => '/var/sei/arquivos', - 'Modulos' => array( - //'ABCExemploIntegracao' => 'abc/exemplo', - //'PesquisaIntegracao' => 'pesquisa', - //'WScomplementarIntegracao' => 'ws_complementar', - //'PeticionamentoIntegracao' => 'peticionamento', - //'RelacionamentoInstitucionalIntegracao' => 'relacionamento-institucional', - //'CorreiosIntegracao' => 'correios', - //'LitigiosoIntegracao' => 'litigioso', - //'UtilidadesIntegracao' => 'utilidades', - //'MdJulgarIntegracao' => 'trf4/julgamento', - //'MdWsSeiRest' => 'wssei', - 'PENIntegracao' => 'pen', - ), - ), - - 'SessaoSEI' => array( - 'SiglaOrgaoSistema' => 'ABC', - 'SiglaSistema' => 'SEI', - 'PaginaLogin' => getenv('HOST_URL') . '/sip/login.php', - 'SipWsdl' => getenv('HOST_URL') . '/sip/controlador_ws.php?servico=sip', - 'ChaveAcesso' => getenv('SEI_CHAVE_ACESSO'), //ATENAO: gerar uma nova chave para o SEI ap?s a instao (ver documento de instao) - 'https' => false, - ), - - 'PaginaSEI' => array( - 'NomeSistema' => 'SEI', - 'NomeSistemaComplemento' => SEI_VERSAO, - 'LogoMenu' => '', - 'OrgaoTopoJanela' => 'S', - ), - - 'BancoSEI' => array( - 'Servidor' => getenv('DATABASE_HOST'), - 'Porta' => getenv('DATABASE_PORT'), - 'Banco' => getenv('SEI_DATABASE_NAME'), - 'Usuario' => getenv('SEI_DATABASE_USER'), - 'Senha' => getenv('SEI_DATABASE_PASSWORD'), - 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle - 'PesquisaCaseInsensitive' => false, - ), - -// 'BancoAuditoriaSEI' => array( -// 'Servidor' => getenv('DATABASE_HOST'), -// 'Porta' => getenv('DATABASE_PORT'), -// 'Banco' => getenv('SEI_DATABASE_NAME'), -// 'Usuario' => getenv('SEI_DATABASE_USER'), -// 'Senha' => getenv('SEI_DATABASE_PASSWORD'), -// 'UsuarioScript' => getenv('SEI_DATABASE_USER_SCRIPT'), -// 'SenhaScript' => getenv('SEI_DATABASE_PASSWORD_SCRIPT'), -// 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle -// 'PesquisaCaseInsensitive' => false, -// ), - - 'CacheSEI' => array( - 'Servidor' => 'memcached', - 'Porta' => '11211', - 'Timeout' => 1, - 'Tempo' => 3600, - ), - - 'Federacao' => array( - 'Habilitado' => false, - 'NumSegundosAcaoRemota' => 10, //Tempo mximo que um link de ao do SEI Federao pode ser executado. - 'NumSegundosSincronizacao' => 300, //Diferena mxima em segundos entre os horrios das instalaes. - 'NumDiasTentativasReplicacao' => 3, //Informa por quanto tempo o sistema tentar replicar sinalizaes em processos para outras instalaes do SEI Federao. - 'ReplicarAcessosOnline' => true, //Sinaliza se as concesses de acessos para r-gos de outras instalaes devem ser replicadas no mesmo instante. Se o valor for false ou se ocorrer um erro ento as replicaes sero tratadas pelo agendamento de replicaes. - 'NumMaxProtocolosConsulta' => 100, //Nmero mximo de protocolos do processo que sero retornados quando outra instituio consultar pelo SEI Federa-o (acima deste valor ser realizada paginao). - 'NumMaxAndamentosConsulta' => 100, //Nmero mximo de andamentos do processo que sero retornados quando outra instituio consultar pelo SEI Federao (acima deste valor ser realizada paginao). - ), - - 'XSS' => array( - 'NivelVerificacao' => 'A', - 'ProtocolosExcecoes' => null, - 'NivelBasico' => array( - 'ValoresNaoPermitidos' => null, - ), - 'NivelAvancado' => array( - 'TagsPermitidas' => null, - 'TagsAtributosPermitidos' => null, - ), - ), - - 'Limites' => array( - //Nvel 1 afeto a Operaes em geral - 'Nivel1TempoSeg' => 60, //Esta chave define o Tempo mximo em segundos para execuo do script. - 'Nivel1MemoriaMb' => 256, //Esta chave define a Quantidade mxima de memria em Megabytes que o script pode utilizar. - //Nvel 2 afeto a Download de documentos, Estatsticas, Gerao de PDF, Migrao de Unidade, Indexao Individual e Substituio de contatos - 'Nivel2TempoSeg' => 600, //Esta chave define o Tempo mximo em segundos para execuo do script. - 'Nivel2MemoriaMb' => 2048, //Esta chave define a Quantidade mxima de memria em Megabytes que o script pode utilizar. - //Nvel 3 afeto a Scripts, Agendamentos, Indexao Massiva, Critrios de Controle Interno e Web Services - 'Nivel3TempoSeg' => 0, //Esta chave define o Tempo mximo em segundos para execuo do script. Este nvel aceita o valor ?0? para indicar sem limite de tempo. - 'Nivel3MemoriaMb' => 4096, //Esta chave define a Quantidade mxima de memria em Megabytes que o script pode utilizar. Este nvel aceita o valor ?-1? para indicar sem limite de memria. - ), - - 'RH' => array( - 'CargoFuncao' => '', //Endereo para o servio de recuperao de Cargos/Funes para assinatura de documentos (opcional). - ), - - 'Solr' => array( - 'Servidor' => 'http://solr:8983/solr', - 'CoreProtocolos' => 'sei-protocolos', - 'CoreBasesConhecimento' => 'sei-bases-conhecimento', - 'CorePublicacoes' => 'sei-publicacoes', - 'TempoCommitProtocolos' => 300, - 'TempoCommitBasesConhecimento' => 60, - 'TempoCommitPublicacoes' => 60, - ), - - 'JODConverter' => array( - 'Servidor' => 'http://jod/converter/service' - ), - - 'HostWebService' => array( - 'Sip' => array('*'), //Refer?ncias (IP e nome na rede) de todas as m?quinas que executam o SIP. - 'Publicacao' => array('*'), //Refer?ncias (IP e nome na rede) das m?quinas de ve?culos de publica??o externos cadastrados no SEI. - 'Ouvidoria' => array('*'), //Refer?ncias (IP e nome na rede) da m?quina que hospeda o formul?rio de Ouvidoria personalizado. Se utilizar o formul?rio padr?o do SEI, ent?o configurar com as m?quinas dos ns de aplica??o do SEI. - ), - - 'InfraMail' => array( - 'Tipo' => '2', //1 = sendmail (neste caso no necessrio configurar os atributos abaixo), 2 = SMTP - 'Servidor' => 'smtp', - 'Porta' => '1025', - 'Codificacao' => '8bit', //8bit, 7bit, binary, base64, quoted-printable - 'Autenticar' => false, //se true ento informar Usuario e Senha - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => '', //TLS, SSL ou vazio - 'MaxDestinatarios' => 25, //numero maximo de destinatarios por mensagem - 'MaxTamAnexosMb' => 15, //tamanho maximo dos anexos em Mb por mensagem - 'Protegido' => '', //campo usado em desenvolvimento, se tiver um email preenchido entao todos os emails enviados terao o destinatario ignorado e substitudo por este valor (evita envio incorreto de email) - /* Abaixo chave opcional desativada com exemplo de preenchimento - 'Dominios' => array( // Opcional. Permite especificar o conjunto de atributos acima individualmente para cada domnio de conta remetente. Se no existir um domnio mapeado ento utilizar os atributos gerais da chave InfraMail. - 'abc.jus.br' => array( - 'Tipo' => '2', - 'Servidor' => '10.1.3.12', - 'Porta' => '25', - 'Codificacao' => '8bit', - 'Autenticar' => false, - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => 'TLS', - 'MaxDestinatarios' => 25, - 'MaxTamAnexosMb' => 15, - 'Protegido' => '', - ), - ), - */ - ), - ); - } -} -?> diff --git a/tests_super/funcional/assets/config/ConfiguracaoSip.php b/tests_super/funcional/assets/config/ConfiguracaoSip.php deleted file mode 100755 index 35a791c5c..000000000 --- a/tests_super/funcional/assets/config/ConfiguracaoSip.php +++ /dev/null @@ -1,108 +0,0 @@ -<? - -class ConfiguracaoSip extends InfraConfiguracao { - - private static $instance = null; - - public static function getInstance(){ - if (ConfiguracaoSip::$instance == null) { - ConfiguracaoSip::$instance = new ConfiguracaoSip(); - } - return ConfiguracaoSip::$instance; - } - - public function getArrConfiguracoes(){ - return array( - 'Sip' => array( - 'URL' => getenv('HOST_URL').'/sip', - 'Producao' => false, - 'NumLoginSemCaptcha' => 3, - 'TempoLimiteValidacaoLogin' => 60, - 'Modulos' => array( - //'ABCExemploIntegracao' => 'abc/exemplo', - ), - ), - - 'PaginaSip' => array( - 'NomeSistema' => 'SIP', - 'NomeSistemaComplemento' => '', - ), - - 'SessaoSip' => array( - 'SiglaOrgaoSistema' => 'ABC', - 'SiglaSistema' => 'SIP', - 'PaginaLogin' => getenv('HOST_URL') . '/sip/login.php', - 'SipWsdl' => getenv('HOST_URL') . '/sip/controlador_ws.php?servico=sip', - 'ChaveAcesso' => getenv('SIP_CHAVE_ACESSO'), //ATENO: gerar uma nova chave para o SIP aps a instalao (ver documento de instalao) - 'https' => false, - ), - - 'BancoSip' => array( - 'Servidor' => getenv('DATABASE_HOST'), - 'Porta' => getenv('DATABASE_PORT'), - 'Banco' => getenv('SIP_DATABASE_NAME'), - 'Usuario' => getenv('SIP_DATABASE_USER'), - 'Senha' => getenv('SIP_DATABASE_PASSWORD'), - 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle - 'PesquisaCaseInsensitive' => false, - ), - -// 'BancoAuditoriaSip' => array( -// 'Servidor' => getenv('DATABASE_HOST'), -// 'Porta' => getenv('DATABASE_PORT'), -// 'Banco' => getenv('SIP_DATABASE_NAME'), -// 'Usuario' => getenv('SIP_DATABASE_USER'), -// 'Senha' => getenv('SIP_DATABASE_PASSWORD'), -// 'UsuarioScript' => getenv('SIP_DATABASE_USER_SCRIPT'), -// 'SenhaScript' => getenv('SIP_DATABASE_PASSWORD_SCRIPT'), -// 'Tipo' => getenv('DATABASE_TYPE'), //MySql, SqlServer ou Oracle -// 'PesquisaCaseInsensitive' => false, -// ), - - 'CacheSip' => array( - 'Servidor' => 'memcached', - 'Porta' => '11211', - 'Timeout' => 2, - 'Tempo' => 3600, - ), - -// 'HostWebService' => array( -// 'Replicacao' => array('*'), //endereo ou IP da mquina que implementa o servio de replicao de usurio -// 'Pesquisa' => array('*'), //endereos/IPs das mquinas do SEI -// 'Autenticacao' => array('*') //endereos/IPs das mquinas do SEI -// ), - - 'InfraMail' => array( - 'Tipo' => '1', //1 = sendmail (neste caso n?o ? necess?rio configurar os atributos abaixo), 2 = SMTP - 'Servidor' => 'smtp', - 'Porta' => '1025', - 'Codificacao' => '8bit', //8bit, 7bit, binary, base64, quoted-printable - 'Autenticar' => false, //se true ent?o informar Usuario e Senha - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => '', //TLS, SSL ou vazio - 'MaxDestinatarios' => 25, //numero maximo de destinatarios por mensagem - 'MaxTamAnexosMb' => 15, //tamanho maximo dos anexos em Mb por mensagem - 'Protegido' => '', //campo usado em desenvolvimento, se tiver um email preenchido ento todos os emails enviados tero o destinatario ignorado e substitudo por este valor (evita envio incorreto de email) - /* Abaixo chave opcional desativada com exemplo de preenchimento - 'Dominios' => array( // Opcional. Permite especificar o conjunto de atributos acima individualmente para cada domnio de conta remetente. Se n?o existir um dom?nio mapeado ento utilizar os atributos gerais da chave InfraMail. - 'abc.jus.br' => array( - 'Tipo' => '2', - 'Servidor' => '10.1.3.12', - 'Porta' => '25', - 'Codificacao' => '8bit', - 'Autenticar' => false, - 'Usuario' => '', - 'Senha' => '', - 'Seguranca' => 'TLS', - 'MaxDestinatarios' => 25, - 'MaxTamAnexosMb' => 15, - 'Protegido' => '', - ), - ), - */ - ), - ); - } -} -?> diff --git a/tests_super/funcional/assets/config/lauch.json.example b/tests_super/funcional/assets/config/lauch.json.example deleted file mode 100755 index d4b991e62..000000000 --- a/tests_super/funcional/assets/config/lauch.json.example +++ /dev/null @@ -1,38 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - - "version": "0.2.0", - "configurations": [ - { - "name": "SEI4", - "type": "php", - "request": "launch", - "internalConsoleOptions":"neverOpen", - "port": 9000, - "stopOnEntry": false, - "pathMappings": { - "${workspaceFolder}":"${workspaceFolder}", - "/opt/sei/scripts/mod-pen":"${workspaceRoot}/mod-sei-pen/src/scripts", - "/opt/sei/web/modulos/pen":"${workspaceRoot}/mod-sei-pen/src", - "/tests":"${workspaceRoot}/mod-sei-pen/tests/funcional", - "/opt":"${workspaceRoot}/sei4/", - } - }, - { - "name": "SEI3", - "type": "php", - "request": "launch", - "internalConsoleOptions":"neverOpen", - "port": 9000, - "stopOnEntry": true, - "pathMappings": { - "${workspaceFolder}":"${workspaceFolder}", - "/opt/sei/scripts/mod-pen":"${workspaceRoot}/mod-sei-pen/src/scripts", - "/opt/sei/web/modulos/pen":"${workspaceRoot}/mod-sei-pen/src", - "/opt":"${workspaceRoot}/sei/", - } - }, - ] -} \ No newline at end of file diff --git a/tests_super/funcional/assets/config/supervisor.ini b/tests_super/funcional/assets/config/supervisor.ini deleted file mode 100755 index 67be29221..000000000 --- a/tests_super/funcional/assets/config/supervisor.ini +++ /dev/null @@ -1,55 +0,0 @@ - -[program:processamento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/ProcessamentoTarefasPEN.php --worker=%(process_num)02d -directory=/opt/sei/web -process_name=%(program_name)s_%(process_num)02d -numprocs=4 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_backups=50 -logfile_maxbytes=10MB -logfile=/var/log/supervisor/sei_processar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_processar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_processar_pendencias.log-err -stderr_events_enabled=true - -[program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoRecebimentoTarefasPEN.php --monitorar --segundo-plano -directory=/opt/sei/web -numprocs=1 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_maxbytes=10MB -logfile_backups=50 -logfile=/var/log/supervisor/sei_monitorar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err -stderr_events_enabled=true - -[program:monitoramento_tarefas_pen] -command=/usr/bin/php -c /etc/php.ini %(here)s/../../scripts/mod-pen/MonitoramentoEnvioTarefasPEN.php --monitorar --segundo-plano -directory=/opt/sei/web -numprocs=1 -user=apache -autostart=true -autorestart=true -startsecs=5 -startretries=1000 -log_stdout=true -log_stderr=true -logfile_maxbytes=10MB -logfile_backups=50 -logfile=/var/log/supervisor/sei_monitorar_pendencias.log -stdout_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-out -stderr_logfile=/var/log/supervisor/sei_monitorar_pendencias.log-err -stderr_events_enabled=true diff --git a/tests_super/funcional/assets/config/xdebug.ini b/tests_super/funcional/assets/config/xdebug.ini deleted file mode 100755 index 7df340727..000000000 --- a/tests_super/funcional/assets/config/xdebug.ini +++ /dev/null @@ -1,14 +0,0 @@ -; Enable xdebug extension module -zend_extension=/usr/lib64/php/modules/xdebug.so - -;xdebug.remote_enable=1 -xdebug.mode=debug - -;xdebug.remote_host=localhost -xdebug.client_host=#HOSTIP -xdebug.client_port=9000 -xdebug.remote_handler=dbgp -xdebug.discover_client_host=1 - -xdebug.idekey=default - diff --git a/tests_super/funcional/assets/cron.d/sei b/tests_super/funcional/assets/cron.d/sei deleted file mode 100644 index a91d94293..000000000 --- a/tests_super/funcional/assets/cron.d/sei +++ /dev/null @@ -1,3 +0,0 @@ -SHELL=/bin/bash - -* * * * * root . /root/crond_env.sh; /usr/bin/php -c /etc/php.ini /opt/sei/scripts/AgendamentoTarefaSEI.php 2>&1 >> /var/log/sei/agendamento_sei.log diff --git a/tests_super/funcional/assets/cron.d/sip b/tests_super/funcional/assets/cron.d/sip deleted file mode 100644 index d6f873ea5..000000000 --- a/tests_super/funcional/assets/cron.d/sip +++ /dev/null @@ -1,5 +0,0 @@ - -SHELL=/bin/bash - -* * * * * root . /root/crond_env.sh; /usr/bin/php -c /etc/php.ini /opt/sip/scripts/AgendamentoTarefaSip.php 2>&1 >> /var/log/sip/agendamento_sip.log -00 01 * * * root rm -rf /opt/sip/temp/* diff --git a/tests_super/funcional/assets/proxy/org1.localhost.conf b/tests_super/funcional/assets/proxy/org1.localhost.conf deleted file mode 100755 index 1f70e98e9..000000000 --- a/tests_super/funcional/assets/proxy/org1.localhost.conf +++ /dev/null @@ -1,8 +0,0 @@ -Listen 8000 -<VirtualHost *:8000> - ServerName org1-http - - ProxyPass "/" "http://org1-http:8000/" - ProxyPassReverse "/" "http://org1-http:8000/" - -</VirtualHost> \ No newline at end of file diff --git a/tests_super/funcional/assets/proxy/org2.localhost.conf b/tests_super/funcional/assets/proxy/org2.localhost.conf deleted file mode 100755 index bcbd1e0b9..000000000 --- a/tests_super/funcional/assets/proxy/org2.localhost.conf +++ /dev/null @@ -1,8 +0,0 @@ -Listen 8000 -<VirtualHost *:8000> - ServerName org2-http - - ProxyPass "/" "http://org2-http:8000/" - ProxyPassReverse "/" "http://org2-http:8000/" - -</VirtualHost> \ No newline at end of file diff --git a/tests_super/funcional/bootstrap.php b/tests_super/funcional/bootstrap.php deleted file mode 100755 index 9bb6edcd3..000000000 --- a/tests_super/funcional/bootstrap.php +++ /dev/null @@ -1,42 +0,0 @@ -<?php - -require_once __DIR__ . '/vendor/autoload.php'; - -require_once __DIR__ . '/sei/src/sei/web/SEI.php'; - -define("DIR_SEI_WEB", __DIR__ . '/sei/src/sei/web/'); -define("DIR_TEST", __DIR__ ); -define("DIR_PROJECT", __DIR__ . '/..' ); -define("DIR_INFRA", __DIR__ . '/../src/infra/infra_php' ); - -error_reporting(E_ERROR); -restore_error_handler(); - -//Classes utilitrias para manipulao dos dados do SEI -require_once __DIR__ . '/src/utils/DatabaseUtils.php'; -require_once __DIR__ . '/src/utils/ParameterUtils.php'; - -//Representao das pginas sob teste -require_once __DIR__ . '/src/paginas/PaginaTeste.php'; -require_once __DIR__ . '/src/paginas/PaginaLogin.php'; -require_once __DIR__ . '/src/paginas/PaginaControleProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaIniciarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaEnviarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaIncluirDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaAssinaturaDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaTramitarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaConsultarAndamentos.php'; -require_once __DIR__ . '/src/paginas/PaginaProcessosTramitadosExternamente.php'; -require_once __DIR__ . '/src/paginas/PaginaReciboTramite.php'; -require_once __DIR__ . '/src/paginas/PaginaEditarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaAnexarProcesso.php'; -require_once __DIR__ . '/src/paginas/PaginaCancelarDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaMoverDocumento.php'; -require_once __DIR__ . '/src/paginas/PaginaTramitarProcessoEmLote.php'; -require_once __DIR__ . '/src/paginas/PaginaCadastroMapEnvioCompDigitais.php'; -require_once __DIR__ . '/src/paginas/PaginaEnvioParcialListar.php'; - -require_once __DIR__ . '/tests/CenarioBaseTestCase.php'; -require_once __DIR__ . '/tests/FixtureCenarioBaseTestCase.php'; diff --git a/tests_super/funcional/composer.json b/tests_super/funcional/composer.json deleted file mode 100755 index 43ad659c7..000000000 --- a/tests_super/funcional/composer.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "config": { - "platform": { - "php": "7.3.12" - } - }, - - "autoload": { - "classmap": [ - "src/", - "sei/modpen/" - ] - }, - - "autoload-dev": { - "psr-4": { - "Tests\\": "sei/" - } - }, - - "require-dev": { - "phpunit/phpunit": "8.*", - "phpunit/php-code-coverage": "*", - "phpunit/phpunit-selenium": "*", - "besimple/soap": "*", - "brandonwamboldt/utilphp": "1.1.*", - "brianium/paratest": "4.*" - } -} diff --git a/tests_super/funcional/composer.phar b/tests_super/funcional/composer.phar deleted file mode 100755 index 9c9f54ecd..000000000 Binary files a/tests_super/funcional/composer.phar and /dev/null differ diff --git a/tests_super/funcional/docker-compose.yml b/tests_super/funcional/docker-compose.yml deleted file mode 100755 index 5fc9419f5..000000000 --- a/tests_super/funcional/docker-compose.yml +++ /dev/null @@ -1,236 +0,0 @@ -version: '2' - -services: - - ### CONTAINERS COMPARTILHADOS ENTRE OS AMBIENTES DE TESTE ### - smtp: - image: processoeletronico/vagrant_super4_mailcatcher:${ENVIRONMENT_VERSION} - ports: - - "1080:1080" - - org1-memcached: - image: processoeletronico/vagrant_super4_memcached:${ENVIRONMENT_VERSION} - ports: - - "11211" - - org2-memcached: - image: processoeletronico/vagrant_super4_memcached:${ENVIRONMENT_VERSION} - ports: - - "11211" - - proxy: - image: diouxx/apache-proxy - ports: - - "8000:8000" - volumes: - - ./assets/proxy/:/opt/proxy-conf - links: - - org1-http:org1-http - - org2-http:org2-http - - selenium: - image: selenium/standalone-chrome-debug - links: - - proxy:org1-http - - proxy:org2-http - ports: - - "4444:4444" - - "5900:5900" - volumes: - - /dev/shm:/dev/shm - - ./assets/arquivos/test_files_index.txt:/test_files_index.txt - - /tmp:/tmp - - php-test-functional: - image: processoeletronico/vagrant_super4_httpd:${ENVIRONMENT_VERSION} - depends_on: - - org1-database - - org2-database - - selenium - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - .:/tests - - ${SEI_PATH}/../tests:/tests/sei - - ${SEI_PATH}/../src:/tests/sei/src - - ./src/fixtures:/tests/sei/modpen/fixtures - - ../../src/dto:/tests/sei/modpen/dto - - ../../src/bd:/tests/sei/modpen/bd - - ./assets/config:/opt/sei/config/mod-pen - - /tmp:/tmp - - /tmp/sei_arquivos_1:/var/sei/arquivos/${ORG1_DATABASE_HOST} - - /tmp/sei_arquivos_2:/var/sei/arquivos/${ORG2_DATABASE_HOST} - - ./assets/config/ConfiguracaoSEI.php:/tests/sei/src/sei/config/ConfiguracaoSEI.php:ro - - ../../src:/tests/sei/src/sei/web/modulos/pen - - ./assets/config:/tests/sei/src/sei/config/mod-pen - environment: - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - ORG1_CERTIFICADO=${ORG1_CERTIFICADO} - - ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - ORG2_CERTIFICADO=${ORG2_CERTIFICADO} - - ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - - DATABASE_IMAGE=${ORG1_DATABASE_IMAGE} - - DATABASE_TYPE=${ORG1_DATABASE_TYPE} - - DATABASE_HOST=${ORG1_DATABASE_HOST} - - DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT} - - SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org1-database:${ORG1_DATABASE_HOST} - - org2-database:${ORG2_DATABASE_HOST} - - selenium:selenium - command: "true" - - php-test-unit: - image: processoeletronico/vagrant_super4_httpd:${ENVIRONMENT_VERSION} - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/config:/opt/sei/config/mod-pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - ../unitario:/tests - - ../../src:/opt/sei/web/modulos/pen - environment: - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - ORG1_CERTIFICADO=${ORG1_CERTIFICADO} - - ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - ORG2_CERTIFICADO=${ORG2_CERTIFICADO} - - ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - extra_hosts: - - "host.docker.internal:host-gateway" - command: "true" - - ### CONTAINERS DO AMBIENTE DO ÓRGÃO 1 ### - - org1-database: - image: ${ORG1_DATABASE_IMAGE}:${ENVIRONMENT_VERSION} - restart: always - environment: - MYSQL_ROOT_PASSWORD: P@ssword - ports: - - "${ORG1_DATABASE_HOST_PORT}:${ORG1_DATABASE_GUEST_PORT}" - - org1-http: - image: processoeletronico/vagrant_super4_httpd:${ENVIRONMENT_VERSION} - restart: always - depends_on: - - org1-database - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/cron.d:/etc/cron.d - - ./assets/config:/opt/sei/config/mod-pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - ../../src/scripts:/opt/sei/scripts/mod-pen - - ../../src/scripts:/opt/sip/scripts/mod-pen - - ../../src/bin:/opt/sei/bin/mod-pen - - ../../src:/opt/sei/web/modulos/pen - - /tmp/sei_arquivos_1:/var/sei/arquivos - environment: - - LANG=pt_BR.ISO-8859-1 - - HOST_URL=http://${ORG1_HOSTNAME}:${ORG1_PORT} - - CERTIFICADO=${ORG1_CERTIFICADO} - - CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA} - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - APP_SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - - APP_SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - - DATABASE_TYPE=${ORG1_DATABASE_TYPE} - - DATABASE_HOST=${ORG1_DATABASE_HOST} - - DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT} - - CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN} - - SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO} - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org1-memcached:memcached - - smtp:smtp - - org1-database:${ORG1_DATABASE_HOST} - - ### CONTAINERS DO AMBIENTE DO ÓRGÃO 2 ### - - org2-database: - image: ${ORG2_DATABASE_IMAGE}:${ENVIRONMENT_VERSION} - restart: always - environment: - MYSQL_ROOT_PASSWORD: P@ssword - ports: - - "${ORG2_DATABASE_HOST_PORT}:${ORG2_DATABASE_GUEST_PORT}" - - org2-http: - image: processoeletronico/vagrant_super4_httpd:${ENVIRONMENT_VERSION} - restart: always - depends_on: - - org2-database - volumes: - - ${SEI_PATH}/sei:/opt/sei - - ${SEI_PATH}/sip:/opt/sip - - ${SEI_PATH}/infra:/opt/infra - - ./assets/cron.d:/etc/cron.d - - ./assets/config:/opt/sei/config/mod-pen - - ../../src/scripts:/opt/sei/scripts/mod-pen - - ../../src/scripts:/opt/sip/scripts/mod-pen - - ../../src/bin:/opt/sei/bin/mod-pen - - ../../src:/opt/sei/web/modulos/pen - - ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro - - ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro - - /tmp/sei_arquivos_2:/var/sei/arquivos - environment: - - LANG=pt_BR.ISO-8859-1 - - HOST_URL=http://${ORG2_HOSTNAME}:${ORG2_PORT} - - CERTIFICADO=${ORG2_CERTIFICADO} - - CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA} - - XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0 - - XDEBUG_SESSION=default - - XDEBUG_MODE=debug - - APP_SIP_CHAVE_ACESSO=${ORG2_APP_SIP_CHAVE_ACESSO} - - APP_SEI_CHAVE_ACESSO=${ORG2_APP_SEI_CHAVE_ACESSO} - - DATABASE_TYPE=${ORG2_DATABASE_TYPE} - - DATABASE_HOST=${ORG2_DATABASE_HOST} - - DATABASE_PORT=${ORG2_DATABASE_GUEST_PORT} - - CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN} - - SEI_CHAVE_ACESSO=${ORG2_APP_SEI_CHAVE_ACESSO} - - SEI_DATABASE_NAME=${SEI_DATABASE_NAME} - - SEI_DATABASE_USER=${SEI_DATABASE_USER} - - SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD} - - SIP_CHAVE_ACESSO=${ORG2_APP_SIP_CHAVE_ACESSO} - - SIP_DATABASE_NAME=${SIP_DATABASE_NAME} - - SIP_DATABASE_USER=${SIP_DATABASE_USER} - - SIP_DATABASE_PASSWORD=${SIP_DATABASE_PASSWORD} - extra_hosts: - - "host.docker.internal:host-gateway" - links: - - org2-memcached:memcached - - smtp:smtp - - org2-database:${ORG2_DATABASE_HOST} \ No newline at end of file diff --git a/tests_super/funcional/env_mysql b/tests_super/funcional/env_mysql deleted file mode 100755 index c93c0bfa4..000000000 --- a/tests_super/funcional/env_mysql +++ /dev/null @@ -1,56 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados MYSQL do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_super4_mysql -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=MySql -ORG1_DATABASE_GUEST_PORT=3306 -ORG1_DATABASE_HOST_PORT=33061 -ORG1_DATABASE_DATA_DIR=/var/lib/mysql -CONTEXTO_ORGAO_A_DB_SEI_DSN="mysql:host=org1-database;port=3306;dbname=sei" - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados MYSQL do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_super4_mysql -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=MySql -ORG2_DATABASE_GUEST_PORT=3306 -ORG2_DATABASE_HOST_PORT=33062 -ORG2_DATABASE_DATA_DIR=/var/lib/mysql -CONTEXTO_ORGAO_B_DB_SEI_DSN="mysql:host=org2-database;port=3306;dbname=sei" - - diff --git a/tests_super/funcional/env_postgresql b/tests_super/funcional/env_postgresql deleted file mode 100755 index b368b3c1a..000000000 --- a/tests_super/funcional/env_postgresql +++ /dev/null @@ -1,54 +0,0 @@ -##### Diretório em que está localizada a instalação do SEI ##### -SEI_PATH=../../../../../../ -ENVIRONMENT_VERSION=10.0 - -SEI_CONFIG=./assets/config/ConfiguracaoSEI.php -SEI_DATABASE_NAME=sei -SEI_DATABASE_USER=sei_user -SEI_DATABASE_PASSWORD=sei_user - -SIP_CONFIG=./assets/config/ConfiguracaoSip.php -SIP_DATABASE_NAME=sip -SIP_DATABASE_USER=sip_user -SIP_DATABASE_PASSWORD=sip_user - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 01 ############### -ORG1_HOSTNAME=org1-http -ORG1_PORT=8000 -ORG1_SIGLA_ORGAO=ABC -ORG1_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG1_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG1_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org1.pem -ORG1_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - - -##### BANCO DE DADOS DO ÓRGÃO 1 ##### -# Configurações do banco de dados POSTGRESQL do ÓRGÃO 1 -ORG1_DATABASE_IMAGE=processoeletronico/vagrant_super4_postgresql -ORG1_DATABASE_HOST=org1-database -ORG1_DATABASE_TYPE=PostgreSql -ORG1_DATABASE_GUEST_PORT=5432 -ORG1_DATABASE_HOST_PORT=54321 -ORG1_DATABASE_DATA_DIR=/var/lib/postgresql/data -CONTEXTO_ORGAO_A_DB_SEI_DSN="pgsql:host=org1-database;port=5432;dbname=sei" - - -############### CONFIGURAÇÕES GERAIS DO ÓRGÃO 02 ############### - -ORG2_HOSTNAME=org2-http -ORG2_PORT=8000 -ORG2_SIGLA_ORGAO=ABC -ORG2_APP_SEI_CHAVE_ACESSO=7babf862e12bd48f3101075c399040303d94a493c7ce9306470f719bb453e0428c6135dc -ORG2_APP_SIP_CHAVE_ACESSO=d27791b894028d9e7fa34887ad6f0c9a2c559cccda5f64f4e108e3573d5db862b66fb933 -ORG2_CERTIFICADO=/opt/sei/config/mod-pen/certificado_org2.pem -ORG2_CERTIFICADO_SENHA=XXXXXXXXXXXXXX - -# Configurações do banco de dados POSTGRESQL do ÓRGÃO 2 -ORG2_DATABASE_IMAGE=processoeletronico/vagrant_super4_postgresql -ORG2_DATABASE_HOST=org2-database -ORG2_DATABASE_TYPE=PostgreSql -ORG2_DATABASE_GUEST_PORT=5432 -ORG2_DATABASE_HOST_PORT=54322 -ORG2_DATABASE_DATA_DIR=/var/lib/postgresql/data -CONTEXTO_ORGAO_B_DB_SEI_DSN="pgsql:host=org2-database;port=5432;dbname=sei" \ No newline at end of file diff --git a/tests_super/funcional/lib/drivers/chromedriver b/tests_super/funcional/lib/drivers/chromedriver deleted file mode 100755 index 7d7041d4b..000000000 Binary files a/tests_super/funcional/lib/drivers/chromedriver and /dev/null differ diff --git a/tests_super/funcional/phpunit.xml b/tests_super/funcional/phpunit.xml deleted file mode 100644 index 051816555..000000000 --- a/tests_super/funcional/phpunit.xml +++ /dev/null @@ -1,149 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit - bootstrap="bootstrap.php" - backupGlobals="true" - colors="true" - verbose="true" - cacheResult="false" - stopOnError="false" - stopOnFailure="false" -> - <php> - <const name="PHPUNIT_HOST" value="selenium" /> - <const name="PHPUNIT_PORT" value="4444" /> - <const name="PHPUNIT_BROWSER" value="chrome" /> - <const name="PHPUNIT_TESTS_URL" value="http://localhost/sei" /> - <const name="PEN_ENDERECO_WEBSERVICE" - value="https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/?wsdl" /> - - <!-- Chaves de configurações gerais do teste do Barramento de Serviços do PEN --> - <const name="PEN_WAIT_TIMEOUT" value="360000" /> - <const name="PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES" value="7200000" /> - <const name="PEN_WAIT_TIMEOUT_PROCESSAMENTO_EM_LOTE" value="10800000" /> - <const name="PEN_SCRIPT_MONITORAMENTO_ORG1" value=" " /> - <const name="PEN_SCRIPT_MONITORAMENTO_ORG2" value=" " /> - - <!-- Chaves de configuração dos diferentes ambientes envolvidos no teste do Barramento de - Serviços do PEN --> - <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 1 --> - <const name="CONTEXTO_ORGAO_A" value="CONTEXTO_ORGAO_A" /> - <const name="CONTEXTO_ORGAO_A_URL" value="http://org1-http:8000/sei" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_A_NUMERO_SEI" value="971" /> - <const name="CONTEXTO_ORGAO_A_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_A_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_A_ID_ESTRUTURA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA" - value="INFORME_A_SIGLA_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_A_NOME_UNIDADE" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA" value="TESTE_1_1" /> - <const name="CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> - <const name="CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA" - value="INFORME_O_NOME_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG_1_1" /> - <const name="CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_A_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_A_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_A_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_A_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO" value="Voto" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_A_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_INATIVA" - value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> - <const name="CONTEXTO_ORGAO_A_HIPOTESE_SIGILOSO" - value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> - - <!-- CONFIGURAÇÕES DE TESTE ÓRGÃO 2 --> - <const name="CONTEXTO_ORGAO_B" value="CONTEXTO_ORGAO_B" /> - <const name="CONTEXTO_ORGAO_B_URL" value="http://org2-http:8000/sei" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_B_NUMERO_SEI" value="179" /> - <const name="CONTEXTO_ORGAO_B_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_B_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_B_ID_ESTRUTURA" - value="INFORME_O_ID_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG2" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA" - value="INFORME_A_SIGLA_DE_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG2" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_B_NOME_UNIDADE" - value="INFORME_O_NOME_DA_ESTRUTURA_UTILIZADO_PARA_TESTE_ORG2" /> - <const name="CONTEXTO_ORGAO_B_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_B_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA" value="XXXXXXXXXXXXXX" /> - <const name="CONTEXTO_ORGAO_B_NOME_UNIDADE_SECUNDARIA" value="XXXXXXXXXXXXXX" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_B_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_B_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_B_TIPO_DOCUMENTO_NAO_MAPEADO" value="Nota" /> - <const name="CONTEXTO_ORGAO_B_TIPO_PROCESSO_SIGILOSO" - value="Acesso à Informação: Demanda do e-SIC" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_INATIVA" - value="Situação Econômico-Financeira de Sujeito Passivo (Art. 198, caput, da Lei nº 5.172/1966 - CTN)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_SIGILOSO" - value="Sigilo do Inquérito Policial (Art. 20 do Código de Processo Penal)" /> - <const name="CONTEXTO_ORGAO_B_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_B_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - - - <!-- CONFIGURAÇÕES DE TESTE Órgão 3, caso de sem hierarquia pai --> - <const name="CONTEXTO_ORGAO_C" value="CONTEXTO_ORGAO_C" /> - <const name="CONTEXTO_ORGAO_C_URL" value="http://xxxxx/sei" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_ORGAO" value="ABC" /> - <const name="CONTEXTO_ORGAO_C_NUMERO_SEI" value="159" /> - <const name="CONTEXTO_ORGAO_C_ID_REP_ESTRUTURAS" value="5" /> - <const name="CONTEXTO_ORGAO_C_REP_ESTRUTURAS" value="RE CGPRO" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE" value="TESTE" /> - <const name="CONTEXTO_ORGAO_C_ID_ESTRUTURA" value="152007" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE" value="SEGES TESTE SEM PAI" /> - <const name="CONTEXTO_ORGAO_C_USUARIO_LOGIN" value="teste" /> - <const name="CONTEXTO_ORGAO_C_USUARIO_SENHA" value="teste" /> - <const name="CONTEXTO_ORGAO_C_NOME_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA" value="" /> - <const name="CONTEXTO_ORGAO_C_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA" value="" /> - <const name="CONTEXTO_ORGAO_C_TIPO_PROCESSO" value="Arrecadação: Cobrança" /> - <const name="CONTEXTO_ORGAO_C_TIPO_DOCUMENTO" value="Ofício" /> - <const name="CONTEXTO_ORGAO_C_TIPO_DOCUMENTO_NAO_MAPEADO" value="Nota" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO" - value="Documento Preparatório (Art. 7º, § 3º, da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_NAO_MAPEADO" - value="Informação Pessoal (Art. 31 da Lei nº 12.527/2011)" /> - <const name="CONTEXTO_ORGAO_C_CARGO_ASSINATURA" value="Assessor(a)" /> - <const name="CONTEXTO_ORGAO_C_HIPOTESE_RESTRICAO_PADRAO" - value="Controle Interno (Art. 26, § 3º, da Lei nº 10.180/2001)" /> - </php> - - <testsuites> - <testsuite name="funcional"> - <directory>tests</directory> - </testsuite> - <testsuite name="falsos_positivos"> - <directory>tests_funcional_falsos_positivos_temp</directory> - </testsuite> - <!-- novasuiteaqui --> - </testsuites> -</phpunit> \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/BlocoDeTramiteFixture.php b/tests_super/funcional/src/fixtures/BlocoDeTramiteFixture.php deleted file mode 100644 index b1dc004e2..000000000 --- a/tests_super/funcional/src/fixtures/BlocoDeTramiteFixture.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php - -use InfraData; - -class BlocoDeTramiteFixture extends \FixtureBase -{ - protected $objBlocoDeTramiteDTO; - - const TRATAMENTO = 'Presidente, Substituto'; - const ID_TARJA_ASSINATURA = 2; - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - protected function cadastrar($dados = []) - { - $objBlocoDeTramiteDTO = new \TramiteEmBlocoDTO(); - - $ordem = $this->pegarProximaOrdem($dados['IdUnidade'] ?: 110000001); - - $objBlocoDeTramiteDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objBlocoDeTramiteDTO->setNumIdUsuario($dados['IdUsuario'] ?: 100000001); - $objBlocoDeTramiteDTO->setStrDescricao($dados['Descricao'] ?: 'Bloco para envio 12'); - $objBlocoDeTramiteDTO->setStrIdxBloco($dados['IdxBloco'] ?: 'Bloco para envio'); - $objBlocoDeTramiteDTO->setStrStaTipo($dados['IdxBloco'] ?: 'I'); - $objBlocoDeTramiteDTO->setStrStaEstado($dados['IdxBloco'] ?: 'A'); - $objBlocoDeTramiteDTO->setNumOrdem($ordem); - - $objBlocoDeTramiteDB = new \TramiteEmBlocoBD($this->inicializarObjInfraIBanco()); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteDB->cadastrar($objBlocoDeTramiteDTO); - - $objUnidadeDTO = $this->consultarUnidadeRelacionada($objBlocoDeTramiteDTO); - $objBlocoDeTramiteDTO->setStrSiglaUnidade($objUnidadeDTO->getStrSigla()); - - return $objBlocoDeTramiteDTO; - } - - protected function consultarUnidadeRelacionada(TramiteEmBlocoDTO $objBlocoDeTramiteDB) - { - $objUnidadeDTO = new \UnidadeDTO(); - $objUnidadeDTO->setNumIdUnidade($objBlocoDeTramiteDB->getNumIdUnidade()); - $objUnidadeDTO->retTodos(); - - $objUnidadeBD = new \UnidadeBD($this->inicializarObjInfraIBanco()); - return $objUnidadeBD->consultar($objUnidadeDTO); - } - - public function excluir($id) - { - $dto = new \TramiteEmBlocoDTO(); - $dto->setNumId($id); - $dto->retNumId(); - - $objBD = new \TramiteEmBlocoBD($this->inicializarObjInfraIBanco()); - $objBD->excluir($dto); - } - - private function pegarProximaOrdem($unidade) - { - $tramiteEmBlocoDTO = new \TramiteEmBlocoDTO(); - $tramiteEmBlocoDTO->setNumIdUnidade($unidade); - $tramiteEmBlocoDTO->setOrdNumOrdem(\InfraDTO::$TIPO_ORDENACAO_DESC); - $tramiteEmBlocoDTO->retNumOrdem(); - $tramiteEmBlocoDTO->setNumMaxRegistrosRetorno(1); - - $objBD = new \TramiteEmBlocoBD($this->inicializarObjInfraIBanco()); - $tramiteEmBlocoDTO = $objBD->consultar($tramiteEmBlocoDTO); - - if ($tramiteEmBlocoDTO == null) { - $ordem = 1; - } else { - $ordem = $tramiteEmBlocoDTO->getNumOrdem() + 1; - } - - return $ordem; - } -} diff --git a/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php b/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php deleted file mode 100644 index 5c2e2faa1..000000000 --- a/tests_super/funcional/src/fixtures/BlocoDeTramiteProtocoloFixture.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -class BlocoDeTramiteProtocoloFixture extends \FixtureBase -{ - protected $objBlocoDeTramiteProtocoloDTO; - - public function __construct() - { - $this->objBlocoDeTramiteProtocoloDTO = new \PenBlocoProcessoDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - protected function cadastrar($dados = []) - { - $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUsuario($dados['IdUsuario'] ?: '100000001'); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidade($dados['IdUnidade'] ?: '110000001'); - $dthRegistro = date('d/m/Y H:i:s'); - $this->objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $dthRegistro); - $this->objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); - - // atualizao 3.7.0 - $this->objBlocoDeTramiteProtocoloDTO->setNumIdAndamento($dados['IdAndamento'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setStrUnidadeDestino($dados['UnidadeDestino'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeOrigem($dados['IdUnidadeOrigem'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeDestino($dados['IdUnidadeDestino'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdAtividade($dados['IdAtividade'] ?: null); - - $this->objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioOrigem($dados['IdRepositorioOrigem'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioDestino($dados['IdRepositorioDestino'] ?: null); - $this->objBlocoDeTramiteProtocoloDTO->setDthEnvio($dados['Envio'] ?: $dthRegistro); - - $this->objBlocoDeTramiteProtocoloDTO->setStrRepositorioDestino($dados['RepositorioDestino'] ?: null); - - $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD($this->inicializarObjInfraIBanco()); - $objBlocoDeTramiteProtocoloBD->cadastrar($this->objBlocoDeTramiteProtocoloDTO); - - return $this->objBlocoDeTramiteProtocoloDTO; - } - - protected function listar($dados = []) - { - $this->objBlocoDeTramiteProtocoloDTO->setDblIdProtocolo($dados['IdProtocolo']); - $this->objBlocoDeTramiteProtocoloDTO->retTodos(); - - $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD($this->inicializarObjInfraIBanco()); - return $objBlocoDeTramiteProtocoloBD->listar($this->objBlocoDeTramiteProtocoloDTO); - } - - protected function alterar($dados = []) - { - - $objBlocoDeTramiteProtocoloDTO = $this->listar($dados)[0]; - - $objBlocoDeTramiteProtocoloDTO->setNumIdBloco($dados['IdBloco'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdBloco()); - $objBlocoDeTramiteProtocoloDTO->setNumSequencia($dados['Sequencia'] ?: $objBlocoDeTramiteProtocoloDTO->getNumSequencia()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUsuario($dados['IdUsuario'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUsuario()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUnidade($dados['IdUnidade'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUnidade()); - $dthRegistro = date('d/m/Y H:i:s'); - $objBlocoDeTramiteProtocoloDTO->setDthRegistro($dados['DthRegistro'] ?: $objBlocoDeTramiteProtocoloDTO->getDthRegistro()); - $objBlocoDeTramiteProtocoloDTO->setDthAtualizado($dados['DthAtualizado'] ?: $dthRegistro); - - $objBlocoDeTramiteProtocoloDTO->setNumIdAndamento($dados['IdAndamento'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdAndamento()); - $objBlocoDeTramiteProtocoloDTO->setStrUnidadeDestino($dados['UnidadeDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getStrUnidadeDestino()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeOrigem($dados['IdUnidadeOrigem'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUnidadeOrigem()); - $objBlocoDeTramiteProtocoloDTO->setNumIdUnidadeDestino($dados['IdUnidadeDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdUnidadeDestino()); - $objBlocoDeTramiteProtocoloDTO->setNumIdAtividade($dados['IdAtividade'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdAtividade()); - - $objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioOrigem($dados['IdRepositorioOrigem'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdRepositorioOrigem()); - $objBlocoDeTramiteProtocoloDTO->setNumIdRepositorioDestino($dados['IdRepositorioDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getNumIdRepositorioDestino()); - $objBlocoDeTramiteProtocoloDTO->setDthEnvio($dados['Envio'] ?: $objBlocoDeTramiteProtocoloDTO->getDthEnvio()); - - $objBlocoDeTramiteProtocoloDTO->setStrRepositorioDestino($dados['RepositorioDestino'] ?: $objBlocoDeTramiteProtocoloDTO->getStrRepositorioDestino()); - - $objBlocoDeTramiteProtocoloBD = new \PenBlocoProcessoBD($this->inicializarObjInfraIBanco()); - return $objBlocoDeTramiteProtocoloBD->alterar($objBlocoDeTramiteProtocoloDTO); - } -} diff --git a/tests_super/funcional/src/fixtures/FixtureBase.php b/tests_super/funcional/src/fixtures/FixtureBase.php deleted file mode 100644 index 7a0811c2b..000000000 --- a/tests_super/funcional/src/fixtures/FixtureBase.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -abstract class FixtureBase extends \InfraRN -{ - abstract protected function cadastrar($dados); - - protected function cadastrarInternoControlado($parametros){ - $dto = $this->cadastrar($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function carregar($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->cadastrarInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } - - public function carregarVarios($dados = null, $quantidade = 1){ - $resultado = []; - for ($i=0; $i < $quantidade; $i++) { - $resultado[] = $this->carregar($dados); - } - - return $resultado; - } - - public function carregarVariados($dados){ - $resultado = []; - foreach ($dados as $dado) { - $resultado[] = $this->carregar($dado); - } - - return $resultado; - } - - protected function listarInternoControlado($parametros){ - $dto = $this->listar($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function buscar($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->listarInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } - - protected function removerInternoControlado($parametros){ - $dto = $this->excluir($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function remover($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->removerInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } - - public function atualizarInternoControlado($parametros){ - $dto = $this->alterar($parametros["dados"]); - - if (isset($parametros["callback"])) { - $parametros["callback"]($dto); - } - - return $dto; - } - - public function atualizar($dados = null, $callback = null){ - $dados = $dados ?: []; - return $this->atualizarInterno([ - 'dados' => $dados, - 'callback' => $callback - ]); - } -} diff --git a/tests_super/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php b/tests_super/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php deleted file mode 100644 index 0eb1436c5..000000000 --- a/tests_super/funcional/src/fixtures/ImportacaoTiposProcessoFixture.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -class ImportacaoTiposProcessoFixture extends \FixtureBase -{ - protected $objPenMapTipoProcedimentoDTO; - protected $dthRegistro; - - public function __construct() - { - $this->objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $this->dthRegistro = \InfraData::getStrDataAtual(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenMapTipoProcedimentoDTO = $this->consultar($dados); - if ($objPenMapTipoProcedimentoDTO) { - return $objPenMapTipoProcedimentoDTO; - } - - $this->objPenMapTipoProcedimentoDTO->setNumIdMapOrgao($dados['IdMapeamento']); - $this->objPenMapTipoProcedimentoDTO->setNumIdTipoProcessoOrigem($dados['IdProcedimento']); - $this->objPenMapTipoProcedimentoDTO->setStrNomeTipoProcesso($dados['NomeProcedimento']); - $this->objPenMapTipoProcedimentoDTO->setNumIdUnidade(($dados['IdUnidade'] ?: 110000001)); - $this->objPenMapTipoProcedimentoDTO->setStrAtivo(($dados['SinAtivo'] ?: 'S')); - $this->objPenMapTipoProcedimentoDTO->setDthRegistro(\InfraData::getStrDataAtual()); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->cadastrar($this->objPenMapTipoProcedimentoDTO); - } - - public function consultar($dados = []) - { - $objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $objPenMapTipoProcedimentoDTO->setNumIdMapOrgao($dados['IdMapeamento']); - $objPenMapTipoProcedimentoDTO->setNumIdTipoProcessoOrigem($dados['IdProcedimento']); - $objPenMapTipoProcedimentoDTO->setNumIdUnidade(($dados['IdUnidade'] ?: 110000001)); - $objPenMapTipoProcedimentoDTO->setStrAtivo(($dados['SinAtivo'] ?: 'S')); - $objPenMapTipoProcedimentoDTO->retTodos(); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->consultar($objPenMapTipoProcedimentoDTO); - } - - public function listar($dados = []) - { - $objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $objPenMapTipoProcedimentoDTO->setNumIdMapOrgao($dados['IdMapeamento']); - if ($dados['IdProcedimento']) { - $objPenMapTipoProcedimentoDTO->setNumIdTipoProcessoOrigem($dados['IdProcedimento']); - } - if ($dados['IdUnidade']) { - $objPenMapTipoProcedimentoDTO->setNumIdUnidade($dados['IdUnidade']); - - } - if ($dados['SinAtivo']) { - $objPenMapTipoProcedimentoDTO->setStrAtivo($dados['SinAtivo']); - } - $objPenMapTipoProcedimentoDTO->retTodos(); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->listar($objPenMapTipoProcedimentoDTO); - } - - public function excluir($dados = []) - { - $objPenMapTipoProcedimentoDTO = new \PenMapTipoProcedimentoDTO(); - $objPenMapTipoProcedimentoDTO->setDblId($dados['Id']); - - $objPenMapTipoProcedimentoBD = new \PenMapTipoProcedimentoBD($this->inicializarObjInfraIBanco()); - return $objPenMapTipoProcedimentoBD->excluir($objPenMapTipoProcedimentoDTO); - } -} \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/PenMapEnvioParcialFixture.php b/tests_super/funcional/src/fixtures/PenMapEnvioParcialFixture.php deleted file mode 100644 index 0e6172cf3..000000000 --- a/tests_super/funcional/src/fixtures/PenMapEnvioParcialFixture.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -use InfraData; - -class PenMapEnvioParcialFixture extends \FixtureBase -{ - protected $objMapEnvioParcialDTO; - - public function __construct() - { - $this->objMapEnvioParcialDTO = new \PenRestricaoEnvioComponentesDigitaisDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - protected function cadastrar($dados = []) - { - $objMapEnvioParcialDTO = $this->consultar($dados); - if ($objMapEnvioParcialDTO) { - return $objMapEnvioParcialDTO; - } - - $this->objMapEnvioParcialDTO->setNumIdEstrutura($dados['IdEstrutura'] ?: 5); - $this->objMapEnvioParcialDTO->setStrStrEstrutura($dados['StrEstrutura'] ?: 'RE CGPRO'); - $this->objMapEnvioParcialDTO->setNumIdUnidadePen($dados['IdUnidadePen']); - $this->objMapEnvioParcialDTO->setStrStrUnidadePen($dados['StrUnidadePen']); - - $objMapEnvioParcialDB = new \PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - $objMapEnvioParcialDB->cadastrar($this->objMapEnvioParcialDTO); - - return $this->objMapEnvioParcialDTO; - } - - public function consultar($dados = []) - { - $objMapEnvioParcialDTO = new \PenRestricaoEnvioComponentesDigitaisDTO(); - $objMapEnvioParcialDTO->setNumIdEstrutura($dados['IdEstrutura'] ?: 5); - $objMapEnvioParcialDTO->setStrStrEstrutura($dados['StrEstrutura'] ?: 'RE CGPRO'); - $objMapEnvioParcialDTO->setNumIdUnidadePen($dados['IdUnidadePen']); - $objMapEnvioParcialDTO->setStrStrUnidadePen($dados['StrUnidadePen']); - $objMapEnvioParcialDTO->retTodos(); - - $objMapEnvioParcialDB = new \PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - return $objMapEnvioParcialDB->consultar($objMapEnvioParcialDTO); - } - - public function excluir($dados = []) - { - $this->$objMapEnvioParcialDTO = new \PenRestricaoEnvioComponentesDigitaisDTO(); - $this->$objMapEnvioParcialDTO->setDblId($dados['Id']); - - $objMapEnvioParcialDB = new \PenRestricaoEnvioComponentesDigitaisBD($this->inicializarObjInfraIBanco()); - $objMapEnvioParcialDB->excluir($this->$objMapEnvioParcialDTO); - } -} diff --git a/tests_super/funcional/src/fixtures/PenMapUnidadesFixture.php b/tests_super/funcional/src/fixtures/PenMapUnidadesFixture.php deleted file mode 100644 index ea698cb2d..000000000 --- a/tests_super/funcional/src/fixtures/PenMapUnidadesFixture.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php - -/** - * Responsvel por cadastrar novo mapeamento de unidades caso no exista - */ -class PenMapUnidadesFixture extends \FixtureBase -{ - protected $objPenUnidadeDTO; - - public function __construct() - { - $this->objPenUnidadeDTO = new \PenUnidadeDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenUnidadeDTO = $this->consultar($dados); - if ($objPenUnidadeDTO) { - return $objPenUnidadeDTO; - } - - $this->objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $this->objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); - $this->objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); - $this->objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); - - $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeBD->cadastrar($this->objPenUnidadeDTO); - } - - public function consultar($dados = []) - { - $objPenUnidadeDTO = new \PenUnidadeDTO(); - $objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); - $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); - $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); - $objPenUnidadeDTO->retTodos(); - - $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); - return $objPenUnidadeBD->consultar($objPenUnidadeDTO); - } -} \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/PenOrgaoExternoFixture.php b/tests_super/funcional/src/fixtures/PenOrgaoExternoFixture.php deleted file mode 100644 index 474b0b83f..000000000 --- a/tests_super/funcional/src/fixtures/PenOrgaoExternoFixture.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php - -class PenOrgaoExternoFixture extends \FixtureBase -{ - protected $objPenOrgaoExternoDTO; - - public function __construct() - { - $this->objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $this->objPenOrgaoExternoDTO = $this->consultar($dados); - if ($this->objPenOrgaoExternoDTO) { - return $this->objPenOrgaoExternoDTO; - } - - $this->objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - $this->objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($dados['IdOrigem']); - $this->objPenOrgaoExternoDTO->setStrOrgaoOrigem($dados['NomeOrigem']); - $this->objPenOrgaoExternoDTO->setNumIdEstrutaOrganizacionalOrigem($dados['IdRepositorio']); - $this->objPenOrgaoExternoDTO->setStrEstrutaOrganizacionalOrigem($dados['RepositorioEstruturas']); - - $this->objPenOrgaoExternoDTO->setNumIdOrgaoDestino($dados['Id']); - $this->objPenOrgaoExternoDTO->setStrOrgaoDestino($dados['Nome']); - - $this->objPenOrgaoExternoDTO->setDthRegistro($dados['DataRegistro'] ?: \InfraData::getStrDataAtual()); - $this->objPenOrgaoExternoDTO->setStrAtivo($dados['SinAtivo'] ?: 'S'); - $this->objPenOrgaoExternoDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - - $objPenOrgaoExternoBD = new \PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - $this->objPenOrgaoExternoDTO = $objPenOrgaoExternoBD->cadastrar($this->objPenOrgaoExternoDTO); - - return $this->objPenOrgaoExternoDTO; - } - - public function consultar($dados = []) - { - $objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->setNumIdOrgaoOrigem($dados['IdOrigem']); - $objPenOrgaoExternoDTO->setNumIdOrgaoDestino($dados['Id']); - $objPenOrgaoExternoDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objPenOrgaoExternoDTO->retTodos(); - - $objPenOrgaoExternoBD = new \PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objPenOrgaoExternoBD->consultar($objPenOrgaoExternoDTO); - } - - public function excluir($dados = []) - { - $objPenOrgaoExternoDTO = new \PenOrgaoExternoDTO(); - $objPenOrgaoExternoDTO->setDblId($dados['Id']); - - $objPenOrgaoExternoBD = new \PenOrgaoExternoBD($this->inicializarObjInfraIBanco()); - return $objPenOrgaoExternoBD->excluir($objPenOrgaoExternoDTO); - } -} \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/TipoProcessoPadraoFixture.php b/tests_super/funcional/src/fixtures/TipoProcessoPadraoFixture.php deleted file mode 100644 index dad75f16f..000000000 --- a/tests_super/funcional/src/fixtures/TipoProcessoPadraoFixture.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -use InfraData; - -class TipoProcessoPadraoFixture extends \FixtureBase -{ - protected $objPenParametroDTO; - - public function __construct() - { - $this->objPenParametroDTO = new \PenParametroDTO(); - } - - protected function inicializarObjInfraIBanco() - { - return \BancoSEI::getInstance(); - } - - public function cadastrar($dados = []) - { - $objPenParametroDTO = new \PenParametroDTO(); - $objPenParametroDTO->setStrNome($dados['Nome']); - - $objPenParametroBD = new \PenParametroBD($this->inicializarObjInfraIBanco()); - if($objPenParametroBD->contar($objPenParametroDTO) > 0) { - $objPenParametroDTO->setStrValor($dados['Valor']); - $objPenParametroBD->alterar($objPenParametroDTO); - } - } -} diff --git a/tests_super/funcional/src/paginas/PaginaAnexarProcesso.php b/tests_super/funcional/src/paginas/PaginaAnexarProcesso.php deleted file mode 100755 index 183a933d7..000000000 --- a/tests_super/funcional/src/paginas/PaginaAnexarProcesso.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -class PaginaAnexarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function protocolo($protocolo) - { - $protocoloInput = $this->test->byId('txtProtocolo'); - - if(isset($protocolo)){ - $protocoloInput->value($protocolo); - $this->test->byId('btnPesquisar')->click(); - } - - return $protocoloInput->value(); - } - - public function anexar() - { - $anexarButton = $this->test->byId('sbmAnexar'); - $anexarButton->click(); - $this->alertTextAndClose(); - } - - - public function anexarProcesso($protocolo) - { - $this->protocolo($protocolo); - $this->anexar(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaAssinaturaDocumento.php b/tests_super/funcional/src/paginas/PaginaAssinaturaDocumento.php deleted file mode 100755 index cd3de4a1d..000000000 --- a/tests_super/funcional/src/paginas/PaginaAssinaturaDocumento.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaAssinaturaDocumento extends PaginaTeste -{ - const JANELA_ASSINATURA = "janelaAssinatura"; - - public function __construct($test) - { - parent::__construct($test); - } - - public function assinante($strAssinante) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("txtUsuario"); - - if(isset($strAssinante)){ - $input->value($strAssinante); - $this->test->waitUntil(function($testCase) { - $nomeAssinante = $testCase->byId("txtUsuario")->value(); - $testCase->byLinkText($nomeAssinante)->click(); - return true; - }, 8000); - } - - return $input->value(); - } - - public function senha($value) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("pwdSenha"); - return $input->value($value); - } - - public function selecionarOrgaoAssinante($strOrgaoAssinante) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("selOrgao"); - $this->test->select($input)->selectOptionByLabel($strOrgaoAssinante); - return $this->test->select($input)->selectedLabel(); - } - - public function selecionarCargoAssinante($strCargoAssinante) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("selCargoFuncao"); - $this->test->select($input)->selectOptionByLabel($strCargoAssinante); - return $this->test->select($input)->selectedLabel(); - } - - public function assinarComLoginSenha($pwdSenha) - { - $this->test->frame(null); - $this->test->frame("modal-frame"); - $input = $this->test->byId("pwdSenha"); - $input->value($pwdSenha); - $this->test->keys(Keys::ENTER); - } - -} diff --git a/tests_super/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php b/tests_super/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php deleted file mode 100644 index 54fc4cafc..000000000 --- a/tests_super/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php +++ /dev/null @@ -1,253 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaCadastrarProcessoEmBloco extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarListagemBlocoDeTramite() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Blocos de Trmite Externo', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='md_pen_tramita_em_bloco']")->click(); - } - - /** - * Setar parametro para novo mapeamento de orgos externos - * - * @return void - */ - public function setarParametros($estrutura, $origem) - { - $this->selectRepositorio($estrutura); - $this->selectUnidade($origem, 'Origem'); // Seleciona Orgo de Origem - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @return string - */ - private function selectRepositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade'); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - public function novoBlocoDeTramite() - { - $this->test->byId("bntNovo")->click(); - } - - - public function criarNovoBloco() - { - $this->test->byId('txtDescricao')->value('Bloco para teste automatizado'); - } - - public function editarBlocoDeTramite($descricao = null) - { - $this->test->byXPath("(//img[@title='Alterar Bloco'])[1]")->click(); - - if ($descricao != null) { - $this->test->byId('txtDescricao')->clear(); - $this->test->byId('txtDescricao')->value($descricao); - } - } - - public function selecionarExcluirBloco() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } - - public function buscarQuantidadeProcessosRecusados() - { - $linhasDaTabelaRecusadas = $this->test->elements($this->test->using('xpath')->value("//img[@title='Recusado']")); - return count($linhasDaTabelaRecusadas); - } - - public function tramitarProcessoExternamente($repositorio, $unidadeDestino, $unidadeDestinoHierarquia, $urgente = false, $callbackEnvio = null, $timeout = PEN_WAIT_TIMEOUT) - { - // Preencher parmetros do trmite - $this->selectRepositorio($repositorio); - $this->selectUnidade($unidadeDestino, 'origem', $unidadeDestinoHierarquia); - $this->btnEnviar(); - - if ($callbackEnvio == null) { - $mensagemAlerta = null; - try { - $mensagemAlerta = $this->alertTextAndClose(true); - } catch (Exception $e) { - } - if ($mensagemAlerta) { - throw new Exception($mensagemAlerta); - } - } - - try { - $mensagemAlerta = $this->alertTextAndClose(true); - } catch (Exception $e) { - } - - if (isset($mensagemAlerta)) { - throw new Exception($mensagemAlerta); - } - - $callbackEnvio = $callbackEnvio ?: function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Trmite externo do processo finalizado com sucesso!', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - }; - - try { - $this->test->waitUntil($callbackEnvio, $timeout); - } finally { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - sleep(1); - } - - public function realizarValidacaoRecebimentoProcessoNoDestinatario($processoTeste) - { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - - $this->test->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - } - - public function retornarTextoColunaDaTabelaDeBlocos() - { - $tabela = $this->test->byXPath('//tr[@class="infraTrClara odd"]'); - $terceiraColuna = $tabela->byXPath('./td[3]'); - - return $terceiraColuna->text(); - } - - public function retornarQuantidadeDeProcessosNoBloco() - { - // Localiza todas as linhas da tabela com o XPath - $linhasDaTabela = $this->test->elements($this->test->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - // Obtm o nmero de linhas - return count($linhasDaTabela); - } - - - public function bntTramitarBloco() - { - $this->test->byXPath("(//img[@title='Tramitar Bloco'])[1]")->click(); - } - - public function bntVisualizarProcessos() - { - $this->test->byXPath("(//img[@title='Visualizar Processos'])[1]")->click(); - } - - public function btnSelecionarTodosProcessos() - { - $this->test->byXPath("//*[@id='imgInfraCheck']")->click(); - } - - public function btnComandoSuperiorExcluir() - { - $this->test->byXPath('//*[@id="divInfraBarraComandosSuperior"]/button[@value="Excluir"]')->click(); - $this->test->acceptAlert(); - } - - public function btnComandoSuperiorFechar() - { - $this->test->byXPath('//*[@id="divInfraBarraComandosSuperior"]/button[@value="Fechar"]')->click(); - } - - public function btnSalvar() - { - $buttonElement = $this->test->byXPath("//button[@type='submit' and @value='Salvar']"); - $buttonElement->click(); - } - - public function btnEnviar() - { - $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Enviar']"); - $buttonElement->click(); - } - -} \ No newline at end of file diff --git a/tests_super/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php b/tests_super/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php deleted file mode 100644 index 78385e129..000000000 --- a/tests_super/funcional/src/paginas/PaginaCadastroMapEnvioCompDigitais.php +++ /dev/null @@ -1,225 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Classe responsvel por teste funcional de - * mapeamento de envio parcial de componentes digitais - */ -class PaginaCadastroMapEnvioCompDigitais extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Clicar no boto novo - * - * @return void - */ - public function novo() - { - $this->test->byId("btnNovo")->click(); - } - - /** - * Selecionar repositrio - * Selecionar unidade - * - * @param string $estrutura - * @param string $unidade - * @return void - */ - public function setarParametros($estrutura, $unidade) - { - $this->selectRepositorio($estrutura); - $this->selectUnidade($unidade); - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @return string - */ - private function selectRepositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade'); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){} - - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Clicar no boto salvar - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function editar() - { - $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); - } - - /** - * Exluir mapeamentos existentes - * - * @return void - */ - public function excluirMapeamentosExistentes() - { - try{ - $lnkInfraCheck=$this->test->byXPath('//*[@id="lnkInfraCheck"]'); - $lnkInfraCheck->click(); - $this->excluirSelecionados(); - sleep(1); - $mensagem = $this->buscarMensagemAlerta(); - $this->test->assertStringContainsString( - mb_convert_encoding('Mapeamento excludo com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } catch (Exception $e) { - } - } - - /** - * Selecionar todos os resultados - * - * @return void - */ - public function selecionarTodos() - { - $this->test->byXPath('//*[@id="lnkInfraCheck"]')->click(); - } - - /** - * Excluir selecionados - * - * @return void - */ - public function excluirSelecionados() - { - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Selecionar primeira checkbox de excluso - * Seleciona boto excluir - * Seleciona boto de confirmao - * - * @return void - */ - public function selecionarExcluir() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no boto pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function selecionarPesquisa($textoPesquisa) - { - $this->test->byId('txtNomeEstrutura')->clear(); - $this->test->byId('txtNomeEstrutura')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Selecionar todos os intens para impresso - * - * @return void - */ - public function selecionarImprimir() - { - $this->test->byId("lnkInfraCheck")->click(); - // $this->test->byId("btnImprimir")->click(); - } - - /** - * Buscar item de tabela por nome - * - * @param string $nome - * @return string|null - */ - public function buscarNome($nome) - { - try { - $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); - return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? - $nomeSelecionado : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } -} \ No newline at end of file diff --git a/tests_super/funcional/src/paginas/PaginaCadastroOrgaoExterno.php b/tests_super/funcional/src/paginas/PaginaCadastroOrgaoExterno.php deleted file mode 100644 index d33cc9da2..000000000 --- a/tests_super/funcional/src/paginas/PaginaCadastroOrgaoExterno.php +++ /dev/null @@ -1,259 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaCadastroOrgaoExterno extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarCadastroOrgaoExterno() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Relacionamento entre Unidades', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_orgaos_externos_listar']")->click(); - } - - /** - * Setar parametro para novo mapeamento de orgos externos - * - * @return void - */ - public function setarParametros($estrutura, $origem, $destino) - { - $this->selectRepositorio($estrutura, 'Origem'); - $this->selectUnidade($origem, 'Origem'); // Seleciona Orgo de Origem - $this->selectUnidadeDestino($destino, 'Destino'); // Seleciona Orgo de Destino - } - - /** - * Seleciona repositrio por sigla - * - * @param string $siglaRepositorio - * @param string $origemDestino - * @return string - */ - private function selectRepositorio($siglaRepositorio, $origemDestino) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas' . $origemDestino)); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas' . $origemDestino)->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade' . $origemDestino); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade' . $origemDestino)->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Seleciona unidade por nome - * - * @param string $nomeUnidade - * @param string $origemDestino - * @param ?string $hierarquia - * @return string - */ - private function selectUnidadeDestino($nomeUnidade, $origemDestino, $hierarquia = null) - { - $this->unidadeInput = $this->test->byId('txtUnidade' . $origemDestino); - $this->unidadeInput->clear(); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($origemDestino, $hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade' . $origemDestino)->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - /** - * Seleciona boto novo da pgina - * - * @return void - */ - public function novoMapOrgao() - { - $this->test->byId("btnNovo")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function editarMapOrgao() - { - $this->test->byXPath("(//img[@title='Alterar Relacionamento'])[1]")->click(); - } - - /** - * Selecionar primeira checkbox de excluso - * Seleciona boto excluir - * Seleciona boto de confirmao - * - * @return void - */ - public function selecionarExcluirMapOrgao() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byId("btnExcluir")->click(); - $this->test->acceptAlert(); - } - - /** - * Selcionar boto salvar da pgina - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - public function abrirSelecaoDeArquivoParaImportacao() - { - $this->test->byXPath("(//img[@title='Importar CSV'])[1]")->click(); - sleep(2); - $fileChooser = $this->test->byId('importArquivoCsv'); - $this->test->waitUntil(function ($testCase) use ($fileChooser) { - $fileChooser - ->sendKeys('/opt/sei/web/modulos/mod-sei-pen/tests_super/funcional/assets/arquivos/tipos_processos.csv') - ->keys(Keys::CLEAR); - }, PEN_WAIT_TIMEOUT); - $this->test->waitUntil(function($testCase) { - return true; - }); - } - - /** - * Buscar orgo de origem por nome - * - * @param string $origem - * @return string|null - */ - public function buscarOrgaoOrigem($origem) - { - try { - $orgaoOrigem = $this->test->byXPath("//td[contains(.,'" . $origem . "')]")->text(); - return !empty($orgaoOrigem) && !is_null($orgaoOrigem) ? - $orgaoOrigem : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar orgo de destino por nome - * - * @param string $origem - * @return string|null - */ - public function buscarOrgaoDestino($destino) - { - try { - $orgaoDestino = $this->test->byXPath("//td[contains(.,'" . $destino . "')]")->text(); - return !empty($orgaoDestino) && !is_null($orgaoDestino) ? - $orgaoDestino : - null; - } catch (Exception $ex) { - return null; - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no bot?o pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function selecionarPesquisa($textoPesquisa) - { - $this->test->byId('txtSiglaOrigem')->clear(); - $this->test->byId('txtSiglaOrigem')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Buscar item de tabela por nome - * - * @param string $nome - * @return string|null - */ - public function buscarNome($nome) - { - try { - $nomeSelecionado = $this->test->byXPath("//td[contains(.,'" . $nome . "')]")->text(); - return !empty($nomeSelecionado) && !is_null($nomeSelecionado) ? - $nomeSelecionado : - null; - } catch (Exception $ex) { - return null; - } - } -} diff --git a/tests_super/funcional/src/paginas/PaginaCancelarDocumento.php b/tests_super/funcional/src/paginas/PaginaCancelarDocumento.php deleted file mode 100755 index f1047b591..000000000 --- a/tests_super/funcional/src/paginas/PaginaCancelarDocumento.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php - -class PaginaCancelarDocumento extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function cancelar($motivoCancelamento) - { - $this->motivoCancelamento($motivoCancelamento); - $this->salvar(); - } - - private function motivoCancelamento($value) - { - $input = $this->test->byId("txaMotivo"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - private function salvar() - { - $this->test->byId("sbmSalvar")->click(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaConfiguracaoModulo.php b/tests_super/funcional/src/paginas/PaginaConfiguracaoModulo.php deleted file mode 100644 index b393c38e3..000000000 --- a/tests_super/funcional/src/paginas/PaginaConfiguracaoModulo.php +++ /dev/null @@ -1,49 +0,0 @@ - -<?php - -class PaginaConfiguracaoModulo extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarPaginaConfiguracaoModulo() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Parmetros de Configurao', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_parametros_configuracao']")->click(); - } - - public function getTituloPaginaConfiguracao() - { - return $this->test->byId("divInfraBarraLocalizacao")->text(); - } - - public function navegarPaginaNovoMapeamentoUnidade() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Tramita GOV.BR', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_unidade_cadastrar']")->click(); - } - - public function getTituloPaginaNovoMapeamentoUnidade() - { - return $this->test->byId("lblUnidadePen")->text(); - } - - public function navegarPaginaHipoteseRestricaoPadrao() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Hiptese de Restrio Padro', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_hipotese_legal_padrao_cadastrar']")->click(); - } - - public function getTituloPaginaHipoteseRestricaoPadrao() - { - return $this->test->byId("divInfraBarraLocalizacao")->text(); - } - -} diff --git a/tests_super/funcional/src/paginas/PaginaConsultarAndamentos.php b/tests_super/funcional/src/paginas/PaginaConsultarAndamentos.php deleted file mode 100755 index d46eedd95..000000000 --- a/tests_super/funcional/src/paginas/PaginaConsultarAndamentos.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -class PaginaConsultarAndamentos extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemTramite($mensagemTramite) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoEmTramitacao($strUnidadeDestino) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "Processo em tramitação externa para $strUnidadeDestino"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoRecebido($strUnidadeDestino) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "Recebido em $strUnidadeDestino"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } - - public function contemTramiteProcessoRejeitado($strUnidadeDestino, $strMotivo) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $mensagemTramite = "O processo foi recusado pelo orgão $strUnidadeDestino pelo seguinte motivo: $strMotivo"; - return strpos($this->test->byCssSelector('body')->text(), $mensagemTramite) !== false; - } -} diff --git a/tests_super/funcional/src/paginas/PaginaControleProcesso.php b/tests_super/funcional/src/paginas/PaginaControleProcesso.php deleted file mode 100755 index bbbf1d6c4..000000000 --- a/tests_super/funcional/src/paginas/PaginaControleProcesso.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -class PaginaControleProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - protected function obterLinhasProcessos($processosGerados, $processosRecebidos) - { - $paineisPesquisa = array(); - if($processosGerados) { $paineisPesquisa[] = 'tblProcessosGerados'; - } - if($processosRecebidos) { $paineisPesquisa[] = 'tblProcessosRecebidos'; - } - - $resultado = array(); - foreach ($paineisPesquisa as $painel) { - try { - $resultado = array_merge($resultado, $this->test->byId($painel)->elements($this->test->using('css selector')->value('tr'))); - } catch (\Exception $th) { } - } - - return $resultado; - } - - protected function listarProcessos($processosGerados, $processosRecebidos) - { - $listaProtocolos = array(); - $processosRows = $this->obterLinhasProcessos($processosGerados, $processosRecebidos); - if(isset($processosRows) && count($processosRows) > 0){ - for ($i=1; $i < count($processosRows); $i++) { - $listaProtocolos[] = trim($processosRows[$i]->text()); - } - } - - return $listaProtocolos; - } - - public function processosGerados() - { - return $this->listarProcessos(true, false); - } - - public function processosRecebidos() - { - return $this->listarProcessos(false, true); - } - - public function contemProcesso($numeroProcesso, $processosGerados = true, $processosRecebidos = true) - { - $listaProcessos = $this->listarProcessos($processosGerados, $processosRecebidos); - return ($listaProcessos != null) ? in_array($numeroProcesso, $listaProcessos) : false; - } - - public function contemAlertaProcessoRecusado($numeroProcesso) - { - $processosRows = $this->obterLinhasProcessos(true, true); - foreach ($processosRows as $row) { - try{ - if(strpos($row->text(), $numeroProcesso) !== false){ - foreach ($row->elements($this->test->using('css selector')->value('img')) as $icone) { - if(strpos($icone->attribute("src"), 'pen_tramite_recusado.png') !== false) { - return true; - } - } - } - } - catch(\Exception $e) { - return false; - } - } - - return false; - } - - public function localizarProcessoPelaDescricao($descricao) - { - $processosRows = $this->obterLinhasProcessos(true, true); - foreach ($processosRows as $row) { - try{ - foreach ($row->elements($this->test->using('css selector')->value('a')) as $link) { - if(strpos($link->attribute("onmouseover"), $descricao) !== false) { - return $link->text(); - } - } - } - catch(\Exception $e) { - return false; - } - } - - return false; - } - - public function abrirProcesso($strProtocolo) - { - $this->test->byLinkText($strProtocolo)->click(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaDocumento.php b/tests_super/funcional/src/paginas/PaginaDocumento.php deleted file mode 100755 index e130b489a..000000000 --- a/tests_super/funcional/src/paginas/PaginaDocumento.php +++ /dev/null @@ -1,181 +0,0 @@ -<?php - -class PaginaDocumento extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarParaAssinarDocumento() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Assinar Documento']")->click(); - } - - public function navegarParaConsultarDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Consultar/Alterar Documento')]")->click(); - } - - public function navegarParaCancelarDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Cancelar Documento')]")->click(); - } - - public function navegarParaMoverDocumento() - { - sleep(2); - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[contains(@alt, 'Mover Documento para outro Processo')]")->click(); - } - - public function ehProcessoAnexado() - { - sleep(2); - - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//div[@id='divArvoreInformacao']/a[contains(@href, 'acao=procedimento_trabalhar')]"); - $this->test->byXPath("//img[contains(@alt, 'Desanexar Processo')]"); - return true; - } catch (\Exception $e) { - return false; - } - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function observacoesNaTabela($value = null) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byXPath("//table[@class='infraTable']//tr[2]/td[2]")->text(); - } - - public function dataElaboracao($value = null) - { - $input = $this->test->byId("txtDataElaboracao"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function nomeAnexo() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byXPath("//table[@id='tblAnexos']/tbody/tr/td[2]/div")->text(); - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - $options = $this->test->byId('selInteressadosProcedimento')->elements($this->test->using('css selector')->value('option')); - return array_map(function($opt) {return $opt->text(); - }, $options); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("optRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("optSigiloso")->click(); - } - } - - if($this->test->byId("optPublico")->selected()) { - return self::STA_NIVEL_ACESSO_PUBLICO; - } else if($this->test->byId("optRestrito")->selected()) { - return self::STA_NIVEL_ACESSO_RESTRITO; - } else if($this->test->byId("optSigiloso")->selected()) { - return self::STA_NIVEL_ACESSO_SIGILOSO; - } - - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function recuperarHipoteseLegal() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - return $select->selectedLabel(); - } - - public function salvarDocumento() - { - $this->test->byId("btnSalvar")->click(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaEditarProcesso.php b/tests_super/funcional/src/paginas/PaginaEditarProcesso.php deleted file mode 100755 index b8ea504ac..000000000 --- a/tests_super/funcional/src/paginas/PaginaEditarProcesso.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php - -use utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaEditarProcesso extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function protocoloInformado($value = null) - { - $input = $this->test->byId("txtProtocoloInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function dataGeracaoProtocolo($value = null) - { - $input = $this->test->byId("txtDtaGeracaoInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("optPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("optRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("optSigiloso")->click(); - } - } - - if($this->test->byId("optPublico")->selected()) { - return self::STA_NIVEL_ACESSO_PUBLICO; - } else if($this->test->byId("optRestrito")->selected()) { - return self::STA_NIVEL_ACESSO_RESTRITO; - } else if($this->test->byId("optSigiloso")->selected()) { - return self::STA_NIVEL_ACESSO_SIGILOSO; - } - - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - $options = $this->test->byId('selInteressadosProcedimento')->elements($this->test->using('css selector')->value('option')); - return array_map(function($opt) {return $opt->text(); - }, $options); - } - - public function salvarProcesso() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function recuperarHipoteseLegal() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - return $select->selectedLabel(); - } - - public function gerarProtocolo() - { - $strSequencia = str_pad(rand(1, 999999), 6, "0", STR_PAD_LEFT); - return '999990.' . $strSequencia . '/2015-00'; - } -} diff --git a/tests_super/funcional/src/paginas/PaginaEnviarProcesso.php b/tests_super/funcional/src/paginas/PaginaEnviarProcesso.php deleted file mode 100755 index 2221bc6fe..000000000 --- a/tests_super/funcional/src/paginas/PaginaEnviarProcesso.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php - -class PaginaEnviarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - $this->unidadeInput = $test->byId('txtUnidade'); - $this->manterAbertoCheck = $test->byId('chkSinManterAberto'); - $this->removerAnotacoesCheck = $test->byId('chkSinRemoverAnotacoes'); - $this->enviarNotificacaoCheck = $test->byId('chkSinEnviarEmailNotificacao'); - $this->dataCertaOption = $test->byId('optDataCerta'); - $this->prazoInput = $test->byId('txtPrazo'); - $this->diasOption = $test->byId('optDias'); - $this->diasInput = $test->byId('txtDias'); - $this->diasUteisInput = $test->byId('chkSinDiasUteis'); - $this->enviarButton = $test->byId('sbmEnviar'); - } - - public function adicionarUnidade($nomeUnidade) - { - $this->unidadeInput->value($nomeUnidade); - $this->test->waitUntil(function($testCase) { - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - $testCase->byLinkText($nomeUnidade)->click(); - return true; - }, 8000); - } - - public function salvar() - { - $this->enviarButton->click(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaEnvioParcialListar.php b/tests_super/funcional/src/paginas/PaginaEnvioParcialListar.php deleted file mode 100644 index 1abaae0fb..000000000 --- a/tests_super/funcional/src/paginas/PaginaEnvioParcialListar.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaEnvioParcialListar extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarEnvioParcialListar() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Mapeamento de Envio Parcial', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_envio_parcial_listar']")->click(); - } - -} diff --git a/tests_super/funcional/src/paginas/PaginaExportarTiposProcesso.php b/tests_super/funcional/src/paginas/PaginaExportarTiposProcesso.php deleted file mode 100644 index c48790dfc..000000000 --- a/tests_super/funcional/src/paginas/PaginaExportarTiposProcesso.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaExportarTiposProcesso extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarExportarTiposProcessos() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Exportao de Tipos de Processo', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_orgaos_exportar_tipos_processos']")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function selecionarParaExportar() - { - $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); - $this->test->byXPath("(//label[@for='chkInfraItem2'])[1]")->click(); - $this->test->byXPath("(//label[@for='chkInfraItem3'])[1]")->click(); - $this->test->byXPath("(//label[@for='chkInfraItem5'])[1]")->click(); - $this->test->byId("btnExportar")->click(); - } - - public function verificarExisteBotao($nomeBtn) - { - try { - return $this->test->byXPath("(//button[@id='".$nomeBtn."'])")->text(); - } catch (Exception $e) { - return null; - } - } - - public function verificarQuantidadeDeLinhasSelecionadas() - { - $this->test->waitUntil(function($testCase) { - $trs = $this->test->byId('tableExportar') - ->elements($this->test->using('css selector')->value('tr')); - $testCase->assertEquals(count($trs), 5); - return true; - }); - } - - public function btnExportar() - { - $this->test->byId("btnExportarModal")->click(); - sleep(5); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * - * @return void - */ - public function selecionarPesquisa() - { - $this->test->byId('txtNomeTipoProcessoPesquisa')->clear(); - $this->test->byId('txtNomeTipoProcessoPesquisa')->value('Ouvidoria'); - $this->test->byId("sbmPesquisar")->click(); - } - - /** - * Buscar se foi pesquisado - * - * @return void - */ - public function buscarPesquisa() - { - try { - $elementos = $this->test->byXPath("//td[contains(.,'Ouvidoria:')]")->text(); - return !empty($elementos) && !is_null($elementos); - } catch (Exception $e) { - return false; - } - } -} diff --git a/tests_super/funcional/src/paginas/PaginaIncluirDocumento.php b/tests_super/funcional/src/paginas/PaginaIncluirDocumento.php deleted file mode 100755 index d63ba98e4..000000000 --- a/tests_super/funcional/src/paginas/PaginaIncluirDocumento.php +++ /dev/null @@ -1,190 +0,0 @@ -<?php - -use utilphp\util; -use PHPUnit_Extensions_Selenium2TestCase_Keys as Keys; - -class PaginaIncluirDocumento extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 1; - const STA_NIVEL_ACESSO_RESTRITO = 2; - const STA_NIVEL_ACESSO_SIGILOSO = 3; - - const STA_FORMATO_NATO_DIGITAL = 1; - - public function __construct($test) - { - parent::__construct($test); - } - - public function selecionarTipoDocumento($tipoDocumento) - { - try{ - $this->test->byId('txtFiltro')->value($tipoDocumento); - sleep(2); - $this->test->byLinkText($tipoDocumento)->click(); - } - catch (Exception $e){ - $this->test->byXPath("//img[@id='imgExibirSeries'] | //a[@id='ancExibirSeries']")->click(); - $this->test->byId('txtFiltro')->value($tipoDocumento); - sleep(2); - $this->test->byLinkText($tipoDocumento)->click(); - } - } - - public function selecionarTipoDocumentoExterno() - { - $this->selecionarTipoDocumento('Externo'); - } - - public function descricao($value) - { - $input = $this->test->byId("txtDescricao"); - return $input->value($value); - } - - public function tipoDocumento($value) - { - $input = $this->test->byId("selSerie"); - $this->test->select($input)->selectOptionByLabel($value); - } - - public function formato($value) - { - if($value != self::STA_FORMATO_NATO_DIGITAL) { - throw new Exception("Outros formatos não implementados em PaginaIncluirDocumento"); - } - - $this->test->byId("divOptNato")->click(); - } - - public function anexo($arquivo) - { - $input = $this->test->byId("filArquivo"); - $input->value($arquivo); - $this->test->waitUntil(function($testCase) use($arquivo) { - $testCase->assertStringContainsString(basename($arquivo), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function dataElaboracao($value) - { - $input = $this->test->byId("txtDataElaboracao"); - return $input->value($value); - } - - public function observacoes($value) - { - $input = $this->test->byId("txaObservacoes"); - return $input->value($value); - } - - public function adicionarInteressado($nomeInteressado) - { - $input = $this->test->byId("txtInteressado"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - - sleep(2); - } - - public function salvarDocumento() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $input = $this->test->byId("lblPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $input = $this->test->byId("lblRestrito")->click(); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $input = $this->test->byId("lblSigiloso")->click(); - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - $select = $this->test->select($this->test->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function gerarDocumentoTeste(array $dadosDocumento = null) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Incluir Documento']")->click(); - sleep(2); - - $dadosDocumento = $dadosDocumento ?: array(); - $dadosDocumento["TIPO_DOCUMENTO"] = @$dadosDocumento["TIPO_DOCUMENTO"] ?: "Ofcio"; - $dadosDocumento["DESCRICAO"] = @$dadosDocumento["DESCRICAO"] ?: util::random_string(20); - $dadosDocumento["OBSERVACOES"] = @$dadosDocumento["OBSERVACOES"] ?: util::random_string(100); - $dadosDocumento["INTERESSADOS"] = @$dadosDocumento["INTERESSADOS"] ?: util::random_string(40); - $dadosDocumento["RESTRICAO"] = @$dadosDocumento["RESTRICAO"] ?: PaginaIncluirDocumento::STA_NIVEL_ACESSO_PUBLICO; - $dadosDocumento["HIPOTESE_LEGAL"] = @$dadosDocumento["HIPOTESE_LEGAL"] ?: ""; - - //$paginaIncluirDocumento = new PaginaIncluirDocumento($test); - $this->selecionarTipoDocumento($dadosDocumento["TIPO_DOCUMENTO"]); - $this->descricao($dadosDocumento["DESCRICAO"]); - $this->observacoes($dadosDocumento["OBSERVACOES"]); - $this->selecionarRestricao($dadosDocumento["RESTRICAO"], $dadosDocumento["HIPOTESE_LEGAL"]); - $this->salvarDocumento(); - - $url = parse_url($this->test->byId("ifrArvoreHtml")->attribute("src")); - parse_str($url['query'], $query); - $dadosDocumento["ID_DOCUMENTO"] = $query["id_documento"]; - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->window($this->test->windowHandles()[1]); - $this->test->closeWindow(); - $this->test->window(''); - - $this->test->frame(null); - $this->test->frame("ifrArvore"); - - return trim($this->test->byId('anchor' . $query["id_documento"])->text()); - } - - public function gerarDocumentoExternoTeste(array $dadosDocumento, $comAnexo) - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Incluir Documento']")->click(); - sleep(2); - - $dadosDocumento = $dadosDocumento ?: array(); - $dadosDocumento["TIPO_DOCUMENTO"] = @$dadosDocumento["TIPO_DOCUMENTO"] ?: "Ofcio"; - $dadosDocumento["DESCRICAO"] = @$dadosDocumento["DESCRICAO"] ?: util::random_string(20); - $dadosDocumento["DATA_ELABORACAO"] = @$dadosDocumento["DATA_ELABORACAO"] ?: date("d/m/Y"); - $dadosDocumento["FORMATO_DOCUMENTO"] = @$dadosDocumento["FORMATO_DOCUMENTO"] ?: self::STA_FORMATO_NATO_DIGITAL; - $dadosDocumento["OBSERVACOES"] = @$dadosDocumento["OBSERVACOES"] ?: util::random_string(100); - $dadosDocumento["INTERESSADOS"] = @$dadosDocumento["INTERESSADOS"] ?: util::random_string(40); - $dadosDocumento["RESTRICAO"] = @$dadosDocumento["RESTRICAO"] ?: PaginaIncluirDocumento::STA_NIVEL_ACESSO_PUBLICO; - $dadosDocumento["HIPOTESE_LEGAL"] = @$dadosDocumento["HIPOTESE_LEGAL"] ?: ""; - - $this->selecionarTipoDocumentoExterno(); - sleep(2); - $this->tipoDocumento($dadosDocumento["TIPO_DOCUMENTO"]); - sleep(2); - - $this->dataElaboracao($dadosDocumento["DATA_ELABORACAO"]); - $this->formato($dadosDocumento["FORMATO_DOCUMENTO"]); - if($comAnexo){ - $this->anexo($dadosDocumento["ARQUIVO"]); - } - $this->observacoes($dadosDocumento["OBSERVACOES"]); - $this->selecionarRestricao($dadosDocumento["RESTRICAO"], $dadosDocumento["HIPOTESE_LEGAL"]); - $this->salvarDocumento(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaIniciarProcesso.php b/tests_super/funcional/src/paginas/PaginaIniciarProcesso.php deleted file mode 100755 index 5292a4e95..000000000 --- a/tests_super/funcional/src/paginas/PaginaIniciarProcesso.php +++ /dev/null @@ -1,175 +0,0 @@ -<?php - -use utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - - -class PaginaIniciarProcesso extends PaginaTeste -{ - const STA_NIVEL_ACESSO_PUBLICO = 0; - const STA_NIVEL_ACESSO_RESTRITO = 1; - const STA_NIVEL_ACESSO_SIGILOSO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function selecionarTipoProcesso($tipoProcesso) - { - try{ - $this->test->byId('txtFiltro')->value($tipoProcesso); - sleep(2); - $this->test->byLinkText($tipoProcesso)->click(); - } - catch (Exception $e){ - $this->test->byId("ancExibirTiposProcedimento")->click(); - $this->test->byId('txtFiltro')->value($tipoProcesso); - sleep(2); - $this->test->byLinkText($tipoProcesso)->click(); - } - } - - public function descricao($value = null) - { - $input = $this->test->byId("txtDescricao"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function observacoes($value = null) - { - $input = $this->test->byId("txaObservacoes"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function selecionarProtocoloManual() - { - $this->test->byId("optProtocoloManual")->click(); - } - - public function protocoloInformado($value = null) - { - $input = $this->test->byId("txtProtocoloInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function dataGeracaoProtocolo($value = null) - { - $input = $this->test->byId("txtDtaGeracaoInformar"); - if(isset($value)) { $input->value($value); - } - return $input->value(); - } - - public function restricao($staNivelRestricao = null) - { - if(isset($staNivelRestricao)) - { - if($staNivelRestricao === self::STA_NIVEL_ACESSO_PUBLICO) { - $this->test->byId("lblPublico")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) { - $this->test->byId("lblRestrito")->click(); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) { - $this->test->byId("lblSigiloso")->click(); - } - } - - if($this->test->byId("lblPublico")->selected()) { - return self::STA_NIVEL_ACESSO_PUBLICO; - } else if($this->test->byId("lblRestrito")->selected()) { - return self::STA_NIVEL_ACESSO_RESTRITO; - } else if($this->test->byId("lblSigiloso")->selected()) { - return self::STA_NIVEL_ACESSO_SIGILOSO; - } - - } - - public function adicionarInteressado($arrayNomeInteressado) - { - $arrayNomeInteressado = array($arrayNomeInteressado); - - if(isset($arrayNomeInteressado)){ - foreach ($arrayNomeInteressado as $nomeInteressado) { - $input = $this->test->byId("txtInteressadoProcedimento"); - $input->value($nomeInteressado); - $this->test->keys(Keys::ENTER); - $this->test->acceptAlert(); - sleep(2); - } - } - } - - public function listarInteressados() - { - return $this->test->select($this->test->byId('selInteressadosProcedimento'))->selectedLabels(); - } - - public function salvarProcesso() - { - $this->test->byId("btnSalvar")->click(); - } - - public function selecionarRestricao($staNivelRestricao, $strHipoteseLegal = '', $strGrauSigilo = '') - { - if(isset($staNivelRestricao)) - { - $this->restricao($staNivelRestricao); - - if($staNivelRestricao === self::STA_NIVEL_ACESSO_RESTRITO) - { - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - } - else if($staNivelRestricao === self::STA_NIVEL_ACESSO_SIGILOSO) - { - $select = $this->test->select($this->test->byId('selHipoteseLegal')); - $select->selectOptionByLabel($strHipoteseLegal); - - $select = $this->test->select($this->test->byId('selGrauSigilo')); - $select->selectOptionByLabel($strGrauSigilo); - } - } - } - - public function gerarProtocolo() - { - $strSequencia = str_pad(rand(1, 999999), 6, "0", STR_PAD_LEFT); - return '999990.' . $strSequencia . '/2015-00'; - } - - public static function gerarProcessoTeste($test, array $dadosProcesso = null) - { - $test->byLinkText("Iniciar Processo")->click(); - - $dadosProcesso = $dadosProcesso ?: array(); - $dadosProcesso["TIPO_PROCESSO"] = @$dadosProcesso["TIPO_PROCESSO"] ?: "Licitao: Prego Eletrnico"; - $dadosProcesso["DESCRICAO"] = @$dadosProcesso["DESCRICAO"] ?: util::random_string(20); - $dadosProcesso["OBSERVACOES"] = @$dadosProcesso["OBSERVACOES"] ?: util::random_string(100); - $dadosProcesso["INTERESSADOS"] = @$dadosProcesso["INTERESSADOS"] ?: util::random_string(40); - $dadosProcesso["RESTRICAO"] = @$dadosProcesso["RESTRICAO"] ?: PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO; - $dadosProcesso["HIPOTESE_LEGAL"] = @$dadosProcesso["HIPOTESE_LEGAL"] ?: ""; - - $paginaIniciarProcesso = new PaginaIniciarProcesso($test); - $paginaIniciarProcesso->selecionarTipoProcesso($dadosProcesso["TIPO_PROCESSO"]); - $paginaIniciarProcesso->descricao($dadosProcesso["DESCRICAO"]); - $paginaIniciarProcesso->observacoes($dadosProcesso["OBSERVACOES"]); - $paginaIniciarProcesso->selecionarRestricao($dadosProcesso["RESTRICAO"], $dadosProcesso["HIPOTESE_LEGAL"]); - $paginaIniciarProcesso->adicionarInteressado($dadosProcesso["INTERESSADOS"]); - - $paginaIniciarProcesso->salvarProcesso(); - - $test->frame(null); - $test->frame("ifrArvore"); - $protocoloProcesso = trim($test->byXPath("//a[@title='". $dadosProcesso["TIPO_PROCESSO"] ."']")->text()); - - return $protocoloProcesso; - } -} diff --git a/tests_super/funcional/src/paginas/PaginaLogin.php b/tests_super/funcional/src/paginas/PaginaLogin.php deleted file mode 100755 index 8bc381e48..000000000 --- a/tests_super/funcional/src/paginas/PaginaLogin.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\WebDriverException; - -class PaginaLogin extends PaginaTeste -{ - public function __construct($test) - { - - parent::__construct($test); - $this->usuarioInput = $test->byId('txtUsuario'); - $this->passwordInput = $test->byId('pwdSenha'); - try{ - $this->loginButton = $test->byId('Acessar'); - } - //SEI 4.0.12 alterou para sbmAcessar - catch (WebDriverException $wde){ - $this->loginButton = $test->byId('sbmAcessar'); - } - } - - public function usuario($value) - { - if(isset($value)) { - $this->usuarioInput->value($value); - } - - return $this->usuarioInput->value(); - } - - public function senha($value) - { - if(isset($value)) { - $this->passwordInput->value($value); - } - - return $this->passwordInput->value(); - } - - public function orgao() - { - return $this->test->byId('divInfraBarraSuperior')->text(); - } - - public function submit() - { - $this->loginButton->click(); - return $this->test; - } - - public static function executarAutenticacao($test, $usuario = "teste", $senha = "teste") - { - $paginaLogin = new PaginaLogin($test); - $paginaLogin->usuario($usuario); - $paginaLogin->senha($senha); - $paginaLogin->submit(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaMapUnidades.php b/tests_super/funcional/src/paginas/PaginaMapUnidades.php deleted file mode 100644 index 283060074..000000000 --- a/tests_super/funcional/src/paginas/PaginaMapUnidades.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaMapUnidades extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarPenMapeamentoUnidades() - { - $this->test->byId("txtInfraPesquisarMenu")->value('Listar'); - $this->test->byXPath("//a[@link='pen_map_unidade_listar']")->click(); - } - - /** - * Lispar campo de pesquisa - * Colocar texto para pesquisa - * Clicar no bot?o pesquisar - * - * @param string $textoPesquisa - * @return void - */ - public function pesquisarUnidade($textoPesquisa) - { - $this->test->byId('txtSiglaUnidade')->clear(); - $this->test->byId('txtSiglaUnidade')->value($textoPesquisa); - $this->test->byId("btnPesquisar")->click(); - } - - /** - * Seleciona boto editar da primeira linha de tabela - * - * @return void - */ - public function selecionarEditar() - { - $this->test->byXPath("(//img[@title='Alterar Mapeamento'])[1]")->click(); - } - - public function selecionarRepoEstruturas($textoEstruturas) - { - $this->repoEstruturaInput = $this->test->byId('txtRepoEstruturas'); - $this->repoEstruturaInput->clear(); - $this->repoEstruturaInput->value($textoEstruturas); - $this->test->keys(Keys::ENTER); - $sucesso = $this->test->waitUntil(function($testCase) { - $bolExisteAlerta=null; - $nomeEstrutura = $testCase->byId('txtRepoEstruturas')->value(); - - try{ - $bolExisteAlerta = $this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){} - $testCase->byPartialLinkText($nomeEstrutura)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->test->assertTrue($sucesso); - } - - public function selecionarUnidade($textoUnidade) - { - $this->repoUnidadeInput = $this->test->byId('txtUnidade'); - $this->repoUnidadeInput->clear(); - $this->repoUnidadeInput->value($textoUnidade); - $this->test->keys(Keys::ENTER); - $sucesso = $this->test->waitUntil(function($testCase) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - - try{ - $bolExisteAlerta = $this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){} - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->test->assertTrue($sucesso); - } - - /** - * Selcionar boto salvar da pgina - * - * @return void - */ - public function salvar() - { - $this->test->byId("btnSalvar")->click(); - } - - public function limparRestricoes() - { - $options = $this->test->byId('selRepoEstruturas') - ->elements($this->test->using('css selector')->value('option')); - if (count($options)) { - $this->test->byXPath("//img[@title='Remover Estruturas Selecionadas']")->click(); - } - } - - /** - * Buscar mensagem de alerta da pgina - * - * @return string - */ - public function buscarMensagemAlerta() - { - $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); - return !empty($alerta->text()) ? $alerta->text() : ""; - } - - public function validarRepositorio($siglaRepositorio) - { - $repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - $options = $repositorioSelect - ->elements($this->test->using('css selector')->value('option')); - - $contador = 0; - foreach ($options as $option) { - $value = trim($option->value()); - if (empty($value) || is_null($value) || $value == "null") { - continue; - } - - $contador++; - } - - if(isset($siglaRepositorio)){ - $repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - $this->test->assertEquals(1, $contador); - - return $this->test->byId('selRepositorioEstruturas')->value(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaMapeamentoUnidade.php b/tests_super/funcional/src/paginas/PaginaMapeamentoUnidade.php deleted file mode 100644 index 2375329bf..000000000 --- a/tests_super/funcional/src/paginas/PaginaMapeamentoUnidade.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php - -class PaginaMapeamentoUnidade extends PaginaTeste -{ - - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarMapeamentoUnidade() { - $this->test->byId("txtInfraPesquisarMenu")->value("Mapeamento de Unidades"); - - $this->test->byLinkText("Mapeamento de Unidades")->click(); - $this->test->byXPath("//a[@link='pen_map_unidade_listar']")->click(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/src/paginas/PaginaMoverDocumento.php b/tests_super/funcional/src/paginas/PaginaMoverDocumento.php deleted file mode 100755 index 2c6b959ff..000000000 --- a/tests_super/funcional/src/paginas/PaginaMoverDocumento.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaMoverDocumento extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function moverDocumentoParaProcesso($protocoloDestino, $motivoMovimentacao) - { - $this->processoDestino($protocoloDestino); - $this->motivoMovimentacao($motivoMovimentacao); - $this->mover(); - } - - private function processoDestino($value) - { - $input = $this->test->byId("txtProcedimentoDestino"); - if(isset($value)) { - $input->value($value); - sleep(2); - $this->test->keys(Keys::ENTER); - } - - sleep(2); - return $input->value(); - } - - private function motivoMovimentacao($value) - { - $input = $this->test->byId("txaMotivo"); - if(isset($value)) { - $input->value($value); - } - - return $input->value(); - } - - private function mover() - { - $this->test->byId("sbmMover")->click(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaPenHipoteseLegalListar.php b/tests_super/funcional/src/paginas/PaginaPenHipoteseLegalListar.php deleted file mode 100644 index 2d62e6424..000000000 --- a/tests_super/funcional/src/paginas/PaginaPenHipoteseLegalListar.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -/** - * Pagina de listagem de hiptese legal - */ -class PaginaPenHipoteseLegalListar extends PaginaTeste -{ - /** - * Mtodo contrutor - * - * @return void - */ - public function __construct($test) - { - parent::__construct($test); - } - - /** - * Navegar para a pgina de listagem de hiptese legal - * - * @return void - */ - public function navegarMapeamentoHipoteseLegalListar() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Listar', 'UTF-8', 'ISO-8859-1')); - $this->test->byXPath("//a[@link='pen_map_hipotese_legal_envio_listar']")->click(); - } - - /** - * Verificar se a tabela de hiptese legal exibida - * - * @return bool - */ - public function existeTabela() - { - try { - $trTh = $this->test->byXPath('//*[@id="divInfraAreaTabela"]/table/tbody/tr[1]/th[2]')->text(); - return !empty($trTh) && !is_null($trTh) && count($trTh) >= 1; - } catch (Exception $ex) { - return false; - } - } -} diff --git a/tests_super/funcional/src/paginas/PaginaProcesso.php b/tests_super/funcional/src/paginas/PaginaProcesso.php deleted file mode 100755 index c504a5d1d..000000000 --- a/tests_super/funcional/src/paginas/PaginaProcesso.php +++ /dev/null @@ -1,279 +0,0 @@ -<?php - -class PaginaProcesso extends PaginaTeste -{ - const STA_STATUS_PROCESSO_ABERTO = 1; - const STA_STATUS_PROCESSO_CONCLUIDO = 2; - - public function __construct($test) - { - parent::__construct($test); - } - - public function concluirProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $concluirProcessoButton = $this->test->byXPath("//img[@alt='Concluir Processo']"); - $concluirProcessoButton->click(); - } - - public function incluirDocumento() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - //a[1]/img - $incluirDocumentoButton = $this->test->byXPath("a[1]/img[@alt='Incluir Documento']"); - $incluirDocumentoButton->click(); - } - - public function enviarProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Enviar Processo']")->click(); - } - - public function cancelarTramitacaoExterna() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath(mb_convert_encoding("//img[@alt='Cancelar Tramitao Externa']", 'UTF-8', 'ISO-8859-1'))->click(); - } - - public function navegarParaEditarProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Consultar/Alterar Processo']"); - $this->editarProcessoButton->click(); - } - - public function navegarParaOrdenarDocumentos() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $button = $this->test->byXPath(mb_convert_encoding("//img[@alt='Ordenar rvore do Processo']", 'UTF-8', 'ISO-8859-1')); - $button->click(); - } - - public function trocarOrdenacaoDocumentos() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - - $this->test->byXPath("//*[@id='selRelProtocoloProtocolo']/option[1]")->click(); - sleep(1); - $this->test->byXPath("//*[@id='imgRelProtocoloProtocoloAbaixo']")->click(); - sleep(1); - $this->test->byXPath("//*[@id='divInfraBarraComandosSuperior']/button[@value='Salvar']")->click(); - } - - - public function navegarParaTramitarProcesso() - { - $this->test->waitUntil(function($testCase) { - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Envio Externo de Processo']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString('Envio Externo de Processo', $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - - - public function navegarParaConsultarAndamentos() - { - $this->test->waitUntil(function($testCase) { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $testCase->byLinkText('Consultar Andamento')->click(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - sleep(2); - $testCase->assertStringContainsString(mb_convert_encoding('Histrico do Processo', 'UTF-8', 'ISO-8859-1'), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaConsultarRecibos() - { - $this->test->waitUntil(function($testCase) { - // Selecionar processo na árvore - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Consultar Recibos']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString('Consultar Recibos', $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaAnexarProcesso() - { - $this->test->waitUntil(function($testCase) { - $this->selecionarProcesso(); - - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Anexar Processo']"); - $this->editarProcessoButton->click(); - sleep(2); - $testCase->assertStringContainsString(mb_convert_encoding('Anexao de Processos', 'UTF-8', 'ISO-8859-1'), $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function navegarParaTramitarProcessoInterno() - { - $this->enviarProcesso(); - } - - public function informacao() - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - return $this->test->byId('divArvoreInformacao')->text(); - } - - public function processoAberto() - { - try - { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $this->test->byXPath("//img[@alt='Reabrir Processo']"); - return false; - } - catch(Exception $e) - { - return true; - } - } - - public function processoBloqueado() - { - try - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byXPath("//img[@title='Processo Bloqueado']"); - return true; - } - catch(Exception $e) - { - return false; - } - } - - public function deveSerDocumentoAnexo($bolDevePossuir, $nomeDocumentoArvore) - { - try - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - if($bolDevePossuir){ - $idAnexo=$this->test->byXPath("//span[contains(text(),'" . $nomeDocumentoArvore . "')]")->attribute('id'); - $idAnexo=str_replace("span", "", $idAnexo); - $this->test->byXPath("//img[contains(@id,'iconMD_PEN_DOC_REF" . $idAnexo . "')]"); - } - return true; - } - catch(Exception $e) - { - return false; - } - } - - public function ehDocumentoCancelado($nomeDocumentoArvore) - { - try - { - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeDocumentoArvore)->byXPath(".//preceding-sibling::a[1]/img[contains(@src,'svg/documento_cancelado.svg?')]"); - return true; - } - catch(Exception $e) - { - return false; - }finally{ - $this->test->timeouts()->implicitWait($to); - } - } - - public function ehDocumentoMovido($nomeDocumentoArvore) - { - try - { - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeDocumentoArvore)->byXPath(".//preceding-sibling::a[1]/img[contains(@src,'svg/documento_movido.svg?')]"); - return true; - } - catch(Exception $e) - { - return false; - }finally{ - $this->test->timeouts()->implicitWait($to); - } - } - - private function selecionarItemArvore($nomeArvore) - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $this->test->byLinkText($nomeArvore)->click(); - } - - public function selecionarDocumento($nomeDocumentoArvore) - { - $this->selecionarItemArvore($nomeDocumentoArvore); - } - - public function selecionarProcesso() - { - $this->selecionarItemArvore($this->listarArvoreProcesso()[0]); - sleep(1); - } - - public function listarDocumentos() - { - $itens = $this->listarArvoreProcesso(); - return (count($itens) > 1) ? array_slice($itens, 1) : null; - } - - private function listarArvoreProcesso() - { - $this->test->frame(null); - $this->test->frame("ifrArvore"); - $itens = $this->test->elements($this->test->using('css selector')->value('div.infraArvore > a > span[id]')); - return array_map(function($item) {return $item->text(); - }, $itens); - } - - public function validarBotaoExiste($botao) - { - try { - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - $botao = $this->test->byXPath("//img[@alt='$botao']"); - return true; - } catch (\Exception $e) { - return false; - } - } -} diff --git a/tests_super/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php b/tests_super/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php deleted file mode 100755 index fe588cf97..000000000 --- a/tests_super/funcional/src/paginas/PaginaProcessosTramitadosExternamente.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - -class PaginaProcessosTramitadosExternamente extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemProcesso($numeroProcesso) - { - return strpos($this->test->byCssSelector('body')->text(), $numeroProcesso) !== false; - } -} \ No newline at end of file diff --git a/tests_super/funcional/src/paginas/PaginaReciboTramite.php b/tests_super/funcional/src/paginas/PaginaReciboTramite.php deleted file mode 100755 index 1f1e8f199..000000000 --- a/tests_super/funcional/src/paginas/PaginaReciboTramite.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -class PaginaReciboTramite extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function contemTramite($mensagemTramite, $verificaReciboEnvio = false, $verificaReciboConclusao = false) - { - $result = false; - $this->test->frame(null); - $this->test->frame("ifrVisualizacao"); - - //Localiza colunas com dados da tramitao - $linhasResumoTramite = $this->test->elements($this->test->using('css selector')->value('div.infraAreaTabela > table tr')); - if(count($linhasResumoTramite) > 0) { - foreach ($linhasResumoTramite as $linha) { - $colunas = $linha->elements($this->test->using('css selector')->value('td')); - - if(count($colunas) == 2){ - //Verifica se trmite informado foi localizado no histrico - $result = strpos($colunas[0]->text(), $mensagemTramite) !== false; - - //Verifica se recibo de envio do processo foi localizado - if($result && $verificaReciboEnvio) { - try{ - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $colunas[1]->element($this->test->using('css selector')->value(mb_convert_encoding('a > img[title=\'Recibo de Confirmao de Envio\']', 'UTF-8', 'ISO-8859-1'))); - } - catch(Exception $e){ $result = false; } - finally{ $this->test->timeouts()->implicitWait($to); } - } - - //Verifica se recibo de concluso do trmite processo foi localizado - if($result && $verificaReciboConclusao) { - try{ - $to = $this->test->timeouts()->getLastImplicitWaitValue(); - $this->test->timeouts()->implicitWait(300); - $colunas[1]->element($this->test->using('css selector')->value(mb_convert_encoding('a > img[title=\'Recibo de Concluso de Trmite\']', 'UTF-8', 'ISO-8859-1'))); - } - catch(Exception $e){ $result = false; } - finally{ $this->test->timeouts()->implicitWait($to); } - } - - if($result) { - break; - } - } - - } - } - - return $result; - } -} diff --git a/tests_super/funcional/src/paginas/PaginaTeste.php b/tests_super/funcional/src/paginas/PaginaTeste.php deleted file mode 100755 index 95b84a681..000000000 --- a/tests_super/funcional/src/paginas/PaginaTeste.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTeste -{ - public function __construct($test) - { - $this->test = $test; - $this->test->timeouts()->implicitWait(10000); - } - - public function titulo() - { - return $this->test->title(); - } - - public function alertTextAndClose($confirm = true) - { - sleep(2); - $result = $this->test->alertText(); - $result = (!is_array($result) ? $result : null); - - if(isset($confirm) && $confirm) { - $this->test->acceptAlert(); - } else { - $this->dismissAlert(); - } - - #var_dump($result); - return $result; - } - - public function unidadeContexto($unidadeContexto) - { - $this->test->frame(null); - $this->test->byXPath("(//a[@id='lnkInfraUnidade'])[2]")->click(); - $this->test->byXPath("//td[contains(.,'" . $unidadeContexto . "')]")->click(); - - } - - public function navegarParaControleProcesso() - { - $this->test->frame(null); - $this->test->byXPath("//img[@title='Controle de Processos']")->click(); - - } - - public function sairSistema() - { - $this->test->frame(null); - $this->test->byXPath("//a[@id='lnkInfraSairSistema'] | //a[@id='lnkSairSistema']")->click(); - } - - public static function selecionarUnidadeContexto($test, $unidadeContexto) - { - $paginaTeste = new PaginaTeste($test); - $paginaTeste->unidadeContexto($unidadeContexto); - } - - public function pesquisar($termoPesquisa) - { - $this->test->frame(null); - $this->test->byId("txtPesquisaRapida")->value($termoPesquisa); - $this->test->keys(Keys::ENTER); - } - - public function refresh() - { - $this->test->refresh(); - } -} diff --git a/tests_super/funcional/src/paginas/PaginaTipoProcessoReativar.php b/tests_super/funcional/src/paginas/PaginaTipoProcessoReativar.php deleted file mode 100644 index 9adb84c1a..000000000 --- a/tests_super/funcional/src/paginas/PaginaTipoProcessoReativar.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTipoProcessoReativar extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - } - - public function navegarTipoProcessoReativar() - { - $this->test->byId("txtInfraPesquisarMenu")->value("Reativar Mapeamento de Tipos de Processo"); - - $this->test->byXPath("//a[@link='pen_map_tipo_processo_reativar']")->click(); - } - - public function reativarMapeamento() - { - $this->test->byXPath("//a[contains(@class, 'reativar')]")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - public function reativarMapeamentoCheckbox() - { - $this->test->byXPath("(//div[contains(@class, 'infraCheckboxDiv')])[1]")->click(); - $this->test->byXPath("(//div[contains(@class, 'infraCheckboxDiv')])[2]")->click(); - $this->test->byId("btnReativar")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } -} diff --git a/tests_super/funcional/src/paginas/PaginaTramitarProcesso.php b/tests_super/funcional/src/paginas/PaginaTramitarProcesso.php deleted file mode 100755 index ecf3e19f6..000000000 --- a/tests_super/funcional/src/paginas/PaginaTramitarProcesso.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramitarProcesso extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - - } - - public function repositorio($siglaRepositorio) - { - $this->repositorioSelect = $this->test->select($this->test->byId('selRepositorioEstruturas')); - - if(isset($siglaRepositorio)){ - $this->repositorioSelect->selectOptionByLabel($siglaRepositorio); - } - - return $this->test->byId('selRepositorioEstruturas')->value(); - } - - public function unidade($nomeUnidade, $hierarquia = null) - { - $this->unidadeInput =$this->test->byId('txtUnidade'); - $this->unidadeInput->value($nomeUnidade); - $this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($hierarquia) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - if(!empty($hierarquia)){ - $nomeUnidade .= ' - ' . $hierarquia; - } - - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - return $this->unidadeInput->value(); - } - - public function urgente($urgente) - { - $this->urgenteCheck = $this->test->byId('chkSinUrgente'); - if(isset($urgente) && ((!$urgente && $this->urgenteCheck->selected()) || ($urgente && !$this->urgenteCheck->selected()))) { - $this->urgenteCheck->click(); - } - - return $this->urgenteCheck->selected(); - } - - public function tramitar() - { - $tramitarButton = $this->test->byXPath("//button[@value='Enviar']"); - $tramitarButton->click(); - } - - public function fecharBarraProgresso() - { - $btnFechar = $this->test->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } - - public function unidadeInterna($nomeUnidade) - { - $this->unidadeInput =$this->test->byId('txtUnidade'); - $this->unidadeInput->value($nomeUnidade); - //$this->test->keys(Keys::ENTER); - $this->test->waitUntil(function($testCase) use($nomeUnidade) { - $bolExisteAlerta=null; - $nomeUnidade = $testCase->byId('txtUnidade')->value(); - sleep(1); - try{ - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - }catch(Exception $e){ - } - $testCase->byPartialLinkText($nomeUnidade)->click(); - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(1); - return $this->unidadeInput->value(); - } - - public function manterAbertoNaUnidadeAtual() - { - $manterAbertoCheckBox = $this->test->byXPath("//label[@id='lblSinManterAberto']"); - $manterAbertoCheckBox->click(); - } - - public function tramitarInterno() - { - $tramitarButton = $this->test->byXPath("//button[@value='Enviar']"); - $tramitarButton->click(); - } - - public function alertTextAndClose($confirm = true) - { - sleep(2); - $result = $this->test->alertText(); - $result = (!is_array($result) ? $result : null); - - if(isset($confirm) && $confirm) { - $this->test->acceptAlert(); - } else { - $this->dismissAlert(); - } - return $result; - } -} diff --git a/tests_super/funcional/src/paginas/PaginaTramitarProcessoEmLote.php b/tests_super/funcional/src/paginas/PaginaTramitarProcessoEmLote.php deleted file mode 100755 index 3f2124e8c..000000000 --- a/tests_super/funcional/src/paginas/PaginaTramitarProcessoEmLote.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramitarProcessoEmLote extends PaginaTeste -{ - const STA_ANDAMENTO_PROCESSAMENTO = "Em Processamento"; - const STA_ANDAMENTO_CANCELADO = "Cancelado"; - const STA_ANDAMENTO_CONCLUIDO = "Concludo"; - - public function __construct($test) - { - parent::__construct($test); - - } - - public function selecionarProcessos($numProtocolo = null) - { - - if(is_null($numProtocolo)){ - try{ - $chkGerados = $this->test->byXPath("//*[@id='imgGeradosCheck']"); - $chkGerados->click(); - } catch(Exception $e){} - - try{ - $chkRecebidos = $this->test->byXPath("//*[@id='imgRecebidosCheck']"); - $chkRecebidos->click(); - } catch(Exception $e){} - }else{ - $chkProtocolo = $this->test->byXPath('//tr[contains(.,"'.$numProtocolo.'")]/td/div/label'); - $chkProtocolo->click(); - } - - } - - public function navegarControleProcessos() - { - $this->editarProcessoButton = $this->test->byXPath("//img[@alt='Envio Externo de Processo em Lote']"); - $this->editarProcessoButton->click(); - } - - public function informacaoLote() - { - return $this->test->byId('divInfraAreaTelaD')->text(); - } - - public function navegarProcessoEmLote($selAndamento, $numProtocolo = null) - { - if(!is_null($selAndamento)){ - $select = $this->test->select($this->test->byId('selAndamento')); - $select->selectOptionByLabel($selAndamento); - } - - if(!is_null($numProtocolo)){ - $this->protocoloInput=$this->test->byId('txtProcedimentoFormatado'); - $this->protocoloInput->value($numProtocolo); - } - - $this->presquisarProcessoButton = $this->test->byXPath("//*[@id='sbmPesquisar']"); - $this->presquisarProcessoButton->click(); - - } -} diff --git a/tests_super/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php b/tests_super/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php deleted file mode 100644 index 4666cf75c..000000000 --- a/tests_super/funcional/src/paginas/PaginaTramiteMapeamentoOrgaoExterno.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php - -use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys; - -class PaginaTramiteMapeamentoOrgaoExterno extends PaginaTeste -{ - public function __construct($test) - { - parent::__construct($test); - - } - - public function navegarRelacionamentoEntreOrgaos() - { - $this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Relacionamento entre Unidades', 'UTF-8', 'ISO-8859-1')); - - $this->test->byLinkText(mb_convert_encoding('Relacionamento entre Unidades', 'UTF-8', 'ISO-8859-1'))->click(); - $this->test->byXPath("//a[@link='pen_map_orgaos_externos_listar']")->click(); - } - - public function reativarMapeamento() { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Inativo"); - $this->test->byXPath("//a[contains(@class, 'reativar')]")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - public function reativarMapeamentoCheckbox() { - $this->test->byXPath("//div[contains(@class, 'infraCheckboxDiv')]")->click(); - $this->test->byId("btnReativar")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - - public function desativarMapeamento() { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel("Ativo"); - $this->test->byXPath("//a[contains(@class, 'desativar')]")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - public function desativarMapeamentoCheckbox() { - $this->test->byXPath("//div[contains(@class, 'infraCheckboxDiv')]")->click(); - $this->test->byId("btnDesativar")->click(); - $bolExisteAlerta=$this->alertTextAndClose(); - if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); - } - } - - - public function selectEstado($estado) { - $this->test->select($this->test->byId('txtEstadoSelect'))->selectOptionByLabel($estado); - } -} diff --git a/tests_super/funcional/src/utils/DatabaseUtils.php b/tests_super/funcional/src/utils/DatabaseUtils.php deleted file mode 100755 index a5df11180..000000000 --- a/tests_super/funcional/src/utils/DatabaseUtils.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php - -class DatabaseUtils -{ - private $connection; - - public function __construct($nomeContexto) - { - $dns = getenv($nomeContexto . '_DB_SEI_DSN'); - $user = getenv("SEI_DATABASE_USER"); - $password = getenv("SEI_DATABASE_PASSWORD"); - $this->connection = new PDO($dns, $user, $password); - } - - - public function execute($sql, $params){ - $statement = $this->connection->prepare($sql); - $result = $statement->execute($params); - return $result; - } - - - public function query($sql, $params){ - $statement = $this->connection->prepare($sql); - $statement->execute($params); - return $statement->fetchAll(); - } - - - public function getBdType(){ - return $this->connection->getAttribute(PDO::ATTR_DRIVER_NAME); - } -} diff --git a/tests_super/funcional/src/utils/ParameterUtils.php b/tests_super/funcional/src/utils/ParameterUtils.php deleted file mode 100755 index 6366c7e0b..000000000 --- a/tests_super/funcional/src/utils/ParameterUtils.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -require_once dirname(__FILE__)."/DatabaseUtils.php"; - -class ParameterUtils{ - - const SEI_HABILITAR_NUMERO_PROCESSO_INFORMADO = "SEI_HABILITAR_NUMERO_PROCESSO_INFORMADO"; - const PARAM_NUMERO_INFORMADO_DESABILITADO = 0; - const PARAM_NUMERO_INFORMADO_PROTOCOLO = 1; - const PARAM_NUMERO_INFORMADO_UNIDADES = 2; - - private $databaseUtils; - - public function __construct($nomeContexto) - { - $this->databaseUtils = new DatabaseUtils($nomeContexto); - } - - public function getParameter($parameter){ - $result = null; - $query = "SELECT valor FROM md_pen_parametro WHERE nome = ?"; - $values = $this->databaseUtils->query($query, array($parameter)); - - if(isset($values)){ - $result = $values[0]["valor"]; - } - - return $result; - } - - public function setParameter($parameter, $value){ - $query = "UPDATE md_pen_parametro SET valor = ? WHERE nome = ?"; - return $this->databaseUtils->execute($query, array($value, $parameter)); - } -} diff --git a/tests_super/funcional/tests/CenarioBaseTestCase.php b/tests_super/funcional/tests/CenarioBaseTestCase.php deleted file mode 100755 index 6da11d142..000000000 --- a/tests_super/funcional/tests/CenarioBaseTestCase.php +++ /dev/null @@ -1,787 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase; - -use function PHPSTORM_META\map; - -/** - * Classe base contendo rotinas comuns utilizadas nos casos de teste do mdulo - */ -class CenarioBaseTestCase extends Selenium2TestCase -{ - const PASTA_ARQUIVOS_TESTE = "/tmp"; - - //Referncia para unidades que sero consideradas no fluxo de trmite (Remetente -> Destinatrio) - protected static $urlSistemaRemetente = null; - protected static $siglaOrgaoRemetente = null; - protected static $siglaUnidadeRemetente = null; - protected static $nomeUnidadeRemetente = null; - - protected static $urlSistemaDestinatario = null; - protected static $siglaOrgaoDestinatario = null; - protected static $siglaUnidadeDestinatario = null; - protected static $nomeUnidadeDestinatario = null; - - //Referncias para as pginas do SEI utilizadas nos cenarios de teste - protected $paginaBase = null; - protected $paginaProcesso = null; - protected $paginaTramitar = null; - protected $paginaDocumento = null; - protected $paginaReciboTramite = null; - protected $paginaEditarProcesso = null; - protected $paginaControleProcesso = null; - protected $paginaConsultarAndamentos = null; - protected $paginaAssinaturaDocumento = null; - protected $paginaIncluirDocumento = null; - protected $paginaProcessosTramitadosExternamente = null; - protected $paginaAnexarProcesso = null; - protected $paginaCancelarDocumento = null; - protected $paginaTramitarProcessoEmLote = null; - protected $paginaMapeamentoUnidade = null; - protected $paginaCadastroMapEnvioCompDigitais = null; - protected $paginaMoverDocumento = null; - protected $paginaTramiteMapeamentoOrgaoExterno = null; - protected $paginaExportarTiposProcesso = null; - protected $paginaTipoProcessoReativar = null; - protected $paginaCadastroOrgaoExterno = null; - protected $paginaConfiguracaoModuloRenomeado = null; - protected $paginaCadastrarProcessoEmBloco = null; - protected $paginaTramiteEmBloco = null; - protected $paginaEnvioParcialListar = null; - protected $paginaPenHipoteseLegalListar = null; - protected $paginaMapUnidades = null; - - public function setUpPage(): void - { - $this->paginaBase = new PaginaTeste($this); - $this->paginaDocumento = new PaginaDocumento($this); - $this->paginaAssinaturaDocumento = new PaginaAssinaturaDocumento($this); - $this->paginaProcesso = new PaginaProcesso($this); - $this->paginaTramitar = new PaginaTramitarProcesso($this); - $this->paginaReciboTramite = new PaginaReciboTramite($this); - $this->paginaConsultarAndamentos = new PaginaConsultarAndamentos($this); - $this->paginaProcessosTramitadosExternamente = new PaginaProcessosTramitadosExternamente($this); - $this->paginaControleProcesso = new PaginaControleProcesso($this); - $this->paginaIncluirDocumento = new PaginaIncluirDocumento($this); - $this->paginaEditarProcesso = new PaginaEditarProcesso($this); - $this->paginaAnexarProcesso = new PaginaAnexarProcesso($this); - $this->paginaCancelarDocumento = new PaginaCancelarDocumento($this); - $this->paginaMoverDocumento = new PaginaMoverDocumento($this); - $this->paginaTramitarProcessoEmLote = new PaginaTramitarProcessoEmLote($this); - $this->paginaMapeamentoUnidade = new PaginaMapeamentoUnidade($this); - $this->paginaCadastroMapEnvioCompDigitais = new PaginaCadastroMapEnvioCompDigitais($this); - $this->paginaTramiteMapeamentoOrgaoExterno = new PaginaTramiteMapeamentoOrgaoExterno($this); - $this->paginaExportarTiposProcesso = new PaginaExportarTiposProcesso($this); - $this->paginaTipoProcessoReativar = new PaginaTipoProcessoReativar($this); - $this->paginaCadastroOrgaoExterno = new PaginaCadastroOrgaoExterno($this); - $this->paginaConfiguracaoModuloRenomeado = new PaginaConfiguracaoModulo($this); - $this->paginaCadastrarProcessoEmBloco = new PaginaCadastrarProcessoEmBloco($this); - $this->paginaTramiteEmBloco = new PaginaTramiteEmBloco($this); - $this->paginaEnvioParcialListar = new PaginaEnvioParcialListar($this); - $this->paginaPenHipoteseLegalListar = new PaginaPenHipoteseLegalListar($this); - $this->paginaMapUnidades = new PaginaMapUnidades($this); - $this->currentWindow()->maximize(); - } - - public static function setUpBeforeClass(): void - { - //TODO: Migrar todo o cdigo abaixo para uma classe utilitria de configurao dos testes - /***************** CONFIGURAO PRELIMINAR DO RGO 1 *****************/ - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ID_REPOSITORIO_ORIGEM', CONTEXTO_ORGAO_A_ID_REP_ESTRUTURAS); - $parametrosOrgaoA->setParameter('PEN_TIPO_PROCESSO_EXTERNO', '100000256'); - $parametrosOrgaoA->setParameter('HIPOTESE_LEGAL_PADRAO', '1'); // Controle Interno - $parametrosOrgaoA->setParameter('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '110000003'); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update unidade set sin_envio_processo=? where sigla=?", array('S', 'TESTE_1_2')); - - // Configurao do mapeamento de unidades - putenv("DATABASE_HOST=org1-database"); - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $penMapUnidadesFixture->carregar([ - 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA, - 'Sigla' => CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA, - 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE, - ]); - - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); - // Configurao do prefxo de processos - $bancoOrgaoA->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_A_NUMERO_SEI, CONTEXTO_ORGAO_A_SIGLA_ORGAO)); - $bancoOrgaoA->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_A_SIGLA_UNIDADE)); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); - $bancoOrgaoA->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); - - // Remoo de mapeamento de espcie no mapeada na origem - $nomeSerieNaoMapeada = mb_convert_encoding(CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO, 'UTF-8', 'ISO-8859-1'); - $serieNaoMapeadaOrigem = $bancoOrgaoA->query('select ID_SERIE from serie where nome = ?', array($nomeSerieNaoMapeada)); - $serieNaoMapeadaOrigem[0] = array_change_key_case($serieNaoMapeadaOrigem[0], CASE_UPPER); - - $bancoOrgaoA->execute("delete from md_pen_rel_doc_map_enviado where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(1, 3, 3, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(2, 4, 4, 'E', 'S')); - $bancoOrgaoA->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?)", array(3, 3, 3, 'R', 'S')); - - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - // Habilitao da extenso docx - $bancoOrgaoA->execute("update arquivo_extensao set sin_ativo=? where extensao=?", array('S', 'docx')); - - /***************** CONFIGURAO PRELIMINAR DO RGO 2 *****************/ - $parametrosOrgaoB = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoB->setParameter('PEN_ID_REPOSITORIO_ORIGEM', CONTEXTO_ORGAO_B_ID_REP_ESTRUTURAS); - $parametrosOrgaoB->setParameter('PEN_TIPO_PROCESSO_EXTERNO', '100000256'); - $parametrosOrgaoB->setParameter('HIPOTESE_LEGAL_PADRAO', '1'); // Controle Interno - $parametrosOrgaoB->setParameter('PEN_UNIDADE_GERADORA_DOCUMENTO_RECEBIDO', '110000003'); - - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update unidade set sin_envio_processo=? where sigla=?", array('S', 'TESTE_1_2')); - - putenv("DATABASE_HOST=org2-database"); - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $penMapUnidadesFixture->carregar([ - 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA, - 'Sigla' => CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA, - 'Nome' => CONTEXTO_ORGAO_B_NOME_UNIDADE, - ]); - putenv("DATABASE_HOST=org1-database"); - - $bancoOrgaoB->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values ('110000002', ?)", array(CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA)); - - $bancoOrgaoB->execute("update orgao set codigo_sei=? where sigla=?", array(CONTEXTO_ORGAO_B_NUMERO_SEI, CONTEXTO_ORGAO_B_SIGLA_ORGAO)); - $bancoOrgaoB->execute("update unidade set sin_protocolo=? where sigla=?", array('S', CONTEXTO_ORGAO_B_SIGLA_UNIDADE)); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasEnvioPEN'", null); - $bancoOrgaoB->execute("update infra_agendamento_tarefa set parametro='debug=true' where comando='PENAgendamentoRN::processarTarefasRecebimentoPEN'", null); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - // Remoo de mapeamento de espcie no mapeada na origem - $nomeSerieNaoMapeada = mb_convert_encoding(CONTEXTO_ORGAO_B_TIPO_DOCUMENTO_NAO_MAPEADO, 'UTF-8', 'ISO-8859-1'); - $serieNaoMapeadaOrigem = $bancoOrgaoB->query('select ID_SERIE from serie where nome = ?', array($nomeSerieNaoMapeada)); - $serieNaoMapeadaOrigem[0] = array_change_key_case($serieNaoMapeadaOrigem[0], CASE_UPPER); - - $bancoOrgaoB->execute("delete from md_pen_rel_doc_map_recebido where id_serie = ?", array($serieNaoMapeadaOrigem[0]["ID_SERIE"])); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(4, 3, 3, 'E', 'S')); - $bancoOrgaoB->execute("insert into md_pen_rel_hipotese_legal(id_mapeamento, id_hipotese_legal, id_hipotese_legal_pen, tipo, sin_ativo) values (?, ?, ?, ?, ?);", array(5, 3, 3, 'R', 'S')); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - //para corrigir o erro do oracle que retorna stream sem acentuao das palavras no teste de URL - if ($bancoOrgaoA->getBdType() == "oci") { - $result = $bancoOrgaoA->query("SELECT texto FROM tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?", array("V", "S")); - $strTarja = stream_get_contents($result[0]["TEXTO"]); - $bancoOrgaoA->execute("update tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=?", array($strTarja, "V", "S")); - } - } - - public static function tearDownAfterClass(): void - { - } - - public function setUp(): void - { - $this->setHost(PHPUNIT_HOST); - $this->setPort(intval(PHPUNIT_PORT)); - $this->setBrowser(PHPUNIT_BROWSER); - $this->setBrowserUrl(PHPUNIT_TESTS_URL); - $this->setDesiredCapabilities( - array( - 'platform' => 'LINUX', - 'chromeOptions' => array( - 'w3c' => false, - 'args' => [ - '--profile-directory=' . uniqid(), - '--disable-features=TranslateUI', - '--disable-translate', - ], - ) - ) - ); - } - - protected function definirRemetenteProcesso($urlSistema, $siglaOrgao, $siglaUnidade, $nomeUnidade) - { - self::$urlSistemaRemetente = $urlSistema; - self::$siglaOrgaoRemetente = $siglaOrgao; - self::$siglaUnidadeRemetente = $siglaUnidade; - self::$nomeUnidadeRemetente = $nomeUnidade; - } - - protected function definirDestinatarioProcesso($urlSistema, $siglaOrgao, $siglaUnidade, $nomeUnidade) - { - self::$urlSistemaDestinatario = $urlSistema; - self::$siglaOrgaoDestinatario = $siglaOrgao; - self::$siglaUnidadeDestinatario = $siglaUnidade; - self::$nomeUnidadeDestinatario = $nomeUnidade; - } - - protected function definirContextoTeste($nomeContexto) - { - $objContexto = array( - 'URL' => constant($nomeContexto . '_URL'), - 'ORGAO' => constant($nomeContexto . '_SIGLA_ORGAO'), - 'SIGLA_UNIDADE' => constant($nomeContexto . '_SIGLA_UNIDADE'), - 'SIGLA_UNIDADE_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_HIERARQUIA'), - 'NOME_UNIDADE' => constant($nomeContexto . '_NOME_UNIDADE'), - 'LOGIN' => constant($nomeContexto . '_USUARIO_LOGIN'), - 'SENHA' => constant($nomeContexto . '_USUARIO_SENHA'), - 'TIPO_PROCESSO' => constant($nomeContexto . '_TIPO_PROCESSO'), - 'TIPO_DOCUMENTO' => constant($nomeContexto . '_TIPO_DOCUMENTO'), - 'TIPO_DOCUMENTO_NAO_MAPEADO' => constant($nomeContexto . '_TIPO_DOCUMENTO_NAO_MAPEADO'), - 'CARGO_ASSINATURA' => constant($nomeContexto . '_CARGO_ASSINATURA'), - 'SIGLA_UNIDADE_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_HIERARQUIA'), - 'SIGLA_UNIDADE_SECUNDARIA' => constant($nomeContexto . '_SIGLA_UNIDADE_SECUNDARIA'), - 'SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA' => constant($nomeContexto . '_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA'), - 'NOME_UNIDADE_SECUNDARIA' => constant($nomeContexto . '_NOME_UNIDADE_SECUNDARIA'), - 'HIPOTESE_RESTRICAO_ID' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_ID'), - 'HIPOTESE_RESTRICAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO'), - 'HIPOTESE_RESTRICAO_NAO_MAPEADO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_NAO_MAPEADO'), - 'REP_ESTRUTURAS' => constant($nomeContexto . '_REP_ESTRUTURAS'), - 'HIPOTESE_RESTRICAO_PADRAO' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_PADRAO'), - 'ID_REP_ESTRUTURAS' => constant($nomeContexto . '_ID_REP_ESTRUTURAS'), - 'ID_ESTRUTURA' => constant($nomeContexto . '_ID_ESTRUTURA'), - 'SIGLA_ESTRUTURA' => constant($nomeContexto . '_SIGLA_ESTRUTURA'), - 'HIPOTESE_RESTRICAO_INATIVA' => constant($nomeContexto . '_HIPOTESE_RESTRICAO_INATIVA'), - 'TIPO_PROCESSO_SIGILOSO' => constant($nomeContexto . '_TIPO_PROCESSO_SIGILOSO'), - 'HIPOTESE_SIGILOSO' => constant($nomeContexto . '_HIPOTESE_SIGILOSO'), - ); - switch ($nomeContexto) { - case CONTEXTO_ORGAO_A: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO_SENHA'); - break; - - case CONTEXTO_ORGAO_B: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG2_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG2_CERTIFICADO_SENHA'); - break; - - default: - $objContexto['LOCALIZACAO_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO'); - $objContexto['SENHA_CERTIFICADO_DIGITAL'] = getenv('ORG1_CERTIFICADO_SENHA'); - break; - } - - return $objContexto; - } - - protected function acessarSistema($url, $siglaUnidade, $login, $senha) - { - $this->url($url); - PaginaLogin::executarAutenticacao($this, $login, $senha); - PaginaTeste::selecionarUnidadeContexto($this, $siglaUnidade); - $this->url($url); - } - - protected function selecionarUnidadeInterna($unidadeDestino) - { - PaginaTeste::selecionarUnidadeContexto($this, $unidadeDestino); - } - - protected function sairSistema() - { - $this->paginaBase->sairSistema(); - } - - protected function abrirProcesso($protocolo) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($protocolo); - } - - protected function abrirProcessoPelaDescricao($descricao) - { - $this->paginaBase->navegarParaControleProcesso(); - $protocolo = $this->paginaControleProcesso->localizarProcessoPelaDescricao($descricao); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo); - } - return $protocolo; - } - - - protected function assinarDocumento($siglaOrgao, $cargoAssinante, $loginSenha) - { - // Navegar para pgina de assinatura - $this->paginaDocumento->navegarParaAssinarDocumento(); - sleep(2); - - // Assinar documento - $this->paginaAssinaturaDocumento->selecionarOrgaoAssinante($siglaOrgao); - $this->paginaAssinaturaDocumento->selecionarCargoAssinante($cargoAssinante); - $this->paginaAssinaturaDocumento->assinarComLoginSenha($loginSenha); - $this->window(''); - sleep(2); - } - - protected function tramitarProcessoExternamente($protocolo, $repositorio, $unidadeDestino, $unidadeDestinoHierarquia, $urgente = false, $callbackEnvio = null, $timeout = PEN_WAIT_TIMEOUT) - { - // Acessar funcionalidade de trmite externo - try { - $this->paginaTramitarProcessoEmLote->navegarControleProcessos(); - } catch (Exception $e) { - $this->paginaProcesso->navegarParaTramitarProcesso(); - } - - // Preencher parmetros do trmite - $this->paginaTramitar->repositorio($repositorio); - $this->paginaTramitar->unidade($unidadeDestino, $unidadeDestinoHierarquia); - $this->paginaTramitar->tramitar(); - - if ($callbackEnvio == null) { - $mensagemAlerta = null; - try { - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - } catch (Exception $e) { - } - if ($mensagemAlerta) { - throw new Exception($mensagemAlerta); - } - } - - try { - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - } catch (Exception $e) { - } - - if (isset($mensagemAlerta)) { - throw new Exception($mensagemAlerta); - } - - $callbackEnvio = $callbackEnvio ?: function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Trmite externo do processo finalizado com sucesso!', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - }; - - try { - $this->waitUntil($callbackEnvio, $timeout); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - sleep(1); - } - - protected function tramitarProcessoExternamenteGestorNaoResponsavelUnidade ($dados) { - - // Acessar funcionalidade de trmite externo - try { - $this->paginaTramitarProcessoEmLote->navegarControleProcessos(); - } catch (Exception $e) { - $this->paginaProcesso->navegarParaTramitarProcesso(); - } - - // Preencher parmetros do trmite - $this->paginaTramitar->repositorio($dados['repositorio']); - $this->paginaTramitar->unidade($dados['unidadeDestino'], ''); - $this->paginaTramitar->tramitar(); - - $callbackEnvio = function ($testCase) use ($dados) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemValidacao = mb_convert_encoding('A unidade ' . $dados['nomeUnidadeMalMapeada'] . ' (' . $dados['idUnidadeMalMapeada'] . ') foi mapeada de forma errada. Desse modo, entre em contato com os Gestores do seu rgo e informe que o mapeamento no est correto.', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemValidacao, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - }; - - try { - $this->waitUntil($callbackEnvio, PEN_WAIT_TIMEOUT); - } finally { - try { - $this->frame(null); - $this->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - } - - protected function tramitarProcessoInternamente($unidadeDestino, $manterAbertoNaUnidadeAtual = false) - { - // Acessar funcionalidade de trmite interno - $this->paginaProcesso->navegarParaTramitarProcessoInterno(); - - // Preencher parmetros do trmite - $this->paginaTramitar->unidadeInterna($unidadeDestino); - if ($manterAbertoNaUnidadeAtual) { - $this->paginaTramitar->manterAbertoNaUnidadeAtual(); - } - $this->paginaTramitar->tramitarInterno(); - - sleep(1); - } - - protected function navegarParaCancelarDocumento($ordemDocumento) - { - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - $this->paginaProcesso->selecionarDocumento($listaDocumentos[$ordemDocumento]); - $this->paginaDocumento->navegarParaCancelarDocumento(); - } - - protected function tramitarProcessoInternamenteParaCancelamento($unidadeOrigem, $unidadeDestino, $protocolo) - { - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamente($unidadeDestino); - - //Selecionar unidade interna - $this->selecionarUnidadeInterna($unidadeDestino); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo['PROTOCOLO']); - } - - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamente($unidadeOrigem); - - //Selecionar unidade interna - $this->selecionarUnidadeInterna($unidadeOrigem); - if ($protocolo) { - $this->paginaControleProcesso->abrirProcesso($protocolo['PROTOCOLO']); - } - - sleep(1); - } - - protected function validarRecibosTramite($mensagem, $verificarReciboEnvio, $verificarReciboConclusao) - { - $mensagem = mb_convert_encoding($mensagem, 'UTF-8', 'ISO-8859-1'); - $this->waitUntil(function ($testCase) use ($mensagem, $verificarReciboEnvio, $verificarReciboConclusao) { - sleep(5); - $testCase->refresh(); - $testCase->paginaProcesso->navegarParaConsultarRecibos(); - $this->assertTrue($testCase->paginaReciboTramite->contemTramite($mensagem, $verificarReciboEnvio, $verificarReciboConclusao)); - return true; - }, PEN_WAIT_TIMEOUT); - } - - protected function validarHistoricoTramite( - $unidadeDestino, - $verificarProcessoEmTramitacao = true, - $verificarProcessoRecebido = true, - $verificarProcessoRejeitado = false, - $motivoRecusa = null - ) { - $this->paginaProcesso->navegarParaConsultarAndamentos(); - - if ($verificarProcessoEmTramitacao) { - $this->assertTrue($this->paginaConsultarAndamentos->contemTramiteProcessoEmTramitacao($unidadeDestino)); - } - - if ($verificarProcessoRecebido) { - $this->assertTrue($this->paginaConsultarAndamentos->contemTramiteProcessoRecebido($unidadeDestino)); - } - - if ($verificarProcessoRejeitado) { - - $motivoRecusa = mb_convert_encoding($motivoRecusa, 'UTF-8', 'ISO-8859-1'); - $this->waitUntil(function ($testCase) use ($unidadeDestino, $motivoRecusa) { - sleep(5); - $testCase->refresh(); - $testCase->paginaProcesso->navegarParaConsultarAndamentos(); - $this->assertTrue($testCase->paginaConsultarAndamentos->contemTramiteProcessoRejeitado($unidadeDestino, $motivoRecusa)); - return true; - }, PEN_WAIT_TIMEOUT); - } - } - - protected function validarDadosProcesso($descricao, $restricao, $observacoes, $listaInteressados, $hipoteseLegal = null) - { - sleep(2); - $this->paginaProcesso->navegarParaEditarProcesso(); - $this->paginaEditarProcesso = new PaginaEditarProcesso($this); - $this->assertEquals(mb_convert_encoding($descricao, 'UTF-8', 'ISO-8859-1'), $this->paginaEditarProcesso->descricao()); - $this->assertEquals($restricao, $this->paginaEditarProcesso->restricao()); - - $listaInteressados = is_array($listaInteressados) ? $listaInteressados : array($listaInteressados); - for ($i = 0; $i < count($listaInteressados); $i++) { - $this->assertStringStartsWith(substr($listaInteressados[$i], 0, 100), $this->paginaEditarProcesso->listarInteressados()[$i]); - } - - if ($observacoes) { - $this->assertStringContainsString($observacoes, $this->byCssSelector('body')->text()); - } - - if ($hipoteseLegal != null) { - $hipoteseLegalDocumento = $this->paginaEditarProcesso->recuperarHipoteseLegal(); - $this->assertEquals($hipoteseLegal, $hipoteseLegalDocumento); - } - } - - protected function validarDocumentoCancelado($nomeDocArvore) - { - sleep(2); - $this->assertTrue($this->paginaProcesso->ehDocumentoCancelado($nomeDocArvore)); - } - - protected function validarDocumentoMovido($nomeDocArvore) - { - sleep(2); - $this->assertTrue($this->paginaProcesso->ehDocumentoMovido($nomeDocArvore)); - } - - protected function validarDadosDocumento($nomeDocArvore, $dadosDocumento, $destinatario, $unidadeSecundaria = false, $hipoteseLegal = null) - { - sleep(2); - - // Verifica se documento possui marcao de documento anexado - $bolPossuiDocumentoReferenciado = !is_null($dadosDocumento['ORDEM_DOCUMENTO_REFERENCIADO']); - $this->assertTrue($this->paginaProcesso->deveSerDocumentoAnexo($bolPossuiDocumentoReferenciado, $nomeDocArvore)); - - if (($this->paginaProcesso->ehDocumentoCancelado($nomeDocArvore) == false) and ($this->paginaProcesso->ehDocumentoMovido($nomeDocArvore) == false)) { - - $this->paginaProcesso->selecionarDocumento($nomeDocArvore); - $this->paginaDocumento->navegarParaConsultarDocumento(); - - $mesmoOrgao = $dadosDocumento['ORIGEM'] == $destinatario['URL']; - - if ($mesmoOrgao && $dadosDocumento['TIPO'] == 'G') { - $this->assertEquals($dadosDocumento["DESCRICAO"], $this->paginaDocumento->descricao()); - if (!$mesmoOrgao) { - $observacoes = ($unidadeSecundaria) ? $this->paginaDocumento->observacoesNaTabela() : $this->paginaDocumento->observacoes(); - $this->assertEquals($dadosDocumento['OBSERVACOES'], $observacoes); - } - } else { - $this->assertNotNull($this->paginaDocumento->nomeAnexo()); - $contemVariosComponentes = is_array($dadosDocumento['ARQUIVO']); - if (!$contemVariosComponentes) { - $nomeArquivo = $dadosDocumento['ARQUIVO']; - $this->assertStringContainsString(basename($nomeArquivo), $this->paginaDocumento->nomeAnexo()); - if ($hipoteseLegal != null) { - $hipoteseLegalDocumento = $this->paginaDocumento->recuperarHipoteseLegal(); - $this->assertEquals($hipoteseLegal, $hipoteseLegalDocumento); - } - } - } - } - } - - protected function validarProcessosTramitados($protocolo, $deveExistir) - { - $this->frame(null); - $this->paginaBase->navegarParaControleProcesso(); - $this->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Processos em Tramitao Externa', 'UTF-8', 'ISO-8859-1')); - $this->byLinkText(mb_convert_encoding("Processos em Tramitao Externa", 'UTF-8', 'ISO-8859-1'))->click(); - $this->assertEquals($deveExistir, $this->paginaProcessosTramitadosExternamente->contemProcesso($protocolo)); - } - - protected function validarProcessoRejeitado() - { - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - return array( - "TIPO_PROCESSO" => $contextoProducao['TIPO_PROCESSO'], - "DESCRICAO" => util::random_string(100), - "OBSERVACOES" => null, - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoInternoTeste($contextoProducao) - { - return array( - 'TIPO' => 'G', // Documento do tipo Gerado pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DESCRICAO" => trim(str_repeat(util::random_string(9) . ' ', 10)), - "OBSERVACOES" => null, - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ORDEM_DOCUMENTO_REFERENCIADO" => null, - "ARQUIVO" => ".html", - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos = 'arquivo_pequeno.txt', $ordemDocumentoReferenciado = null) - { - // Tratamento para lista de arquivos em casos de documentos com mais de um componente digital - $pasta = self::PASTA_ARQUIVOS_TESTE; - $arquivos = is_array($nomesArquivos) ? array_map(function ($item) use ($pasta) { - return "$pasta/$item"; - }, $nomesArquivos) : "$pasta/$nomesArquivos"; - - return array( - 'TIPO' => 'R', // Documento do tipo Recebido pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DATA_ELABORACAO" => '01/01/2017', - "DESCRICAO" => str_repeat(util::random_string(9) . ' ', 10), - "OBSERVACOES" => util::random_string(500), - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "ORDEM_DOCUMENTO_REFERENCIADO" => $ordemDocumentoReferenciado, - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ARQUIVO" => $arquivos, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function gerarDadosDocumentoExternoGrandeTeste($contextoProducao, $nomesArquivo = 'arquivo_grande_gerado.txt', $tamanhoMB = 100, $ordemDocumentoReferenciado = null) - { - // Tratamento para lista de arquivos em casos de documentos com mais de um componente digital - $pasta = self::PASTA_ARQUIVOS_TESTE; - shell_exec('dd if=/dev/zero of=' . self::PASTA_ARQUIVOS_TESTE . '/' . $nomesArquivo . ' bs=1M count=' . $tamanhoMB); - $arquivos = "$pasta/$nomesArquivo"; - - return array( - 'TIPO' => 'R', // Documento do tipo Recebido pelo sistema - "NUMERO" => null, //Gerado automaticamente no cadastramento do documento - "TIPO_DOCUMENTO" => $contextoProducao['TIPO_DOCUMENTO'], - "DATA_ELABORACAO" => '01/01/2017', - "DESCRICAO" => str_repeat(util::random_string(9) . ' ', 10), - "OBSERVACOES" => util::random_string(500), - "INTERESSADOS" => str_repeat(util::random_string(9) . ' ', 25), - "ORDEM_DOCUMENTO_REFERENCIADO" => $ordemDocumentoReferenciado, - "RESTRICAO" => PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - "ARQUIVO" => $arquivos, - "ORIGEM" => $contextoProducao['URL'], - ); - } - - public function realizarValidacaoRecebimentoProcessoNoDestinatario($processoTeste, $documentosTeste, $destinatario, $devolucao = false, $unidadeSecundaria = false) - { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - - // 10 - Acessar sistema de REMETENTE do processo - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $this->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $devolucao = $processoTeste['ORIGEM'] == $destinatario['URL']; - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= $processoTeste['TIPO_PROCESSO']; - $processoTeste['OBSERVACOES'] = (!$devolucao) ? $strTipoProcesso : $processoTeste['OBSERVACOES']; - $this->validarDadosProcesso($processoTeste['DESCRICAO'], $processoTeste['RESTRICAO'], $processoTeste['OBSERVACOES'], $processoTeste['INTERESSADOS']); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - $this->assertEquals(count($listaDocumentos), count($documentosTeste)); - - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], $destinatario, $unidadeSecundaria, null); - } - } - - public function realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentosTeste, $destinatario, $devolucao = false, $unidadeSecundaria = false) - { - $strProtocoloTeste = null; - $strDescricao = $documentosTeste['DESCRICAO']; - - // Acessar sistema de REMETENTE do processo - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - - // Abrir protocolo na tela de controle de processos pelo texto da descrio - $this->waitUntil(function ($testCase) use ($strDescricao, &$strProtocoloTeste) { - sleep(5); - $strProtocoloTeste = $this->abrirProcessoPelaDescricao($strDescricao); - $this->assertNotFalse($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // Validar dados do processo - $this->validarDadosProcesso($documentosTeste['DESCRICAO'], $documentosTeste['RESTRICAO'], null, array($documentosTeste['INTERESSADOS'])); - - // Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Documento $strProtocoloTeste", false, true); - - // Validar dados do documento - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - $this->assertEquals(count($listaDocumentos), count($documentosTeste)); - - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], $destinatario, $unidadeSecundaria); - } - - return array( - "TIPO_PROCESSO" => $destinatario['TIPO_PROCESSO'], - "DESCRICAO" => $documentosTeste[0]['DESCRICAO'], - "OBSERVACOES" => null, - "INTERESSADOS" => $documentosTeste[0]['INTERESSADOS'], - "RESTRICAO" => $documentosTeste[0]['RESTRICAO'], - "ORIGEM" => $destinatario['URL'], - "PROTOCOLO" => $strProtocoloTeste - ); - } - - public function realizarValidacaoNAORecebimentoProcessoNoDestinatario($destinatario, $processoTeste) - { - $this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']); - $this->paginaBase->navegarParaControleProcesso(); - $this->assertFalse($this->paginaControleProcesso->contemProcesso($processoTeste['PROTOCOLO'], false, false)); - } - - protected function selecionarProcessos($numProtocolo=null) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramitarProcessoEmLote->selecionarProcessos($numProtocolo); - sleep(2); - } - - protected function visualizarProcessoTramitadosEmLote($test) - { - $this->paginaBase->navegarParaControleProcesso(); - $this->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Processos Tramitados em Bloco', 'UTF-8', 'ISO-8859-1')); - $this->byLinkText("Processos Tramitados em Bloco")->click(); - } - - protected function navegarProcessoEmLote($selAndamento, $numProtocolo=null) - { - if($selAndamento == 0){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_PROCESSAMENTO; - }if($selAndamento == 2){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_CONCLUIDO; - }if($selAndamento == 7){ - $selAndamento = PaginaTramitarProcessoEmLote::STA_ANDAMENTO_CANCELADO; - } - $this->paginaTramitarProcessoEmLote->navegarProcessoEmLote($selAndamento, $numProtocolo); - } - - protected function navegarMapeamentoUnidade() { - $this->frame(null); - $this->byXPath("//img[contains(@title, 'Controle de Processos')]")->click(); - $this->paginaMapeamentoUnidade->navegarMapeamentoUnidade(); - } -} diff --git a/tests_super/funcional/tests/FixtureCenarioBaseTestCase.php b/tests_super/funcional/tests/FixtureCenarioBaseTestCase.php deleted file mode 100755 index 8daf39101..000000000 --- a/tests_super/funcional/tests/FixtureCenarioBaseTestCase.php +++ /dev/null @@ -1,331 +0,0 @@ -<?php - -use \utilphp\util; -use PHPUnit\Extensions\Selenium2TestCase; -use Tests\Funcional\Sei\Fixtures\{ProtocoloFixture,ProcedimentoFixture,AtividadeFixture,ContatoFixture}; -use Tests\Funcional\Sei\Fixtures\{ParticipanteFixture,RelProtocoloAssuntoFixture,AtributoAndamentoFixture}; -use Tests\Funcional\Sei\Fixtures\{DocumentoFixture,AssinaturaFixture,AnexoFixture,AnexoProcessoFixture}; -use Tests\Funcional\Sei\Fixtures\{HipoteseLegalFixture,TipoProcedimentoFixture}; - -use function PHPSTORM_META\map; -/** - * Classe base contendo rotinas comuns utilizadas nos casos de teste do mdulo que utiliza fixture - */ -class FixtureCenarioBaseTestCase extends CenarioBaseTestCase -{ - protected function cadastrarProcessoFixture(&$dadosProcesso, $cadastrarParticipante = true) - { - if (!is_null($dadosProcesso['HIPOTESE_LEGAL'])){ - $objHipLegalDTO = $this->buscarHipoteseLegal($dadosProcesso); - } - - $parametros = [ - 'Descricao' => $dadosProcesso['DESCRICAO'] ?: util::random_string(20), - 'Interessados' => $dadosProcesso['INTERESSADOS'] ?: util::random_string(40), - 'IdHipoteseLegal' => $dadosProcesso['HIPOTESE_LEGAL'] ? $objHipLegalDTO->getNumIdHipoteseLegal() : null, - 'StaNivelAcessoLocal' => $dadosProcesso["RESTRICAO"] ?: PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO, - 'StaNivelAcessoGlobal' => $dadosProcesso["RESTRICAO"] ?: PaginaIniciarProcesso::STA_NIVEL_ACESSO_PUBLICO - ]; - $objProtocoloFixture = new ProtocoloFixture(); - $objProtocoloDTO = $objProtocoloFixture->carregar($parametros); - $objProcedimentoFixture = new ProcedimentoFixture(); - - $parametrosProcedimento = [ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() - ]; - if (!is_null($dadosProcesso['ID_TIPO_PROCESSO'])) { - $parametrosProcedimento['IdTipoProcedimento'] = $dadosProcesso['ID_TIPO_PROCESSO']; - } - $objProcedimentoDTO = $objProcedimentoFixture->carregar($parametrosProcedimento); - - $objAtividadeFixture = new AtividadeFixture(); - $objAtividadeDTO = $objAtividadeFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdTarefa' => \TarefaRN::$TI_GERACAO_PROCEDIMENTO, - 'IdUsuarioConclusao' => 100000001 - ]); - - $objContatoFixture = new ContatoFixture(); - $objContatoDTO = $objContatoFixture->carregar([ - 'Nome' => $parametros['Interessados'] - ]); - - if ($cadastrarParticipante) { - $objParticipanteFixture = new ParticipanteFixture(); - $objParticipanteDTO = $objParticipanteFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdContato' => $objContatoDTO->getNumIdContato() - ]); - } - - $objProtocoloAssuntoFixture = new RelProtocoloAssuntoFixture(); - $objProtocoloAssuntoFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdAssunto' => 377 - ]); - - $objAtributoAndamentoFixture = new AtributoAndamentoFixture(); - $objAtributoAndamentoFixture->carregar([ - 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade() - ]); - - $dadosProcesso['PROTOCOLO'] = $objProtocoloDTO->getStrProtocoloFormatado(); - - return $objProtocoloDTO; - } - - protected function buscarHipoteseLegal($dados) - { - $param = [ - 'Nome' => trim(explode('(',$dados['HIPOTESE_LEGAL'])[0]), - 'BaseLegal' => explode(')',trim(explode('(',$dados['HIPOTESE_LEGAL'])[1]))[0] - ]; - $objHipLegalFixture = new HipoteseLegalFixture(); - return $objHipLegalFixture->buscar($param)[0]; - } - - protected function cadastrarDocumentoInternoFixture($dadosDocumentoInterno, $idProtocolo, $assinarDocumento = true) - { - - if (!is_null($dadosDocumentoInterno['HIPOTESE_LEGAL'])){ - $objHipLegalDTO = $this->buscarHipoteseLegal($dadosDocumentoInterno); - } - - $dadosDocumentoDTO = [ - 'IdProtocolo' => $idProtocolo, - 'IdProcedimento' => $idProtocolo, - 'Descricao' => $dadosDocumentoInterno['DESCRICAO'], - 'IdHipoteseLegal' => $dadosDocumentoInterno["HIPOTESE_LEGAL"] ? $objHipLegalDTO->getNumIdHipoteseLegal() : null, - 'StaNivelAcessoGlobal' => $dadosDocumentoInterno["RESTRICAO"] ?: \ProtocoloRN::$NA_PUBLICO, - 'StaNivelAcessoLocal' => $dadosDocumentoInterno["RESTRICAO"] ?: \ProtocoloRN::$NA_PUBLICO, - 'IdUnidadeResponsavel' => $dadosDocumentoInterno["UNIDADE_RESPONSAVEL"] ?: null - ]; - - if ($serieDTO = $this->buscarIdSerieDoDocumento($dadosDocumentoInterno['TIPO_DOCUMENTO'])) { - $dadosDocumentoDTO['IdSerie'] = $serieDTO->getNumIdSerie(); - } - - $objDocumentoFixture = new DocumentoFixture(); - $objDocumentoDTO = $objDocumentoFixture->carregar($dadosDocumentoDTO); - - if ($assinarDocumento) { - //Adicionar assinatura ao documento - $objAssinaturaFixture = new AssinaturaFixture(); - $objAssinaturaFixture->carregar([ - 'IdProtocolo' => $idProtocolo, - 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), - ]); - } - - return $objDocumentoDTO; - - } - - protected function cadastrarDocumentoExternoFixture($dadosDocumentoExterno, $idProtocolo) - { - $dadosDocumentoDTO = [ - 'IdProtocolo' => $idProtocolo, - 'IdProcedimento' => $idProtocolo, - 'Descricao' => $dadosDocumentoExterno['DESCRICAO'], - 'StaProtocolo' => \ProtocoloRN::$TP_DOCUMENTO_RECEBIDO, - 'StaDocumento' => \DocumentoRN::$TD_EXTERNO, - 'IdConjuntoEstilos' => NULL, - ]; - - if ($serieDTO = $this->buscarIdSerieDoDocumento($dadosDocumentoExterno['TIPO_DOCUMENTO'])) { - $dadosDocumentoDTO['IdSerie'] = $serieDTO->getNumIdSerie(); - } - - $objDocumentoFixture = new DocumentoFixture(); - $objDocumentoDTO = $objDocumentoFixture->carregar($dadosDocumentoDTO); - - //Adicionar anexo ao documento - $objAnexoFixture = new AnexoFixture(); - $objAnexoFixture->carregar([ - 'IdProtocolo' => $objDocumentoDTO->getDblIdDocumento(), - 'Nome' => basename($dadosDocumentoExterno['ARQUIVO']), - ]); - - $objAtividadeFixture = new AtividadeFixture(); - $objAtividadeDTO = $objAtividadeFixture->carregar([ - 'IdProtocolo' => $idProtocolo, - 'Conclusao' => \InfraData::getStrDataHoraAtual(), - 'IdTarefa' => \TarefaRN::$TI_ARQUIVO_ANEXADO, - 'IdUsuarioConclusao' => 100000001 - ]); - - $objAtributoAndamentoFixture = new AtributoAndamentoFixture(); - $objAtributoAndamentoFixture->carregar([ - 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade(), - 'Nome' => 'ANEXO' - ]); - - return $objDocumentoDTO; - } - - protected function anexarProcessoFixture($protocoloPrincipalId, $protocoloProcessoAnexadoId) - { - // Realizar a anexao de processos - $objAnexoProcessoFixture = new AnexoProcessoFixture(); - $objAnexoProcessoFixture->carregar([ - 'IdProtocolo' => $protocoloPrincipalId, - 'IdDocumento' => $protocoloProcessoAnexadoId, - ]); - } - - protected function consultarProcessoFixture($protocoloFormatado, $staProtocolo = null) - { - $objProtocoloFixture = new ProtocoloFixture(); - $objProtocoloDTO = $objProtocoloFixture->buscar([ - 'ProtocoloFormatado' => $protocoloFormatado, - 'StaProtocolo' => $staProtocolo ?: \ProtocoloRN::$TP_DOCUMENTO_GERADO, - ]); - return $objProtocoloDTO[0]; - } - - protected function realizarTramiteExternoFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario, $validarTramite) - { - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - // 1 - Cadastrar novo processo de teste - if (isset($processoTeste['PROTOCOLO'])) { - $strProtocoloTeste = $processoTeste['PROTOCOLO']; - $objProtocoloDTO = $this->consultarProcessoFixture($strProtocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - } else { - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $strProtocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - $processoTeste['PROTOCOLO'] = $strProtocoloTeste; - } - - // 2 - Incluir Documentos no Processo - $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; - foreach ($documentosTeste as $doc) { - if ($doc['TIPO'] == 'G') { - // cadastra e assina documento interno - $this->cadastrarDocumentoInternoFixture($doc,$objProtocoloDTO->getDblIdProtocolo()); - } else if ($doc['TIPO'] == 'R') { - $this->cadastrarDocumentoExternoFixture($doc, $objProtocoloDTO->getDblIdProtocolo()); - } - } - - // 3 - Acessar sistema do REMETENTE do processo - $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); - - // 4 - Abrir processo - $this->abrirProcesso($strProtocoloTeste); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $paginaTramitar = $this->paginaTramitar; - $this->tramitarProcessoExternamente($strProtocoloTeste, $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - if ($validarTramite) { - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding($destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", $strProtocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$nomeUnidadeDestinatario, true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = $remetente['URL'] != $destinatario['URL']; - $this->validarProcessosTramitados($strProtocoloTeste, $deveExistir); - } - } - - public function realizarTramiteExternoComValidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) - { - $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, true); - } - - public function realizarTramiteExternoSemValidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) - { - $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, false); - } - - protected function buscarIdSerieDoDocumento($tipoDocumento) - { - $serieDTO = new \SerieDTO(); - $serieDTO->setStrNome($tipoDocumento); - $serieDTO->retNumIdSerie(); - $serieDTO->setNumMaxRegistrosRetorno(1); - - $objBD = new \SerieBD(\BancoSEI::getInstance()); - return $objBD->consultar($serieDTO); - } - - protected function atualizarProcessoFixture($objProtocoloDTO, $dadosProcesso = []) - { - if (!is_null($dadosProcesso['DESCRICAO'])) { - $parametros['Descricao'] = $dadosProcesso['DESCRICAO']; - } - - if (!is_null($dadosProcesso['INTERESSADOS'])) { - $parametros['Interessados'] = $dadosProcesso['INTERESSADOS']; - } - - $parametros['IdProtocolo'] = $objProtocoloDTO->getDblIdProtocolo(); - $objProtocoloFixture = new ProtocoloFixture(); - - return $objProtocoloFixture->atualizar($parametros); - } - /** - * Mtodo cadastrarHipoteseLegal - * - * Este mtodo realiza o cadastro de uma hiptese legal para testes de trmite de processos e documentos. - * Ele recebe um array com os dados da hiptese legal, cria uma nova instncia de `HipoteseLegalFixture`, - * e utiliza esses dados para carregar a hiptese legal no sistema. - * - * @param array $hipotesLegal Um array contendo os dados da hiptese legal a ser cadastrada, com as seguintes chaves: - * - `HIPOTESE_LEGAL` (string): O nome da hiptese legal. - * - `HIPOTESE_LEGAL_BASE_LEGAL` (string): A base legal associada hiptese. - * - `HIPOTESE_LEGAL_DESCRICAO` (string) [opcional]: Uma descrio para a hiptese legal (padro: 'Nova hipotese legal para testes'). - * - `HIPOTESE_LEGAL_STA_NIVEL_ACESSO` (int) [opcional]: O nvel de acesso para a hiptese legal (padro: nvel restrito). - * - `HIPOTESE_LEGAL_SIN_ATIVO` (string) [opcional]: Indicador de atividade da hiptese legal ('S' para ativo por padro). - * - * @return object $objHipoteseLegalDTO Retorna um objeto `HipoteseLegalDTO` contendo os dados da hiptese legal cadastrada. - */ - protected function cadastrarHipoteseLegal($hipotesLegal) - { - // Criao de uma nova instncia de HipoteseLegalFixture - $objHipLegalFixture = new HipoteseLegalFixture(); - - // Definio dos parmetros para cadastro da hiptese legal - $param = [ - 'Nome' => $hipotesLegal['HIPOTESE_LEGAL'], - 'BaseLegal' => $hipotesLegal['HIPOTESE_LEGAL_BASE_LEGAL'], - 'Descricao' => $hipotesLegal['HIPOTESE_LEGAL_DESCRICAO'] ?? 'Nova hipotese legal para testes', - 'StaNivelAcesso' => $hipotesLegal['HIPOTESE_LEGAL_STA_NIVEL_ACESSO'] ?? \ProtocoloRN::$NA_RESTRITO, - 'SinAtivo' => $hipotesLegal['HIPOTESE_LEGAL_SIN_ATIVO'] ?? "S" - ]; - - // Carregar a hiptese legal com os parmetros fornecidos - $objHipoteseLegalDTO = $objHipLegalFixture->carregar($param); - - // Retorna o objeto DTO da hiptese legal cadastrada - return $objHipoteseLegalDTO; - } - - protected function cadastrarTipoProcedimentoFixture($dados = []) - { - $objTipoProcedimentoFixture = new TipoProcedimentoFixture(); - $objTipoProcedimentoDTO = $objTipoProcedimentoFixture->carregar([ - 'Nome' => $dados['NOME'] - ]); - - return $objTipoProcedimentoDTO; - } - -} diff --git a/tests_super/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php b/tests_super/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php deleted file mode 100644 index f7f85352a..000000000 --- a/tests_super/funcional/tests/MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php - -/** - * Mapeia as Unidades com limitao de repositrios - * para tramite de processos entre orgos - */ -class MapeamentoDeUnidadesComLimitacaoDeRepositoriosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public $penMapUnidadesFixture; - public $objProtocoloDTO; - - /** - * Set up - * Cria pameamento de unidades para o teste por Fixture - * - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $this->penMapUnidadesFixture = $penMapUnidadesFixture->carregar([ - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'] - ]); - } - - /** - * Teste mapeamento de unidades e limitao dos repositrios para tramite - * - * @return void - */ - public function test_mapeamento_unidades_com_limitacao_de_repositorios() - { - $this->removerRestricaoUnidade(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); - $this->paginaMapUnidades->pesquisarUnidade(self::$remetente['SIGLA_UNIDADE']); - sleep(2); - - $this->paginaMapUnidades->selecionarEditar(); - $this->paginaMapUnidades->limparRestricoes(); - - $this->paginaMapUnidades->selecionarRepoEstruturas(self::$remetente['REP_ESTRUTURAS']); - $this->paginaMapUnidades->selecionarUnidade(self::$remetente['NOME_UNIDADE']); - - $this->paginaMapUnidades->salvar(); - sleep(2); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - 'Mapeamento de Unidade gravado com sucesso.', - $mensagem - ); - $this->sairSistema(); - } - - /** - * Teste para validar se aplicou a restrio de mapeamento de unidades no tramite - * - * @return void - */ - public function test_tramitar_com_limitacao_de_repositorios() - { - $this->criarProcesso(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->abrirProcesso($this->objProtocoloDTO->getStrProtocoloFormatado()); - - $this->paginaProcesso->navegarParaTramitarProcesso(); - $this->paginaMapUnidades->validarRepositorio(self::$remetente['REP_ESTRUTURAS']); - $this->paginaMapUnidades->selecionarUnidade(self::$remetente['NOME_UNIDADE']); - - $this->removerRestricaoUnidade(); - - $this->sairSistema(); - } - - /** - * Criar processo para validar tramitao por Fixture - * - * @return void - */ - private function criarProcesso() - { - // Definio de dados de teste do processo principal - $processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->objProtocoloDTO = $this->cadastrarProcessoFixture($processoTestePrincipal); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $this->objProtocoloDTO->getDblIdProtocolo()); - - } - - /** - * Remover restricao para limpar teste - * - * @return void - */ - private function removerRestricaoUnidade() - { - $penUnidadeRestricaoFixture = new \PenUnidadeRestricaoFixture(); - $penUnidadeRestricaoFixture->remover([ - 'NomeUnidadeRestricao' => self::$remetente['REP_ESTRUTURAS'], - 'NomeUnidadeRHRestricao' => self::$remetente['NOME_UNIDADE'] - ]); - } - -} diff --git a/tests_super/funcional/tests/MapeamentoEnvioParcialTest.php b/tests_super/funcional/tests/MapeamentoEnvioParcialTest.php deleted file mode 100644 index 309e7b77c..000000000 --- a/tests_super/funcional/tests/MapeamentoEnvioParcialTest.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php - -/** - * Testes de mapeamento de envio de envio parcial - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoEnvioParcialTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $remetenteB; - - /** - * Teste inicial de cadastro de mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_novo_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->novo(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$remetente['REP_ESTRUTURAS'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['NOME_UNIDADE']); - - sleep(1); - $this->assertNotNull($nomeRepositorioCadastrado); - $this->assertNotNull($nomeUnidadeCadastrado); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Mapeamento de Envio Parcial cadastrado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste para editar mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_editar_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$remetenteB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->editar(); - $this->paginaCadastroMapEnvioCompDigitais->setarParametros( - self::$remetenteB['REP_ESTRUTURAS'], - self::$remetenteB['NOME_UNIDADE'] - ); - $this->paginaCadastroMapEnvioCompDigitais->salvar(); - - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['REP_ESTRUTURAS']); - $nomeUnidadeCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetenteB['NOME_UNIDADE']); - - sleep(1); - $this->assertNotNull($nomeRepositorioCadastrado); - $this->assertNotNull($nomeUnidadeCadastrado); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Mapeamento de Envio Parcial atualizado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste para pesquisar mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_pesquisar_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - - // Buscar pesquisa vazia - $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS'] . 'B'); - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $this->assertNull($nomeRepositorioCadastrado); - - // Buscar pesquisa com sucesso - $this->paginaCadastroMapEnvioCompDigitais->selecionarPesquisa(self::$remetente['REP_ESTRUTURAS']); - $nomeRepositorioCadastrado = $this->paginaCadastroMapEnvioCompDigitais->buscarNome(self::$remetente['REP_ESTRUTURAS']); - $this->assertNotNull($nomeRepositorioCadastrado); - } - - /** - * Teste para imprimir mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_imprimir_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - - // Buscar pesquisa vazia - $this->paginaCadastroMapEnvioCompDigitais->selecionarImprimir(); - $this->assertTrue(true); - } - - /** - * Teste para excluir mapeamento de envio parcial - * - * @group mapeamento - * - * @return void - */ - public function test_excluir_mapeamento_envio_parcial_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaEnvioParcialListar->navegarEnvioParcialListar(); - $this->paginaCadastroMapEnvioCompDigitais->selecionarExcluir(); - - sleep(1); - $mensagem = $this->paginaCadastroMapEnvioCompDigitais->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Mapeamento excludo com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/MapeamentoHipoteseLegalTest.php b/tests_super/funcional/tests/MapeamentoHipoteseLegalTest.php deleted file mode 100644 index 67230d3a2..000000000 --- a/tests_super/funcional/tests/MapeamentoHipoteseLegalTest.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php - -/** - * Testa a funcionalidade de mapeamento de hiptese legal - * - * @package tests_super\funcional\tests - */ -class MapeamentoHipoteseLegalTest extends FixtureCenarioBaseTestCase -{ - /** - * @var array - */ - public static $remetente; - - /** - * Verificar se lista de mapeamento de hiptese legal exibida - * - * @group hipotese_legal - * - * @return void - */ - public function test_verificar_lista_mapeamento_hipotese_legal_test() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaPenHipoteseLegalListar->navegarMapeamentoHipoteseLegalListar(); - $this->assertTrue($this->paginaPenHipoteseLegalListar->existeTabela()); - - $this->sairSistema(); - } -} diff --git a/tests_super/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php b/tests_super/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php deleted file mode 100644 index 696b26a21..000000000 --- a/tests_super/funcional/tests/MapeamentoTipoProcessoDesativarReativarTest.php +++ /dev/null @@ -1,176 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Desativar e reativar mapeamento entre orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoDesativarReativarTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_desativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Ativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->desativarMapeamento(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi desativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de reativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_reativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Inativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->reativarMapeamento(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_desativacao_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Ativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->desativarMapeamentoCheckbox(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi desativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_reativar_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - - $this->paginaTramiteMapeamentoOrgaoExterno->selectEstado("Inativo"); - $this->paginaTramiteMapeamentoOrgaoExterno->reativarMapeamentoCheckbox(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Relacionamento entre Unidades foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - $importacaoTiposProcessoFixture = new \ImportacaoTiposProcessoFixture(); - $arrObjPenMapTipoProcedimentoDTO = $importacaoTiposProcessoFixture->buscar([ - 'IdMapeamento' => self::$penOrgaoExternoId - ]); - - foreach ($arrObjPenMapTipoProcedimentoDTO as $objPenMapTipoProcedimentoDTO) { - $importacaoTiposProcessoFixture->remover([ - 'Id' => $objPenMapTipoProcedimentoDTO->getDblId() - ]); - } - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $penOrgaoExternoFixture->remover([ - 'Id' => self::$penOrgaoExternoId, - ]); - - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/MapeamentoTipoProcessoExcluirTest.php b/tests_super/funcional/tests/MapeamentoTipoProcessoExcluirTest.php deleted file mode 100644 index 0276282ae..000000000 --- a/tests_super/funcional/tests/MapeamentoTipoProcessoExcluirTest.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Excluir mapeamento entre orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoExcluirTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - } - - /** - * Teste para excluir de mapeamento de orgo exteno - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_excluir_mapeamento_orgao_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTramiteMapeamentoOrgaoExterno->navegarRelacionamentoEntreOrgaos(); - sleep(5); - $this->paginaCadastroOrgaoExterno->selecionarExcluirMapOrgao(self::$penOrgaoExternoId); - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Relacionamento entre unidades foi excludo com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/MapeamentoTipoProcessoExportarTest.php b/tests_super/funcional/tests/MapeamentoTipoProcessoExportarTest.php deleted file mode 100644 index 9524d5c5c..000000000 --- a/tests_super/funcional/tests/MapeamentoTipoProcessoExportarTest.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Exportar tipos de processos - * Pesquisar tipos de processos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoExportarTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - - /** - * Teste de exportao de tipos de processos - * - * @return void - */ - public function test_exportar_tipos_de_processo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaExportarTiposProcesso->navegarExportarTiposProcessos(); - - $this->paginaExportarTiposProcesso->selecionarParaExportar(); - $this->assertEquals( - $this->paginaExportarTiposProcesso->verificarExisteBotao('btnExportarModal'), - 'Exportar' - ); - $this->assertEquals( - $this->paginaExportarTiposProcesso->verificarExisteBotao('btnFecharModal'), - 'Fechar' - ); - $this->paginaExportarTiposProcesso->verificarQuantidadeDeLinhasSelecionadas(); - $this->paginaExportarTiposProcesso->btnExportar(); - - $this->sairSistema(); - } - - /** - * Teste para pesquisar tipos de processos - * - * @return void - */ - public function test_pesquisar_tipos_de_processos() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaExportarTiposProcesso->navegarExportarTiposProcessos(); - $this->paginaExportarTiposProcesso->selecionarPesquisa(); - sleep(1); - $this->assertTrue($this->paginaExportarTiposProcesso->buscarPesquisa()); - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/MapeamentoTipoProcessoReativarTest.php b/tests_super/funcional/tests/MapeamentoTipoProcessoReativarTest.php deleted file mode 100644 index d171c163d..000000000 --- a/tests_super/funcional/tests/MapeamentoTipoProcessoReativarTest.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo reativar - * Reativar tipos de processos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoReativarTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - public static $arrImportacaoTiposProcessoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - - $importacaoTiposProcessoFixture = new \ImportacaoTiposProcessoFixture(); - $tiposProcessos = $this->getTiposProcessos($objPenOrgaoExternoDTO->getDblId(), 'N'); - $arrObjPenMapTipoProcedimentoDTO = $importacaoTiposProcessoFixture->carregarVariados($tiposProcessos); - - foreach ($arrObjPenMapTipoProcedimentoDTO as $objPenMapTipoProcedimentoDTO) { - self::$arrImportacaoTiposProcessoId[] = $objPenMapTipoProcedimentoDTO->getDblId(); - } - } - - /** - * Teste de reativao de um Relacionamento entre rgos - * - * @large - * - * @return void - */ - public function test_reativacao_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTipoProcessoReativar->navegarTipoProcessoReativar(); - $this->paginaTipoProcessoReativar->reativarMapeamento(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Mapeamento de Tipo de Processo foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - /** - * Teste de desativao de um Relacionamento entre rgos via checkbox - * - * @large - * - * @return void - */ - public function test_reativar_checkbox_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaTipoProcessoReativar->navegarTipoProcessoReativar(); - $this->paginaTipoProcessoReativar->reativarMapeamentoCheckbox(); - $this->waitUntil(function ($testCase) { - $testCase->frame(null); - $menssagemValidacao = mb_convert_encoding('Mapeamento de Tipo de Processo foi reativado com sucesso.', 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($menssagemValidacao, $testCase->byId('divInfraMsg0')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - $importacaoTiposProcessoFixture = new \ImportacaoTiposProcessoFixture(); - $arrObjPenMapTipoProcedimentoDTO = $importacaoTiposProcessoFixture->buscar([ - 'IdMapeamento' => self::$penOrgaoExternoId - ]); - - foreach ($arrObjPenMapTipoProcedimentoDTO as $objPenMapTipoProcedimentoDTO) { - $importacaoTiposProcessoFixture->remover([ - 'Id' => $objPenMapTipoProcedimentoDTO->getDblId() - ]); - } - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $penOrgaoExternoFixture->remover([ - 'Id' => self::$penOrgaoExternoId, - ]); - - parent::tearDownAfterClass(); - } - - private function getTiposProcessos(int $idMapeamento, string $sinAtivo = 'S') - { - return array( - array( - 'IdMapeamento' => $idMapeamento, - 'IdProcedimento' => 100000348, - 'NomeProcedimento' => mb_convert_encoding('Acompanhamento Legislativo: Congresso Nacional', 'UTF-8', 'ISO-8859-1'), - 'SinAtivo' => $sinAtivo - ), - array( - 'IdMapeamento' => $idMapeamento, - 'IdProcedimento' => 100000425, - 'NomeProcedimento' => mb_convert_encoding('mauro teste', 'UTF-8', 'ISO-8859-1'), - 'SinAtivo' => $sinAtivo - ) - ); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php b/tests_super/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php deleted file mode 100644 index bf15fc0b7..000000000 --- a/tests_super/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Cadastro mapeamento de orgos - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoRelacionamentoOrgaosCadastroTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - } - - /** - * Teste de cadastro de novo mapeamento entre ogros - * - * @return void - */ - public function test_cadastrar_novo_mapeamento_orgao_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - $this->paginaCadastroOrgaoExterno->novoMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - $orgaoOrigem = $this->paginaCadastroOrgaoExterno->buscarOrgaoOrigem(self::$destinatario['NOME_UNIDADE']); - $orgaoDestino = $this->paginaCadastroOrgaoExterno->buscarOrgaoDestino(self::$remetente['NOME_UNIDADE']); - - $this->assertNotNull($orgaoOrigem); - $this->assertNotNull($orgaoDestino); - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Relacionamento entre Unidades cadastrado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Teste para cadastro de mapeamento de orgo exteno j existente - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_cadastrar_mapeamento_orgao_externo_ja_cadastrado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - $this->paginaCadastroOrgaoExterno->novoMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Cadastro de relacionamento entre unidades j existente.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Teste para editar mapeamento de orgo exteno - * - * @group MapeamentoOrgaoExterno - * - * @return void - */ - public function test_editar_mapeamento_orgao_externo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - - $this->paginaCadastroOrgaoExterno->editarMapOrgao(); - $this->paginaCadastroOrgaoExterno->setarParametros( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$remetente['NOME_UNIDADE'] - ); - $this->paginaCadastroOrgaoExterno->salvar(); - - $orgaoOrigem = $this->paginaCadastroOrgaoExterno->buscarOrgaoOrigem(self::$destinatario['NOME_UNIDADE']); - $orgaoDestino = $this->paginaCadastroOrgaoExterno->buscarOrgaoDestino(self::$remetente['NOME_UNIDADE']); - - $this->assertNotNull($orgaoOrigem); - $this->assertNotNull($orgaoDestino); - sleep(1); - $mensagem = $this->paginaCadastroOrgaoExterno->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Relacionamento entre Unidades atualizado com sucesso.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php b/tests_super/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php deleted file mode 100644 index 3ad753e1f..000000000 --- a/tests_super/funcional/tests/MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * Testes de mapeamento de tipos de processo e relacionamento entre orgos - * Listar mapeamento entre orgos - * Importar tipos de processo para relacionamento - * - * Execution Groups - * @group execute_alone_group1 - */ -class MapeamentoTipoProcessoRelacionamentoOrgaosListagemImportacaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $objPenOrgaoExternoDTO = $penOrgaoExternoFixture->carregar([ - 'IdRepositorio' => self::$remetente['ID_REP_ESTRUTURAS'], - 'RepositorioEstruturas' => self::$remetente['REP_ESTRUTURAS'], - 'Id' => self::$remetente['ID_ESTRUTURA'], - 'Sigla' => self::$remetente['SIGLA_ESTRUTURA'], - 'Nome' => self::$remetente['NOME_UNIDADE'], - 'IdOrigem' => self::$destinatario['ID_ESTRUTURA'], - 'NomeOrigem' => self::$destinatario['NOME_UNIDADE'] - ]); - - self::$penOrgaoExternoId = $objPenOrgaoExternoDTO->getDblId(); - } - - /** - * Teste para pesquisar mapeamento entre orgos - * - * @Depends test_desativacao_mapeamento_orgao_externo - * - * @return void - */ - public function test_pesquisar_mapeamento_orgao_externo() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastroOrgaoExterno->navegarCadastroOrgaoExterno(); - - // Buscar pesquisa vazia - $this->paginaCadastroOrgaoExterno->selecionarPesquisa(self::$destinatario['NOME_UNIDADE'] . 'B'); - $nomeRepositorioCadastrado = $this->paginaCadastroOrgaoExterno->buscarNome(self::$destinatario['NOME_UNIDADE']); - $this->assertNull($nomeRepositorioCadastrado); - - // Buscar pesquisa com sucesso - $this->paginaCadastroOrgaoExterno->selecionarPesquisa(self::$destinatario['NOME_UNIDADE']); - $nomeRepositorioCadastrado = $this->paginaCadastroOrgaoExterno->buscarNome(self::$destinatario['NOME_UNIDADE']); - $this->assertNotNull($nomeRepositorioCadastrado); - - $this->sairSistema(); - } - - public static function tearDownAfterClass(): void - { - $penOrgaoExternoFixture = new \PenOrgaoExternoFixture(); - $penOrgaoExternoFixture->remover([ - 'Id' => self::$penOrgaoExternoId, - ]); - - parent::tearDownAfterClass(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/PaginaConfiguracaoModuloRenomeadoTest.php b/tests_super/funcional/tests/PaginaConfiguracaoModuloRenomeadoTest.php deleted file mode 100644 index c3b163208..000000000 --- a/tests_super/funcional/tests/PaginaConfiguracaoModuloRenomeadoTest.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -class PaginaConfiguracaoModuloRenomeadoTest extends FixtureCenarioBaseTestCase -{ - protected static $remetente; - protected static $destinatario; - - function setUp(): void - { - parent::setUp(); - } - - public function test_pagina_configuracao_modulo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaConfiguracaoModuloRenomeado->navegarPaginaConfiguracaoModulo(); - - $value = $this->paginaConfiguracaoModuloRenomeado->getTituloPaginaConfiguracao(); - - $menssagemValidacao = mb_convert_encoding('Parmetros de Configurao do Mdulo Tramita GOV.BR', 'UTF-8', 'ISO-8859-1'); - - $this->assertStringContainsString( - $menssagemValidacao, - $value - ); - } - - public function test_pagina_novo_mapeamento_unidade() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaConfiguracaoModuloRenomeado->navegarPaginaNovoMapeamentoUnidade(); - - $value = $this->paginaConfiguracaoModuloRenomeado->getTituloPaginaNovoMapeamentoUnidade(); - - $menssagemValidacao = mb_convert_encoding('Unidades do Tramita GOV.BR (Estruturas Organizacionais):', 'UTF-8', 'ISO-8859-1'); - - $this->assertStringContainsString( - $menssagemValidacao, - $value - ); - } - - public function test_pagina_hipotese_restricao_padrao() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaConfiguracaoModuloRenomeado->navegarPaginaHipoteseRestricaoPadrao(); - - $value = $this->paginaConfiguracaoModuloRenomeado->getTituloPaginaHipoteseRestricaoPadrao(); - - $menssagemValidacao = mb_convert_encoding('Hiptese de Restrio Padro - Tramita GOV.BR', 'UTF-8', 'ISO-8859-1'); - - $this->assertStringContainsString( - $menssagemValidacao, - $value - ); - } -} diff --git a/tests_super/funcional/tests/PesquisarMapeamentoUnidadeTest.php b/tests_super/funcional/tests/PesquisarMapeamentoUnidadeTest.php deleted file mode 100644 index 8cc3e8c3c..000000000 --- a/tests_super/funcional/tests/PesquisarMapeamentoUnidadeTest.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -class PesquisarMapeamentoUnidadeTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - - /** - * Teste da listagem de mapeamento de unidades - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_listagem_mapeamento_unidade_sigla_nao_encontrada() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->navegarMapeamentoUnidade(); - $this->byId('txtSiglaUnidade')->value('00000'); - $this->byId('btnPesquisar')->click(); - - $mensagem = mb_convert_encoding('Nenhum mapeamento foi encontrado', 'UTF-8', 'ISO-8859-1'); - - $this->waitUntil(function ($testCase) use ($mensagem) { - $this->assertStringContainsString($mensagem, $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function test_listagem_mapeamento_unidade_sigla_encontrada() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->navegarMapeamentoUnidade(); - $this->byId('txtSiglaUnidade')->value('TESTE'); - $this->byId('btnPesquisar')->click(); - - $mensagem = mb_convert_encoding('TESTE', 'UTF-8', 'ISO-8859-1'); - - $this->waitUntil(function ($testCase) use ($mensagem) { - $this->assertStringContainsString($mensagem, $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function test_listagem_mapeamento_unidade_descricao_nao_encontrada() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->navegarMapeamentoUnidade(); - $this->byId('txtDescricaoUnidade')->value('00000'); - $this->byId('btnPesquisar')->click(); - - $mensagem = mb_convert_encoding('Nenhum mapeamento foi encontrado', 'UTF-8', 'ISO-8859-1'); - - $this->waitUntil(function ($testCase) use ($mensagem) { - $this->assertStringContainsString($mensagem, $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - public function test_listagem_mapeamento_unidade_descricao_encontrada() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->navegarMapeamentoUnidade(); - $this->byId('txtDescricaoUnidade')->value('Unidade de Teste'); - $this->byId('btnPesquisar')->click(); - - $mensagem = mb_convert_encoding('Unidade de Teste', 'UTF-8', 'ISO-8859-1'); - - $this->waitUntil(function ($testCase) use ($mensagem) { - $this->assertStringContainsString($mensagem, $testCase->byCssSelector('body')->text()); - return true; - }, PEN_WAIT_TIMEOUT); - } - -} \ No newline at end of file diff --git a/tests_super/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php b/tests_super/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php deleted file mode 100644 index 2912e6c6a..000000000 --- a/tests_super/funcional/tests/ProcessoBlocoDeTramiteTravasDeTramitacaoTest.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -/** - * Testes de mapeamento de envio de envio parcial - */ -class ProcessoBlocoDeTramiteTravasDeTramitacaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objProtocoloDTO; - - /** - * Teste inicial que gera processsos com documentos assinados e bloco, em seguida move para unidade secundaria mantendo-o aberto na atual - * e tenta executar o tramite em bloco para receber a mensagem de erro - * - * @group mapeamento - * - * @return void - */ - public function test_validar_tramite_bloco_mensagem_multi_unidade() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $processoTeste = $this->gerarDadosProcessoTeste($remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste($remetente); - - // Cadastrar novo processo de teste e documento - self::$objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, self::$objProtocoloDTO->getDblIdProtocolo()); - - // Cadastrar novo bloco de tramite e insere protocolo - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abre processo e tramita internamente ele para a unidade secundria, deixando ele aberto na atual - $this->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], true); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - try { - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } catch (Exception $ex) { - $this->assertStringContainsString( - utf8_encode('No possvel tramitar um processo aberto em mais de uma unidade.'), - $ex->getMessage() - ); - } - } - - /** - * Teste seguinte que finaliza o processo na unidade atual deixando-o aberto apenas na unidade secundaria - * e tenta executar o tramite em bloco para receber a mensagem de erro - * - * @group mapeamento - * - * @return void - */ - public function test_validar_tramite_bloco_mensagem_nao_possui_andamento_aberto() - { - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abre e conclui processo na unidade atual, desta forma ficando aberto apenas na unidade secundaria - $this->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $this->paginaProcesso->concluirProcesso(); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - try { - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } catch (Exception $ex) { - $this->assertStringContainsString( - utf8_encode('O processo ' . self::$objProtocoloDTO->getStrProtocoloFormatado() . ' no possui andamento aberto nesta unidade'), - $ex->getMessage() - ); - } - } - -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TODO.txt b/tests_super/funcional/tests/TODO.txt deleted file mode 100755 index 39269254b..000000000 --- a/tests_super/funcional/tests/TODO.txt +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################################################################################ -# Lista de testes pendentes de automação e com registro de erro no sistema # -################################################################################################################################################ - -# TODO: Implementar testa para simular erro quando unidades não estão mapeadas em md_pen_unidade -# TODO: Implementar teste para simular se botão tramitar continua aparecendo, mesmo com Barramento indisponível -# TODO: Testar se processo está abrindo normalmente quando não existe comunicação com o barramento -# TODO: Não está sendo tratado as permissões de acesso ao botão de visualizar recibos de trâmite -# TODO: Implementar testes com envio de processo e problema no envio de recibo de conclusão pelo destinatário por questões de indisponibilidade do barramento -# Todo: Implementar teste de desligamento do gearman com vários processos na lista -# TODO: Implementar testes com unidades contendo mapeamentos errados, ou seja, não sendo representando pelo sistema. - - -# TODO: Quando o usuário está sem as devidas permissões aos recursos do módulo, são disparado erros não tratados nas funcionalidades do sistema -# TODO: Ícone de alerta de rejeição e mensagem de rejeição não aparecem na página do processo, somente em Controle de Processo -# TODO: Agendamento de verificação do módulo não está lançando exceção, fazendo que com que o e-mail não seja enviado para o administrador -# TODO: Pesquisa de unidades está registrando erro no log do SEI caso não encontre uma unidade -# TODO: Adicionar botão de pesquisar -# TODO: Pesquisa de unidades deve considerar a também a sigla de unidade ou sigla da hierarquia -# TODO: Mudar popup de barra de progresso para impedir que navegador faça o bloqueio -# TODO: Adicionar botão fechar ao popup de barra de progresso do trâmite externo -# TODO: Adicionar opção de ocultar/extender registros da página de trâmite de processos -# TODO: Implementar tratamento para unidades receptoras -# TODO: Implementar o envio de dados da assinatura digital de documentos externos -# TODO: Implementar trâmite de processos anexados e e-mail com anexos -# TODO: Revisar mensagens de notificação para o usuário final - diff --git a/tests_super/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php b/tests_super/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php deleted file mode 100755 index f3eb491a8..000000000 --- a/tests_super/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest.php +++ /dev/null @@ -1,234 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteBlocoDeTramiteSituacaoProcessoConcluidoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco_status6() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocolo = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - ]); - - $this->assertEquals(6, $objBlocoDeTramiteProtocolo[0]->getNumIdAndamento()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco_status7() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->abrirProcesso($objProtocoloDTO->getStrProtocoloFormatado()); - $this->paginaProcesso->cancelarTramitacaoExterna(); - $this->paginaTramitar->alertTextAndClose(true); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocolo = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - ]); - - $this->assertEquals(7, $objBlocoDeTramiteProtocolo[0]->getNumIdAndamento()); - return true; - }, PEN_WAIT_TIMEOUT); - } - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco_status9() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($remetente, 'arquivo_extensao_nao_permitida.docx'); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoExternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocolo = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - ]); - - $this->assertEquals(9, $objBlocoDeTramiteProtocolo[0]->getNumIdAndamento()); - return true; - }, PEN_WAIT_TIMEOUT); - } - -} diff --git a/tests_super/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php b/tests_super/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php deleted file mode 100755 index c76e5b886..000000000 --- a/tests_super/funcional/tests/TramiteBlocoDeTramiteSituacaoProcessoTest.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteBlocoDeTramiteSituacaoProcessoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $idsEmAndamento; - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_situacao_do_processo_no_bloco() - { - self::$idsEmAndamento = [ - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_INICIADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_METADADOS_RECEBIDO_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_RECEBIDOS_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_ENVIADO_DESTINATARIO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO - ]; - - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - $this->waitUntil(function ($testCase) use ($objProtocoloDTO) { - sleep(5); - $testCase->refresh(); - - $colunaEstado = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr/td[3]')); - $this->assertEquals("Aguardando Processamento", $colunaEstado[0]->text()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->buscar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() - ])[0]; - - $statusEmAndamento = in_array($objBlocoDeTramiteProtocoloFixtureDTO->getNumIdAndamento(), self::$idsEmAndamento); - $this->assertTrue($statusEmAndamento); - return true; - }, PEN_WAIT_TIMEOUT); - } - -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoCadastroTest.php b/tests_super/funcional/tests/TramiteBlocoExternoCadastroTest.php deleted file mode 100644 index 7e37d24e1..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoCadastroTest.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -/** - * Cadastrar e editrar bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoCadastroTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * Teste de cadastro de novo bloco de tramite externo - * - * @return void - */ - public function test_cadastrar_novo_bloco_para_tramite_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->novoBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->criarNovoBloco(); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Bloco de Trmite externo criado com sucesso!', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Teste para editar bloco de trmite externo j criado - * - * @return void - */ - public function test_editar_bloco_de_tramite() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->editarBlocoDeTramite('Bloco editado para teste automatizado'); - $this->paginaCadastrarProcessoEmBloco->btnSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Bloco de trmite externo alterado com sucesso!', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php b/tests_super/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php deleted file mode 100644 index 8967980f4..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest.php +++ /dev/null @@ -1,240 +0,0 @@ -<?php - -class TramiteBlocoExternoComProcessoNaoMapeadoRecusaTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - public static $processoTeste1; - public static $objProtocoloDTO1; - public static $documentoTeste1; - - public static $processoTeste2; - public static $objProtocoloDTO2; - public static $documentoTeste2; - - public static $processoTeste3; - public static $objProtocoloDTO3; - public static $documentoTeste3; - - public static $objBlocoDeTramiteDTO1; - public static $objBlocoDeTramiteDTO2; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - - putenv("DATABASE_HOST=org2-database"); - $objTipoProcessoPadraoFixture = new \TipoProcessoPadraoFixture(); - $objTipoProcessoPadraoFixture->carregar([ - 'Nome' => 'PEN_TIPO_PROCESSO_EXTERNO', - 'Valor' => null - ]); - putenv("DATABASE_HOST=org1-database"); - } - - public function test_tramite_bloco_externo_com_processo_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->prepararCenariosFixtures(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - // Sada do sistema - $this->sairSistema(); - } - - public function test_verificar_envio_processo() - { - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalEmProcessamento = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - try { - $statusImg = $statusTd->byXPath(mb_convert_encoding(".//img[@title='Aguardando Processamento']", 'UTF-8', 'ISO-8859-1')); - if ($statusImg){ - $totalEmProcessamento++; - } - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada - } - } - $this->assertEquals($totalEmProcessamento,0); // Todos processos enviados - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(5); - } - - public function test_verificar_envio_tramite_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $novoStatus); - - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $quantidadeLinhasRecusadas = $this->paginaCadastrarProcessoEmBloco->buscarQuantidadeProcessosRecusados(); - - $this->assertEquals($quantidadeLinhasRecusadas, 1); - - // Sada do sistema - $this->sairSistema(); - } - - public function test_incluir_processo_recusado_em_novo_bloco() - { - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - self::$objBlocoDeTramiteDTO2 = $objBlocoDeTramiteFixture->carregar(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = self::$objProtocoloDTO3->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Verificao do ttulo da pgina - $titulo = mb_convert_encoding("Incluir Processo(s) no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'); - $tituloRetorno = $this->paginaTramiteEmBloco->verificarTituloDaPagina($titulo); - $this->assertEquals($titulo, $tituloRetorno); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO2->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Espera para a mensagem de sucesso aparecer - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . self::$objBlocoDeTramiteDTO2->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } - - private function prepararCenariosFixtures() - { - // Carregar dados do bloco de trmite - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - self::$objBlocoDeTramiteDTO1 = $objBlocoDeTramiteFixture->carregar(); - - // Gerao dos dados para o processo e documento de teste 1 - self::$processoTeste1 = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - // Cadastro do processo e documento 1 - self::$objProtocoloDTO1 = $this->cadastrarProcessoFixture(self::$processoTeste1); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, self::$objProtocoloDTO1->getDblIdProtocolo()); - $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO1->getDblIdProtocolo(), - 'IdBloco' => self::$objBlocoDeTramiteDTO1->getNumId() - ]); - - // Gerao dos dados para o processo e documento de teste 2 - self::$processoTeste2 = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastro do processo e documento 2 - self::$objProtocoloDTO2 = $this->cadastrarProcessoFixture(self::$processoTeste2); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$objProtocoloDTO2->getDblIdProtocolo()); - $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO2->getDblIdProtocolo(), - 'IdBloco' => self::$objBlocoDeTramiteDTO1->getNumId() - ]); - - // Gerao dos dados para o processo e documento de teste 3 recusa - self::$processoTeste3 = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objTipoProcedimentoDTO = $this->cadastrarTipoProcedimentoFixture([ - 'NOME' => 'Recusa: Teste Funcional', - ]); - self::$processoTeste3['ID_TIPO_PROCESSO'] = $objTipoProcedimentoDTO->getNumIdTipoProcedimento(); - - // Cadastro do processo e documento 3 recusa - self::$objProtocoloDTO3 = $this->cadastrarProcessoFixture(self::$processoTeste3); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, self::$objProtocoloDTO3->getDblIdProtocolo()); - $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => self::$objProtocoloDTO3->getDblIdProtocolo(), - 'IdBloco' => self::$objBlocoDeTramiteDTO1->getNumId() - ]); - } - - public static function tearDownAfterClass(): void - { - putenv("DATABASE_HOST=org2-database"); - parent::tearDownAfterClass(); - $objTipoProcessoPadraoFixture = new \TipoProcessoPadraoFixture(); - $objTipoProcessoPadraoFixture->carregar([ - 'Nome' => 'PEN_TIPO_PROCESSO_EXTERNO', - 'Valor' => '100000256' - ]); - putenv("DATABASE_HOST=org1-database"); - } -} diff --git a/tests_super/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php b/tests_super/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php deleted file mode 100644 index 6ed68cd23..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoEstadoProcessosTest.php +++ /dev/null @@ -1,177 +0,0 @@ -<?php -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoEstadoProcessosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - public static $documentoTeste; - - /** - * Incluir processo que contm documento de outra unidade dentro de um bloco externo - * - * @return void - */ - public function test_inclusao_de_processo_com_base_no_estado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $arrProcessosTestes = $this->cadastrarBlocoComProcessosComEstadoDeTramite(); - - $arrNupsProcessosTestes = array_keys($arrProcessosTestes); - - $strProcessoNaoEnviado = $arrNupsProcessosTestes[0]; - $strProcessoSucesso = $arrNupsProcessosTestes[1]; - $strProcessoCancelado = $arrNupsProcessosTestes[2]; - $strProcessoRecusado = $arrNupsProcessosTestes[3]; - $strProcessoAguardandoProcessamento = $arrNupsProcessosTestes[4]; - - // Testar Incluso de processo com estado de NO ENVIADO no bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoNaoEnviado, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding( - "Prezado(a) usurio(a), o processo " . $strProcessoNaoEnviado - . " encontra-se inserido no bloco" - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Testar Incluso de processo com estado de SUCESSO em outro bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoSucesso, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Testar Incluso de processo com estado de CANCELADO em outro bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoCancelado, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Testar Incluso de processo com estado de AGUARDANDO PROCESSAMENTO em outro bloco de tramite - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $mensagem = $this->inserirProcessoEmUmBloco($strProcessoAguardandoProcessamento, $objBlocoDeTramiteDTO->getNumId()); - $this->assertStringContainsString( - mb_convert_encoding( - "Prezado(a) usurio(a), o processo " . $strProcessoAguardandoProcessamento - . " encontra-se inserido no bloco" - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra processo em um bloco de tramite - */ - public function cadastrarProcessoBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteProtocoloFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } - - /** - * Registra um bloco contendo um processo, atribuindo-lhe o estado especificado do processo em um tramite em bloco. - * Estados possveis: Aberto, Em processamento, Recusado, Cancelado, Sucesso - * - * @return array - */ - private function cadastrarBlocoComProcessosComEstadoDeTramite() - { - $arrEstados = [ - null, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECIBO_RECEBIDO_REMETENTE, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_CANCELADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_RECUSADO, - ProcessoEletronicoRN::$STA_SITUACAO_TRAMITE_COMPONENTES_ENVIADOS_REMETENTE, - ]; - - $arrProcessosComEstado = []; - for ($i = 0; $i < count($arrEstados); $i++) { - - $objProtocoloDTO = $this->cadastrarProcessos(); - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $dadosBlocoProcesso = []; - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - - $arrProcessosComEstado[$protocoloFormatado] = $arrEstados[$i]; - - // Popula o array com os dados necessrios para esta iterao - $dadosBlocoProcesso['IdUnidadeOrigem'] = self::$remetente['ID_ESTRUTURA']; - $dadosBlocoProcesso['IdUnidadeDestino'] = self::$destinatario['ID_ESTRUTURA']; - $dadosBlocoProcesso['UnidadeDestino'] = self::$destinatario['NOME_UNIDADE']; - $dadosBlocoProcesso['IdBloco'] = $objBlocoDeTramiteDTO->getNumId(); - $dadosBlocoProcesso['IdProtocolo'] = $objProtocoloDTO->getDblIdProtocolo(); - $dadosBlocoProcesso['IdAndamento'] = $arrEstados[$i]; - - $dadosBlocoProcesso['IdRepositorioOrigem'] = self::$remetente['ID_ESTRUTURA'] ?: null; - $dadosBlocoProcesso['IdRepositorioDestino'] = self::$destinatario['ID_REP_ESTRUTURAS'] ?: null; - $dadosBlocoProcesso['RepositorioDestino'] = self::$remetente['NOME_UNIDADE'] ?: null; - - $this->cadastrarProcessoBlocoDeTramite($dadosBlocoProcesso); - } - - return $arrProcessosComEstado; - } - - private function inserirProcessoEmUmBloco($strProtocoloFormatado, $numIdBloco) - { - $this->paginaBase->navegarParaControleProcesso(); - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - $this->paginaTramiteEmBloco->selecionarProcessos([$strProtocoloFormatado]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco($numIdBloco); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(2); - return $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php b/tests_super/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php deleted file mode 100644 index ff03308d5..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php - -/** - * Classe TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest - * - * Esta classe contm testes automatizados para a incluso de processos e documentos - * em blocos de trmite quando h hipteses legais no mapeadas. A classe estende - * FixtureCenarioBaseTestCase e se concentra em dois cenrios principais: - * - * 1. Incluso de processo restrito com hiptese legal no mapeada. - * 2. Incluso de documento restrito com hiptese legal no mapeada. - */ -class TramiteBlocoExternoInclusaoDeProcessoEmBlocoComHipoteseLegalNaoMapeadaTest extends FixtureCenarioBaseTestCase -{ - /** - * @var array $remetente Dados do remetente do processo - */ - public static $remetente; - - /** - * @var array $destinatario Dados do destinatrio do processo - */ - public static $destinatario; - - /** - * Teste: Incluso de processo em bloco restrito com hiptese legal no mapeada - * - * Este mtodo testa a incluso de um processo restrito em um bloco de trmite - * quando h uma hiptese legal no mapeada associada ao processo. - * - * Passos do teste: - * - Configurao do cenrio de teste com remetente e destinatrio. - * - Gerao de dados do processo e documento para o teste. - * - Cadastro de uma hiptese legal no mapeada para o processo. - * - Incluso do processo no bloco de trmite e verificao da mensagem de alerta. - */ - public function teste_inclusao_de_processo_em_bloco_restrito_com_hipotese_legal_nao_mapeada() - { - // Configurao dos dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Gerao dos dados para o processo e documento de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar Hiptese Legal no mapeada para tramitar o processo - $objHipoteseLegalDTO = $this->cadastrarHipoteseLegal([ - 'HIPOTESE_LEGAL' => 'Hipotese Legal Recusa Processo', - 'HIPOTESE_LEGAL_BASE_LEGAL' => 'Base Hipotese Legal Recusa Processo' - ]); - $processoTeste["HIPOTESE_LEGAL"] = $objHipoteseLegalDTO->getStrNome(). '('. $objHipoteseLegalDTO->getStrBaseLegal().')'; - $processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - - // Cadastro do processo e documento - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegao para controle de processo e seleo de visualizao detalhada - $this->paginaBase->navegarParaControleProcesso(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Verificar se a mensagem de sucesso foi exibida - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - // Validao: a mensagem de alerta deve conter a hiptese legal no mapeada - $this->assertStringContainsString( - mb_convert_encoding('Hiptese legal "'. $objHipoteseLegalDTO->getStrNome() . '" do processo '.$protocoloFormatado.' no mapeada', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } - - /** - * Teste: Incluso de documento restrito com hiptese legal no mapeada - * - * Este mtodo testa a incluso de um documento restrito em um processo com - * uma hiptese legal no mapeada. - * - * Passos do teste: - * - Configurao do cenrio de teste com remetente e destinatrio. - * - Gerao de dados do processo e documento para o teste. - * - Cadastro de uma hiptese legal no mapeada para o documento. - * - Incluso do documento no bloco de trmite e verificao da mensagem de alerta. - */ - public function teste_inclusao_de_processo_em_bloco_com_documento_restrito_com_hipotese_legal_nao_mapeada() - { - // Configurao dos dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Gerao dos dados para o processo e documento de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastro do processo e documento - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - // Cadastrar Hiptese Legal no mapeada para tramitar o documento - $objHipoteseLegalDTO = $this->cadastrarHipoteseLegal([ - 'HIPOTESE_LEGAL' => 'Hipotese Legal Recusa Documento', - 'HIPOTESE_LEGAL_BASE_LEGAL' => 'Base Hipotese Legal Recusa Documento' - ]); - - $documentoTeste["HIPOTESE_LEGAL"] = $objHipoteseLegalDTO->getStrNome(). '('. $objHipoteseLegalDTO->getStrBaseLegal().')'; - $documentoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; - - // Cadastro do documento restrito - $objDocummentoDTO = $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegao para controle de processo e seleo de visualizao detalhada - $this->paginaBase->navegarParaControleProcesso(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Verificar se a mensagem de sucesso foi exibida - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - // Validao: a mensagem de alerta deve conter a hiptese legal no mapeada - $numeroDocumento = str_pad($objDocummentoDTO->getDblIdDocumento(), 6, "0", STR_PAD_LEFT); - $this->assertStringContainsString( - mb_convert_encoding('Hiptese legal "'. $objHipoteseLegalDTO->getStrNome() . '" do documento Ofcio '.$numeroDocumento.' no mapeada', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } -} diff --git a/tests_super/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php b/tests_super/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php deleted file mode 100644 index 5cad66c85..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -/** - * Classe de Teste para Incluso de Processo por Visualizao Detalhada em Bloco de Trmite. - * - * Esta classe realiza testes automatizados para verificar a incluso de processos em blocos de trmite - * atravs da visualizao detalhada. O teste simula um usurio acessando o sistema, selecionando um processo - * e adicionando-o a um bloco de trmite especfico, validando se a operao foi realizada com sucesso. - */ -class TramiteBlocoExternoInclusaoDeProcessoPorVisualizacaoDetalhadaTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - /** - * Mtodo que testa a incluso de um processo por meio da visualizao detalhada. - * - * Este mtodo configura o contexto do teste, gera dados necessrios para o teste de incluso, - * realiza o acesso ao sistema, navega at a seo de controle de processos e executa a incluso do - * processo no bloco de trmite. Aps a incluso, o mtodo verifica se a mensagem de sucesso exibida - * corretamente. - * - * @return void - */ - public function teste_inclusao_de_processo_por_visualizacao_detalhada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Gerao dos dados para o processo e documento de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastro do processo e documento - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Carregar dados do bloco de trmite - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acesso ao sistema - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegao para controle de processo e seleo de visualizao detalhada - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarVisualizacaoDetalhada(); - - // Seleo do processo e do bloco de trmite - $protocoloFormatado = $objProtocoloDTO->getStrProtocoloFormatado(); - $this->paginaTramiteEmBloco->selecionarProcesso($protocoloFormatado); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - - // Verificao do ttulo da pgina - $titulo = mb_convert_encoding("Incluir Processo(s) no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'); - $tituloRetorno = $this->paginaTramiteEmBloco->verificarTituloDaPagina($titulo); - $this->assertEquals($titulo, $tituloRetorno); - - // Incluso do processo no bloco de trmite - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - // Espera para a mensagem de sucesso aparecer - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - // Sada do sistema - $this->sairSistema(); - } -} diff --git a/tests_super/funcional/tests/TramiteBlocoExternoInclusaoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoInclusaoTest.php deleted file mode 100644 index 3734072c5..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoInclusaoTest.php +++ /dev/null @@ -1,156 +0,0 @@ -<?php -/** - * Cadastrar e editrar bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoInclusaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - - /** - * Teste em duas etapas - * 1 - Verifica se o bloco criado na unidade secundaria vista na listagem da SUA unidade. Esperado: retorne True - * 2 - Verifica se o bloco criado na unidade secundaria vista na listagem de OUTRA unidade. Esperado: retorne False - * - * @return void - */ - public function test_verificar_inclusao_em_bloco_de_outra_unidade() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE_SECUNDARIA']); - $dados = [ - 'IdUnidade' => 110000002, - 'Descricao' => 'bloco_criado_' . self::$remetente['SIGLA_UNIDADE_SECUNDARIA'] - ]; - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite($dados); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - - // etapa 1 - $arrColunaDescricao = $this->elements($this->using('xpath')->value("//td[4]")); - $bolEncontrado = false; - foreach ($arrColunaDescricao as $elemento) { - if (trim($elemento->text()) === self::$objBlocoDeTramiteDTO->getStrDescricao()) { - $bolEncontrado = true; - break; - } - } - - $this->assertTrue($bolEncontrado); - - // etapa 2 - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE']); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - - $arrColunaDescricao = $this->elements($this->using('xpath')->value("//td[4]")); - - $bolEncontrado = false; - foreach ($arrColunaDescricao as $elemento) { - if (trim($elemento->text()) === self::$objBlocoDeTramiteDTO->getStrDescricao()) { - $bolEncontrado = true; - break; - } - } - - $this->assertFalse($bolEncontrado); - - $this->sairSistema(); - } - - /** - * Teste Incluir processo j adicionado em outro bloco - * - * @return void - */ - public function test_incluir_processo_em_mais_de_um_bloco() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - self::$objProtocoloDTO = $this->cadastrarProcessos(); - $objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $dados = [ - 'IdProtocolo' => self::$objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]; - - $this->cadastrarProcessoBlocoDeTramite($dados); - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - - $this->paginaBase->navegarParaControleProcesso(); - - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding( - 'Prezado(a) usurio(a), o processo ' . self::$objProtocoloDTO->getStrProtocoloFormatado() - . ' encontra-se inserido no bloco ' . $objBlocoDeTramiteDTO->getNumOrdem() . ' - ' - . self::$objBlocoDeTramiteDTO->getStrDescricao() - . ' da unidade ' . self::$remetente['SIGLA_UNIDADE'] - . '. Para continuar com essa ao necessrio que o processo seja removido do bloco em questo.' - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarProcessoBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteProtocoloFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php deleted file mode 100644 index ae069d57f..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php +++ /dev/null @@ -1,147 +0,0 @@ -<?php - -/** - * Teste de tramite de processos em bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoLimiteAnexoTest extends FixtureCenarioBaseTestCase -{ - protected static $numQtyProcessos = 2; // max: 99 - protected static $tramitar = false; // mude para false, caso queira rodar o script sem o tramite final - - public static $remetente; - public static $destinatario; - - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - } - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * @large - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - // Definio de dados de teste do processo principal - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_pequeno_A.pdf'); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - for ($i = 0; $i < self::$numQtyProcessos; $i++) { - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoExternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - } - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - if (self::$tramitar == true) { - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - sleep(10); - } else { - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - $qtyProcessos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->assertEquals($qtyProcessos, self::$numQtyProcessos); - } - - $this->sairSistema(); - } - - public function test_verificar_envio_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalConcluidos = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - if (self::$tramitar == true) { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Concludo'])", 'UTF-8', 'ISO-8859-1')); - } else { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Em aberto'])", 'UTF-8', 'ISO-8859-1')); - } - $totalConcluidos++; - } - $this->assertEquals($totalConcluidos, self::$numQtyProcessos); - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(5); - } - - public function test_verificar_envio_tramite_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - - if (self::$tramitar == true) { - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $novoStatus); - } else { - $this->assertEquals(mb_convert_encoding("Aberto", 'UTF-8', 'ISO-8859-1'), $novoStatus); - } - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php b/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php deleted file mode 100644 index 0afa56e49..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php - -/** - * Teste de tramite de processos em bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoLimiteTest extends FixtureCenarioBaseTestCase -{ - protected static $numQtyProcessos = 4; // max: 99 - protected static $tramitar = false; // mude para false, caso queira rodar o script sem o tramite final - - public static $remetente; - public static $destinatario; - - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - public function teste_tramite_bloco_externo() - { - // Definio de dados de teste do processo principal - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - for ($i = 0; $i < self::$numQtyProcessos; $i++) { - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - } - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - - if (self::$tramitar == true) { - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - sleep(5); - - } else { - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - $qtyProcessos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->assertEquals($qtyProcessos, self::$numQtyProcessos); - } - - $this->sairSistema(); - } - - /** - * Verificar se o bloco foi enviado - * - * - * @return void - */ - public function test_verificar_envio_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalConcluidos = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - if (self::$tramitar == true) { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Concludo'])", 'UTF-8', 'ISO-8859-1')); - } else { - $statusImg = $statusTd->byXPath(mb_convert_encoding("(//img[@title='Em aberto'])", 'UTF-8', 'ISO-8859-1')); - } - $totalConcluidos++; - } - $this->assertEquals($totalConcluidos, self::$numQtyProcessos); - return true; - }, PEN_WAIT_TIMEOUT); - - sleep(5); - - $this->sairSistema(); - } - - /** - * Verificar atualizao do bloco - * - * - * @return void - */ - public function test_verificar_envio_tramite_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - - if (self::$tramitar == true) { - $this->waitUntil(function ($testCase) { - sleep(5); - $testCase->refresh(); - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - $this->assertNotEquals('Aguardando Processamento', $novoStatus); - return true; - }, PEN_WAIT_TIMEOUT); - - $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); - $this->assertEquals(mb_convert_encoding("Concludo", 'UTF-8', 'ISO-8859-1'), $novoStatus); - } else { - $this->assertEquals("Aberto", $novoStatus); - } - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php deleted file mode 100644 index 48acc93a9..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** - * Teste de incluso de processo em bloco - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoProcessoJaIncluidoEmBlocoTest extends FixtureCenarioBaseTestCase -{ - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - public static $remetente; - public static $penOrgaoExternoId; - - /** - * @inheritdoc - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - } - - /** - * Teste de incluso de processo em bloco - * @return void - */ - public function teste_incluir_processo_em_bloco() - { - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - self::$objProtocoloDTO = $this->cadastrarProcessos(); - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Processo(s) includo(s) com sucesso no bloco ' . self::$objBlocoDeTramiteDTO->getNumOrdem(), 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->paginaBase->sairSistema(); - } - - /** - * Teste de incluso do mesmo processo em bloco - * @return void - */ - public function teste_mesmo_processo_em_bloco() - { - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - $this->assertStringContainsString( - mb_convert_encoding( - 'Prezado(a) usurio(a), o processo ' . self::$objProtocoloDTO->getStrProtocoloFormatado() - . ' encontra-se inserido no bloco ' . self::$objBlocoDeTramiteDTO->getNumOrdem() . ' - ' - . self::$objBlocoDeTramiteDTO->getStrDescricao() - . ' da unidade ' . self::$objBlocoDeTramiteDTO->getStrSiglaUnidade() - . '. Para continuar com essa ao necessrio que o processo seja removido do bloco em questo.' - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->paginaBase->sairSistema(); - } - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite() - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar(); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoTest.php deleted file mode 100644 index 8fcf31a76..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoTest.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php - -/** - * Enviar bloco simples - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - - public function teste_tramite_bloco_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - sleep(1); - - $this->sairSistema(); - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoUnidadeTest.php b/tests_super/funcional/tests/TramiteBlocoExternoUnidadeTest.php deleted file mode 100644 index 546b099fc..000000000 --- a/tests_super/funcional/tests/TramiteBlocoExternoUnidadeTest.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteBlocoExternoUnidadeTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $objBlocoDeTramiteDTO; - public static $objProtocoloDTO; - public static $documentoTeste; - - /** - * Incluir processo que contm documento de outra unidade dentro de um bloco externo - * - * @return void - */ - public function test_envio_de_bloco_externo_para_outra_unidade() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - self::$objProtocoloDTO = $this->cadastrarProcessos(); - - $this->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - // enviar processo e criar documento na unidade secundria - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE_SECUNDARIA']); - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE_SECUNDARIA']); - - $this->paginaControleProcesso->abrirProcesso(self::$objProtocoloDTO->getStrProtocoloFormatado()); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentoTeste['UNIDADE_RESPONSAVEL'] = 110000002; - $this->cadastrarDocumentoInternoFixture($documentoTeste, self::$objProtocoloDTO->getDblIdProtocolo()); - - // devolver processo com novo documento - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE']); - $this->selecionarUnidadeInterna(self::$remetente['SIGLA_UNIDADE']); - - self::$objBlocoDeTramiteDTO = $this->cadastrarBlocoDeTramite(); - sleep(2); - - $this->paginaTramiteEmBloco->selecionarProcessos([self::$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(1); - $mensagem = $this->paginaCadastrarProcessoEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding( - "Processo(s) includo(s) com sucesso no bloco " . self::$objBlocoDeTramiteDTO->getNumOrdem() - , 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - - $this->sairSistema(); - } - - - /** - * Cadastra o bloco de tramite - */ - public function cadastrarBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra processo em um bloco de tramite - */ - public function cadastrarProcessoBlocoDeTramite($dados = []) - { - $objBlocoDeTramiteFixture = new \BlocoDeTramiteProtocoloFixture(); - return $objBlocoDeTramiteFixture->carregar($dados); - } - - /** - * Cadastra o bloco de tramite - */ - private function cadastrarProcessos() - { - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - return $objProtocoloDTO; - } -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteEnvioParcialTest.php b/tests_super/funcional/tests/TramiteEnvioParcialTest.php deleted file mode 100644 index 43f5fd9eb..000000000 --- a/tests_super/funcional/tests/TramiteEnvioParcialTest.php +++ /dev/null @@ -1,264 +0,0 @@ -<?php - -/** - * Teste de trmite com envio parcial habilitado - * - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteEnvioParcialTest extends FixtureCenarioBaseTestCase -{ - private $objProtocoloFixture; - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $protocoloTestePrincipal; - public static $documentoTeste1; - public static $documentoTeste2; - public static $arrIdMapEnvioParcialOrgaoA; - public static $arrIdMapEnvioParcialOrgaoB; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - /* - * Tramitar processo para o rgo 2 com envio parcial mapeado - * @group mapeamento - * - * @return void - */ - public function test_criar_processo_contendo_documento_tramitar_remetente_envio_parcial() - { - $this->criarCenarioTramiteEnvioParcialTest(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTestePrincipal->getStrProtocoloFormatado()); - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - $this->sairSistema(); - } - - /* - * Verificar processo recebido no rgo 2 com envio parcial mapeado - * @group mapeamento - * - * @depends test_criar_processo_contendo_documento_tramitar_remetente_envio_parcial - * @return void - */ - public function test_verificar_processo_recebido_tramitar_destinatario_envio_parcial() - { - $strProtocoloTeste = self::$protocoloTestePrincipal->getStrProtocoloFormatado(); - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $testCase->refresh(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - self::$processoTestePrincipal['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - $this->assertTrue(count($listaDocumentos) == 1); - - $this->sairSistema(); - } - - /* - * Devolver processo ao rgo 1 com envio parcial mapeado - * @group mapeamento - * - * @depends test_verificar_processo_recebido_tramitar_destinatario_envio_parcial - * @return void - */ - public function test_criar_documento_processo_recebido_tramitar_destinatario_envio_parcial() - { - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - putenv("DATABASE_HOST=org2-database"); - - $this->paginaBase->navegarParaControleProcesso(); - - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$destinatario); - $protocoloTestePrincipalOrg2 = $this->consultarProcessoFixture(self::$protocoloTestePrincipal->getStrProtocoloFormatado(), \ProtocoloRN::$TP_PROCEDIMENTO); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $protocoloTestePrincipalOrg2->getDblIdProtocolo()); - - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTestePrincipal->getStrProtocoloFormatado()); - - sleep(5); - - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$remetente['REP_ESTRUTURAS'], - self::$remetente['NOME_UNIDADE'], - self::$remetente['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - $this->sairSistema(); - } - - /* - * Verificar processo recebido no rgo 1 com envio parcial mapeado - * @group mapeamento - * - * @depends test_criar_documento_processo_recebido_tramitar_destinatario_envio_parcial - * @return void - */ - public function test_verificar_processo_recebido_tramitar_remetente_envio_parcial() - { - $strProtocoloTeste = self::$protocoloTestePrincipal->getStrProtocoloFormatado(); - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->navegarParaControleProcesso(); - $this->waitUntil(function ($testCase) use ($strProtocoloTeste) { - sleep(5); - $testCase->refresh(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - return true; - }, PEN_WAIT_TIMEOUT); - - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - self::$processoTestePrincipal['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - $this->assertTrue(count($listaDocumentos) == 2); - - $documentosTeste = array(self::$documentoTeste1, self::$documentoTeste2); - for ($i = 0; $i < count($listaDocumentos); $i++) { - $this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], self::$remetente, false, null); - } - - $this->sairSistema(); - } - - /** - * Excluir mapeamentos de Envio Parcial no Remetente e Destinatrio - * @group mapeamento - */ - public static function tearDownAfterClass(): void - { - $penMapEnvioParcialFixture = new \PenMapEnvioParcialFixture(); - - putenv("DATABASE_HOST=org1-database"); - foreach (self::$arrIdMapEnvioParcialOrgaoA as $idMapEnvioParcial) { - $penMapEnvioParcialFixture->remover([ - 'Id' => $idMapEnvioParcial - ]); - } - - putenv("DATABASE_HOST=org2-database"); - foreach (self::$arrIdMapEnvioParcialOrgaoB as $idMapEnvioParcial) { - $penMapEnvioParcialFixture->remover([ - 'Id' => $idMapEnvioParcial - ]); - } - putenv("DATABASE_HOST=org1-database"); - parent::tearDownAfterClass(); - } - - /* - * Criar processo e mapear Envio Parcial no Remetente e Destinatrio - * @group mapeamento - * - * @return void - */ - private function criarCenarioTramiteEnvioParcialTest() - { - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - self::$protocoloTestePrincipal = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, self::$protocoloTestePrincipal->getDblIdProtocolo()); - - // Mapear Envio Parcial no Remetente - self::$arrIdMapEnvioParcialOrgaoA = array(); - putenv("DATABASE_HOST=org1-database"); - $objPenMapEnvioParcialFixture = new PenMapEnvioParcialFixture(); - $objMapEnvioParcial = $objPenMapEnvioParcialFixture->carregar([ - 'IdEstrutura' => self::$destinatario['ID_REP_ESTRUTURAS'], - 'StrEstrutura' => self::$destinatario['REP_ESTRUTURAS'], - 'IdUnidadePen' => self::$destinatario['ID_ESTRUTURA'], - 'StrUnidadePen' => self::$destinatario['NOME_UNIDADE'] - ]); - self::$arrIdMapEnvioParcialOrgaoA[] = $objMapEnvioParcial->getDblId(); - - // Mapear Envio Parcial no Destinatrio - self::$arrIdMapEnvioParcialOrgaoB = array(); - putenv("DATABASE_HOST=org2-database"); - $objPenMapEnvioParcialFixture = new PenMapEnvioParcialFixture(); - $objMapEnvioParcial = $objPenMapEnvioParcialFixture->carregar([ - 'IdEstrutura' => self::$remetente['ID_REP_ESTRUTURAS'], - 'StrEstrutura' => self::$remetente['REP_ESTRUTURAS'], - 'IdUnidadePen' => self::$remetente['ID_ESTRUTURA'], - 'StrUnidadePen' => self::$remetente['NOME_UNIDADE'] - ]); - self::$arrIdMapEnvioParcialOrgaoB[] = $objMapEnvioParcial->getDblId(); - - putenv("DATABASE_HOST=org1-database"); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php b/tests_super/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php deleted file mode 100755 index 1223a42fe..000000000 --- a/tests_super/funcional/tests/TramiteProcessoAnexadoComDevolucaoTest.php +++ /dev/null @@ -1,291 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteProcessoAnexadoComDevolucaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Definio de dados de teste do processo a ser anexado - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento1DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - $objDocumento2DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $objProtocoloAnexadoDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento3DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - $objDocumento4DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - self::$protocoloTesteAnexado = $objProtocoloAnexadoDTO->getStrProtocoloFormatado(); - - // Preencher variaveis que sero usadas posteriormente nos testes - self::$documentoTeste1['ARQUIVO'] = str_pad($objDocumento1DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste2['ARQUIVO'] = str_pad($objDocumento2DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste3['ARQUIVO'] = str_pad($objDocumento3DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste4['ARQUIVO'] = str_pad($objDocumento4DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - - // Realizar a anexao de processos - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - } - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_anexado_da_origem - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_anexado - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Definio de dados de teste do processo principal - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoExternoTeste(self::$remetente,'arquivo_pequeno_A.pdf'); - - // Selecionar banco do org2 para fazer insero dos documentos - putenv("DATABASE_HOST=org2-database"); - - // Busca ID que Protocolo principal recebeu no org2 - $objProtocoloPrincipalOrg2DTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - - //Incluir novos documentos relacionados - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloPrincipalOrg2DTO->getDblIdProtocolo()); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste6, $objProtocoloPrincipalOrg2DTO->getDblIdProtocolo()); - - - //Fim das operaes no BD do org2 - putenv("DATABASE_HOST=org1-database"); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(5, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[4], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoAnexadoTest.php b/tests_super/funcional/tests/TramiteProcessoAnexadoTest.php deleted file mode 100755 index 2f79fb1a3..000000000 --- a/tests_super/funcional/tests/TramiteProcessoAnexadoTest.php +++ /dev/null @@ -1,162 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado - * - * Execution Groups - * @group execute_parallel_group2 - */ -class TramiteProcessoAnexadoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo contendo outro anexado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_anexado_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Definio de dados de teste do processo a ser anexado - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento1DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - $objDocumento2DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $objProtocoloAnexadoDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - $objDocumento3DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - $objDocumento4DTO = $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - self::$protocoloTesteAnexado = $objProtocoloAnexadoDTO->getStrProtocoloFormatado(); - - // Preencher variaveis que sero usadas posteriormente nos testes - self::$documentoTeste1['ARQUIVO'] = str_pad($objDocumento1DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste2['ARQUIVO'] = str_pad($objDocumento2DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste3['ARQUIVO'] = str_pad($objDocumento3DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - self::$documentoTeste4['ARQUIVO'] = str_pad($objDocumento4DTO->getDblIdDocumento(), 6, 0, STR_PAD_LEFT).'.html'; - - // Realizar a anexao de processos - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - - } - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_anexado_da_origem - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php b/tests_super/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php deleted file mode 100755 index aebc5bbaf..000000000 --- a/tests_super/funcional/tests/TramiteProcessoBlocoDeTramitePermissoesTest.php +++ /dev/null @@ -1,294 +0,0 @@ -<?php - -/** - * Blocos no tramitados devem possuir estado "Aberto". - * Blocos tramitados no podem ser mais alterados (processos excludos). - */ -class TramiteProcessoBlocoDeTramitePermissoesTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $protocoloTeste; - protected static $numQtyProcessos = 1; // max: 99 - - /** - * Diminui tamanho de doc externo no ORG2 para obter processo com status recusado - */ - public static function setUpBeforeClass() : void { - parent::setUpBeforeClass(); - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(2, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - /** - * Volta tamanho de doc externo no ORG2 para default - */ - public static function tearDownAfterClass() : void { - - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - function setUp(): void - { - parent::setUp(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - } - - /** - * Tramite para obter posteriormente processo com status cancelado - */ - public function test_tramite_contendo_documento_interno() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste1, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Troca ordenao de documento para ao tramitar obter status cancelado - * @depends test_tramite_contendo_documento_interno - */ - public function test_trocar_ordenacao_documento() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - putenv("DATABASE_HOST=org1-database"); - - // Definio de dados de teste - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // Validao dos dados do processo principal - try { - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcesso)); - $this->validarDadosDocumento($listaDocumentosProcesso[0], self::$documentoTeste1, self::$remetente); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$remetente); - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada] - print_r($listaDocumentosProcesso); - } - - - $this->paginaProcesso->selecionarProcesso(); - $this->paginaProcesso->navegarParaOrdenarDocumentos(); - sleep(1); - $this->paginaProcesso->trocarOrdenacaoDocumentos(); - - // Validao dos dados do processo principal - try { - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcesso)); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste1, self::$remetente); - $this->validarDadosDocumento($listaDocumentosProcesso[0], self::$documentoTeste2, self::$remetente); - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada] - print_r($listaDocumentosProcesso); - } - sleep(1); - $this->sairSistema(); - - } - - /** - * Inclui processos ao bloco de tramite, excluir e adiciona novamente - * @depends test_trocar_ordenacao_documento - */ - public function test_criar_excluir_processos_em_bloco_externo() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - putenv("DATABASE_HOST=org1-database"); - - // Definio de dados de teste - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $arrProtocolos = array(); - // cancelado - $objProtocoloDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - $arrProtocolos[] = $objProtocoloDTO; - - for ($i = 0; $i < self::$numQtyProcessos; $i++) { - // sucesso - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - $arrProtocolos[] = $objProtocoloDTO; - - } - - // recusado - $documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_003.pdf'); - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - $this->cadastrarDocumentoExternoFixture($documentoTeste3, $objProtocoloDTO->getDblIdProtocolo()); - $arrProtocolos[] = $objProtocoloDTO; - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - - foreach ($arrProtocolos as $objProtocoloDTO) { - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - } - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - sleep(1); - - // Executa remoo de protocolos do bloco e verifica status - $this->paginaCadastrarProcessoEmBloco->btnSelecionarTodosProcessos(); - $this->paginaCadastrarProcessoEmBloco->btnComandoSuperiorExcluir(); - $qtdProcessoBloco = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - $this->assertEquals($qtdProcessoBloco, 0); - $this->paginaCadastrarProcessoEmBloco->btnComandoSuperiorFechar(); - sleep(1); - - $linhasDaTabela = $this->elements($this->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - foreach ($linhasDaTabela as $linha) { - $numOrdem = $linha->byXPath('./td[2]')->text(); - if ($numOrdem == $objBlocoDeTramiteDTO->getNumOrdem()) { - $status = $linha->byXPath('./td[3]')->text(); - $this->assertEquals($status, 'Aberto'); - $this->assertEquals($objBlocoDeTramiteDTO->getStrStaEstado(), 'A'); - break; - } - } - - // Adiciona novamente protocolos ao bloco - foreach ($arrProtocolos as $objProtocoloDTO) { - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - } - - $this->sairSistema(); - } - - /** - * Tramitar bloco externamente - * @depends test_criar_excluir_processos_em_bloco_externo - */ - public function test_tramite_bloco_externo() - { - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - // Tramitar Bloco - $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, - function ($testCase) { - try { - $testCase->frame('ifrEnvioProcesso'); - $mensagemSucesso = mb_convert_encoding('Processo(s) aguardando envio. Favor acompanhar a tramitao por meio do bloco, na funcionalidade \'Blocos de Trmite Externo\'', 'UTF-8', 'ISO-8859-1'); - $testCase->assertStringContainsString($mensagemSucesso, $testCase->byCssSelector('body')->text()); - $btnFechar = $testCase->byXPath("//input[@id='btnFechar']"); - $btnFechar->click(); - } finally { - try { - $testCase->frame(null); - $testCase->frame("ifrVisualizacao"); - } catch (Exception $e) { - } - } - - return true; - } - ); - - } - - - /** - * Verificar se o bloco foi enviado - * @depends test_tramite_bloco_externo - * @return void - */ - public function test_verificar_envio_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $linhasDaTabela = $testCase->elements($testCase->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); - - $totalConcluidos = 0; - foreach ($linhasDaTabela as $linha) { - $statusTd = $linha->byXPath('./td[7]'); - try { - $statusImg = $statusTd->byXPath(mb_convert_encoding(".//img[@title='Concludo']", 'UTF-8', 'ISO-8859-1')); - if ($statusImg){ - $totalConcluidos++; - } - } catch (Exception $e) { - // Ignora a exceo se a imagem no for encontrada - } - } - $this->assertEquals($totalConcluidos,self::$numQtyProcessos); - return true; - }, PEN_WAIT_TIMEOUT); - - $this->sairSistema(); - } - /** - * Verificar se possivel excluir processos do bloco aps tramite - * @depends test_verificar_envio_processo - * @return void - */ - public function test_verificar_possivel_exclusao_processo_bloco() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); - $qtdProcessoBloco = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->paginaCadastrarProcessoEmBloco->btnSelecionarTodosProcessos(); - $this->paginaCadastrarProcessoEmBloco->btnComandoSuperiorExcluir(); - $qtdProcessoBlocoPos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); - - $this->assertEquals($qtdProcessoBloco,$qtdProcessoBlocoPos); - - sleep(2); - - $this->sairSistema(); - } - -} diff --git a/tests_super/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php b/tests_super/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php deleted file mode 100755 index 3e1e44bf1..000000000 --- a/tests_super/funcional/tests/TramiteProcessoBlocoDeTramiteRegrasTest.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoBlocoDeTramiteRegrasTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $objBlocoDeTramiteDTO; - - public static function setUpBeforeClass():void - { - parent::setUpBeforeClass(); - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - self::$objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - } - - /** - * Teste pra validar mensagem de documento no assinado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_documento_nao_assinado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo(), false); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('No possvel tramitar um processos com documentos gerados e no assinados', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste pra validar mensagem de processo bloqueado ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_processo_bloqueado() - { - // Configurao do dados para teste do cenrio - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update protocolo set sta_estado=? where id_protocolo=?", array(4, $objProtocoloDTO->getDblIdProtocolo())); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('Prezado(a) usurio(a), o processo ' . $objProtocoloDTO->getStrProtocoloFormatado() . ' encontra-se bloqueado. Dessa forma, no foi possvel realizar a sua insero no bloco selecionado.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste pra validar a mensagem de processo aberto em mais de uma unidade ao ser inserido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_processo_aberto_em_mais_de_uma_unidade() - { - // Configurao do dados para teste do cenrio - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture($documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso($objProtocoloDTO->getStrProtocoloFormatado()); - - $this->tramitarProcessoInternamente(self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], true); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('No possvel tramitar um processo aberto em mais de uma unidade.', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - $this->assertStringContainsString( - mb_convert_encoding('Processo ' . $objProtocoloDTO->getStrProtocoloFormatado() . ' est aberto na(s) unidade(s): ' . self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } - - /** - * Teste pra validar a mensagem de processo sem documentos nao pode ser incluido em bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_mensagem_de_processo_sem_documento() - { - // Configurao do dados para teste do cenrio - $processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - - $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco(self::$objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - $this->assertStringContainsString( - mb_convert_encoding('No possvel tramitar um processo sem documentos', 'UTF-8', 'ISO-8859-1'), - $mensagem - ); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoComCancelamentoTest.php b/tests_super/funcional/tests/TramiteProcessoComCancelamentoTest.php deleted file mode 100755 index f32641701..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComCancelamentoTest.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * - * Execution Groups - * @group execute_without_receiving - */ -class TramiteProcessoComCancelamentoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de cancelamento de trmite com processo contendo documento gerado (interno) - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_cancelamento_tramite_contendo_documento_interno() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $this->paginaProcesso->cancelarTramitacaoExterna(); - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - $mensagemEsperada = mb_convert_encoding("O trmite externo do processo foi cancelado com sucesso!", 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($mensagemEsperada, $mensagemAlerta); - $this->assertFalse($this->paginaProcesso->processoBloqueado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertFalse($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - - } - - /** - * Teste de verificao que o processo cancelado no foi efetivamente recebido no sistema destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_cancelamento_tramite_contendo_documento_interno - * - * @return void - */ - public function test_verificar_nao_recebimento_processo_destinatario_documento_interno() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } - - - /** - * Teste de cancelamento de trmite com processo contendo documento externo - * - * @group envio - * @large - * - * @depends test_verificar_nao_recebimento_processo_destinatario_documento_interno - * - * @return void - */ - public function test_cancelamento_tramite_contendo_documento_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_001.pdf'); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $this->paginaProcesso->cancelarTramitacaoExterna(); - $mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true); - $mensagemEsperada = mb_convert_encoding("O trmite externo do processo foi cancelado com sucesso!", 'UTF-8', 'ISO-8859-1'); - $this->assertStringContainsString($mensagemEsperada, $mensagemAlerta); - $this->assertFalse($this->paginaProcesso->processoBloqueado()); - $this->assertTrue($this->paginaProcesso->processoAberto()); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $this->validarRecibosTramite(sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade) , true, false); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertFalse($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - - } - - /** - * Teste de verificao que o processo cancelado no foi efetivamente recebido no sistema destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_cancelamento_tramite_contendo_documento_externo - * - * @return void - */ - public function test_verificar_nao_recebimento_processo_destinatario_documento_externo() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php b/tests_super/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php deleted file mode 100755 index 9b0848036..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComDevolucaoAlteracaoURLTest.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoComDevolucaoAlteracaoURLTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $protocoloTeste; - - - public static function tearDownAfterClass() :void { - - - $arrControleURL=[ - "antigo"=>"[servidor_php]", - "novo"=>"servidor.gov.br" - ]; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $result=$bancoOrgaoA->query("SELECT texto FROM tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?", array("V","S")); - if ($bancoOrgaoA->getBdType()!="oci") { - $strTarja=$result[0]["texto"]; - }else{ - $strTarja=stream_get_contents($result[0]["TEXTO"]); - } - $strTarja = str_replace($arrControleURL['novo'],$arrControleURL['antigo'], $strTarja); - $bancoOrgaoA->execute("update tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=?", array($strTarja,"V","S")); - - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3); - putenv("DATABASE_HOST=org2-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1,self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_processo_apos_devolucao - * - * @return void - */ - public function test_tramitar_processo_da_origem_novo_url() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$documentoTeste5 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - putenv("DATABASE_HOST=org1-database"); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $result=$bancoOrgaoA->query("SELECT texto FROM tarja_assinatura where sta_tarja_assinatura=? and sin_ativo=?", array("V","S")); - if ($bancoOrgaoA->getBdType()!="oci") { - $strTarja=$result[0]["texto"]; - }else{ - $strTarja=stream_get_contents($result[0]["TEXTO"]); - } - - $arrControleURL=[ - "antigo"=>"[servidor_php]", - "novo"=>"servidor.gov.br" - ]; - - $strTarja = str_replace($arrControleURL['antigo'],$arrControleURL['novo'], $strTarja); - $bancoOrgaoA->execute("update tarja_assinatura set texto=? where sta_tarja_assinatura=? and sin_ativo=?", array($strTarja,"V","S")); - - $documentos = array(self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem_novo_url - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao_apos_troca_url() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste3, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - -} diff --git a/tests_super/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php b/tests_super/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php deleted file mode 100755 index d0335677a..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php +++ /dev/null @@ -1,210 +0,0 @@ -<?php - -/** - * Testes de trmite de um processo tendo a sua devoluo atravs de sua anexao outro processo - * criado no rgo de destino. - * - * O resultado esperado que o novo processo recebido seja criado no remetente e o processo tramitado anteriormente - * seja reaberto, atualizado e anexado ao novo processo recem criado - * - * Execution Groups - * @group execute_alone_group5 - */ -class TramiteProcessoComDevolucaoAnexadoOutroTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de dois processos apartados para o sistema de origem - * - * Posteriormente os dois sero anexados e enviados de volta - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao e a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_anexado_em_outro_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - // Selecionar banco do org2 para fazer insero dos documentos - putenv("DATABASE_HOST=org2-database"); - - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Busca ID que Protocolo principal recebeu no org2 - $objProtocoloAnexadoDTO = $this->consultarProcessoFixture(self::$protocoloTesteAnexado, \ProtocoloRN::$TP_PROCEDIMENTO); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Gerar dados de testes para representar o processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Cadastra processo principal, seus documentos e anexa processo recebido anteriormente - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - - // Cadastra e assina - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4,$objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - putenv("DATABASE_HOST=org1-database"); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abre processo principal para tramitar - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_anexado_em_outro_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste5, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php b/tests_super/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php deleted file mode 100755 index 7dd5d7fd4..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComDevolucaoContendoOutroAnexadoTest.php +++ /dev/null @@ -1,199 +0,0 @@ -<?php - -/** - * Teste de trmite de um processo com devoluo contendo novos documentos e com outro processo anexado - * - * O resultado esperado que o processo seja desbloqueado na origem, e o processo anexado seja criado e adicionado - * na posio correta dentro do processo. - * - * Execution Groups - * @group execute_alone_group5 - */ -class TramiteProcessoComDevolucaoContendoOutroAnexadoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de um processo simples para outro orgo - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComvalidacaoNoRemetenteFixture(self::$processoTestePrincipal, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTestePrincipal = self::$processoTestePrincipal["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao de um novo processo e sua devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_contendo_outro_anexado_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Gerar dados de testes para representar o processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Cadastra processo anexado, seus documentos e anexar ao processo principal recebido anteriormente - $objProtocoloAnexadoDTO = $this->cadastrarProcessoFixture(self::$processoTesteAnexado); - self::$protocoloTesteAnexado = $objProtocoloAnexadoDTO->getStrProtocoloFormatado(); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Incluir novos documentos relacionados no processo anexado - $objProtocoloPrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_contendo_outro_anexado_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste3, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste5, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoComDevolucaoTest.php b/tests_super/funcional/tests/TramiteProcessoComDevolucaoTest.php deleted file mode 100755 index a1c428bc6..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComDevolucaoTest.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessoComDevolucaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - putenv("DATABASE_HOST=org2-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php b/tests_super/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php deleted file mode 100755 index cd147622c..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComDevolucaoUnidadeDiferenteTest.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoComDevolucaoUnidadeDiferenteTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_para_devolucao - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - self::$destinatario['NOME_UNIDADE'] = self::$destinatario['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE'] = self::$destinatario['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$destinatario['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - putenv("DATABASE_HOST=org2-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_processo_apos_devolucao() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - -} diff --git a/tests_super/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php b/tests_super/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php deleted file mode 100755 index 5690f39bd..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComDocumentoRestritoHipotesePadraoTest.php +++ /dev/null @@ -1,123 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessoComDocumentoRestritoHipotesePadraoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com documentos restritos no mapeado, mas com hiptese padro definida - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_com_documento_restrito_hipotese_nao_mapeada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Configurao de documento restrito - self::$documentoTeste["RESTRICAO"] = \ProtocoloRN::$NA_RESTRITO; - self::$documentoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO_NAO_MAPEADO"]; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_com_documento_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_origem_processo_com_documento_restrito_hipotese_nao_mapeada() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_com_documento_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_restrito_hipotese_nao_mapeada() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - //$this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario, false, self::$destinatario["HIPOTESE_RESTRICAO_PADRAO"]); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoComHistoricoTest.php b/tests_super/funcional/tests/TramiteProcessoComHistoricoTest.php deleted file mode 100755 index b5d8929d3..000000000 --- a/tests_super/funcional/tests/TramiteProcessoComHistoricoTest.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class TramiteProcessoComHistoricoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - } - - - /** - * Teste de verificao do correto recebimento do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_tramitar_processo_da_origem - * - * @return void - */ - public function test_verificar_destino_processo_para_devolucao() - { - - $localCertificado = self::$destinatario['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$destinatario['SENHA_CERTIFICADO_DIGITAL']; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - - // Captura o IDT do processo - $idtEnviado = $bancoOrgaoA->query("SELECT tra.id_tramite FROM protocolo p - inner join md_pen_processo_eletronico pen on p.id_protocolo=pen.id_procedimento - inner join md_pen_tramite tra on pen.numero_registro=tra.numero_registro - where protocolo_formatado=?",array(self::$protocoloTeste)); - - if (array_key_exists("id_tramite", $idtEnviado[0])) { - $idtEnviado=$idtEnviado[0]["id_tramite"]; - } else { - $idtEnviado=$idtEnviado[0]["ID_TRAMITE"]; - } - - $curl_handler = curl_init(); - curl_setopt($curl_handler, CURLOPT_URL, "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/tramites/" . $idtEnviado); - curl_setopt($curl_handler, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl_handler, CURLOPT_FAILONERROR, true); - curl_setopt($curl_handler, CURLOPT_SSLCERT, $localCertificado); - curl_setopt($curl_handler, CURLOPT_SSLCERTPASSWD, $senhaCertificado); - - $saida = json_decode(curl_exec($curl_handler)); - curl_close($curl_handler); - - foreach($saida->propriedadesAdicionais as $propriedades){ - - switch($propriedades->chave){ - - case "CLASSIFICACAO_PrazoIntermediario_1": - $this->assertEquals('15', $propriedades->valor ); - break; - - case "CLASSIFICACAO_PrazoCorrente_1": - $this->assertEquals('5', $propriedades->valor ); - break; - - case "MODULO_PEN_VERSAO": - $this->assertTrue(isset($propriedades->valor)); - break; - - case "CLASSIFICACAO_CodigoEstruturado_1": - $this->assertEquals('052.211', $propriedades->valor ); - break; - - case "CLASSIFICACAO_Destinacao_1": - $this->assertEquals('Elimina', substr($propriedades->valor,0,7) ); - break; - - case "CLASSIFICACAO_Observacao_1": - $this->assertEquals('Quanto ao estabelecimento', substr($propriedades->valor,0,25) ); - break; - - case "CLASSIFICACAO_Descricao_1": - $this->assertEquals('RECEITA CORRENTE', substr($propriedades->valor,0,16)); - break; - - } - } - - $this->assertEquals(9, sizeof($saida->processo->itensHistorico) ); - - } - -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php deleted file mode 100755 index 214e32b16..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoContendoDocumentoBeSimpleCorrompidoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo um documento externo que reproduz - * antigo erro de corrompimento de dados da biblioteca BeSimple - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_besimple() - { - //Excente tempo de timeout devido ao tamanho do arquivo arquivo_corrompimento_besimplesoap.pdf - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_corrompimento_besimplesoap.pdf'); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, null, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_besimple() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_besimple - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_besimple() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php deleted file mode 100755 index 4954a0c39..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento cancelado - * - * Este mesmo documento deve ser recebido e assinalado com cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoCanceladoSemTamanhoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento cancelado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_cancelado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - self::$protocoloTeste = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamenteParaCancelamento(self::$remetente['SIGLA_UNIDADE'], self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], [ 'PROTOCOLO' => self::$protocoloTeste ]); - - $this->navegarParaCancelarDocumento(0); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - $processo=self::$processoTeste; - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - - $idAnexo = $bancoOrgaoA->query("SELECT an.id_anexo FROM rel_protocolo_protocolo pp - inner join protocolo p on pp.id_protocolo_1=p.id_protocolo - inner join anexo an on an.id_protocolo=pp.id_protocolo_2 - where p.descricao=?",array($processo['DESCRICAO'])); - - if (array_key_exists("id_anexo", $idAnexo[0])) { - $id_Anexo=$idAnexo[0]["id_anexo"]; - }else{ - $id_Anexo=$idAnexo[0]["ID_ANEXO"]; - } - - $bancoOrgaoA->execute("delete from anexo where id_anexo=?",array($id_Anexo)); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_cancelado - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento cancelado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(1, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - - } - -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php deleted file mode 100755 index 7e9434aad..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoCanceladoTest.php +++ /dev/null @@ -1,244 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento cancelado - * - * Este mesmo documento deve ser recebido e assinalado com cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoContendoDocumentoCanceladoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento cancelado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_cancelado() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $objProtocoloTesteDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloTesteDTO->getStrProtocoloFormatado(); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, $objProtocoloTesteDTO->getDblIdProtocolo()); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloTesteDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - //Tramitar internamento para liberao da funcionalidade de cancelar - $this->tramitarProcessoInternamenteParaCancelamento(self::$remetente['SIGLA_UNIDADE'], self::$remetente['SIGLA_UNIDADE_SECUNDARIA'], [ 'PROTOCOLO' => self::$protocoloTeste ]); - - $this->navegarParaCancelarDocumento(1); - $this->paginaCancelarDocumento->cancelar("Motivo de teste"); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_cancelado - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento cancelado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[1]); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Busca dados do protocolo no org2 - $objProtocoloTesteDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Incluir novos documentos relacionados - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloTesteDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo() - { - $strProtocoloTeste = self::$protocoloTeste; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcesso)); - $this->validarDadosDocumento($listaDocumentosProcesso[0], self::$documentoTeste1, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[1]); - $this->validarDadosDocumento($listaDocumentosProcesso[2], self::$documentoTeste3, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php deleted file mode 100755 index a307d83c1..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoExternoMesmoOrgaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste tramitar processo contendo documento gerado - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * @large - * - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - //Configurao da unidade destinatrio como outra unidade do mesmo rgo - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['NOME_UNIDADE'] = self::$remetente['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - /** - * @depends test_tramitar_processo_contendo_documento_gerado - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * @depends test_verificar_origem_processo_contendo_documento_gerado - * @large - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php deleted file mode 100755 index 81869cd3b..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoParticionadoTest.php +++ /dev/null @@ -1,131 +0,0 @@ -<?php - -/** - * @group rodarseparado - * @group rodarseparado2 - * @group execute_alone_group1 - */ -class TramiteProcessoContendoDocumentoExternoParticionadoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - public static function setUpBeforeClass() :void { - - parent::setUpBeforeClass(); - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(70, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - public static function tearDownAfterClass() :void { - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - - /** - * Teste de trmite externo de processo contendo documento externo particionado acima de 60Mb - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_externo_60mb() - { - //Aumenta o tempo de timeout devido ao tamanho do arquivo arquivo_060.pdf - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_060.pdf'); - - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Altera tamanho mximo permitido para permitir o envio de arquivo superior 50MBs - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - try { - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(70, 'SEI_TAM_MB_DOC_EXTERNO')); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - } finally { - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - } - putenv("DATABASE_HOST=org1-database"); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false, null, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_externo_60mb - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_externo_60mb() - { - //Aumenta o tempo de timeout devido ao tamanho do arquivo arquivo_060.pdf - $this->setSeleniumServerRequestsTimeout(60000); - - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_externo_60mb - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_externo_60mb() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php deleted file mode 100755 index dd2bc2fbb..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoExternoTest.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoExternoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo apenas um documento externo - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_externo - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_externo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_externo - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_externo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php deleted file mode 100755 index 5db274cb4..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoGeradoMesmoOrgaoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Test tramitar processo contendo documento gerado - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * @large - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - //Configurao da unidade destinatrio como outra unidade do mesmo rgo - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario['SIGLA_UNIDADE'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA']; - self::$destinatario['NOME_UNIDADE'] = self::$remetente['NOME_UNIDADE_SECUNDARIA']; - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'] = self::$remetente['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - /** - * @depends test_tramitar_processo_contendo_documento_gerado - * @large - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * @depends test_verificar_origem_processo_contendo_documento_gerado - * @large - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php deleted file mode 100755 index fa510bf50..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoGeradoTest.php +++ /dev/null @@ -1,130 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteProcessoContendoDocumentoGeradoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo apenas um documento interno (gerado) - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_gerado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - - // 1 - Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // 2 - Incluir Documentos no Processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // 3 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 4 - Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // 5 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_gerado - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_gerado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_gerado - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php deleted file mode 100755 index f89930efc..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoInternoExternoTest.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoInternoExternoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoInternoTeste; - public static $documentoExternoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo um documento interno e outro externo - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_interno_externo() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoInternoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoExternoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // 1 - Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // 2 - Incluir e assinar documentos no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoInternoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // 3 - Incluir documento externo ao processo - $this->cadastrarDocumentoExternoFixture(self::$documentoExternoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // 4 - Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // 5 - Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_interno_externo - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_interno_externo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 7 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 8 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 9 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 10 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_interno_externo - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_interno_externo() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 2); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoInternoTeste, self::$destinatario); - $this->validarDadosDocumento($listaDocumentos[1], self::$documentoExternoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php deleted file mode 100644 index eabd162b2..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoDestinoTest.php +++ /dev/null @@ -1,353 +0,0 @@ -<?php -/* -Escopo do caso de teste: - rgo 1: - 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - 2-criar Documento Externo (documentoTeste1) no Processo Principal - 3-criar Documento Interno (documentoTeste2) no Processo Principal - 4-criar Documento Interno (documentoTeste3) no Processo Principal - 5-tramitar Processo Principal para o rgo 2 com validao no remetente - rgo 2: - 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - 10-criar documento externo (documentoTeste4) no Processo Principal - 11-criar documento interno (documentoTeste5) no Processo Principal - 12-tramitar Processo Principal para o rgo 1 com validao no remetente - rgo 1: - 13-verificar correto recebimento do processo no destino (rgo 1) - 14-criar documento interno (documentoTeste6) no Processo Principal - 15-tramitar Processo Principal para o rgo 2 com validao no remetente - rgo 2: - 16-verificar correto recebimento do processo no destino (rgo 2) - 17-criar documento interno (documentoTeste7) no Processo Principal - 18-tramitar Processo Principal para o rgo 1 com validao no remetente - rgo 1: - 19-verificar correto recebimento do processo no destino (rgo 1) -*/ - -/** - * - * Execution Groups - * @group exxecute_parallel - */ -class TramiteProcessoContendoDocumentoMovidoDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteSecundario; - public static $protocoloTestePrincipal; - public static $protocoloTesteSecundario; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $documentoTeste7; - public static $objProtocoloTestePrincipalDTO; - public static $objProtocoloTestePrincipalOrg2DTO; - - - - /* - Escopo da funo: - rgo 1: - 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - 2-criar Documento Externo (documentoTeste1) no Processo Principal - 3-criar Documento Interno (documentoTeste2) no Processo Principal - 4-criar Documento Interno (documentoTeste3) no Processo Principal - 5-tramitar Processo Principal para o rgo 2 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @Depends CenarioBaseTestCase::setUpBeforeClass - @return void - */ - public function test_criar_processo_contendo_documentos_tramitar_remetente() - { - // definir rgo 1 como remetente e rgo 2 como destinatrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - - // 1-criar Processo Principal ($processoTestePrincipal) (rgo 1) - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - // $this->paginaBase->navegarParaControleProcesso(); - self::$objProtocoloTestePrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - self::$protocoloTestePrincipal = self::$objProtocoloTestePrincipalDTO->getStrProtocoloFormatado(); - - // 2-criar Documento Externo (documentoTeste1) no Processo Principal - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // 3-criar Documento Interno (documentoTeste2) no Processo Principal - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // 4-criar Documento Interno (documentoTeste3) no Processo Principal - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste3, self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // acessar remetente (rgo 1) - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // 5-tramitar Processo Principal para o rgo 2 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 2: - 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - 10-criar documento externo (documentoTeste4) no Processo Principal - 11-criar documento interno (documentoTeste5) no Processo Principal - 12-tramitar Processo Principal para o rgo 1 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_criar_processo_contendo_documentos_tramitar_remetente - @return void - */ - public function test_criar_mover_incluir_documentos_devolver_processo_remetente() - { - // 6-verificar correto recebimento do processo e seus documentos no destino (rgo 2) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como destinatrio e rgo 2 como remetente - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // 7-criar Processo Secundrio ($processoTesteSecundario) (rgo 2) - putenv("DATABASE_HOST=org2-database"); - self::$processoTesteSecundario = $this->gerarDadosProcessoTeste(self::$remetente); - $objProtocoloSecundarioDTO = $this->cadastrarProcessoFixture(self::$processoTesteSecundario); - self::$protocoloTesteSecundario = $objProtocoloSecundarioDTO->getStrProtocoloFormatado(); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // listar documentos do Processo Principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - - // 8-mover documento externo (documentoTeste1) do Processo Principal para o Processo Secundrio - $this->paginaProcesso->selecionarDocumento($listaDocumentosProcessoPrincipal[0]); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso(self::$protocoloTesteSecundario, "Motivo de teste"); - - // 9-mover documento interno (documentoTeste2) do Processo Principal para o Processo Secundrio - $this->paginaProcesso->selecionarDocumento($listaDocumentosProcessoPrincipal[1]); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso(self::$protocoloTesteSecundario, "Motivo de teste"); - - // Consultar processo org-2 - self::$objProtocoloTestePrincipalOrg2DTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, $staProtocolo = 'P'); - - // 10-criar documento externo (documentoTeste4) no Processo Principal - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste4, self::$objProtocoloTestePrincipalOrg2DTO->getDblIdProtocolo()); - - // 11-criar documento interno (documentoTeste5) no Processo Principal - self::$documentoTeste5 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste5,self::$objProtocoloTestePrincipalOrg2DTO->getDblIdProtocolo()); - - // 12-tramitar Processo Principal para o rgo 1 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 1: - 13-verificar correto recebimento do processo no destino (rgo 1) - 14-criar documento interno (documentoTeste6) no Processo Principal - 15-tramitar Processo Principal para o rgo 2 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_criar_mover_incluir_documentos_devolver_processo_remetente - @return void - */ - public function test_incluir_documento_tramitar_destinatario() - { - // 13-verificar correto recebimento do processo no destino (rgo 1) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como remetente e rgo 2 como destinatrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - putenv("DATABASE_HOST=org1-database"); - - self::$objProtocoloTestePrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, $staProtocolo = 'P'); - - // 14-criar documento interno (documentoTeste6) no Processo Principal - self::$documentoTeste6 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste6,self::$objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // 15-tramitar Processo Principal para o rgo 2 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 2: - 16-verificar correto recebimento do processo no destino (rgo 2) - 17-criar documento interno (documentoTeste7) no Processo Principal - 18-tramitar Processo Principal para o rgo 1 com validao no remetente - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_incluir_documento_tramitar_destinatario - @return void - */ - public function test_incluir_documento_tramitar_remetente() - { - // 16-verificar correto recebimento do processo no destino (rgo 2) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5, self::$documentoTeste6); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - // definir rgo 1 como destinatrio e rgo 2 como remetente - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - self::$objProtocoloTestePrincipalOrg2DTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, $staProtocolo = 'P'); - - // 17-criar documento interno (documentoTeste7) no Processo Principal - self::$documentoTeste7 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste7, self::$objProtocoloTestePrincipalOrg2DTO->getDblIdProtocolo()); - - // abrir Processo Principal - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // 18-tramitar Processo Principal para o rgo 1 com validao no remetente - $this->tramitarProcessoExternamente(self::$protocoloTestePrincipal, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - - // verificar se situao atual do processo est como bloqueado no remetente - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // verificar se processo est na lista de Processos Tramitados Externamente - $deveExistir = self::$remetente['URL'] != self::$destinatario['URL']; - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /* - Escopo da funo: - rgo 1: - 19-verificar correto recebimento do processo no destino (rgo 1) - - @group TramiteProcessoContendoDocumentoMovidoDestino - @large - @depends test_incluir_documento_tramitar_remetente - @return void - */ - public function test_verificar_processo_documento_destino() - { - // 19-verificar correto recebimento do processo no destino (rgo 1) - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5, self::$documentoTeste6, self::$documentoTeste7); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - } - -} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php deleted file mode 100755 index ca147035c..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoSemAnexoTest.php +++ /dev/null @@ -1,327 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento movido sem anexo - * - * Este mesmo documento deve ser recebido e assinalado como cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessoContendoDocumentoMovidoSemAnexoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * @inheritdoc - * @return void - */ - function setUp(): void - { - parent::setUp(); - } - - /** - * Teste inicial de trmite de um processo contendo um documento movido - * - * @group envio - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_movido_sem_anexo() - { - - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Criar processo secundrio para o qual o documento ser movido - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - - // Cadastrar novo processo de teste - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - // Incluir documentos a ser movido - $documentoMover = $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, self::$protocoloTeste->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - // Navegar para mover documento - $nomeDocArvore = self::$documentoTeste1['TIPO_DOCUMENTO'] . ' 1 (' . str_pad($documentoMover->getDblIdDocumento(), 6, "0", STR_PAD_LEFT) . ')'; - $this->paginaProcesso->selecionarDocumento($nomeDocArvore); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$protocoloTeste->getDblIdProtocolo()); - $this->paginaBase->refresh(); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_tramitar_processo_contendo_documento_movido_sem_anexo - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->pesquisar(self::$protocoloTeste->getStrProtocoloFormatado()); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste->getStrProtocoloFormatado(), $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste->getStrProtocoloFormatado(), $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento movido no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_movido_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - } - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem contendo - * mais dois documentos, sendo um deles movido - * - * @group envio - * - * @depends test_verificar_destino_processo_com_documento_movido_sem_anexo - * - * @return void - */ - public function test_devolucao_processo_para_origem_com_novo_documento_movido_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Mudar banco para cadastrar DTO - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Consultar processo org-2 - $processoOrg2 = $this->consultarProcessoFixture($strProtocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Criar processo secundrio para o qual o documento ser movido - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - - // Incluir documentos a ser movido - $documentoMover = $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $processoOrg2->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso($strProtocoloTeste); - - // Navegar para mover documento - $nomeDocArvore = self::$documentoTeste1['TIPO_DOCUMENTO'] . ' 1 (' . str_pad($documentoMover->getDblIdDocumento(), 6, "0", STR_PAD_LEFT) . ')'; - $this->paginaProcesso->selecionarDocumento($nomeDocArvore); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Cadastramento de documento adicional - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $processoOrg2->getDblIdProtocolo()); - $this->paginaBase->refresh(); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * - * @depends test_devolucao_processo_para_origem_com_novo_documento_movido_sem_anexo - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema( - self::$remetente['URL'], - self::$remetente['SIGLA_UNIDADE'], - self::$remetente['LOGIN'], - self::$remetente['SENHA'] - ); - - $this->paginaBase->pesquisar(self::$protocoloTeste->getStrProtocoloFormatado()); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste->getStrProtocoloFormatado(), $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste->getStrProtocoloFormatado(), $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_com_dois_documentos_movidos_sem_anexo() - { - $strProtocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $this->acessarSistema( - self::$destinatario['URL'], - self::$destinatario['SIGLA_UNIDADE'], - self::$destinatario['LOGIN'], - self::$destinatario['SENHA'] - ); - - // Navegar para processo cadastrado - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaControleProcesso->abrirProcesso(self::$protocoloTeste->getStrProtocoloFormatado()); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcesso)); - $this->validarDocumentoMovido($listaDocumentosProcesso[0]); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[2]); - $this->validarDadosDocumento($listaDocumentosProcesso[3], self::$documentoTeste4, self::$destinatario); - } - - /** - * @inheritDoc - */ - public static function tearDownAfterClass(): void - { - putenv("DATABASE_HOST=org1-database"); - parent::tearDownAfterClass(); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php b/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php deleted file mode 100755 index 3288324f2..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoDocumentoMovidoTest.php +++ /dev/null @@ -1,269 +0,0 @@ -<?php - -/** - * Testes de trmite de processos contendo um documento movido - * - * Este mesmo documento deve ser recebido e assinalado como cancelado no destinatrio e - * a devoluo do mesmo processo no deve ser impactado pela insero de outros documentos - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoDocumentoMovidoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $protocoloTeste; - - /** - * Teste inicial de trmite de um processo contendo um documento movido - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_movido() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Criar processo principal e processo secundrio - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - - // Cadastrando documentos no processo principal - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste1, self::$protocoloTeste->getDblIdProtocolo()); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, self::$protocoloTeste->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - self::$protocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // Movendo documento do processo principal para o processo secundrio - $documentoParaMover = $this->paginaProcesso->listarDocumentos()[0]; - $this->paginaProcesso->selecionarDocumento($documentoParaMover); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_movido - * - * @return void - */ - public function test_verificar_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao do correto recebimento do processo com documento movido no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo - * - * @return void - */ - public function test_verificar_destino_processo_com_documento_movido() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - $strObservacoes, - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(2, count($listaDocumentosProcessoPrincipal)); - $this->validarDocumentoCancelado($listaDocumentosProcessoPrincipal[0]); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem contendo - * mais dois documentos, sendo um deles movido - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_com_documento_movido - * - * @return void - */ - public function test_devolucao_processo_para_origem_com_novo_documento_movido() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - - // Criar processo secundrio para o qual o novo documento ser movido - $processoSecundarioTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - putenv("DATABASE_HOST=org2-database"); - - // Criar novo processo secundrio na ORG 2 - $protocoloSecundarioTeste = $this->cadastrarProcessoFixture($processoSecundarioTeste); - - // Busca dados do Protocolo principal no ORG 2 - $objProtocoloTesteDTO = $this->consultarProcessoFixture(self::$protocoloTeste, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Criar novo documento externo no processo principal recebido na ORG 2" - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloTesteDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - // Acessando novo documento externo e movendo-o ao novo processo secundario da ORG 2 - $listaDeDocumentos = $this->paginaProcesso->listarDocumentos(); - $documentoParaMover = $listaDeDocumentos[array_key_last($listaDeDocumentos)]; - $this->paginaProcesso->selecionarDocumento($documentoParaMover); - $this->paginaDocumento->navegarParaMoverDocumento(); - $this->paginaMoverDocumento->moverDocumentoParaProcesso($protocoloSecundarioTeste->getStrProtocoloFormatado(), "Motivo de teste"); - - // Cadastrando novo documento interno no processo principal - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4, $objProtocoloTesteDTO->getDblIdProtocolo()); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem_com_novo_documento_movido - * - * @return void - */ - public function test_verificar_devolucao_origem_processo() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_com_dois_documentos_movidos() - { - $strProtocoloTeste = self::$protocoloTeste; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcesso = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcesso)); - $this->validarDocumentoMovido($listaDocumentosProcesso[0]); - $this->validarDadosDocumento($listaDocumentosProcesso[1], self::$documentoTeste2, self::$destinatario); - $this->validarDocumentoCancelado($listaDocumentosProcesso[2]); - $this->validarDadosDocumento($listaDocumentosProcesso[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php b/tests_super/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php deleted file mode 100755 index 0df44fcfc..000000000 --- a/tests_super/funcional/tests/TramiteProcessoContendoVariosDocumentosTest.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoContendoVariosDocumentosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentosTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo vrios documentos - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_varios_documentos() - { - //Aumenta o tempo de timeout devido quantidade de arquivos - $this->setSeleniumServerRequestsTimeout(6000); - - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentosTeste = array_merge( - array_fill(0, 3, $this->gerarDadosDocumentoInternoTeste(self::$remetente)), - array_fill(0, 3, $this->gerarDadosDocumentoExternoTeste(self::$remetente)) - ); - - shuffle(self::$documentosTeste); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentosTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_varios_documentos - * - * @return void - */ - public function test_verificar_origem_processo_contendo_varios_documentos() - { - $this->setSeleniumServerRequestsTimeout(6000); - - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT_ARQUIVOS_GRANDES); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_varios_documentos - * - * @return void - */ - public function test_verificar_destino_processo_contendo_varios_documentos() - { - $this->setSeleniumServerRequestsTimeout(6000); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$documentosTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php b/tests_super/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php deleted file mode 100755 index 0ed2eb27a..000000000 --- a/tests_super/funcional/tests/TramiteProcessoDocumentoNaoMapeadoDestinoTest.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_parallel_with_two_group1 - */ -class TramiteProcessoDocumentoNaoMapeadoDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoA->setParameter('PEN_TIPO_DOCUMENTO_PADRAO_RECEBIMENTO', null); - } - - function tearDown(): void - { - parent::tearDown(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_B); - $parametrosOrgaoA->setParameter('PEN_TIPO_DOCUMENTO_PADRAO_RECEBIMENTO', 999); - } - - /** - * Teste de trmite externo de processo contendo documento no mapeado no destino - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_documento_nao_mapeado_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$destinatario['TIPO_DOCUMENTO_NAO_MAPEADO']; - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_documento_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_origem_processo_contendo_documento_nao_mapeado_destino() - { - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(mb_convert_encoding("Processo aberto somente na unidade", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $nomeTipoDocumentoNaoMapeado = mb_convert_encoding(self::$destinatario['TIPO_DOCUMENTO_NAO_MAPEADO'], "ISO-8859-1"); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, - sprintf("O Documento do tipo %s no est mapeado para recebimento no sistema de destino. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro.", $nomeTipoDocumentoNaoMapeado)); - - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - - // Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_documento_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php b/tests_super/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php deleted file mode 100755 index 70bf78aa1..000000000 --- a/tests_super/funcional/tests/TramiteProcessoDocumentoNaoMapeadoOrigemTest.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteProcessoDocumentoNaoMapeadoOrigemTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - public static function setUpBeforeClass() :void { - - parent::setUpBeforeClass(); - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO', null); - - } - - public static function tearDownAfterClass() :void { - - $parametrosOrgaoA = new ParameterUtils(CONTEXTO_ORGAO_A); - $parametrosOrgaoA->setParameter('PEN_ESPECIE_DOCUMENTAL_PADRAO_ENVIO', 999); - - } - - /** - * Teste de trmite externo de processo contendo um documento interno com espcie documental no mapeada - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_documento_interno_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$remetente['TIPO_DOCUMENTO_NAO_MAPEADO']; - - // Cadastrar novo processo de teste - // Incluir Documentos no Processo - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, self::$protocoloTeste->getDblIdProtocolo()); - self::$protocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $tipoDocumento = mb_convert_encoding(self::$documentoTeste["TIPO_DOCUMENTO"], "ISO-8859-1"); - $mensagemEsperada = sprintf("No existe mapeamento de envio para %s no documento", $tipoDocumento); - $this->expectExceptionMessage(mb_convert_encoding($mensagemEsperada, 'UTF-8', 'ISO-8859-1')); - $this->tramitarProcessoExternamente(self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de trmite externo de processo contendo um documento externo com espcie documental no mapeada - * - * @group envio - * @large - * - * @depends test_tramitar_processo_documento_interno_nao_mapeado - * - * @return void - */ - public function test_tramitar_processo_documento_externo_nao_mapeado() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste['TIPO_DOCUMENTO'] = self::$remetente['TIPO_DOCUMENTO_NAO_MAPEADO']; - - // Cadastrar novo processo de teste - // Incluir Documentos no Processo - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, self::$protocoloTeste->getDblIdProtocolo()); - self::$protocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $tipoDocumento = mb_convert_encoding(self::$documentoTeste["TIPO_DOCUMENTO"], "ISO-8859-1"); - $mensagemEsperada = sprintf("No existe mapeamento de envio para %s no documento", $tipoDocumento); - $this->expectExceptionMessage(mb_convert_encoding($mensagemEsperada, 'UTF-8', 'ISO-8859-1')); - $this->tramitarProcessoExternamente(self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php b/tests_super/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php deleted file mode 100755 index dc1418b3b..000000000 --- a/tests_super/funcional/tests/TramiteProcessoExtensaoNaoMapeadoDestinoTest.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoExtensaoNaoMapeadoDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo contendo extenso no mapeada no destino - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_contendo_extensao_nao_mapeada_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_extensao_nao_permitida.docx'); - - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, self::$documentoTeste, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_contendo_extensao_nao_mapeada_destino - * - * @return void - */ - public function test_verificar_origem_processo_contendo_extensao_nao_mapeado_destino() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(mb_convert_encoding("Processo aberto somente na unidade", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, "O formato docx no permitido pelo sistema de destino. Lembre-se que cada rgo/entidade tem autonomia na definio de quantos e quais formatos de arquivo so aceitos pelo seu sistema. OBS: A recusa uma das trs formas de concluso de trmite. Portanto, no um erro."); - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_contendo_extensao_nao_mapeado_destino - * - * @return void - */ - public function test_verificar_destino_processo_contendo_documento_gerado() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoGestorNaoResponsavelPelaUnidadeMapeadaTest.php b/tests_super/funcional/tests/TramiteProcessoGestorNaoResponsavelPelaUnidadeMapeadaTest.php deleted file mode 100644 index 997996261..000000000 --- a/tests_super/funcional/tests/TramiteProcessoGestorNaoResponsavelPelaUnidadeMapeadaTest.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php - -class TramiteProcessoGestorNaoResponsavelPelaUnidadeMapeadaTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - protected static $nomeOrgNaoMapeada = 'MELO_SEGES_ORG1'; - protected static $idOrgNaoMapeada = '155043'; - - /** - * Teste de trmite de processo para organizao no-mapeada unidade corrente - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramite_gestor_nao_responsavel_unidade() - { - //Altera o mapeamento da unidade atual para uma organizao que no reconhece a unidade - $this->alterarMapeamentoDeUnidadeOrgaoA(); - - // Configurao dos dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Criar processo principal - self::$protocoloTeste = $this->cadastrarProcessoFixture(self::$processoTeste); - - // Cadastrando documentos no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, self::$protocoloTeste->getDblIdProtocolo()); - - // Acessa o processo criado - self::$protocoloTeste = self::$protocoloTeste->getStrProtocoloFormatado(); - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTeste); - - $this->tramitarProcessoExternamenteGestorNaoResponsavelUnidade([ - 'repositorio' => mb_convert_encoding(self::$destinatario['REP_ESTRUTURAS'], 'UTF-8', 'ISO-8859-1'), - 'unidadeDestino' => mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], 'UTF-8', 'ISO-8859-1'), - 'nomeUnidadeMalMapeada' => self::$nomeOrgNaoMapeada, - 'idUnidadeMalMapeada' => self::$idOrgNaoMapeada - ]); - - // Reverte alterao feita em alterarMapeamentoDeUnidadeOrgaoA para evitar quebra de testes subsequentes - $this->reverterAlterarMapeamentoDeUnidadeOrgaoA(); - } - - private function alterarMapeamentoDeUnidadeOrgaoA() - { - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update md_pen_unidade set id_unidade_rh=?, sigla_unidade_rh=?, nome_unidade_rh=? where id_unidade=?", array(self::$idOrgNaoMapeada, self::$nomeOrgNaoMapeada, self::$nomeOrgNaoMapeada, 110000001)); - } - - private function reverterAlterarMapeamentoDeUnidadeOrgaoA() - { - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update md_pen_unidade set id_unidade_rh=?, sigla_unidade_rh=?, nome_unidade_rh=? where id_unidade=?", array(self::$remetente['ID_ESTRUTURA'], self::$remetente['SIGLA_ESTRUTURA'], self::$remetente['SIGLA_ESTRUTURA'], 110000001)); - } - -} diff --git a/tests_super/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php b/tests_super/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php deleted file mode 100755 index 52d24a8aa..000000000 --- a/tests_super/funcional/tests/TramiteProcessoRestritoHipotesePadraoTest.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoRestritoHipotesePadraoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com restrio de acesso e hiptese legal no mapeada, mas com hiptese padro definida - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_restrito_hipotese_nao_mapeada() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO_NAO_MAPEADO"]; - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_origem_processo_restrito_hipotese_nao_mapeada() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_restrito_hipotese_nao_mapeada - * - * @return void - */ - public function test_verificar_destino_processo_restrito_hipotese_nao_mapeada() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTeste['DESCRICAO'], - self::$processoTeste['RESTRICAO'], - self::$processoTeste['OBSERVACOES'], - array(self::$processoTeste['INTERESSADOS']), - self::$destinatario["HIPOTESE_RESTRICAO_NAO_MAPEADO"]); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoRestritoTest.php b/tests_super/funcional/tests/TramiteProcessoRestritoTest.php deleted file mode 100755 index d025d067d..000000000 --- a/tests_super/funcional/tests/TramiteProcessoRestritoTest.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoRestritoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo com restrio de acesso - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_restrito() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - - // Configurao de processo restrito - self::$processoTeste["RESTRICAO"] = PaginaIniciarProcesso::STA_NIVEL_ACESSO_RESTRITO; - self::$processoTeste["HIPOTESE_LEGAL"] = self::$remetente["HIPOTESE_RESTRICAO"]; - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_restrito - * - * @return void - */ - public function test_verificar_origem_processo_restrito() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // 7 - Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - - // 8 - Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - - // 9 - Verificar se processo est na lista de Processos Tramitados Externamente - $this->validarProcessosTramitados(self::$protocoloTeste, $orgaosDiferentes); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_restrito - * - * @return void - */ - public function test_verificar_destino_processo_restrito() - { - $strProtocoloTeste = self::$protocoloTeste; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - // 11 - Abrir protocolo na tela de controle de processos - $this->abrirProcesso(self::$protocoloTeste); - $listaDocumentos = $this->paginaProcesso->listarDocumentos(); - - // 12 - Validar dados do processo - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTeste['TIPO_PROCESSO']; - self::$processoTeste['OBSERVACOES'] = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso(self::$processoTeste['DESCRICAO'], self::$processoTeste['RESTRICAO'], self::$processoTeste['OBSERVACOES'], array(self::$processoTeste['INTERESSADOS'])); - - // 13 - Verificar recibos de trmite - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // 14 - Validar dados do documento - $this->assertTrue(count($listaDocumentos) == 1); - $this->validarDadosDocumento($listaDocumentos[0], self::$documentoTeste, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php b/tests_super/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php deleted file mode 100755 index 01eb1d373..000000000 --- a/tests_super/funcional/tests/TramiteProcessoSemDadosBlocoDeTramiteTest.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoSemDadosBlocoDeTramiteTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - - /** - * Teste de validar existencia do boto de remover processo do bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_existencia_botao_remover_do_bloco() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste, false); - $this->atualizarProcessoFixture($objProtocoloDTO, ['DESCRICAO' => '']); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->paginaBase->navegarParaControleProcesso(); - $this->paginaTramiteEmBloco->selecionarProcessos([$objProtocoloDTO->getStrProtocoloFormatado()]); - $this->paginaTramiteEmBloco->selecionarTramiteEmBloco(); - $this->paginaTramiteEmBloco->selecionarBloco($objBlocoDeTramiteDTO->getNumId()); - $this->paginaTramiteEmBloco->clicarSalvar(); - - sleep(2); - - $mensagem = $this->paginaTramiteEmBloco->buscarMensagemAlerta(); - - $this->assertStringContainsString( - utf8_encode('Descrio do processo '.$objProtocoloDTO->getStrProtocoloFormatado().' no informado.'), - $mensagem - ); - $this->assertStringContainsString( - utf8_encode('Interessados do processo '.$objProtocoloDTO->getStrProtocoloFormatado().' no informados.'), - $mensagem - ); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php b/tests_super/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php deleted file mode 100755 index 1096c867d..000000000 --- a/tests_super/funcional/tests/TramiteProcessoTamanhoAcimaLimiteDestinoTest.php +++ /dev/null @@ -1,131 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_alone_group3 - */ -class TramiteProcessoTamanhoAcimaLimiteDestinoTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - - /** - * - * @Depends TramiteProcessoGrandeTest::tearDownAfterClass - * - * @return void - */ - public static function setUpBeforeClass() :void { - - // Reduo de limite mximo de tamanho de documento externo - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(2, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - public static function tearDownAfterClass() :void { - - // Ajuste do tamanho mximo de arquivo externo permitido para padro - $bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B); - $bancoOrgaoB->execute("update infra_parametro set valor = ? where nome = ?", array(50, 'SEI_TAM_MB_DOC_EXTERNO')); - - } - - /** - * Teste de trmite externo de processo contendo documento com tamanho acima do limite no destinatario - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_tamanho_acima_limite_destino() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_003.pdf'); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - $this->tramitarProcessoExternamente( - self::$protocoloTeste, self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); - } - - - /** - * Teste de verificao do correto envio do processo no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_tamanho_acima_limite_destino - * - * @return void - */ - public function test_verificar_origem_processo_tamanho_acima_limite_destino() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - // 6 - Verificar se situao atual do processo est como bloqueado - $this->waitUntil(function($testCase) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringContainsString(mb_convert_encoding("Processo aberto somente na unidade", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertTrue($paginaProcesso->processoAberto()); - $testCase->assertFalse($paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - // Validar histrico de trmite do processo - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, false, true, "O tamanho mximo geral permitido para documentos externos"); - - // Validar se recibo de trmite foi armazenado para o processo (envio e concluso) - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTeste, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, false); - $this->validarProcessosTramitados(self::$protocoloTeste, false); - - //Verifica se os cones de alerta de recusa foram adicionados e se o processo continua aberto na unidade - $this->paginaBase->navegarParaControleProcesso(); - $this->assertTrue($this->paginaControleProcesso->contemProcesso(self::$protocoloTeste)); - $this->assertTrue($this->paginaControleProcesso->contemAlertaProcessoRecusado(self::$protocoloTeste)); - } - - - /** - * Teste de verificao do correto recebimento do processo contendo apenas um documento interno (gerado) - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_tamanho_acima_limite_destino - * - * @return void - */ - public function test_verificar_destino_processo_tamanho_acima_limite_destino() - { - $this->realizarValidacaoNAORecebimentoProcessoNoDestinatario(self::$destinatario, self::$processoTeste); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php b/tests_super/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php deleted file mode 100755 index ab0589345..000000000 --- a/tests_super/funcional/tests/TramiteProcessoUnidadeSemHierarquiaPaiTest.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - -class TramiteProcessoUnidadeSemHierarquiaPaiTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $protocoloTeste; - - /** - * Teste de trmite externo de processo sem devoluo para testar caso de hierarquia sem pai - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_da_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_C); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1); - $this->realizarTramiteExternoSemValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTeste = self::$processoTeste["PROTOCOLO"]; - - $paginaProcesso = new PaginaProcesso($this); - $this->assertStringNotContainsString(mb_convert_encoding("externa para SEGES TESTE SEM PAI - - RE CGPRO", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php b/tests_super/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php deleted file mode 100755 index 13c7ba1c0..000000000 --- a/tests_super/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoValidacaoBotaoIncluirTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * - * @Depends TramiteProcessoGrandeTest::tearDownAfterClass - * - * @return void - */ - public static function setUpBeforeClass() :void { - - // Altera status de qualquer Bloco aberto - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("update md_pen_bloco set sta_estado=? where sta_estado=?", array('C', 'A')); - - // Limpa os mapeamentos de unidade - $bancoOrgaoA->execute("delete from md_pen_unidade", array()); - } - - public static function tearDownAfterClass() :void { - - // Recadastra os mapeamentos da unidade - putenv("DATABASE_HOST=org1-database"); - $penMapUnidadesFixture = new \PenMapUnidadesFixture(); - $penMapUnidadesFixture->carregar([ - 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA, - 'Sigla' => CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA, - 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE, - ]); - - $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); - $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); - } - - /** - * Teste de trmite externo de processo com restrio de acesso - * - * @group envio - * @large - * - * - * @return void - */ - public function test_tramitar_processo_restrito() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste(mb_convert_encoding("Incluir Processo no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'))); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php b/tests_super/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php deleted file mode 100755 index eaca7e579..000000000 --- a/tests_super/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoValidacaoBotoesAposIncluirTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - /** - * Teste de validar existencia do boto de remover processo do bloco - * - * @group envio - * @large - * - * @return void - */ - public function test_validar_existencia_botao_remover_do_bloco() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); - - // Incluir e assinar documento no processo - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); - - $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); - $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - - $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); - $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ - 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), - 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() - ]); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Abrir processo - $this->abrirProcesso(self::$protocoloTeste); - - $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste("Envio Externo de Processo")); - $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste(mb_convert_encoding("Incluir Processo no Bloco de Trmite", 'UTF-8', 'ISO-8859-1'))); - $this->assertTrue($this->paginaProcesso->validarBotaoExiste(mb_convert_encoding("Remover Processo do Bloco de Trmite", 'UTF-8', 'ISO-8859-1'))); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessoValidacaoEnvioTest.php b/tests_super/funcional/tests/TramiteProcessoValidacaoEnvioTest.php deleted file mode 100755 index 4911f0d39..000000000 --- a/tests_super/funcional/tests/TramiteProcessoValidacaoEnvioTest.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php - -/** - * - * Execution Groups - * @group execute_parallel_group1 - */ -class TramiteProcessoValidacaoEnvioTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste; - public static $protocoloTeste; - - function setUp(): void - { - parent::setUp(); - } - - function tearDown(): void - { - parent::tearDown(); - } - - /** - * Teste de trmite externo com processo no contendo nenhum documento cadastrado - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_sem_documentos() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - - // Cadastrar novo processo de teste - $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTeste); - self::$protocoloTeste = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTeste); - - $this->expectExceptionMessage(mb_convert_encoding("No possvel tramitar um processo sem documentos", 'UTF-8', 'ISO-8859-1')); - $this->tramitarProcessoExternamente( - self::$protocoloTeste, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false - ); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php b/tests_super/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php deleted file mode 100755 index f25744119..000000000 --- a/tests_super/funcional/tests/TramiteProcessosComDevolucaoAmbosAnexadosTest.php +++ /dev/null @@ -1,216 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexado considerando a devoluo do mesmo para a entidade de origem - * - * Execution Groups - * @group execute_alone_group6 - */ -class TramiteProcessosComDevolucaoAmbosAnexadosTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - - /** - * Teste inicial de trmite de dois processos apartados para o sistema de origem - * - * Posteriormente os dois sero anexados e enviados de volta - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processos_separados_da_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do primeiro processo, representando o principal em seu retorno - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTestePrincipal, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTestePrincipal = self::$processoTestePrincipal["PROTOCOLO"]; - - $this->sairSistema(); - - // Criao e envio do segundo processo, representando o que ser anexado ao processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento dos dois processos separados no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processos_separados_da_origem - * - * @return void - */ - public function test_verificar_recebimento_processos_separados_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTestePrincipal, $documentos, self::$destinatario); - - $this->sairSistema(); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a anexao e a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processos_separados_destino - * - * @return void - */ - public function test_devolucao_processo_anexado_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $objProtocoloAnexadoDTO = $this->consultarProcessoFixture(self::$protocoloTesteAnexado, \ProtocoloRN::$TP_PROCEDIMENTO); - $objProtocoloPrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Cadastra documento Externo ao processo anexado - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Anexa processo ao processo principal - $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); - - // Cadastra documento Externo ao processo principal - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste6, $objProtocoloPrincipalDTO->getDblIdProtocolo()); - - putenv("DATABASE_HOST=org1-database"); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_anexado_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste4, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste5, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php b/tests_super/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php deleted file mode 100755 index 419099288..000000000 --- a/tests_super/funcional/tests/TramiteProcessosComDevolucoesEAnexacoesTest.php +++ /dev/null @@ -1,382 +0,0 @@ -<?php - -/** - * Testes de trmite de processos anexados considerando cenrio especfico de trmites e devolues sucessivas - * - * O cenrio descreve uma falha relatada pelos usurios em que um erro de inconsistncia era causado aps a realizao dos seguintes passos: - * - * - Trmite de processo simples X do rgo A para o rgo B - * - Adio de novos documentos e devoluo do processo para rgo A - * - Adio de novos documentos no processo X e anexao ao processo Y - * - Trmite do processo Y para rgo B - * - Adio de novos documentos ao processo Y e devoluo para o rgo A - * - Adio de novos documentos e devoluo para rgo B - * - * Execution Groups - * @group execute_alone_group2 - */ -class TramiteProcessosComDevolucoesEAnexacoesTest extends FixtureCenarioBaseTestCase -{ - public static $remetente; - public static $destinatario; - public static $processoTestePrincipal; - public static $processoTesteAnexado; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - public static $documentoTeste6; - public static $documentoTeste7; - public static $documentoTeste8; - public static $protocoloTestePrincipal; - public static $protocoloTesteAnexado; - public static $objProtocoloTestePrincipalDTO; - public static $objProtocoloTesteAnexadoDTO; - - - - - /** - * Teste inicial de trmite de processo apartado para o rgo B - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_tramitar_processo_simples_para_orgaoB() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Criao e envio do segundo processo, representando o que ser anexado ao processo principal - self::$processoTesteAnexado = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; - } - - - /** - * Teste de verificao do correto recebimento do processo simples no rgo B - * - * @group verificacao_recebimento - * @large - * - * @depends test_tramitar_processo_simples_para_orgaoB - * - * @return void - */ - public function test_verificar_recebimento_processo_simples_destino() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - /** - * Teste de trmite externo de processo realizando a devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_simples_destino - * - * @return void - */ - public function test_devolucao_processo_simples_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste3 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste3, self::$documentoTeste4); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); - - putenv("DATABASE_HOST=org1-database"); - } - - - /** - * Teste de verificao da correta devoluo do processo simples para o rgo A - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_simples_para_origem - * - * @return void - */ - public function test_verificar_devolucao_processo_simples_origem() - { - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTesteAnexado, $documentos, self::$destinatario); - } - - - - /** - * Teste de trmite de processos contendo o processo simples anexado outro - * - * @group envio - * @large - * - * @depends test_verificar_devolucao_processo_simples_origem - * - * @return void - */ - public function test_tramitar_processo_anexado_para_orgaoB() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Definio de dados de teste do processo principal - self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste6 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - $objProtocoloTestePrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); - self::$protocoloTestePrincipal = $objProtocoloTestePrincipalDTO->getStrProtocoloFormatado(); - - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - $objProtocoloTesteAnexadoDTO = $this->consultarProcessoFixture(self::$protocoloTesteAnexado, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Realizar a anexao de processos - $this->anexarProcessoFixture($objProtocoloTestePrincipalDTO->getDblIdProtocolo(), $objProtocoloTesteAnexadoDTO->getDblIdProtocolo()); - - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste6, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_tramitar_processo_anexado_para_orgaoB - * - * @return void - */ - public function test_verificar_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - - - /** - * Teste de verificao do correto recebimento do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_origem_processo_anexado - * - * @return void - */ - public function test_verificar_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $strTipoProcesso = mb_convert_encoding("Tipo de processo no rgo de origem: ", 'UTF-8', 'ISO-8859-1'); - $strTipoProcesso .= self::$processoTestePrincipal['TIPO_PROCESSO']; - $strObservacoes = $orgaosDiferentes ? $strTipoProcesso : null; - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - $strObservacoes, - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(3, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste6, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[3], self::$documentoTeste4, self::$destinatario); - } - - /** - * Teste de trmite externo de processo realizando nova devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_destino_processo_anexado - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Definio de dados de teste do processo principal - self::$documentoTeste7 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste8 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Consulta no Org2/B o DTO do Protocolo Principal - $objProtocoloTestePrincipalDTO = $this->consultarProcessoFixture(self::$protocoloTestePrincipal, \ProtocoloRN::$TP_PROCEDIMENTO); - - // Incluir novos documentos relacionados - $this->cadastrarDocumentoExternoFixture(self::$documentoTeste7, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - $this->cadastrarDocumentoInternoFixture(self::$documentoTeste8, $objProtocoloTestePrincipalDTO->getDblIdProtocolo()); - - putenv("DATABASE_HOST=org1-database"); - - $this->abrirProcesso(self::$protocoloTestePrincipal); - - // Trmitar Externamento processo para rgo/unidade destinatria - $this->tramitarProcessoExternamente( - self::$protocoloTestePrincipal, - self::$destinatario['REP_ESTRUTURAS'], - self::$destinatario['NOME_UNIDADE'], - self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], - false - ); - } - - - /** - * Teste de verificao do correto envio do processo anexado no sistema remetente - * - * @group verificacao_envio - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_devolucao_origem_processo_anexado() - { - $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { - sleep(5); - $testCase->refresh(); - $paginaProcesso = new PaginaProcesso($testCase); - $testCase->assertStringNotContainsString(mb_convert_encoding("Processo em trmite externo para ", 'UTF-8', 'ISO-8859-1'), $paginaProcesso->informacao()); - $testCase->assertFalse($paginaProcesso->processoAberto()); - $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); - return true; - }, PEN_WAIT_TIMEOUT); - - $unidade = mb_convert_encoding(self::$destinatario['NOME_UNIDADE'], "ISO-8859-1"); - $mensagemRecibo = sprintf("Trmite externo do Processo %s para %s", self::$protocoloTestePrincipal, $unidade); - $this->validarRecibosTramite($mensagemRecibo, true, true); - $this->validarHistoricoTramite(self::$destinatario['NOME_UNIDADE'], true, true); - $this->validarProcessosTramitados(self::$protocoloTestePrincipal, $orgaosDiferentes); - } - - /** - * Teste de verificao da correta devoluo do processo anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_verificar_devolucao_origem_processo_anexado - * - * @return void - */ - public function test_verificar_devolucao_destino_processo_anexado() - { - $strProtocoloTeste = self::$protocoloTestePrincipal; - $this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']); - $this->abrirProcesso(self::$protocoloTestePrincipal); - - $this->validarDadosProcesso( - self::$processoTestePrincipal['DESCRICAO'], - self::$processoTestePrincipal['RESTRICAO'], - self::$processoTestePrincipal['OBSERVACOES'], - array(self::$processoTestePrincipal['INTERESSADOS']) - ); - - $this->validarRecibosTramite("Recebimento do Processo $strProtocoloTeste", false, true); - - // Validao dos dados do processo principal - $listaDocumentosProcessoPrincipal = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(5, count($listaDocumentosProcessoPrincipal)); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[0], self::$documentoTeste5, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[2], self::$documentoTeste6, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[3], self::$documentoTeste7, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoPrincipal[4], self::$documentoTeste8, self::$destinatario); - - $this->paginaProcesso->selecionarDocumento(self::$protocoloTesteAnexado); - $this->assertTrue($this->paginaDocumento->ehProcessoAnexado()); - - // Validao dos dados do processo anexado - $this->paginaProcesso->pesquisar(self::$protocoloTesteAnexado); - $listaDocumentosProcessoAnexado = $this->paginaProcesso->listarDocumentos(); - $this->assertEquals(4, count($listaDocumentosProcessoAnexado)); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[0], self::$documentoTeste1, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[1], self::$documentoTeste2, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[2], self::$documentoTeste3, self::$destinatario); - $this->validarDadosDocumento($listaDocumentosProcessoAnexado[3], self::$documentoTeste4, self::$destinatario); - } -} diff --git a/tests_super/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php b/tests_super/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php deleted file mode 100755 index ade7952e3..000000000 --- a/tests_super/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php +++ /dev/null @@ -1,295 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class TramiteRecebimentoDocumentoAnexadoTest extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $processoTeste; - public static $remetente; - public static $destinatario; - public static $servicoPEN; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - - /** - * Teste de envio de metadados do processo contendo documentos anexados - * - * Inicialmente so enviados 3 documentos, sendo um deles refernciado pelos outros dois documentos - * - * @group envio - * @large - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_envio_processo_com_documento_anexado() - { - // Carregar contexto de testes e dados sobre certificado digital - $ordemDocumentoReferenciado = 1; - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_A); - self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_B, $ordemDocumentoReferenciado); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_C, $ordemDocumentoReferenciado); - self::$documentoTeste4 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - - // Inicia o envio dos trs primeiros documentos - $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentosPrimeiroEnvio, self::$destinatario); - $reciboTramite = $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - /** - * Teste de trmite externo de processo contendo documento anexado com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_envio_processo_com_documento_anexado - * - * @return void - */ - public function test_devolucao_processo_com_documento_anexado_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - $arrDocumentosSegundoEnvio = array(self::$documentoTeste4, self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $arrDocumentosSegundoEnvio, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo com documento anexado no destinatrio - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_com_documento_anexado_para_origem - * - * @return void - */ - public function test_verificar_processo_com_documento_anexado_apos_devolucao() - { - $arrDocumentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentos, self::$destinatario); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - } - - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - $processoTeste = parent::gerarDadosProcessoTeste($contextoProducao); - $processoTeste['INTERESSADOS'] = trim(substr($processoTeste['INTERESSADOS'], 0, 15)); - $processoTeste['DESCRICAO'] = trim(substr($processoTeste['DESCRICAO'], 0, 10)); - return $processoTeste; - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTeste = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTeste['INTERESSADOS'] = trim(substr($dadosDocumentoTeste['INTERESSADOS'], 0, 15)); - $dadosDocumentoTeste['DESCRICAO'] = trim(substr($dadosDocumentoTeste['DESCRICAO'], 0, 10)); - return $dadosDocumentoTeste; - } - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } -} diff --git a/tests_super/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php b/tests_super/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php deleted file mode 100755 index 99d2c2473..000000000 --- a/tests_super/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php +++ /dev/null @@ -1,288 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group4 - */ -class TramiteRecebimentoDocumentoAvulsoTest extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - protected $servicoPEN; - public static $remetente; - public static $destinatario; - public static $processoTeste; - public static $documentoTeste1; - public static $documentoTeste2; - public static $documentoTeste3; - public static $documentoTeste4; - public static $documentoTeste5; - - /** - * Teste preparatrio (setUp()). Definio de contextos e instanciao da api de integrao - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - putenv("DATABASE_HOST=org2-database"); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - $this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de verificao do correto recebimento do documento avulso - * - * @return void - */ - public function test_recebimento_documento_avulso() - { - // Simular um trmite chamando a API do Barramento diretamente - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, array(self::CONTEUDO_DOCUMENTO_A)); - - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste(self::$documentoTeste1); - $novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, self::$remetente, self::$destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoTramite($this->servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvio($this->servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - self::$processoTeste = $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario(self::$documentoTeste1, self::$destinatario); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_recebimento_documento_avulso - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - $documentos = array(self::$documentoTeste2, self::$documentoTeste3); - putenv("DATABASE_HOST=org1-database"); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem - * - * @return void - */ - public function test_verificar_recebimento_processo_destino() - { - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @group envio - * @large - * - * @depends test_verificar_recebimento_processo_destino - * - * @return void - */ - public function test_devolucao_processo_para_origem_documento_avulso() - { - // Configurao do dados para teste do cenrio - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente); - self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - - putenv("DATABASE_HOST=org2-database"); - $documentos = array(self::$documentoTeste4, self::$documentoTeste5); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $documentos, self::$remetente, self::$destinatario); - } - - /** - * Teste de verificao do correto recebimento do processo no destino - * - * @group verificacao_recebimento - * @large - * - * @depends test_devolucao_processo_para_origem_documento_avulso - * - * @return void - */ - public function test_verificar_recebimento_processo_destino_documento_avulso() - { - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - $documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario); - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = trim(substr($dadosDocumentoTest['INTERESSADOS'], 0, 15)); - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } -} diff --git a/tests_super/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php b/tests_super/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php deleted file mode 100755 index 768308bb9..000000000 --- a/tests_super/funcional/tests/TramiteRecebimentoInteressadosDuplicadosTest.php +++ /dev/null @@ -1,256 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_parallel_group3 - */ -class TramiteRecebimentoInteressadosDuplicadosTest extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - - public static $processoTeste; - public static $remetente; - public static $destinatario; - public static $servicoPEN; - public static $documentoTeste1; - - /** - * Teste de envio de metadados do processo contendo interessados duplicados - * - * Inicialmente so enviados 2 interessados com o mesmo nome - * - * @group envio - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function test_envio_processo_com_documento_anexado() - { - // Carregar contexto de testes e dados sobre certificado digital - $ordemDocumentoReferenciado = 1; - self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); - self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, self::CONTEUDO_DOCUMENTO_A); - - // Atribui dois interessados utilizando o mesmo nome - self::$processoTeste['INTERESSADOS'] = array("Interessado com mesmo nome", "Interessado com mesmo nome"); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - - // Inicia o envio do processo - $arrDocumentosPrimeiroEnvio = array(self::$documentoTeste1); - $processoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, $arrDocumentosPrimeiroEnvio); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, self::$remetente, self::$destinatario, $processoTeste); - $this->enviarComponentesDigitaisDoTramite(self::$servicoPEN, $novoTramite, $processoTeste); - $reciboTramite = $this->receberReciboEnvio(self::$servicoPEN, $novoTramite); - - - //Verifica recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - - //Verifica se somente um interessado foi registrado para o processo - self::$processoTeste['INTERESSADOS'] = "Interessado com mesmo nome"; - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $arrDocumentosPrimeiroEnvio, self::$destinatario); - } - - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - } - - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - - private function enviarComponentesDigitaisDoTramite($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function receberReciboEnvio($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - public function gerarDadosProcessoTeste($contextoProducao) - { - $processoTeste = parent::gerarDadosProcessoTeste($contextoProducao); - $processoTeste['PROTOCOLO'] = sprintf('99999.%06d/2020-00', rand(0, 999999)); - $processoTeste['INTERESSADOS'] = trim(substr($processoTeste['INTERESSADOS'], 0, 15)); - $processoTeste['DESCRICAO'] = trim(substr($processoTeste['DESCRICAO'], 0, 10)); - return $processoTeste; - } - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTeste = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTeste['INTERESSADOS'] = trim(substr($dadosDocumentoTeste['INTERESSADOS'], 0, 15)); - $dadosDocumentoTeste['DESCRICAO'] = trim(substr($dadosDocumentoTeste['DESCRICAO'], 0, 10)); - return $dadosDocumentoTeste; - } - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - $arrInteressados = array_map(function($item) { - return array('nome' => mb_convert_encoding($item, 'UTF-8', 'ISO-8859-1')); - }, - $processoTeste['INTERESSADOS']); - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => $arrInteressados, - 'documento' => $metadadosDocumentos, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordemComponente => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } -} diff --git a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php deleted file mode 100755 index d1036ae72..000000000 --- a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php +++ /dev/null @@ -1,403 +0,0 @@ -<?php - -use \utilphp\util; - -/** - * Execution Groups - * @group execute_alone_group1 - */ -class TramiteRecebimentoMultiplosComponentesDigitais extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoB['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoB['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, - self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, self::CONTEUDO_DOCUMENTO_A, - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C, - )); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - $documentoTeste1 = $this->gerarDadosDocumentoInternoTeste($remetente); - $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); - - $novosDocumentos = array($documentoTeste1, $documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - } - - /** - * Teste de recebimento documento avulso com 2 componentes digitais - * - * @return void - */ - public function test_recebimento_documento_avulso_com_2_componentes_digitais() - { - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - // Simular um trmite chamando a API do Barramento diretamente - $documentoTeste = $this->gerarDadosDocumentoExternoTeste($remetente, array(self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B)); - $documentoTeste['INTERESSADOS'] = trim(substr($documentoTeste['INTERESSADOS'], 0, 50)); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosDocumentoTeste = $this->construirMetadadosDocumentoAvulsoTeste($documentoTeste); - $novoTramite = $this->enviarMetadadosDocumento(self::$servicoPEN, $remetente, $destinatario, $metadadosDocumentoTeste); - $this->enviarComponentesDigitaisDoDocumentoAvulso(self::$servicoPEN, $novoTramite, $metadadosDocumentoTeste); - $reciboTramite = $this->receberReciboEnvioDocumentoAvulso(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php deleted file mode 100755 index 48982791b..000000000 --- a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php +++ /dev/null @@ -1,397 +0,0 @@ -<?php - -use \utilphp\util; - -class TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes extends FixtureCenarioBaseTestCase -{ - const ALGORITMO_HASH_DOCUMENTO = 'SHA256'; - const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA'; - - const CONTEUDO_DOCUMENTO_A = "arquivo_pequeno_A.pdf"; - const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf"; - const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf"; - - public static $contextoOrgaoA; - public static $contextoOrgaoB; - public static $processoTeste; - public static $protocoloTeste; - public static $servicoPEN; - public static $documentoZip; - - public static $totalDocumentos; - - - /** - * Teste de recebimento dedocumento avulso com 2 componentes digitais - * - * @Depends CenarioBaseTestCase::setUpBeforeClass - * - * @return void - */ - public function setUp(): void - { - parent::setup(); - - // Carregar contexto de testes e dados sobre certificado digital - self::$contextoOrgaoA = $this->definirContextoTeste(CONTEXTO_ORGAO_A); - self::$contextoOrgaoB = $this->definirContextoTeste(CONTEXTO_ORGAO_B); - - // Instanciar objeto de teste utilizando o BeSimpleSoap - $localCertificado = self::$contextoOrgaoA['LOCALIZACAO_CERTIFICADO_DIGITAL']; - $senhaCertificado = self::$contextoOrgaoA['SENHA_CERTIFICADO_DIGITAL']; - self::$servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado); - } - - /** - * Teste de recebimento processo contendo documento com 3 componentes digitais - * - * @return void - */ - public function test_recebimento_processo_com_3_componentes_digitais() - { - $remetente = self::$contextoOrgaoA; - $destinatario = self::$contextoOrgaoB; - - // Simular um trmite chamando a API do Barramento diretamente - self::$processoTeste = $this->gerarDadosProcessoTeste($remetente); - self::$processoTeste['INTERESSADOS'] = trim(substr(self::$processoTeste['INTERESSADOS'], 0, 50)); - self::$processoTeste['PROTOCOLO'] = sprintf('13990.%06d/2020-00', rand(0, 999999)); - self::$documentoZip = $this->gerarDadosDocumentoExternoTeste($remetente, array( - self::CONTEUDO_DOCUMENTO_A, self::CONTEUDO_DOCUMENTO_B, self::CONTEUDO_DOCUMENTO_C - )); - - self::$totalDocumentos = array(self::$documentoZip); - - // Simular um trmite chamando a API do Barramento diretamente - $metadadosProcessoTeste = $this->construirMetadadosProcessoTeste(self::$processoTeste, array(self::$documentoZip)); - $novoTramite = $this->enviarMetadadosProcesso(self::$servicoPEN, $remetente, $destinatario, $metadadosProcessoTeste); - - $this->enviarComponentesDigitaisDoProcesso(self::$servicoPEN, $novoTramite, $metadadosProcessoTeste); - $reciboTramite = $this->receberReciboEnvioProcesso(self::$servicoPEN, $novoTramite); - - - //Verificar recebimento de novo processo administrativo contendo documento avulso enviado - $this->assertNotNull($novoTramite); - $this->assertNotNull($reciboTramite); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, array(self::$documentoZip), $destinatario); - $this->receberReciboTramite(self::$servicoPEN, $novoTramite); - } - - - /** - * Teste de trmite externo de processo com devoluo para a mesma unidade de origem - * - * @depends test_recebimento_processo_com_3_componentes_digitais - * - * @return void - */ - public function test_devolucao_processo_para_origem_1() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoB; - $destinatario = self::$contextoOrgaoA; - - $documentoTesteInterno = $this->gerarDadosDocumentoInternoTeste($remetente); - - putenv("DATABASE_HOST=org2-database"); - $novosDocumentos = array($documentoTesteInterno); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - /** - * - * @depends test_devolucao_processo_para_origem_1 - * - * @return void - */ - public function test_devolucao_processo_para_destino_2() - { - // Configurao do dados para teste do cenrio - $remetente = self::$contextoOrgaoA; - $destinatario = array_slice(self::$contextoOrgaoB, 0); - $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; - - $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); - - putenv("DATABASE_HOST=org1-database"); - $novosDocumentos = array($documentoTesteExterno); - $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); - - self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); - $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); - } - - - private function receberReciboEnvioDocumentoAvulso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->tramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboEnvioProcesso($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeEnvio($parametros); - } - - private function receberReciboTramite($servicoPEN, $novoTramite) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - $parametros = new StdClass(); - $parametros->IDT = $dadosTramite->IDT; - return $servicoPEN->receberReciboDeTramite($parametros); - } - - private function enviarMetadadosProcesso($servicoPEN, $remetente, $destinatario, $processoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeProcesso = new stdClass(); - $parametros->novoTramiteDeProcesso->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeProcesso->processo = $processoTeste; - return $servicoPEN->enviarProcesso($parametros); - } - - private function enviarMetadadosDocumento($servicoPEN, $remetente, $destinatario, $documentoTeste) - { - $parametros = new stdClass(); - $parametros->novoTramiteDeDocumento = new stdClass(); - $parametros->novoTramiteDeDocumento->cabecalho = $this->construirCabecalhoTeste($remetente, $destinatario); - $parametros->novoTramiteDeDocumento->documento = $documentoTeste; - return $servicoPEN->enviarDocumento($parametros); - } - - private function enviarComponentesDigitaisDoDocumentoAvulso($servicoPEN, $novoTramite, $documentoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeDocumentoCriado; - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $documentoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - - private function enviarComponentesDigitaisDoProcesso($servicoPEN, $novoTramite, $processoTeste) - { - $dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado; - foreach ($processoTeste['documento'] as $documentoTeste) { - foreach ($documentoTeste['componenteDigital'] as $item) { - $dadosDoComponenteDigital = new stdClass(); - $dadosDoComponenteDigital->protocolo = $processoTeste['protocolo']; - $dadosDoComponenteDigital->hashDoComponenteDigital = $item['valorHash']; - $dadosDoComponenteDigital->conteudoDoComponenteDigital = new SoapVar($item['conteudo'], XSD_BASE64BINARY); - $dadosDoComponenteDigital->ticketParaEnvioDeComponentesDigitais = $dadosTramite->ticketParaEnvioDeComponentesDigitais; - - $parametros = new stdClass(); - $parametros->dadosDoComponenteDigital = $dadosDoComponenteDigital; - $servicoPEN->enviarComponenteDigital($parametros); - } - } - } - - private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado) - { - $connectionTimeout = 600; - $options = array( - 'soap_version' => SOAP_1_1 - , 'local_cert' => $localCertificado - , 'passphrase' => $senhaCertificado - , 'resolve_wsdl_remote_includes' => true - , 'cache_wsdl'=> BeSimple\SoapCommon\Cache::TYPE_NONE - , 'connection_timeout' => $connectionTimeout - , CURLOPT_TIMEOUT => $connectionTimeout - , CURLOPT_CONNECTTIMEOUT => $connectionTimeout - , 'encoding' => 'UTF-8' - , 'attachment_type' => BeSimple\SoapCommon\Helper::ATTACHMENTS_TYPE_MTOM - , 'ssl' => array( - 'allow_self_signed' => true, - ), - ); - - return new BeSimple\SoapClient\SoapClient(PEN_ENDERECO_WEBSERVICE, $options); - - } - - private function construirCabecalhoTeste($remetente, $destinatario) - { - $cabecalho = new stdClass(); - $cabecalho->remetente = new stdClass(); - $cabecalho->remetente->identificacaoDoRepositorioDeEstruturas = $remetente['ID_REP_ESTRUTURAS']; - $cabecalho->remetente->numeroDeIdentificacaoDaEstrutura = $remetente['ID_ESTRUTURA']; - - $cabecalho->destinatario = new stdClass(); - $cabecalho->destinatario->identificacaoDoRepositorioDeEstruturas = $destinatario['ID_REP_ESTRUTURAS']; - $cabecalho->destinatario->numeroDeIdentificacaoDaEstrutura =$destinatario['ID_ESTRUTURA']; - - $cabecalho->urgente = false; - $cabecalho->motivoDaUrgencia = null; - $cabecalho->obrigarEnvioDeTodosOsComponentesDigitais = false; - return $cabecalho; - } - - - public function gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos='arquivo_pequeno.txt', $ordemDocumentoReferenciado=null) - { - $dadosDocumentoTest = parent::gerarDadosDocumentoExternoTeste($contextoProducao, $nomesArquivos, $ordemDocumentoReferenciado); - $dadosDocumentoTest['INTERESSADOS'] = $dadosDocumentoTest['INTERESSADOS']; - $dadosDocumentoTest['DESCRICAO'] = trim(substr($dadosDocumentoTest['DESCRICAO'], 0, 10)); - return $dadosDocumentoTest; - - } - - private function construirMetadadosDocumentoAvulsoTeste($documentoTeste) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $ordem => $caminhoArquivo) { - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordem + 1, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - return array( - 'protocolo' => '13990.000181/2020-00', - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - } - - private function construirMetadadosDocumentoTeste($documentoTeste, $ordemDocumento) - { - $componentes = array(); - $listaComponentes = is_array($documentoTeste['ARQUIVO']) ? $documentoTeste['ARQUIVO'] : array($documentoTeste['ARQUIVO']); - - foreach ($listaComponentes as $index => $caminhoArquivo) { - $ordemComponente = $index + 1; - $caminhoArquivo = realpath($caminhoArquivo); - $fp = fopen($caminhoArquivo, "rb"); - try{ - $conteudo = fread($fp, filesize($caminhoArquivo)); - $tamanhoDocumento = strlen($conteudo); - $hashDocumento = base64_encode(hash(self::ALGORITMO_HASH_DOCUMENTO, $conteudo, true)); - $nomeArquivo = basename($caminhoArquivo); - $componentes[] = array( - 'nome' => $nomeArquivo, - 'hash' => new SoapVar("<hash algoritmo='SHA256'>$hashDocumento</hash>", XSD_ANYXML), - 'tipoDeConteudo' => 'txt', - 'mimeType' => 'text/plain', - 'tamanhoEmBytes' => $tamanhoDocumento, - 'ordem' => $ordemComponente, - - // Chaves abaixo adicionadas apenas para simplificaão dos testes - 'valorHash' => $hashDocumento, - 'conteudo' => $conteudo, - ); - } finally { - fclose($fp); - } - } - - $documentoDoProcesso = array( - 'protocolo' => util::random_string(5), - 'nivelDeSigilo' => 1, - 'descricao' => $documentoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'ordem' => $ordemDocumento, - - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - 'numeroDeIdentificacao' => '999999', - ), - - 'especie' => array( - 'codigo' => 42, - 'nomeNoProdutor' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1') - ), - - 'interessado' => array( - 'nome' => $documentoTeste['INTERESSADOS'], - ), - - 'componenteDigital' => $componentes, - ); - - if(!is_null($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO'])){ - $documentoDoProcesso['ordemDoDocumentoReferenciado'] = intval($documentoTeste['ORDEM_DOCUMENTO_REFERENCIADO']); - } - - return $documentoDoProcesso; - } - - - private function construirMetadadosProcessoTeste($processoTeste, $documentosTeste) - { - $metadadosDocumentos = array(); - foreach ($documentosTeste as $indice => $documentoTeste) { - $metadadosDocumentos[] = $this->construirMetadadosDocumentoTeste($documentoTeste, $indice + 1); - } - - return array( - 'protocolo' => $processoTeste['PROTOCOLO'], - 'nivelDeSigilo' => 1, - 'processoDeNegocio' => $processoTeste['TIPO_PROCESSO'], - 'descricao' => $processoTeste['DESCRICAO'], - 'dataHoraDeProducao' => '2017-05-15T03:41:13', - 'dataHoraDeRegistro' => '2013-12-21T09:32:42-02:00', - 'produtor' => array( - 'nome' => mb_convert_encoding(util::random_string(20), 'UTF-8', 'ISO-8859-1'), - ), - 'interessado' => array( - 'nome' => $processoTeste['INTERESSADOS'], - ), - 'documento' => $metadadosDocumentos, - ); - } - -} diff --git a/tests_super/integracao/Readme.md b/tests_super/integracao/Readme.md deleted file mode 100755 index 14acc24c1..000000000 --- a/tests_super/integracao/Readme.md +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------- -CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI ---------------------------------------------------- - -1 - Atualizar as Dependências do Projeto -Acessar o diretório do projeto sei-teste e atualizar as dependências do composer ->> composer install - -2 - Executar o Servidor de Teste Selenium -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38 lib/selenium-server-standalone-3.11.0.jar - -Windows: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38.exe lib/selenium-server-standalone-3.11.0.jar - - -4 - Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser acessada para configurar os seguintes parâmetros de teste que irão guiar diferentes cenários de teste do sistema: - -4.1 - Configurar todos os parâmetros do arquivo phpunit.xml para guiar o teste de acordo com a atual configuração do banco de dados. Os principais são os seguintes: - - * PHPUNIT_TESTS_URL - - * CONTEXTO_ORGAO_A - - * CONTEXTO_ORGAO_A_URL - - * CONTEXTO_ORGAO_A_SIGLA_ORGAO - - * CONTEXTO_ORGAO_A_REP_ESTRUTURAS - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE - - * CONTEXTO_ORGAO_A_NOME_UNIDADE - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA - - * CONTEXTO_ORGAO_A_USUARIO_LOGIN - - * CONTEXTO_ORGAO_A_USUARIO_SENHA - - * CONTEXTO_ORGAO_A_TIPO_PROCESSO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_CARGO_ASSINATURA - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO - - - - -3 - Executar o Teste Funcional Automatizado - -Linux: ->> ./vendor/bin/phpunit - -Windows: ->> .\vendor\bin\phpunit.bat - - diff --git a/tests_super/unitario/Readme.md b/tests_super/unitario/Readme.md deleted file mode 100755 index 14acc24c1..000000000 --- a/tests_super/unitario/Readme.md +++ /dev/null @@ -1,75 +0,0 @@ ---------------------------------------------------- -CONFIGURAÇÃO DO PROJETO DE TESTES FUNCIONAIS DO SEI ---------------------------------------------------- - -1 - Atualizar as Dependências do Projeto -Acessar o diretório do projeto sei-teste e atualizar as dependências do composer ->> composer install - -2 - Executar o Servidor de Teste Selenium -PS: Em caso de erro "Connection Refused", verificar se a versão do chromedriver informada no parâmetro -Dwebdriver.chrome.driver é compatível com a versão do Chrome instalada - -Linux: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38 lib/selenium-server-standalone-3.11.0.jar - -Windows: ->> java -jar -Dwebdriver.chrome.driver=lib/drivers/chromedriver-2.38.exe lib/selenium-server-standalone-3.11.0.jar - - -4 - Configurar pré-requisitos necessários para que o teste execute corretamente -Antes de executar os testes, a aplicação deverá ser acessada para configurar os seguintes parâmetros de teste que irão guiar diferentes cenários de teste do sistema: - -4.1 - Configurar todos os parâmetros do arquivo phpunit.xml para guiar o teste de acordo com a atual configuração do banco de dados. Os principais são os seguintes: - - * PHPUNIT_TESTS_URL - - * CONTEXTO_ORGAO_A - - * CONTEXTO_ORGAO_A_URL - - * CONTEXTO_ORGAO_A_SIGLA_ORGAO - - * CONTEXTO_ORGAO_A_REP_ESTRUTURAS - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE - - * CONTEXTO_ORGAO_A_NOME_UNIDADE - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_HIERARQUIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA - - * CONTEXTO_ORGAO_A_SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA - - * CONTEXTO_ORGAO_A_USUARIO_LOGIN - - * CONTEXTO_ORGAO_A_USUARIO_SENHA - - * CONTEXTO_ORGAO_A_TIPO_PROCESSO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO - - * CONTEXTO_ORGAO_A_TIPO_DOCUMENTO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_NAO_MAPEADO - - * CONTEXTO_ORGAO_A_CARGO_ASSINATURA - - * CONTEXTO_ORGAO_A_HIPOTESE_RESTRICAO_PADRAO - - - - -3 - Executar o Teste Funcional Automatizado - -Linux: ->> ./vendor/bin/phpunit - -Windows: ->> .\vendor\bin\phpunit.bat - - diff --git a/tests_super/unitario/assets/config/ConfiguracaoModPEN.php b/tests_super/unitario/assets/config/ConfiguracaoModPEN.php deleted file mode 100755 index fbbf00c0c..000000000 --- a/tests_super/unitario/assets/config/ConfiguracaoModPEN.php +++ /dev/null @@ -1,75 +0,0 @@ -<? - -/** - * Arquivo de configurao do Mdulo de Integrao do SEI com o Processo Eletrnico Nacional - * - * Seu desenvolvimento seguiu os mesmos padres de configurao implementado pelo SEI e SIP e este - * arquivo precisa ser adicionado pasta de configuraes do SEI para seu correto carregamento pelo mdulo. - */ - -class ConfiguracaoModPEN extends InfraConfiguracao { - - private static $instance = null; - - /** - * Obtm instncia nica (singleton) dos dados de configurao do mdulo de integrao com Barramento PEN - * - * - * @return ConfiguracaoModPEN - */ - public static function getInstance() - { - if (ConfiguracaoModPEN::$instance == null) { - ConfiguracaoModPEN::$instance = new ConfiguracaoModPEN(); - } - return ConfiguracaoModPEN::$instance; - } - - /** - * Definio dos parmetros de configurao do mdulo - * - * @return array - */ - public function getArrConfiguracoes() - { - return array( - "PEN" => array( - // Endereo do Web Service principal de integrao com o Barramento de Servios do PEN - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/ - // - Produo: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/ - "WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/", - - // Endereo do Web Service de monitoramente de pendncias de trmite no Barramento de Servios do PEN - // Configurao necessria para que o envio e recebimento de processos sejam feitas de forma dinmica pelo sistema - // Os endereos disponveis so os seguintes (verifique se houve atualizaes durante o procedimento de instalao): - // - Homologao: https://homolog.pendencias.processoeletronico.gov.br/ - // - Produo: https://pendencias.conectagov.processoeletronico.gov.br/ - "WebServicePendencias" => "", - - // Localizao completa do certificado digital utilizado para autenticao nos servios do Barramento de Servios do PEN - // e assinar os recibos de envio/concluso dos trmites de processo - // Necessrio que o arquivo de certificado esteja localizado dentro da pasta de configuraes do mdulo: - // Ex: <DIRETRIO RAIZ DE INSTALAO DO SEI>/sei/config/mod-pen/certificado.pem - "LocalizacaoCertificado" => '/tmp/', - - // Senha do certificado digital necessrio para a aplicao descriptografar a chave privada - "SenhaCertificado" => '123456', - - // Quantidade de tentativas de requiso dos servios do Barramento PEN antes que um erro possa ser lanado pela aplicao - // Necessrio para aumentar a resilincia da integrao em contextos de instabilidade de rede. - // Valor padro: 3 - "NumeroTentativasErro" => 3, - - // Localizao do servidor Gearman de gerenciamento de fila de processamento de tarefas do Barramento PEN - // As mensagem recebidas so organizadas em filas de tarefas e distribudas entre os ns da aplicao para - // processamento paralelo. Caso este parmetro no seja configurado ou o servidor este indisponvel, o processamento ser - // feito diretamente pelo sistema na periodicidade definida pelo agendamento da tarefa PENAgendamento::receberProcessos - "Gearman" => array( - "Servidor" => "", - "Porta" => "", //Padro: 4730 - ) - ) - ); - } -} diff --git a/tests_super/unitario/bootstrap.php b/tests_super/unitario/bootstrap.php deleted file mode 100755 index 69fdb7ba6..000000000 --- a/tests_super/unitario/bootstrap.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php - -//require_once __DIR__ . '/vendor/autoload.php'; - -// define('DIR_SEI_WEB', realpath(DIR_SEI_CONFIG . '/../web')); - -// set_include_path('.:/php/includes:'.realpath(DIR_SEI_CONFIG . '/../../infra/infra_php')); -// require_once DIR_SEI_WEB . '/SEI.php'; -//require_once __DIR__ . '/assets/config/ConfiguracaoModPEN.php'; diff --git a/tests_super/unitario/composer.phar b/tests_super/unitario/composer.phar deleted file mode 100755 index 9c9f54ecd..000000000 Binary files a/tests_super/unitario/composer.phar and /dev/null differ diff --git a/tests_super/unitario/php.ini b/tests_super/unitario/php.ini deleted file mode 100755 index 99d148bf3..000000000 --- a/tests_super/unitario/php.ini +++ /dev/null @@ -1,20 +0,0 @@ -[php] -; Parâmetros recomendados no Manual de Instalação do SEI 3.0.0 -default_charset = "iso-8859-1" -session.gc_maxlifetime = 28800 -short_open_tag = On -default_socket_timeout = 60 -max_input_vars = 2000 -magic-quotes-gpc = 0 -magic_quotes_runtime = 0 -magic_quotes_sybase = 0 -post_max_size = 110M -upload_max_filesize = 100M - -; Parâmetros recomendados para ambiente de desenvolvimento -error_reporting = E_ALL -display_errors = On -display_startup_errors = On -track_errors = On -html_errors = On -always_populate_raw_post_data = -1 \ No newline at end of file diff --git a/tests_super/unitario/phpunit.xml b/tests_super/unitario/phpunit.xml deleted file mode 100755 index bd3fb6dac..000000000 --- a/tests_super/unitario/phpunit.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<phpunit bootstrap="bootstrap.php" colors="true" verbose="true"> - <php> - <!-- Localização do diretório onde está contido os arquivos de configuração do SEI --> - <const name="DIR_SEI_CONFIG" value="/opt/sei/config"/> - </php> -</phpunit> diff --git a/tests_super/unitario/rn/ProcessoEletronicoRNTest.php b/tests_super/unitario/rn/ProcessoEletronicoRNTest.php deleted file mode 100755 index 5123029c6..000000000 --- a/tests_super/unitario/rn/ProcessoEletronicoRNTest.php +++ /dev/null @@ -1,114 +0,0 @@ -<?php - -use PHPUnit\Framework\TestCase; - -final class ProcessoEletronicoRNTest extends TestCase -{ - private $ProcessoEletronicoRN; - - public function setUp() - { - $this->objProcessoEletronicoRN = new ProcessoEletronicoRN(); - } - - /** - * Testes do mtodo privado reduzirCampoTexto - * - * @return void - */ - public function testReduzirCampoTexto() - { - $numTamanhoMaximo = 53; - // Teste considerando uma palavra pequena ao final do texto - $strTexto = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee fffffffff ggggggggg hhhhhhhhh iiiiiiiii"; - $strResultadoEsperado = "aaaaaaaaa bbbbbbbbb ccccccccc ddddddddd eeeeeeeee ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas uma palavra - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com uma palavra grande ao final - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando texto longo e palavro curta ao finals - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto curto abaixo do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - $strResultadoEsperado = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com apenas um caracter fora do limite - $strTexto = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa a"; - $strResultadoEsperado = "aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa aaaaaaaaa ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - // Teste considerando um texto nulo - $strTexto = null; - $strResultadoEsperado = null; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, $numTamanhoMaximo); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= $numTamanhoMaximo); - - // Teste considerando um texto longo com ultima palavra menor que a reticencias - $strTexto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniamr quis"; - $strResultadoEsperado = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniam ..."; - $strResultadoAtual = $this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen($strResultadoAtual) <= 150); - - $strTexto = " "; - $strResultadoEsperado = mb_convert_encoding(" ...", 'UTF-8', 'ISO-8859-1'); - $strResultadoAtual = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 9), 'UTF-8', 'ISO-8859-1'); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen(mb_convert_encoding($strResultadoAtual, 'ISO-8859-1', 'UTF-8')) <= 9); - - $strTexto = " ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniamr quis"; - $strResultadoEsperado = mb_convert_encoding(" ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lbore et dolore magna aliqua. Ut enim ad minim veniam ...", 'UTF-8', 'ISO-8859-1'); - $strResultadoAtual = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 150), 'UTF-8', 'ISO-8859-1'); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(mb_strlen($strResultadoAtual) <= 150); - - $strTexto = "Assessoria de Comunicao do Gabinete do Diretor-Presidente da Autoridade Nacional dede Proteo de dados"; - $strResultadoEsperado = mb_convert_encoding("Assessoria de Comunicao do Gabinete do Diretor-Presidente da Autoridade Nacional dede Prote ...", 'UTF-8', 'ISO-8859-1'); - $strResultadoAtual = mb_convert_encoding($this->objProcessoEletronicoRN->reduzirCampoTexto($strTexto, 100), 'UTF-8', 'ISO-8859-1'); - $this->assertEquals($strResultadoEsperado, $strResultadoAtual); - $this->assertTrue(strlen(mb_convert_encoding($strResultadoAtual, 'ISO-8859-1', 'UTF-8')) <= 100); - - } - - public function testCompararVersoes(){ - $this->assertTrue(InfraUtil::compararVersoes("0.0.1", "<", "0.0.2")); - $this->assertTrue(InfraUtil::compararVersoes("0.1.0", "<", "0.2.0")); - $this->assertTrue(InfraUtil::compararVersoes("1.0.0", "<", "2.0.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "==", "4.0.3.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3", "<", "4.0.3.1")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.4", ">", "4.0.3.0")); - $this->assertTrue(InfraUtil::compararVersoes("4.0.3.0", "==", "4.0.3.5", 3, true)); - } -}