update
This commit is contained in:
parent
feeb882ee5
commit
c79b27148a
Binary file not shown.
Binary file not shown.
@ -23,6 +23,7 @@ urlpatterns += i18n_patterns(
|
|||||||
path('', include('inventory.urls')),
|
path('', include('inventory.urls')),
|
||||||
path('ledger/', include('django_ledger.urls', namespace='django_ledger')),
|
path('ledger/', include('django_ledger.urls', namespace='django_ledger')),
|
||||||
path("haikalbot/", include("haikalbot.urls")),
|
path("haikalbot/", include("haikalbot.urls")),
|
||||||
|
path('appointment/', include('appointment.urls')),
|
||||||
)
|
)
|
||||||
|
|
||||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ astor==0.8.1
|
|||||||
astroid==3.3.5
|
astroid==3.3.5
|
||||||
attrs==23.2.0
|
attrs==23.2.0
|
||||||
autopep8==2.3.1
|
autopep8==2.3.1
|
||||||
babel==2.16.0
|
Babel==2.15.0
|
||||||
beautifulsoup4==4.12.3
|
beautifulsoup4==4.12.3
|
||||||
bleach==6.2.0
|
bleach==6.2.0
|
||||||
blinker==1.9.0
|
blinker==1.9.0
|
||||||
@ -39,6 +39,7 @@ dj-rest-auth==7.0.0
|
|||||||
dj-shop-cart==7.1.1
|
dj-shop-cart==7.1.1
|
||||||
Django==5.1.4
|
Django==5.1.4
|
||||||
django-allauth==65.3.0
|
django-allauth==65.3.0
|
||||||
|
django-appointment==3.7.4
|
||||||
django-autoslug==1.9.9
|
django-autoslug==1.9.9
|
||||||
django-bootstrap5==24.3
|
django-bootstrap5==24.3
|
||||||
django-classy-tags==4.1.0
|
django-classy-tags==4.1.0
|
||||||
@ -123,8 +124,8 @@ packaging==24.2
|
|||||||
pandas==2.2.3
|
pandas==2.2.3
|
||||||
pango==0.0.1
|
pango==0.0.1
|
||||||
pdfkit==1.0.0
|
pdfkit==1.0.0
|
||||||
phonenumbers==8.13.51
|
phonenumbers==8.13.42
|
||||||
pillow==11.0.0
|
pillow==10.4.0
|
||||||
platformdirs==4.3.6
|
platformdirs==4.3.6
|
||||||
prometheus_client==0.21.1
|
prometheus_client==0.21.1
|
||||||
propcache==0.2.1
|
propcache==0.2.1
|
||||||
@ -170,6 +171,7 @@ pywa==2.4.0
|
|||||||
pywhat==5.1.0
|
pywhat==5.1.0
|
||||||
pywhatkit==5.4
|
pywhatkit==5.4
|
||||||
PyYAML==6.0.2
|
PyYAML==6.0.2
|
||||||
|
pyzbar==0.1.9
|
||||||
qrcode==8.0
|
qrcode==8.0
|
||||||
RapidFuzz==3.11.0
|
RapidFuzz==3.11.0
|
||||||
regex==2024.11.6
|
regex==2024.11.6
|
||||||
|
|||||||
BIN
static/images/.DS_Store
vendored
BIN
static/images/.DS_Store
vendored
Binary file not shown.
@ -12,7 +12,13 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="description" content="Haikal - The Backbone of Car Qar: An innovative car inventory management system designed to streamline dealership operations. Manage inventory, sales, transfers, and accounting seamlessly with advanced analytics and intuitive tools. Inspired by Arabic origins, Haikal empowers businesses with precision and efficiency.">
|
<meta name="description" content="Haikal - The Backbone of Car Qar: An innovative car inventory management system designed to streamline dealership operations. Manage inventory, sales, transfers, and accounting seamlessly with advanced analytics and intuitive tools. Inspired by Arabic origins, Haikal empowers businesses with precision and efficiency.">
|
||||||
<title>{% block title %}{% trans 'HAIKAL' %}{% endblock %}</title>
|
<title>
|
||||||
|
{% block title %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
{% block description %}
|
||||||
|
{% endblock %}
|
||||||
|
</title>
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="{% static 'images/favicons/apple-touch-icon.png' %}">
|
<link rel="apple-touch-icon" sizes="180x180" href="{% static 'images/favicons/apple-touch-icon.png' %}">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="{% static 'images/favicons/favicon-32x32.png' %}">
|
<link rel="icon" type="image/png" sizes="32x32" href="{% static 'images/favicons/favicon-32x32.png' %}">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="{% static 'images/favicons/favicon-16x16.png' %}">
|
<link rel="icon" type="image/png" sizes="16x16" href="{% static 'images/favicons/favicon-16x16.png' %}">
|
||||||
@ -41,24 +47,28 @@
|
|||||||
<link href="{% static 'css/user-rtl.min.css' %}" type="text/css" rel="stylesheet" id="user-style-rtl">
|
<link href="{% static 'css/user-rtl.min.css' %}" type="text/css" rel="stylesheet" id="user-style-rtl">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% block extra_css %}{% endblock extra_css %}
|
|
||||||
|
{% block customCSS %}
|
||||||
|
{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<main class="main" id="top">
|
<main class="main" id="top">
|
||||||
{% include 'header.html' %}
|
{% include 'header.html' %}
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
<section class="content">
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<!-- Main content goes here -->
|
{% endblock content%}
|
||||||
{% endblock %}
|
{% block body %}
|
||||||
|
{% endblock body%}
|
||||||
|
|
||||||
|
</section>
|
||||||
{% include 'footer.html' %}
|
{% include 'footer.html' %}
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
{% block extra_js %}{% endblock extra_js %}
|
{% block customJS %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
{% load i18n static %}
|
{% load i18n static %}
|
||||||
|
|
||||||
<nav class="navbar navbar-vertical navbar-expand-lg">
|
<nav class="navbar navbar-vertical navbar-expand-lg">
|
||||||
<div class="collapse navbar-collapse" id="navbarVerticalCollapse">
|
<div class="collapse navbar-collapse" id="navbarVerticalCollapse">
|
||||||
<!-- scrollbar removed-->
|
<!-- scrollbar removed-->
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
{% extends "base.html" %} {% load i18n static custom_filters %} {% block content %}
|
{% extends "base.html" %}
|
||||||
|
{% load i18n static custom_filters %}
|
||||||
|
{% block body %}
|
||||||
<style>
|
<style>
|
||||||
#video {
|
#video {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -17,10 +19,6 @@
|
|||||||
<div class="row g-3">
|
<div class="row g-3">
|
||||||
<form method="post" id="carForm" class="form needs-validation" novalidate>
|
<form method="post" id="carForm" class="form needs-validation" novalidate>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="d-flex flex-column min-vh-100">
|
|
||||||
<div class="d-flex flex-column flex-sm-grow-1 p-4">
|
|
||||||
<main class="d-grid gap-4 p-1">
|
|
||||||
|
|
||||||
<div class="row g-4">
|
<div class="row g-4">
|
||||||
<h3 class="mb-3">{% trans 'Add Car' %}</h3>
|
<h3 class="mb-3">{% trans 'Add Car' %}</h3>
|
||||||
<!-- VIN -->
|
<!-- VIN -->
|
||||||
@ -145,11 +143,6 @@
|
|||||||
{% trans 'Vendor' %}
|
{% trans 'Vendor' %}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
{% if form.vendor.errors %}
|
|
||||||
<div class="text-danger small">
|
|
||||||
{{ form.vendor.errors|striptags }}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -164,16 +157,10 @@
|
|||||||
{% trans 'Stock Type'|capfirst %}
|
{% trans 'Stock Type'|capfirst %}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if form.stock_type.errors %}
|
|
||||||
<div class="text-danger small">
|
|
||||||
{{ form.stock_type.errors|striptags }}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Mileage Card -->
|
<!--Mileage Card-->
|
||||||
<div class="col-lg-4 col-xl-4">
|
<div class="col-lg-4 col-xl-4">
|
||||||
<div class="card h-100">
|
<div class="card h-100">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -181,16 +168,11 @@
|
|||||||
{{ form.mileage|add_class:"form-control form-control-sm" }}
|
{{ form.mileage|add_class:"form-control form-control-sm" }}
|
||||||
<label for="{{ form.mileage.id_for_label }}">{% trans 'Mileage'|capfirst %}</label>
|
<label for="{{ form.mileage.id_for_label }}">{% trans 'Mileage'|capfirst %}</label>
|
||||||
</div>
|
</div>
|
||||||
{% if form.mileage.errors %}
|
|
||||||
<div class="text-danger small">
|
|
||||||
{{ form.mileage.errors|striptags }}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Receiving Date Field -->
|
<!--Receiving Date Field-->
|
||||||
<div class="col-lg-4 col-xl-4">
|
<div class="col-lg-4 col-xl-4">
|
||||||
<div class="card h-100 border-1 rounded shadow">
|
<div class="card h-100 border-1 rounded shadow">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -201,17 +183,11 @@
|
|||||||
{% trans 'Receiving Date' %}:
|
{% trans 'Receiving Date' %}:
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
{% if form.receiving_date.errors %}
|
|
||||||
<div class="text-danger small">
|
|
||||||
{{ form.receiving_date.errors|striptags }}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Remarks Card -->
|
<!--Remarks Card-->
|
||||||
<div class="col-lg-4 col-xl-8">
|
<div class="col-lg-4 col-xl-8">
|
||||||
<div class="card h-100">
|
<div class="card h-100">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -221,21 +197,13 @@
|
|||||||
</label>
|
</label>
|
||||||
{{ form.remarks|add_class:"form-control form-control-sm" }}
|
{{ form.remarks|add_class:"form-control form-control-sm" }}
|
||||||
</div>
|
</div>
|
||||||
{% if form.remarks.errors %}
|
|
||||||
<div class="text-danger small">
|
|
||||||
{{ form.remarks.errors|striptags }}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<!--Specifications Buttons-->
|
||||||
<!-- Specifications Buttons -->
|
|
||||||
|
|
||||||
<div class="btn-group mt-3">
|
<div class="btn-group mt-3">
|
||||||
|
|
||||||
<button type="submit" name="add_another" value="true" class="btn btn-sm btn-phoenix-success me-1">
|
<button type="submit" name="add_another" value="true" class="btn btn-sm btn-phoenix-success me-1">
|
||||||
{% trans "Save and Add Another" %}
|
{% trans "Save and Add Another" %}
|
||||||
</button>
|
</button>
|
||||||
@ -243,11 +211,8 @@
|
|||||||
{% trans "Save and Go to Inventory" %}
|
{% trans "Save and Go to Inventory" %}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@ -318,7 +283,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Scanner Modal -->
|
<!--Scanner Modal-->
|
||||||
<div class="modal fade" id="scannerModal" tabindex="-1" aria-labelledby="scannerModalLabel">
|
<div class="modal fade" id="scannerModal" tabindex="-1" aria-labelledby="scannerModalLabel">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content rounded-top-3">
|
<div class="modal-content rounded-top-3">
|
||||||
@ -334,7 +299,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- CAR FORM -->
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<div class="row my-5">
|
<div class="row my-5">
|
||||||
<!-- Display Form Errors -->
|
<!-- Display Form Errors -->
|
||||||
<div class="card shadow rounded">
|
<div class="card shadow rounded">
|
||||||
<div class="card-header bg-primary text-white">
|
<div class="card-header">
|
||||||
<p class="mb-0">
|
<p class="mb-0">
|
||||||
{% if customer.created %}
|
{% if customer.created %}
|
||||||
<!--<i class="bi bi-pencil-square"></i>-->
|
<!--<i class="bi bi-pencil-square"></i>-->
|
||||||
|
|||||||
@ -4,15 +4,14 @@
|
|||||||
{% block title %}{{ _("Bank Accounts") }}{% endblock title %}
|
{% block title %}{{ _("Bank Accounts") }}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row mt-4 mx-4">
|
<div class="row mt-4">
|
||||||
<div class="d-flex justify-content-between mb-2 p-6">
|
<div class="d-flex justify-content-between mb-2">
|
||||||
<span></span>
|
|
||||||
<h3 class="text-center">{% trans "Bank Accounts" %}</h3>
|
<h3 class="">{% trans "Bank Accounts" %}</h3>
|
||||||
<a href="{% url 'bank_account_create' %}" class="btn btn-sm btn-success ">{% trans "Add Bank Account" %}</a>
|
<a href="{% url 'bank_account_create' %}" class="btn btn-sm btn-phoenix-primary ">{% trans "Add Bank Account" %}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="mx-n4 px-4 mx-lg-n6 px-lg-6 bg-body-emphasis pt-7 border-y">
|
|
||||||
|
<div class="table-responsive px-1 scrollbar">
|
||||||
<div class="table-responsive mx-n1 px-1 scrollbar">
|
|
||||||
<table class="table fs-9 mb-0 border-top border-translucent">
|
<table class="table fs-9 mb-0 border-top border-translucent">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -45,6 +44,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<a href="{% url 'estimate_detail' estimate.pk %}"
|
<a href="{% url 'estimate_detail' estimate.pk %}"
|
||||||
class="btn btn-sm btn-phoenix-success">
|
class="btn btn-sm btn-phoenix-success">
|
||||||
{% trans "view" %}
|
{% trans "view"|capfirst %}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@ -4,15 +4,12 @@
|
|||||||
{% block title %}{{ _("Invoices") }}{% endblock title %}
|
{% block title %}{{ _("Invoices") }}{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="d-flex flex-column min-vh-100">
|
|
||||||
<div class="d-flex flex-column flex-sm-grow-1 ms-sm-14 p-4">
|
|
||||||
<main class="d-grid gap-4 p-1">
|
|
||||||
<div class="row mt-4">
|
|
||||||
<h3 class="text-center">{% trans "Invoices" %}</h3>
|
|
||||||
<div class="mx-n4 px-4 mx-lg-n6 px-lg-6 pt-7 border-y">
|
|
||||||
|
|
||||||
<div class="table-responsive">
|
<div class="row mt-4">
|
||||||
<table class="table table-sm fs-9 mb-0">
|
<h3 class="mb-3">{% trans "Invoices" %}</h3>
|
||||||
|
|
||||||
|
<div class="table-responsive px-1 scrollbar">
|
||||||
|
<table class="table fs-9 mb-0 border-top border-translucent">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="sort white-space-nowrap align-middle" scope="col">{% trans "Invoice Number" %}</th>
|
<th class="sort white-space-nowrap align-middle" scope="col">{% trans "Invoice Number" %}</th>
|
||||||
@ -78,8 +75,4 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -5,10 +5,9 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<h3 class="text-center">{% trans "Invoices" %}</h3>
|
<h3 class="mb-3">{% trans "Invoices" %}</h3>
|
||||||
<div class="mx-n4 px-4 mx-lg-n6 px-lg-6 bg-body-emphasis pt-7 border-y">
|
|
||||||
|
|
||||||
<div class="table-responsive mx-n1 px-1 scrollbar">
|
<div class="table-responsive px-1 scrollbar">
|
||||||
<table class="table fs-9 mb-0 border-top border-translucent">
|
<table class="table fs-9 mb-0 border-top border-translucent">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -45,6 +44,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -5,10 +5,9 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<h3 class="text-center">{% trans "Transactions" %}</h3>
|
<h3 class="mb-3">{% trans "Transactions" %}</h3>
|
||||||
<div class="mx-n4 px-4 mx-lg-n6 px-lg-6 bg-body-emphasis pt-7 border-y">
|
|
||||||
|
|
||||||
<div class="table-responsive mx-n1 px-1 scrollbar">
|
<div class="table-responsive px-1 scrollbar">
|
||||||
<table class="table fs-9 mb-0 border-top border-translucent">
|
<table class="table fs-9 mb-0 border-top border-translucent">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -42,6 +41,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="d-flex justify-content-center">
|
<div class="d-flex justify-content-center">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@ -5,11 +5,12 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<div class="d-flex justify-content-end align-content-end">
|
<div class="d-flex justify-content-between mb-2">
|
||||||
|
<h3 class="mb-3">{% trans "Payments" %}</h3>
|
||||||
<a href="{% url 'payment_create' %}" class="btn btn-sm btn-phoenix-success ">{% trans "Add Payment" %}</a>
|
<a href="{% url 'payment_create' %}" class="btn btn-sm btn-phoenix-success ">{% trans "Add Payment" %}</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<h3 class="mb-3">{% trans "Payments" %}</h3>
|
|
||||||
<div class="table-responsive px-1 scrollbar">
|
<div class="table-responsive px-1 scrollbar">
|
||||||
<table class="table fs-9 mb-0 border-top border-translucent">
|
<table class="table fs-9 mb-0 border-top border-translucent">
|
||||||
<thead>
|
<thead>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user