Po upload update signals #84
@ -13,6 +13,7 @@ from django_ledger.models import (
|
|||||||
TransactionModel,
|
TransactionModel,
|
||||||
LedgerModel,
|
LedgerModel,
|
||||||
AccountModel,
|
AccountModel,
|
||||||
|
PurchaseOrderModel
|
||||||
)
|
)
|
||||||
from . import models
|
from . import models
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
@ -892,3 +893,10 @@ def update_finance_cost(sender, instance, created, **kwargs):
|
|||||||
# save_journal(instance,ledger,vendor)
|
# save_journal(instance,ledger,vendor)
|
||||||
# else:
|
# else:
|
||||||
# save_journal(instance,ledger,vendor)
|
# save_journal(instance,ledger,vendor)
|
||||||
|
|
||||||
|
@receiver(post_save, sender=PurchaseOrderModel)
|
||||||
|
def create_po_item_upload(sender,instance,created,**kwargs):
|
||||||
|
if instance.po_status == "fulfilled":
|
||||||
|
for item in instance.get_itemtxs_data()[0]:
|
||||||
|
dealer = models.Dealer.objects.get(entity=instance.entity)
|
||||||
|
models.PoItemsUploaded.objects.create(dealer=dealer,po=instance, item=item, status="fulfilled")
|
||||||
|
|||||||
@ -9,7 +9,7 @@ from django.conf.urls import handler403, handler400, handler404, handler500
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
# main URLs
|
# main URLs
|
||||||
path("", views.HomeView.as_view(), name="home"),
|
path("", views.HomeView.as_view(), name="home"),
|
||||||
# path("<slug:dealer_slug>/", views.HomeView.as_view(), name="home"),
|
path("<slug:dealer_slug>/", views.HomeView.as_view(), name="home"),
|
||||||
path("welcome/", views.WelcomeView.as_view(), name="welcome"),
|
path("welcome/", views.WelcomeView.as_view(), name="welcome"),
|
||||||
# Accounts URLs
|
# Accounts URLs
|
||||||
# path("login/", allauth_views.LoginView.as_view(template_name="account/login.html"), name="account_login"),
|
# path("login/", allauth_views.LoginView.as_view(template_name="account/login.html"), name="account_login"),
|
||||||
|
|||||||
@ -1573,12 +1573,25 @@ class CarDeleteView(
|
|||||||
|
|
||||||
model = models.Car
|
model = models.Car
|
||||||
template_name = "inventory/car_confirm_delete.html"
|
template_name = "inventory/car_confirm_delete.html"
|
||||||
success_url = reverse_lazy("inventory_stats")
|
|
||||||
permission_required = ["inventory.delete_car"]
|
permission_required = ["inventory.delete_car"]
|
||||||
|
|
||||||
def delete(self, request, *args, **kwargs):
|
def delete(self, request, *args, **kwargs):
|
||||||
messages.success(request, _("Car deleted successfully"))
|
messages.success(request, _("Car deleted successfully"))
|
||||||
return super().delete(request, *args, **kwargs)
|
return super().delete(request, *args, **kwargs)
|
||||||
|
def get_success_url(self):
|
||||||
|
"""
|
||||||
|
Returns the URL to redirect to after a successful car deletion.
|
||||||
|
It dynamically includes the dealer_slug from the URL.
|
||||||
|
"""
|
||||||
|
|
||||||
|
dealer_slug = self.kwargs.get('dealer_slug')
|
||||||
|
if dealer_slug:
|
||||||
|
return reverse_lazy("car_list", kwargs={'dealer_slug': dealer_slug})
|
||||||
|
else:
|
||||||
|
|
||||||
|
messages.error(self.request, _("Could not determine dealer for redirection."))
|
||||||
|
return reverse_lazy("home")
|
||||||
|
|
||||||
|
|
||||||
class CarLocationCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
|
class CarLocationCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView):
|
||||||
@ -9522,13 +9535,7 @@ class PurchaseOrderMarkAsApprovedView(BasePurchaseOrderActionActionView):
|
|||||||
|
|
||||||
class PurchaseOrderMarkAsFulfilledView(BasePurchaseOrderActionActionView):
|
class PurchaseOrderMarkAsFulfilledView(BasePurchaseOrderActionActionView):
|
||||||
action_name = "mark_as_fulfilled"
|
action_name = "mark_as_fulfilled"
|
||||||
|
|
||||||
def get(self, request, dealer_slug, entity_slug, po_pk, *args, **kwargs):
|
|
||||||
po = get_object_or_404(PurchaseOrderModel, pk=po_pk)
|
|
||||||
for item in po.get_itemtxs_data()[0]:
|
|
||||||
models.PoItemsUploaded.objects.create(po=po, item=item, status="fulfilled")
|
|
||||||
return super().get(request, dealer_slug, entity_slug, po_pk, *args, **kwargs)
|
|
||||||
|
|
||||||
class PurchaseOrderMarkAsCanceledView(BasePurchaseOrderActionActionView):
|
class PurchaseOrderMarkAsCanceledView(BasePurchaseOrderActionActionView):
|
||||||
action_name = "mark_as_canceled"
|
action_name = "mark_as_canceled"
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h1>{% if object %}{{ _("Update") }}{% else %}{{ _("Create") }}{% endif %}</h1>
|
<h1>{% if object %}{{ _("Update Lead") }}{% else %}{{ _("Create New Lead") }}{% endif %}</h1>
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-sm-6 col-md-8">
|
<div class="col-sm-6 col-md-8">
|
||||||
|
|
||||||
|
|||||||
@ -77,7 +77,7 @@
|
|||||||
<div class="kanban-column bg-body">
|
<div class="kanban-column bg-body">
|
||||||
<div class="kanban-header opacity-75"><span class="text-body">{{ _("New Leads")}} ({{new|length}})</span></div>
|
<div class="kanban-header opacity-75"><span class="text-body">{{ _("New Leads")}} ({{new|length}})</span></div>
|
||||||
{% for lead in new %}
|
{% for lead in new %}
|
||||||
<a href="{% url 'lead_detail' lead.slug %}">
|
<a href="{% url 'lead_detail' request.dealer.slug lead.slug %}">
|
||||||
<div class="lead-card">
|
<div class="lead-card">
|
||||||
<strong>{{lead.full_name|capfirst}}</strong><br>
|
<strong>{{lead.full_name|capfirst}}</strong><br>
|
||||||
<small>{{lead.email}}</small><br>
|
<small>{{lead.email}}</small><br>
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<ul class="dropdown-menu dropdown-menu-end p-0" style="z-index: 9999;">
|
<ul class="dropdown-menu dropdown-menu-end p-0" style="z-index: 9999;">
|
||||||
<li>
|
<li>
|
||||||
{% if opportunity.estimate %}
|
{% if opportunity.estimate %}
|
||||||
<a class="dropdown-item" href="{% url 'estimate_detail' opportunity.estimate.pk %}">{{ _("View Quotation")}}</a>
|
<a class="dropdown-item" href="{% url 'estimate_detail' request.dealer.slug opportunity.estimate.pk %}">{{ _("View Quotation")}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="dropdown-item" href="{% url 'estimate_create_from_opportunity' request.dealer.slug opportunity.slug %}">{{ _("Create Quotation")}}</a>
|
<a class="dropdown-item" href="{% url 'estimate_create_from_opportunity' request.dealer.slug opportunity.slug %}">{{ _("Create Quotation")}}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -104,7 +104,7 @@
|
|||||||
<h5 class="mb-0 text-body-highlight me-2">{{ _("Estimate") }}</h5>
|
<h5 class="mb-0 text-body-highlight me-2">{{ _("Estimate") }}</h5>
|
||||||
</div>
|
</div>
|
||||||
{% if opportunity.estimate %}
|
{% if opportunity.estimate %}
|
||||||
<a class="dropdown-item" href="{% url 'estimate_detail' opportunity.estimate.pk %}">{{ _("View Quotation")}}</a>
|
<a class="dropdown-item" href="{% url 'estimate_detail' request.dealer.slug opportunity.estimate.pk %}">{{ _("View Quotation")}}</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>{{ _("No Estimate") }}</p>
|
<p>{{ _("No Estimate") }}</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@ -119,7 +119,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex gap-2">
|
<div class="d-flex gap-2">
|
||||||
<a class="btn btn-sm btn-phoenix-primary" href="{% url 'opportunity_detail' request.dealer.slug opportunity.slug %}">
|
<a class="btn btn-sm btn-phoenix-primary" href="{% url 'opportunity_detail' request.dealer.slug opportunity.slug %}">
|
||||||
{{ _("View Details") }} <i class="fa-solid fa-eye ms-2"></i>
|
{{ _("View Details") }} <i class="fa-solid fa-eye ms-2"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-sm btn-phoenix-success" href="{% url 'update_opportunity' request.dealer.slug opportunity.slug %}">
|
<a class="btn btn-sm btn-phoenix-success" href="{% url 'update_opportunity' request.dealer.slug opportunity.slug %}">
|
||||||
|
|||||||
@ -109,7 +109,11 @@
|
|||||||
{{ _("Delete") }}
|
{{ _("Delete") }}
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-sm btn-phoenix-secondary"
|
<a class="btn btn-sm btn-phoenix-secondary"
|
||||||
|
<<<<<<< HEAD
|
||||||
|
href="{% url 'group_list' request.dealer.slug%}">
|
||||||
|
=======
|
||||||
href="{% url 'group_list' request.dealer.slug %}">
|
href="{% url 'group_list' request.dealer.slug %}">
|
||||||
|
>>>>>>> c9fad7b79c346875a636122fdc7514814180dbc7
|
||||||
<i class="fa-solid fa-arrow-left"></i>
|
<i class="fa-solid fa-arrow-left"></i>
|
||||||
{% trans "Back to List" %}
|
{% trans "Back to List" %}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@ -71,7 +71,7 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{% url 'estimate_create' request.dealer.slug %}">
|
<a class="nav-link" href="{% url 'estimate_create' request.dealer.slug %}">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<span class="nav-link-icon"><span class="fas fa-list-ul"></span></span><span class="nav-link-text">{% trans "create quotation"|capfirst %}</span>
|
<span class="nav-link-icon"><span class="fas fa-handshake"></span></span><span class="nav-link-text">{% trans "create quotation"|capfirst %}</span>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@ -80,12 +80,20 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{% url 'estimate_list' request.dealer.slug %}">
|
<a class="nav-link" href="{% url 'estimate_list' request.dealer.slug %}">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<span class="nav-link-icon"><span class="fas fa-clipboard-list"></span></span><span class="nav-link-text">{% trans "quotations"|capfirst %}</span>
|
<span class="nav-link-icon"><span class="fas fa-handshake"></span></span><span class="nav-link-text">{% trans "quotations"|capfirst %}</span>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="{% url 'sales_list' request.dealer.slug %}">
|
||||||
|
<div class="d-flex align-items-center">
|
||||||
|
<span class="nav-link-icon"><span class="fas fa-money-check"></span></span><span class="nav-link-text">{% trans "Sales Orders"|capfirst %}</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
{% if perms.django_ledger.view_invoicemodel %}
|
{% if perms.django_ledger.view_invoicemodel %}
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{% url 'invoice_list' request.dealer.slug %}">
|
<a class="nav-link" href="{% url 'invoice_list' request.dealer.slug %}">
|
||||||
@ -104,13 +112,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="{% url 'sales_list' request.dealer.slug %}">
|
|
||||||
<div class="d-flex align-items-center">
|
|
||||||
<span class="nav-link-icon"><span class="fas fa-money-check"></span></span><span class="nav-link-text">{% trans "Sales Orders"|capfirst %}</span>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -470,7 +472,7 @@
|
|||||||
<div class="my-2 text-center fw-bold fs-10 text-body-quaternary">
|
<div class="my-2 text-center fw-bold fs-10 text-body-quaternary">
|
||||||
<a class="text-body-quaternary me-1" href="">Privacy policy</a>•<a class="text-body-quaternary mx-1" href="">Terms</a>•<a class="text-body-quaternary ms-1" href="">Cookies</a>
|
<a class="text-body-quaternary me-1" href="">Privacy policy</a>•<a class="text-body-quaternary mx-1" href="">Terms</a>•<a class="text-body-quaternary ms-1" href="">Cookies</a>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="px-3">
|
<div class="px-3">
|
||||||
<a class="btn btn-phoenix-success d-flex flex-center w-100" href="{% url 'account_login' %}"> <span class="me-2" data-feather="log-in"> </span>{% trans 'Sign In' %}</a>
|
<a class="btn btn-phoenix-success d-flex flex-center w-100" href="{% url 'account_login' %}"> <span class="me-2" data-feather="log-in"> </span>{% trans 'Sign In' %}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -3,11 +3,13 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}Delete Car{% endblock %}
|
{% block title %}Delete Car{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<div class="mt-4 ms-4">
|
||||||
<h1>Delete Car</h1>
|
<h1>Delete Car</h1>
|
||||||
<p>Are you sure you want to delete the car "{{ car }}"?</p>
|
<p class="text-danger">Are you sure you want to delete the car "{{ car }}"?</p>
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<button type="submit" class="btn btn-phoenix-danger">Confirm Delete</button>
|
<button type="submit" class="btn btn-phoenix-danger">Confirm Delete</button>
|
||||||
<a href="{% url 'car_list' request.dealer.slug %}" class="btn btn-phoenix-secondary">{% trans 'Cancel' %}</a>
|
<a href="{% url 'car_list' request.dealer.slug %}" class="btn btn-phoenix-secondary">{% trans 'Cancel' %}</a>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@ -305,7 +305,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block customJS %}
|
{% block customJS %}
|
||||||
|
|||||||
@ -99,7 +99,7 @@
|
|||||||
<div class="btn-reveal-trigger position-static">
|
<div class="btn-reveal-trigger position-static">
|
||||||
<button class="btn btn-sm dropdown-toggle dropdown-caret-none transition-none btn-reveal fs-10" type="button" data-bs-toggle="dropdown" data-boundary="window" aria-haspopup="true" aria-expanded="false" data-bs-reference="parent"><span class="fas fa-ellipsis-h fs-10"></span></button>
|
<button class="btn btn-sm dropdown-toggle dropdown-caret-none transition-none btn-reveal fs-10" type="button" data-bs-toggle="dropdown" data-boundary="window" aria-haspopup="true" aria-expanded="false" data-bs-reference="parent"><span class="fas fa-ellipsis-h fs-10"></span></button>
|
||||||
<div class="dropdown-menu dropdown-menu-end py-2">
|
<div class="dropdown-menu dropdown-menu-end py-2">
|
||||||
<a class="dropdown-item" href="{% url 'payment_details' request.dealer.slug tx.journal_entry.pk %}">{% trans 'view'|capfirst %}</a>
|
<a class="dropdown-item text-success-dark" href="{% url 'payment_details' request.dealer.slug tx.journal_entry.pk %}">{% trans 'view Transactions'|capfirst %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
<button class="btn btn-sm dropdown-toggle dropdown-caret-none transition-none btn-reveal fs-10" type="button" data-bs-toggle="dropdown" data-boundary="window" aria-haspopup="true" aria-expanded="false" data-bs-reference="parent"><span class="fas fa-ellipsis-h fs-10"></span></button>
|
<button class="btn btn-sm dropdown-toggle dropdown-caret-none transition-none btn-reveal fs-10" type="button" data-bs-toggle="dropdown" data-boundary="window" aria-haspopup="true" aria-expanded="false" data-bs-reference="parent"><span class="fas fa-ellipsis-h fs-10"></span></button>
|
||||||
<div class="dropdown-menu dropdown-menu-end py-2">
|
<div class="dropdown-menu dropdown-menu-end py-2">
|
||||||
<a href="{% url 'account_detail' request.dealer.slug account.uuid %}" class="dropdown-item text-success-dark">
|
<a href="{% url 'account_detail' request.dealer.slug account.uuid %}" class="dropdown-item text-success-dark">
|
||||||
{% trans "View" %}
|
{% trans "View Journal Entries" %}
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
<button class="dropdown-item text-danger" data-bs-toggle="modal" data-bs-target="#deleteModal">{% trans "Delete" %}</button>
|
<button class="dropdown-item text-danger" data-bs-toggle="modal" data-bs-target="#deleteModal">{% trans "Delete" %}</button>
|
||||||
|
|||||||
@ -12,7 +12,16 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<h3>{% trans "Add Organization" %}</h3>
|
<!--Heading-->
|
||||||
|
<h3>
|
||||||
|
{% if object %}
|
||||||
|
{% trans 'Update Organization'%}
|
||||||
|
{% else %}
|
||||||
|
{% trans 'Add New Organization'%}
|
||||||
|
{% endif %}
|
||||||
|
</h3>
|
||||||
|
<!--form body-->
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-sm-6 col-md-8">
|
<div class="col-sm-6 col-md-8">
|
||||||
<form class="form" method="post" enctype="multipart/form-data">
|
<form class="form" method="post" enctype="multipart/form-data">
|
||||||
|
|||||||
@ -75,7 +75,7 @@
|
|||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title" id="deleteModalLabel">
|
<h5 class="modal-title" id="deleteModalLabel">
|
||||||
{% trans 'Delete Vendor' %}
|
{% trans 'Delete Organization' %}
|
||||||
<span data-feather="alert-circle"></span>
|
<span data-feather="alert-circle"></span>
|
||||||
</h5>
|
</h5>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
|||||||
@ -10,14 +10,12 @@
|
|||||||
|
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="d-flex flex-column gap-3">
|
<div class="d-flex flex-column gap-3">
|
||||||
<!-- PO Card -->
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% include 'purchase_orders/includes/card_po.html' with dealer_slug=request.dealer.slug po_model=po_model entity_slug=entity_slug style='po-detail' %}
|
{% include 'purchase_orders/includes/card_po.html' with dealer_slug=request.dealer.slug po_model=po_model entity_slug=entity_slug style='po-detail' %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- PO List Button -->
|
|
||||||
<a class="btn btn-phoenix-primary w-100 py-2"
|
<a class="btn btn-phoenix-primary w-100 py-2"
|
||||||
href="{% url 'purchase_order_list' request.dealer.slug %}">
|
href="{% url 'purchase_order_list' request.dealer.slug %}">
|
||||||
<i class="fas fa-list me-2"></i>{% trans 'PO List' %}
|
<i class="fas fa-list me-2"></i>{% trans 'PO List' %}
|
||||||
@ -25,9 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Main Content -->
|
<div class="col-lg-12">
|
||||||
<div class="col-lg-8">
|
|
||||||
<!-- Stats Cards -->
|
|
||||||
<div class="card mb-4">
|
<div class="card mb-4">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row text-center">
|
<div class="row text-center">
|
||||||
@ -50,30 +46,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
<div class="col-lg-12">
|
<div class="table-responsive">
|
||||||
<!-- PO Details -->
|
{% po_item_table1 po_items %}
|
||||||
<div class="card">
|
|
||||||
<div class="card-body">
|
|
||||||
<h3 class="h4 fw-light mb-2">{{ po_model.po_title }}</h3>
|
|
||||||
|
|
||||||
<!-- PO Items Table -->
|
|
||||||
<div class="table-responsive">
|
|
||||||
{% po_item_table1 po_items %}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--POS list-->
|
|
||||||
<a class="btn btn-phoenix-primary w-100 py-2 mt-2"
|
|
||||||
href="{% url 'purchase_order_list' request.dealer.slug %}">
|
|
||||||
<i class="fas fa-list me-2"></i>{% trans 'PO List' %}
|
</div>
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% include "purchase_orders/includes/mark_as.html" %}
|
{% include "purchase_orders/includes/mark_as.html" %}
|
||||||
</div>
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
@ -91,15 +77,15 @@
|
|||||||
document.getElementById('POModalTitle').textContent = title;
|
document.getElementById('POModalTitle').textContent = title;
|
||||||
|
|
||||||
document.getElementById('POModalBody').innerHTML = `
|
document.getElementById('POModalBody').innerHTML = `
|
||||||
<div class="d-flex justify-content-center gap-3">
|
<div class="d-flex justify-content-center gap-3">
|
||||||
<a class="btn btn-phoenix-primary px-4" href="${actionUrl}">
|
<a class="btn btn-phoenix-primary px-4" href="${actionUrl}">
|
||||||
<i class="fas fa-check-circle me-2"></i>${buttonText}
|
<i class="fas fa-check-circle me-2"></i>${buttonText}
|
||||||
</a>
|
</a>
|
||||||
<button class="btn btn-phoenix-secondary" data-bs-dismiss="modal">
|
<button class="btn btn-phoenix-secondary" data-bs-dismiss="modal">
|
||||||
<i class="fas fa-times me-2"></i>Cancel
|
<i class="fas fa-times me-2"></i>Cancel
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
modal.show();
|
modal.show();
|
||||||
};
|
};
|
||||||
|
|||||||
@ -74,12 +74,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-items-center gap-2">
|
<div class="d-flex align-items-center gap-2">
|
||||||
{% if estimate.invoicemodel_set.first %}
|
|
||||||
<a href="{% url 'invoice_detail' request.dealer.slug estimate.invoicemodel_set.first.pk %}" class="btn btn-phoenix-primary btn-sm" type="button"><i class="fa-solid fa-receipt"></i>
|
|
||||||
{{ _("View Invoice")}}</a>
|
|
||||||
<button class="btn btn-phoenix-primary" data-bs-toggle="modal" data-bs-target="#POModal"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-receipt"></i> {% trans 'View Purchase Order' %}</span></button>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if estimate.status == 'draft' %}
|
{% if estimate.status == 'draft' %}
|
||||||
<a href="{% url 'send_email' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary me-2"><span class="fa-regular fa-paper-plane me-sm-2"></span><span class="d-none d-sm-inline-block">{% trans 'Send Quotation' %}</span></a>
|
<a href="{% url 'send_email' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary me-2"><span class="fa-regular fa-paper-plane me-sm-2"></span><span class="d-none d-sm-inline-block">{% trans 'Send Quotation' %}</span></a>
|
||||||
<button id="mark_as_sent_estimate" class="btn btn-phoenix-secondary" onclick="setFormAction('review')" data-bs-toggle="modal" data-bs-target="#confirmModal"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-check-double"></i> {% trans 'Mark As Sent' %}</span></button>
|
<button id="mark_as_sent_estimate" class="btn btn-phoenix-secondary" onclick="setFormAction('review')" data-bs-toggle="modal" data-bs-target="#confirmModal"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-check-double"></i> {% trans 'Mark As Sent' %}</span></button>
|
||||||
@ -87,16 +81,23 @@
|
|||||||
<button id="accept_estimate" onclick="setFormAction('approved')" class="btn btn-phoenix-secondary" data-bs-toggle="modal" data-bs-target="#confirmModal"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-check-double"></i> {% trans 'Mark As Accept' %}</span></button>
|
<button id="accept_estimate" onclick="setFormAction('approved')" class="btn btn-phoenix-secondary" data-bs-toggle="modal" data-bs-target="#confirmModal"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-check-double"></i> {% trans 'Mark As Accept' %}</span></button>
|
||||||
{% elif estimate.status == 'approved' %}
|
{% elif estimate.status == 'approved' %}
|
||||||
|
|
||||||
{% if estimate.sale_orders.first %}
|
{% if estimate.sale_orders.first %}
|
||||||
|
<!--if sale order exist-->
|
||||||
<a href="{% url 'invoice_create' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-receipt"></i> {% trans 'Create Invoice' %}</span></a>
|
<a href="{% url 'invoice_create' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-receipt"></i> {% trans 'Create Invoice' %}</span></a>
|
||||||
<a href="{% url 'preview_sale_order' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block">{{ _("Preview Sale Order") }}</span></a>
|
<a href="{% url 'order_detail' request.dealer.slug estimate.sale_orders.first.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block">{{ _("Preview Sale Order") }}</span></a>
|
||||||
{% else %}
|
|
||||||
|
{% else %}
|
||||||
<a href="{% url 'create_sale_order' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-file-import"></i> {% trans 'Create Sale Order' %}</span></a>
|
<a href="{% url 'create_sale_order' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block"><i class="fa-solid fa-file-import"></i> {% trans 'Create Sale Order' %}</span></a>
|
||||||
{% comment %} {% endcomment %}
|
{% comment %} {% endcomment %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif estimate.status == 'in_review' %}
|
|
||||||
<a href="{% url 'estimate_preview' request.dealer.slug estimate.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block"><i class="fa-regular fa-eye"></i> {% trans 'Preview' %}</span></a>
|
|
||||||
|
{% elif estimate.status == 'completed' %}
|
||||||
|
<a href="{% url 'order_detail' request.dealer.slug estimate.sale_orders.first.pk %}" class="btn btn-phoenix-primary"><span class="d-none d-sm-inline-block">{{ _("Preview Sale Order") }}</span></a>
|
||||||
|
<a href="{% url 'invoice_detail' request.dealer.slug estimate.invoicemodel_set.first.pk %}" class="btn btn-phoenix-primary btn-sm" type="button"><i class="fa-solid fa-receipt"></i>
|
||||||
|
{{ _("View Invoice")}}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if estimate.can_cancel %}
|
{% if estimate.can_cancel %}
|
||||||
{% if perms.django_ledger.change_estimatemodel %}
|
{% if perms.django_ledger.change_estimatemodel %}
|
||||||
<button class="btn btn-phoenix-danger" data-bs-toggle="modal" data-bs-target="#CancelModal"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</button>
|
<button class="btn btn-phoenix-danger" data-bs-toggle="modal" data-bs-target="#CancelModal"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</button>
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-responsive scrollbar mx-n1 px-1">
|
<div class="table-responsive scrollbar mx-n1 px-1">
|
||||||
<div class="card-header ">
|
<div class="card-header ">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<h4 class="my-4">Groups</h4>
|
<h4 class="my-4">Groups</h4>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user