laravel12/app/Http/Controllers/StockLogController.php
2025-12-07 01:44:14 +09:00

48 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Product;
use App\Models\StockLog;
use App\Services\StockService;
use Illuminate\Http\Request;
class StockLogController extends Controller
{
public function Input(Request $request, $id)
{
// queryString action 의 default value 는 in 으로 한다.
$action = $request->query('action','in');
if(!in_array($action, ['in','out']))
{
abort(400, '잘못된 action 값 입니다.');
}
$title = ($action == 'in') ? '입고 등록' : '출고 등록';
// Product 조회 ( or 404)
$product = Product::findOrFail($id);
// Blade 뷰에 Product 전달
return view('stock.input', compact('product', 'title', 'action'));
}
public function store(Request $request, $id, StockService $stock)
{
$action = $request->query('action', 'in');
if(!in_array($action, ['in','out']))
{
abort(400, '잘못된 action 값 입니다.');
}
$product = Product::findOrFail($id);
$validated = $request->validate([
'amount' => ['required', 'integer']
]);
// StockLog::create([
// 'product_id' => $product->id,
// 'change_type' => $action,
// 'change_amount' => $validated['amount']
// ]);
$stock->adjust($product, $action, (int) $validated['amount']);
return redirect()->route('product')->with('success', $action == 'in' ? '입고처리 완료' : '출고처리 완료');
}
}