git pyfleet en gitea.xiberus

This commit is contained in:
2026-08-28 19:30:48 +02:00
commit 89992823b4
2133 changed files with 27616 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
Denominación
A-D
CL
ELE
F-D
F-K
K-D
K-R
M-K
M-U
M-Z
O-T
PTP
Q-F
Q-M
Q-T
Q-TT
S-K
S-U
TT-D
TT-K
UNI
Z-D
Z-R
1 Denominación
2 A-D
3 CL
4 ELE
5 F-D
6 F-K
7 K-D
8 K-R
9 M-K
10 M-U
11 M-Z
12 O-T
13 PTP
14 Q-F
15 Q-M
16 Q-T
17 Q-TT
18 S-K
19 S-U
20 TT-D
21 TT-K
22 UNI
23 Z-D
24 Z-R
+88
View File
@@ -0,0 +1,88 @@
import sqlite3
from datetime import datetime
DB = "nexus.db"
FORMATOS = [
"%m/%d/%y %H:%M:%S",
"%m/%d/%y"
]
def convertir_fechas(db, tabla, campos):
for campo in campos:
print(f"\n=== {tabla}.{campo} ===")
total = db.execute(
f"SELECT COUNT(*) FROM {tabla} "
f"WHERE {campo} IS NOT NULL AND TRIM({campo}) <> ''"
).fetchone()[0]
print(f"Registros con datos: {total}")
rows = db.execute(
f"SELECT id, {campo} FROM {tabla} "
f"WHERE {campo} IS NOT NULL AND TRIM({campo}) <> ''"
).fetchall()
actualizados = 0
errores = 0
for id_, valor in rows:
convertido = False
for formato in FORMATOS:
try:
fecha = datetime.strptime(valor.strip(), formato)
nueva = fecha.strftime("%Y-%m-%d")
db.execute(
f"UPDATE {tabla} SET {campo}=? WHERE id=?",
(nueva, id_)
)
actualizados += 1
convertido = True
break
except ValueError:
pass
if not convertido:
print(f"Error -> id={id_} valor='{valor}'")
errores += 1
db.commit()
print(f"Actualizados: {actualizados}")
print(f"Errores: {errores}")
db = sqlite3.connect(DB)
# Tabla vehiculos
convertir_fechas(
db,
"vehiculos",
[
"f_alta",
"f_baja",
"itv_ultima",
"f_destino_situacion"
]
)
# Tabla historial
convertir_fechas(
db,
"historial",
[
"fecha"
]
)
db.close()
print("\nConversión terminada.")
+46
View File
@@ -0,0 +1,46 @@
import sqlite3
from datetime import datetime
db = sqlite3.connect('nexus.db')
# Ver cuántos registros tienen itv con datos
total = db.execute("SELECT COUNT(*) FROM vehiculos WHERE itv IS NOT NULL AND itv != ''").fetchone()[0]
print(f'Registros con ITV: {total}')
# Ver ejemplos del formato actual
ejemplos = db.execute("SELECT id, itv FROM vehiculos WHERE itv IS NOT NULL AND itv != '' LIMIT 5").fetchall()
print('Ejemplos actuales:')
for r in ejemplos: print(f' id={r[0]} itv={r[1]}')
# Convertir MM/DD/YY HH:MM:SS -> YYYY-MM-DD
rows = db.execute("SELECT id, itv FROM vehiculos WHERE itv IS NOT NULL AND itv != ''").fetchall()
actualizados = 0
errores = 0
for row in rows:
id_, itv_raw = row
try:
# Intentar formato MM/DD/YY HH:MM:SS
dt = datetime.strptime(itv_raw.strip(), '%m/%d/%y %H:%M:%S')
itv_nuevo = dt.strftime('%Y-%m-%d')
db.execute('UPDATE vehiculos SET itv=? WHERE id=?', (itv_nuevo, id_))
actualizados += 1
except:
try:
# Intentar formato MM/DD/YY sin hora
dt = datetime.strptime(itv_raw.strip(), '%m/%d/%y')
itv_nuevo = dt.strftime('%Y-%m-%d')
db.execute('UPDATE vehiculos SET itv=? WHERE id=?', (itv_nuevo, id_))
actualizados += 1
except:
print(f' Error en id={id_} valor={itv_raw}')
errores += 1
db.commit()
print(f'Actualizados: {actualizados}, Errores: {errores}')
# Verificar resultado
ejemplos = db.execute("SELECT id, itv FROM vehiculos WHERE itv IS NOT NULL AND itv != '' LIMIT 5").fetchall()
print('Ejemplos tras conversión:')
for r in ejemplos: print(f' id={r[0]} itv={r[1]}')
db.close()
+7547
View File
File diff suppressed because it is too large Load Diff
+47
View File
@@ -0,0 +1,47 @@
import sqlite3
import csv
from datetime import datetime
DB = 'nexus.db' # ajusta la ruta si es necesario
CSV = 'historial.csv' # ajusta la ruta si es necesario
def convertir_fecha(fecha_str):
"""Convierte MM/DD/YY HH:MM:SS a YYYY-MM-DD"""
if not fecha_str:
return None
try:
dt = datetime.strptime(fecha_str.strip(), '%m/%d/%y %H:%M:%S')
return dt.strftime('%Y-%m-%d')
except:
return fecha_str.strip()
db = sqlite3.connect(DB)
insertados = 0
errores = 0
with open(CSV, newline='', encoding='utf-8-sig') as f:
reader = csv.DictReader(f)
for row in reader:
matricula = (row.get('Matricula') or '').strip()
unidad = (row.get('Unidad') or '').strip()
fecha = convertir_fecha(row.get('Cuando', ''))
observaciones = (row.get('Observaciones') or '').strip()
if not matricula:
continue
try:
db.execute('''
INSERT INTO historial (vehiculo_id, matricula, unidad, fecha, observaciones)
VALUES (NULL, ?, ?, ?, ?)
''', (matricula, unidad, fecha, observaciones))
insertados += 1
except Exception as e:
print(f'Error en fila {matricula}: {e}')
errores += 1
db.commit()
db.close()
print(f'Importación completada: {insertados} registros insertados, {errores} errores.')
+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><sqlb_project><db path="/Volumes/sandisk128/flask/navbar_vertical_CRUD - auto/nexus.db" readonly="0" foreign_keys="1" case_sensitive_like="0" temp_store="0" wal_autocheckpoint="1000" synchronous="2"/><attached/><window><main_tabs open="structure browser query" current="0"/></window><tab_structure><column_width id="0" width="300"/><column_width id="1" width="0"/><column_width id="2" width="100"/><column_width id="3" width="2976"/><column_width id="4" width="0"/><expanded_item id="0" parent="1"/><expanded_item id="1" parent="1"/><expanded_item id="2" parent="1"/><expanded_item id="3" parent="1"/></tab_structure><tab_browse><table title="poblaciones" custom_title="0" dock_id="1" table="4,11:mainpoblaciones"/><dock_state state="000000ff00000000fd00000001000000020000043200000361fc0100000001fb000000160064006f0063006b00420072006f00770073006500310100000000000004320000010000ffffff000002930000000000000004000000040000000800000008fc00000000"/><default_encoding codec=""/><browse_table_settings><table schema="main" name="campus" show_row_id="0" encoding="" plot_x_axis="" unlock_view_pk="_rowid_" freeze_columns="0"><sort/><column_widths><column index="1" value="27"/><column index="2" value="119"/><column index="3" value="86"/><column index="4" value="199"/><column index="5" value="91"/></column_widths><filter_values/><conditional_formats/><row_id_formats/><display_formats/><hidden_columns/><plot_y_axes/><global_filter/></table><table schema="main" name="denominacion" show_row_id="0" encoding="" plot_x_axis="" unlock_view_pk="_rowid_" freeze_columns="0"><sort/><column_widths><column index="1" value="99"/></column_widths><filter_values/><conditional_formats/><row_id_formats/><display_formats/><hidden_columns/><plot_y_axes/><global_filter/></table><table schema="main" name="poblaciones" show_row_id="0" encoding="" plot_x_axis="" unlock_view_pk="_rowid_" freeze_columns="0"><sort/><column_widths><column index="1" value="21"/><column index="2" value="89"/></column_widths><filter_values/><conditional_formats/><row_id_formats/><display_formats/><hidden_columns/><plot_y_axes/><global_filter/></table></browse_table_settings></tab_browse><tab_sql><sql name="SQL 1*">select * from poblaciones order by poblacion</sql><current_tab id="0"/></tab_sql></sqlb_project>
+119
View File
@@ -0,0 +1,119 @@
unidades
MALAGA-JEFATURA
MALAGA-UCOP
MALAGA-UCOP-COORDINADORES
MALAGA-UCOP-SISTEMAS ESPECIALES
MALAGA-UCOP-ESTADISTICAS
MALAGA-UCOP-B.O.A
MALAGA-UCOP-U.V.A.O.
MALAGA-UCOP-GOES
MALAGA-UCOP-MEDIOS AEREOS
MALAGA-UCOP-UTI
MALAGA-UCOP-UTI-TRATAMIENTO
MALAGA-UCOP-UTI-AN. OPER.
MALAGA-UCOP-UTI-HECHOS
MALAGA-UCOP-UTI-AN. ESTRAT.
MALAGA-SEC. GRAL.-SECRETARIO GRAL.
MALAGA-SEC. GRAL.-JEFE SERVICIO
MALAGA-SEC. GRAL.-DNI
MALAGA-SEC. GRAL.-EXTRANJERIA
MALAGA-SEC. GRAL.-DEL. TERR. INFORM.
MALAGA-SEC. GRAL.-HABILITACION
MALAGA-SEC. GRAL.-C. PAGADORA
MALAGA-SEC. GRAL.-DIETAS
MALAGA-SEC. GRAL.-AUTOMOCION
MALAGA-SEC. GRAL.-JEFE SEC. TECNICA
MALAGA-SEC. GRAL.-OBRAS E INST.
MALAGA-SEC. GRAL.-MEDIOS MAT.
MALAGA-SEC. GRAL.-FORMACION
MALAGA-SEC. GRAL.-DEL. PROV. INFORM.
MALAGA-SEC. GRAL.-ORDENANZAS
MALAGA-SEC. GRAL.-ARMAMENTO
MALAGA-SEC. GRAL.-SERV. MEDICOS
MALAGA-SEC. GRAL.-SERV. SOCIO-SANITARIOS
MALAGA-SEC. GRAL.-TELECOMUNICACIONES
MALAGA-SEC. GRAL.-CENTRALITA
MALAGA-SEC. GRAL.-ARCHIVO GRAL.
MALAGA-SEC. GRAL.-BIBLIOTECA
MALAGA-SEC. GRAL.-VIDEOCONFERENCIAS
MALAGA-SEC. GRAL.-LIMPIEZA
MALAGA-SEC. GRAL.-OTROS
MALAGA-SEC. GRAL.
MALAGA-BRIG.INFORM.
MALAGA-BRIG.INFORM.-SECRETARIA
MALAGA-BRIG.INFORM.-GRUPO 1 (INF. GENERAL)
MALAGA-BRIG.INFORM.-GRUPO 2 (TERROR. AUTOC)
MALAGA-BRIG.INFORM.-GRUPO 3 (TERROR. INTERN.)
MALAGA-BRIG.INFORM.-GRUPO 4 (TERROR. INTERN.)
MALAGA-BRIG.INFORM.-GRUPO 5 (TERROR. INTERN.)
MALAGA-BRIG.INFORM.-TEDAX
MALAGA-POLICIA JUD.
MALAGA-POLICIA JUD.-SECRETARIA
MALAGA-POLICIA JUD.-O.D.A.C.
MALAGA-POLICIA JUD.-UDEV
MALAGA-POLICIA JUD.-UDEV-ATRACOS
MALAGA-POLICIA JUD.-UDEV-AUDIENCIA
MALAGA-POLICIA JUD.-UDEV-FRAUDES 1
MALAGA-POLICIA JUD.-UDEV-FRAUDES 2
MALAGA-POLICIA JUD.-UDEV-FRAUDES 3 – DET. TECNOLÓGICOS
MALAGA-POLICIA JUD.-UDEV-INFORMES
MALAGA-POLICIA JUD.-UDEV-PEQ. TRAFICO
MALAGA-POLICIA JUD.-UDEV-ROBOS
MALAGA-POLICIA JUD.-UDEV-ROBOS 1
MALAGA-POLICIA JUD.-UDEV-ROBOS 2
MALAGA-POLICIA JUD.-UDEV-SAF
MALAGA-POLICIA JUD.-UDEV-I.C.G
MALAGA-POLICIA JUD.-UDEV-HURTOS
MALAGA-POLICIA JUD.-UDEV-HOMICIDIOS
MALAGA-POLICIA JUD.-UDEV-UFAM
MALAGA-POLICIA JUD.-UDEV-UPAP
MALAGA-POLICIA JUD.-UDYCO
MALAGA-POLICIA JUD.-UDYCO-COSTA DEL SOL
MALAGA-POLICIA JUD.-UDYCO-BLANQUEO 1
MALAGA-POLICIA JUD.-UDYCO-BLANQUEO 2
MALAGA-POLICIA JUD.-UDYCO-BLANQUEO 3
MALAGA-POLICIA JUD.-UDYCO-C. ORG 1º
MALAGA-POLICIA JUD.-UDYCO-C. ORG 2º
MALAGA-POLICIA JUD.-UDYCO-C. ORG 3º
MALAGA-POLICIA JUD.-UDYCO-ESTUPEF. 1
MALAGA-POLICIA JUD.-UDYCO-ESTUPEF. 2
MALAGA-POLICIA JUD.-UDYCO-ESTUPEF. 3
MALAGA-SGDAD.CIUDAD-S.A.C.
MALAGA-SGDAD.CIUDA.-PART. CIUDADANA
MALAGA-SGDAD.CIUDA.
MALAGA-SGDAD.CIUDA.-UPR
MALAGA-SGDAD.CIUDAD-UPS
MALAGA-SGDAD.CIUDA.-BRIGADA MOVIL
MALAGA-SGDAD.CIUDA.-GUIAS CANINOS
MALAGA-SGDAD.CIUDA.-SUBSUELO
MALAGA-SGDAD.CIUDA.-SEGURIDAD PRIVADA
MALAGA-SGDAD.CIUDAD-ESCOLTAS
MALAGA-EXT. Y FRONT.
MALAGA-EXT. Y FRONT-U.D.E.X.
MALAGA-EXT. Y FRONT-UCRIF I
MALAGA-EXT. Y FRONT-UCRIF II
MALAGA-EXT. Y FRONT-UCRIF III
MALAGA-EXT. Y FRONT-UCRIF IV
MALAGA-EXT. Y FRONT-EXPULSIONES V
MALAGA-EXT. Y FRONT-EXPULSIONES VI
MALAGA-EXT. Y FRONT-COMISARIA PUERTO
MALAGA-EXT. Y FRONT-CIE
MALAGA-EXT. Y FRONT-AEROPUERTO
MALAGA-POL. CIENTIFICA-
MALAGA-DISTR.NORTE
MALAGA-DISTR.NORTE-GRUPO INVEST.
MALAGA-DISTR.CENTRO
MALAGA-DISTR.CENTRO-GRUPO INVEST.
MALAGA-DISTR.ESTE
MALAGA-DISTR.ESTE-GRUPO INVEST.
MALAGA-DISTR.OESTE
MALAGA-DISTR.OESTE-GRUPO INVEST.
ANTEQUERA
ESTEPONA
FUENGIROLA
MARBELLA
RONDA
TORREMOLINOS
VELEZ MALAGA
ALTA
BAJA
1 unidades
2 MALAGA-JEFATURA
3 MALAGA-UCOP
4 MALAGA-UCOP-COORDINADORES
5 MALAGA-UCOP-SISTEMAS ESPECIALES
6 MALAGA-UCOP-ESTADISTICAS
7 MALAGA-UCOP-B.O.A
8 MALAGA-UCOP-U.V.A.O.
9 MALAGA-UCOP-GOES
10 MALAGA-UCOP-MEDIOS AEREOS
11 MALAGA-UCOP-UTI
12 MALAGA-UCOP-UTI-TRATAMIENTO
13 MALAGA-UCOP-UTI-AN. OPER.
14 MALAGA-UCOP-UTI-HECHOS
15 MALAGA-UCOP-UTI-AN. ESTRAT.
16 MALAGA-SEC. GRAL.-SECRETARIO GRAL.
17 MALAGA-SEC. GRAL.-JEFE SERVICIO
18 MALAGA-SEC. GRAL.-DNI
19 MALAGA-SEC. GRAL.-EXTRANJERIA
20 MALAGA-SEC. GRAL.-DEL. TERR. INFORM.
21 MALAGA-SEC. GRAL.-HABILITACION
22 MALAGA-SEC. GRAL.-C. PAGADORA
23 MALAGA-SEC. GRAL.-DIETAS
24 MALAGA-SEC. GRAL.-AUTOMOCION
25 MALAGA-SEC. GRAL.-JEFE SEC. TECNICA
26 MALAGA-SEC. GRAL.-OBRAS E INST.
27 MALAGA-SEC. GRAL.-MEDIOS MAT.
28 MALAGA-SEC. GRAL.-FORMACION
29 MALAGA-SEC. GRAL.-DEL. PROV. INFORM.
30 MALAGA-SEC. GRAL.-ORDENANZAS
31 MALAGA-SEC. GRAL.-ARMAMENTO
32 MALAGA-SEC. GRAL.-SERV. MEDICOS
33 MALAGA-SEC. GRAL.-SERV. SOCIO-SANITARIOS
34 MALAGA-SEC. GRAL.-TELECOMUNICACIONES
35 MALAGA-SEC. GRAL.-CENTRALITA
36 MALAGA-SEC. GRAL.-ARCHIVO GRAL.
37 MALAGA-SEC. GRAL.-BIBLIOTECA
38 MALAGA-SEC. GRAL.-VIDEOCONFERENCIAS
39 MALAGA-SEC. GRAL.-LIMPIEZA
40 MALAGA-SEC. GRAL.-OTROS
41 MALAGA-SEC. GRAL.
42 MALAGA-BRIG.INFORM.
43 MALAGA-BRIG.INFORM.-SECRETARIA
44 MALAGA-BRIG.INFORM.-GRUPO 1 (INF. GENERAL)
45 MALAGA-BRIG.INFORM.-GRUPO 2 (TERROR. AUTOC)
46 MALAGA-BRIG.INFORM.-GRUPO 3 (TERROR. INTERN.)
47 MALAGA-BRIG.INFORM.-GRUPO 4 (TERROR. INTERN.)
48 MALAGA-BRIG.INFORM.-GRUPO 5 (TERROR. INTERN.)
49 MALAGA-BRIG.INFORM.-TEDAX
50 MALAGA-POLICIA JUD.
51 MALAGA-POLICIA JUD.-SECRETARIA
52 MALAGA-POLICIA JUD.-O.D.A.C.
53 MALAGA-POLICIA JUD.-UDEV
54 MALAGA-POLICIA JUD.-UDEV-ATRACOS
55 MALAGA-POLICIA JUD.-UDEV-AUDIENCIA
56 MALAGA-POLICIA JUD.-UDEV-FRAUDES 1
57 MALAGA-POLICIA JUD.-UDEV-FRAUDES 2
58 MALAGA-POLICIA JUD.-UDEV-FRAUDES 3 – DET. TECNOLÓGICOS
59 MALAGA-POLICIA JUD.-UDEV-INFORMES
60 MALAGA-POLICIA JUD.-UDEV-PEQ. TRAFICO
61 MALAGA-POLICIA JUD.-UDEV-ROBOS
62 MALAGA-POLICIA JUD.-UDEV-ROBOS 1
63 MALAGA-POLICIA JUD.-UDEV-ROBOS 2
64 MALAGA-POLICIA JUD.-UDEV-SAF
65 MALAGA-POLICIA JUD.-UDEV-I.C.G
66 MALAGA-POLICIA JUD.-UDEV-HURTOS
67 MALAGA-POLICIA JUD.-UDEV-HOMICIDIOS
68 MALAGA-POLICIA JUD.-UDEV-UFAM
69 MALAGA-POLICIA JUD.-UDEV-UPAP
70 MALAGA-POLICIA JUD.-UDYCO
71 MALAGA-POLICIA JUD.-UDYCO-COSTA DEL SOL
72 MALAGA-POLICIA JUD.-UDYCO-BLANQUEO 1
73 MALAGA-POLICIA JUD.-UDYCO-BLANQUEO 2
74 MALAGA-POLICIA JUD.-UDYCO-BLANQUEO 3
75 MALAGA-POLICIA JUD.-UDYCO-C. ORG 1º
76 MALAGA-POLICIA JUD.-UDYCO-C. ORG 2º
77 MALAGA-POLICIA JUD.-UDYCO-C. ORG 3º
78 MALAGA-POLICIA JUD.-UDYCO-ESTUPEF. 1
79 MALAGA-POLICIA JUD.-UDYCO-ESTUPEF. 2
80 MALAGA-POLICIA JUD.-UDYCO-ESTUPEF. 3
81 MALAGA-SGDAD.CIUDAD-S.A.C.
82 MALAGA-SGDAD.CIUDA.-PART. CIUDADANA
83 MALAGA-SGDAD.CIUDA.
84 MALAGA-SGDAD.CIUDA.-UPR
85 MALAGA-SGDAD.CIUDAD-UPS
86 MALAGA-SGDAD.CIUDA.-BRIGADA MOVIL
87 MALAGA-SGDAD.CIUDA.-GUIAS CANINOS
88 MALAGA-SGDAD.CIUDA.-SUBSUELO
89 MALAGA-SGDAD.CIUDA.-SEGURIDAD PRIVADA
90 MALAGA-SGDAD.CIUDAD-ESCOLTAS
91 MALAGA-EXT. Y FRONT.
92 MALAGA-EXT. Y FRONT-U.D.E.X.
93 MALAGA-EXT. Y FRONT-UCRIF I
94 MALAGA-EXT. Y FRONT-UCRIF II
95 MALAGA-EXT. Y FRONT-UCRIF III
96 MALAGA-EXT. Y FRONT-UCRIF IV
97 MALAGA-EXT. Y FRONT-EXPULSIONES V
98 MALAGA-EXT. Y FRONT-EXPULSIONES VI
99 MALAGA-EXT. Y FRONT-COMISARIA PUERTO
100 MALAGA-EXT. Y FRONT-CIE
101 MALAGA-EXT. Y FRONT-AEROPUERTO
102 MALAGA-POL. CIENTIFICA-
103 MALAGA-DISTR.NORTE
104 MALAGA-DISTR.NORTE-GRUPO INVEST.
105 MALAGA-DISTR.CENTRO
106 MALAGA-DISTR.CENTRO-GRUPO INVEST.
107 MALAGA-DISTR.ESTE
108 MALAGA-DISTR.ESTE-GRUPO INVEST.
109 MALAGA-DISTR.OESTE
110 MALAGA-DISTR.OESTE-GRUPO INVEST.
111 ANTEQUERA
112 ESTEPONA
113 FUENGIROLA
114 MARBELLA
115 RONDA
116 TORREMOLINOS
117 VELEZ MALAGA
118 ALTA
119 BAJA