コード例 #1
0
 public static function Save($params)
 {
     $idproyecto = self::getInput($params, 'proyecto');
     $titulo = self::getInput($params, 'titulo');
     $asignado = self::getInput($params, 'asignado');
     $descripcion = self::getInput($params, 'descripcion');
     $id = self::getInput($params, 'id');
     $tipoitem = self::getInput($params, 'tipoitem');
     $estado = self::getInput($params, 'estado');
     $asignado = self::getInput($params, 'asignado');
     $prioridad = self::getInput($params, 'prioridad');
     $comentario = self::getInput($params, 'comentario');
     $ticketUpdate = true;
     $newticket = true;
     $sendMail = false;
     $dataLog = [];
     $item = new Item();
     $dataLog['accion'] = 'Ticket creado';
     if ($id !== false) {
         $newticket = false;
         $ticketUpdate = false;
         $item = self::getById($id);
         $dataLog['accion'] = 'Nuevo Comentario';
         $dataLog['Detalles:'][''] = '';
     } else {
         $item->fechacreacion = Date('Y-m-d H:i:s');
     }
     if (false !== $idproyecto) {
         $item->idProyecto = $idproyecto;
         $ticketUpdate = true;
         $dataLog['ticket']['Proyecto'] = Proyecto::find($idproyecto)->nomProyecto;
     }
     if (false !== $titulo) {
         $item->tituloItem = $titulo;
         $ticketUpdate = true;
         $dataLog['ticket']['Titulo'] = $titulo;
     }
     if (false !== $asignado) {
         $item->responsable = $asignado;
         $ticketUpdate = true;
         $usuarioAsignado = UsuarioRolEquipo::with('usuario')->find($asignado)->usuario;
         $dataLog['ticket']['Asignado a'] = $usuarioAsignado->nombreCompleto;
         $sendMail = true;
     }
     if (false !== $descripcion) {
         $item->descItem = $descripcion;
         $ticketUpdate = true;
         $dataLog['ticket']['Descripcion'] = $descripcion;
     }
     if (false !== $tipoitem) {
         $item->idTipoItem = $tipoitem;
         $ticketUpdate = true;
         $dataLog['ticket']['Tipo Item'] = TipoItem::find($tipoitem)->descripcion;
     }
     if (false !== $estado) {
         $item->estadoActual = $estado;
         $ticketUpdate = true;
         $dataLog['ticket']['Estado'] = Estado::find($estado)->nombreEstado;
     }
     /*if (false !== $asignado) {
           $item -> responsable    = $asignado;
           $ticketUpdate           = true;
           $dataLog['ticket']['Asignado a']  = UsuarioRolEquipo::with('usuario')->find($asignado)->usuario->nombreCompleto;
       }*/
     if (false !== $prioridad) {
         $item->prioridad = $prioridad;
         $ticketUpdate = true;
         $dataLog['ticket']['prioridad'] = $prioridad;
     }
     if (true === $ticketUpdate && false === $newticket) {
         $dataLog['accion'] = 'Ticket actualizado';
     }
     if ($item->save()) {
         if (false !== $comentario && false === empty($comentario)) {
             $comment = new Comentario();
             $comment->idItem = $item->idItem;
             $comment->idUsuario = App::getInstance()->user->id();
             $comment->fechahora = date('Y-m-d H:i:s', time());
             $comment->comentario = $comentario;
             $item->comentarios()->save($comment);
             $dataLog['comentario'] = $comentario;
         }
         $transicion = new TransicionItem();
         $transicion->idItem = $item->idItem;
         $transicion->idUsuario = App::getInstance()->user->id();
         $transicion->fechahora = date('Y-m-d H:i:s', time());
         $transicion->data = json_encode($dataLog, JSON_FORCE_OBJECT);
         $item->transiciones()->save($transicion);
         if (true === $sendMail) {
             try {
                 global $app;
                 $urlTicket = $app->path('item_detail', ['id' => $item->idItem], true);
                 $subject = 'Te han asignado un ticket. #' . $item->idItem;
                 $from = 'MasterTicket <*****@*****.**>';
                 $to = $usuarioAsignado->nombreCompleto . '<' . $usuarioAsignado->email . '>';
                 $message = 'Puedes ver el detalle del ticket en el siguiente enlace
                                 <a href="' . $urlTicket . '">' . $urlTicket . '</a>';
                 $mail = new MailController();
                 $mail->sendMessage($from, $to, $subject, $message);
             } catch (Exception $e) {
             }
         }
     }
     return $item;
 }
コード例 #2
0
 public static function getEstadosSiguientes($estadoActual)
 {
     $estado = estado::with(['workflowsSiguientes.estadoSiguiente.equipos'])->where('estado', 1)->where('idEstado', $estadoActual)->first();
     return $estado->workflowsSiguientes;
 }