json(['error' => false, 'data' => VatSettings::numbering()]); } public function update(Request $request): JsonResponse { $data = $request->validate([ 'serial' => 'required|string|max:20|regex:/^[A-Za-z0-9]+$/', 'next_number' => 'required|integer|min:1', 'padding' => 'required|integer|min:1|max:12', 'auto_issue' => 'required|boolean', ]); $data['serial'] = strtoupper($data['serial']); $lastIssued = Invoice::query()->where('vat_serial', $data['serial'])->whereNotNull('vat_number')->max('vat_number'); if ($lastIssued !== null && $data['next_number'] <= (int) $lastIssued) { return response()->json([ 'error' => true, 'message' => "Số tiếp theo phải lớn hơn số đã cấp gần nhất ({$lastIssued}) của ký hiệu {$data['serial']}", ], 422); } VatSettings::saveNumbering($data); return response()->json(['error' => false, 'message' => 'Đã lưu cấu hình đánh số hóa đơn VAT', 'data' => VatSettings::numbering()]); } }