Skip to content

Commit

Permalink
Merge pull request #352 from secultce/feature/notifiAudictor
Browse files Browse the repository at this point in the history
🔔 Notificar Fiscais
  • Loading branch information
Junior-Shyko authored Dec 20, 2024
2 parents f7d33ac + 6ef853b commit 6807599
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 27 deletions.
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;
}
}

}

0 comments on commit 6807599

Please sign in to comment.