fix(WEB): 수주 등록/수정 옵션 필드 저장 및 담당자 표시 문제 해결

- FormRequest에 options 필드 validation 추가 (StoreOrderRequest, UpdateOrderRequest)
  - shipping_cost_code, receiver, receiver_contact, shipping_address 등
- OrderService.show()에서 client 로드 시 manager_name 필드 추가
- 수주확정/생산지시 되돌리기 기능 추가 (revertOrderConfirmation, revertProductionOrder)
- 견적 calculation_inputs 포함하여 로드

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-16 21:58:57 +09:00
parent b86397cbee
commit 090c07605e
14 changed files with 262 additions and 9 deletions

View File

@@ -107,4 +107,24 @@ public function createProductionOrder(CreateProductionOrderRequest $request, int
return $this->service->createProductionOrder($id, $request->validated());
}, __('message.order.production_order_created'));
}
/**
* 수주확정 되돌리기 (수주등록 상태로 변경)
*/
public function revertOrderConfirmation(int $id)
{
return ApiResponse::handle(function () use ($id) {
return $this->service->revertOrderConfirmation($id);
}, __('message.order.order_confirmation_reverted'));
}
/**
* 생산지시 되돌리기 (작업지시 및 관련 데이터 삭제)
*/
public function revertProductionOrder(int $id)
{
return ApiResponse::handle(function () use ($id) {
return $this->service->revertProductionOrder($id);
}, __('message.order.production_order_reverted'));
}
}

View File

@@ -81,8 +81,19 @@ public function store(QuoteStoreRequest $request)
*/
public function update(QuoteUpdateRequest $request, int $id)
{
return ApiResponse::handle(function () use ($request, $id) {
return $this->quoteService->update($id, $request->validated());
$validated = $request->validated();
// 🔍 디버깅: 요청 데이터 확인
\Log::info('🔍 [QuoteController::update] 요청 수신', [
'id' => $id,
'raw_options_keys' => $request->input('options') ? array_keys($request->input('options')) : null,
'raw_options_detail_items_count' => $request->input('options.detail_items') ? count($request->input('options.detail_items')) : 0,
'validated_options_keys' => isset($validated['options']) ? array_keys($validated['options']) : null,
'validated_options_detail_items_count' => isset($validated['options']['detail_items']) ? count($validated['options']['detail_items']) : 0,
]);
return ApiResponse::handle(function () use ($validated, $id) {
return $this->quoteService->update($id, $validated);
}, __('message.quote.updated'));
}