MINI MINI MANI MO

Path : /var/www/html/sistemas/saplxi/app/Http/Controllers/MCG/
File Upload :
Current File : /var/www/html/sistemas/saplxi/app/Http/Controllers/MCG/BannerController.php

<?php

namespace App\Http\Controllers\MCG;

use App\Http\Controllers\Controller;
use App\Models\CddBanner;
use Illuminate\Http\Request;

class BannerController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $banners = CddBanner::orderBy("orden")->withTrashed()->get();
        return view("Administrador.banner.index", compact("banners"));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view("Administrador.banner.create");
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        if ($request->has("tipo")) {
            $request->file("documento")->storeAs("public/documentos/otros",
                $request->file("documento")->getClientOriginalName());
            $documentoPath = "storage/documentos/otros/" . $request->file("documento")->getClientOriginalName();
            $tipo = 1;
        } else {
            $documentoPath = $request->get("documento_path");
            $tipo = 0;
        }

        $request->file("foto_path")->storeAs("public/img/banners",
            $request->file("foto_path")->getClientOriginalName());
        $fotoPath = "storage/img/banners/" . $request->file("foto_path")->getClientOriginalName();

        $orden = CddBanner::orderBy("orden", "DESC")->first();
        $orden = $orden->orden + 1;

        CddBanner::create([
            "titulo" => $request->get("titulo"),
            "tipo_documento" => $tipo,
            "documento_path" => $documentoPath,
            "foto_path" => $fotoPath,
            "orden" => $orden,
        ]);

        return redirect()->route("mcg.banner.index")->with("create", "ok");

    }

    /**
     * Display the specified resource.
     *
     * @param int $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param int $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $banner = CddBanner::find(base64_decode(base64_decode($id)));
        return view("Administrador.banner.edit", compact("banner"));

    }

    /**
     * Update the specified resource in storage.
     *
     * @param \Illuminate\Http\Request $request
     * @param int $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $banner = CddBanner::find(base64_decode(base64_decode($id)));
        if ($request->has("tipo")) {
            if ($request->hasFile("documento")) {
                $request->file("documento")->storeAs("public/documentos/otros",
                    $request->file("documento")->getClientOriginalName());
                $documentoPath = "storage/documentos/otros/" . $request->file("documento")->getClientOriginalName();
            } else {
                $documentoPath = $banner->documento_path;
            }
            $tipo = 1;
        } else {
            $documentoPath = $request->get("documento_path");
            $tipo = 0;
        }
        if ($request->hasFile("foto_path")) {
             $request->file("foto_path")->storeAs("public/img/banners",
                $request->file("foto_path")->getClientOriginalName());
            $fotoPath = "storage/img/banners/" .  $request->file("foto_path")->getClientOriginalName();

        } else {
            $fotoPath = $banner->foto_path;
        }
        $banner->update([
            "titulo" => $request->get("titulo"),
            "tipo_documento" => $tipo,
            "documento_path" => $documentoPath,
            "foto_path" => $fotoPath,
        ]);

        return redirect()->route("mcg.banner.index")->with("update", "ok");
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param int $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        CddBanner::find(base64_decode(base64_decode($id)))->delete();
        return redirect()->route("mcg.banner.index")->with("delete", "ok");
    }

    public function updateOrden(Request $request)
    {
        $params = $request->except("_token");
        foreach ($params["banner"] as $key => $item) {
            CddBanner::find($item)->update(["orden" => $key]);

        }
        return response(["satus" => "success"], "200");
    }

    public function getOrden()
    {
        return CddBanner::orderBy("orden")->get();
    }

    public function restore($id)
    {
        $banner = CddBanner::where('id', base64_decode(base64_decode($id)))->withTrashed()->first();
        $banner->restore();
        $orden = $this->ordenar();
        $banner->update(["orden" => $orden]);
        return redirect()->route("mcg.banner.index")->with("restore", "ok");
    }

    public function ordenar()
    {
        $orden = CddBanner::orderBy("orden", "DESC")->first();
        return $orden->orden + 1;
    }
}

OHA YOOOO