@php $usuarioEsAdministradorRequisiciones = isset($permisos) && $permisos && isset($permisos->administrador) && (int) $permisos->administrador === 1; $filtroAdminRequisicionesActual = isset($filtro_admin_requisiciones) ? $filtro_admin_requisiciones : request('filtro_admin_requisiciones', 'todas'); $adminTieneLineaRequisiciones = isset($admin_tiene_linea_requisiciones) && $admin_tiene_linea_requisiciones; @endphp
@include('fragments.navs', [ "navs" => [ [ "active" => 0, "url" => "requisicion_compras", "name" => "Pendientes" ], [ "active" => 1, "url" => "requisicion_compras/1", "name" => "Finalizadas" ] ] ])
@if(session()->has('success')) @endif @if(session()->has('warning')) @endif @if(session()->has('error')) @endif @if (count($errors) > 0) @endif
@include('Requisicion_compra.Notificacion.notificacion_requisicion_modal') @include('Control_documentos.Notificacion.notificacion_documento_version') @include('Modificaciones.notificacion_modificacion') @include('Modificaciones.Notificacion.notificacion_modificacion_firma_modal')
@if($usuarioEsAdministradorRequisiciones)
@endif

{{ $datos_reportes->total() }} registros encontrados


@php /* * Helpers locales de vista. * Se usan como closures para evitar errores de "Cannot redeclare function" * si la vista se incluye más de una vez. */ $sortUrl = function ($column) { $currentSort = request('sort_by', 'fecha'); $currentDir = request('sort_dir', 'desc'); $dir = ($currentSort === $column && $currentDir === 'asc') ? 'desc' : 'asc'; return request()->fullUrlWithQuery(array( 'sort_by' => $column, 'sort_dir' => $dir )); }; $sortClass = function ($column) { $currentSort = request('sort_by', 'fecha'); $currentDir = request('sort_dir', 'desc'); if ($currentSort !== $column) { return 'sorting'; } return $currentDir === 'asc' ? 'sorting_asc' : 'sorting_desc'; }; $formatearFecha = function ($fecha) { if ($fecha === null || $fecha === '') { return null; } return formatDateForDisplay($fecha); }; $textoVacio = function ($valor, $default = 'N/A') { if ($valor === null || trim((string) $valor) === '') { return $default; } return $valor; }; $claseFechaPago = function ($dato) { /* * Si aún no está finalizado el pago, la fecha de pago pendiente * se marca en rojo para alertar al usuario. */ if ((string) $dato->estatus_pago_flujo_texto === 'Pago Finalizado') { return ''; } if ((int) $dato->estatus === 0) { return ''; } return 'text-danger font-weight-bold'; }; @endphp
@if($datos_reportes->count()) @foreach ($datos_reportes as $dato) @php /* * Permisos por fila. * Se conserva la lógica anterior: * - Jefe de línea ve sus requisiciones o las de su línea. * - Solicitante ve sus propias requisiciones. * - Gerente ve todos. */ $idUsuarioReporte = isset($dato->id_usuario_reporte) ? $dato->id_usuario_reporte : $dato->id_usuario_solicitante; $idLineaReporte = isset($dato->id_linea_trabajo) ? $dato->id_linea_trabajo : null; $esJefeLinea = ( $tecnicos && (int) $tecnicos->jefe === 1 && ( (int) $idUsuarioReporte === (int) $id_usuario || ( $idLineaReporte !== null && (int) $tecnicos->id_linea_trabajo === (int) $idLineaReporte ) ) ); $esSolicitante = ((int) $idUsuarioReporte === (int) $id_usuario); $esGerente = (isset($permisos->gerente) && (int) $permisos->gerente === 1); $esRequisicionAdminPropia = $usuarioEsAdministradorRequisiciones && isset($dato->es_requisicion_admin_propia) && (int) $dato->es_requisicion_admin_propia === 1; $esRequisicionAdminLinea = $usuarioEsAdministradorRequisiciones && !$esRequisicionAdminPropia && isset($dato->es_requisicion_admin_linea) && (int) $dato->es_requisicion_admin_linea === 1; $esRequisicionAdminParaPago = $usuarioEsAdministradorRequisiciones && isset($dato->es_requisicion_admin_para_pago) && (int) $dato->es_requisicion_admin_para_pago === 1; $puedeVerRegistro = true; $nombreSolicitante = trim( (isset($dato->nombre_solicitante_flujo) ? $dato->nombre_solicitante_flujo : '') . ' ' . (isset($dato->apellidos_solicitante_flujo) ? $dato->apellidos_solicitante_flujo : '') ); if ($nombreSolicitante === '' && isset($dato->datos_usuario_solicitante)) { $nombreSolicitante = trim($dato->datos_usuario_solicitante->nombre . ' ' . $dato->datos_usuario_solicitante->apellidos); } $areaNegocio = isset($dato->nombre_unidad_negocio) && trim($dato->nombre_unidad_negocio) !== '' ? $dato->nombre_unidad_negocio : 'Sin área'; $proveedor = isset($dato->nombre_proveedor) && trim($dato->nombre_proveedor) !== '' ? $dato->nombre_proveedor : ( isset($dato->datos_proveedor) && $dato->datos_proveedor ? $dato->datos_proveedor->empresa : 'Pendiente' ); $tipoPago = isset($dato->tipo_pago_flujo_texto) && trim($dato->tipo_pago_flujo_texto) !== '' ? $dato->tipo_pago_flujo_texto : 'N/A'; /* * Si 2.3 está No aprobado: * mantenemos visibles producto, proveedor y tipo pago, * pero lo que depende de aprobación va en N/A. */ $requisicionNoAprobada = ((int) $dato->estatus === 0); $fechaSolicitud = $formatearFecha($dato->fecha); $fechaAprobacion = isset($dato->fecha_aprobacion_flujo) ? $formatearFecha($dato->fecha_aprobacion_flujo) : null; $fechaEntregaPendiente = null; if (!$requisicionNoAprobada) { if (isset($dato->proxima_fecha_entrega_flujo) && $dato->proxima_fecha_entrega_flujo) { $fechaEntregaPendiente = $formatearFecha($dato->proxima_fecha_entrega_flujo); } elseif (isset($dato->fecha_entrega_programada) && $dato->fecha_entrega_programada) { $fechaEntregaPendiente = $formatearFecha($dato->fecha_entrega_programada); } } $fechaPagoPendiente = null; if (!$requisicionNoAprobada) { if (isset($dato->proxima_fecha_pago_flujo) && $dato->proxima_fecha_pago_flujo) { $fechaPagoPendiente = $formatearFecha($dato->proxima_fecha_pago_flujo); } elseif (isset($dato->fecha_pago) && $dato->fecha_pago) { $fechaPagoPendiente = $formatearFecha($dato->fecha_pago); } } $estatusPagoTexto = isset($dato->estatus_pago_flujo_texto) && $dato->estatus_pago_flujo_texto ? $dato->estatus_pago_flujo_texto : 'No iniciado'; $estatusPagoClase = isset($dato->estatus_pago_flujo_clase) && $dato->estatus_pago_flujo_clase ? $dato->estatus_pago_flujo_clase : 'danger'; $resumenPago = isset($dato->estatus_pago_flujo_resumen) ? $dato->estatus_pago_flujo_resumen : null; $estatusInspeccionTexto = isset($dato->estatus_inspeccion_flujo_texto) && $dato->estatus_inspeccion_flujo_texto ? $dato->estatus_inspeccion_flujo_texto : 'No iniciado'; $estatusInspeccionClase = isset($dato->estatus_inspeccion_flujo_clase) && $dato->estatus_inspeccion_flujo_clase ? $dato->estatus_inspeccion_flujo_clase : 'danger'; $resumenInspeccion = isset($dato->estatus_inspeccion_flujo_resumen) ? $dato->estatus_inspeccion_flujo_resumen : null; $firmaInspeccion = isset($dato->firma_inspeccion_flujo) ? (int) $dato->firma_inspeccion_flujo : 0; $firmaConclusion = isset($dato->firma_conclusion_flujo) ? (int) $dato->firma_conclusion_flujo : 0; if ($requisicionNoAprobada) { $estatusPagoTexto = 'N/A'; $estatusPagoClase = 'danger'; $resumenPago = null; $estatusInspeccionTexto = 'N/A'; $estatusInspeccionClase = 'danger'; $resumenInspeccion = null; } /* * Estatus combinado de inspección + firma. */ $textoInspeccionFirma = 'Pendiente'; $claseInspeccionFirma = 'warning'; if ($requisicionNoAprobada) { $textoInspeccionFirma = 'N/A'; $claseInspeccionFirma = 'danger'; } elseif ($estatusInspeccionTexto === 'Rechazado') { $textoInspeccionFirma = 'Rechazado'; $claseInspeccionFirma = 'danger'; } elseif ($estatusInspeccionTexto === 'Aceptado' && $firmaInspeccion === 1) { $textoInspeccionFirma = 'Aceptado y firmado'; $claseInspeccionFirma = 'success'; } elseif ($estatusInspeccionTexto === 'Aceptado') { $textoInspeccionFirma = 'Aceptado sin firma'; $claseInspeccionFirma = 'warning'; } elseif ($estatusInspeccionTexto === 'Entrega pendiente') { $textoInspeccionFirma = 'Pendiente'; $claseInspeccionFirma = 'warning'; } /* * Firma conclusión. */ $textoFirmaConclusion = 'Pendiente'; $claseFirmaConclusion = 'warning'; if ($requisicionNoAprobada) { $textoFirmaConclusion = 'N/A'; $claseFirmaConclusion = 'danger'; } elseif ($firmaConclusion === 1) { $textoFirmaConclusion = 'Concluido'; $claseFirmaConclusion = 'success'; } @endphp @if ($puedeVerRegistro) @endif @endforeach @else @endif
No. de requisición Área de negocio Fecha de solicitud Solicitante Carácter Nombre del producto Proveedor Tipo pago Estatus de aprobación Fecha estimada de entrega de proveedor Fecha para realizar pago Estatus de pago Estatus y firma de inspección Firma conclusión de compra Acciones
{{ $dato->id_requisicion_reporte }} @if($usuarioEsAdministradorRequisiciones && ($esRequisicionAdminPropia || $esRequisicionAdminLinea || $esRequisicionAdminParaPago))
@if($esRequisicionAdminPropia) Mi requisición @endif @if($esRequisicionAdminLinea) Mi línea @endif @if($esRequisicionAdminParaPago) Para pago @endif
@endif
{{ $areaNegocio }} {{ $fechaSolicitud }} {{ $nombreSolicitante }} {{ $dato->caracter }} @php $hayConceptos = false; @endphp
    @foreach($dato->conceptos as $concepto) @if(isset($concepto->nombre) && trim($concepto->nombre) !== '') @php $hayConceptos = true; @endphp
  • {{ $concepto->nombre }}
  • @endif @endforeach
@if(!$hayConceptos) N/A @endif
{{ $proveedor }} {{ $tipoPago }} @switch((int) $dato->estatus) @case(0) No aprobado @if($fechaAprobacion)
{{ $fechaAprobacion }} @endif
@break @case(1) Pendiente @break @case(2) Aprobado @if($fechaAprobacion)
{{ $fechaAprobacion }} @endif
@break @default Pendiente @endswitch
@if($requisicionNoAprobada) N/A @elseif($fechaEntregaPendiente) {{ $fechaEntregaPendiente }} @else Sin pendiente @endif @if($requisicionNoAprobada) N/A @elseif($fechaPagoPendiente) {{ $fechaPagoPendiente }} @else Sin pendiente @endif {{ $estatusPagoTexto }} @if($resumenPago)
{{ $resumenPago }} @endif
{{ $textoInspeccionFirma }} @if(!$requisicionNoAprobada && $resumenInspeccion)
{{ $resumenInspeccion }} @endif
{{ $textoFirmaConclusion }}
@if( (isset($permisos->verqr) && $permisos->verqr == 1) || (isset($permisos->actualizar) && $permisos->actualizar == 1) || (isset($permisos->gerente) && $permisos->gerente == 1) || (isset($permisos->administrador) && $permisos->administrador == 1) ) @endif @if ((isset($permisos->actualizar) && $permisos->actualizar == 1) || (isset($permisos->gerente) && $permisos->gerente == 1)) @endif @if ((isset($permisos->eliminar) && $permisos->eliminar == 1) || (isset($permisos->gerente) && $permisos->gerente == 1)) @endif
No se encontraron registros que coincidan con la búsqueda.
{{ $datos_reportes->appends(request()->query())->links('pagination::bootstrap-4') }}
@include('fragments.back', ['url' => 'requisicion_compras'])