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/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);
    }


}