diff --git a/app/Http/Requests/Admin/Manage/CuttingRequest.php b/app/Http/Requests/Admin/Manage/CuttingRequest.php index e92dd58..d0a5021 100644 --- a/app/Http/Requests/Admin/Manage/CuttingRequest.php +++ b/app/Http/Requests/Admin/Manage/CuttingRequest.php @@ -5,6 +5,7 @@ use App\Enums\Permission; use App\Http\Requests\Concerns\ValidatesMediaUploads; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Facades\Log; use Illuminate\Validation\Rule; class CuttingRequest extends FormRequest @@ -60,6 +61,25 @@ public function rules(): array ); } + public function withValidator($validator): void + { + $validator->after(function ($validator) { + $errors = $validator->errors(); + + foreach ($this->input('materials', []) as $index => $material) { + $key = "materials.{$index}.raw_material_price_id"; + + if ($errors->has($key)) { + Log::warning('Validasi varian bahan baku gagal', [ + 'index' => $index, + 'raw_material_price_id' => $material['raw_material_price_id'] ?? null, + 'error' => $errors->first($key), + ]); + } + } + }); + } + /** * @return array */ diff --git a/app/Services/Manage/CuttingService.php b/app/Services/Manage/CuttingService.php index 7269405..3494a7b 100644 --- a/app/Services/Manage/CuttingService.php +++ b/app/Services/Manage/CuttingService.php @@ -20,6 +20,7 @@ use Illuminate\Contracts\Pagination\LengthAwarePaginator; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Collection; +use Illuminate\Support\Facades\Log; use Illuminate\Validation\ValidationException; class CuttingService @@ -682,6 +683,11 @@ private function buildMaterials(array $materials): array ->find($itemData['raw_material_price_id']); if ($price === null) { + Log::warning('Bahan baku tidak ditemukan saat build materials cutting', [ + 'index' => $index, + 'raw_material_price_id' => $itemData['raw_material_price_id'] ?? null, + ]); + throw ValidationException::withMessages([ "materials.{$index}.raw_material_price_id" => 'Bahan baku tidak ditemukan.', ]);