get(); if (empty($kelompok_kategoris[0])) { return response()->json(['message' => 'Data Kosong']); } else { return $kelompok_kategoris; } } public function getDataMenu(Request $request) { $kelompok_kategori_id = $request->kelompok_produk; if ($kelompok_kategori_id == null || $kelompok_kategori_id == 0) { $data = KelompokKategoriPivot::with(['kelompokKategori', 'produk'])->get(); } else { $data = KelompokKategoriPivot::with(['kelompokKategori', 'produk']) ->where('kelompok_kategori_id', $kelompok_kategori_id) ->get(); } $nomor = 1; return $datatables = datatables() ->of($data) ->addColumn('nomor', function ($data) use (&$nomor) { return $nomor++; }) ->addColumn('kode_produk', function ($data) { return $data->produk->kode_produk; }) ->addColumn('nama_produk', function ($data) { return $data->produk->nama_produk; }) ->addColumn('harga_produk', function ($data) { return $data->produk->harga_produk; }) ->addColumn('nama_kelompok_kategori', function ($data) { return $data->kelompokKategori->nama_kelompok_kategori; }) ->addColumn('kategori_produk', function ($data) { return $data->produk->kategori_produk->nama_kategori_produk; }) ->addColumn('ubah', function ($data) { return '
Edit
'; }) ->rawColumns(['nomor', 'ubah']) ->make(true); } // Tambah Menu public function store(Request $request) { // validation $rules = array( 'kategori_produk' => 'required', 'kelompok_produk' => 'required', 'kode_produk' => 'required', 'nama_produk' => 'required', 'harga_produk' => 'required', 'tersedia' => 'required', ); if ($request->kelompok_produk == 9) { $rules = array( 'promodatetime' => 'required', ); } $validator = Validator::make($request->all(), $rules); // check validation if ($validator->fails()) { // If validation fails, return with errors return response()->json(['errors' => $validator->errors()], 422); } else { if ($request->kelompok_produk == 9) { // date promo 02/27/2024 12:00 AM - 03/30/2024 11:00 PM $tanggal_array = explode(" - ", $request->promodatetime); $tanggal_awal_string = $tanggal_array[0]; $tanggal_akhir_string = $tanggal_array[1]; // Konversi string tanggal menjadi objek Carbon $tanggal_awal = Carbon::createFromFormat('m/d/Y h:i A', $tanggal_awal_string); $tanggal_akhir = Carbon::createFromFormat('m/d/Y h:i A', $tanggal_akhir_string); // Mendapatkan tanggal dan waktu awal serta akhir $tgl_start_promo = $tanggal_awal->toDateTimeString(); $tgl_end_promo = $tanggal_akhir->toDateTimeString(); } // create product $produk = Produk::create([ 'kategori_produk_id' => $request->kategori_produk, 'kode_produk' => $request->kode_produk, 'nama_produk' => $request->nama_produk, 'harga_produk' => $request->harga_produk, 'tersedia' => $request->tersedia, 'deskripsi_produk' => $request->deskripsi_produk, 'stok_promo' => $request->stok_promo, 'tgl_start_promo' => $tgl_start_promo, 'tgl_end_promo' => $tgl_end_promo, 'created_at' => Carbon::now() ]); $pivot_produk = KelompokKategoriPivot::create([ 'kelompok_kategori_id' => $request->kelompok_produk, 'produk_id' => $produk->id, 'created_at' => Carbon::now() ]); // Return a success response return response()->json(['message' => 'Data created successfully']); } } public function show($id) { $data = KelompokKategoriPivot::with(['kelompokKategori', 'produk'])->findOrFail($id); return response()->json($data); } // Ubah Menu public function update(Request $request, $id) { // validation $rules = array( 'kategori_produk' => 'required', 'kelompok_produk' => 'required', 'kode_produk' => 'required', 'nama_produk' => 'required', 'harga_produk' => 'required', 'tersedia' => 'required', ); if ($request->kelompok_produk == 9) { $rules = array( 'promodatetime' => 'required', ); } $validator = Validator::make($request->all(), $rules); // check validation if ($validator->fails()) { // If validation fails, return with errors return response()->json(['errors' => $validator->errors()], 422); } else { if ($request->kelompok_produk == 9) { // date promo 02/27/2024 12:00 AM - 03/30/2024 11:00 PM $tanggal_array = explode(" - ", $request->promodatetime); $tanggal_awal_string = $tanggal_array[0]; $tanggal_akhir_string = $tanggal_array[1]; // Konversi string tanggal menjadi objek Carbon $tanggal_awal = Carbon::createFromFormat('m/d/Y h:i A', $tanggal_awal_string); $tanggal_akhir = Carbon::createFromFormat('m/d/Y h:i A', $tanggal_akhir_string); // Mendapatkan tanggal dan waktu awal serta akhir $tgl_start_promo = $tanggal_awal->toDateTimeString(); $tgl_end_promo = $tanggal_akhir->toDateTimeString(); } $pivot = KelompokKategoriPivot::findOrFail($id); $produk = Produk::find($pivot->produk_id); // update pivot produk $pivot->update([ 'kelompok_ketegori_id' => $request->kelompok_produk, ]); // update produk $produk->update([ 'kategori_produk_id' => $request->kategori_produk, 'kode_produk' => $request->kode_produk, 'nama_produk' => $request->nama_produk, 'harga_produk' => $request->harga_produk, 'tersedia' => $request->tersedia, 'deskripsi_produk' => $request->deskripsi_produk, 'stok_promo' => $request->stok_promo, 'tgl_start_promo' => $tgl_start_promo, 'tgl_end_promo' => $tgl_end_promo, ]); // Return a success response return response()->json(['message' => 'Data created successfully']); } } }