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/BannerController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\ImageManagerStatic as Image;
use DB;
use Datatables;

use App\Banner;
use App\Category;
use App\Parameter;
use App\TypeAction;

class BannerController extends Controller
{
  public function __construct(Request $request)
  {
    $this->middleware('auth');
    // $this->middleware(function ($request, $next) {
    //     $this->user = Auth::user();
    //     if(Auth::user()->rol->id == 1 || Auth::user()->rol->id == 6){
    //         $this->changeDbDefault($request);
    //     }
    //     return $next($request);
    // });
  }
    public function index(){
        // $rol = Auth::user()->rol->id;
        // if ($rol == 1 ||  $rol == 6) {
            return view('banners.banners');
        // }else{
        //     eturn redirect()->back();
        // }
    }

    public function indexAdd(){
      $parameters = Parameter::where('id', 1)->first();

      if($parameters->sucursal_products){
        $categories = Category::where('active',1)->with('sucursal')->get();
      }else{
        $categories = Category::where('active',1)->get();
      }

      $typeActions = TypeAction::where('active', true)->get();

      return view('banners.addBanner')
      ->with('parameters', $parameters)
      ->with('categories', $categories)
      ->with('typeActions', $typeActions);
    }

    public function create(Request $request)
    {

        $banner = new Banner();
        $banner->name = $request["name"];
        $banner->description = $request["description"];
        $banner->active = true;
        $banner->order = $request["order"];
        // $banner->link = $request["link"];
        // $banner->category_id = $request["category_id"];
        $banner->type_action_id = $request["type_action_id"];
        $banner->value = $request["value"];
        $banner->save();

        if($banner){
          return array('r' => true, 'd' => array('id'=>$banner->id), 'm'=> trans('messages.screen_banners_tag14'));
        }else{
          return array('r' => false, 'd' => null, 'm'=> trans('messages.screen_banners_tag15'));
        }
    }

    public function indexEdit($id){

        $banner = Banner::find($id);
        $parameters = Parameter::where('id', 1)->first();
        $typeActions = TypeAction::where('active', true)->get();

        if($parameters->sucursal_products){
          $categories = Category::where('active',1)->with('sucursal')->get();
        }else{
          $categories = Category::where('active',1)->get();
        }

        return view('banners.editBanner')
        ->with('banner', $banner)
        ->with('parameters', $parameters)
        ->with('categories',$categories)
        ->with('typeActions', $typeActions);
    }

    public function update(Request $request){
        $banner = Banner::find($request["id"]);
        $banner->name = $request["name"];
        $banner->description = $request["description"];
        $banner->active = true;
        $banner->order = $request["order"];
        // $banner->link = $request["link"];
        // $banner->category_id = $request["category_id"];
        $banner->type_action_id = $request["type_action_id"];
        $banner->value = $request["value"];
        $banner->update();

        if ($banner) {
          return array('r' => true, 'd' => array('id'=>$banner->id), 'm'=> trans('messages.screen_banners_tag16'));
        }else{
          return array('r' => false,'d' => null, 'm'=> trans('messages.screen_banners_tag17'));
        }
    }

    public function saveImage(Request $request){
       $id = $request->id;
       $num_ram = rand(1, 999);
       $extension = $request->file('image')->getClientOriginalExtension();
       // $imageresize = Image::make($request->file('image'))->fit(1300, 660);
       // $imageresize = Image::make($request->file('image'))->resize(1300, 660);
       $filenametostore = $num_ram.time().'.'.$extension;
       Storage::disk('s3')->put(env('S3_BANNERS_PATH').$filenametostore, fopen($request->file('image'), 'r+'), 'public');

       $status = Banner::where('id', $id)->update(['image' => $filenametostore]);
       if ($status) {
         return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_banners_tag14'));
       }else{
         return array('r' => false,'d' => null, 'm'=> trans('messages.screen_banners_tag15'));
       }
    }

    public function updateImage(Request $request){
        $id=$request->id;
        $banner = Banner::find($id);
        Storage::disk('s3')->delete(env('S3_BANNERS_PATH').$banner->image);
        $num_ram = rand(1, 999);
        $extension = $request->file('image')->getClientOriginalExtension();
        $filenametostore = $num_ram.time().'.'.$extension;
        Storage::disk('s3')->put(env('S3_BANNERS_PATH').$filenametostore, fopen($request->file('image'), 'r+'), 'public');

        $status = Banner::where('id', $id)->update(['image' => $filenametostore]);
        if ($status) {
          return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_banners_tag16'));
        }else{
          return array('r' => false,'d' => null, 'm'=> trans('messages.screen_banners_tag17'));
        }
     }

     public function activateBanner(Request $request){
        $id= $request['id'];
        $state=  $request['state'];

        $banner = Banner::find($id);
        $banner->active = $state;
        $banner->update();

        if ($banner) {
          return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_banners_tag18'));
        }else{
          return array('r' => false,'d' => null, 'm'=> trans('messages.screen_banners_tag19'));
        }
    }

     public function deleteBanner(Request $request){
         $banner = Banner::find($request['id']);
         $banner->delete();

         if ($banner) {
           return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_banners_tag20'));
         }else{
           return array('r' => false,'d' => null, 'm'=> trans('messages.screen_banners_tag21'));
         }
     }

     public function tableFilter(){
         $obj = $obj = DB::table('banners')
         ->select('banners.id','banners.image','banners.name','banners.order','type_actions.name as name_action', 'banners.value', 'banners.active')
         ->leftJoin('type_actions', 'banners.type_action_id', '=', 'type_actions.id')->whereNull('banners.deleted_at');


         return Datatables::of($obj)
         ->editColumn('image', function($obj){
           return '
           <div class="media-left">
             <img src="'.env('AWS_URL').'/banners/'.$obj->image.'" alt="'.$obj->name.'" class="media-object">
            </div>
           ';
         })
         ->addColumn('actions', function ($obj) {
             return '
                <i class="fa fa-pencil iconMini " onClick="clickEditBanner('.$obj->id.')" data-id="'.$obj->id.'" data-toggle="tooltip" data-placement="bottom" title="Editar" style="cursor:pointer;"></i>
                <i class="fa fa-trash iconMini " onClick="clickDeleteBanner('.$obj->id.')" data-id="'.$obj->id.'" data-toggle="tooltip" data-placement="bottom" title="Eliminar" 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="chkBanner('.$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="chkBanner('.$obj->id.')" data-id="'.$obj->id.'" id="Checkactive'.$obj->id.'" name="Checkactivo" checked="" />
                         <span></span> Si </label> </div>  </label> </div>';

             }

            })
            ->rawColumns([ 'active','actions','image'])
         ->make(true);


     }

}