From 081aa01b700ae70792a50300f3863652f68990dc Mon Sep 17 00:00:00 2001 From: ismail Date: Tue, 16 Sep 2025 17:08:23 +0300 Subject: [PATCH] more updates --- inventory/models.py | 18 +++++++++++------- inventory/override.py | 2 +- inventory/signals.py | 16 ++++++++++++---- templates/purchase_orders/po_list.html | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/inventory/models.py b/inventory/models.py index 69db6cf8..920d23df 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -911,14 +911,18 @@ class Car(Base): self.save() def get_active_estimates(self): - qs = self.item_model.itemtransactionmodel_set.exclude(ce_model__status="canceled") + try: + qs = self.item_model.itemtransactionmodel_set.exclude(ce_model__status="canceled") - data = [] - for item in qs: - x = ExtraInfo.objects.filter(object_id=item.ce_model.pk,content_type=ContentType.objects.get_for_model(EstimateModel)).first() - if x: - data.append(x) - return data + data = [] + for item in qs: + x = ExtraInfo.objects.filter(object_id=item.ce_model.pk,content_type=ContentType.objects.get_for_model(EstimateModel)).first() + if x: + data.append(x) + return data + except Exception as e: + logger.error(f"Error getting active estimates for car {self.vin} error: {e}") + return [] @property def logo(self): diff --git a/inventory/override.py b/inventory/override.py index 5fc195f3..f95ca4b3 100644 --- a/inventory/override.py +++ b/inventory/override.py @@ -625,6 +625,7 @@ class BillModelUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateVie f"Bill {self.object.bill_number} successfully updated.", extra_tags="is-success", ) + return super().form_valid(form) def get(self, request, dealer_slug, entity_slug, bill_pk, *args, **kwargs): @@ -693,7 +694,6 @@ class BillModelUpdateView(LoginRequiredMixin, PermissionRequiredMixin, UpdateVie message=f"Items for Invoice {bill_model.bill_number} saved.", level=messages.SUCCESS, ) - # if valid get saved formset from DB return HttpResponseRedirect( redirect_to=reverse( diff --git a/inventory/signals.py b/inventory/signals.py index 35be1ca7..7d38be84 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -991,14 +991,22 @@ def create_dealer_settings(sender, instance, created, **kwargs): # # save_journal(instance,ledger,vendor) +@receiver(post_save, sender=BillModel) +def save_po(sender, instance, created, **kwargs): + try: + if instance.is_paid() and instance.itemtransactionmodel_set.first().po_model: + instance.itemtransactionmodel_set.first().po_model.save() + except Exception as e: + pass @receiver(post_save, sender=PurchaseOrderModel) def create_po_item_upload(sender, instance, created, **kwargs): - if instance.po_status == "fulfilled": + if instance.po_status == "fulfilled" or instance.po_status == 'approved': for item in instance.get_itemtxs_data()[0]: dealer = models.Dealer.objects.get(entity=instance.entity) - models.PoItemsUploaded.objects.get_or_create( - dealer=dealer, po=instance, item=item, status="fulfilled" - ) + if item.bill_model.is_paid(): + models.PoItemsUploaded.objects.get_or_create( + dealer=dealer, po=instance, item=item, status=instance.po_status + ) # @receiver(post_save, sender=models.Staff) diff --git a/templates/purchase_orders/po_list.html b/templates/purchase_orders/po_list.html index 3b9f71c5..901ebfd3 100644 --- a/templates/purchase_orders/po_list.html +++ b/templates/purchase_orders/po_list.html @@ -85,7 +85,7 @@ {% trans 'Purchase Order Detail' %} {% endif %} - {% if po.po_status == 'fulfilled' %} + {% if po.po_status == 'fulfilled' or po.po_status == 'approved' %} {% if perms.inventory.add_car %} {% trans 'Inventory Items' %}