File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/SalesChannelController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\SalesChannel;
use Datatables;
use DB;
class SalesChannelController extends Controller
{
public function index(){
// $rol = Auth::user()->rol->id;
// if ($rol == 1 || $rol == 6) {
$channels = SalesChannel::orderBy('name', 'ASC')->get();
return view('channels.saleChannel')->with('channels',$channels);
// }else{
// return redirect()->back();
// }
}
/**
* Este método se encarga de crear un channel de Venta.
* @param Request donde llegan los parametros
* @version 2018/05/20
* @return response
*/
public function create(Request $request){
//Se instancia un nuevo objeto
$channel = new SalesChannel();
$channel->name = $request["name"];//Se asigna el name que viene en el request
$r = SalesChannel::where('name',$request["name"])->first();
if($r){
return array('r' => false, 'm'=> trans('messages.controller_channel_tag1'));
}
$channel->save();//Guarda el nuevo objeto
$logObj = $channel;
$this->registerLog(Auth::user()->id, 'Creó canal de venta', json_encode($logObj)
, "Create", 5);
return array('r' => true, 'm'=> trans('messages.controller_channel_tag2'));
}
/**
* Este método se encarga de actualizar un channel de Venta.
* @param Request donde llegan los parametros
* @version 2018/05/20
* @return response
*/
public function update(Request $request){
$id = $request["id"];
//Se consulta channel de Venta
$channel = SalesChannel::find($id);
$logObj = $channel;
$r = SalesChannel::where('name',$request["name"])->first();
if($r){
if($channel->name != $request["name"]){
return array('r' => false, 'm'=> trans('messages.controller_channel_tag1'));
}
}
$channel->name = $request["name"];//Se asigna el nombre que viene en el request
$channel->update();//Actualiza el objeto
$this->registerLog(Auth::user()->id, 'Actualizó canal de venta', json_encode($logObj)
, "Update", 5);
return array('r' => true, 'm'=> trans('messages.controller_channel_tag3'));
}
/**
* Este método se encarga de renderizar la vista de edición de channel de Venta.
* @param id el id de channel de Venta
* @version 2018/05/20
* @return view la vista de edición de channel de Venta
*/
public function indexEdit($id){
$channel = SalesChannel::find($id);
return view('channels.editSaleChannel')->with('channel',$channel);
}
public function activateChannel(Request $request){
$id= $request['id'];
$state= $request['state'];
$channel = SalesChannel::find($id);
$logObj = $channel;
$channel->active = $state;
$channel->update();
$this->registerLog(Auth::user()->id, 'Actualizó canal de venta', json_encode($logObj)
, "Update", 5);
return array('r' => true);
}
public function delete(Request $request){
$id= $request['id'];
$channel = SalesChannel::find($id);
$logObj = $channel;
$channel->delete();
$this->registerLog(Auth::user()->id, 'Eliminó canal de venta', json_encode($logObj)
, "Delete", 5);
return array('r' => true);
}
public function tableFilter()
{
$obj = $obj = DB::table('sales_channels')
->select('sales_channels.id', 'sales_channels.name', 'sales_channels.active')->whereNull('sales_channels.deleted_at');
return Datatables::of($obj)
->addColumn('actions', function ($obj) {
return '<i class="fa fa-pencil iconMini" onClick="clickEditChannel(' . $obj->id . ')" data-id="' . $obj->id . '" title="Editar"></i>
<i class="fa fa-trash iconMini" onClick="clickDeleteChannel(' . $obj->id . ')" data-id="' . $obj->id . '" title="Eliminar"></i>';
})
->editColumn('active', function ($obj) {
if ($obj->active == 0) {
return '<div class="switch"><label><div class="checkbox checbox-switch switch-success"> <label> No <input type="checkbox" onChange="chkChannel(' . $obj->id . ')" data-id="' . $obj->id . '" id="Checkactive' . $obj->id . '" name="Checkactivo" /> <span></span>Si </label></div> </label> </div>';
} else {
return '<div class="switch"><label> <div class="checkbox checbox-switch switch-success"> <label> No <input type="checkbox" onChange="chkChannel(' . $obj->id . ')" data-id="' . $obj->id . '" id="Checkactive' . $obj->id . '" name="Checkactivo" checked="" />
<span></span> Si </label> </div> </label> </div>';
}
})
->rawColumns(['active', 'actions'])
->make(true);
}
}