File: /var/www/vhost/disk-apps/demo.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');
}
}