Exemplo n.º 1
0
 public function inprogress($id, $request)
 {
     $ticket = Ticket::find($id);
     if ($ticket->tech == '') {
         $ticket->tech = Session::get()->username;
         if (User::exists(array('id' => $ticket->user_id))) {
             $conv = Conversation::createNew('[Assistance] Demande #' . $ticket->id, Session::get()->getMainChannel(), ';' . User::find($ticket->user_id)->getMainChannel()->id . ';' . Session::get()->getMainChannel()->id . ';', 1, Session::get()->id);
             Message::sendNew(User::find($ticket->user_id)->getMainChannel()->id, $conv, $ticket->description);
             Message::sendNew(Session::get()->getMainChannel()->id, $conv, 'Bonjour, je suis ' . StaffContact::getShownName(Session::get()) . ' et j\'ai pris en charge votre demande d\'assistance. Cette conversation a été créée pour pouvoir discuter avec vous. ATTENTION: Ne communiquez jamais votre mot de passe, même à un technicien ! Un vrai technicien a à sa disposition tous les outils nécessaires à la résolution de votre problème !', 1);
             $ticket->conv_id = $conv;
         }
         $ticket->save();
         $message = "Votre demande d'assistance a été prise en charge par {{tech}}. Vous serez prochainement avertit de l'issue de l'intervention.";
         $this->mail($ticket, $message);
     }
     return new RedirectResponse(WEBROOT . 'admin/tickets');
 }
Exemplo n.º 2
0
 public function create($request)
 {
     if (Session::isActive()) {
         $req = $request->getParameters();
         if (isset($req['members'], $req['creator'], $req['subject']) && !empty($req['members']) && !empty($req['creator'])) {
             $membersStr = Utils::secure($req['members']);
             $creator = Utils::secure($req['creator']);
             $subject = Utils::secure($req['subject']);
             $subject = !empty($subject) ? $subject : 'Sans titre';
             if ($sender = UserChannel::find($creator)) {
                 if (Utils::stringStartsWith($membersStr, ';')) {
                     $membersStr = substr_replace($membersStr, '', 0, 1);
                 }
                 if (Utils::stringEndsWith($membersStr, ';')) {
                     $membersStr = substr_replace($membersStr, '', -1);
                 }
                 $membersStr = preg_replace('/\\s+/', '', $membersStr);
                 $membersIdsFinal = ';';
                 if (strpos($membersStr, ';')) {
                     foreach (explode(';', $membersStr) as $destId) {
                         if ($dest = UserChannel::find_by_name($destId)) {
                             $membersIdsFinal .= $dest->id . ';';
                         } else {
                             $response = new Response(500);
                             $response->setBody('Error: Le destinataire <' . $destId . '> n\'existe pas !');
                             return $response;
                         }
                     }
                 } else {
                     if ($chann = UserChannel::find_by_name($membersStr)) {
                         $membersIdsFinal .= $chann->id . ';';
                     } else {
                         $response = new Response(500);
                         $response->setBody('Error: les destinataires doivent être séparés par un \';\' !');
                         return $response;
                     }
                 }
                 if ($membersIdsFinal != ';') {
                     $membersIdsFinal .= $sender->id . ';';
                     Conversation::createNew($subject, $sender, $membersIdsFinal);
                     return new Response(200);
                 }
             }
         }
     }
     return new Response(500);
 }