From f6bbf65a00ed177eac18350552b313b876ca1f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Mon, 9 Mar 2026 10:54:07 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[finance]=20=EA=B1=B0=EB=9E=98=EC=B2=98?= =?UTF-8?q?=20=EB=93=B1=EB=A1=9D=20=ED=95=84=EC=88=98=EA=B0=92=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0=20(=EA=B1=B0=EB=9E=98=EC=B2=98=EB=AA=85+=EC=82=AC?= =?UTF-8?q?=EC=97=85=EC=9E=90=EB=B2=88=ED=98=B8=EB=A7=8C=20=ED=95=84?= =?UTF-8?q?=EC=88=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 백엔드: bizNo 필수 검증 추가, trade_type/status null-safe 처리 - 프론트엔드: 사업자번호 필수 검증 + 라벨에 * 표시 추가 - 나머지 필드 비어있어도 저장 가능하도록 NOT NULL 컬럼 기본값 보장 --- app/Http/Controllers/Finance/TradingPartnerController.php | 5 +++-- resources/views/finance/partners.blade.php | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Finance/TradingPartnerController.php b/app/Http/Controllers/Finance/TradingPartnerController.php index ed0c9cc4..748d6d5a 100644 --- a/app/Http/Controllers/Finance/TradingPartnerController.php +++ b/app/Http/Controllers/Finance/TradingPartnerController.php @@ -83,6 +83,7 @@ public function store(Request $request): JsonResponse { $request->validate([ 'name' => 'required|string|max:100', + 'bizNo' => 'required|string|max:20', 'type' => 'nullable|string|max:100', 'category' => 'nullable|string|max:100', ]); @@ -92,7 +93,7 @@ public function store(Request $request): JsonResponse $partner = TradingPartner::create([ 'tenant_id' => $tenantId, 'name' => $request->input('name'), - 'trade_type' => $request->input('tradeType', 'sales'), + 'trade_type' => $request->input('tradeType') ?? 'sales', 'type' => $request->input('type') ?? 'vendor', 'category' => $request->input('category') ?? '기타', 'biz_no' => $request->input('bizNo'), @@ -103,7 +104,7 @@ public function store(Request $request): JsonResponse 'address' => $request->input('address'), 'manager' => $request->input('manager'), 'manager_phone' => $request->input('managerPhone'), - 'status' => $request->input('status', 'active'), + 'status' => $request->input('status') ?? 'active', 'memo' => $request->input('memo'), ]); diff --git a/resources/views/finance/partners.blade.php b/resources/views/finance/partners.blade.php index 7c1ae533..d074f19a 100644 --- a/resources/views/finance/partners.blade.php +++ b/resources/views/finance/partners.blade.php @@ -127,6 +127,7 @@ function PartnersManagement() { }; const handleSave = async () => { if (!formData.name) { alert('거래처명을 입력해주세요.'); return; } + if (!formData.bizNo) { alert('사업자번호를 입력해주세요.'); return; } setSaving(true); try { const url = modalMode === 'add' ? '/finance/partners/store' : `/finance/partners/${editingItem.id}`; @@ -362,7 +363,7 @@ className={`mb-4 border-2 border-dashed rounded-xl p-6 text-center cursor-pointe
setFormData(prev => ({ ...prev, name: e.target.value }))} placeholder="거래처명" className="w-full px-3 py-2 border border-gray-300 rounded-lg" />
-
setFormData(prev => ({ ...prev, bizNo: e.target.value }))} placeholder="123-45-67890" className="w-full px-3 py-2 border border-gray-300 rounded-lg" />
+
setFormData(prev => ({ ...prev, bizNo: e.target.value }))} placeholder="123-45-67890" className="w-full px-3 py-2 border border-gray-300 rounded-lg" />
setFormData(prev => ({ ...prev, ceo: e.target.value }))} placeholder="대표자명" className="w-full px-3 py-2 border border-gray-300 rounded-lg" />