git pyfleet en gitea.xiberus
This commit is contained in:
Executable
+24
@@ -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
|
||||
|
Executable
+88
@@ -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.")
|
||||
Executable
+46
@@ -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()
|
||||
Executable
+7547
File diff suppressed because it is too large
Load Diff
Executable
+47
@@ -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.')
|
||||
Executable
+1
@@ -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>
|
||||
Executable
+119
@@ -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
|
||||
|
Reference in New Issue
Block a user