File: /var/www/vhost/disk-apps/agile-selling-wpb/app/Http/Controllers/CouponsController.php
<?php
namespace App\Http\Controllers;
use App\Coupons;
use Illuminate\Http\Request;
use DB;
use Datatables;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Storage;
class CouponsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
// return view('wallet_coupons.coupons');
$coupons = Coupons::latest()->paginate(5);
return view('coupons.coupons',compact('coupons'))
->with('i', (request()->input('page', 1) - 1) * 5);
//
}
public function indexAdd()
{
return view('coupons.addCoupons');
}
public function indexEdit($id){
$coupons = Coupons::find($id);
return view('coupons.editCoupons')->with('coupons', $coupons);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$wallet_coupons = new Coupons();
$wallet_coupons->name = $request["name"];
$wallet_coupons->coupon_image = $request["coupon_image"];
$wallet_coupons->code_coupon = $request["code_coupon"];
$wallet_coupons->link = $request["link"];
$wallet_coupons->active = true;
$wallet_coupons->save();
if($wallet_coupons){
return array('r' => true, 'd' => array('id'=>$wallet_coupons->id), 'm'=> trans('messages.screen_instagram_tag14'));
}else{
return array('r' => false, 'd' => null, 'm'=> trans('messages.screen_instagram_tag15'));
}
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Coupons $coupons
* @return \Illuminate\Http\Response
*/
public function show(Coupons $coupons)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Coupons $coupons
* @return \Illuminate\Http\Response
*/
public function edit(Coupons $coupons)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Coupons $coupons
* @return \Illuminate\Http\Response
*/
public function update(Request $request)
{
$banner = Coupons::find($request["id"]);
$banner->name = $request["name"];
if($request["coupon_image"] != ''){
$banner->coupon_image = $request["coupon_image"];
}
$banner->link = $request["link"];
$banner->update();
if ($banner) {
return array('r' => true, 'd' => array('id'=>$banner->id), 'm'=> trans('messages.screen_coupon_tag16'));
}else{
return array('r' => false,'d' => null, 'm'=> trans('messages.screen_coupon_tag17'));
}
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Coupons $coupons
* @return \Illuminate\Http\Response
*/
public function destroy(Coupons $coupons)
{
//
}
public function activateCoupons(Request $request){
$id= $request['id'];
$state= $request['state'];
$banner = Coupons::find($id);
$banner->active = $state;
$banner->update();
if ($banner) {
return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_coupon_tag18'));
}else{
return array('r' => false,'d' => null, 'm'=> trans('messages.screen_coupon_tag19'));
}
}
public function tableFilter(){
$obj = $obj = DB::table('coupons')
->select('coupons.id','coupons.name','coupons.coupon_image','coupons.code_coupon','coupons.link','coupons.active');
return Datatables::of($obj)
->editColumn('coupon_image', function($obj){
if ($obj->coupon_image == '') {
return '<div class="media-left">
<img src="' . env('AWS_URL') . '/public/no_image.png" class="media-object" alt="' . $obj->name . '">
</div>';
} else {
return '<div class="media-left">
<img src="' . env('AWS_URL') . '/coupons/' . $obj->coupon_image . '" class="media-object" alt="' . $obj->name . '">
</div>';
}
})
->addColumn('actions', function ($obj) {
return '
<i class="fa fa-pencil iconMini " onClick="clickEditCoupon('.$obj->id.')" data-id="'.$obj->id.'" data-toggle="tooltip" data-placement="bottom" title="Editar" style="cursor:pointer;"></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="chkCoupon('.$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="chkCoupon('.$obj->id.')" data-id="'.$obj->id.'" id="Checkactive'.$obj->id.'" name="Checkactivo" checked="" />
<span></span> Si </label> </div> </label> </div>';
}
})
->rawColumns([ 'active','actions','coupon_image'])
->make(true);
}
public function saveImage(Request $request){
$coupon_id = $request["coupon_id"];
$extension = $request->file('image')->getClientOriginalExtension();
$filenametostore = $this->generateRandomString().'.'.$extension;
Storage::disk('s3')->put(env('S3_COUPONS_PATH').$filenametostore, fopen($request->file('image'), 'r+'), 'public');
$status = Coupons::where('id', $coupon_id)->update(['coupon_image' => $filenametostore]);
if ($status) {
return array('r' => true, 'd' => null, 'm'=> '');
}else{
return array('r' => false,'d' => null, 'm'=> '');
}
}
protected static function generateRandomString($max_length = 12){
return Str::random($max_length);
}
}