diff --git a/src/protected/application/lib/MapasCulturais/Utils.php b/src/protected/application/lib/MapasCulturais/Utils.php index ce10aa538..2b3295def 100644 --- a/src/protected/application/lib/MapasCulturais/Utils.php +++ b/src/protected/application/lib/MapasCulturais/Utils.php @@ -209,6 +209,7 @@ static function getTermsByOpportunity($text, $opportunity) 'avaliado' => 'monitorado', 'Avaliada' => 'Monitorada', 'avaliada' => 'monitorada', + 'Enviar inscrição' => 'Enviar prestação de conta' ]; diff --git a/src/protected/application/lib/modules/Diligence/Controllers/Controller.php b/src/protected/application/lib/modules/Diligence/Controllers/Controller.php index 601e5aee2..bd6d1d876 100644 --- a/src/protected/application/lib/modules/Diligence/Controllers/Controller.php +++ b/src/protected/application/lib/modules/Diligence/Controllers/Controller.php @@ -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 * @@ -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'); diff --git a/src/protected/application/lib/modules/Diligence/Controllers/Tado.php b/src/protected/application/lib/modules/Diligence/Controllers/Tado.php index 0a07cbff0..cabea1ea8 100644 --- a/src/protected/application/lib/modules/Diligence/Controllers/Tado.php +++ b/src/protected/application/lib/modules/Diligence/Controllers/Tado.php @@ -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 @@ -164,6 +162,6 @@ public function sendNotificationTagoGeneration() }; $class->data = $notifi; - $notification->create($class, $msgTado); + $notification->create($class, EntityDiligence::TYPE_NOTIFICATION_TADO); } } \ No newline at end of file diff --git a/src/protected/application/lib/modules/Diligence/Entities/AnswerDiligence.php b/src/protected/application/lib/modules/Diligence/Entities/AnswerDiligence.php index e07387998..77519112d 100644 --- a/src/protected/application/lib/modules/Diligence/Entities/AnswerDiligence.php +++ b/src/protected/application/lib/modules/Diligence/Entities/AnswerDiligence.php @@ -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; @@ -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; @@ -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]); } diff --git a/src/protected/application/lib/modules/Diligence/Entities/Diligence.php b/src/protected/application/lib/modules/Diligence/Entities/Diligence.php index d2986cf42..8af4e2a17 100644 --- a/src/protected/application/lib/modules/Diligence/Entities/Diligence.php +++ b/src/protected/application/lib/modules/Diligence/Entities/Diligence.php @@ -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 * diff --git a/src/protected/application/lib/modules/Diligence/Entities/NotificationDiligence.php b/src/protected/application/lib/modules/Diligence/Entities/NotificationDiligence.php index 42c524f56..fc0d0b946 100644 --- a/src/protected/application/lib/modules/Diligence/Entities/NotificationDiligence.php +++ b/src/protected/application/lib/modules/Diligence/Entities/NotificationDiligence.php @@ -1,33 +1,28 @@ repo('Agent')->find($class->data['agent']); - $url = $app->createUrl('inscricao', $class->data['registration']); - //Mensagem para notificação na plataforma - $numberRegis = ''.$class->data['registration'].''; - - 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(); @@ -40,7 +35,7 @@ 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, @@ -48,6 +43,28 @@ public function userDestination($class) : array '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 = ''.$class->data['registration'].''; + 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; + } + } } \ No newline at end of file