""" Services module """ import requests import json from django_ledger.models import EntityModel from inventory.utils import get_jwt_token from pyvin import VIN from django.conf import settings from openai import OpenAI from .models import Car,CarMake,CarModel from inventory.haikalna import decode_vin_haikalna def get_make(item): data = CarMake.objects.filter(name__iexact=item).first() return data def get_model(item,make): data = make.carmodel_set.filter(name__iexact=item).first() if not data: r = item.split(" ") for i in r: if data:=make.carmodel_set.filter(name__iexact=i).first(): break return data def normalize_name(name): return name.replace(" ", "").replace("-", "").lower() def decodevin(vin): if result:=decode_vin(vin): return result elif result:=elm(vin): return result elif result:=decode_vin_haikalna(vin): return result else: return None def decode_vin(vin): v = VIN(vin) data = {} if v: data = { "maker": v.Make, "model": v.Model, "modelYear": v.ModelYear, } print(data) return data if all([x for x in data.values()]) else None def elm(vin): headers = { "Content-Type": "application/json", "app-id": settings.ELM_APP_ID, "app-key": settings.ELM_APP_KEY, "client-id": settings.ELM_CLIENT_ID, } url = ( "https://vehicle-maintenance.api.elm.sa/api/v1/vehicles/vehicle-info?vin=" + vin ) payload = {} response = requests.request("GET", url, headers=headers, data=payload) response = json.loads(response.text) data = {} if response.get("data"): data = { "maker": response["data"]["maker"], "model": response["data"]["model"], "modelYear": response["data"]["modelYear"], } print(data) return data if all([x for x in data.values()]) else None def get_ledger_data(request): data = {} entity = EntityModel.objects.filter(name=request.user.dealer.name).first() data['bills'] = entity.get_bills() data['invoices'] = entity.get_invoices() data['income'] = entity.get_income_statement() return data