Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Merge Develop to homolog #355

Merged
merged 6 commits into from
Dec 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 conta'
];


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 Down Expand Up @@ -120,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 @@ -147,8 +147,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 +162,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