diff --git a/inventory/__pycache__/models.cpython-311.pyc b/inventory/__pycache__/models.cpython-311.pyc index d7573387..c95fcdda 100644 Binary files a/inventory/__pycache__/models.cpython-311.pyc and b/inventory/__pycache__/models.cpython-311.pyc differ diff --git a/inventory/signals.py b/inventory/signals.py index ea00a82e..324b626e 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -1,27 +1,15 @@ from random import randint -from django.db.models.signals import post_save, post_delete, pre_delete +from django.db.models.signals import post_save, post_delete,pre_delete from django.dispatch import receiver -<<<<<<< HEAD -from django_ledger.models import ( - EntityModel, - VendorModel, - CustomerModel, - UnitOfMeasureModel, - AccountModel, - ItemModelAbstract, - ItemModel -) -from django.contrib.auth import get_user_model -======= from django_ledger.models import EntityModel ->>>>>>> d57702ea7abaa3ad61315b9d593fbd8c32e314e2 from django.utils.translation import gettext_lazy as _ from . import models + # @receiver(post_save, sender=models.SaleQuotation) # def link_quotation_to_entity(sender, instance, created, **kwargs): # if created: @@ -34,72 +22,21 @@ from . import models # user = instance.user # if user: # user.delete() - -User = get_user_model() - -@receiver(post_save, sender=User) -def create_user_profile(sender, instance, created, **kwargs): - if created: - dealer = models.Dealer.objects.create(user=instance, name=instance.username) - # dealer.user.set_password("Tenhal@123") - dealer.save() - -@receiver(post_save, sender=models.Car) -def create_product_for_car(sender, instance, created, **kwargs): - if created: - entity = EntityModel.objects.get(name=instance.dealer.get_root_dealer.name) - - product_model = entity.create_item_product( - name=f"{instance.year} {instance.id_car_make} {instance.id_car_model} {instance.id_car_trim}", - uom_model=entity.get_uom_all().first(), - item_type=ItemModel.ITEM_TYPE_OTHER, - coa_model=entity.get_default_coa(), - ) - print(f"Created product: {product_model.name}") - - -@receiver(post_save, sender=models.CarFinance) -def update_product_default_value(sender, instance, **kwargs): - # Get the associated car - car = instance.car - - # Get the entity associated with the dealer - entity = EntityModel.objects.get(name=car.dealer.get_root_dealer.name) # Assuming the dealer's name matches the entity name - - # Get the product in Django Ledger associated with the car - items_products = entity.get_items_products() - - try: - product_model = items_products.get( - name=f"{car.year} {car.id_car_make} {car.id_car_model} {car.id_car_trim}" - ) - except ItemModel.DoesNotExist: - print(f"Product for car {car} does not exist in Django Ledger.") - return - - # Update the default value per unit of measure for the product - product_model.default_amount = instance.selling_price - product_model.save() - - print(f"Updated product {product_model.name} with default value: {product_model.default_amount}") - @receiver(post_save, sender=models.Car) def create_car_location(sender, instance, created, **kwargs): """ - Signal to create or update the car's location when a car instance is saved. - """ + Signal to create or update the car's location when a car instance is saved. + """ try: if created: if instance.dealer is None: - raise ValueError( - f"Cannot create CarLocation for car {instance.vin}: dealer is missing." - ) + raise ValueError(f"Cannot create CarLocation for car {instance.vin}: dealer is missing.") models.CarLocation.objects.create( car=instance, owner=instance.dealer, showroom=instance.dealer, - description=f"Initial location set for car {instance.vin}.", + description=f"Initial location set for car {instance.vin}." ) print("Car Location created") except Exception as e: @@ -126,27 +63,6 @@ def update_car_status_on_reservation_delete(sender, instance, **kwargs): @receiver(post_save, sender=models.Dealer) def create_ledger_entity(sender, instance, created, **kwargs): if created: -<<<<<<< HEAD - # Group.objects.get(name=instance.dealer_type.lower()).user_set.add(instance.user) - try: - entity, created = EntityModel.objects.get_or_create( - name=instance.get_root_dealer.name, - admin=instance.get_root_dealer.user, - # address_1=instance.address, - accrual_method=False, - fy_start_month=1, - depth=0, - ) - if created: - default_coa = entity.create_chart_of_accounts( - assign_as_default=True, commit=True, coa_name=_("Chart of Accounts") - ) - if default_coa: - entity.populate_default_coa( - activate_accounts=True, coa_model=default_coa - ) - print(f"Ledger entity created for Dealer: {instance.name}") -======= entity, created = EntityModel.objects.get_or_create( name=instance.get_root_dealer.name, admin=instance.get_root_dealer.user, @@ -163,67 +79,66 @@ def create_ledger_entity(sender, instance, created, **kwargs): if default_coa: entity.populate_default_coa(activate_accounts=True, coa_model=default_coa) print(f"Ledger entity created for Dealer: {instance.name}") ->>>>>>> d57702ea7abaa3ad61315b9d593fbd8c32e314e2 - entity.create_account( - coa_model=default_coa, - code="10100", - role='asset_ca_cash', - name=_('Cash'), - balance_type="debit", - ) - entity.create_account( - coa_model=default_coa, - code="11000", - role='asset_ca_recv', - name=_('Accounts Receivable'), - balance_type="debit", - ) - entity.create_account( - coa_model=default_coa, - code="12000", - role='asset_ca_inv', - name=_('Inventory'), - balance_type="debit", - active=True) - - entity.create_account( - coa_model=default_coa, - code="20100", - role='lia_cl_acc_payable', - name=_('Accounts Payable'), - balance_type="credit", - active=True) - - entity.create_account( - coa_model=default_coa, - code="40100", - role='in_operational', - name=_('Sales Income'), - balance_type="credit", - active=True) - - entity.create_account( - coa_model=default_coa, - code="50100", - role='cogs_regular', - name=_('Cost of Goods Sold'), - balance_type="debit", - active=True) - except Exception as e: - print(f"Failed to create Ledger entity for Dealer: {instance.name}. Error: {e}") - - # entity = EntityModel.objects.filter(name=instance.dealer.name).first() + # entity.create_account( + # coa_model=coa, + # code=1010, + # role='asset_ca_cash', + # name=_('Cash'), + # balance_type="debit", + # ) + # entity.create_account( + # coa_model=coa, + # code=1100, + # role='asset_ca_recv', + # name=_('Accounts Receivable'), + # balance_type="debit", + # ) + # entity.create_account( + # coa_model=coa, + # code=1200, + # role='asset_ca_inv', + # name=_('Inventory'), + # balance_type="debit", + # active=True) # + # entity.create_account( + # coa_model=coa, + # code=2010, + # role='lia_cl_acc_payable', + # name=_('Accounts Payable'), + # balance_type="credit", + # active=True) + # + # entity.create_account( + # coa_model=coa, + # code=4010, + # role='in_operational', + # name=_('Sales Income'), + # balance_type="credit", + # active=True) + # + # entity.create_account( + # coa_model=coa, + # code=5010, + # role='cogs_regular', + # name=_('Cost of Goods Sold'), + # balance_type="debit", + # active=True) + + + # uom_name = _("Unit") # unit_abbr = _("U") # # entity.create_uom(uom_name, unit_abbr) + # Create Vendor @receiver(post_save, sender=models.Vendor) def create_ledger_vendor(sender, instance, created, **kwargs): + if created: entity = EntityModel.objects.filter(name=instance.dealer.name).first() @@ -238,8 +153,8 @@ def create_ledger_vendor(sender, instance, created, **kwargs): additional_info={ "arabic_name": instance.arabic_name, "contact_person": instance.contact_person, - }, - ) + }) + print(f"VendorModel created for Vendor: {instance.name}") @@ -247,9 +162,7 @@ def create_ledger_vendor(sender, instance, created, **kwargs): @receiver(post_save, sender=models.Customer) def create_customer(sender, instance, created, **kwargs): if created: - entity = EntityModel.objects.filter( - name=instance.dealer.get_root_dealer.name - ).first() + entity = EntityModel.objects.filter(name=instance.dealer.get_root_dealer.name).first() name = f"{instance.first_name} {instance.middle_name} {instance.last_name}" entity.create_customer( @@ -261,7 +174,7 @@ def create_customer(sender, instance, created, **kwargs): "sales_tax_rate": 0.15, "active": True, "hidden": False, - "additional_info": {}, + "additional_info": {} } )