KategoriController.php 3.21 KB
Newer Older
Triyah Fatmawati committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Http\Support\ValidationRule;
use App\Models\Admin\MsKategori;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redirect;

class KategoriController extends Controller
{
    public function index() {
        $kategori = MsKategori::query()->get();

        $data = [
            'kategori' => $kategori
        ];

        return view('Admin.Kategori.index', $data);
    }

    public function store(Request $request){
        $rule = [
            'kodekategori' => 'required|string',
            'namakategori' => 'required|string',
            'poinsaku' => 'required|string'
        ];

        $request->validate($rule, ValidationRule::getErrorMessage($rule));

        DB::beginTransaction();

        try{
            $kategori = [
                'kode_kategori' => strip_tags($request->kodekategori),
                'nama_kategori' => strip_tags($request->namakategori),
                'poin_saku' => strip_tags($request->poinsaku),
                'status' => $request->status
            ];

            MsKategori::query()->create($kategori);

            DB::commit();

            return Redirect::route('kategori.index')
                ->with('success', 'Data kategori berhasil ditambahkan');
        }
        catch(Exception $e){
            Log::error($e);
            DB::rollBack();

            return Redirect::route('kategori.index')
                ->with('error', 'Data kategori gagal ditambahkan');
        }
    }

    public function update(Request $request, $id){
        $rule = [
            'kodekategori' => 'required|string',
            'namakategori' => 'required|string',
            'poinsaku' => 'required|string'
        ];

        $request->validate($rule, ValidationRule::getErrorMessage($rule));

        DB::beginTransaction();

        try{
Triyah Fatmawati committed
73 74
            $id = decrypt($id);

Triyah Fatmawati committed
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
            $kategori = [
                'kode_kategori' => strip_tags($request->kodekategori),
                'nama_kategori' => strip_tags($request->namakategori),
                'poin_saku' => strip_tags($request->poinsaku),
                'status' => $request->status
            ];

            MsKategori::where('id', $id)->update($kategori);

            DB::commit();

            return Redirect::route('kategori.index')
                ->with('success', 'Data kategori berhasil diupdate');
        }
        catch(Exception $e){
            Log::error($e);
            DB::rollBack();

            return Redirect::route('kategori.index')
                ->with('error', 'Data kategori gagal diupdate');
        }
    }

    public function destroy($id) {
Triyah Fatmawati committed
99 100
        $id = decrypt($id);

Triyah Fatmawati committed
101 102 103 104 105 106 107 108
        DB::beginTransaction();

        try{
            MsKategori::where('id', $id)->delete();

            DB::commit();

            return Redirect::route('kategori.index')
Triyah Fatmawati committed
109
                ->with('success', 'Data kategori berhasil dihapus');
Triyah Fatmawati committed
110 111 112 113 114 115
        }
        catch(Exception $e){
            Log::error($e);
            DB::rollBack();

            return Redirect::route('kategori.index')
Triyah Fatmawati committed
116
                ->with('error', 'Data kategori gagal dihapus');
Triyah Fatmawati committed
117 118 119
        }
    }
}