@extends('fragments.fullTemplate') @section('titulo') Detalle solicitud portal clientes @endsection @section('estilos') @endsection @section('contenido')
@php $badgeMap = [ 'pendiente' => 'yellow', 'pendiente_revision' => 'yellow', 'en_revision' => 'blue', 'aprobado' => 'green', 'aprobada' => 'green', 'rechazado' => 'red', 'rechazada' => 'red', 'correccion' => 'grey', 'correccion_solicitada' => 'grey', 'completada' => 'blue', 'completado' => 'blue', ]; $uiLabelColor = function ($clase) { $mapa = [ 'warning' => 'yellow', 'info' => 'blue', 'success' => 'green', 'danger' => 'red', 'secondary' => 'grey', 'primary' => 'blue', 'dark' => 'grey', 'light' => 'grey basic', ]; return $mapa[(string) $clase] ?? 'grey'; }; $labelEstado = function ($estado) { switch ((string) $estado) { case 'pendiente_revision': return 'Pendiente de revisión'; case 'en_revision': return 'En revisión'; case 'aprobado': case 'aprobada': return 'Aprobado'; case 'rechazado': case 'rechazada': return 'Rechazado'; case 'correccion': case 'correccion_solicitada': return 'Corrección solicitada'; case 'completada': case 'completado': return 'Completada'; case 'pendiente': default: return $estado ? ucfirst(str_replace('_', ' ', $estado)) : 'Pendiente'; } }; $usuarioPortal = $solicitud->portalUsuario; $estatusSolicitud = $solicitud->estatus ?: 'pendiente'; $estatusPublico = $solicitud->estatus_publico; $muestraRecibida = $solicitud->muestra_recibida_resumen; $partidas = $solicitud->partidas_mostrar; $tipoSolicitud = strtolower(trim((string) $solicitud->tipo_solicitud)); $seguimiento = $solicitud->seguimiento_administrativo; $accionesOperativas = $solicitud->acciones_operativas; $numerosInformeSolicitud = collect($solicitud->numeros_informe_mostrar); $identificadorEncabezado = $numerosInformeSolicitud->count() > 0 ? $numerosInformeSolicitud->implode(', ') : $solicitud->folio_mostrar; $textoInformativo = function ($valor) { $texto = trim((string) $valor); $rellenos = [ 'no disponible', 'no registrado', 'no registrada', 'no especificado', 'no especificada', 'no registrados', 'sin información', 'sin informacion', 'sin correo', 'sin telefono', 'sin teléfono', 'sin asignar', 'sin definir', 'sin detalles registrados.', 'sin observaciones del cliente', 'sin observaciones de seatsa', 'sin clasificacion', 'sin clasificación', 'sin tipo documental', 'n/a', '---', ]; return $texto !== '' && !in_array(mb_strtolower($texto, 'UTF-8'), $rellenos, true) ? $texto : null; }; @endphp
@if(session()->has('success')) @endif @if(session()->has('warning')) @endif @if(session()->has('error')) @endif @if (count($errors) > 0) @endif

Detalle de solicitud

@if(data_get($accionesOperativas, 'mostrar_crear_ingreso_lab'))
{!! csrf_field() !!}
@elseif(data_get($accionesOperativas, 'ver_flujo_lab_url')) Ver flujo existente @endif
Datos generales
@if($numerosInformeSolicitud->count() === 0)

Folio: {{ $solicitud->folio_mostrar }}

@elseif($numerosInformeSolicitud->count() === 1)

No. de informe: {{ $numerosInformeSolicitud->first() }}

@else
No. de informes:
@foreach($numerosInformeSolicitud as $numeroInforme) {{ $numeroInforme }} @endforeach
@endif

Tipo de solicitud: {{ $solicitud->tipo_solicitud_mostrar }}

Estatus para cliente: {{ data_get($estatusPublico, 'texto', 'Solicitud enviada') }}

@if($solicitud->created_at || $solicitud->fecha)

Fecha de solicitud: {{ $solicitud->created_at ? date('d/m/Y H:i', strtotime($solicitud->created_at)) : date('d/m/Y', strtotime($solicitud->fecha)) }}

@endif @if($solicitud->fecha_entrega_documentacion)

Fecha de entrega documental: {{ date('d/m/Y', strtotime($solicitud->fecha_entrega_documentacion)) }}

@endif

Registrada desde: {{ $solicitud->ingreso_desde_texto }}

Total de partidas: {{ $partidas->count() }}

Empresa y contacto
@if($textoInformativo($solicitud->empresa_relacionada_mostrar))

Empresa: {{ $solicitud->empresa_relacionada_mostrar }}

@endif @if($textoInformativo($solicitud->contacto_mostrar))

Contacto: {{ $solicitud->contacto_mostrar }}

@endif @if($textoInformativo($solicitud->correo_contacto_mostrar))

Correo: {{ $solicitud->correo_contacto_mostrar }}

@endif @if($textoInformativo($solicitud->telefono_contacto_mostrar))

Teléfono: {{ $solicitud->telefono_contacto_mostrar }}

@endif @if(optional($usuarioPortal)->usuario)

Usuario portal: {{ $usuarioPortal->usuario }}

@endif @if($usuarioPortal)

Estatus de acceso: {{ $usuarioPortal->estatus_texto }}

@endif
Estatus documental

Estatus administrativo interno: {{ $labelEstado($estatusSolicitud) }}

Total de documentos: {{ $solicitud->documentos->count() }}

@if($textoInformativo($solicitud->servicio_resumen_mostrar))

Servicio general: {{ $solicitud->servicio_resumen_mostrar }}

@endif
Estados detectados:
@forelse($resumenEstadosDocumentos as $estadoDocumento => $totalEstado) {{ $labelEstado($estadoDocumento) }}: {{ $totalEstado }} @empty Sin documentos asociados. @endforelse
Entrega de la muestra
@if($textoInformativo($solicitud->tipo_solicitud_mostrar))

Tipo de solicitud: {{ $solicitud->tipo_solicitud_mostrar }}

@endif @if($textoInformativo($solicitud->forma_entrega_muestra_mostrar))

Forma de entrega: {{ $solicitud->forma_entrega_muestra_mostrar }}

@endif @if($textoInformativo($solicitud->detalles_entrega_muestra_mostrar))

Detalle de entrega: {{ $solicitud->detalles_entrega_muestra_mostrar }}

@endif

Muestra física: @if(data_get($muestraRecibida, 'aplica')) Requerida @else No aplica @endif

Recepción en SEATSA: {{ data_get($muestraRecibida, 'texto') }}

@if(data_get($muestraRecibida, 'fecha'))

Fecha registrada: {{ date('d/m/Y H:i', strtotime(data_get($muestraRecibida, 'fecha'))) }}

@endif
@if($tipoSolicitud === 'laboratorio') @if(!$muestraRecibidaHabilitada)
La acción de recepción de muestra requiere ejecutar la migración pendiente.
@elseif(data_get($muestraRecibida, 'registrada'))
La muestra ya fue marcada como recibida en SEATSA.
@elseif($puedeGestionar)
{!! csrf_field() !!}

Esta acción es independiente de la aprobación documental.

@else
Solo lectura.
@endif @else
ARM no requiere muestra física para este flujo.
@endif
@if($solicitud->observaciones)
Comentarios del cliente
{{ $solicitud->observaciones }}
@endif
Partidas y productos enviados
@if($partidas->count() > 0)
@foreach($partidas as $partida) @php $partidaTipo = strtolower(trim((string) data_get($partida, 'tipo_solicitud', $tipoSolicitud))); $resumenPartida = data_get($partida, 'producto'); $comentarioSeatsa = (string) data_get($partida, 'comentario_revision', ''); $tieneComentarioSeatsa = trim($comentarioSeatsa) !== ''; $numerosInformePartida = collect(data_get($partida, 'numeros_informe')); @endphp
Revisión de partida: {{ data_get($partida, 'estatus_revision_texto', 'Pendiente') }} @if(data_get($partida, 'fecha_recibida')) Recibida: {{ date('d/m/Y H:i', strtotime(data_get($partida, 'fecha_recibida'))) }} @endif
@if(data_get($partida, 'flujo_creado')) Ligada al ingreso generado @elseif(!data_get($partida, 'revision_habilitada')) Revisión pendiente de migracion @elseif($puedeGestionar)
{!! csrf_field() !!}
{!! csrf_field() !!}
@else Solo lectura @endif
@if($partidaTipo === 'laboratorio') @if($textoInformativo(data_get($partida, 'servicio_requerido'))) @endif @if($textoInformativo(data_get($partida, 'producto'))) @endif @if($textoInformativo(data_get($partida, 'marca'))) @endif @if($textoInformativo(data_get($partida, 'modelo'))) @endif @if($textoInformativo(data_get($partida, 'cantidad'))) @endif @if($textoInformativo(data_get($partida, 'numero_serie'))) @endif @if($textoInformativo(data_get($partida, 'accesorios'))) @endif @if($textoInformativo(data_get($partida, 'norma_general'))) @endif @if($textoInformativo(data_get($partida, 'norma_particular'))) @endif @else @if($textoInformativo(data_get($partida, 'producto'))) @endif @if($textoInformativo(data_get($partida, 'marca'))) @endif @if($textoInformativo(data_get($partida, 'modelo'))) @endif @if($textoInformativo(data_get($partida, 'numero_serie'))) @endif @if($textoInformativo(data_get($partida, 'accesorios'))) @endif @if($textoInformativo(data_get($partida, 'norma_internacional'))) @endif @if($textoInformativo(data_get($partida, 'norma_mexicana'))) @endif @if(data_get($partida, 'tiene_informe_internacional')) @endif @endif @if($numerosInformePartida->count() > 0) @endif @if($textoInformativo(data_get($partida, 'observaciones'))) @endif
Prueba o servicio requerido {{ data_get($partida, 'servicio_requerido') }}
Producto {{ data_get($partida, 'producto') }}
Marca {{ data_get($partida, 'marca') }}
Modelo {{ data_get($partida, 'modelo') }}
Cantidad {{ data_get($partida, 'cantidad') }}
Número de serie {{ data_get($partida, 'numero_serie') }}
Accesorios {{ data_get($partida, 'accesorios') }}
Norma general {{ data_get($partida, 'norma_general') }}
Norma particular {{ data_get($partida, 'norma_particular') }}
Producto {{ data_get($partida, 'producto') }}
Marca {{ data_get($partida, 'marca') }}
Modelo {{ data_get($partida, 'modelo') }}
Número de serie {{ data_get($partida, 'numero_serie') }}
Accesorios {{ data_get($partida, 'accesorios') }}
Norma internacional {{ data_get($partida, 'norma_internacional') }}
Norma mexicana {{ data_get($partida, 'norma_mexicana') }}
Informe internacional por partida
{{ data_get($partida, 'informe_internacional_nombre') }}
@if(data_get($partida, 'informe_internacional_disponible')) @else
El archivo registrado no se encontró en este entorno local.
@endif
No. de informe {{ $numerosInformePartida->implode(', ') }}
Observaciones del cliente {{ data_get($partida, 'observaciones') }}
@if(($puedeGestionar && data_get($partida, 'comentario_revision_habilitado') && is_numeric(data_get($partida, 'id'))) || $tieneComentarioSeatsa)
Observaciones de SEATSA
@if($puedeGestionar && data_get($partida, 'comentario_revision_habilitado') && is_numeric(data_get($partida, 'id'))) @if($tieneComentarioSeatsa)
{{ $comentarioSeatsa }}
@endif
{!! csrf_field() !!}
@if($tieneComentarioSeatsa) @endif
@else
{{ data_get($partida, 'comentario_revision') }}
@endif
@endif
@endforeach
@else La solicitud no tiene partidas registradas. @endif
Documentos cargados por el cliente
@forelse ($solicitud->documentos as $documento) @php $estadoDocumento = $documento->estado ?: 'pendiente'; $archivoInfo = $documento->archivo_info; $archivoCorreccionInfo = $documento->archivo_correccion_info; $archivoVerUrl = data_get($archivoInfo, 'view_url'); $archivoDescargarUrl = data_get($archivoInfo, 'download_url'); $archivoCorreccionVerUrl = data_get($archivoCorreccionInfo, 'view_url'); $archivoCorreccionDescargarUrl = data_get($archivoCorreccionInfo, 'download_url'); @endphp @empty @endforelse
Documento Clasificación Origen Estado Fecha de carga Archivo cliente Archivo correccion Observación Fecha revisión Acciones
{{ $documento->nombre_documento }} @if($documento->descripcion_documento)
{{ $documento->descripcion_documento }}
@endif
@if($textoInformativo($documento->tipo_cliente_texto))
{{ $documento->tipo_cliente_texto }}
@endif @if($textoInformativo($documento->tipo_documento_texto_mostrar) || $documento->es_requerido)
@if($textoInformativo($documento->tipo_documento_texto_mostrar)) {{ $documento->tipo_documento_texto_mostrar }} @endif @if($documento->es_requerido) @if($textoInformativo($documento->tipo_documento_texto_mostrar)) | @endif Requerido @endif
@endif
{{ $documento->origen_documento_texto ?: 'Portal de clientes' }} @if($documento->archivo_correccion)
Corrección: {{ $documento->origen_correccion_texto ?: 'SEATSA-LAB' }}
@endif
{{ $labelEstado($estadoDocumento) }} {{ $documento->created_at ? date('d/m/Y H:i', strtotime($documento->created_at)) : '' }} @if($documento->archivo)
{{ $documento->nombreArchivoMostrar('archivo') }}
@endif
@if($documento->archivo_correccion)
{{ $documento->nombreArchivoMostrar('archivo_correccion') }}
@endif
{{ $documento->comentario ?: '' }} {{ $documento->fecha_revision ? date('d/m/Y H:i', strtotime($documento->fecha_revision)) : '' }} @if($puedeGestionar) @else Solo lectura @endif
La solicitud no tiene documentos asociados.
{{-- Documentos enviados desde SEATSA-LAB al cliente --}} @if($documentosLiberados->count() > 0)
Documentos liberados al cliente
@foreach($documentosLiberados as $documentoLiberado) @endforeach
Documento Fecha de envío Archivo
{{ $documentoLiberado['titulo'] }} @if(!empty($documentoLiberado['fecha_envio'])) {{ date('d/m/Y H:i', strtotime($documentoLiberado['fecha_envio'])) }} @endif
@endif
Historial de revisión
@if($historial->count() > 0) @else No hay historial disponible. @endif
Volver al listado
@if($puedeGestionar) @include('Portal_Clientes.Solicitudes_servicios.partials.modal_revision_documento') @endif @endsection