fix(API): 견적 관리 필드 저장/조회 개선
- QuoteStoreRequest/UpdateRequest: manager, contact, remarks 필드 추가 - QuoteController: store에서 validated 데이터 로깅 추가 (디버깅용) - QuoteService: manager, contact, remarks 필드 저장/조회 로직 추가 - FormulaEvaluatorService: BOM 계산 서비스 개선 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
use App\Services\Quote\QuoteDocumentService;
|
||||
use App\Services\Quote\QuoteNumberService;
|
||||
use App\Services\Quote\QuoteService;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class QuoteController extends Controller
|
||||
{
|
||||
@@ -52,8 +53,26 @@ public function show(int $id)
|
||||
*/
|
||||
public function store(QuoteStoreRequest $request)
|
||||
{
|
||||
return ApiResponse::handle(function () use ($request) {
|
||||
return $this->quoteService->store($request->validated());
|
||||
// DEBUG: 요청 데이터 로깅
|
||||
Log::info('[QuoteController::store] 원본 요청:', [
|
||||
'author' => $request->input('author'),
|
||||
'manager' => $request->input('manager'),
|
||||
'contact' => $request->input('contact'),
|
||||
'remarks' => $request->input('remarks'),
|
||||
]);
|
||||
|
||||
$validated = $request->validated();
|
||||
|
||||
// DEBUG: validated 데이터 로깅
|
||||
Log::info('[QuoteController::store] validated 데이터:', [
|
||||
'author' => $validated['author'] ?? 'NOT_SET',
|
||||
'manager' => $validated['manager'] ?? 'NOT_SET',
|
||||
'contact' => $validated['contact'] ?? 'NOT_SET',
|
||||
'remarks' => $validated['remarks'] ?? 'NOT_SET',
|
||||
]);
|
||||
|
||||
return ApiResponse::handle(function () use ($validated) {
|
||||
return $this->quoteService->store($validated);
|
||||
}, __('message.quote.created'));
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,24 @@ public function authorize(): bool
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 프론트엔드 필드명을 백엔드 필드명으로 정규화
|
||||
* manager_name → manager, manager_contact → contact
|
||||
*/
|
||||
protected function prepareForValidation(): void
|
||||
{
|
||||
$mappings = [
|
||||
'manager_name' => 'manager',
|
||||
'manager_contact' => 'contact',
|
||||
];
|
||||
|
||||
foreach ($mappings as $from => $to) {
|
||||
if ($this->has($from) && ! $this->has($to)) {
|
||||
$this->merge([$to => $this->input($from)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
|
||||
@@ -12,6 +12,24 @@ public function authorize(): bool
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 프론트엔드 필드명을 백엔드 필드명으로 정규화
|
||||
* manager_name → manager, manager_contact → contact
|
||||
*/
|
||||
protected function prepareForValidation(): void
|
||||
{
|
||||
$mappings = [
|
||||
'manager_name' => 'manager',
|
||||
'manager_contact' => 'contact',
|
||||
];
|
||||
|
||||
foreach ($mappings as $from => $to) {
|
||||
if ($this->has($from) && ! $this->has($to)) {
|
||||
$this->merge([$to => $this->input($from)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user