diff --git a/app/Events/TicketStatusChanged.php b/app/Events/TicketStatusChanged.php index eb592b0..9d80f77 100644 --- a/app/Events/TicketStatusChanged.php +++ b/app/Events/TicketStatusChanged.php @@ -30,6 +30,9 @@ class TicketStatusChanged /** @var boolean */ public $is_private; + /** @var boolean */ + public $status_changed; + /** * Create a new event instance. * @@ -38,6 +41,7 @@ class TicketStatusChanged * @param \App\Models\User|null $user * @param string|null $message * @param boolean $is_private + * @param boolean $status_changed * @return void */ public function __construct( @@ -45,12 +49,14 @@ class TicketStatusChanged TicketStatus $status, User $user = null, string $message = null, - bool $is_private = false + bool $is_private = false, + bool $status_changed = false ) { - $this->ticket = $ticket; - $this->status = $status; - $this->user = $user; - $this->message = $message; - $this->is_private = $is_private; + $this->ticket = $ticket; + $this->status = $status; + $this->user = $user; + $this->message = $message; + $this->is_private = $is_private; + $this->status_changed = $status_changed; } } diff --git a/app/Listeners/AddStatusMessages.php b/app/Listeners/AddStatusMessages.php index 8429e10..7b31768 100644 --- a/app/Listeners/AddStatusMessages.php +++ b/app/Listeners/AddStatusMessages.php @@ -40,63 +40,65 @@ class AddStatusMessages $event->ticket->status->label ); } - switch ($event->ticket->status) { - case TicketStatus::new(): - $message->message = sprintf( - "%s
%s
", - $message->message, - __("Votre ticket a été créé, nous allons en prendre connaissance.") - ); - break; - case TicketStatus::estimateTodo(): - $message->message = sprintf( - "%s
%s
", - $message->message, - __("Votre ticket nécessite une estimation, nous allons vous proposer un devis.") - ); - break; - case TicketStatus::takenInAccount(): - $message->message .= sprintf("
" . - __("Votre ticket est dans le processus de traitement.") . "
"); - break; - case TicketStatus::waiting(): - $message->message = sprintf( - "%s
%s
", - $message->message, - __("Nous attendons une réponse de votre part pour procéder à la suite du traitement.") - ); - break; - case TicketStatus::waitingValidation(): - $message->message = sprintf( - "%s
%s
", - $message->message, - __("Nous attendons une validation de votre part pour procéder au traitement.") - ); - break; - case TicketStatus::recette(): - $message->message = sprintf( - "%s
%s
", - $message->message, - __("Le traitement à été réalisé et mis à disposition sur la plateforme de recette. - Vous pouvez vérifier que la solution mise en œuvre correspond à la demande.") - ); - break; - case TicketStatus::production(): - $message->message = sprintf( - "%s
%s
", - $message->message, - __("La solution à été mise en ligne. - Vous pouvez vérifier sur le site de production que tout fonctionne comme attendu.") - ); - break; - case TicketStatus::archived(): - $message->message = sprintf( - "%s
%s
", - $message->message, - __("Ce ticket est clos.") - ); - break; - } //end switch + if ($event->status_changed) { + switch ($event->ticket->status) { + case TicketStatus::new(): + $message->message = sprintf( + "%s
%s
", + $message->message, + __("Votre ticket a été créé, nous allons en prendre connaissance.") + ); + break; + case TicketStatus::estimateTodo(): + $message->message = sprintf( + "%s
%s
", + $message->message, + __("Votre ticket nécessite une estimation, nous allons vous proposer un devis.") + ); + break; + case TicketStatus::takenInAccount(): + $message->message .= sprintf("
" . + __("Votre ticket est dans le processus de traitement.") . "
"); + break; + case TicketStatus::waiting(): + $message->message = sprintf( + "%s
%s
", + $message->message, + __("Nous attendons une réponse de votre part pour procéder à la suite du traitement.") + ); + break; + case TicketStatus::waitingValidation(): + $message->message = sprintf( + "%s
%s
", + $message->message, + __("Nous attendons une validation de votre part pour procéder au traitement.") + ); + break; + case TicketStatus::recette(): + $message->message = sprintf( + "%s
%s
", + $message->message, + __("Le traitement à été réalisé et mis à disposition sur la plateforme de recette. + Vous pouvez vérifier que la solution mise en œuvre correspond à la demande.") + ); + break; + case TicketStatus::production(): + $message->message = sprintf( + "%s
%s
", + $message->message, + __("La solution à été mise en ligne. + Vous pouvez vérifier sur le site de production que tout fonctionne comme attendu.") + ); + break; + case TicketStatus::archived(): + $message->message = sprintf( + "%s
%s
", + $message->message, + __("Ce ticket est clos.") + ); + break; + } //end switch + } //end if $message->save(); } } diff --git a/app/Models/Ticket.php b/app/Models/Ticket.php index dba2071..3e35c39 100644 --- a/app/Models/Ticket.php +++ b/app/Models/Ticket.php @@ -75,7 +75,10 @@ class Ticket extends Model event(new TicketStatusChanged( $ticket, TicketStatus::make($ticket->original['status']), - auth()->user() + auth()->user(), + null, + false, + true )); event(new NotifySubscriptions($ticket, sprintf( '%s a modifié le statut en %s',