Cómputo de Plazos Procesales

 

8. Cómputo de Plazos Procesales

El sistema debe integrar un módulo automatizado para el cómputo de plazos procesales, con el fin de auxiliar tanto a Oficialía de Partes como al personal del área de Causas en el seguimiento oportuno de solicitudes judiciales. Este módulo será fundamental para prevenir vencimientos y para calcular correctamente los días hábiles y naturales según la ley procesal aplicable.

🔹 8.1 Funciones principales

  • Calcular automáticamente el número de días entre f_registro y f_vence tomando en cuenta:

    • Días hábiles (excluyendo sábados, domingos y días inhábiles oficiales).

    • Días naturales (si aplica para ciertas solicitudes o documentos).

  • Mostrar:

    • Días restantes.

    • Fecha límite.

    • Indicador visual (verde, amarillo, rojo) según la proximidad del vencimiento.

  • Recalcular automáticamente al modificar la fecha de registro o la fecha límite.

🔹 8.2 Parámetros de configuración

  • Calendario judicial configurable desde una tabla dias_inhabiles que contenga:

    sql
    CREATE TABLE dias_inhabiles ( id INT AUTO_INCREMENT PRIMARY KEY, fecha DATE NOT NULL, descripcion VARCHAR(255) DEFAULT NULL );
  • Permitir gestión de días inhábiles por parte del Administrador del sistema.

🔹 8.3 Ejemplos de uso

  • Si una solicitud fue registrada el 01/07/2025 y tiene un vencimiento de 5 días hábiles, el sistema debe:

    • Excluir sábados, domingos y feriados judiciales.

    • Determinar la fecha exacta de vencimiento.

    • Mostrar al usuario:

      • "Faltan 3 días hábiles para vencer"

      • Barra de progreso correspondiente

      • Semáforo visual

🔹 8.4 Reportes y alertas

  • Generación de un reporte diario con solicitudes que:

    • Están por vencer (dentro de 3 días).

    • Ya vencieron.

  • Opción para que el personal reciba alertas al ingresar al sistema si tiene pendientes críticos.


¿Deseas que también genere el modelo de base de datos para días inhábiles y un ejemplo de función en PHP que calcule los plazos excluyendo fines de semana y feriados?

Perfecto. Vamos a crear una solución en PHP y MySQL que permita hacer el cómputo de plazos procesales, con las dos opciones:

  1. Plazos por días naturales (incluye sábados, domingos y feriados).

  2. Plazos por días hábiles (excluye sábados, domingos y días inhábiles de una tabla).


✅ Paso 1: Tabla dias_inhabiles

Primero, creamos la tabla en la base de datos para registrar los días feriados.

sql
CREATE TABLE dias_inhabiles ( id INT AUTO_INCREMENT PRIMARY KEY, fecha DATE NOT NULL UNIQUE, descripcion VARCHAR(255) );

Puedes insertar días inhábiles manualmente:

sql
INSERT INTO dias_inhabiles (fecha, descripcion) VALUES ('2025-01-01', 'Año Nuevo'), ('2025-05-01', 'Día del Trabajo'), ('2025-09-16', 'Día de la Independencia'), ('2025-11-20', 'Revolución Mexicana'), ('2025-12-25', 'Navidad');

✅ Paso 2: Función PHP para calcular plazos

php
function calcularFechaVencimiento($fechaInicio, $dias, $modo = 'habil', $conexion) { $fecha = new DateTime($fechaInicio); $agregados = 0; while ($agregados < $dias) { $fecha->modify('+1 day'); $esFinDeSemana = in_array($fecha->format('N'), [6, 7]); // 6 = sábado, 7 = domingo $esInhabil = false; if ($modo === 'habil') { // Consultar días inhábiles $sql = "SELECT COUNT(*) as total FROM dias_inhabiles WHERE fecha = ?"; $stmt = $conexion->prepare($sql); $stmt->bind_param('s', $fechaStr); $fechaStr = $fecha->format('Y-m-d'); $stmt->execute(); $result = $stmt->get_result()->fetch_assoc(); $esInhabil = $result['total'] > 0; } if ($modo === 'natural') { $agregados++; // suma todos los días } else if (!$esFinDeSemana && !$esInhabil) { $agregados++; // solo días hábiles } } return $fecha->format('Y-m-d'); }

✅ Paso 3: Ejemplo de uso

php
// Conexión a MySQL $conexion = new mysqli('localhost', 'root', '', 'despacho'); // Verifica conexión if ($conexion->connect_error) { die('Error de conexión: ' . $conexion->connect_error); } $fechaInicio = '2025-07-02'; $diasPlazo = 5; // Modo: 'habil' o 'natural' $modo = 'habil'; $fechaVencimiento = calcularFechaVencimiento($fechaInicio, $diasPlazo, $modo, $conexion); echo "Fecha de vencimiento ($modo): $fechaVencimiento";

✅ Paso 4: Posibles mejoras

  • Agregar un select en el formulario para elegir si es plazo natural o hábil.

  • Mostrar la cantidad de días restantes y colorear (verde, amarillo, rojo).

  • Mostrar calendario de días inhábiles en un módulo de configuración.


¿Quieres que te prepare una interfaz básica en Bootstrap para probar esta funcionalidad (con formulario y resultado visual)?

Comentarios

Entradas populares de este blog

Libro de gobierno

Sistema de Juzgado con Asignación Equitativa de Turnos

TURNOS