Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/langganan.fixmate.id/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/langganan.fixmate.id/app/Http/Controllers/PaketController.php

<?php

namespace App\Http\Controllers;

use App\Models\ItemPaket;
use App\Models\Paket;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Throwable;

class PaketController extends Controller
{
    public function index()
    {
        return response()->view('Paket.index');
    }
    public function getPaket(Request $request)
    {
        $search = $request->search;
        $query = Paket::latest();
        if ($search) {
            $query->where('nama_paket', 'like', '%' . $search . '%');
        }


        $paket = $query->paginate(10);
        $data = $paket->items();
        $datas = [];

        foreach ($data  as $item) {
            $datas[] = [
                'id' => $item->id,
                'nama_paket' => $item->nama_paket,
                'durasi_paket' => $item->durasi_paket,
                'satuan_durasi_paket' => $item->satuan_durasi_paket,
                'kategori' => $item->kategori,
                'jenis' => $item->jenis,
                'keterangan' => $item->keterangan,
            ];
        }
        if ($paket->total() > 0) {
            return response()->json([
                'status' => 'success',
                'paket' => $datas,
                'message' => 'Profile berhasil diperbarui.',
                'next_page_url' => $paket->nextPageUrl(),

            ], 200);
        } else {
            return response()->json([
                'status' => 'error',
                'paket' => [],
                'errors' => 'Data tidak tersedia.',
            ], 422);
        }
    }
    public function store(Request $request)
    {
        try {
            $validator = Validator::make($request->all(), [
                'nama_paket' => 'required',
                'durasi_paket' => 'required',
                'satuan_durasi_paket' => 'required',
                'keterangan' => 'required',
                'kategori' => 'required',
                'jenis' => 'required',

            ], [
                'nama_paket.required' => 'Nama Paket wajib diisi.',
                'durasi_paket.required' => 'Durasi wajib diisi.',
                'satuan_durasi_paket.required' => 'Satuan Durasi wajib diisi.',
                'keterangan.required' => 'Keterangan wajib diisi.',
                'kategori.required' => 'Kategori wajib diisi.',
                'jenis.required' => 'Jenis wajib diisi.',

            ]);

            if ($validator->fails()) {
                return response()->json([
                    'status' => 'error',
                    'errors' => $validator->errors(),
                ], 422);
            }
            $data = [
                'nama_paket' => $request->nama_paket,
                'durasi_paket' => $request->durasi_paket,
                'satuan_durasi_paket' => $request->satuan_durasi_paket,
                'kategori' => $request->kategori,
                'jenis' => $request->jenis,
                'keterangan' => $request->keterangan,

            ];


            Paket::create($data);

            return response()->json([
                'status' => 'success',
                'message' => 'Data Paket Berhasil Ditambahkan!.',
            ], 200);
        } catch (Throwable $th) {
            return response()->json([
                'status' => 'error',
                'message' => $th->getMessage(),

            ], 422);
        }
    }
    public function update(Request $request, String $id)
    {
        try {
            $paket = Paket::find($id);
            $validator = Validator::make($request->all(), [
                'nama_paket' => 'required',
                'durasi_paket' => 'required',
                'satuan_durasi_paket' => 'required',
                'kategori' => 'required',
                'keterangan' => 'required',
                'jenis' => 'required',


            ], [
                'nama_paket.required' => 'Nama Paket wajib diisi.',
                'durasi.required' => 'Durasi wajib diisi.',
                'satuan_durasi_paket.required' => 'Satuan Durasi wajib diisi.',
                'kategori.required' => 'Kategori wajib diisi.',
                'jenis.required' => 'Jenis wajib diisi.',

            ]);

            if ($validator->fails()) {
                return response()->json([
                    'status' => 'error',
                    'errors' => $validator->errors(),
                ], 422);
            }
            $data = [
                'nama_paket' => $request->nama_paket,
                'durasi_paket' => $request->durasi_paket,
                'satuan_durasi_paket' => $request->satuan_durasi_paket,
                'kategori' => $request->kategori,
                'jenis' => $request->jenis,
                'keterangan' => $request->keterangan,

            ];


            $paket->update($data);

            return response()->json([
                'status' => 'success',
                'message' => 'Data Paket Berhasil Ditambahkan!.',
            ], 200);
        } catch (Throwable $th) {
            return response()->json([
                'status' => 'error',
                'message' => $th->getMessage(),

            ], 422);
        }
    }
    public function destroy(String $id)
    {
        try {
            $paket = Paket::find($id);

            if (!$paket) {
                return response()->json([
                    'status' => 'error',
                    'message' => 'Pengguna tidak ditemukan.',
                ], 404);
            }


            $paket->delete();

            return response()->json([
                'status' => 'success',
                'message' => 'Data berhasil dihapus!',
            ], 200);
        } catch (Throwable $th) {
            return response()->json([
                'status' => 'error',
                'message' => 'Terjadi kesalahan: ' . $th->getMessage(),
            ], 500);
        }
    }
    public function detailPaket(String $id)
    {
        $paket = Paket::find($id);
        $itemPaket = ItemPaket::latest()->get();
        $data['paket'] = $paket;
        $data['itemPaket'] = $itemPaket;
        return response()->view('DetailPaket.index', $data);
    }
    public function getTotal(String $id)
    {
        $paket = Paket::find($id);
        $total = $paket->getTotal();
        $formattedTotal = number_format($total, 0, ','); // Format angka menjadi ribuan dengan koma/desimal Indonesia
        return response()->json([
            'status' => 'success',
            'total' => $formattedTotal
        ], 200);
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]