This commit is contained in:
Marwan Alwali 2025-02-12 12:12:07 +03:00
parent 93674f646b
commit 6694f889ea
15 changed files with 256 additions and 184 deletions

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-11 05:34+0300\n"
"POT-Creation-Date: 2025-02-11 15:29+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -45,9 +45,6 @@ msgstr "رقم الهيكل"
#: templates/sales/invoices/invoice_detail.html:86
#: templates/sales/invoices/invoice_detail.html:138
#: templates/sales/invoices/invoice_detail.html:140
#: templates/sales/invoices/invoice_preview.html:232
#: templates/sales/invoices/invoice_preview.html:236
#: templates/sales/invoices/invoice_preview.html:243
#: templates/subscriptions/subscription_plan.html:41
msgid "SAR"
msgstr "ريال"
@ -374,7 +371,7 @@ msgstr "تمت الموافقة"
#: inventory/models.py:263 inventory/models.py:956
#: templates/crm/leads/lead_detail.html:46
#: templates/crm/leads/lead_list.html:125
#: templates/crm/leads/lead_list.html:120
msgid "Pending"
msgstr "قيد الانتظار"
@ -424,7 +421,7 @@ msgstr "نقل"
#: inventory/models.py:279 inventory/models.py:955
#: templates/crm/leads/lead_detail.html:44
#: templates/crm/leads/lead_list.html:123
#: templates/crm/leads/lead_list.html:118
#: templates/inventory/car_inventory.html:68
msgid "New"
msgstr "جديد"
@ -987,17 +984,17 @@ msgid "Form"
msgstr "نموذج"
#: inventory/models.py:957 templates/crm/leads/lead_detail.html:48
#: templates/crm/leads/lead_list.html:127
#: templates/crm/leads/lead_list.html:122
msgid "In Progress"
msgstr "قيد التنفيذ"
#: inventory/models.py:958 templates/crm/leads/lead_detail.html:50
#: templates/crm/leads/lead_list.html:129
#: templates/crm/leads/lead_list.html:124
msgid "Qualified"
msgstr "مؤهل"
#: inventory/models.py:959 templates/crm/leads/lead_detail.html:52
#: templates/crm/leads/lead_list.html:131
#: templates/crm/leads/lead_list.html:126
#: templates/sales/estimates/estimate_list.html:37
#: templates/sales/invoices/invoice_list.html:34
#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:347
@ -1291,7 +1288,7 @@ msgstr "ملاحظة"
#: inventory/models.py:1337 inventory/models.py:1350
#: templates/crm/leads/lead_detail.html:128
#: templates/crm/leads/lead_detail.html:181
#: templates/crm/leads/lead_detail.html:595
#: templates/crm/leads/lead_detail.html:583
#: templates/customers/view_customer.html:119
#: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:154
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/card_markdown.html:9
@ -1674,159 +1671,159 @@ msgstr "رقم الهيكل موجود مسبقاً"
msgid "inventory"
msgstr "المخزون"
#: inventory/views.py:767
#: inventory/views.py:800
msgid "Car finance details saved successfully."
msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح."
#: inventory/views.py:799
#: inventory/views.py:832
msgid "Car finance details updated successfully."
msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح."
#: inventory/views.py:828
#: inventory/views.py:861
msgid "Car updated successfully."
msgstr "تم تحديث السيارة بنجاح"
#: inventory/views.py:840
#: inventory/views.py:873
msgid "Car deleted successfully."
msgstr "تم حذف السيارة بنجاح."
#: inventory/views.py:919
#: inventory/views.py:952
msgid "Car transfer canceled successfully."
msgstr "تم إلغاء نقل السيارة بنجاح."
#: inventory/views.py:936
#: inventory/views.py:969
msgid "Car transfer approved successfully."
msgstr "تمت الموافقة على نقل السيارة بنجاح."
#: inventory/views.py:947
#: inventory/views.py:980
msgid "Car transfer rejected successfully."
msgstr "تم رفض نقل السيارة بنجاح."
#: inventory/views.py:960
#: inventory/views.py:993
msgid "Car Transfer Completed successfully."
msgstr "تم إكمال نقل السيارة بنجاح."
#: inventory/views.py:1031
#: inventory/views.py:1064
msgid "Custom Card added successfully."
msgstr "تم إضافة البطاقة الجمركية بنجاح."
#: inventory/views.py:1051
#: inventory/views.py:1084
msgid "Registration added successfully."
msgstr "تم إلغاء الحجز بنجاح."
#: inventory/views.py:1060
#: inventory/views.py:1093
msgid "This car is already reserved."
msgstr "هذه السيارة محجوزة بالفعل."
#: inventory/views.py:1080
#: inventory/views.py:1113
msgid "Reservation renewed successfully."
msgstr "تم تجديد الحجز بنجاح"
#: inventory/views.py:1088
#: inventory/views.py:1121
msgid "Reservation canceled successfully."
msgstr "تم إلغاء الحجز بنجاح."
#: inventory/views.py:1093
#: inventory/views.py:1126
msgid "Invalid action."
msgstr "إجراء غير صالح."
#: inventory/views.py:1097
#: inventory/views.py:1130
msgid "Invalid request method."
msgstr "طريقة الطلب غير صالحة"
#: inventory/views.py:1119
#: inventory/views.py:1152
msgid "Dealer updated successfully."
msgstr "تم تحديث المعرض بنجاح."
#: inventory/views.py:1139 templates/header.html:162
#: inventory/views.py:1172 templates/header.html:162
msgid "customers"
msgstr "العملاء"
#: inventory/views.py:1249
#: inventory/views.py:1282
msgid "Customer created successfully."
msgstr "تم إنشاء العميل بنجاح."
#: inventory/views.py:1281
#: inventory/views.py:1314
msgid "Customer updated successfully."
msgstr "تم تحديث العميل بنجاح."
#: inventory/views.py:1296
#: inventory/views.py:1329
msgid "Customer deleted successfully."
msgstr "تم حذف العميل بنجاح."
#: inventory/views.py:1331
#: inventory/views.py:1364
msgid "Vendor created successfully."
msgstr "تم إنشاء المورد بنجاح."
#: inventory/views.py:1351
#: inventory/views.py:1384
msgid "Vendor updated successfully."
msgstr "تم تحديث المورد بنجاح"
#: inventory/views.py:1359
#: inventory/views.py:1392
msgid "Vendor deleted successfully."
msgstr "تم حذف المورد بنجاح."
#: inventory/views.py:1767
#: inventory/views.py:1800
msgid "User created successfully."
msgstr "تم إنشاء المستخدم بنجاح."
#: inventory/views.py:1792
#: inventory/views.py:1825
msgid "User updated successfully."
msgstr "تم تحديث المستخدم بنجاح"
#: inventory/views.py:1803
#: inventory/views.py:1836
msgid "User deleted successfully."
msgstr "تم حذف المستخدم بنجاح."
#: inventory/views.py:1873 inventory/views.py:1903
#: inventory/views.py:1906 inventory/views.py:1936
msgid "Organization created successfully."
msgstr "تم إنشاء المنظمة بنجاح."
#: inventory/views.py:3096
#: inventory/views.py:3139
msgid "Note deleted successfully."
msgstr "تم حذف الملاحظة بنجاح."
#: inventory/views.py:3282
#: inventory/views.py:3325
msgid "Opportunity deleted successfully."
msgstr "تم حذف الفرصة بنجاح."
#: inventory/views.py:3319
#: inventory/views.py:3362
msgid "Notification marked as read."
msgstr "تم تمييز الإشعار كمقروء."
#: inventory/views.py:3345
#: inventory/views.py:3388
msgid "Service created successfully."
msgstr "تم إنشاء الخدمة بنجاح."
#: inventory/views.py:3361
#: inventory/views.py:3404
msgid "Service updated successfully."
msgstr "تم تحديث الخدمة بنجاح."
#: inventory/views.py:3478 inventory/views.py:3503
#: inventory/views.py:3521 inventory/views.py:3546
msgid "Bill updated successfully."
msgstr "تم تحديث الفاتورة بنجاح."
#: inventory/views.py:3529
#: inventory/views.py:3572
msgid "Bill is already approved."
msgstr "تمت الموافقة على الفاتورة مسبقًا."
#: inventory/views.py:3533
#: inventory/views.py:3576
msgid "Bill marked as approved successfully."
msgstr "تم تحديد الفاتورة كموافقة بنجاح."
#: inventory/views.py:3542
#: inventory/views.py:3585
msgid "Bill is already paid."
msgstr "تم دفع الفاتورة مسبقًا."
#: inventory/views.py:3551
#: inventory/views.py:3594
msgid "Bill marked as paid successfully."
msgstr "تم تحديد الفاتورة كمدفوعة بنجاح."
#: inventory/views.py:3553
#: inventory/views.py:3596
msgid "Amount paid is not equal to amount due."
msgstr "المبلغ المدفوع لا يساوي المبلغ المستحق."
#: inventory/views.py:3963 templates/header.html:267
#: inventory/views.py:4006 templates/header.html:267
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:23
#: venv/lib/python3.11/site-packages/django_ledger/views/entity.py:210
msgid "Dashboard"
@ -2765,16 +2762,14 @@ msgstr "تأكيد الحذف"
#: templates/administration/service_list.html:13
#: templates/administration/staff_index.html:79
#: templates/administration/user_profile.html:18
#: templates/crm/leads/lead_detail.html:206
#: templates/crm/leads/lead_detail.html:214
#: templates/crm/leads/lead_list.html:180
#: templates/crm/leads/lead_list.html:95 templates/crm/leads/lead_list.html:175
#: templates/crm/opportunities/opportunity_list copy.html:28
#: templates/customers/customer_list.html:127
#: templates/customers/view_customer.html:51
#: templates/ledger/bank_accounts/bank_account_detail.html:63
#: templates/ledger/bills/bill_list.html:98
#: templates/ledger/coa_accounts/account_detail.html:118
#: templates/ledger/coa_accounts/account_list.html:110
#: templates/modal/delete_modal.html:12 templates/modal/delete_modal.html:26
#: templates/modal/event_details_modal.html:33
#: templates/organizations/organization_detail.html:17
#: templates/organizations/organization_list.html:130
@ -3514,7 +3509,7 @@ msgid "City"
msgstr "المدينة"
#: templates/crm/leads/lead_detail.html:129
#: templates/crm/leads/lead_detail.html:247
#: templates/crm/leads/lead_detail.html:234
msgid "Emails"
msgstr "رسائل البريد الإلكتروني"
@ -3535,11 +3530,7 @@ msgstr "تم الإنشاء بواسطة"
msgid "Created On"
msgstr "تم الإنشاء في"
#: templates/crm/leads/lead_detail.html:210
msgid "Are you sure you want to delete this note?"
msgstr "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟"
#: templates/crm/leads/lead_detail.html:230
#: templates/crm/leads/lead_detail.html:213
#: templates/crm/leads/schedule_lead.html:5 templates/crm/note_form.html:13
#: templates/customers/view_customer.html:54
#: templates/items/expenses/expenses_list.html:34
@ -3589,7 +3580,7 @@ msgstr "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟"
msgid "Update"
msgstr "تحديث"
#: templates/crm/leads/lead_detail.html:625
#: templates/crm/leads/lead_detail.html:613
#: templates/inventory/car_detail.html:473
msgid "Error loading form. Please try again later"
msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا."
@ -3621,42 +3612,11 @@ msgstr "مُعين إلى"
msgid "Create date"
msgstr "تاريخ الإنشاء"
#: templates/crm/leads/lead_list.html:96
msgid "Delete Lead"
msgstr "حذف العميل المحتمل"
#: templates/crm/leads/lead_list.html:103
#: templates/crm/leads/lead_list.html:99
msgid "Are you sure you want to delete this lead?"
msgstr "هل أنت متأكد أنك تريد حذف هذا العميل المحتمل؟"
#: templates/crm/leads/lead_list.html:106
#: templates/crm/opportunities/opportunity_list copy.html:155
#: templates/customers/customer_list.html:93
#: templates/customers/view_customer.html:26
#: templates/inventory/car_detail.html:402
#: templates/inventory/transfer_details.html:24
#: templates/inventory/transfer_details.html:46
#: templates/ledger/bank_accounts/bank_account_detail.html:26
#: templates/ledger/bills/bill_detail.html:20
#: templates/ledger/bills/bill_detail.html:45
#: templates/ledger/bills/bill_detail.html:123
#: templates/ledger/bills/bill_list.html:68
#: templates/ledger/coa_accounts/account_detail.html:18
#: templates/ledger/coa_accounts/account_list.html:75
#: templates/organizations/organization_list.html:97
#: templates/sales/estimates/estimate_detail.html:20
#: templates/sales/invoices/invoice_detail.html:20
#: templates/sales/invoices/invoice_detail.html:45
#: templates/sales/invoices/invoice_detail.html:121
#: templates/users/user_detail.html:27 templates/vendors/vendors_list.html:97
#: templates/vendors/view_vendor.html:29
#: venv/lib/python3.11/site-packages/appointment/models.py:530
#: venv/lib/python3.11/site-packages/appointment/tests/models/test_appointment.py:62
#: venv/lib/python3.11/site-packages/django/forms/widgets.py:802
msgid "No"
msgstr "لا"
#: templates/crm/leads/lead_list.html:109
#: templates/crm/leads/lead_list.html:103
#: templates/crm/opportunities/opportunity_list copy.html:158
#: templates/customers/view_customer.html:31
#: templates/inventory/car_detail.html:407
@ -3680,9 +3640,8 @@ msgstr "لا"
msgid "Yes"
msgstr "نعم"
#: templates/crm/leads/lead_list.html:173
#: templates/crm/leads/lead_list.html:168
#: templates/crm/opportunities/opportunity_list copy.html:27
#: templates/customers/customer_list.html:126
#: templates/dealers/dealer_detail.html:24
#: templates/inventory/car_detail.html:137
#: templates/inventory/car_detail.html:185
@ -3702,15 +3661,15 @@ msgstr "نعم"
msgid "Edit"
msgstr "تحديث"
#: templates/crm/leads/lead_list.html:174
#: templates/crm/leads/lead_list.html:169
msgid "Send Email"
msgstr "إرسال البريد الإلكتروني"
#: templates/crm/leads/lead_list.html:175
#: templates/crm/leads/lead_list.html:170
msgid "Set Schedule"
msgstr "تحديد الجدولة"
#: templates/crm/leads/lead_list.html:177
#: templates/crm/leads/lead_list.html:172
msgid "Convert To Customer"
msgstr "تحويل إلى عميل"
@ -3820,6 +3779,31 @@ msgstr "حذف الفرصة"
msgid "Are you sure you want to delete this opportunity?"
msgstr "هل أنت متأكد أنك تريد حذف هذه الفرصة؟"
#: templates/crm/opportunities/opportunity_list copy.html:155
#: templates/customers/view_customer.html:26
#: templates/inventory/car_detail.html:402
#: templates/inventory/transfer_details.html:24
#: templates/inventory/transfer_details.html:46
#: templates/ledger/bank_accounts/bank_account_detail.html:26
#: templates/ledger/bills/bill_detail.html:20
#: templates/ledger/bills/bill_detail.html:45
#: templates/ledger/bills/bill_detail.html:123
#: templates/ledger/bills/bill_list.html:68
#: templates/ledger/coa_accounts/account_detail.html:18
#: templates/ledger/coa_accounts/account_list.html:75
#: templates/organizations/organization_list.html:97
#: templates/sales/estimates/estimate_detail.html:20
#: templates/sales/invoices/invoice_detail.html:20
#: templates/sales/invoices/invoice_detail.html:45
#: templates/sales/invoices/invoice_detail.html:121
#: templates/users/user_detail.html:27 templates/vendors/vendors_list.html:97
#: templates/vendors/view_vendor.html:29
#: venv/lib/python3.11/site-packages/appointment/models.py:530
#: venv/lib/python3.11/site-packages/appointment/tests/models/test_appointment.py:62
#: venv/lib/python3.11/site-packages/django/forms/widgets.py:802
msgid "No"
msgstr "لا"
#: templates/customers/customer_form.html:15
msgid "Edit Customer"
msgstr "تحديث العميل"
@ -3833,19 +3817,14 @@ msgstr "إضافة عميل"
msgid "Enter customer name"
msgstr "أدخل اسم العميل"
#: templates/customers/customer_list.html:83
msgid "Delete Customer"
msgstr "حذف العميل"
#: templates/customers/customer_list.html:90
#: templates/customers/view_customer.html:19
msgid "Are you sure you want to delete this customer?"
msgstr "هل أنت متأكد أنك تريد حذف هذا العميل؟"
#: templates/customers/view_customer.html:4 templates/users/user_detail.html:5
msgid "View Customer"
msgstr "عرض العميل"
#: templates/customers/view_customer.html:19
msgid "Are you sure you want to delete this customer?"
msgstr "هل أنت متأكد أنك تريد حذف هذا العميل؟"
#: templates/customers/view_customer.html:44
msgid "Customer details"
msgstr "تفاصيل العميل"
@ -10955,12 +10934,15 @@ msgstr "إدخال دفتر اليومية المرتبط بهذه المعام
msgid "Account from Chart of Accounts to be associated with this transaction."
msgstr "الحساب من مخطط الحسابات المرتبط بهذه المعاملة."
#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:448
msgid "Amount of the transaction."
msgstr "مبلغ المعاملة."
#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:455
msgid "Transaction Description"
msgstr "وصف المعاملة"
#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:456
msgid "A description to be included with this individual transaction."
msgstr "وصف يتم تضمينه مع هذه المعاملة الفردية."
@ -12175,7 +12157,9 @@ msgstr "تحديث عنصر المخزون"
#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:110
msgid "Locked Journal Entry. Must unlock ledger to add new Journal Entries."
msgstr "إدخال دفتر اليومية مقفل. يجب إلغاء قفل دفتر الأستاذ لإضافة إدخالات جديدة في دفتر اليومية."
msgstr ""
"إدخال دفتر اليومية مقفل. يجب إلغاء قفل دفتر الأستاذ لإضافة إدخالات جديدة في "
"دفتر اليومية."
#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:131
msgid "Update Journal Entry"
@ -12291,6 +12275,15 @@ msgstr "س"
msgid "y"
msgstr "ص"
#~ msgid "Are you sure you want to delete this note?"
#~ msgstr "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟"
#~ msgid "Delete Lead"
#~ msgstr "حذف العميل المحتمل"
#~ msgid "Delete Customer"
#~ msgstr "حذف العميل"
#~ msgid "OTP verified successfully!"
#~ msgstr "تم التحقق من رمز التحقق بنجاح!"

Binary file not shown.

View File

@ -149,15 +149,15 @@
{% if car.finances %}
<tr>
<th>{% trans "Cost Price"|capfirst %}</th>
<td>{{ car.finances.cost_price }}</td>
<td>{{ car.finances.cost_price|floatformat:2 }}</td>
</tr>
<tr>
<th>{% trans "Selling Price"|capfirst %}</th>
<td>{{ car.finances.selling_price }}</td>
<td>{{ car.finances.selling_price|floatformat:2 }}</td>
</tr>
<tr>
<th>{% trans "Discount Amount"|capfirst %}</th>
<td>{{ car.finances.discount_amount }} -</td>
<td>{{ car.finances.discount_amount|floatformat:2 }} -</td>
</tr>
<tr>
<th>{% trans "Additional Fee"|capfirst %}</th>
@ -167,17 +167,17 @@
{% for service in car.finances.additional_services.all %}
<tr>
<td>{{service.name}}</td>
<td>{{ service.price_ }}</td>
<td>{{ service.price_|floatformat:2 }}</td>
</tr>
{% endfor %}
{% endif %}
<tr>
<th>{% trans "VAT Amount"|capfirst %}</th>
<td>{{ car.finances.vat_amount }}</td>
<td>{{ car.finances.vat_amount|floatformat:2 }}</td>
</tr>
<tr>
<th>{% trans "Total"|capfirst %}</th>
<td>{{ car.finances.total_vat }}</td>
<td>{{ car.finances.total_vat|floatformat:2 }}</td>
</tr>
<tr>
<td colspan="2">

View File

@ -84,8 +84,8 @@
<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>
<p class="fw-bold mb-1">{% trans 'Paid Amount' %}</p>
<h4 class="fw-bolder text-nowrap {% if bill.is_paid %}text-success{% endif %}">${{bill.amount_paid}}</h4>
<h6 class="fw-bolder text-nowrap">Owned <span class="fw-semibold text-nowrap text-success">${{bill.get_amount_open}}</span></h6>
<h4 class="fw-bolder text-nowrap {% if bill.is_paid %}text-success{% endif %}">{{bill.amount_paid}} {{ CURRENCY }}</h4>
<h6 class="fw-bolder text-nowrap">Owned <span class="fw-semibold text-nowrap text-success">{{bill.get_amount_open}} {{ CURRENCY }}</span></h6>
<div class="progress" style="height:17px">
<div class="progress-bar fw-semibold bg-{% if bill.get_progress_percent < 100 %}secondary{% else %}success{% endif %} rounded-2" role="progressbar" style="width: {{bill.get_progress_percent}}%" aria-valuenow="{{bill.get_progress_percent}}" aria-valuemin="0" aria-valuemax="100">{{bill.get_progress_percent}}%</div>
</div>
@ -137,9 +137,9 @@
<div>
<p class="fw-bold mb-1">{% trans 'Due Amount' %}</p>
{% if bill.is_paid %}
<s><h4 class="fw-bolder text-nowrap">${{bill.amount_due}} </h4></s>
<s><h4 class="fw-bolder text-nowrap">{{bill.amount_due}} {{ CURRENCY }}</h4></s>
{% else %}
<h4 class="fw-bolder text-nowrap">${{bill.amount_due}} </h4>
<h4 class="fw-bolder text-nowrap">{{bill.amount_due}} {{ CURRENCY }}</h4>
{% endif %}
</div>
</div>

View File

@ -95,7 +95,7 @@
</td>
<td class="py-2 d-none d-sm-block pe-sm-2">:</td>
<td class="py-2">
<p class="ps-6 ps-sm-0 fw-semibold mb-0">${{ data.total_discount }}</p>
<p class="ps-6 ps-sm-0 fw-semibold mb-0">{{ data.total_discount }} {{ CURRENCY }}</p>
</td>
</tr>
<tr>
@ -109,7 +109,7 @@
</td>
<td class="py-2 d-none d-sm-block pe-sm-2">:</td>
<td class="py-2">
<p class="ps-6 ps-sm-0 fw-semibold mb-0">${{ data.grand_total }}</p>
<p class="ps-6 ps-sm-0 fw-semibold mb-0">{{ data.grand_total }} {{ CURRENCY }}</p>
</td>
</tr>
@ -158,7 +158,7 @@
<td class="create_by align-middle white-space-nowrap fw-semibold text-body-highlight">{{car.year}}</td>
<td class="last_activity align-middle text-center py-2">
<div class="d-flex align-items-center flex-1">
<span class="fw-bold fs-9 text-body">${{car.total}}</span>
<span class="fw-bold fs-9 text-body">{{car.total}} {{ CURRENCY }}</span>
</div>
</td>
</tr>

View File

@ -260,18 +260,18 @@
<!-- Additional Charges (VAT and Services) -->
<div class="additional-charges">
<p><strong>{% trans "VAT" %} ({{vat}}%):</strong> <span class="highlight">${{data.vat}}</span></p>
<p><strong>{% trans "VAT" %} ({{vat}}%):</strong> <span class="highlight">{{data.vat}} {{ CURRENCY }}</span></p>
<p><strong>{% trans "Additional Services" %}:</strong>
<br>
{% for service in data.additional_services %}
<span class="highlight">{{service.name}} - ${{service.price}}</span><br>
<span class="highlight">{{service.name}} - {{service.price}} {{ CURRENCY }}</span><br>
{% endfor %}
</p>
</div>
<!-- Total -->
<div class="estimate-total">
<p><strong>{%trans "Total Amount" %}:</strong> <span class="highlight">${{data.grand_total}}</span></p>
<p><strong>{%trans "Total Amount" %}:</strong> <span class="highlight">{{data.grand_total}} {{ CURRENCY }}</span></p>
</div>
<!-- Footer Note -->

View File

@ -15,7 +15,7 @@
body {
font-family: 'Roboto', sans-serif;
margin: 0;
padding: 0;
padding: 10mm;
background-color: #f8f9fa;
}
.invoice-container {
@ -40,6 +40,7 @@
.qr-code img {
width: 3cm;
height: 3cm;
border-radius: 0.3333333333rem;
}
.invoice-details, .invoice-table {
font-size: 12px;
@ -66,96 +67,175 @@
</style>
</head>
<body>
<div class="invoice-container" id="invoice-content">
<div class="invoice-header">
<h5>Tax Invoice / فاتورة ضريبية</h5>
<div class="row p-2">
<div class="col-2">
<button class="btn btn-sm btn-danger w-100" onclick="window.history.back()">الرجوع / Back</button>
</div>
<div class="qr-code">
<img src="{% static 'qr_code/Marwan_qr.png' %}" alt="QR Code">
<div class="col-2">
<button class="btn btn-sm btn-primary w-100" id="download-pdf">تحميل / Download</button>
</div>
<div class="col-8">
</div>
<div class="invoice-details">
<table class="table table-sm table-responsive ">
<tr><td></td><td class="text-end"></td><td class="text-end"><img class="rounded-soft" src="{{ dealer.logo.url }}" alt="" style="height: 2cm; width: 2cm; border-radius: 0.3333333333rem;"/></td></tr>
<tr><td><strong>{{ dealer.name }}</strong></td><td></td><td class="text-end"><strong>{{ dealer.arabic_name }}</strong></td></tr>
<tr><td><strong>Address</strong></td><td>{{ dealer.address }}</td><td class="text-end"><strong>العنوان</strong></td></tr>
<tr><td><strong>Phone</strong></td><td>{{ dealer.phone_number }}</td><td class="text-end"><strong>جوال</strong></td></tr>
<tr><td><strong>VAT Number</strong></td><td>{{ dealer.vrn }}</td><td class="text-end"><strong>الرقم الضريبي</strong></td></tr>
</table>
</div>
<div class="invoice-details">
<div class="invoice-container" id="invoice-content">
<div class="invoice-header">
<h5 class="fs-5">Tax Invoice / فاتورة ضريبية</h5>
</div>
<div>
</div>
<div class="invoice-details">
<table class="table table-sm table-responsive ">
<tr>
<td>
<div class="qr-code">
<img src="{% static 'qr_code/Marwan_qr.png' %}" alt="QR Code">
</div>
</td>
<td></td>
<td>
<div class="qr-code">
<img class="rounded-soft" src="{{ dealer.logo.url|default:'' }}" alt="Dealer Logo"/>
</div>
</td>
</tr>
<tr>
<td><strong>{{ dealer.name }}</strong></td>
<td></td>
<td class="text-end"><strong>{{ dealer.arabic_name }}</strong></td>
</tr>
<tr>
<td><strong>Address</strong></td>
<td>{{ dealer.address }}</td>
<td class="text-end"><strong>العنوان</strong></td>
</tr>
<tr>
<td><strong>Phone</strong></td>
<td>{{ dealer.phone_number }}</td>
<td class="text-end"><strong>جوال</strong></td>
</tr>
<tr>
<td><strong>VAT Number</strong></td>
<td>{{ dealer.vrn }}</td>
<td class="text-end"><strong>الرقم الضريبي</strong></td>
</tr>
</table>
</div>
<div class="invoice-details">
<table class="table table-sm table-bordered">
<tr><td class="ps-1"><strong>Invoice Number</strong></td><td class="text-center">{{ invoice.invoice_number }}</td><td class="text-end p-1"><strong>رقم الفاتورة</strong></td></tr>
<tr><td class="ps-1"><strong>Date</strong></td><td class="text-center">{{ invoice.date_in_review }}</td><td class="text-end p-1"><strong>التاريخ</strong></td></tr>
<tr><td class="ps-1"><strong>Customer</strong></td><td class="text-center">{{ invoice.customer.customer_name }}</td><td class="text-end p-1"><strong>العميل</strong></td></tr>
<tr><td class="ps-1"><strong>VAT Number</strong></td><td class="text-center"></td><td class="text-end p-1"><strong>الرقم الضريبي</strong></td></tr>
<tr><td class="ps-1"><strong>Email</strong></td><td class="text-center">{{ invoice.customer.email }}</td><td class="text-end p-1"><strong>البريد الالكتروني</strong></td></tr>
<tr><td class="ps-1"><strong>Terms</strong></td><td class="text-center">{{ invoice.get_terms_display }}</td><td class="text-end p-1"><strong>طريقة الدفع</strong></td></tr>
<tr>
<td class="ps-1"><strong>Invoice Number</strong></td>
<td class="text-center">{{ invoice.invoice_number }}</td>
<td class="text-end p-1"><strong>رقم الفاتورة</strong></td>
</tr>
<tr>
<td class="ps-1"><strong>Date</strong></td>
<td class="text-center">{{ invoice.date_in_review| date:"Y/m/d" }}</td>
<td class="text-end p-1"><strong>التاريخ</strong></td>
</tr>
<tr>
<td class="ps-1"><strong>Customer</strong></td>
<td class="text-center">{{ invoice.customer.customer_name }}</td>
<td class="text-end p-1"><strong>العميل</strong></td>
</tr>
<tr>
<td class="ps-1"><strong>VAT Number</strong></td>
<td class="text-center">{{ invoice.customer.vrn|default:"-" }}</td>
<td class="text-end p-1"><strong>الرقم الضريبي</strong></td>
</tr>
<tr>
<td class="ps-1"><strong>Email</strong></td>
<td class="text-center">{{ invoice.customer.email|default:"N/A" }}</td>
<td class="text-end p-1"><strong>البريد الالكتروني</strong></td>
</tr>
<tr>
<td class="ps-1"><strong>Terms</strong></td>
<td class="text-center">{{ invoice.get_terms_display }}</td>
<td class="text-end p-1"><strong>طريقة الدفع</strong></td>
</tr>
</table>
</div>
<div class="d-flex justify-content-between">
<span class="fs-9 fw-thin">Car Details</span>
<span class="fs-9 fw-thin">تفاصيل السيارة</span>
</div>
<div class="invoice-table">
<table class="table table-sm table-bordered">
<thead>
<tr>
<th class="text-wrap text-center">Make / الصانع</th>
<th class="text-wrap text-center">Model / الموديل</th>
<th class="text-wrap text-center">Year / السنة</th>
<th class="text-wrap text-center">VIN / الهيكل</th>
<th class="text-wrap text-center">Quantity / الكمية</th>
<th class="text-wrap text-center">Unit Price / سعر الوحدة</th>
<th class="text-wrap text-center">VAT / الضريبة</th>
<th class="text-wrap text-center">Total / الإجمالي</th></tr>
<tr>
<th class="text-wrap text-center align-content-center"><span class="fs-10">Make</span> / <span class="fs-10">الصانع</span></th>
<th class="text-wrap text-center align-content-center"><span class="fs-10">Model</span> / <span class="fs-10">الموديل</span></th>
<th class="text-wrap text-center align-content-center"><span class="fs-10">Trim</span> / <span class="fs-10">الفئة</span></th>
<th class="text-wrap text-center align-content-center"><span class="fs-10">Year</span> / <span class="fs-10">السنة</span></th>
<th class="text-wrap text-center align-content-center"><span class="fs-10">VIN</span> / <span class="fs-10">الهيكل</span></th>
<th class="text-wrap text-center align-content-center"><span class="fs-10">Quantity</span> / <span class="fs-10">الكمية</span></th>
<th class="text-wrap text-center align-content-center"><span class="fs-10">Unit Price</span> / <span class="fs-10">سعر الوحدة</span></th>
<th class="text-wrap text-center align-content-center"><span class="fs-10">Including VAT</span> / <span class="fs-10">شامل الضريبة</span></th>
</tr>
</thead>
<tbody>
{% for item in data.cars %}
<tr>
<td class="ps-1">{{ item.make }}</td>
<td class="ps-1">{{ item.model }}</td>
<td class="text-center">{{ item.year }}</td>
<td class="ps-1">{{ item.vin }}</td>
<td class="text-center">{{ item.quantity|floatformat:-1 }}</td>
<td class="text-center">{{ item.selling_price }}</td>
<td class="text-center">{{ item.vat_amount }}</td>
<td class="text-center">{{ item.total }}</td>
<td class="ps-1 fs-10 align-content-center" colspan="3">{{ item.make }} - {{ item.model }} - {{ item.trim }}</td>
<td class="text-center fs-10 align-content-center">{{ item.year }}</td>
<td class="ps-1 fs-10 align-content-center">{{ item.vin }}</td>
<td class="text-center fs-10 align-content-center">{{ item.quantity|floatformat:-1 }}</td>
<td class="text-center fs-10 align-content-center">{{ item.unit_price|floatformat:2 }}</td>
<td class="text-center fs-10 align-content-center">{{ item.total_vat|floatformat:2 }}</td>
</tr>
{% endfor %}
<tr>
<td class="ps-1 fs-10 align-content-center" colspan="5"></td>
<td class="text-center fs-10 align-content-center">{{ data.quantity|floatformat:-1 }}</td>
<td class="text-center fs-10 align-content-center">{{ data.total_price|floatformat:2 }}</td>
<td class="text-center fs-10 align-content-center">{{ data.total_vat|floatformat:2 }}</td>
</tr>
</tbody>
</table>
</div>
<div class="invoice-note">Additional Services \ الخدمات الإضافية</div>
<div class="invoice-table">
<div class="d-flex justify-content-between">
<span class="fs-9 fw-thin">Additional Services</span>
<span class="fs-9 fw-thin">الخدمات الإضافية</span>
</div>
{% if data.additionals %}
<div class="invoice-table">
<table class="table table-sm table-bordered">
<thead>
<tr>
<th class="text-wrap text-center">Type / النوع</th>
<th class="text-wrap text-center">Quantity / الكمية</th>
<th class="text-wrap text-center">Unit Price / سعر الوحدة</th>
<th class="text-wrap text-center">VAT / الضريبة</th>
<th class="text-wrap text-center">Total / الإجمالي</th></tr>
<th class="text-center fs-10 align-content-center">Type / النوع</th>
<th class="text-center fs-10 align-content-center">Price / السعر</th>
<th class="text-center fs-10 align-content-center">Taxable / خاضع للضريبة</th>
</tr>
</thead>
<tbody>
{% for item in data.cars %}
{% for item in data.additionals %}
<tr>
<td class="ps-1">{{ item }}</td>
<td class="text-center">{{ item.quantity|floatformat:-1 }}</td>
<td class="text-center">{{ item.selling_price }}</td>
<td class="text-center">{{ item.vat_amount }}</td>
<td class="text-center">{{ item.total }}</td>
<td class="ps-1 text-start fs-10 align-content-center">{{ item.name }}</td>
<td class="ps-1 text-center fs-10 align-content-center">{{ item.price|floatformat:2 }}</td>
<td class="ps-1 text-center fs-10 align-content-center">{{ item.taxable|yesno:"نعم,لا" }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
<div class="d-flex justify-content-end">
<div class="table-responsive">
<table class="table table-sm table-responsive ">
<tr>
<td class="text-start ps-1"><strong class="fs-9">VAT</strong></td>
<td class="text-center"><span class="fs-9">{{ data.total_vat_amount }} {{ CURRENCY }}</span></td>
<td class="text-center"><span class="fs-9">{{ data.total_vat_amount|floatformat:2 }} {{ CURRENCY }}</span></td>
<td class="text-end"><strong class="fs-9">ضريبة القيمة المضافة</strong></td>
</tr>
<tr>
<td class="text-start ps-1"><strong class="fs-9">Total</strong></td>
<td class="text-center"><span class="fs-9">{{ data.grand_total }} {{ CURRENCY }}</span></td>
<td class="text-center"><span class="fs-9">{{ data.grand_total|floatformat:2 }} {{ CURRENCY }}</span></td>
<td class="text-end"><strong class="fs-9">الإجمالي</strong></td>
</tr>
<tr>
@ -170,11 +250,10 @@
<div class="footer-note d-flex justify-content-between align-items-end">
<div class="logo-img text-center">
<img src="{% static 'images/logos/logo-d-pdf.png' %}" style="width: 10mm; height: 10mm;"/>
<p class="fs-11 fw-bold">Haikal | هيكل</p>
<p class="fs-11 fw-bold"><span>Haikal</span> | <span>هيكل</span></p>
</div>
<p class="fs-11">Powered by <a class="text-decoration-none" href="https://tenhal.sa" style="color: #112e40;">TENHAL | تنحل</a></p>
<p class="fs-11"><span class="fw-thin">Powered by </span><a class="text-decoration-none" href="https://tenhal.sa" style="color: #112e40;"><span>TENHAL</span> | <span>تنحل</span></a></p>
</div>
</div>
<script src="{% static 'vendors/bootstrap/bootstrap.min.js' %}"></script>
<script src="{% static 'js/html2pdf.bundle.min.js' %}"></script>
@ -182,9 +261,9 @@
document.getElementById('download-pdf').addEventListener('click', function () {
html2pdf().from(document.getElementById('invoice-content')).set({
margin: 0,
filename: "{{ invoice.invoice_number_invoice.customer.name_invoice.date_in_review }}.pdf",
filename: "{{ invoice.invoice_number }}_{{ invoice.customer.customer_name }}_{{ invoice.date_in_review|date:'Y-m-d' }}.pdf",
image: { type: 'jpeg', quality: 0.98 },
html2canvas: { scale: 2 },
html2canvas: { scale: 3 },
jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
}).save();
});

View File

@ -27,8 +27,8 @@
<td class="align-middle product white-space-nowrap py-0">{{ transaction.created|date}}</td>
<td class="align-middle product white-space-nowrap">{{ transaction.account.name }}</td>
<td class="align-middle product white-space-nowrap">{{ transaction.account.code }}</td>
<td class="align-middle product white-space-nowrap">{% if transaction.tx_type == "debit" %}${{ transaction.amount }}{% endif %}</td>
<td class="align-middle product white-space-nowrap">{% if transaction.tx_type == "credit" %}${{ transaction.amount }}{% endif %}</td>
<td class="align-middle product white-space-nowrap">{% if transaction.tx_type == "debit" %}{{ transaction.amount }}{{ CURRENCY }}{% endif %}</td>
<td class="align-middle product white-space-nowrap">{% if transaction.tx_type == "credit" %}{{ transaction.amount }}{{ CURRENCY }}{% endif %}</td>
<td class="align-middle product white-space-nowrap">{{ transaction.description }}</td>
</tr>
{% empty %}