feat: add logging for validation errors in CuttingRequest and CuttingService
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (8.3) (push) Waiting to run
tests / ci (8.4) (push) Waiting to run
tests / ci (8.5) (push) Waiting to run

This commit is contained in:
Yoga Pangestu 2026-07-24 13:32:28 +07:00
parent 6c47be8821
commit 57040f1875
2 changed files with 26 additions and 0 deletions

View File

@ -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<string, string>
*/

View File

@ -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.',
]);