-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathNotificationDiligence.php
70 lines (64 loc) · 2.6 KB
/
NotificationDiligence.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?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, $type)
{
$app = App::i();
$notification = new Notification();
// 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;
}
$app->disableAccessControl();
$notification->save(true);
$app->enableAccessControl();
}
public function userDestination($class) : array
{
$regs = DiligenceRepo::getRegistrationAgentOpenAndAgent(
$class->data['registration'],
$class->data['openAgent'],
$class->data['agent']
);
// 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;
}
}
}