update
This commit is contained in:
parent
f7a43a3b22
commit
b8b388262a
BIN
haikaldb.json
BIN
haikaldb.json
Binary file not shown.
38
import_data.py
Normal file
38
import_data.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
|
# Load JSON data
|
||||||
|
with open("haikaldb.json", "r") as file:
|
||||||
|
data = json.load(file)
|
||||||
|
|
||||||
|
car_generation = data.get("car_generation", [])
|
||||||
|
car_serie = data.get("car_serie", [])
|
||||||
|
|
||||||
|
# Create a lookup dictionary for car_generation by id
|
||||||
|
generation_lookup = {gen["id_car_generation"]: gen for gen in car_generation}
|
||||||
|
|
||||||
|
# Merge car_generation and car_serie
|
||||||
|
merged_data = []
|
||||||
|
for serie in car_serie:
|
||||||
|
gen_id = serie["id_car_generation"]
|
||||||
|
generation = generation_lookup.get(gen_id, {})
|
||||||
|
|
||||||
|
merged_entry = {
|
||||||
|
"id_car_generation_serie": serie["id_car_serie"], # Use car_serie ID as the merged ID
|
||||||
|
"id_car_model": generation.get("id_car_model"),
|
||||||
|
"name": f"{generation.get('name', '')} {serie.get('name', '')}".strip(),
|
||||||
|
# "arabic_name": f"{generation.get('arabic_name', '')} {serie.get('arabic_name', '')}".strip(),
|
||||||
|
"year_begin": generation.get("year_begin"),
|
||||||
|
"year_end": generation.get("year_end"),
|
||||||
|
"generation_name": generation.get("name"),
|
||||||
|
"serie_name": serie.get("name"),
|
||||||
|
# "arabic_generation_name": generation.get("arabic_name"),
|
||||||
|
"arabic_serie_name": serie.get("arabic_name"),
|
||||||
|
}
|
||||||
|
|
||||||
|
merged_data.append(merged_entry)
|
||||||
|
|
||||||
|
# Write merged data to a new JSON file
|
||||||
|
with open("merged_car_generation_serie.json", "w") as file:
|
||||||
|
json.dump(merged_data, file, indent=4, ensure_ascii=False)
|
||||||
|
|
||||||
|
print("Merging completed. Data saved to merged_car_generation_serie.json.")
|
||||||
Binary file not shown.
BIN
inventory/data/.DS_Store
vendored
Normal file
BIN
inventory/data/.DS_Store
vendored
Normal file
Binary file not shown.
@ -67,8 +67,8 @@ class VatRate(models.Model):
|
|||||||
|
|
||||||
class CarMake(models.Model, LocalizedNameMixin):
|
class CarMake(models.Model, LocalizedNameMixin):
|
||||||
id_car_make = models.AutoField(primary_key=True)
|
id_car_make = models.AutoField(primary_key=True)
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
arabic_name = models.CharField(max_length=255)
|
arabic_name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
logo = models.ImageField(_("logo"), upload_to="car_make", blank=True, null=True)
|
logo = models.ImageField(_("logo"), upload_to="car_make", blank=True, null=True)
|
||||||
is_sa_import = models.BooleanField(default=False)
|
is_sa_import = models.BooleanField(default=False)
|
||||||
|
|
||||||
@ -82,8 +82,8 @@ class CarMake(models.Model, LocalizedNameMixin):
|
|||||||
class CarModel(models.Model, LocalizedNameMixin):
|
class CarModel(models.Model, LocalizedNameMixin):
|
||||||
id_car_model = models.AutoField(primary_key=True)
|
id_car_model = models.AutoField(primary_key=True)
|
||||||
id_car_make = models.ForeignKey(CarMake, models.DO_NOTHING, db_column="id_car_make")
|
id_car_make = models.ForeignKey(CarMake, models.DO_NOTHING, db_column="id_car_make")
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
arabic_name = models.CharField(max_length=255)
|
arabic_name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
@ -92,11 +92,24 @@ class CarModel(models.Model, LocalizedNameMixin):
|
|||||||
verbose_name = "Model"
|
verbose_name = "Model"
|
||||||
|
|
||||||
|
|
||||||
|
class CarGeneration(models.Model):
|
||||||
|
id_car_generation = models.AutoField(primary_key=True)
|
||||||
|
id_car_model = models.ForeignKey(CarModel, models.DO_NOTHING, db_column='id_car_model')
|
||||||
|
name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
arabic_name = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
year_begin = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
year_end = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "Generation"
|
||||||
|
|
||||||
|
|
||||||
class CarSerie(models.Model, LocalizedNameMixin):
|
class CarSerie(models.Model, LocalizedNameMixin):
|
||||||
id_car_serie = models.AutoField(primary_key=True)
|
id_car_serie = models.AutoField(primary_key=True)
|
||||||
id_car_model = models.ForeignKey(
|
id_car_model = models.ForeignKey(CarModel, models.DO_NOTHING, db_column="id_car_model")
|
||||||
CarModel, models.DO_NOTHING, db_column="id_car_model"
|
|
||||||
)
|
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
arabic_name = models.CharField(max_length=255)
|
arabic_name = models.CharField(max_length=255)
|
||||||
year_begin = models.IntegerField(blank=True, null=True)
|
year_begin = models.IntegerField(blank=True, null=True)
|
||||||
@ -111,9 +124,7 @@ class CarSerie(models.Model, LocalizedNameMixin):
|
|||||||
|
|
||||||
class CarTrim(models.Model, LocalizedNameMixin):
|
class CarTrim(models.Model, LocalizedNameMixin):
|
||||||
id_car_trim = models.AutoField(primary_key=True)
|
id_car_trim = models.AutoField(primary_key=True)
|
||||||
id_car_serie = models.ForeignKey(
|
id_car_serie = models.ForeignKey(CarSerie, models.DO_NOTHING, db_column="id_car_serie")
|
||||||
CarSerie, models.DO_NOTHING, db_column="id_car_serie"
|
|
||||||
)
|
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
arabic_name = models.CharField(max_length=255)
|
arabic_name = models.CharField(max_length=255)
|
||||||
start_production_year = models.IntegerField(blank=True, null=True)
|
start_production_year = models.IntegerField(blank=True, null=True)
|
||||||
@ -127,13 +138,15 @@ class CarTrim(models.Model, LocalizedNameMixin):
|
|||||||
verbose_name = "Trim"
|
verbose_name = "Trim"
|
||||||
|
|
||||||
|
|
||||||
|
class CarEquipment(models.Model, LocalizedNameMixin):
|
||||||
|
id_car_equipment = models.AutoField(primary_key=True)
|
||||||
|
|
||||||
|
|
||||||
class CarSpecification(models.Model, LocalizedNameMixin):
|
class CarSpecification(models.Model, LocalizedNameMixin):
|
||||||
id_car_specification = models.AutoField(primary_key=True)
|
id_car_specification = models.AutoField(primary_key=True)
|
||||||
name = models.CharField(max_length=255)
|
name = models.CharField(max_length=255)
|
||||||
arabic_name = models.CharField(max_length=255)
|
arabic_name = models.CharField(max_length=255)
|
||||||
id_parent = models.ForeignKey(
|
id_parent = models.ForeignKey("self", models.DO_NOTHING, db_column="id_parent", blank=True, null=True)
|
||||||
"self", models.DO_NOTHING, db_column="id_parent", blank=True, null=True
|
|
||||||
)
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
@ -145,9 +158,7 @@ class CarSpecification(models.Model, LocalizedNameMixin):
|
|||||||
class CarSpecificationValue(models.Model):
|
class CarSpecificationValue(models.Model):
|
||||||
id_car_specification_value = models.AutoField(primary_key=True)
|
id_car_specification_value = models.AutoField(primary_key=True)
|
||||||
id_car_trim = models.ForeignKey(CarTrim, models.DO_NOTHING, db_column="id_car_trim")
|
id_car_trim = models.ForeignKey(CarTrim, models.DO_NOTHING, db_column="id_car_trim")
|
||||||
id_car_specification = models.ForeignKey(
|
id_car_specification = models.ForeignKey(CarSpecification, models.DO_NOTHING, db_column="id_car_specification")
|
||||||
CarSpecification, models.DO_NOTHING, db_column="id_car_specification"
|
|
||||||
)
|
|
||||||
value = models.CharField(max_length=500)
|
value = models.CharField(max_length=500)
|
||||||
unit = models.CharField(max_length=255, blank=True, null=True)
|
unit = models.CharField(max_length=255, blank=True, null=True)
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,4 @@
|
|||||||
import requests
|
|
||||||
from django.test import Client
|
|
||||||
from django.core.exceptions import ObjectDoesNotExist
|
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
from django.utils.decorators import method_decorator
|
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
|
||||||
from django_ledger.models import (
|
from django_ledger.models import (
|
||||||
EntityModel,
|
EntityModel,
|
||||||
InvoiceModel,
|
InvoiceModel,
|
||||||
@ -30,7 +25,6 @@ from django.contrib.admin.models import LogEntry
|
|||||||
import logging
|
import logging
|
||||||
import json
|
import json
|
||||||
import datetime
|
import datetime
|
||||||
from decimal import Decimal
|
|
||||||
from django.db.models.functions import Coalesce
|
from django.db.models.functions import Coalesce
|
||||||
from django.shortcuts import HttpResponse
|
from django.shortcuts import HttpResponse
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
@ -56,14 +50,10 @@ from django.contrib import messages
|
|||||||
from django.db.models import Sum, F, Count
|
from django.db.models import Sum, F, Count
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
|
||||||
from .models import Customer
|
|
||||||
from .services import (
|
from .services import (
|
||||||
elm,
|
|
||||||
decodevin,
|
decodevin,
|
||||||
get_make,
|
get_make,
|
||||||
get_model,
|
get_model,
|
||||||
normalize_name,
|
|
||||||
get_ledger_data,
|
|
||||||
)
|
)
|
||||||
from . import models, forms
|
from . import models, forms
|
||||||
from django.contrib.auth.mixins import PermissionRequiredMixin
|
from django.contrib.auth.mixins import PermissionRequiredMixin
|
||||||
|
|||||||
159112
merged_car_generation_serie.json
Normal file
159112
merged_car_generation_serie.json
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user