156 lines
6.4 KiB
Python
156 lines
6.4 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
from django.contrib.auth.models import Permission
|
|
from django.contrib.auth.models import Group
|
|
from django_ledger.models.invoice import InvoiceModel
|
|
from django_ledger.utils import accruable_net_summary
|
|
from decimal import Decimal
|
|
from django_ledger.models import EstimateModel,EntityModel,ItemModel,ItemTransactionModel,AccountModel,CustomerModel,EntityManagementModel
|
|
from rich import print
|
|
from datetime import date
|
|
from inventory.models import Car, Dealer, VatRate,Lead,CarMake,CarModel,Schedule,CustomGroup
|
|
from inventory.utils import CarFinanceCalculator
|
|
from appointment.models import Appointment,AppointmentRequest,Service,StaffMember
|
|
from django.contrib.auth import get_user_model
|
|
from django_ledger.io.io_core import get_localdate
|
|
from datetime import datetime, timedelta
|
|
from django.utils import timezone
|
|
import hashlib
|
|
|
|
User = get_user_model()
|
|
|
|
load_dotenv(".env")
|
|
def run():
|
|
# print(Service.objects.first().pk)
|
|
# print(Appointment.objects.first().client)
|
|
|
|
# appointment = Appointment.objects.create(
|
|
# client_name="John Doe",
|
|
# client_email="john@example.com",
|
|
# service="Haircut",
|
|
# date_time="2023-10-15 10:00:00",
|
|
# status="pending")
|
|
# make = CarMake.objects.first()
|
|
# Lead.objects.create(
|
|
# first_name="John",
|
|
# last_name="Doe",
|
|
# email="john@example.com",
|
|
# phone_number="123-456-7890",
|
|
# address="123 Main St",
|
|
# id_car_make=make,
|
|
# id_car_model=make.carmodel_set.first(),
|
|
# year="2022",
|
|
# source="website",
|
|
# channel="online",
|
|
# staff="John Doe",
|
|
# priority="high",
|
|
# )
|
|
|
|
# schedult = Schedule.objects.create(
|
|
# name="John Doe",
|
|
# email="john@example.com",
|
|
# phone_number="123-456-7890",
|
|
# address="123 Main St",
|
|
# id_car_make=make,
|
|
# id_car_model=make.carmodel_set.first(),
|
|
# year="2022",
|
|
# source="website",
|
|
# channel="online",
|
|
# staff="John Doe",
|
|
# priority="high",
|
|
# )
|
|
# now = timezone.now()
|
|
# end_time = now + timedelta(minutes=10)
|
|
|
|
# service = Service.objects.first()
|
|
# appointment_request = AppointmentRequest.objects.create(
|
|
# date=now.date(),
|
|
# start_time=now.time(),
|
|
# end_time=end_time.time(),
|
|
# service=service,
|
|
# staff_member=StaffMember.objects.first(),
|
|
# )
|
|
|
|
# appointment = Appointment.objects.create(
|
|
# client=User.objects.first(),
|
|
# appointment_request=appointment_request,
|
|
# phone="123-456-7890",
|
|
# address="123 Main St",
|
|
# )
|
|
# dealer = Dealer.objects.get(user__email="ismail.mosa.ibrahim@gmail.com")
|
|
# entity = dealer.entity
|
|
|
|
# car_list = Car.objects.filter(dealer=dealer).all()
|
|
# context = {
|
|
# "items": [
|
|
# {
|
|
# "car": x,
|
|
# "product": entity.get_items_all()
|
|
# .filter(item_role=ItemModel.ITEM_ROLE_PRODUCT, name=x.vin)
|
|
# .first(),
|
|
# }
|
|
# for x in car_list
|
|
# ],
|
|
# }
|
|
|
|
# for i in car_list:
|
|
# hash_object = hashlib.sha256()
|
|
# hash_object.update(f"{i.id_car_make.name}{i.id_car_model.name}".encode('utf-8'))
|
|
# print(hash_object.hexdigest() , i.id_car_make.name, i.id_car_model.name)
|
|
|
|
|
|
# def get_item(tx:ItemTransactionModel):
|
|
# data = {"data": {}}
|
|
# data["data"]["info"] = tx.item_model.additional_info.get('car_info')
|
|
# data["data"]["finance"] = tx.item_model.additional_info.get('car_finance')
|
|
# if tx.has_estimate():
|
|
# data["data"]["estimate"] = tx.ce_model
|
|
# data["data"]["has_estimate"] = True
|
|
# data["data"]["customer"] = tx.ce_model.customer
|
|
# if tx.has_invoice():
|
|
# data["data"]["invoice"] = tx.invoice_model
|
|
# data["data"]["has_invoice"] = True
|
|
# data["data"]["customer"] = tx.invoice_model.customer
|
|
# return data
|
|
|
|
# transactions = ItemTransactionModel.objects.all()
|
|
# output = []
|
|
# for transaction in transactions:
|
|
# output.append(get_item(transaction))
|
|
# print(output)
|
|
# info = item.additional_info["car_info"]
|
|
# finance = item.additional_info["car_finance"]
|
|
# print({"vin":info["make"],"mode":info["model"],"year":info["year"],"trim":info["trim"],"mileage":info["mileage"],"cost_price":finance["cost_price"],"selling_price":finance["selling_price"]})
|
|
# for account in AccountModel.objects.all():
|
|
# print(account.path)
|
|
|
|
# print(CustomerModel.objects.all())
|
|
# customer = CustomerModel.objects.first()
|
|
# dealer = Dealer.objects.filter(user__email="esma3el555@gmail.com").first()
|
|
# customer = CustomerModel.objects.filter(dealer=dealer).first()
|
|
# print(Car.objects.filter(dealer=dealer,status="available"))
|
|
|
|
# CustomGroup.objects.all().delete()
|
|
# Group.objects.all().delete()
|
|
|
|
# dealer = Dealer.objects.filter(user__email="esma3el555@gmail.com").first()
|
|
# group_names = ["Manager", "Inventory", "Accountant", "Agent", "Sales"]
|
|
# for group_name in group_names:
|
|
# group,created = Group.objects.get_or_create(name=f"{dealer.pk}_{group_name}")
|
|
# group_manager,created = CustomGroup.objects.get_or_create(name=group_name, dealer=dealer, group=group)
|
|
# group_manager.set_default_permissions()
|
|
|
|
# for perm in Permission.objects.filter(content_type__app_label='django_ledger',content_type__model__in=["estimatemodel","invoicemodel","customermodel"]):
|
|
# sales = CustomGroup.objects.last()
|
|
# sales.set_default_permissions()
|
|
# for perm in Permission.objects.filter(content_type__app_label='inventory',content_type__model__in=["lead","salequotation","salequotationcar"]):
|
|
# print(perm)
|
|
# print(Permission.objects.filter(codename__in=['view_car','view_carlocation','view_customcard','view_carcolors','view_cartransfer','view_estimatemodel','view_invoicemodel','view_saleorder']))
|
|
# print(Permission.objects.filter(codename__in=['view_estimatemodel','view_invoicemodel','view_saleorder']))
|
|
# CustomGroup.objects.filter(name='Accountant').last().set_default_permissions()
|
|
# CustomGroup.objects.filter(name='Inventory').last().set_default_permissions()
|
|
|
|
# EntityManagementModel.objects.create(entity=,user=)
|
|
# print(Permission.objects.filter(codename__icontains='customermodel').first().codename)
|
|
print(os.getenv("DJANGO_ALLOWED_HOSTS"))
|