update
This commit is contained in:
parent
a266c99028
commit
f3cd624851
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -9,7 +9,7 @@ from import_export.resources import ModelResource
|
|||||||
|
|
||||||
from .models import Car
|
from .models import Car
|
||||||
|
|
||||||
# Define resource class
|
# # Define resource class
|
||||||
# class CarSerieResource(ModelResource):
|
# class CarSerieResource(ModelResource):
|
||||||
# class Meta:
|
# class Meta:
|
||||||
# model = models.CarSerie
|
# model = models.CarSerie
|
||||||
@ -19,6 +19,7 @@ from .models import Car
|
|||||||
# class CarSeriesAdmin(ExportMixin, admin.ModelAdmin):
|
# class CarSeriesAdmin(ExportMixin, admin.ModelAdmin):
|
||||||
# resource_class = CarSerieResource
|
# resource_class = CarSerieResource
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(models.Dealer)
|
admin.site.register(models.Dealer)
|
||||||
admin.site.register(models.Staff)
|
admin.site.register(models.Staff)
|
||||||
admin.site.register(models.Vendor)
|
admin.site.register(models.Vendor)
|
||||||
|
|||||||
@ -2,51 +2,8 @@ from django.core.management.base import BaseCommand
|
|||||||
from inventory.models import CarSerie
|
from inventory.models import CarSerie
|
||||||
|
|
||||||
TRANSLATIONS = {
|
TRANSLATIONS = {
|
||||||
"Sedan": "سيدان",
|
"Liftback 5-doors": "ليفت باك - خمسة أبواب",
|
||||||
"Coupe": "كوبيه",
|
|
||||||
"SUV 5 doors": "إس يو في - خمسة أبواب",
|
|
||||||
"Minivan": "ميني فان",
|
|
||||||
"Hatchback": "هاتشباك",
|
|
||||||
"Cabriolet": "سطح قابل للطي",
|
|
||||||
"Hatchback 5-doors": "هاتشباك - خمسة أبواب",
|
|
||||||
"Hatchback 5 doors": "هاتشباك - خمسة أبواب",
|
|
||||||
"Hatchback 3-doors": "هاتشباك - ثلاثة أبواب",
|
|
||||||
"Crossover": "كروس أوفر",
|
|
||||||
"Wagon": "واغن",
|
|
||||||
"SUV": "إس يو في",
|
|
||||||
"Wagon 5 doors": "واغن - خمسة أبواب",
|
|
||||||
"Roadster": "رودستر",
|
|
||||||
"SUV 5-doors": "إس يو في - خمسة أبواب",
|
|
||||||
"Wagon 5-doors": "واغن - خمسة أبواب",
|
|
||||||
"Sedan 4-doors": "سيدان - أربعة أبواب",
|
|
||||||
"Hatchback 3 doors": "هاتشباك - ثلاثة أبواب",
|
|
||||||
"Van": "فان",
|
|
||||||
"Pickup Double cabin": "بيك أب - غمارتين",
|
|
||||||
"Compactvan": "كومباكت فان",
|
|
||||||
"Pickup": "بيك أب",
|
|
||||||
"Microvan": "ميكروفان",
|
|
||||||
"Liftback": "ليفت باك",
|
|
||||||
"SUV 3-doors": "إس يو في - ثلاثة أبواب",
|
|
||||||
"Coupe 2-doors": "كوبيه - بابين",
|
|
||||||
"Pickup Single cabin": "بيك أب - غمارة واحدة",
|
|
||||||
"Crossover 5-doors": "كروس أوفر - خمسة أبواب",
|
|
||||||
"Coupe-Hardtop": "كوبيه هاردتوب",
|
|
||||||
"SUV 3 doors": "إس يو في - ثلاثة أبواب",
|
|
||||||
"Hardtop": "هاردتوب",
|
|
||||||
"Sedan 2-doors": "سيدان - بابين",
|
|
||||||
"Minivan 5-doors": "ميني فان - خمسة أبواب",
|
|
||||||
"Targa": "تارغا",
|
|
||||||
"SUV opened": "إس يو في مكشوف",
|
|
||||||
"Pickup One-and-a-half cabin": "بيك أب - غمارة ونصف",
|
|
||||||
"Sedan 2 doors": "سيدان - بابين",
|
|
||||||
"AMG Sedan 4-doors": "أي إم جي سيدان - أربعة أبواب",
|
|
||||||
"Cabriolet 2-doors": "سطح قابل للطي - بابين",
|
|
||||||
"Fastback": "فاست باك",
|
|
||||||
"Sedan-Hardtop": "سيدان هاردتوب",
|
|
||||||
"Regular Cab pickup 2-doors": "بيك أب كابينة عادية - بابين",
|
|
||||||
"Grand minivan 5-doors": "ميني فان كبير - خمسة أبواب",
|
|
||||||
"Sedan Long": "سيدان طويل",
|
|
||||||
"Speedster": "سبيدستر",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
22
inventory/migrations/0049_carreservation_reserved_for.py
Normal file
22
inventory/migrations/0049_carreservation_reserved_for.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Generated by Django 5.1.6 on 2025-02-24 17:25
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('inventory', '0048_remove_dealersettings_bill_payable_account_and_more'),
|
||||||
|
migrations.swappable_dependency(settings.DJANGO_LEDGER_CUSTOMER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='carreservation',
|
||||||
|
name='reserved_for',
|
||||||
|
field=models.ForeignKey(default='dd747dc3-39bc-411f-a17d-c930a50220fe', on_delete=django.db.models.deletion.CASCADE, related_name='reservations', to=settings.DJANGO_LEDGER_CUSTOMER_MODEL, verbose_name='Reserved For'),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
# Generated by Django 5.1.6 on 2025-02-25 01:05
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('inventory', '0049_carreservation_reserved_for'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='carreservation',
|
||||||
|
name='reserved_for',
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -535,9 +535,16 @@ class CarReservation(models.Model):
|
|||||||
related_name="reservations",
|
related_name="reservations",
|
||||||
verbose_name=_("Reserved By"),
|
verbose_name=_("Reserved By"),
|
||||||
)
|
)
|
||||||
|
# reserved_for = models.ForeignKey(
|
||||||
|
# CustomerModel,
|
||||||
|
# on_delete=models.CASCADE,
|
||||||
|
# related_name="reservations",
|
||||||
|
# verbose_name=_("Reserved For"),
|
||||||
|
# )
|
||||||
reserved_at = models.DateTimeField(auto_now_add=True, verbose_name=_("Reserved At"))
|
reserved_at = models.DateTimeField(auto_now_add=True, verbose_name=_("Reserved At"))
|
||||||
reserved_until = models.DateTimeField(verbose_name=_("Reserved Until"))
|
reserved_until = models.DateTimeField(verbose_name=_("Reserved Until"))
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_active(self):
|
def is_active(self):
|
||||||
return self.reserved_until > now()
|
return self.reserved_until > now()
|
||||||
|
|||||||
@ -355,7 +355,7 @@ class ManagerDashboard(LoginRequiredMixin, TemplateView):
|
|||||||
sold_percentage = sold_cars / total_cars * 100
|
sold_percentage = sold_cars / total_cars * 100
|
||||||
qs = models.Car.objects.values('id_car_make__name').annotate(count=Count('id')).order_by('id_car_make__name')
|
qs = models.Car.objects.values('id_car_make__name').annotate(count=Count('id')).order_by('id_car_make__name')
|
||||||
car_by_make = list(qs)
|
car_by_make = list(qs)
|
||||||
print(qs)
|
|
||||||
context["dealer"] = dealer
|
context["dealer"] = dealer
|
||||||
context["total_cars"] = total_cars
|
context["total_cars"] = total_cars
|
||||||
context["total_reservations"] = total_reservations
|
context["total_reservations"] = total_reservations
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -52,7 +52,14 @@
|
|||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"
|
||||||
integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="
|
integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="
|
||||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
<!--<style>
|
||||||
|
.btn{
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-right: 16px;
|
||||||
|
padding-left: 16px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
</style>-->
|
||||||
{% block customCSS %}
|
{% block customCSS %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
@ -72,7 +79,7 @@
|
|||||||
{% block body %}
|
{% block body %}
|
||||||
{% endblock body%}
|
{% endblock body%}
|
||||||
|
|
||||||
|
<div class="my-3"></div>
|
||||||
{% include 'footer.html' %}
|
{% include 'footer.html' %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -111,45 +111,54 @@
|
|||||||
<table class="table table-sm fs-9 mb-0">
|
<table class="table table-sm fs-9 mb-0">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="sort white-space-nowrap align-middle ps-0 pe-3" scope="col" data-sort="order" style="width:30%;">{% trans 'Type'|upper %}</th>
|
<th class="sort white-space-nowrap align-middle ps-0 pe-3" scope="col" data-sort="order">{% trans 'Type'|upper %}</th>
|
||||||
<th class="sort align-middle text-end pe-7" scope="col" data-sort="total" style="width:10%;">{% trans 'Total'|upper %}</th>
|
<th class="sort align-middle text-end pe-7" scope="col" data-sort="total">{% trans 'Total'|upper %}</th>
|
||||||
<th class="sort align-middle white-space-nowrap pe-3" scope="col" data-sort="payment_status" style="width:20%;">{% trans 'Payment Status'|upper %}</th>
|
<th class="sort align-middle white-space-nowrap pe-3" scope="col" data-sort="payment_status">{% trans 'Payment Status'|upper %}</th>
|
||||||
<th class="sort align-middle white-space-nowrap text-start pe-3" scope="col" data-sort="fulfilment_status" style="width:20%;">{% trans 'Fulfilment Status'|upper %}</th>
|
|
||||||
<th class="sort align-middle text-end pe-0" scope="col" data-sort="date">{% trans 'Date'|upper %}</th>
|
<th class="sort align-middle text-end pe-0" scope="col" data-sort="date">{% trans 'Date'|upper %}</th>
|
||||||
<th class="sort text-end align-middle pe-0 ps-5" scope="col"></th>
|
<th class="sort text-end align-middle pe-0 ps-5" scope="col"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="list" id="customer-order-table-body">
|
<tbody class="list" id="customer-order-table-body">
|
||||||
{% for estimate in estimates %}
|
{% for estimate in estimates %}
|
||||||
<tr class="hover-actions-trigger btn-reveal-trigger position-static">
|
<tr class="hover-actions-trigger btn-reveal-trigger position-static">
|
||||||
<td class="order align-middle white-space-nowrap ps-0">
|
<td class="order align-middle white-space-nowrap ps-0">
|
||||||
<p class="fw-semibold mb-0" >{{ estimate.estimate_number }}</p>
|
|
||||||
|
<p class="fw-semibold mb-0" >{{ _("Quotation") }}-<span class="fs-10 fw-medium">{{ estimate.estimate_number }}</span></p>
|
||||||
</td>
|
</td>
|
||||||
<td class="total align-middle text-end fw-semibold pe-7 text-body-highlight">{{ estimate.revenue_estimate|currency_format }}</td>
|
<td class="total align-middle text-end fw-semibold pe-7 text-body-highlight">{{ estimate.revenue_estimate|currency_format }}</td>
|
||||||
<td class="payment_status align-middle white-space-nowrap text-start fw-bold text-body-tertiary">
|
<td class="payment_status align-middle white-space-nowrap text-start fw-bold text-body-tertiary">
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="date align-middle white-space-nowrap text-body-tertiary fs-9 ps-4 text-end">{{ estimate.created }}</td>
|
||||||
|
<td class="align-middle white-space-nowrap text-end pe-0 ps-5">
|
||||||
|
<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>
|
||||||
|
<div class="dropdown-menu dropdown-menu-end py-2"><a class="dropdown-item" href="#!">View</a><a class="dropdown-item" href="#!">Export</a>
|
||||||
|
<div class="dropdown-divider"></div><a class="dropdown-item text-danger" href="#!">Remove</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% for invoice in invoices %}
|
||||||
|
<tr class="hover-actions-trigger btn-reveal-trigger position-static">
|
||||||
|
<td class="order align-middle white-space-nowrap ps-0">
|
||||||
|
|
||||||
|
<p class="fw-semibold mb-0" >{{ _("Invoice") }}-<span class="fs-10 fw-medium">{{ invoice.invoice_number }}</span></p>
|
||||||
|
</td>
|
||||||
|
<td class="total align-middle text-end fw-semibold pe-7 text-body-highlight">{{ invoice.amount_paid|currency_format }}</td>
|
||||||
|
<td class="payment_status align-middle white-space-nowrap text-start fw-bold text-body-tertiary">
|
||||||
|
{% if invoice.is_paid %}
|
||||||
<span class="badge badge-phoenix fs-10 badge-phoenix-success">
|
<span class="badge badge-phoenix fs-10 badge-phoenix-success">
|
||||||
<span class="badge-label">Paid</span>
|
<span class="badge-label">{{ _("Paid") }}</span>
|
||||||
<span class="ms-1" data-feather="check" style="height:12.8px;width:12.8px;"></span>
|
<span class="ms-1" data-feather="check" style="height:12.8px;width:12.8px;"></span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="fulfilment_status align-middle white-space-nowrap text-start fw-bold text-body-tertiary">
|
<td class="date align-middle white-space-nowrap text-body-tertiary fs-9 ps-4 text-end">{{ invoice.created }}</td>
|
||||||
{% if estimate.status == 'draft' %}
|
|
||||||
<span class="badge badge-phoenix badge-phoenix-warning">{% trans "Draft" %}</span>
|
|
||||||
{% elif estimate.status == 'in_review' %}
|
|
||||||
<span class="badge badge-phoenix badge-phoenix-info">{% trans "In Review" %}</span>
|
|
||||||
{% elif estimate.status == 'approved' %}
|
|
||||||
<span class="badge badge-phoenix badge-phoenix-success">{% trans "Approved" %}</span>
|
|
||||||
{% elif estimate.status == 'declined' %}
|
|
||||||
<span class="badge badge-phoenix badge-phoenix-danger">{% trans "Declined" %}</span>
|
|
||||||
{% elif estimate.status == 'canceled' %}
|
|
||||||
<span class="badge badge-phoenix badge-phoenix-danger">{% trans "Canceled" %}</span>
|
|
||||||
{% elif estimate.status == 'completed' %}
|
|
||||||
<span class="badge badge-phoenix badge-phoenix-success">{% trans "Completed" %}</span>
|
|
||||||
{% elif estimate.status == 'void' %}
|
|
||||||
<span class="badge badge-phoenix badge-phoenix-secondary">{% trans "Void" %}</span>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td class="date align-middle white-space-nowrap text-body-tertiary fs-9 ps-4 text-end">{{ estimate.created }}</td>
|
|
||||||
<td class="align-middle white-space-nowrap text-end pe-0 ps-5">
|
<td class="align-middle white-space-nowrap text-end pe-0 ps-5">
|
||||||
<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>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% load i18n static custom_filters %}
|
{% load i18n static custom_filters django_ledger%}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<script src="{% static 'js/echarts.js' %}"></script>
|
<script src="{% static 'js/echarts.js' %}"></script>
|
||||||
|
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
<div class="text-danger">{{ error }}</div>
|
<div class="text-danger">{{ error }}</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="d-flex mb-3">
|
<div class="d-flex mb-3">
|
||||||
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "cancel"|capfirst %}</a>
|
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "Cancel"|capfirst %}</a>
|
||||||
<button class="btn btn-primary" type="submit">
|
<button class="btn btn-primary" type="submit">
|
||||||
<i class="fa-solid fa-floppy-disk"></i>
|
<i class="fa-solid fa-floppy-disk"></i>
|
||||||
{{ _("Save") }}
|
{{ _("Save") }}
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
<div class="text-danger">{{ error }}</div>
|
<div class="text-danger">{{ error }}</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="d-flex mb-3">
|
<div class="d-flex mb-3">
|
||||||
<a href="{% url 'group_detail' group.pk %}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "cancel"|capfirst %}</a>
|
<a href="{% url 'group_detail' group.pk %}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "Cancel"|capfirst %}</a>
|
||||||
<button class="btn btn-primary" type="submit">
|
<button class="btn btn-primary" type="submit">
|
||||||
<i class="fa-solid fa-floppy-disk"></i>
|
<i class="fa-solid fa-floppy-disk"></i>
|
||||||
{{ _("Save") }}
|
{{ _("Save") }}
|
||||||
|
|||||||
@ -306,15 +306,17 @@
|
|||||||
{% if reservation.is_active %}
|
{% if reservation.is_active %}
|
||||||
<form method="post" action="{% url 'reservations' reservation.id %}">
|
<form method="post" action="{% url 'reservations' reservation.id %}">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<button type="submit" name="action" value="renew" class="btn btn-sm btn-phoenix-success">
|
<div class="btn-group">
|
||||||
{% trans "Renew" %}
|
<button type="submit" name="action" value="renew" class="btn btn-sm btn-phoenix-success px-3 py-1">
|
||||||
</button>
|
{% trans "Renew" %}
|
||||||
<button type="submit" name="action" value="cancel" class="btn btn-sm btn-phoenix-secondary">
|
</button>
|
||||||
{% trans "Cancel" %}
|
<button type="submit" name="action" value="cancel" class="btn btn-sm btn-phoenix-secondary px-3 py-1">
|
||||||
</button>
|
{% trans "Cancel" %}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="badge bg-danger" style="width: 120px;">
|
<span class="badge badge-phoenix badge-phoenix-danger fs-10">
|
||||||
{% trans "Expired" %}
|
{% trans "Expired" %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@ -12,11 +12,11 @@
|
|||||||
<script src="https://unpkg.com/@zxing/library@latest"></script>
|
<script src="https://unpkg.com/@zxing/library@latest"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.min.js"></script>
|
||||||
|
|
||||||
<div class="row">
|
<div class=" container-fluid m-0">
|
||||||
<form method="post" id="carForm" class="form needs-validation" novalidate>
|
<form method="post" id="carForm" class="form needs-validation" novalidate>
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% include 'partials/form_errors.html' %}
|
{% include 'partials/form_errors.html' %}
|
||||||
<div class="d-flex flex-column min-vh-100">
|
<div class="d-flex flex-column">
|
||||||
<div class="d-flex flex-column flex-sm-grow-1 p-0">
|
<div class="d-flex flex-column flex-sm-grow-1 p-0">
|
||||||
|
|
||||||
<div class="row g-4">
|
<div class="row g-4">
|
||||||
@ -34,13 +34,13 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="input-group input-group-sm my-2">
|
<div class="input-group input-group-sm my-2">
|
||||||
<button type="button"
|
<button type="button"
|
||||||
class="btn btn-warning rounded-start"
|
class="btn btn-phoenix-warning rounded-start"
|
||||||
id="scan-vin-btn"
|
id="scan-vin-btn"
|
||||||
data-bs-toggle="modal"
|
data-bs-toggle="modal"
|
||||||
data-bs-target="#scannerModal">
|
data-bs-target="#scannerModal">
|
||||||
<span class="fas fa-camera fs-9"></span>
|
<span class="fas fa-camera fs-9"></span>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" class="btn btn-sm btn-primary rounded-end ms-1" id="decodeVinBtn">
|
<button type="button" class="btn btn-sm btn-phoenix-primary rounded-end ms-1" id="decodeVinBtn">
|
||||||
<span class="fas fa-search fs-9 fw-bolder"></span>
|
<span class="fas fa-search fs-9 fw-bolder"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@ -190,8 +190,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--Specifications Buttons-->
|
<!--Save Buttons-->
|
||||||
<div class="btn-group mt-3">
|
<div class="btn-group">
|
||||||
<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>
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
<div class="row justify-content-between">
|
<div class="row justify-content-between">
|
||||||
<div class="col-6 col-md-4 col-xxl-2 text-center border-translucent border-start-xxl border-end-xxl-0 border-bottom-xxl-0 border-end border-bottom pb-4 pb-xxl-0 "><i class="fa-solid fa-landmark-dome fs-5 lh-1 text-primary"></i>
|
<div class="col-6 col-md-4 col-xxl-2 text-center border-translucent border-start-xxl border-end-xxl-0 border-bottom-xxl-0 border-end border-bottom pb-4 pb-xxl-0 "><i class="fa-solid fa-landmark-dome fs-5 lh-1 text-primary"></i>
|
||||||
<h1 class="fs-5 pt-3">{% currency_symbol %}{{ tx_digest.group_balance.GROUP_ASSETS | currency_format }}</h1>
|
<h1 class="fs-5 pt-3">{% currency_symbol %}{{ tx_digest.group_balance.GROUP_ASSETS | currency_format }}</h1>
|
||||||
<p class="fs-9 mb-0">{{ _("Assets") }}</p>
|
<p class="fs-9 mb-0">{{ _("Assets") }}nmnmnmnmnmnm</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 col-md-4 col-xxl-2 text-center border-translucent border-start-xxl border-end-xxl-0 border-bottom-xxl-0 border-end-md border-bottom pb-4 pb-xxl-0"><i class="fa-solid fa-weight-hanging fs-5 lh-1 text-primary"></i>
|
<div class="col-6 col-md-4 col-xxl-2 text-center border-translucent border-start-xxl border-end-xxl-0 border-bottom-xxl-0 border-end-md border-bottom pb-4 pb-xxl-0"><i class="fa-solid fa-weight-hanging fs-5 lh-1 text-primary"></i>
|
||||||
<h1 class="fs-5 pt-3">{% currency_symbol %}{{ tx_digest.group_balance.GROUP_LIABILITIES | currency_format }}</h1>
|
<h1 class="fs-5 pt-3">{% currency_symbol %}{{ tx_digest.group_balance.GROUP_LIABILITIES | currency_format }}</h1>
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
{{ form|crispy }}
|
{{ form|crispy }}
|
||||||
|
|
||||||
<div class="d-flex mb-3">
|
<div class="d-flex mb-3">
|
||||||
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6">{% trans "cancel"|capfirst %}</a>
|
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6">{% trans "Cancel"|capfirst %}</a>
|
||||||
<button class="btn btn-primary" type="submit">
|
<button class="btn btn-primary" type="submit">
|
||||||
<!--<i class="bi bi-save"></i> -->
|
<!--<i class="bi bi-save"></i> -->
|
||||||
{{ _("Save") }}
|
{{ _("Save") }}
|
||||||
|
|||||||
@ -135,9 +135,9 @@
|
|||||||
{% elif estimate.status == 'approved' %}
|
{% elif estimate.status == 'approved' %}
|
||||||
<span class="badge text-bg-success">{% trans "Approved" %}</span>
|
<span class="badge text-bg-success">{% trans "Approved" %}</span>
|
||||||
{% elif estimate.status == 'completed' %}
|
{% elif estimate.status == 'completed' %}
|
||||||
<span class="badge text-bg-success">{% trans "completed" %}</span>
|
<span class="badge text-bg-success">{% trans "Completed" %}</span>
|
||||||
{% elif estimate.status == 'canceled' %}
|
{% elif estimate.status == 'canceled' %}
|
||||||
<span class="badge text-bg-danger">{% trans "canceled" %}</span>
|
<span class="badge text-bg-danger">{% trans "Canceled" %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -81,7 +81,7 @@
|
|||||||
<div class="d-flex bg-success-subtle rounded flex-center me-3 mb-sm-3 mb-md-0 mb-xl-3 mb-xxl-0" style="width:32px; height:32px"><span class="text-success-dark" data-feather="dollar-sign" style="width:24px; height:24px"></span></div>
|
<div class="d-flex bg-success-subtle rounded flex-center me-3 mb-sm-3 mb-md-0 mb-xl-3 mb-xxl-0" style="width:32px; height:32px"><span class="text-success-dark" data-feather="dollar-sign" style="width:24px; height:24px"></span></div>
|
||||||
<div>
|
<div>
|
||||||
<p class="fw-bold mb-1">{% trans 'Paid Amount' %}</p>
|
<p class="fw-bold mb-1">{% trans 'Paid Amount' %}</p>
|
||||||
<h4 class="fw-bolder text-nowrap {% if invoice.is_paid %}text-success{% endif %}">{{invoice.amount_paid}} {{ _("SAR") }}</h4>
|
<h4 class="fw-bolder text-nowrap {% if invoice.is_paid %}text-success{% endif %}">{{invoice.amount_paid}} {{ CURRENCY }}</h4>
|
||||||
<h6 class="fw-bolder text-nowrap">{{ _("Owned") }} <span class="fw-semibold text-nowrap text-success">{{invoice.get_amount_open|floatformat}} {{ _("SAR") }}</span></h6>
|
<h6 class="fw-bolder text-nowrap">{{ _("Owned") }} <span class="fw-semibold text-nowrap text-success">{{invoice.get_amount_open|floatformat}} {{ _("SAR") }}</span></h6>
|
||||||
<div class="progress" style="height:17px">
|
<div class="progress" style="height:17px">
|
||||||
<div class="progress-bar fw-semibold bg-{% if invoice.get_progress_percent < 100 %}secondary{% else %}success{% endif %} rounded-2" role="progressbar" style="width: {{invoice.get_progress_percent}}%" aria-valuenow="{{invoice.get_progress_percent}}" aria-valuemin="0" aria-valuemax="100">{{invoice.get_progress_percent}}%</div>
|
<div class="progress-bar fw-semibold bg-{% if invoice.get_progress_percent < 100 %}secondary{% else %}success{% endif %} rounded-2" role="progressbar" style="width: {{invoice.get_progress_percent}}%" aria-valuenow="{{invoice.get_progress_percent}}" aria-valuemin="0" aria-valuemax="100">{{invoice.get_progress_percent}}%</div>
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
<div class="text-danger">{{ error }}</div>
|
<div class="text-danger">{{ error }}</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="d-flex mb-3">
|
<div class="d-flex mb-3">
|
||||||
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "cancel"|capfirst %}</a>
|
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "Cancel"|capfirst %}</a>
|
||||||
<button class="btn btn-primary" type="submit">
|
<button class="btn btn-primary" type="submit">
|
||||||
<i class="fa-solid fa-floppy-disk"></i>
|
<i class="fa-solid fa-floppy-disk"></i>
|
||||||
{{ _("Save") }}
|
{{ _("Save") }}
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
<div class="text-danger">{{ error }}</div>
|
<div class="text-danger">{{ error }}</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="d-flex mb-3">
|
<div class="d-flex mb-3">
|
||||||
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "cancel"|capfirst %}</a>
|
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6"><i class="fa-solid fa-ban"></i> {% trans "Cancel" %}</a>
|
||||||
<button class="btn btn-primary" type="submit">
|
<button class="btn btn-primary" type="submit">
|
||||||
<i class="fa-solid fa-floppy-disk"></i>
|
<i class="fa-solid fa-floppy-disk"></i>
|
||||||
{{ _("Save") }}
|
{{ _("Save") }}
|
||||||
|
|||||||
2
templates/vendors/vendor_form.html
vendored
2
templates/vendors/vendor_form.html
vendored
@ -35,7 +35,7 @@
|
|||||||
<div class="text-danger">{{ error }}</div>
|
<div class="text-danger">{{ error }}</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="d-flex mb-3">
|
<div class="d-flex mb-3">
|
||||||
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6">{% trans "cancel"|capfirst %}</a>
|
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-phoenix-primary me-2 px-6">{% trans "Cancel"|capfirst %}</a>
|
||||||
<button class="btn btn-primary" type="submit">
|
<button class="btn btn-primary" type="submit">
|
||||||
<!--<i class="bi bi-save"></i> -->
|
<!--<i class="bi bi-save"></i> -->
|
||||||
{{ _("Save") }}
|
{{ _("Save") }}
|
||||||
|
|||||||
187
test.txt
187
test.txt
@ -64,4 +64,189 @@ send_mail(
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Sedan": "سيدان",
|
||||||
|
"Coupe": "كوبيه",
|
||||||
|
"SUV 5 doors": "إس يو في - خمسة أبواب",
|
||||||
|
"Minivan": "ميني فان",
|
||||||
|
"Hatchback": "هاتشباك",
|
||||||
|
"Cabriolet": "سطح قابل للطي",
|
||||||
|
"Hatchback 5-doors": "هاتشباك - خمسة أبواب",
|
||||||
|
"Hatchback 5 doors": "هاتشباك - خمسة أبواب",
|
||||||
|
"Hatchback 3-doors": "هاتشباك - ثلاثة أبواب",
|
||||||
|
"Crossover": "كروس أوفر",
|
||||||
|
"Wagon": "واغن",
|
||||||
|
"SUV": "إس يو في",
|
||||||
|
"Wagon 5 doors": "واغن - خمسة أبواب",
|
||||||
|
"Roadster": "رودستر",
|
||||||
|
"SUV 5-doors": "إس يو في - خمسة أبواب",
|
||||||
|
"Wagon 5-doors": "واغن - خمسة أبواب",
|
||||||
|
"Sedan 4-doors": "سيدان - أربعة أبواب",
|
||||||
|
"Hatchback 3 doors": "هاتشباك - ثلاثة أبواب",
|
||||||
|
"Van": "فان",
|
||||||
|
"Pickup Double cabin": "بيك أب - غمارتين",
|
||||||
|
"Compactvan": "كومباكت فان",
|
||||||
|
"Pickup": "بيك أب",
|
||||||
|
"Microvan": "ميكروفان",
|
||||||
|
"Liftback": "ليفت باك",
|
||||||
|
"SUV 3-doors": "إس يو في - ثلاثة أبواب",
|
||||||
|
"Coupe 2-doors": "كوبيه - بابين",
|
||||||
|
"Pickup Single cabin": "بيك أب - غمارة واحدة",
|
||||||
|
"Crossover 5-doors": "كروس أوفر - خمسة أبواب",
|
||||||
|
"Coupe-Hardtop": "كوبيه هاردتوب",
|
||||||
|
"SUV 3 doors": "إس يو في - ثلاثة أبواب",
|
||||||
|
"Hardtop": "هاردتوب",
|
||||||
|
"Sedan 2-doors": "سيدان - بابين",
|
||||||
|
"Minivan 5-doors": "ميني فان - خمسة أبواب",
|
||||||
|
"Targa": "تارغا",
|
||||||
|
"SUV opened": "إس يو في مكشوف",
|
||||||
|
"Pickup One-and-a-half cabin": "بيك أب - غمارة ونصف",
|
||||||
|
"Sedan 2 doors": "سيدان - بابين",
|
||||||
|
"AMG Sedan 4-doors": "أي إم جي سيدان - أربعة أبواب",
|
||||||
|
"Cabriolet 2-doors": "سطح قابل للطي - بابين",
|
||||||
|
"Fastback": "فاست باك",
|
||||||
|
"Sedan-Hardtop": "سيدان هاردتوب",
|
||||||
|
"Regular Cab pickup 2-doors": "بيك أب كابينة عادية - بابين",
|
||||||
|
"Grand minivan 5-doors": "ميني فان كبير - خمسة أبواب",
|
||||||
|
"Sedan Long": "سيدان طويل",
|
||||||
|
"Speedster": "سبيدستر",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"Liftback 5-doors": "ليفت باك - خمسة أبواب",
|
||||||
|
"AMG roadster 2-doors": "أي إم جي رودستر - بابين",
|
||||||
|
"SUV 2-doors": "إس يو في - بابين",
|
||||||
|
"Hybrid Sedan 4-doors": "سيدان هجينة - أربعة أبواب",
|
||||||
|
"JDM Sedan 4-doors": "جي دي إم سيدان - أربعة أبواب",
|
||||||
|
"wagon 3-doors": "واغن - ثلاثة أبواب",
|
||||||
|
"wagon (5 doors)": "واغن - خمسة أبواب",
|
||||||
|
"AMG crossover 5-doors": "أي إم جي كروس أوفر - خمسة أبواب",
|
||||||
|
"Kingswood Estate wagon": "عربة كينجسوود إستيت",
|
||||||
|
"SUV 5 doors L": "سيارات الدفع الرباعي 5 أبواب L",
|
||||||
|
"Limousine Sedan": "ليموزين سيدان",
|
||||||
|
"Z28 Coupe 2-doors": "Z28 كوبيه 2 أبواب",
|
||||||
|
"S Coupe 2-doors": "S كوبيه 2 أبواب",
|
||||||
|
"Combi wagon 5-doors": "كومبي واجن 5 أبواب",
|
||||||
|
"Sportback hatchback 5-doors": "سبورتباك هاتشباك 5 أبواب",
|
||||||
|
"RS hatchback 3-doors": "RS هاتشباك 3 أبواب",
|
||||||
|
"Pickup 4-doors": "بيك أب 4 أبواب",
|
||||||
|
"Trans Am Coupe 2-doors": "ترانس آم كوبيه 2 أبواب",
|
||||||
|
"Break wagon": "كسر عربة",
|
||||||
|
"Pickup Double cabin Crew Cab": "بيك أب كابينة طاقم المقصورة المزدوجة",
|
||||||
|
"Allroad quattro wagon 5-doors": "أولرود كواترو واجن 5 أبواب",
|
||||||
|
"GTI hatchback 5-doors": "GTI هاتشباك 5 أبواب",
|
||||||
|
"WRX STI Sedan 4-doors": "WRX STI سيدان 4 أبواب",
|
||||||
|
"Combi wagon": "عربة كومبي",
|
||||||
|
"GT hatchback 5-doors": "GT هاتشباك 5 أبواب",
|
||||||
|
"RS Coupe 2-doors": "RS كوبيه 2 أبواب",
|
||||||
|
"Sport Sedan Hardtop": "الرياضة سيدان السقف الصلب",
|
||||||
|
"Xtracab pickup 2-doors": "بيك اب إكستراكاب 2 أبواب",
|
||||||
|
"CC cabriolet": "CC كابريوليه",
|
||||||
|
"Sport Sedan Hardtop 4-doors": "سبورت سيدان هاردتوب 4 أبواب",
|
||||||
|
"Phaeton": "فايتون",
|
||||||
|
"Hatchback 5 doors Sportback": "هاتشباك 5 أبواب سبورتباك",
|
||||||
|
"Minivan Grand": "ميني فان جراند",
|
||||||
|
"Cross hatchback 5-doors": "عبر هاتشباك 5 أبواب",
|
||||||
|
"Volante cabriolet": "فولانتي كابريوليه",
|
||||||
|
"Turbo Coupe 2-doors": "توربو كوبيه 2 أبواب",
|
||||||
|
"Sport Coupe Coupe": "سبورت كوبيه كوبيه",
|
||||||
|
"Classic pickup 2-doors": "بيك أب كلاسيكي 2 أبواب",
|
||||||
|
"GT hatchback 3-doors": "GT هاتشباك 3 أبواب",
|
||||||
|
"Spyder cabriolet": "سبايدر كابريوليه",
|
||||||
|
"ST hatchback 3-doors": "ST هاتشباك 3 أبواب",
|
||||||
|
"SUV 5 doors X": "سيارات الدفع الرباعي 5 أبواب X",
|
||||||
|
"Pickup Single cabin Regular Cab": "بيك أب كابينة واحدة الكابينة العادية",
|
||||||
|
"Single Cab pickup 2-doors": "بيك اب كابينة واحدة 2 أبواب",
|
||||||
|
"Cabrio cabriolet": "كابريو كابريوليه",
|
||||||
|
"Sportback hatchback": "سبورت باك هاتشباك",
|
||||||
|
"Wagon minivan": "عربة ميني فان",
|
||||||
|
"WRX Sedan 4-doors": "WRX سيدان 4 أبواب",
|
||||||
|
"Convertible cabriolet": "كابريوليه قابلة للتحويل",
|
||||||
|
"OPC hatchback 3-doors": "OPC هاتشباك 3 أبواب",
|
||||||
|
"Grand minivan": "الميني فان الكبرى",
|
||||||
|
"Spider cabriolet": "العنكبوت كابريوليه",
|
||||||
|
"Athlete Sedan 4-doors": "رياضي سيدان 4 أبواب",
|
||||||
|
"Combi RS wagon 5-doors": "كومبي RS واجن 5 أبواب",
|
||||||
|
"V8 Coupe 2-doors": "V8 كوبيه 2 أبواب",
|
||||||
|
"Sportvan minivan": "ميني فان سبورت فان",
|
||||||
|
"Coupe Coupe": "كوبيه كوبيه",
|
||||||
|
"Hybrid hatchback 5-doors": "هاتشباك هجينة 5 أبواب",
|
||||||
|
"Extended Cab pickup 2-doors": "بيك أب كابينة ممتدة 2 أبواب",
|
||||||
|
"Hybrid crossover 5-doors": "كروس أوفر هجين 5 أبواب",
|
||||||
|
"JDM Hardtop": "JDM Hardtop",
|
||||||
|
"US-Spec. Sedan 4-doors": "مواصفات الولايات المتحدة. سيدان 4 أبواب",
|
||||||
|
"Sport hatchback 3-doors": "هاتشباك رياضية 3 أبواب",
|
||||||
|
"Combi Scout wagon 5-doors": "كومبي سكاوت واجن 5 أبواب",
|
||||||
|
"Formula Coupe 2-doors": "فورمولا كوبيه 2 أبواب",
|
||||||
|
"Stingray roadster": "ستينغراي رودستر",
|
||||||
|
"wagon 5-doors Shooting Brake": "عربة 5 أبواب اطلاق النار الفرامل",
|
||||||
|
"Minivan SWB": "ميني فان SWB",
|
||||||
|
"Roadster Spider": "رودستر سبايدر",
|
||||||
|
"Sedan L": "سيدان L",
|
||||||
|
"SUV 5 doors Long": "سيارات الدفع الرباعي 5 أبواب طويلة",
|
||||||
|
"Coupe RS": "كوبيه RS",
|
||||||
|
"Extended Cab pickup 4-doors": "بيك أب كابينة ممتدة 4 أبواب",
|
||||||
|
"Gran Coupe Sedan": "غران كوبيه سيدان",
|
||||||
|
"Van wagon": "فان واغن",
|
||||||
|
"Double Cab pickup": "بيك أب مزدوج الكابينة",
|
||||||
|
"Stepway hatchback 5-doors": "ستيبوي هاتشباك 5 أبواب",
|
||||||
|
"US-spec Coupe": "كوبيه ذات مواصفات أمريكية",
|
||||||
|
"RS liftback 5-doors": "RS Liftback 5 أبواب",
|
||||||
|
"Carrera Coupe 2-doors": "كاريرا كوبيه 2 أبواب",
|
||||||
|
"Van 4-doors": "فان 4 أبواب",
|
||||||
|
"F-150 RegularCab pickup 2-doors": "F-150 RegularCab بيك اب 2 أبواب",
|
||||||
|
"F-150 SuperCab pickup 4-doors": "F-150 SuperCab بيك أب 4 أبواب",
|
||||||
|
"Classic Coupe 2-doors": "كلاسيك كوبيه 2 أبواب",
|
||||||
|
"Royal Sedan 4-doors": "رويال سيدان 4 أبواب",
|
||||||
|
"Grandtour wagon": "عربة جراندتور",
|
||||||
|
"Esprit Coupe 2-doors": "إسبريت كوبيه 2 أبواب",
|
||||||
|
"XKR cabriolet 2-doors": "XKR كابريوليه 2 أبواب",
|
||||||
|
"XKR Coupe 2-doors": "XKR كوبيه 2 أبواب",
|
||||||
|
"Soft top SUV 3-doors": "سيارات الدفع الرباعي ذات السقف الناعم 3 أبواب",
|
||||||
|
"US-spec minivan 5-doors": "ميني فان 5 أبواب بمواصفات أمريكية",
|
||||||
|
"Absolute minivan 5-doors": "ميني فان مطلق 5 أبواب",
|
||||||
|
"Si Sedan 4-doors": "سي سيدان 4 أبواب",
|
||||||
|
"Sport SUV 3-doors": "سبورت SUV 3 أبواب",
|
||||||
|
"Hard top SUV": "سيارات الدفع الرباعي ذات السقف الصلب",
|
||||||
|
"Station Wagon wagon": "عربة ستيشن واغن",
|
||||||
|
"Custom Coupe Hardtop 2-doors": "مخصص كوبيه Hardtop 2 أبواب",
|
||||||
|
"Limousine Pullman": "ليموزين بولمان",
|
||||||
|
"Hatchback 4 doors": "هاتشباك 4 أبواب",
|
||||||
|
"Hatchback 5 doors GT": "هاتشباك 5 أبواب جي تي",
|
||||||
|
"SUV 5 doors EV": "سيارات الدفع الرباعي 5 أبواب EV",
|
||||||
|
"Cabriolet Volante": "كابريوليه فولانتي",
|
||||||
|
"Cabriolet Spider": "كابريوليه العنكبوت",
|
||||||
|
"Pickup Double cabin Double Cab": "بيك أب كابينة مزدوجة الكابينة",
|
||||||
|
"Compactvan Stepway": "كومباكت فان ستيبواي",
|
||||||
|
"wagon 5 doors Scout": "عربة 5 أبواب الكشافة",
|
||||||
|
"Axio Sedan 4-doors": "أكسيو سيدان 4 أبواب",
|
||||||
|
"hatchback": "هاتشباك",
|
||||||
|
"R Coupe 2-doors": "R كوبيه 2 أبواب",
|
||||||
|
"SC Cupra hatchback 3-doors": "SC كوبرا هاتشباك 3 أبواب",
|
||||||
|
"GT hatchback": "جي تي هاتشباك",
|
||||||
|
"King Cab pickup 2-doors": "كينج كاب بيك أب 2 أبواب",
|
||||||
|
"R hatchback 3-doors": "R هاتشباك 3 أبواب",
|
||||||
|
"Sport Sedan 4-doors": "سبورت سيدان 4 أبواب",
|
||||||
|
"Caravan wagon 5-doors": "كارافان واجن 5 أبواب",
|
||||||
|
"Kombi minivan 4-doors": "ميني فان كومبي 4 أبواب",
|
||||||
|
"Variant wagon 5-doors": "عربة متغيرة 5 أبواب",
|
||||||
|
"Sports Tourer wagon 5-doors": "عربة رياضية سياحية 5 أبواب",
|
||||||
|
"Gran Turismo liftback": "ارتداد Gran Turismo",
|
||||||
|
"Shooting Brake wagon 5-doors": "عربة فرامل الرماية 5 أبواب",
|
||||||
|
"AMG Shooting Brake wagon 5-doors": "AMG عربة الفرامل الرماية 5 أبواب",
|
||||||
|
"F-100 RegularCab pickup 2-doors": "F-100 RegularCab بيك أب 2 أبواب",
|
||||||
|
"Grand minivan 4-doors": "ميني فان جراند 4 أبواب",
|
||||||
|
"Regular pickup 2-doors": "بيك أب عادي 2 أبواب",
|
||||||
|
"Combi minivan": "ميني فان كومبي",
|
||||||
|
"Classic Sedan": "سيارة سيدان كلاسيكية",
|
||||||
|
"Turbo hatchback 3-doors": "توربو هاتشباك 3 أبواب",
|
||||||
|
"Spyder roadster 2-doors": "سبايدر رودستر 2 أبواب",
|
||||||
|
"Turbo cabriolet 2-doors": "توربو كابريوليه 2 أبواب",
|
||||||
|
"GT3 Coupe 2-doors": "GT3 كوبيه 2 أبواب",
|
||||||
|
"Trans Am T-Roof targa 2-doors": "ترانس آم تي روف تارجا 2 أبواب",
|
||||||
|
"OPC minivan 5-doors": "ميني فان OPC 5 أبواب",
|
||||||
|
"Hardtop 2-doors": "Hardtop 2 أبواب",
|
||||||
|
"JP-spec Sedan 4-doors": "جي بي مواصفات سيدان 4 أبواب",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user