fix: cancelar constancia no asignada arreglado

This commit is contained in:
Juan Felipe Zapata Moreno 2025-12-26 15:56:36 -06:00
parent 3bde46589b
commit 1b2522c4f0
2 changed files with 8 additions and 13 deletions

View File

@ -245,7 +245,6 @@ public function cancelarTagNoAsignado(Request $request)
'folio' => 'required|string|exists:tags,folio',
'cancellation_reason_id' => 'required|exists:catalog_cancellation_reasons,id',
'cancellation_observations' => 'nullable|string',
'id_chip' => 'nullable|string|max:255',
'module_id' => 'nullable|exists:modules,id',
]);
@ -263,6 +262,7 @@ public function cancelarTagNoAsignado(Request $request)
// Validar que el tag NO esté asignado
if ($tag->isAssigned()) {
DB::rollBack();
return ApiResponse::BAD_REQUEST->response([
'message' => 'Este tag está asignado a un vehículo. Usa el endpoint de cancelación de constancia.',
'tag_status' => $tag->status->name,
@ -271,21 +271,13 @@ public function cancelarTagNoAsignado(Request $request)
// Validar que no esté ya cancelado
if ($tag->isCancelled()) {
DB::rollBack();
return ApiResponse::BAD_REQUEST->response([
'message' => 'El tag ya está cancelado.',
]);
}
$additionalInfo = [];
if ($request->filled('id_chip')) {
$additionalInfo[] = "ID CHIP: {$request->id_chip}";
}
$observations = $request->cancellation_observations;
if (!empty($additionalInfo)) {
$observations = ($observations ? $observations . ' | ' : '') . implode(' | ', $additionalInfo);
}
$cancellationLog = TagCancellationLog::create([
'tag_id' => $tag->id,
@ -295,6 +287,9 @@ public function cancelarTagNoAsignado(Request $request)
'cancelled_by' => Auth::id(),
]);
// Cargar las relaciones necesarias
$cancellationLog->load(['cancellationReason', 'cancelledBy']);
// Actualizar el módulo del tag si se proporciona
if ($request->filled('module_id')) {
$tag->module_id = $request->module_id;
@ -320,7 +315,7 @@ public function cancelarTagNoAsignado(Request $request)
$cancellationData = [
'fecha' => $lastCancellation ? $lastCancellation->cancellation_at->format('d/m/Y') : now()->format('d/m/Y'),
'folio' => $tag->folio ?? '',
'id_chip' => $request->id_chip ?? '',
'tag_number' => $tag->tag_number ?? 'N/A',
'motivo' => $lastCancellation && $lastCancellation->cancellationReason
? $lastCancellation->cancellationReason->name
: 'No especificado',

View File

@ -121,8 +121,8 @@
<td class="data-value">{{ $cancellation['folio'] ?? '' }}</td>
</tr>
<tr class="data-row">
<td class="data-label">ID CHIP:</td>
<td class="data-value">{{ $cancellation['id_chip'] ?? '' }}</td>
<td class="data-label">TAG NUMBER:</td>
<td class="data-value">{{ $cancellation['tag_number'] ?? 'N/A' }}</td>
</tr>
<tr class="data-row">
<td class="data-label">MOTIVO:</td>