feat: 完成進貨單自動拋轉應付帳款流程與AP介面優化
All checks were successful
ERP-Deploy-Demo / deploy-demo (push) Successful in 1m8s

1. 新增 AccountPayable (應付帳款) 模組,包含 Migration、Model、Service 與 Controller
2. 修改 GoodsReceipt (進貨單) 流程,在確認進貨時自動產生對應的應付帳款單 (AP-YYYYMMDD-XX)
3. 實作應付帳款詳細頁面 (Show.tsx),包含發票登記與標記付款功能
4. 修正應付帳款 Show 頁面的排版,將發票資訊套用標準的綠色背景區塊,並調整按鈕位置
5. 更新相關的 Service Provider 與 Routes
This commit is contained in:
2026-02-24 16:46:55 +08:00
parent aaa93a921e
commit 455f945296
33 changed files with 1708 additions and 186 deletions

View File

@@ -299,15 +299,16 @@ class StoreRequisitionController extends Controller
$requisition = StoreRequisition::findOrFail($id);
$request->validate([
'supply_warehouse_id' => 'required|exists:warehouses,id',
'items' => 'required|array',
'items.*.id' => 'required|exists:store_requisition_items,id',
'items.*.approved_qty' => 'required|numeric|min:0',
], [
'supply_warehouse_id.required' => '請選擇供貨倉庫',
]);
$this->service->approve($requisition, $request->only(['supply_warehouse_id', 'items']), auth()->id());
if (empty($requisition->supply_warehouse_id)) {
return back()->withErrors(['supply_warehouse_id' => '請先選擇供貨倉庫']);
}
$this->service->approve($requisition, $request->only(['items']), auth()->id());
return redirect()->route('store-requisitions.show', $id)
->with('success', '叫貨單已核准,調撥單已自動產生');
@@ -332,6 +333,28 @@ class StoreRequisitionController extends Controller
->with('success', '叫貨單已駁回');
}
/**
* 更新供貨倉庫
*/
public function updateSupplyWarehouse(Request $request, $id)
{
$requisition = StoreRequisition::findOrFail($id);
if ($requisition->status !== 'pending') {
return back()->withErrors(['error' => '僅能在待審核狀態修改供貨倉庫']);
}
$request->validate([
'supply_warehouse_id' => 'required|exists:warehouses,id',
]);
$requisition->update([
'supply_warehouse_id' => $request->supply_warehouse_id,
]);
return redirect()->back()->with('success', '供貨倉庫已更新');
}
/**
* 刪除叫貨單(僅限草稿)
*/