HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Http/Controllers/CommentController.php
<?php

namespace App\Http\Controllers;

use App\Comment;
use App\Sucursal;
use Datatables;
use DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use DateTime;
use \Excel;

class CommentController extends Controller
{
    public function index()
    {
        // $rol = Auth::user()->rol->id;
        // if ($rol == 1 || $rol == 6) {
            $comments = Comment::orderBy('created_at', 'ASC')->get();
            $offices = Sucursal::all();
            return view('comments.comments')->with('comments', $comments)->with('offices', $offices);
        // } else {
        //     return redirect()->back();
        // }
    }

    public function createAdminComment(Request $request)
    {

        $id = $request['id'];
        $comment = Comment::find($id);
        $logObject = $comment;
        $comment->observations_admin = $request["comment"];
        $comment->sucursal_id = $request["sucursal"];
        $comment->update(); //Guarda el nuevo objeto

        $this->registerLog(Auth::user()->id, 'Respondió un comentario', json_encode($logObject), "Update", 7);

        return array('r' => true, 'm' => trans('messages.screen_comments_tag12')); //Se asigna a una respuesta en array

    }

    public function getComment(Request $request)
    {

        $id = $request['id'];
        $comment = Comment::where('id', $id)->with('deliveryMan')->with('client')->with('admin')->with('order')->get();

        //return($comment);
        return array('r' => true, 'd' => $comment); //Se asigna a una respuesta en array

    }

    public function delete(Request $request)
    {

        $id = $request['id'];
        $comment = Comment::find($id);
        $logObject = $comment;
        $comment->delete();

        $this->registerLog(Auth::user()->id, 'Eliminó un comentario', json_encode($logObject), "Delete", 16);

        return array('r' => true, 'd' => $id, 'm' => trans('messages.screen_comments_tag11'));

    }

    public function tableFilter()
    {
        $obj = $obj = DB::table('comments')
            ->join('orders', 'orders.id', '=', 'comments.order_id')
            ->join('users', 'users.id', '=', 'comments.client_id')
            ->select('comments.id', 'comments.qualification_client', 'comments.observations_client as observation',
                'orders.code', 'orders.creation_date', 'users.first_name', 'users.last_name', 'users.document')->whereNull('comments.deleted_at');

        return Datatables::of($obj)
            ->addColumn('actions', function ($obj) {
                return '<i class="fa fa-eye iconMini" onClick="clickInfoComment(' . $obj->id . ')" name="btnEditar" data-id="' . $obj->id . '"  title="Información"></i>
            <i class="fa  fa-send iconMini" onClick="clickSendComment(' . $obj->id . ')" data-id="' . $obj->id . '" title="Enviar respuesta"></i>
            <i class="fa fa-trash iconMini" onClick="clickDeleteComment(' . $obj->id . ')" data-id="' . $obj->id . '" title="Eliminar"></i>';

            })

            ->editColumn('name', function ($obj) {
                return '<p>' . $obj->first_name . ' ' . $obj->last_name . '</p>';
            })

            ->editColumn('rate', function ($obj) {
                if ($obj->qualification_client == 1) {
                    return '<div class="rating-stars text-center">
            <ul id="stars">
                <li class="star selected" title="' . trans('messages.screen_comments_stars_tag1') . '" data-value="1" id="li1">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="' . trans('messages.screen_comments_stars_tag2') . '" data-value="2" id="li2">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="' . trans('messages.screen_comments_stars_tag3') . '" data-value="3" id="li3">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="' . trans('messages.screen_comments_stars_tag4') . '" data-value="4" id="li4">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="' . trans('messages.screen_comments_stars_tag5') . '" data-value="5" id="li5">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
            </ul>
        </div>';
                } else if ($obj->qualification_client == 2) {
                    return '<div class="rating-stars text-center">
            <ul id="stars">
                <li class="star selected" title="Malo" data-value="1" id="li1">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star  selected" title="Regular" data-value="2" id="li2">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="Bueno" data-value="3" id="li3">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="Muy Bueno" data-value="4" id="li4">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="Excelente" data-value="5" id="li5">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
            </ul>
        </div>';

                } else if ($obj->qualification_client == 3) {
                    return '<div class="rating-stars text-center">
            <ul id="stars">
                <li class="star selected" title="Malo" data-value="1" id="li1">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star selected" title="Regular" data-value="2" id="li2">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star  selected" title="Bueno" data-value="3" id="li3">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="Muy Bueno" data-value="4" id="li4">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="Excelente" data-value="5" id="li5">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
            </ul>
        </div>';
                } else if ($obj->qualification_client == 4) {
                    return '<div class="rating-stars text-center">
            <ul id="stars">
                <li class="star selected" title="Malo" data-value="1" id="li1">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star selected" title="Regular" data-value="2" id="li2">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star selected" title="Bueno" data-value="3" id="li3">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star  selected" title="Muy Bueno" data-value="4" id="li4">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star" title="Excelente" data-value="5" id="li5">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
            </ul>
        </div>';
                } else if ($obj->qualification_client == 5) {
                    return '<div class="rating-stars text-center">
            <ul id="stars">
                <li class="star selected" title="Malo" data-value="1" id="li1">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star selected" title="Regular" data-value="2" id="li2">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star selected" title="Bueno" data-value="3" id="li3">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star selected" title="Muy Bueno" data-value="4" id="li4">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
                <li class="star  selected" title="Excelente" data-value="5" id="li5">
                    <i class="fa fa-star fa-fw starsSmall"></i>
                </li>
            </ul>
        </div>';
                } else {

                    return '<div class="rating-stars text-center">
                <ul id="stars">
                    <li class="star " title="Malo" data-value="1" id="li1">
                        <i class="fa fa-star fa-fw starsSmall"></i>
                    </li>
                    <li class="star " title="Regular" data-value="2" id="li2">
                        <i class="fa fa-star fa-fw starsSmall"></i>
                    </li>
                    <li class="star " title="Bueno" data-value="3" id="li3">
                        <i class="fa fa-star fa-fw starsSmall"></i>
                    </li>
                    <li class="star " title="Muy Bueno" data-value="4" id="li4">
                        <i class="fa fa-star fa-fw starsSmall"></i>
                    </li>
                    <li class="star  " title="Excelente" data-value="5" id="li5">
                        <i class="fa fa-star fa-fw starsSmall"></i>
                    </li>
                </ul>
            </div>';

                }

            })
            ->rawColumns(['name', 'rate', 'actions'])
            ->make(true);

    }

    public function report()
    {
        $from = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - 30, date("Y")));
        $to = new DateTime();
        return Excel::create(trans('messages.screen_comments_tag13'), function ($excel) use ($from, $to) {
            $excel->sheet('Hoja 1', function ($sheet) use ($from, $to) {
                $comments = Comment::whereBetween('created_at', [$from . " 00:00:00", $to])->with('admin')->with('client')->with('deliveryMan')->with('order')->get();
                $sheet->row(1, array(
                    'Pedido', 'Fecha', 'Cliente', 'Comentario cliente', 'Calificación cliente', 'Mensajero', 'Comentario mensajero', 'Calificación mensajero', 'Administrador',
                    'Comentario administrador', 'Calificación administrador',
                ));
                $count = 2;

                foreach ($comments as $comment) {
                    //ADMIN
                    if ($comment->admin) {
                        $nameAdmin = $comment->admin->first_name . ' ' . $comment->admin->last_name;
                        $commentAdmin = $comment->observations_admin;
                        $qualificationAdmin = $comment->qualification_admin;
                    } else {
                        $nameAdmin = 'NA';
                        $commentAdmin = 'NA';
                        $qualificationAdmin = 'NA';
                    }

                    //DELIVERY MAN
                    if ($comment->deliveryMan) {
                        $nameDelivery = $comment->deliveryMan->first_name . ' ' . $comment->deliveryMan->last_name;
                        $commentDelivery = $comment->observation_delivery_man;
                        $qualificationDelivery = $comment->qualification_delivery_man;
                    } else {
                        $nameDelivery = 'NA';
                        $commentDelivery = 'NA';
                        $qualificationDelivery = 'NA';
                    }

                    //CLIENT
                    if ($comment->client) {
                        $nameClient = $comment->client->first_name . ' ' . $comment->client->last_name;
                        $commentClient = $comment->observations_client;
                        $qualificationClient = $comment->qualification_client;
                    } else {
                        $nameClient = 'NA';
                        $commentClient = 'NA';
                        $qualificationClient = 'NA';
                    }

                    $sheet->row($count, array(
                        $comment->order->code, $comment->order->creation_date,$nameClient,$commentClient,$qualificationClient,$nameDelivery,$commentDelivery,$qualificationDelivery,
                        $nameAdmin,$commentAdmin,$qualificationAdmin
                    ));
                    $count++;
                }
            });
        })->export('xls');

    }
}