diff --git a/inventory/views.py b/inventory/views.py index a79df747..dc37e09f 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -5438,7 +5438,21 @@ def update_estimate_additionals(request, dealer_slug, pk): if form.is_valid(): estimate = get_object_or_404(EstimateModel, pk=pk) car = estimate.get_itemtxs_data()[0].first().item_model.car - car.additional_services.set(form.cleaned_data["additional_finances"]) + additionals = form.cleaned_data["additional_finances"] + car.additional_services.set(additionals) + additionals = [additional.pk for additional in additionals] + extra_info = models.ExtraInfo.objects.get( + dealer=dealer, + content_type=ContentType.objects.get_for_model(EstimateModel), + object_id=estimate.pk, + ) + extra_info.data.update({"additionals": additionals}) + extra_info.save() + # for i in additionals: + + # if ex: + # ex.delete() + car.save() messages.success(request, "Additional Finances updated successfully") return redirect("estimate_detail", dealer_slug=dealer_slug, pk=pk) @@ -12540,10 +12554,18 @@ def create_estimate_for_car(request, dealer_slug, slug): @require_POST def estimate_create_from_opportunity(request, dealer_slug, slug): opportunity = get_object_or_404(models.Opportunity, slug=slug) + if opportunity.estimate: + messages.error( + request, + "An estimate has already been created for this opportunity.", + ) + return redirect( + "opportunity_detail", dealer_slug=dealer_slug, slug=opportunity.slug + ) dealer = get_object_or_404(models.Dealer, slug=dealer_slug) car = opportunity.car customer = opportunity.customer - # TODO: set safe guard, so it doesnt recreate it + if not all([dealer, car, customer]): messages.error(request, "Please correct the errors below.") return redirect( diff --git a/templates/crm/opportunities/opportunity_detail.html b/templates/crm/opportunities/opportunity_detail.html index 6006563d..7538b364 100644 --- a/templates/crm/opportunities/opportunity_detail.html +++ b/templates/crm/opportunities/opportunity_detail.html @@ -28,7 +28,7 @@ href="{% url 'estimate_detail' request.dealer.slug opportunity.estimate.pk %}">{{ _("View Quotation") }} {% endif %} {% else %} - {% if perms.django_ledger.add_estimatemodel %} + {% if perms.django_ledger.add_estimatemodel and not opportunity.estimate %}