Skip to content

Commit

Permalink
Merge pull request #380 from secultce/homolog
Browse files Browse the repository at this point in the history
Merge homolog to main
  • Loading branch information
Junior-Shyko authored Feb 10, 2025
2 parents fbe3d53 + 52b72ca commit acd152a
Show file tree
Hide file tree
Showing 31 changed files with 282 additions and 141 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: ci

on:
pull_request:
branches:
- homolog
types:
- closed

workflow_dispatch:

jobs:
BUILD:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:

- uses: actions/[email protected]

- name: Read version file
id: get_version
run: |
VERSION=$(cat version.txt)
echo "app_version=$VERSION" >> $GITHUB_ENV
- name: Docker Login
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Checkout submodules
run: git submodule update --init --recursive

- name: Criação da Imagem docker
uses: docker/[email protected]
with:
context: ./
file: ./Dockerfile
push: true
tags: |
secultceara/mapasculturais:homolog
secultceara/mapasculturais:${{ env.app_version }}-rc
DEPLOY:
needs: BUILD
runs-on: mapahomolog
steps:
- name: Pull da imagem do dockerhub
run: sudo docker pull secultceara/mapasculturais:homolog
- name: Restart do docker-compose para atualizar o container com a nova imagem
run: cd /opt/docker/mapa5 && sudo docker-compose down && sudo docker-compose up -d
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ Todas as mudanças notáveis no projeto serão documentadas neste arquivo.
O formato é baseado no [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/)
e este projeto adere ao [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [5.9.7] - 2025-02-10
### Modificado
- Ativação para LGPD

## [5.9.6] - 2024-11-29
### Corrigido
- Corrigindo bug de metadata do relacionamento de entidade com selos
Expand Down
2 changes: 1 addition & 1 deletion compose/production/config.d/auth.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
'timeout' => '24 hours',
'enableLoginByCPF' => true,
'metadataFieldCPF' => 'documento',
'userMustConfirmEmailToUseTheSystem' => false,
'userMustConfirmEmailToUseTheSystem' => true,
'passwordMustHaveCapitalLetters' => false,
'passwordMustHaveLowercaseLetters' => true,
'passwordMustHaveSpecialCharacters' => false,
Expand Down
19 changes: 7 additions & 12 deletions src/protected/application/conf/conf-base.d/lgpd.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,17 @@

return [
'module.LGPD' => [
/*
'termsOfUsage'=>[
'title'=> 'Termos de Uso',
'text'=> file_get_contents(__DIR__ . '/lgpd-terms/terms-of-usage.html')
'termsOfUsage' => [
'title' => 'Termos de Uso',
'text' => file_get_contents(__DIR__ . '/lgpd-terms/terms-of-usage.html')
],
'privacyPolicy' => [
'title'=> 'Política de Privacidade do Mapa Cultural',
'text'=> file_get_contents(__DIR__ . '/lgpd-terms/privacy-policy.html')
'title' => 'Política de Privacidade do Mapa Cultural',
'text' => file_get_contents(__DIR__ . '/lgpd-terms/privacy-policy.html')
],
'termsUse' => [
'title'=> 'Autorização de uso de imagem',
'text'=> file_get_contents(__DIR__ . '/lgpd-terms/images-use.html')
'title' => 'Autorização de uso de imagem',
'text' => file_get_contents(__DIR__ . '/lgpd-terms/images-use.html')
],
// */
]
];



1 change: 1 addition & 0 deletions src/protected/application/lib/MapasCulturais/Utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ static function getTermsByOpportunity($text, $opportunity)
'avaliado' => 'monitorado',
'Avaliada' => 'Monitorada',
'avaliada' => 'monitorada',
'Enviar inscrição' => 'Enviar prestação de contas'
];


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class Controller extends \MapasCulturais\Controller implements NotificationInter
const ANSWER_DRAFT = 'resposta_rascunho';
const ANSWER_SEND = 'resposta_enviada';


/**
* Salva uma diligência
*
Expand All @@ -33,27 +34,34 @@ public function POST_save(): void

$app = App::i();
$registration = $app->repo('Registration')->find($this->data['registration']);
// Consulta se tem diligencia
$isDiligence = $app->repo('Diligence\Entities\Diligence')->findOneBy(['registration' => $this->data['registration']]);
// Se não tiver diligencia ou se quem abriu a diligencia é a mesma pessoa logada poderá alterar o registro
if(is_null($isDiligence) || $isDiligence->openAgent->id == $app->user->profile->id){
if (($this->data['idDiligence'] ?: 0) == 0 && (is_null($registration->opportunity->use_multiple_diligence) || $registration->opportunity->use_multiple_diligence === 'Não')) {
$diligences = $app->repo(EntityDiligence::class)->findBy([
'registration' => $registration,
'status' => [EntityDiligence::STATUS_DRAFT, EntityDiligence::STATUS_OPEN, EntityDiligence::STATUS_SEND]
]);

if (count($diligences) > 0) {
$this->json([
'message' => 'Já foi aberta uma diligência para essa inscrição. Não é permitida a abertura de outra',
'error' => 'multiple_diligence_not_alowed',
], 400);

return;
}
}

if (($this->data['idDiligence'] ?: 0) == 0 && (is_null($registration->opportunity->use_multiple_diligence) || $registration->opportunity->use_multiple_diligence === 'Não')) {
$diligences = $app->repo(EntityDiligence::class)->findBy([
'registration' => $registration,
'status' => [EntityDiligence::STATUS_DRAFT, EntityDiligence::STATUS_OPEN, EntityDiligence::STATUS_SEND]
]);

if (count($diligences) > 0) {
$this->json([
'message' => 'Já foi aberta uma diligência para essa inscrição. Não é permitida a abertura de outra',
'error' => 'multiple_diligence_not_alowed',
], 400);
$answer = new EntityDiligence();
$entity = $answer->createOrUpdate($this);

return;
}
$this->json(['message' => 'success', 'status' => 200, 'entityId' => $entity['entityId']]);
}else{
$this->json(['message' => 'Essa prestação de conta já está em diligência.', 'status' => 403]);
}

$answer = new EntityDiligence();
$entity = $answer->createOrUpdate($this);

$this->json(['message' => 'success', 'status' => 200, 'entityId' => $entity['entityId']]);
}

/**
Expand All @@ -65,9 +73,9 @@ public function GET_getcontent(): void
{
$app = App::i();

//ID é o número da inscrição
// ID é o número da inscrição
if (isset($this->data['id'])) {
//Repositorio da Diligencia
// Repositorio da Diligencia
$diligences = $app->repo('Diligence\Entities\Diligence')
->findBy(
['registration' => $this->data['id']],
Expand Down Expand Up @@ -113,7 +121,7 @@ public function notification(): void
App::i()->applyHook('controller(diligence).notification:before');
//Notificação no Mapa Cultural
$notification = new NotificationDiligence();
$notification->create($this, '');
$notification->create($this, EntityDiligence::TYPE_NOTIFICATION_AUDITOR);

$userDestination = $notification->userDestination($this);
App::i()->applyHook('controller(diligence).notification:after');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,14 @@ function POST_saveTado()
$tado->object = $this->data['object'];
$tado->registration = $reg;
$tado->conclusion = $this->data['conclusion'];
$tado->status = self::STATUS_DRAFT;
$tado->status = $this->data['status'];
$tado->agentSignature = $app->auth->getAuthenticatedUser()->profile;
$tado->nameManager = $this->data['nameManager'];
$tado->cpfManager = $this->data['cpfManager'];

$entity = self::saveEntity($tado);
if ($entity["entityId"]) {
if ($this->data['status'] == 1) self::returnRequestJson('O seu documento foi gerado!', 'TADO finalizado e realizado o download para o seu computador.', 200);
self::returnRequestJson('Sucesso!', 'Rascunho criado com sucesso.', 200);
}
}
Expand Down Expand Up @@ -147,8 +148,6 @@ private function returnRequestJson($title, $message, $status)
//Notificação via plataforma do mapa cultural ao proponente
public function sendNotificationTagoGeneration()
{
$msgTado = 'O TERMO DE ACEITAÇÃO DEFINITIVA DO OBJETO, foi gerado e você já pode verificar acessando o sua inscrição: Nº ';

$app = App::i();
$ag = $app->repo('Registration')->find($this->data['id']);
//Inscrição, agente fiscal e agente proponente
Expand All @@ -164,6 +163,6 @@ public function sendNotificationTagoGeneration()
};

$class->data = $notifi;
$notification->create($class, $msgTado);
$notification->create($class, EntityDiligence::TYPE_NOTIFICATION_TADO);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
namespace Diligence\Entities;

use DateTime;
use \MapasCulturais\App;
use Diligence\Entities\NotificationDiligence;
use MapasCulturais\App;
use MapasCulturais\Entity;
use Doctrine\ORM\Mapping as ORM;
use Respect\Validation\Rules\Json;
use Diligence\Controllers\Controller;
use Diligence\Service\DiligenceInterface;
use Diligence\Entities\Diligence as DiligenceEntity;
use Diligence\Repositories\Diligence as DiligenceRepo;
use Carbon\Carbon;

Expand Down Expand Up @@ -89,17 +91,18 @@ public function createOrUpdate($class): string
App::i()->applyHook('entity(diligence).createAnswer:before');

$repo = new DiligenceRepo();

//Buscando a ultima diligencia da inscrição passado por parametro
$lastDiligence = $repo->getIdLastDiligence($class->data['registration']);
// Notificando a pessoa fiscal

$notification = new NotificationDiligence();
$notification->create($class, DiligenceEntity::TYPE_NOTIFICATION_PROPONENT);
$answer = new AnswerDiligence();
$reg = $app->repo('Registration')->find($class->data['registration']);

if($class->data['idAnswer'] > 0){
//Se tiver registro de diligência
$answerDiligences = App::i()->repo('Diligence\Entities\AnswerDiligence')->find($class->data['idAnswer']);

$answerDiligences->answer = $class->data['answer'];
$answerDiligences->createTimestamp = new DateTime();
$answerDiligences->registration = $reg;
Expand All @@ -118,7 +121,7 @@ public function createOrUpdate($class): string
$save = self::saveEntity($answer);

App::i()->applyHook('entity(diligence).createAnswer', [&$answer]);

return json_encode(['message' => 'success', 'entityId' => $save['entityId'], 'status' => 200]);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ class Diligence extends \MapasCulturais\Entity implements DiligenceInterface
const STATUS_OPEN = 2; // Para diligencias que está em aberto
const STATUS_SEND = 3; // Para diligência enviada para o proponente
const STATUS_ANSWERED = 4; // Para diligências respondida pelo proponente
const TYPE_NOTIFICATION_AUDITOR = 'diligence';
const TYPE_NOTIFICATION_PROPONENT = 'answer';

const TYPE_NOTIFICATION_TADO = 'tado';
/**
* @var integer
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,28 @@
<?php

namespace Diligence\Entities;

use Diligence\Entities\Diligence as EntityDiligence;
use \MapasCulturais\App;
use MapasCulturais\Entities\Notification;
use Diligence\Repositories\Diligence as DiligenceRepo;

class NotificationDiligence {

public function create($class, $msgSend)
public function create($class, $type)
{

$app = App::i();
$notification = new Notification();

$agent = $app->repo('Agent')->find($class->data['agent']);
$url = $app->createUrl('inscricao', $class->data['registration']);
//Mensagem para notificação na plataforma
$numberRegis = '<a href="'.$url.'">'.$class->data['registration'].'</a>';

if($msgSend == '' || $msgSend == null)
{
$msgSend = 'Um parecerista abriu uma diligência para você responder na inscrição de número: ';
// Mensagem para notificação na plataforma
if($type == 'diligence') {
$agent = $app->repo('Agent')->find($class->data['agent']);
$notification->message = $this->generateMessage($class, $type);
$notification->user = $agent->user;
}else{
$dili = $app->repo('Diligence\Entities\Diligence')->findOneBy(['registration' => $class->data['registration']]);
$notification->message = $this->generateMessage($class, $type);
$notification->user = $dili->openAgent->user;
}

$message = $msgSend . $numberRegis ;

$notification->message = $message;
$notification->user = $agent->user;

$app->disableAccessControl();
$notification->save(true);
$app->enableAccessControl();
Expand All @@ -40,14 +35,36 @@ public function userDestination($class) : array
$class->data['openAgent'],
$class->data['agent']
);
//Array para fila
// Array para fila
return [
'name' => $regs['agent']->name,
'email' => $regs['agent']->user->email,
'number' => $regs['reg']->id,
'days' => $regs['reg']->opportunity->getMetadata('diligence_days')
];
}

/**
* Gera o contexto da mensagem para a notificação
* @param $class
* @param $type
* @return string
*/
public function generateMessage($class, $type) : string
{
$app = App::i();
$numberRegis = '<a href="'. $app->createUrl('inscricao', $class->data['registration']).'">'.$class->data['registration'].'</a>';
if($type == EntityDiligence::TYPE_NOTIFICATION_AUDITOR) {
// Mensagem para o proponente
return 'Um parecerista abriu uma diligência para você responder na inscrição de número: '.$numberRegis;
}
if($type == EntityDiligence::TYPE_NOTIFICATION_PROPONENT) {
// Mensagem para o fiscal
return "Houve uma resposta para prestação de conta de número: ".$numberRegis;
}
if($type == EntityDiligence::TYPE_NOTIFICATION_TADO) {
// Mensagem para o proponente
return "O TERMO DE ACEITAÇÃO DEFINITIVA DO OBJETO, foi gerado e você já pode verificar acessando o sua inscrição: Nº ".$numberRegis;
}
}

}
Loading

0 comments on commit acd152a

Please sign in to comment.