diff --git a/.DS_Store b/.DS_Store
index 4ef76c5..92f9c42 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/adminer/.DS_Store b/adminer/.DS_Store
deleted file mode 100644
index fac9b91..0000000
Binary files a/adminer/.DS_Store and /dev/null differ
diff --git a/app.py b/app.py
index 40e175b..e24cbf1 100755
--- a/app.py
+++ b/app.py
@@ -16,8 +16,8 @@ app.secret_key = 'clave-secreta-navbar-app'
# Límite máximo de subida: 5 MiB
# app.config['MAX_CONTENT_LENGTH'] = 5 * 1024 * 1024
-# DATABASE = 'database/pyfleet.db'
-DATABASE = 'database/auto.db'
+DATABASE = 'database/pyfleet.db'
+# DATABASE = 'database/auto.db'
PASSWORD_HASH = generate_password_hash('123')
diff --git a/auto.sqbpro b/auto.sqbpro
new file mode 100755
index 0000000..4c504ff
--- /dev/null
+++ b/auto.sqbpro
@@ -0,0 +1,231 @@
+DROP TABLE IF EXISTS ACCIDENTES;
+DROP TABLE IF EXISTS "CAMBIOS DE ACEITE";
+DROP TABLE IF EXISTS CONTRATO;
+DROP TABLE IF EXISTS "DEFINICIÓN DE TIPOS";
+DROP TABLE IF EXISTS Denominación;
+DROP TABLE IF EXISTS "Errores de pegado";
+DROP TABLE IF EXISTS "Estado Seguro";
+DROP TABLE IF EXISTS FACTURAS;
+DROP TABLE IF EXISTS FUNCIONARIOS;
+DROP TABLE IF EXISTS "Grupo Asignado";
+DROP TABLE IF EXISTS HERRAMIENTAS;
+DROP TABLE IF EXISTS "Historico destino";
+DROP TABLE IF EXISTS Hoja1;
+DROP TABLE IF EXISTS ITV;
+DROP TABLE IF EXISTS Incidencias;
+DROP TABLE IF EXISTS KILOMETROS;
+DROP TABLE IF EXISTS LIQUIDACION;
+DROP TABLE IF EXISTS MAQUINARIA;
+DROP TABLE IF EXISTS Marcas;
+DROP TABLE IF EXISTS Matriculas;
+DROP TABLE IF EXISTS Modelo;
+DROP TABLE IF EXISTS Multas;
+DROP TABLE IF EXISTS Neumaticos;
+DROP TABLE IF EXISTS Piezas;
+DROP TABLE IF EXISTS POBLACIONES;
+DROP TABLE IF EXISTS PROVEEDORES;
+DROP TABLE IF EXISTS Peticiones;
+DROP TABLE IF EXISTS Plantilla;
+DROP TABLE IF EXISTS RECIBO;
+DROP TABLE IF EXISTS REPARACIONES;
+DROP TABLE IF EXISTS REPUESTOS;
+DROP TABLE IF EXISTS "Situación Vehículo";
+DROP TABLE IF EXISTS "T_RESUMEN VEHICULOS COMISARIA PROVINCIAL";
+DROP TABLE IF EXISTS "T_RESUMEN VEHICULOS COMISARIAS LOCALES";
+DROP TABLE IF EXISTS Tipo;
+DROP TABLE IF EXISTS Unidades;
+DROP TABLE IF EXISTS VACACIONES;
+DROP TABLE IF EXISTS "VEHICULOS 10-01-10";
+DROP TABLE IF EXISTS "VEHICULOS 28-04-10";
+DROP TABLE IF EXISTS VEHICULOS_PTE;
+
+ALTER TABLE VEHICULOS RENAME TO "vehiculos_tmp";
+ALTER TABLE "vehiculos_tmp" RENAME TO vehiculos;
+
+ALTER TABLE vehiculos DROP COLUMN "Número de Identificación";
+ALTER TABLE vehiculos DROP COLUMN "Nº Cilindros/Cilindrada";
+ALTER TABLE vehiculos DROP COLUMN Potencia;
+ALTER TABLE vehiculos DROP COLUMN "Medidas neumaticos";
+ALTER TABLE vehiculos DROP COLUMN "Fecha Destino/Situación";
+ALTER TABLE vehiculos DROP COLUMN Seguro;
+ALTER TABLE vehiculos DROP COLUMN Denominación;
+ALTER TABLE vehiculos DROP COLUMN Grupo;
+ALTER TABLE vehiculos DROP COLUMN Foto_asignada;
+
+ALTER TABLE vehiculos RENAME COLUMN "Matrícula Oficial (DGP)" TO m_oficial;
+ALTER TABLE vehiculos RENAME COLUMN "Nº ficha" TO legajo;
+ALTER TABLE vehiculos RENAME COLUMN "Matrícula Civil" TO m_reservada;
+ALTER TABLE vehiculos RENAME COLUMN PMM TO m_propia;
+ALTER TABLE vehiculos RENAME COLUMN Población TO poblacion;
+ALTER TABLE vehiculos RENAME COLUMN Marca TO marca;
+ALTER TABLE vehiculos RENAME COLUMN Modelo TO modelo;
+ALTER TABLE vehiculos RENAME COLUMN Tipo TO tipo;
+ALTER TABLE vehiculos RENAME COLUMN Color TO color;
+ALTER TABLE vehiculos RENAME COLUMN "Número de bastidor" TO VIN;
+ALTER TABLE vehiculos RENAME COLUMN "Fecha de Alta" TO f_alta;
+ALTER TABLE vehiculos RENAME COLUMN "Fecha de Baja" TO f_baja;
+ALTER TABLE vehiculos RENAME COLUMN "Situación veh" TO situacion;
+ALTER TABLE vehiculos RENAME COLUMN Kilometros TO km;
+ALTER TABLE vehiculos RENAME COLUMN "Kilometros a dia 1" TO km_1;
+ALTER TABLE vehiculos RENAME COLUMN "Tipo de Combustible" TO combustible;
+ALTER TABLE vehiculos RENAME COLUMN "Número de plazas" TO plazas;
+ALTER TABLE vehiculos RENAME COLUMN "Ultima ITV" TO itv_ultima;
+ALTER TABLE vehiculos RENAME COLUMN "Tipo ITV" TO itv;
+ALTER TABLE vehiculos RENAME COLUMN Departamento TO unidad;
+ALTER TABLE vehiculos RENAME COLUMN "Número de Poliza" TO poliza;
+
+ALTER TABLE vehiculos ADD COLUMN id INTEGER;
+ALTER TABLE vehiculos ADD COLUMN lanzadestellos INTEGER;
+ALTER TABLE vehiculos ADD COLUMN grupo TEXT;
+ALTER TABLE vehiculos ADD COLUMN viat TEXT;
+ALTER TABLE vehiculos ADD COLUMN int_operacion TEXT;
+ALTER TABLE vehiculos ADD COLUMN int_grupo TEXT;
+ALTER TABLE vehiculos ADD COLUMN int_juzgado TEXT;
+ALTER TABLE vehiculos ADD COLUMN int_procedimiento TEXT;
+ALTER TABLE vehiculos ADD COLUMN notas TEXT;
+
+UPDATE vehiculos SET notas = TRIM(COALESCE(observaciones, '') || ' ' || COALESCE(historial, ''));
+
+ALTER TABLE vehiculos DROP COLUMN observaciones;
+ALTER TABLE vehiculos DROP COLUMN historial;
+
+UPDATE vehiculos
+SET lanzadestellos = 1
+WHERE notas LIKE '%SAMCO%';
+
+UPDATE vehiculos SET f_alta = substr(f_alta, 1, 10);
+UPDATE vehiculos SET f_baja = substr(f_baja, 1, 10);
+
+UPDATE vehiculos
+SET situacion = CASE
+ WHEN f_baja IS NULL OR f_baja = '' THEN 'ACTIVO'
+ ELSE 'BAJA'
+END;
+
+UPDATE vehiculos
+SET viat = substr(
+ notas,
+ instr(lower(notas), 'viat '),
+ 24
+)
+WHERE instr(lower(notas), 'viat ') > 0;
+
+
+UPDATE vehiculos SET unidad = 'BPEF' WHERE unidad = 'B.P.E. y F.';
+UPDATE vehiculos SET unidad = 'BPI' WHERE unidad = 'B.P.I.';
+UPDATE vehiculos SET unidad = 'BPPC' WHERE unidad = 'B.P.P.C.';
+UPDATE vehiculos SET unidad = 'BPSC' WHERE unidad = 'B.P.S.C.';
+UPDATE vehiculos SET unidad = 'BPSC' WHERE unidad = 'Seg. Ciudadana' AND poblacion = 'MALAGA';
+UPDATE vehiculos SET unidad = 'BLSC' WHERE unidad = 'Seg. Ciudadana' AND poblacion != 'MALAGA';
+UPDATE vehiculos SET unidad = 'BPSC' WHERE unidad = 'SEG. CIUDADANA';
+UPDATE vehiculos SET unidad = 'BPSC' WHERE unidad = 'B.P.S.C. K';
+UPDATE vehiculos SET unidad = 'DISTRITO CENTRO' WHERE unidad = 'DTO. CENTRO';
+UPDATE vehiculos SET unidad = 'DISTRITO ESTE' WHERE unidad = 'DTO. ESTE';
+UPDATE vehiculos SET unidad = 'DISTRITO NORTE' WHERE unidad = 'DTO. NORTE';
+UPDATE vehiculos SET unidad = 'DISTRITO OESTE' WHERE unidad = 'DTO. OESTE';
+UPDATE vehiculos SET unidad = 'UCOP - GOES' WHERE unidad = 'G.O.E.S.';
+UPDATE vehiculos SET unidad = 'UDEF - IPLA' WHERE unidad = 'I.P.L.A.';
+UPDATE vehiculos SET unidad = 'SECRETARIA GENERAL - NUCLEO RESERVA' WHERE unidad = 'NUCLEO DE RESERVA';
+UPDATE vehiculos SET unidad = 'SECRETARIA GENERAL' WHERE unidad = 'SECRETARIA G.';
+UPDATE vehiculos SET unidad = '' WHERE unidad = 'SUSTITUCION';
+UPDATE vehiculos SET unidad = 'AUTOMOCION' WHERE unidad = 'TALLER AUTOMOCION';
+UPDATE vehiculos SET unidad = 'UCOP - GABINETE TECNICO' WHERE unidad = 'U.C.O.P. - GABINETE TÉCNICO';
+UPDATE vehiculos SET unidad = 'UCOP - GOTHAM' WHERE unidad = 'U.C.O.P. - GOTHAM';
+UPDATE vehiculos SET unidad = 'UCOP - HELICOPTEROS' WHERE unidad = 'U.C.O.P. - HELICOPTEROS';
+UPDATE vehiculos SET unidad = 'UCOP' WHERE unidad = 'U.C.O.P. - JEFES';
+UPDATE vehiculos SET unidad = 'UCOP - OMEGA' WHERE unidad = 'U.C.O.P. - OMEGA';
+UPDATE vehiculos SET unidad = 'UCOP - SISTEMAS ESPECIALES' WHERE unidad = 'U.C.O.P. - SISTEMAS';
+UPDATE vehiculos SET unidad = 'UCOP - UVAO' WHERE unidad = 'U.C.O.P. - UVAO';
+UPDATE vehiculos SET unidad = 'UDEF' WHERE unidad = 'U.D.E.F.';
+UPDATE vehiculos SET unidad = 'BPPJ - UDEV ' WHERE unidad = 'U.D.E.V.' AND poblacion = 'MALAGA';
+UPDATE vehiculos SET unidad = 'BLPJ - UDEV' WHERE unidad = 'U.D.E.V.' AND poblacion != 'MALAGA';
+UPDATE vehiculos SET unidad = 'UIP' WHERE unidad = 'U.I.P.';
+UPDATE vehiculos SET unidad = 'BPSC - UPR' WHERE unidad = 'U.P.R.' AND poblacion = 'MALAGA';
+UPDATE vehiculos SET unidad = 'BLSC - UPR' WHERE unidad = 'U.P.R.' AND poblacion != 'MALAGA';
+UPDATE vehiculos SET unidad = 'BPSC - UPR 1' WHERE unidad = 'U.P.R.-1';
+UPDATE vehiculos SET unidad = 'BPSC - UPR 2' WHERE unidad = 'U.P.R.-2';
+UPDATE vehiculos SET unidad = 'UDYCO' WHERE unidad = 'udyco - Costa del Sol';
+UPDATE vehiculos SET unidad = 'BLSC' WHERE unidad = 'B.L.S.C.';
+UPDATE vehiculos SET unidad = 'BLPJ' WHERE unidad = 'B.L.P.J.';
+UPDATE vehiculos SET unidad = 'BLI' WHERE unidad = 'B.L.I.';
+UPDATE vehiculos SET unidad = 'BLPC' WHERE unidad = 'B.L.P.C.';
+UPDATE vehiculos SET unidad = 'BLEF' WHERE unidad = 'B.L.E. y F.';
+UPDATE vehiculos SET unidad = 'UCOL' WHERE unidad = 'U.C.O.L.';
+UPDATE vehiculos SET unidad = 'JEFATURA COMISARIA' WHERE unidad = 'JEFE COMISARÍA';
+UPDATE vehiculos SET unidad = 'UDYCO' WHERE unidad = 'udyco - Costa del Sol' AND poblacion != 'MALAGA';
+UPDATE vehiculos SET unidad = '' WHERE unidad = 'BAJA';
+UPDATE vehiculos SET unidad = '' WHERE unidad = 'ENAJ. DIRECTA MARZO 2025 BAJA ASIA';
+UPDATE vehiculos SET unidad = '' WHERE unidad = 'ENAJ. COCHES';
+UPDATE vehiculos SET unidad = '' WHERE unidad = 'DESTRUIDO' OR unidad = 'DESTRUCCION';
+UPDATE vehiculos SET unidad = '' WHERE unidad = 'BAJA EN ASIA' OR unidad = 'BAJA TEMPORAL' OR unidad = 'BANCO DE VEHCULOS' OR unidad = 'BAJA DEFINITIVA' OR unidad = 'BAJA ASIA Enaj. MOTOS' OR unidad = 'BAJA ASIA Enaj. COCHES';
+UPDATE vehiculos SET unidad = '' WHERE unidad LIKE '%CURSO%';
+
+
+CREATE TABLE documentos (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ vehiculo_id INTEGER NOT NULL REFERENCES vehiculos(id) ON DELETE CASCADE,
+ nombre TEXT,
+ filename TEXT NOT NULL,
+ fecha DATETIME DEFAULT (datetime('now','localtime'))
+ );
+
+
+CREATE TABLE mensajes (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ texto TEXT NOT NULL,
+ autor TEXT,
+ fecha DATETIME DEFAULT (datetime('now','localtime'))
+ );
+
+
+ALTER TABLE "Historial" RENAME TO "historial_tmp";
+ALTER TABLE "historial_tmp" RENAME TO "historial";
+
+ALTER TABLE historial RENAME COLUMN Matricula TO matricula;
+ALTER TABLE historial RENAME COLUMN Unidad TO unidad;
+ALTER TABLE historial RENAME COLUMN Cuando TO fecha;
+ALTER TABLE historial RENAME COLUMN Observaciones TO observaciones;
+ALTER TABLE historial ADD COLUMN id INTEGER;
+ALTER TABLE historial ADD COLUMN vehiculo_id INTEGER;
+ALTER TABLE historial ADD COLUMN situacion TEXT;
+ALTER TABLE historial ADD COLUMN poblacion TEXT;
+ALTER TABLE historial ADD COLUMN grupo TEXT;
+
+UPDATE historial SET fecha = substr(fecha, 1, 10);
+
+UPDATE vehiculos
+SET
+ m_oficial = NULLIF(m_oficial, 'none'),
+ m_reservada = NULLIF(m_reservada, 'none'),
+ m_propia = NULLIF(m_propia, 'none'),
+ VIN = NULLIF(VIN, 'none'),
+ poliza = NULLIF(poliza, 'none'),
+ viat = NULLIF(viat, 'none'),
+ legajo = NULLIF(legajo, 'none'),
+ marca = NULLIF(marca, 'none'),
+ modelo = NULLIF(modelo, 'none'),
+ tipo = NULLIF(tipo, 'none'),
+ color = NULLIF(color, 'none'),
+ combustible = NULLIF(combustible, 'none'),
+ plazas = NULLIF(plazas, 'none'),
+ situacion = NULLIF(situacion, 'none'),
+ poblacion = NULLIF(poblacion, 'none'),
+ unidad = NULLIF(unidad, 'none'),
+ grupo = NULLIF(grupo, 'none'),
+ int_operacion = NULLIF(int_operacion, 'none'),
+ int_grupo = NULLIF(int_grupo, 'none'),
+ int_juzgado = NULLIF(int_juzgado, 'none'),
+ int_procedimiento = NULLIF(int_procedimiento, 'none'),
+ f_alta = NULLIF(f_alta, 'none'),
+ f_baja = NULLIF(f_baja, 'none'),
+ km = NULLIF(km, 'none'),
+ km_1 = NULLIF(km_1, 'none'),
+ itv_ultima = NULLIF(itv_ultima, 'none'),
+ itv = NULLIF(itv, 'none'),
+ notas = NULLIF(notas, 'none');
+UPDATE historial
+SET vehiculo_id = (
+ SELECT id
+ FROM vehiculos
+ WHERE vehiculos.m_oficial = historial.matricula
+);
diff --git a/database/auto.db b/database/auto.db
deleted file mode 100755
index 0981ba8..0000000
Binary files a/database/auto.db and /dev/null differ
diff --git a/database/auto_test_update_datos.db b/database/auto_test_update_datos.db
deleted file mode 100755
index 6c3d981..0000000
Binary files a/database/auto_test_update_datos.db and /dev/null differ
diff --git a/database/pyfleet.db b/database/pyfleet.db
index cd82ded..0981ba8 100755
Binary files a/database/pyfleet.db and b/database/pyfleet.db differ
diff --git a/database/pyfleet_previo.db b/database/pyfleet_previo.db
new file mode 100755
index 0000000..cd82ded
Binary files /dev/null and b/database/pyfleet_previo.db differ
diff --git a/static/.DS_Store b/static/.DS_Store
deleted file mode 100644
index 04ab814..0000000
Binary files a/static/.DS_Store and /dev/null differ
diff --git a/templates/.DS_Store b/templates/.DS_Store
deleted file mode 100644
index d1d1265..0000000
Binary files a/templates/.DS_Store and /dev/null differ
diff --git a/templates/base copia.html b/templates/base copia.html
new file mode 100755
index 0000000..c0b726c
--- /dev/null
+++ b/templates/base copia.html
@@ -0,0 +1,880 @@
+
+
+
+
+
+ {% block title %}App{% endblock %} · PyFleet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{# Mensajes solo en página de inicio #}
+{% if page == 'inicio' %}
+ {% if mensajes %}
+
+
+ {% for m in mensajes %}
+
+
+
{{ m['fecha'] | fecha_es_hora }}
+
{{ m['texto'] }}
+
+
+
+ {% endfor %}
+
+ {% endif %}
+{% endif %}
+
+ {% with messages = get_flashed_messages(with_categories=true) %}
+ {% for category, message in messages %}
+ {{ message }}
+ {% endfor %}
+ {% endwith %}
+
+ {% block content %}{% endblock %}
+
+
+
+
+
+
+
+
+
diff --git a/templates/base.html b/templates/base.html
index c0b726c..71aa08c 100755
--- a/templates/base.html
+++ b/templates/base.html
@@ -701,13 +701,21 @@
{% if session.pop("animate_navbar", None) %}
class="animate__animated animate__backInUp"
{% endif %}>
+
+
 }})
+
-
-
+
PyFleet
@@ -857,7 +865,16 @@
function applyTheme(theme) {
html.setAttribute('data-theme', theme);
localStorage.setItem('nexus-theme', theme);
- }
+
+ var logo = document.getElementById('siteLogo');
+
+ if (theme === 'dark') {
+ logo.src = "{{ url_for('static', filename='img/logo_blanco.png') }}";
+ } else {
+ logo.src = "{{ url_for('static', filename='img/logo.png') }}";
+ }
+}
+
// Sync button state on load
applyTheme(localStorage.getItem('nexus-theme') || 'light');
diff --git a/templates/tablas/tipo.html b/templates/tablas/tipo.html
index 54cb16f..8c7a561 100755
--- a/templates/tablas/tipo.html
+++ b/templates/tablas/tipo.html
@@ -2,10 +2,42 @@
{% block title %}Denominación{% endblock %}
{% block content %}
+
+
-
+
+
diff --git a/templates/vehiculos/rows.html b/templates/vehiculos/rows.html
index e6a9df6..d9b9392 100755
--- a/templates/vehiculos/rows.html
+++ b/templates/vehiculos/rows.html
@@ -20,6 +20,10 @@
BAJA
+ {% elif r['situacion'] == 'ALTA'%}
+
+ {{ r['situacion'] }}
+
{% elif r['situacion'] %}
{{ r['situacion'] }}
diff --git a/uploads/.DS_Store b/uploads/.DS_Store
deleted file mode 100644
index 5008ddf..0000000
Binary files a/uploads/.DS_Store and /dev/null differ