fix: cancelar constancia no asignada
This commit is contained in:
parent
d3bd94e158
commit
30c0b8f587
@ -279,6 +279,16 @@ public function cancelarTagNoAsignado(Request $request)
|
|||||||
|
|
||||||
$observations = $request->cancellation_observations;
|
$observations = $request->cancellation_observations;
|
||||||
|
|
||||||
|
// Verificar que existe el motivo de cancelación ANTES de crear el log
|
||||||
|
$cancellationReason = \App\Models\CatalogCancellationReason::find($request->cancellation_reason_id);
|
||||||
|
if (!$cancellationReason) {
|
||||||
|
DB::rollBack();
|
||||||
|
return ApiResponse::BAD_REQUEST->response([
|
||||||
|
'message' => 'El motivo de cancelación no existe.',
|
||||||
|
'cancellation_reason_id' => $request->cancellation_reason_id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
$cancellationLog = TagCancellationLog::create([
|
$cancellationLog = TagCancellationLog::create([
|
||||||
'tag_id' => $tag->id,
|
'tag_id' => $tag->id,
|
||||||
'cancellation_reason_id' => $request->cancellation_reason_id,
|
'cancellation_reason_id' => $request->cancellation_reason_id,
|
||||||
@ -290,15 +300,6 @@ public function cancelarTagNoAsignado(Request $request)
|
|||||||
// Cargar las relaciones necesarias ANTES de usarlas
|
// Cargar las relaciones necesarias ANTES de usarlas
|
||||||
$cancellationLog->load(['cancellationReason', 'cancelledBy']);
|
$cancellationLog->load(['cancellationReason', 'cancelledBy']);
|
||||||
|
|
||||||
// Validar que la relación se cargó correctamente
|
|
||||||
if (!$cancellationLog->cancellationReason) {
|
|
||||||
DB::rollBack();
|
|
||||||
return ApiResponse::INTERNAL_ERROR->response([
|
|
||||||
'message' => 'Error al cargar el motivo de cancelación.',
|
|
||||||
'error' => 'La relación cancellationReason no se pudo cargar correctamente.',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Actualizar el módulo del tag si se proporciona
|
// Actualizar el módulo del tag si se proporciona
|
||||||
if ($request->filled('module_id')) {
|
if ($request->filled('module_id')) {
|
||||||
$tag->module_id = $request->module_id;
|
$tag->module_id = $request->module_id;
|
||||||
@ -319,19 +320,28 @@ public function cancelarTagNoAsignado(Request $request)
|
|||||||
->latest()
|
->latest()
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
// Preparar datos para el PDF
|
// Validar que existe el log de cancelación
|
||||||
|
if (!$lastCancellation) {
|
||||||
|
DB::rollBack();
|
||||||
|
return ApiResponse::INTERNAL_ERROR->response([
|
||||||
|
'message' => 'Error: No se encontró el log de cancelación después de crearlo.',
|
||||||
|
'tag_id' => $tag->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Preparar datos para el PDF con validaciones defensivas
|
||||||
$cancellationData = [
|
$cancellationData = [
|
||||||
'fecha' => $lastCancellation ? $lastCancellation->cancellation_at->format('d/m/Y') : now()->format('d/m/Y'),
|
'fecha' => $lastCancellation->cancellation_at ? $lastCancellation->cancellation_at->format('d/m/Y') : now()->format('d/m/Y'),
|
||||||
'folio' => $tag->folio ?? '',
|
'folio' => $tag->folio ?? '',
|
||||||
'tag_number' => $tag->tag_number ?? 'N/A',
|
'tag_number' => $tag->tag_number ?? 'N/A',
|
||||||
'motivo' => $lastCancellation && $lastCancellation->cancellationReason
|
'motivo' => ($lastCancellation->cancellationReason && isset($lastCancellation->cancellationReason->name))
|
||||||
? $lastCancellation->cancellationReason->name
|
? $lastCancellation->cancellationReason->name
|
||||||
: 'No especificado',
|
: 'No especificado',
|
||||||
'operador' => $lastCancellation && $lastCancellation->cancelledBy
|
'operador' => ($lastCancellation->cancelledBy && isset($lastCancellation->cancelledBy->name))
|
||||||
? $lastCancellation->cancelledBy->name
|
? $lastCancellation->cancelledBy->name
|
||||||
: 'Sistema',
|
: 'Sistema',
|
||||||
'modulo' => $tag->module ? $tag->module->name : 'No especificado',
|
'modulo' => ($tag->module && isset($tag->module->name)) ? $tag->module->name : 'No especificado',
|
||||||
'ubicacion' => $tag->module ? $tag->module->address : 'No especificado',
|
'ubicacion' => ($tag->module && isset($tag->module->address)) ? $tag->module->address : 'No especificado',
|
||||||
];
|
];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user