From 06a5f64fb29a1362b2bd075c0c9690bfe9f43d88 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 2 Jun 2026 17:07:50 -0400 Subject: [PATCH] juridico --- juridico/actions/document_download.php | 50 +++++ juridico/actions/document_upload.php | 56 ++++++ juridico/actions/login_action.php | 35 ++++ juridico/actions/user_create.php | 40 ++++ juridico/config/database.php | 11 ++ juridico/dashboard.php | 156 ++++++++++++++++ juridico/database/juridico.sqlite | Bin 0 -> 20480 bytes juridico/document_add.php | 104 +++++++++++ juridico/documents.php | 171 ++++++++++++++++++ juridico/includes/auth.php | 39 ++++ juridico/includes/footer.php | 15 ++ juridico/includes/header.php | 103 +++++++++++ juridico/index.php | 95 ++++++++++ juridico/logout.php | 6 + juridico/public/css/style.css | 57 ++++++ juridico/setup.php | 56 ++++++ .../uploads/doc_6a1dea56a6af8_1780345430.docx | Bin 0 -> 49187 bytes juridico/users.php | 143 +++++++++++++++ 18 files changed, 1137 insertions(+) create mode 100644 juridico/actions/document_download.php create mode 100644 juridico/actions/document_upload.php create mode 100644 juridico/actions/login_action.php create mode 100644 juridico/actions/user_create.php create mode 100644 juridico/config/database.php create mode 100644 juridico/dashboard.php create mode 100644 juridico/database/juridico.sqlite create mode 100644 juridico/document_add.php create mode 100644 juridico/documents.php create mode 100644 juridico/includes/auth.php create mode 100644 juridico/includes/footer.php create mode 100644 juridico/includes/header.php create mode 100644 juridico/index.php create mode 100644 juridico/logout.php create mode 100644 juridico/public/css/style.css create mode 100644 juridico/setup.php create mode 100644 juridico/uploads/doc_6a1dea56a6af8_1780345430.docx create mode 100644 juridico/users.php diff --git a/juridico/actions/document_download.php b/juridico/actions/document_download.php new file mode 100644 index 0000000..719b146 --- /dev/null +++ b/juridico/actions/document_download.php @@ -0,0 +1,50 @@ +prepare("SELECT file_path, title FROM documents WHERE id = :id"); + $stmt->execute(['id' => $id]); + $doc = $stmt->fetch(); + + if ($doc) { + $file_path = '../uploads/' . $doc['file_path']; + + if (file_exists($file_path)) { + $ext = pathinfo($doc['file_path'], PATHINFO_EXTENSION); + $download_name = preg_replace('/[^a-zA-Z0-9_-]/', '_', $doc['title']) . '.' . $ext; + + header('Content-Description: File Transfer'); + header('Content-Type: application/octet-stream'); + header('Content-Disposition: attachment; filename="' . $download_name . '"'); + header('Expires: 0'); + header('Cache-Control: must-revalidate'); + header('Pragma: public'); + header('Content-Length: ' . filesize($file_path)); + + ob_clean(); + flush(); + readfile($file_path); + exit; + } else { + $_SESSION['error'] = 'El archivo físico no se encuentra en el servidor.'; + } + } else { + $_SESSION['error'] = 'Documento no encontrado.'; + } + } catch (PDOException $e) { + $_SESSION['error'] = 'Error al consultar la base de datos.'; + } +} else { + $_SESSION['error'] = 'ID de documento no proporcionado.'; +} + +header('Location: ../documents.php'); +exit; +?> diff --git a/juridico/actions/document_upload.php b/juridico/actions/document_upload.php new file mode 100644 index 0000000..78c20ee --- /dev/null +++ b/juridico/actions/document_upload.php @@ -0,0 +1,56 @@ +prepare("INSERT INTO documents (reference_number, title, description, type, file_path, uploaded_by) VALUES (:ref, :title, :desc, :type, :path, :user_id)"); + $stmt->execute([ + 'ref' => $reference_number, + 'title' => $title, + 'desc' => $description, + 'type' => $type, + 'path' => $filename, + 'user_id' => $uploaded_by + ]); + $_SESSION['success'] = 'Documento registrado y subido correctamente.'; + } catch (PDOException $e) { + $_SESSION['error'] = 'Error al registrar en la base de datos.'; + if (file_exists($dest_path)) unlink($dest_path); + } + } else { + $_SESSION['error'] = 'Error al mover el archivo subido al servidor.'; + } + } else { + $_SESSION['error'] = 'Debe seleccionar un archivo válido.'; + } + + header('Location: ../documents.php'); + exit; +} +?> diff --git a/juridico/actions/login_action.php b/juridico/actions/login_action.php new file mode 100644 index 0000000..646fc16 --- /dev/null +++ b/juridico/actions/login_action.php @@ -0,0 +1,35 @@ +prepare("SELECT * FROM users WHERE username = :username"); + $stmt->execute(['username' => $username]); + $user = $stmt->fetch(); + + if ($user && password_verify($password, $user['password'])) { + $_SESSION['user_id'] = $user['id']; + $_SESSION['user_name'] = $user['name']; + $_SESSION['user_role'] = $user['role']; + + header('Location: ../dashboard.php'); + exit; + } else { + $_SESSION['error'] = 'Usuario o contraseña incorrectos.'; + header('Location: ../index.php'); + exit; + } + } catch (PDOException $e) { + $_SESSION['error'] = 'Error del sistema. Contacte al administrador.'; + header('Location: ../index.php'); + exit; + } +} else { + header('Location: ../index.php'); + exit; +} +?> diff --git a/juridico/actions/user_create.php b/juridico/actions/user_create.php new file mode 100644 index 0000000..a5883de --- /dev/null +++ b/juridico/actions/user_create.php @@ -0,0 +1,40 @@ +prepare("INSERT INTO users (username, password, name, role) VALUES (:username, :password, :name, :role)"); + $stmt->execute([ + 'username' => $username, + 'password' => $password, + 'name' => $name, + 'role' => $role + ]); + $_SESSION['success'] = 'Usuario creado correctamente.'; + } catch (PDOException $e) { + if ($e->getCode() == 23000) { // UNIQUE constraint failed + $_SESSION['error'] = 'El nombre de usuario ya existe.'; + } else { + $_SESSION['error'] = 'Error al crear el usuario. Código: ' . $e->getCode(); + } + } + + header('Location: ../users.php'); + exit; +} diff --git a/juridico/config/database.php b/juridico/config/database.php new file mode 100644 index 0000000..390545f --- /dev/null +++ b/juridico/config/database.php @@ -0,0 +1,11 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); +} catch (PDOException $e) { + die("Error de conexión a la base de datos: " . $e->getMessage()); +} +?> diff --git a/juridico/dashboard.php b/juridico/dashboard.php new file mode 100644 index 0000000..701813e --- /dev/null +++ b/juridico/dashboard.php @@ -0,0 +1,156 @@ + 0, + 'entradas' => 0, + 'salidas' => 0, + 'archivos' => 0, + 'usuarios' => 0 +]; + +try { + $stmt = $db->query("SELECT type, COUNT(*) as count FROM documents GROUP BY type"); + while ($row = $stmt->fetch()) { + if ($row['type'] == 'entrada') $stats['entradas'] = $row['count']; + if ($row['type'] == 'salida') $stats['salidas'] = $row['count']; + if ($row['type'] == 'archivo_interno') $stats['archivos'] = $row['count']; + $stats['total'] += $row['count']; + } + + $stmt = $db->query("SELECT COUNT(*) FROM users"); + $stats['usuarios'] = $stmt->fetchColumn(); + + // Documentos recientes + $stmt = $db->query("SELECT d.*, u.name as user_name FROM documents d LEFT JOIN users u ON d.uploaded_by = u.id ORDER BY d.created_at DESC LIMIT 5"); + $recent_docs = $stmt->fetchAll(); +} catch (PDOException $e) { + $error = "Error al cargar las estadísticas."; +} +?> + +
+

Panel de Control

+

Resumen de la actividad del departamento de Consultoría Jurídica.

+
+ + +
+

+
+ + + +
+ +
+
+

Total Registros

+
+ +
+
+

+
+ + +
+
+

Oficios Entrada

+
+ +
+
+

+
+ + +
+
+

Oficios Salida

+
+ +
+
+

+
+ + +
+
+

Usuarios Activos

+
+ +
+
+

+
+
+ + +
+
+

Documentos Recientes

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Referencia / ExpedienteAsuntoTipoFecha Registro
No hay documentos registrados aún.
+ + + + + +

+

Por:

+
+ 'bg-emerald-100 text-emerald-800 border-emerald-200', + 'salida' => 'bg-amber-100 text-amber-800 border-amber-200', + 'archivo_interno' => 'bg-slate-100 text-slate-800 border-slate-200' + ]; + $typeLabels = [ + 'entrada' => 'Entrada', + 'salida' => 'Salida', + 'archivo_interno' => 'Archivo Interno' + ]; + $class = $typeClasses[$doc['type']] ?? 'bg-gray-100 text-gray-800 border-gray-200'; + $label = $typeLabels[$doc['type']] ?? ucfirst($doc['type']); + ?> + + + + + +
+
+
+ + diff --git a/juridico/database/juridico.sqlite b/juridico/database/juridico.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..4f915ffe71c3fa6f0f9e9d51e850883ae7e39792 GIT binary patch literal 20480 zcmeI)O>f&a7yw|(cG|dU;#~@3+aU}PAU2w1vK?n>fC2MdCNtu%*mBVn7z9S5Qlhe` zP*R&5Gi=xo+E3Vd|6}JJh8=bosU&vnbpeJI!#cc#WK*OlN)KNM5dAScYV(+3PslNi zaSeTd3RewvYTYwWbSy+p)LEP<-%_$xAZ$&`MU7a%96@J0s#;J z0T2KI5C8!X009vA*9E?Pn7dzGT{XTxjp>QcT;U{R7R1pcv(OxnhDET|__9s#q!^bT z;9H5ixYf1D0U6-_pw(#%j`1Nm#*LBHYjxETI;3lD&a{xsW0D09vx8)O!X&oHa|?HS zY8|!Pv-`$8_Ss!KxGZuc4`VKZbho+Y7vWrM-293(4@h!rVxwH1J+4Dzb}Hn>Te|eP&+L%KFYh|*B=iM!nQNb1-0019AerjI zwbfJEQ#A%wt3&WpvfmiBE!-Rp1`5^Ig+r^+>CZOZ?+r-npsPorbgQ2-9*}*a8aBxg zClQlTiM!>=z?A#hd&S3(jpH;JqBCDT7upd!OY}g^ZRTbIW3I9k&@tOoEz94Gjr+x7 z(fIC3dd#%X^d&RXJ}vskL8XtPd%jX1bz4Ux@)t1`(kOZ(q>3Ta!#${F+BX>SBG`e~zxdGx*aHENAW&KQ9`H2QE9m9u=CzBHgxA zX1kKUW!24QQQvTu)oK(Hq!vgZ00JNY0w4eaAOHd&00JNY0w4ea?^57$(O5)lmkS4L zwdowedi7$xVy+K6yKxlzW?XN)2%l}678lP0cGx*T6)(KASD%tMht8Jld(C>__T=$V zmwL~dLp{@g8+xjNM|w6(NZgk^aCk`lX%|(qy7P&tmI|&s*{hj*74w0*E~D@ZQVS#y z009sH0T2KI5C8!X009sH0T2Lz|Bb+Mb}c`h640OjX9_=~!msKD5(t0*2!H?xfB*=9 z00@8p2!H?xfWUh#@Gz5I%};*8vuI?C`SgbXSKt2^s36|!%Y%~#0T2KI5C8!X009sH z0T2KI5CDPylECGPv4kFdc$xng_3|~-G%Ld64i}P*S;T+*A;2!f>^x*HSAR>vuw;%1 zgu};rQ|L+>#QZd2E_L;mm-sXg*Z*Ll9`EfPT5%bz@6a9U?b?;kcFo#$eY<9Esmk+P O-~X?gd)3-r-TVX62#{w0 literal 0 HcmV?d00001 diff --git a/juridico/document_add.php b/juridico/document_add.php new file mode 100644 index 0000000..7579c6a --- /dev/null +++ b/juridico/document_add.php @@ -0,0 +1,104 @@ + + +
+
+ + + +
+

Registrar Documento

+

Ingreso de nuevos oficios o expedientes al archivo digital.

+
+
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+ +
+ +
+

PDF, Word o Imágenes hasta 10MB

+
+
+
+
+
+ +
+ + Cancelar + + +
+
+
+ + + + diff --git a/juridico/documents.php b/juridico/documents.php new file mode 100644 index 0000000..a3c8bbc --- /dev/null +++ b/juridico/documents.php @@ -0,0 +1,171 @@ +prepare($query); + $stmt->execute($params); + $documents = $stmt->fetchAll(); +} catch (PDOException $e) { + $error = "Error al cargar los documentos."; +} +?> + +
+
+

Archivos y Expedientes

+

Consulta y gestiona el archivo digital de la dirección.

+
+ + + + Registrar Oficio + + +
+ + +
+
+
+
+
+ +
+ +
+
+
+ +
+ + + + Limpiar + + +
+
+ + +
+

+
+ + +
+

+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Referencia / ExpedienteAsuntoClasificaciónRegistrado porAcciones
+
+ +

No se encontraron documentos.

+

Ajusta los filtros o registra un nuevo oficio.

+
+
+ + + + +
+ + +
+
+

+

+
+ 'bg-emerald-100 text-emerald-800 border-emerald-200', + 'salida' => 'bg-amber-100 text-amber-800 border-amber-200', + 'archivo_interno' => 'bg-slate-100 text-slate-800 border-slate-200' + ]; + $typeLabels = [ + 'entrada' => 'Entrada', + 'salida' => 'Salida', + 'archivo_interno' => 'Archivo Interno' + ]; + $class = $typeClasses[$doc['type']] ?? 'bg-gray-100'; + $label = $typeLabels[$doc['type']] ?? ucfirst($doc['type']); + ?> + + '; ?> + '; ?> + '; ?> + + + +
+
+ +
+ +
+
+ + Descargar + +
+
+
+ + diff --git a/juridico/includes/auth.php b/juridico/includes/auth.php new file mode 100644 index 0000000..73ba852 --- /dev/null +++ b/juridico/includes/auth.php @@ -0,0 +1,39 @@ + 'Super Administrador', + 'admin' => 'Administrador', + 'supervisor' => 'Supervisor', + 'user' => 'Usuario Normal' + ]; + return $roles[$_SESSION['user_role']] ?? 'Desconocido'; +} +?> diff --git a/juridico/includes/footer.php b/juridico/includes/footer.php new file mode 100644 index 0000000..b004804 --- /dev/null +++ b/juridico/includes/footer.php @@ -0,0 +1,15 @@ + + + + + + diff --git a/juridico/includes/header.php b/juridico/includes/header.php new file mode 100644 index 0000000..0fec434 --- /dev/null +++ b/juridico/includes/header.php @@ -0,0 +1,103 @@ + + + + + + + Consultoría Jurídica - Gestión de Documentos + + + + + + + + + + + + +
+ +
+
+ + DIR. JURÍDICA +
+ +
+ + +
diff --git a/juridico/index.php b/juridico/index.php new file mode 100644 index 0000000..962858d --- /dev/null +++ b/juridico/index.php @@ -0,0 +1,95 @@ + + + + + + + Acceso - Consultoría Jurídica + + + + + + + + +
+ +
+
+ +

SISTEMA JURÍDICO

+

Gestión de Documentos

+
+ + +
+
+
+ +
+
+

+ +

+
+
+
+ + +
+
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+ + diff --git a/juridico/logout.php b/juridico/logout.php new file mode 100644 index 0000000..e5ab4b6 --- /dev/null +++ b/juridico/logout.php @@ -0,0 +1,6 @@ + diff --git a/juridico/public/css/style.css b/juridico/public/css/style.css new file mode 100644 index 0000000..747c984 --- /dev/null +++ b/juridico/public/css/style.css @@ -0,0 +1,57 @@ +/* Custom Scrollbar */ +.custom-scrollbar::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +.custom-scrollbar::-webkit-scrollbar-track { + background: transparent; +} + +.custom-scrollbar::-webkit-scrollbar-thumb { + background-color: #cbd5e1; + border-radius: 20px; +} + +.custom-scrollbar::-webkit-scrollbar-thumb:hover { + background-color: #94a3b8; +} + +aside .custom-scrollbar::-webkit-scrollbar-thumb { + background-color: #334155; +} + +aside .custom-scrollbar::-webkit-scrollbar-thumb:hover { + background-color: #475569; +} + +/* Animations */ +@keyframes fadeIn { + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } +} + +.animate-fade-in { + animation: fadeIn 0.4s ease-out forwards; +} + +.animate-fade-in-delayed { + animation: fadeIn 0.4s ease-out 0.15s forwards; + opacity: 0; +} + +/* Form inputs focus ring override to match accent color */ +input:focus, textarea:focus, select:focus { + outline: none; + box-shadow: 0 0 0 2px rgba(194, 65, 12, 0.2); + border-color: #c2410c; +} + +/* Glass effect for modal/cards if needed */ +.glass-card { + background: rgba(255, 255, 255, 0.95); + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.2); + box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.05); +} diff --git a/juridico/setup.php b/juridico/setup.php new file mode 100644 index 0000000..5473a34 --- /dev/null +++ b/juridico/setup.php @@ -0,0 +1,56 @@ +exec($query); + } + + // Crear Super Administrador por defecto si no existe + $stmt = $db->prepare("SELECT COUNT(*) FROM users WHERE username = 'superadmin'"); + $stmt->execute(); + if ($stmt->fetchColumn() == 0) { + $password = password_hash('superadmin123', PASSWORD_DEFAULT); + $stmt = $db->prepare("INSERT INTO users (username, password, name, role) VALUES ('superadmin', :password, 'Super Administrador Principal', 'superadmin')"); + $stmt->execute(['password' => $password]); + echo "Usuario superadmin creado con éxito. Contraseña: superadmin123\n"; + } + + echo "Base de datos inicializada correctamente.\n"; +} catch (PDOException $e) { + die("Error inicializando la base de datos: " . $e->getMessage()); +} +?> diff --git a/juridico/uploads/doc_6a1dea56a6af8_1780345430.docx b/juridico/uploads/doc_6a1dea56a6af8_1780345430.docx new file mode 100644 index 0000000000000000000000000000000000000000..8f088c6ffd936940b341ff9bab0cdcf1d53034e4 GIT binary patch literal 49187 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 literal 0 HcmV?d00001 diff --git a/juridico/users.php b/juridico/users.php new file mode 100644 index 0000000..93ebce5 --- /dev/null +++ b/juridico/users.php @@ -0,0 +1,143 @@ +query("SELECT * FROM users ORDER BY created_at DESC"); + $users = $stmt->fetchAll(); +} catch (PDOException $e) { + $error = "Error al cargar los usuarios."; +} +?> + +
+
+

Gestión de Usuarios

+

Administra el acceso al sistema de Consultoría Jurídica.

+
+ +
+ + +
+

+
+ + +
+

+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
Nombre / UsuarioRol de AccesoFecha CreaciónAcciones
+
+
+ +
+
+

+

@

+
+
+
+ 'bg-purple-100 text-purple-800 border-purple-200', + 'admin' => 'bg-blue-100 text-blue-800 border-blue-200', + 'supervisor' => 'bg-amber-100 text-amber-800 border-amber-200', + 'user' => 'bg-slate-100 text-slate-800 border-slate-200' + ]; + $roleLabels = [ + 'superadmin' => 'Super Admin', + 'admin' => 'Administrador', + 'supervisor' => 'Supervisor', + 'user' => 'Usuario Normal' + ]; + $class = $roleClasses[$u['role']] ?? 'bg-gray-100'; + $label = $roleLabels[$u['role']] ?? $u['role']; + ?> + + + + + + + + + +
+
+
+ + + + +