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' %}