This commit is contained in:
ismail 2025-09-18 14:33:22 +03:00
parent 10d48ca47d
commit c39f2eb068
5 changed files with 45 additions and 44 deletions

5
.gitignore vendored
View File

@ -163,8 +163,11 @@ GitHub.sublime-settings
.history .history
static-copy
static static
static/*
staticfiles staticfiles
media media
tmp tmp
logs logs
static/testdir

View File

@ -17,31 +17,17 @@ import django
django.setup() django.setup()
from django.urls import path from django.urls import path
from channels.routing import ProtocolTypeRouter, URLRouter from channels.routing import ProtocolTypeRouter, URLRouter
from whitenoise import WhiteNoise
from channels.auth import AuthMiddlewareStack from channels.auth import AuthMiddlewareStack
from api import routing
from inventory.notifications.sse import NotificationSSEApp from inventory.notifications.sse import NotificationSSEApp
from django.urls import re_path from django.urls import re_path
from django.core.asgi import get_asgi_application from django.core.asgi import get_asgi_application
from django.contrib.staticfiles.handlers import ASGIStaticFilesHandler
from pathlib import Path
# application = ProtocolTypeRouter(
# {
# "http": get_asgi_application(),
# # "websocket": AuthMiddlewareStack(URLRouter(routing.websocket_urlpatterns)),
# }
# )
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "car_inventory.settings")
# django.setup()
# BASE_DIR = Path(__file__).resolve().parent.parent # BASE_DIR = Path(__file__).resolve().parent.parent
app = get_asgi_application() app = get_asgi_application()
# app = WhiteNoise(app, root=str(BASE_DIR / 'staticfiles'))
application = ProtocolTypeRouter( application = ProtocolTypeRouter(
{ {
"http": AuthMiddlewareStack( "http": AuthMiddlewareStack(

View File

@ -33,5 +33,7 @@ urlpatterns += i18n_patterns(
# path('', include(tf_urls)), # path('', include(tf_urls)),
) )
# if not settings.DEBUG: if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)

View File

@ -1003,10 +1003,10 @@ def create_po_item_upload(sender, instance, created, **kwargs):
if instance.po_status == "fulfilled" or instance.po_status == 'approved': if instance.po_status == "fulfilled" or instance.po_status == 'approved':
for item in instance.get_itemtxs_data()[0]: for item in instance.get_itemtxs_data()[0]:
dealer = models.Dealer.objects.get(entity=instance.entity) dealer = models.Dealer.objects.get(entity=instance.entity)
if item.bill_model.is_paid(): if item.bill_model and item.bill_model.is_paid():
models.PoItemsUploaded.objects.get_or_create( models.PoItemsUploaded.objects.get_or_create(
dealer=dealer, po=instance, item=item, status=instance.po_status dealer=dealer, po=instance, item=item, status=instance.po_status
) )
# @receiver(post_save, sender=models.Staff) # @receiver(post_save, sender=models.Staff)

View File

@ -10879,19 +10879,23 @@ def InventoryItemCreateView(request, dealer_slug):
serie = request.POST.get("serie") serie = request.POST.get("serie")
trim = request.POST.get("trim") trim = request.POST.get("trim")
year = request.POST.get("year") year = request.POST.get("year")
exterior = models.ExteriorColors.objects.get( exterior = request.POST.get("exterior")
pk=request.POST.get("exterior") interior = request.POST.get("interior")
)
interior = models.InteriorColors.objects.get(
pk=request.POST.get("interior")
)
make_name = models.CarMake.objects.get(pk=make) make_name = models.CarMake.objects.get(pk=make)
model_name = models.CarModel.objects.get(pk=model) model_name = models.CarModel.objects.get(pk=model)
serie_name = models.CarSerie.objects.get(pk=serie) serie_name = models.CarSerie.objects.get(pk=serie)
trim_name = models.CarTrim.objects.get(pk=trim) trim_name = models.CarTrim.objects.get(pk=trim)
exterior_name = models.ExteriorColors.objects.get(
pk=request.POST.get("exterior")
)
interior_name = models.InteriorColors.objects.get(
pk=request.POST.get("interior")
)
inventory_name = f"{make_name.name} || {model_name.name} || {serie_name.name} || {trim_name.name} || {year} || {exterior_name.name} || {interior_name.name}"
display_name = f"{make_name.name} {model_name.name} {serie_name.name} {trim_name.name} {year} {exterior_name.name}"
inventory_name = f"{make_name.name} || {model_name.name} || {serie_name.name} || {trim_name.name} || {year} || {exterior.name} || {interior.name}"
if ( if (
inventory := entity.get_items_inventory() inventory := entity.get_items_inventory()
.filter(name=inventory_name) .filter(name=inventory_name)
@ -10899,17 +10903,27 @@ def InventoryItemCreateView(request, dealer_slug):
): ):
messages.error(request, _("Inventory item already exists")) messages.error(request, _("Inventory item already exists"))
return response return response
uom = entity.get_uom_all().filter(name="Unit").first() uom = entity.get_uom_all().filter(name="Unit").first()
if not uom: if not uom:
uom = entity.create_uom(name="Unit", unit_abbr="unit") uom = entity.create_uom(name="Unit", unit_abbr="unit")
entity.create_item_inventory( item = entity.create_item_inventory(
name=inventory_name, name=display_name,
uom_model=uom, uom_model=uom,
item_type=ItemModel.ITEM_TYPE_MATERIAL, item_type=ItemModel.ITEM_TYPE_MATERIAL,
inventory_account=account, inventory_account=account,
coa_model=coa, coa_model=coa,
) )
item.additional_info.update(
{
"make": make,
"model": model,
"serie": serie,
"trim": trim,
"year": year,
"exterior": exterior,
"interior": interior,
})
item.save()
messages.success(request, _("Inventory item created successfully")) messages.success(request, _("Inventory item created successfully"))
return response return response
@ -11224,18 +11238,14 @@ def upload_cars(request, dealer_slug, pk=None):
) )
try: try:
if item: if item:
data = [x.strip() for x in item.item_model.name.split("||")] # data = [x.strip() for x in item.item_model.name.split("||")]
make = models.CarMake.objects.filter(is_sa_import=True).get( make = models.CarMake.objects.get(pk=item.addition_info.get("make"))
name=data[0] model = models.CarModel.objects.get(pk=item.addition_info.get("model"))
) trim = models.CarTrim.objects.get(pk=item.addition_info.get("trim"))
model = make.carmodel_set.get(name=data[1]) serie = models.CarSerie.objects.get(pk=item.addition_info.get("serie"))
trim = models.CarTrim.objects.filter( year = item.addition_info.get("year")
name=data[3], id_car_serie__id_car_model=model.id_car_model exterior = models.ExteriorColors.objects.get(pk=item.addition_info.get("exterior"))
).first() interior = models.InteriorColors.objects.get(pk=item.addition_info.get("interior"))
serie = trim.id_car_serie
year = data[4]
exterior = models.ExteriorColors.objects.get(name=data[5])
interior = models.InteriorColors.objects.get(name=data[6])
receiving_date = timezone.now() receiving_date = timezone.now()
vendor_model = item.bill_model.vendor vendor_model = item.bill_model.vendor
vendor = models.Vendor.objects.get(vendor_model=vendor_model) vendor = models.Vendor.objects.get(vendor_model=vendor_model)