|
|
@ -0,0 +1,41 @@ |
|
|
|
|
|
import json |
|
|
|
|
|
from django.core.management.base import BaseCommand |
|
|
|
|
|
from repostajes.models import Repostaje |
|
|
|
|
|
|
|
|
|
|
|
class Command(BaseCommand): |
|
|
|
|
|
help = "Importa repostajes desde un archivo JSON" |
|
|
|
|
|
|
|
|
|
|
|
def add_arguments(self, parser): |
|
|
|
|
|
parser.add_argument('archivo_json', type=str, help="Ruta del archivo JSON") |
|
|
|
|
|
|
|
|
|
|
|
def handle(self, *args, **kwargs): |
|
|
|
|
|
archivo_json = kwargs['archivo_json'] |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
with open(archivo_json, 'r', encoding='utf-8') as file: |
|
|
|
|
|
datos = json.load(file) |
|
|
|
|
|
|
|
|
|
|
|
repostajes_creados = 0 |
|
|
|
|
|
for repostaje_data in datos: |
|
|
|
|
|
repostaje, creado = Evento.objects.get_or_create( |
|
|
|
|
|
fecha=repostaje_data['fecha'], |
|
|
|
|
|
defaults={ |
|
|
|
|
|
'kms': repostaje_data['kms'], |
|
|
|
|
|
'litros': repostaje_data['litros'], |
|
|
|
|
|
'descuento': repostaje_data['descuento'] |
|
|
|
|
|
'importe': repostaje_data['importe'] |
|
|
|
|
|
'precioxlitro': repostaje_data['precioxlitro'] |
|
|
|
|
|
'kmsrecorridos': repostaje_data['kmsrecorridos'] |
|
|
|
|
|
'consumo': repostaje_data['consumo'] |
|
|
|
|
|
'vehiculo': repostaje_data['vehiculo'] |
|
|
|
|
|
} |
|
|
|
|
|
) |
|
|
|
|
|
if creado: |
|
|
|
|
|
repostajes_creados += 1 |
|
|
|
|
|
|
|
|
|
|
|
self.stdout.write(self.style.SUCCESS(f'Se importaron {repostajes_creados} repostajes correctamente.')) |
|
|
|
|
|
|
|
|
|
|
|
except FileNotFoundError: |
|
|
|
|
|
self.stderr.write(self.style.ERROR(f"El archivo {archivo_json} no se encontró.")) |
|
|
|
|
|
except json.JSONDecodeError: |
|
|
|
|
|
self.stderr.write(self.style.ERROR("Error al leer el archivo JSON. Asegúrate de que el formato sea correcto.")) |