TIMEZONE
* OS: timedatectl set-timezone America/Panama (era UTC). El reporte
de horas salía vacío para entries creados después de las 19:00 hora
Panama porque el filtro "este mes" del frontend usa local time pero
los datos se guardaban en UTC del día siguiente.
* MariaDB y PHP ahora corren en hora Panamá:
- src/Db.php hace SET time_zone='-05:00' por conexión.
- src/Config.php hace date_default_timezone_set('America/Panama').
* Migración 009: convierte timestamps existentes UTC → Panama usando
CONVERT_TZ en todas las tablas con DATETIME (users, escrituras_*,
tramites_*).
EDIT/DELETE DE HORAS
* Backend tramites/api.php: nuevos endpoints
- PUT ?action=update_hours: cambia abogado, hrs y descripción
- DELETE ?action=delete_hours
Permisos: solo el autor_email original (quien registró) o un
Socio/Admin puede editar/eliminar. También se valida canView().
* Frontend tramites.html: cada entrada de horas ahora muestra botones
✎ (editar) y ✕ (eliminar) al lado de la fecha, visibles solo para
quien tiene permiso. Editar abre un modal pequeño dedicado con los
mismos campos (abogado dropdown, horas dropdown 15-min, descripción).
34 lines
1.8 KiB
SQL
34 lines
1.8 KiB
SQL
-- ============================================================
|
|
-- Donna — Schema 009: Convertir timestamps UTC → America/Panama
|
|
-- ============================================================
|
|
-- Hasta aquí la app corrió con OS, MariaDB y PHP en UTC, pero los
|
|
-- usuarios viven en Panamá (UTC-5). Causa: filtros de fecha en frontend
|
|
-- (basados en hora local) excluían entries creados después de las
|
|
-- 19:00 hora Panama porque su DATETIME en UTC ya era del día siguiente.
|
|
--
|
|
-- Aplicado junto con:
|
|
-- - timedatectl set-timezone America/Panama (OS)
|
|
-- - SET time_zone = '-05:00' por conexión (src/Db.php)
|
|
-- - date_default_timezone_set('America/Panama') en src/Config.php
|
|
|
|
UPDATE users
|
|
SET first_seen_at = CASE WHEN first_seen_at IS NOT NULL THEN CONVERT_TZ(first_seen_at, '+00:00', '-05:00') ELSE first_seen_at END,
|
|
last_login_at = CASE WHEN last_login_at IS NOT NULL THEN CONVERT_TZ(last_login_at, '+00:00', '-05:00') ELSE last_login_at END;
|
|
|
|
UPDATE escrituras_tramites
|
|
SET fecha_solicitud = CONVERT_TZ(fecha_solicitud, '+00:00', '-05:00'),
|
|
ultima_actualizacion = CONVERT_TZ(ultima_actualizacion, '+00:00', '-05:00'),
|
|
created_at = CONVERT_TZ(created_at, '+00:00', '-05:00');
|
|
|
|
UPDATE escrituras_historial
|
|
SET modificado_en = CONVERT_TZ(modificado_en, '+00:00', '-05:00');
|
|
|
|
UPDATE tramites_legales
|
|
SET fecha_solicitud = CONVERT_TZ(fecha_solicitud, '+00:00', '-05:00'),
|
|
created_at = CONVERT_TZ(created_at, '+00:00', '-05:00'),
|
|
updated_at = CONVERT_TZ(updated_at, '+00:00', '-05:00');
|
|
|
|
UPDATE tramites_obs SET fecha = CONVERT_TZ(fecha, '+00:00', '-05:00');
|
|
UPDATE tramites_hours SET fecha = CONVERT_TZ(fecha, '+00:00', '-05:00');
|
|
UPDATE tramites_involucrados SET added_at = CONVERT_TZ(added_at, '+00:00', '-05:00');
|