62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\PaketBarang;
|
|
use Illuminate\Http\Request;
|
|
|
|
class PaketBarangController extends Controller
|
|
{
|
|
/**
|
|
* Update jumlah barang dalam paket
|
|
*/
|
|
public function update(Request $request, $id)
|
|
{
|
|
$request->validate([
|
|
'jumlah' => 'required|integer|min:1',
|
|
]);
|
|
|
|
$paketBarang = PaketBarang::findOrFail($id);
|
|
|
|
// Cek stok barang yang tersedia
|
|
$barangData = \App\Http\Controllers\BarangController::getBarangData();
|
|
$barangStok = 0;
|
|
|
|
foreach ($barangData as $barang) {
|
|
if ($barang['id'] == $paketBarang->barang_id) {
|
|
$barangStok = $barang['stok'];
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Validasi jumlah tidak melebihi stok
|
|
if ($request->jumlah > $barangStok) {
|
|
return response()->json([
|
|
'success' => false,
|
|
'message' => 'Jumlah melebihi stok tersedia'
|
|
], 400);
|
|
}
|
|
|
|
$paketBarang->jumlah = $request->jumlah;
|
|
$paketBarang->save();
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => 'Jumlah barang berhasil diperbarui'
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Hapus barang dari paket
|
|
*/
|
|
public function destroy($id)
|
|
{
|
|
$paketBarang = PaketBarang::findOrFail($id);
|
|
$paketBarang->delete();
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => 'Barang berhasil dihapus dari paket'
|
|
]);
|
|
}
|
|
}
|