first commit
This commit is contained in:
parent
6b3367fa29
commit
5371042919
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -161,3 +161,7 @@ class CarRegistrationForm(forms.ModelForm):
|
||||
]
|
||||
|
||||
|
||||
class VendorForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Vendor
|
||||
exclude = ['dealer']
|
||||
|
||||
@ -376,72 +376,72 @@ class Customer(models.Model):
|
||||
return f"{self.first_name}{middle} {self.last_name}"
|
||||
|
||||
|
||||
# # Create Entity
|
||||
# @receiver(post_save, sender=Dealer)
|
||||
# def create_ledger_entity(sender, instance, created, **kwargs):
|
||||
# if created:
|
||||
# entity = EntityModel.objects.create(
|
||||
# name=instance.name,
|
||||
# admin=instance.user,
|
||||
# address_1=instance.address,
|
||||
# fy_start_month=1,
|
||||
# accrual_method=True,
|
||||
# depth=0,
|
||||
# )
|
||||
#
|
||||
# default_coa = entity.create_chart_of_accounts(assign_as_default=True,
|
||||
# commit=True,
|
||||
# coa_name=_("Chart of Accounts"))
|
||||
# if default_coa:
|
||||
# entity.populate_default_coa(activate_accounts=True, coa_model=default_coa)
|
||||
# print(f"Ledger entity created for Dealer: {instance.name}")
|
||||
#
|
||||
#
|
||||
# # # Create Vendor
|
||||
# @receiver(post_save, sender=Vendor)
|
||||
# def create_ledger_vendor(sender, instance, created, **kwargs):
|
||||
#
|
||||
# if created:
|
||||
# entity = EntityModel.objects.filter(name=instance.dealer.name).first()
|
||||
#
|
||||
# vendor = VendorModel.objects.create(
|
||||
# entity_model=entity,
|
||||
# vendor_name=instance.name,
|
||||
# vendor_number=instance.crn,
|
||||
# address_1=instance.address,
|
||||
# phone=instance.phone_number,
|
||||
# tax_id_number=instance.vrn,
|
||||
# active=True,
|
||||
# hidden=False,
|
||||
# additional_info={
|
||||
# "arabic_name": instance.arabic_name,
|
||||
# "contact_person": instance.contact_person,
|
||||
# },
|
||||
# )
|
||||
#
|
||||
# print(f"VendorModel created for Vendor: {instance.name}")
|
||||
#
|
||||
#
|
||||
# @receiver(post_save, sender=Customer)
|
||||
# def create_customer(sender, instance, created, **kwargs):
|
||||
#
|
||||
# if created:
|
||||
# entity = EntityModel.objects.filter(name=instance.dealer.name).first()
|
||||
# name = f"{instance.first_name} {instance.middle_name} {instance.last_name}"
|
||||
#
|
||||
# customer = CustomerModel.objects.create(
|
||||
# entity_model=entity,
|
||||
# customer_name=name,
|
||||
# customer_number=instance.national_id,
|
||||
# address_1=instance.address,
|
||||
# phone=instance.phone_number,
|
||||
# email=instance.email,
|
||||
# sales_tax_rate=0.15,
|
||||
# )
|
||||
#
|
||||
# print(f"Customer created: {name}")
|
||||
#
|
||||
#
|
||||
# Create Entity
|
||||
@receiver(post_save, sender=Dealer)
|
||||
def create_ledger_entity(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
entity = EntityModel.objects.create(
|
||||
name=instance.name,
|
||||
admin=instance.user,
|
||||
address_1=instance.address,
|
||||
fy_start_month=1,
|
||||
accrual_method=True,
|
||||
depth=0,
|
||||
)
|
||||
|
||||
default_coa = entity.create_chart_of_accounts(assign_as_default=True,
|
||||
commit=True,
|
||||
coa_name=_("Chart of Accounts"))
|
||||
if default_coa:
|
||||
entity.populate_default_coa(activate_accounts=True, coa_model=default_coa)
|
||||
print(f"Ledger entity created for Dealer: {instance.name}")
|
||||
|
||||
|
||||
# # Create Vendor
|
||||
@receiver(post_save, sender=Vendor)
|
||||
def create_ledger_vendor(sender, instance, created, **kwargs):
|
||||
|
||||
if created:
|
||||
entity = EntityModel.objects.filter(name=instance.dealer.name).first()
|
||||
|
||||
vendor = VendorModel.objects.update_or_create(
|
||||
entity_model=entity,
|
||||
vendor_name=instance.name,
|
||||
vendor_number=instance.crn,
|
||||
address_1=instance.address,
|
||||
phone=instance.phone_number,
|
||||
tax_id_number=instance.vrn,
|
||||
active=True,
|
||||
hidden=False,
|
||||
additional_info={
|
||||
"arabic_name": instance.arabic_name,
|
||||
"contact_person": instance.contact_person,
|
||||
},
|
||||
)
|
||||
|
||||
print(f"VendorModel created for Vendor: {instance.name}")
|
||||
|
||||
|
||||
@receiver(post_save, sender=Customer)
|
||||
def create_customer(sender, instance, created, **kwargs):
|
||||
|
||||
if created:
|
||||
entity = EntityModel.objects.filter(name=instance.dealer.name).first()
|
||||
name = f"{instance.first_name} {instance.middle_name} {instance.last_name}"
|
||||
|
||||
customer = CustomerModel.objects.create(
|
||||
entity_model=entity,
|
||||
customer_name=name,
|
||||
customer_number=instance.national_id,
|
||||
address_1=instance.address,
|
||||
phone=instance.phone_number,
|
||||
email=instance.email,
|
||||
sales_tax_rate=0.15,
|
||||
)
|
||||
|
||||
print(f"Customer created: {name}")
|
||||
|
||||
|
||||
# # Create Item
|
||||
# @receiver(post_save, sender=Car)
|
||||
# def create_item_model(sender, instance, created, **kwargs):
|
||||
|
||||
@ -35,6 +35,13 @@ urlpatterns = [
|
||||
path('customers/create/', views.CustomerCreateView.as_view(), name='customer_create'),
|
||||
path('customers/<int:pk>/update/', views.CustomerUpdateView.as_view(), name='customer_update'),
|
||||
path('customers/<int:pk>/delete/', views.delete_customer, name='customer_delete'),
|
||||
# Vendor URLs
|
||||
path('vendors', views.VendorListView.as_view(), name='vendor_list'),
|
||||
path('vendors/<int:pk>/', views.VendorDetailView.as_view(), name='vendor_detail'),
|
||||
path('vendors/create/', views.VendorCreateView.as_view(), name='vendor_create'),
|
||||
path('vendors/<int:pk>/update/', views.VendorUpdateView.as_view(), name='vendor_update'),
|
||||
path('vendors/<int:pk>/delete/', views.delete_vendor, name='vendor_delete'),
|
||||
|
||||
|
||||
# Car URLs
|
||||
path('cars/inventory/<int:make_id>/<int:model_id>/<int:trim_id>/',
|
||||
|
||||
@ -724,3 +724,57 @@ def delete_customer(request, pk):
|
||||
messages.success(request, _('Customer deleted successfully.'))
|
||||
return redirect('customer_list')
|
||||
|
||||
|
||||
class VendorListView(LoginRequiredMixin, ListView):
|
||||
model = models.Vendor
|
||||
context_object_name = 'vendors'
|
||||
paginate_by = 10
|
||||
template_name = "vendors/vendors_list.html"
|
||||
|
||||
|
||||
class VendorDetailView(LoginRequiredMixin, DetailView):
|
||||
model = models.Vendor
|
||||
template_name = "vendors/view_vendor.html"
|
||||
|
||||
|
||||
class VendorCreateView(LoginRequiredMixin, CreateView):
|
||||
model = models.Vendor
|
||||
form_class = forms.VendorForm
|
||||
template_name = 'vendors/vendor_form.html'
|
||||
success_url = reverse_lazy('vendor_list')
|
||||
|
||||
def form_valid(self, form):
|
||||
if form.is_valid():
|
||||
form.instance.dealer = self.request.user.dealer
|
||||
form.save()
|
||||
messages.success(self.request, _('Vendor created successfully.'))
|
||||
return super().form_valid(form)
|
||||
else:
|
||||
return form.errors
|
||||
|
||||
|
||||
class VendorUpdateView(LoginRequiredMixin, UpdateView):
|
||||
model = models.Vendor
|
||||
form_class = forms.VendorForm
|
||||
template_name = 'vendors/vendor_form.html'
|
||||
success_url = reverse_lazy('vendor_list')
|
||||
|
||||
def form_valid(self, form):
|
||||
if form.is_valid():
|
||||
form.instance.dealer = self.request.user.dealer
|
||||
form.save()
|
||||
messages.success(self.request, _('Vendor updated successfully.'))
|
||||
return super().form_valid(form)
|
||||
else:
|
||||
return form.errors
|
||||
|
||||
|
||||
@login_required
|
||||
def delete_vendor(request, pk):
|
||||
vendor = get_object_or_404(models.Vendor, pk=pk)
|
||||
vendor.delete()
|
||||
messages.success(request, _('Vendor deleted successfully.'))
|
||||
return redirect('vendor_list')
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-12-06 19:45+0300\n"
|
||||
"POT-Creation-Date: 2024-12-08 16:18+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"
|
||||
@ -20,7 +20,7 @@ msgstr ""
|
||||
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||
|
||||
#: api/models.py:6 inventory/models.py:122
|
||||
#: templates/inventory/car_detail.html:44 templates/inventory/car_form.html:83
|
||||
#: templates/inventory/car_detail.html:61 templates/inventory/car_form.html:83
|
||||
#: templates/inventory/car_inventory.html:40
|
||||
#: templates/inventory/car_list.html:67 templates/inventory/car_list.html:69
|
||||
msgid "VIN"
|
||||
@ -34,7 +34,12 @@ msgstr "الإنجليزية"
|
||||
msgid "Arabic"
|
||||
msgstr "العربية"
|
||||
|
||||
#: inventory/models.py:30 templates/vendors/vendors_list.html:30
|
||||
#: inventory/forms.py:147 inventory/models.py:284
|
||||
#: templates/inventory/car_detail.html:135
|
||||
msgid "Custom Date"
|
||||
msgstr "تاريخ البطاقة الجمركية"
|
||||
|
||||
#: inventory/models.py:30 templates/vendors/vendors_list.html:44
|
||||
msgid "logo"
|
||||
msgstr "الشعار"
|
||||
|
||||
@ -68,7 +73,8 @@ msgid "Dealer"
|
||||
msgstr "المعرض"
|
||||
|
||||
#: inventory/models.py:136 inventory/models.py:351
|
||||
#: templates/inventory/car_detail.html:91 templates/inventory/car_form.html:225
|
||||
#: templates/inventory/car_detail.html:108
|
||||
#: templates/inventory/car_form.html:225
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:359
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/vendor.py:191
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_table.html:12
|
||||
@ -97,7 +103,7 @@ msgstr "السلسلة"
|
||||
msgid "Trim"
|
||||
msgstr "الفئة"
|
||||
|
||||
#: inventory/models.py:175 templates/inventory/car_detail.html:69
|
||||
#: inventory/models.py:175 templates/inventory/car_detail.html:86
|
||||
#: templates/inventory/car_list.html:163
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_table.html:10
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:12
|
||||
@ -108,23 +114,23 @@ msgstr "الفئة"
|
||||
msgid "Status"
|
||||
msgstr "الحالة"
|
||||
|
||||
#: inventory/models.py:181 templates/inventory/car_detail.html:73
|
||||
#: inventory/models.py:181 templates/inventory/car_detail.html:90
|
||||
#: templates/inventory/car_form.html:243 templates/inventory/car_list.html:177
|
||||
msgid "Stock Type"
|
||||
msgstr "نوع المخزون"
|
||||
|
||||
#: inventory/models.py:183 templates/inventory/car_detail.html:96
|
||||
#: inventory/models.py:183 templates/inventory/car_detail.html:113
|
||||
#: templates/inventory/car_form.html:296 templates/inventory/car_list.html:200
|
||||
msgid "Remarks"
|
||||
msgstr "ملاحظات"
|
||||
|
||||
#: inventory/models.py:184 templates/inventory/car_detail.html:77
|
||||
#: inventory/models.py:184 templates/inventory/car_detail.html:94
|
||||
#: templates/inventory/car_form.html:260 templates/inventory/car_list.html:191
|
||||
#: templates/inventory/car_list.html:192
|
||||
msgid "Mileage"
|
||||
msgstr "عدد الكيلومترات"
|
||||
|
||||
#: inventory/models.py:185 templates/inventory/car_detail.html:81
|
||||
#: inventory/models.py:185 templates/inventory/car_detail.html:98
|
||||
#: templates/inventory/car_form.html:278
|
||||
msgid "Receiving Date"
|
||||
msgstr "تاريخ الاستلام"
|
||||
@ -137,32 +143,32 @@ msgstr "السيارة"
|
||||
msgid "Cars"
|
||||
msgstr "السيارات"
|
||||
|
||||
#: inventory/models.py:234 templates/inventory/car_detail.html:123
|
||||
#: templates/inventory/car_finance_form.html:38
|
||||
#: inventory/models.py:234 templates/inventory/car_detail.html:160
|
||||
#: templates/inventory/car_finance_form.html:33
|
||||
msgid "Cost Price"
|
||||
msgstr "سعر التكلفة"
|
||||
|
||||
#: inventory/models.py:235 templates/inventory/car_detail.html:127
|
||||
#: templates/inventory/car_finance_form.html:46
|
||||
#: inventory/models.py:235 templates/inventory/car_detail.html:164
|
||||
#: templates/inventory/car_finance_form.html:40
|
||||
msgid "Profit Margin"
|
||||
msgstr "هامش الربح"
|
||||
|
||||
#: inventory/models.py:236 templates/inventory/car_detail.html:131
|
||||
#: templates/inventory/car_finance_form.html:62
|
||||
#: inventory/models.py:236 templates/inventory/car_detail.html:168
|
||||
#: templates/inventory/car_finance_form.html:54
|
||||
msgid "Selling Price"
|
||||
msgstr "سعر البيع"
|
||||
|
||||
#: inventory/models.py:237 templates/inventory/car_detail.html:135
|
||||
#: templates/inventory/car_finance_form.html:54
|
||||
#: inventory/models.py:237 templates/inventory/car_detail.html:172
|
||||
#: templates/inventory/car_finance_form.html:47
|
||||
msgid "VAT Rate"
|
||||
msgstr "نسبة ضريبة القيمة المضافة"
|
||||
|
||||
#: inventory/models.py:238 templates/inventory/car_detail.html:139
|
||||
#: templates/inventory/car_finance_form.html:66
|
||||
#: inventory/models.py:238 templates/inventory/car_detail.html:176
|
||||
#: templates/inventory/car_finance_form.html:58
|
||||
msgid "VAT Amount"
|
||||
msgstr "مبلغ ضريبة القيمة المضافة"
|
||||
|
||||
#: inventory/models.py:239 templates/inventory/car_finance_form.html:70
|
||||
#: inventory/models.py:239 templates/inventory/car_finance_form.html:62
|
||||
msgid "Total Amount"
|
||||
msgstr "المبلغ الإجمالي"
|
||||
|
||||
@ -179,7 +185,7 @@ msgid "Interior"
|
||||
msgstr "الداخلي"
|
||||
|
||||
#: inventory/models.py:262 templates/dealers/dealer_detail.html:26
|
||||
#: templates/vendors/view_vendor.html:8
|
||||
#: templates/vendors/view_vendor.html:39
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/forms/coa.py:16
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/forms/coa.py:37
|
||||
msgid "Name"
|
||||
@ -193,7 +199,7 @@ msgstr "الاسم بالعربية"
|
||||
msgid "RGB"
|
||||
msgstr "آر جي بي"
|
||||
|
||||
#: inventory/models.py:269 templates/inventory/color_palette.html:66
|
||||
#: inventory/models.py:269 templates/inventory/color_palette.html:83
|
||||
msgid "Color Type"
|
||||
msgstr "نوع اللون"
|
||||
|
||||
@ -205,15 +211,12 @@ msgstr "اللون"
|
||||
msgid "Colors"
|
||||
msgstr "الألوان"
|
||||
|
||||
#: inventory/models.py:283
|
||||
#: inventory/models.py:283 templates/inventory/car_detail.html:131
|
||||
msgid "Custom Number"
|
||||
msgstr "رقم البطاقة الجمركية"
|
||||
|
||||
#: inventory/models.py:284
|
||||
msgid "Custom Date"
|
||||
msgstr "تاريخ البطاقة الجمركية"
|
||||
|
||||
#: inventory/models.py:287
|
||||
#: inventory/models.py:287 templates/inventory/car_detail.html:16
|
||||
#: templates/inventory/car_detail.html:141
|
||||
msgid "Custom Card"
|
||||
msgstr "البطاقة الجمركية"
|
||||
|
||||
@ -278,7 +281,7 @@ msgstr "الاسم بالإنجليزية"
|
||||
#: inventory/models.py:327 inventory/models.py:347 inventory/models.py:366
|
||||
#: templates/customers/view_customer.html:53
|
||||
#: templates/dealers/dealer_detail.html:38
|
||||
#: templates/vendors/view_vendor.html:17
|
||||
#: templates/vendors/view_vendor.html:44
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:113
|
||||
msgid "Phone Number"
|
||||
msgstr "رقم الهاتف"
|
||||
@ -286,7 +289,7 @@ msgstr "رقم الهاتف"
|
||||
#: inventory/models.py:328 inventory/models.py:348 inventory/models.py:367
|
||||
#: templates/customers/view_customer.html:54
|
||||
#: templates/dealers/dealer_detail.html:42
|
||||
#: templates/vendors/view_vendor.html:19
|
||||
#: templates/vendors/view_vendor.html:46
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/tags/customer_table.html:10
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/vendor/tags/vendor_table.html:11
|
||||
msgid "Address"
|
||||
@ -300,11 +303,13 @@ msgstr "الشعار"
|
||||
msgid "Dealers"
|
||||
msgstr "المعارض"
|
||||
|
||||
#: inventory/models.py:346 templates/vendors/view_vendor.html:16
|
||||
#: inventory/models.py:346 templates/vendors/view_vendor.html:43
|
||||
msgid "Contact Person"
|
||||
msgstr "الشخص المسؤول"
|
||||
|
||||
#: inventory/models.py:352
|
||||
#: inventory/models.py:352 templates/header.html:85 templates/header.html:100
|
||||
#: templates/vendors/vendor_form.html:4 templates/vendors/vendors_list.html:4
|
||||
#: templates/vendors/vendors_list.html:5
|
||||
msgid "Vendors"
|
||||
msgstr "الموردين"
|
||||
|
||||
@ -321,7 +326,7 @@ msgid "Last Name"
|
||||
msgstr "اسم العائلة"
|
||||
|
||||
#: inventory/models.py:364 templates/customers/view_customer.html:51
|
||||
#: templates/vendors/view_vendor.html:18
|
||||
#: templates/vendors/view_vendor.html:45
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:111
|
||||
msgid "Email"
|
||||
msgstr "البريد الإلكتروني"
|
||||
@ -343,6 +348,12 @@ msgstr "العميل"
|
||||
msgid "Customers"
|
||||
msgstr "العملاء"
|
||||
|
||||
#: inventory/models.py:394
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:436
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/coa.py:152
|
||||
msgid "Chart of Accounts"
|
||||
msgstr "قائمة الحسابات"
|
||||
|
||||
#: inventory/utils.py:25
|
||||
msgid "success"
|
||||
msgstr "ناجحة"
|
||||
@ -355,109 +366,125 @@ msgstr "خطأ"
|
||||
msgid "Forgot Password?"
|
||||
msgstr "نسيت كلمة المرور؟"
|
||||
|
||||
#: inventory/views.py:69
|
||||
#: inventory/views.py:68
|
||||
msgid "You are not associated with any dealer."
|
||||
msgstr "أنت غير مرتبط بأي معرض."
|
||||
|
||||
#: inventory/views.py:251 templates/header.html:33 templates/index.html:20
|
||||
#: inventory/views.py:248 templates/header.html:33 templates/index.html:20
|
||||
#: templates/inventory/car_inventory.html:5
|
||||
#: templates/inventory/car_inventory.html:7
|
||||
msgid "inventory"
|
||||
msgstr "المخزون"
|
||||
|
||||
#: inventory/views.py:373
|
||||
#: inventory/views.py:370
|
||||
msgid "Car finance details saved successfully."
|
||||
msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح."
|
||||
|
||||
#: inventory/views.py:391
|
||||
#: inventory/views.py:388
|
||||
msgid "Car finance updated successfully."
|
||||
msgstr "تم تحديث التفاصيل المالية للسيارة بنجاح."
|
||||
|
||||
#: inventory/views.py:404
|
||||
#: inventory/views.py:401
|
||||
msgid "Car updated successfully."
|
||||
msgstr "تم تحديث السيارة بنجاح"
|
||||
|
||||
#: inventory/views.py:417
|
||||
#: inventory/views.py:414
|
||||
msgid "Car deleted successfully."
|
||||
msgstr "تم حذف السيارة بنجاح."
|
||||
|
||||
#: inventory/views.py:435 inventory/views.py:504
|
||||
#: inventory/views.py:434
|
||||
msgid "Custom Card added successfully."
|
||||
msgstr "تم إضافة البطاقة الجمركية بنجاح."
|
||||
|
||||
#: inventory/views.py:452 inventory/views.py:521
|
||||
msgid "Select a Color"
|
||||
msgstr "اختر اللون"
|
||||
|
||||
#: inventory/views.py:440
|
||||
#: inventory/views.py:457
|
||||
msgid "Select Color Type"
|
||||
msgstr "حدد نوع اللون"
|
||||
|
||||
#: inventory/views.py:468 inventory/views.py:532
|
||||
#: inventory/views.py:485 inventory/views.py:548
|
||||
msgid "Invalid color selection."
|
||||
msgstr "تحديد اللون غير صالح."
|
||||
|
||||
#: inventory/views.py:478
|
||||
#: inventory/views.py:495
|
||||
msgid "Color added successfully."
|
||||
msgstr "تمت إضافة اللون بنجاح."
|
||||
|
||||
#: inventory/views.py:539
|
||||
#: inventory/views.py:555
|
||||
msgid "Exterior color updated successfully."
|
||||
msgstr "تم تحديث اللون الخارجي بنجاح."
|
||||
|
||||
#: inventory/views.py:556
|
||||
#: inventory/views.py:572
|
||||
msgid "This car is already reserved."
|
||||
msgstr "هذه السيارة محجوزة بالفعل."
|
||||
|
||||
#: inventory/views.py:566
|
||||
#: inventory/views.py:582
|
||||
msgid "Car reserved successfully."
|
||||
msgstr "تم حجز السيارة بنجاح."
|
||||
|
||||
#: inventory/views.py:583
|
||||
#: inventory/views.py:599
|
||||
msgid "Reservation renewed successfully."
|
||||
msgstr "تم تجديد الحجز بنجاح"
|
||||
|
||||
#: inventory/views.py:588
|
||||
#: inventory/views.py:604
|
||||
msgid "Reservation canceled successfully."
|
||||
msgstr "تم إلغاء الحجز بنجاح."
|
||||
|
||||
#: inventory/views.py:592
|
||||
#: inventory/views.py:608
|
||||
msgid "Invalid action."
|
||||
msgstr "إجراء غير صالح."
|
||||
|
||||
#: inventory/views.py:594
|
||||
#: inventory/views.py:610
|
||||
msgid "Invalid request method."
|
||||
msgstr "طريقة الطلب غير صالحة"
|
||||
|
||||
#: inventory/views.py:616
|
||||
#: inventory/views.py:632
|
||||
msgid "Dealer created successfully."
|
||||
msgstr "تم إنشاء المعرض بنجاح."
|
||||
|
||||
#: inventory/views.py:627
|
||||
#: inventory/views.py:643
|
||||
msgid "Dealer updated successfully."
|
||||
msgstr "تم تحديث المعرض بنجاح."
|
||||
|
||||
#: inventory/views.py:637
|
||||
#: inventory/views.py:653
|
||||
msgid "Dealer deleted successfully."
|
||||
msgstr "تم حذف المعرض بنجاح."
|
||||
|
||||
#: inventory/views.py:643 templates/customers/customer_form.html:4
|
||||
#: inventory/views.py:659 templates/customers/customer_form.html:4
|
||||
#: templates/customers/customer_list.html:5
|
||||
#: templates/customers/customer_list.html:6 templates/header.html:59
|
||||
#: templates/header.html:74
|
||||
msgid "customers"
|
||||
msgstr "العملاء"
|
||||
|
||||
#: inventory/views.py:682
|
||||
#: inventory/views.py:698
|
||||
msgid "Customer created successfully."
|
||||
msgstr "تم إنشاء العميل بنجاح."
|
||||
|
||||
#: inventory/views.py:698
|
||||
#: inventory/views.py:714
|
||||
msgid "Customer updated successfully."
|
||||
msgstr "تم تحديث العميل بنجاح."
|
||||
|
||||
#: inventory/views.py:708
|
||||
#: inventory/views.py:724
|
||||
msgid "Customer deleted successfully."
|
||||
msgstr "تم حذف العميل بنجاح."
|
||||
|
||||
#: inventory/views.py:750
|
||||
msgid "Vendor created successfully."
|
||||
msgstr "تم إنشاء المورد بنجاح."
|
||||
|
||||
#: inventory/views.py:766
|
||||
msgid "Vendor updated successfully."
|
||||
msgstr "تم تحديث المورد بنجاح"
|
||||
|
||||
#: inventory/views.py:776
|
||||
msgid "Vendor deleted successfully."
|
||||
msgstr "تم حذف المورد بنجاح."
|
||||
|
||||
#: templates/accounts/login.html:6 templates/accounts/login.html:14
|
||||
#: templates/accounts/login.html:31 templates/header.html:105
|
||||
#: templates/accounts/login.html:31 templates/header.html:131
|
||||
msgid "Sign In"
|
||||
msgstr "تسجيل الدخول"
|
||||
|
||||
@ -480,7 +507,7 @@ msgstr "أرسل لي رمز تسجيل الدخول عبر البريد الإ
|
||||
|
||||
#: templates/accounts/logout.html:3 templates/accounts/logout.html:11
|
||||
#: templates/accounts/logout.html:21 templates/dealers/dealer_detail.html:63
|
||||
#: templates/header.html:99
|
||||
#: templates/header.html:125
|
||||
msgid "Sign Out"
|
||||
msgstr "تسجيل الخروج"
|
||||
|
||||
@ -547,19 +574,19 @@ msgstr "إنشاء حساب باستخدام مفتاح المرور"
|
||||
msgid "HAIKAL"
|
||||
msgstr "هيكل"
|
||||
|
||||
#: templates/customers/customer_form.html:15
|
||||
#: templates/customers/customer_form.html:14
|
||||
msgid "Edit Customer"
|
||||
msgstr "تحديث العميل"
|
||||
|
||||
#: templates/customers/customer_form.html:18
|
||||
#: templates/customers/customer_form.html:17
|
||||
msgid "Add Customer"
|
||||
msgstr "إضافة عميل"
|
||||
|
||||
#: templates/customers/customer_form.html:32
|
||||
#: templates/inventory/car_edit.html:43 templates/inventory/car_form.html:320
|
||||
#: templates/inventory/color_palette.html:85
|
||||
#: templates/inventory/color_palette_update.html:78
|
||||
#: templates/vendors/edit_vendor.html:10
|
||||
#: templates/customers/customer_form.html:31
|
||||
#: templates/inventory/add_custom_card.html:7
|
||||
#: templates/inventory/car_edit.html:41 templates/inventory/car_form.html:320
|
||||
#: templates/inventory/color_palette.html:106
|
||||
#: templates/vendors/vendor_form.html:31
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:81
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_update.html:19
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html:78
|
||||
@ -570,16 +597,27 @@ msgstr "إضافة عميل"
|
||||
msgid "Save"
|
||||
msgstr "حفظ"
|
||||
|
||||
#: templates/customers/customer_form.html:37
|
||||
#: templates/customers/view_customer.html:72
|
||||
#: templates/inventory/car_detail.html:248
|
||||
msgid "Back to List"
|
||||
msgstr "العودة إلى القائمة"
|
||||
#: templates/customers/customer_form.html:33
|
||||
#: templates/inventory/add_custom_card.html:8
|
||||
#: templates/inventory/car_confirm_delete.html:14
|
||||
#: templates/inventory/car_detail.html:266
|
||||
#: templates/inventory/car_finance_form.html:68
|
||||
#: templates/inventory/color_palette.html:107
|
||||
#: templates/inventory/reserve_car.html:30
|
||||
#: templates/vendors/vendor_form.html:33
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_create.html:37
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:205
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals.html:11
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals_v2.html:9
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:188
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:42
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:121
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#: templates/customers/customer_list.html:20
|
||||
#: templates/inventory/car_inventory.html:29
|
||||
#: templates/inventory/car_list.html:70 templates/vendors/vendors_list.html:19
|
||||
#: templates/vendors/vendors_list.html:21
|
||||
#: templates/inventory/car_list.html:70 templates/vendors/vendors_list.html:21
|
||||
msgid "search"
|
||||
msgstr "بحث"
|
||||
|
||||
@ -600,14 +638,14 @@ msgid "national ID"
|
||||
msgstr "رقم الهوية الوطنية"
|
||||
|
||||
#: templates/customers/customer_list.html:46
|
||||
#: templates/vendors/vendors_list.html:32
|
||||
#: templates/vendors/vendors_list.html:46
|
||||
msgid "actions"
|
||||
msgstr "الإجراءات"
|
||||
|
||||
#: templates/customers/customer_list.html:59
|
||||
#: templates/inventory/car_detail.html:107
|
||||
#: templates/inventory/car_detail.html:124
|
||||
#: templates/inventory/car_inventory.html:62
|
||||
#: templates/vendors/vendors_list.html:55
|
||||
#: templates/vendors/vendors_list.html:65
|
||||
msgid "view"
|
||||
msgstr "عرض"
|
||||
|
||||
@ -620,11 +658,13 @@ msgid "Are you sure you want to delete this customer?"
|
||||
msgstr "هل أنت متأكد أنك تريد حذف هذا العميل؟"
|
||||
|
||||
#: templates/customers/view_customer.html:26
|
||||
#: templates/vendors/view_vendor.html:25
|
||||
#: venv/lib/python3.11/site-packages/django/forms/widgets.py:802
|
||||
msgid "No"
|
||||
msgstr "لا"
|
||||
|
||||
#: templates/customers/view_customer.html:31
|
||||
#: templates/vendors/view_vendor.html:30
|
||||
#: venv/lib/python3.11/site-packages/django/forms/widgets.py:801
|
||||
msgid "Yes"
|
||||
msgstr "نعم"
|
||||
@ -634,9 +674,9 @@ msgid "Customer Details"
|
||||
msgstr "تفاصيل العميل"
|
||||
|
||||
#: templates/customers/view_customer.html:61
|
||||
#: templates/inventory/car_detail.html:115
|
||||
#: templates/inventory/car_detail.html:178
|
||||
#: templates/vendors/view_vendor.html:21
|
||||
#: templates/inventory/car_detail.html:217
|
||||
#: templates/inventory/car_detail.html:291
|
||||
#: templates/vendors/view_vendor.html:48
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/includes/card_customer.html:28
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:83
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:101
|
||||
@ -645,8 +685,7 @@ msgid "Edit"
|
||||
msgstr "تحديث"
|
||||
|
||||
#: templates/customers/view_customer.html:67
|
||||
#: templates/vendors/delete_vendor.html:11
|
||||
#: templates/vendors/view_vendor.html:22
|
||||
#: templates/vendors/view_vendor.html:53
|
||||
#: venv/lib/python3.11/site-packages/django/forms/formsets.py:499
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_delete.html:28
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:25
|
||||
@ -677,6 +716,11 @@ msgstr "تحديث"
|
||||
msgid "Delete"
|
||||
msgstr "حذف"
|
||||
|
||||
#: templates/customers/view_customer.html:72
|
||||
#: templates/inventory/car_detail.html:293
|
||||
msgid "Back to List"
|
||||
msgstr "العودة إلى القائمة"
|
||||
|
||||
#: templates/dealers/dealer_detail.html:5
|
||||
#: templates/dealers/dealer_detail.html:14
|
||||
msgid "Dealer Details"
|
||||
@ -734,7 +778,7 @@ msgstr "تحديث معلومات المعرض"
|
||||
msgid "Save Changes"
|
||||
msgstr "حفظ تغيير"
|
||||
|
||||
#: templates/dealers/dealer_form.html:36 templates/inventory/car_edit.html:40
|
||||
#: templates/dealers/dealer_form.html:36 templates/inventory/car_edit.html:39
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_create.html:25
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_update.html:26
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/data_import_job_list.html:13
|
||||
@ -764,7 +808,7 @@ msgstr "جميع الحقوق محفوظة"
|
||||
msgid "Tenhal"
|
||||
msgstr "تنحل"
|
||||
|
||||
#: templates/header.html:25 templates/header.html:82 templates/index.html:5
|
||||
#: templates/header.html:25 templates/header.html:108 templates/index.html:5
|
||||
msgid "home"
|
||||
msgstr "الرئيسية"
|
||||
|
||||
@ -784,11 +828,15 @@ msgstr "المخزون"
|
||||
msgid "add customer"
|
||||
msgstr "إضافة عميل"
|
||||
|
||||
#: templates/header.html:96
|
||||
#: templates/header.html:92 templates/vendors/vendor_form.html:17
|
||||
msgid "Add Vendor"
|
||||
msgstr "المورد"
|
||||
|
||||
#: templates/header.html:122
|
||||
msgid "profile"
|
||||
msgstr "الملف الشخصي"
|
||||
|
||||
#: templates/header.html:128
|
||||
#: templates/header.html:154
|
||||
msgid "Theme"
|
||||
msgstr "السمة"
|
||||
|
||||
@ -892,7 +940,7 @@ msgstr "أفضل السيارات مبيعاً"
|
||||
msgid "View your best-selling cars."
|
||||
msgstr "عرض السيارات الأكثر مبيعاً."
|
||||
|
||||
#: templates/index.html:151 templates/inventory/car_detail.html:57
|
||||
#: templates/index.html:151 templates/inventory/car_detail.html:74
|
||||
#: templates/inventory/car_form.html:155 templates/inventory/car_list.html:97
|
||||
msgid "model"
|
||||
msgstr "الموديل"
|
||||
@ -952,65 +1000,48 @@ msgstr "الجمعة"
|
||||
msgid "Sat"
|
||||
msgstr "السبت"
|
||||
|
||||
#: templates/inventory/car_confirm_delete.html:14
|
||||
#: templates/inventory/car_detail.html:230
|
||||
#: templates/inventory/color_palette.html:86
|
||||
#: templates/inventory/color_palette_update.html:79
|
||||
#: templates/inventory/reserve_car.html:30
|
||||
#: templates/vendors/delete_vendor.html:12
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_create.html:37
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:205
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals.html:11
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals_v2.html:9
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:188
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:42
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:121
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#: templates/inventory/car_detail.html:6 templates/inventory/car_detail.html:41
|
||||
#: templates/inventory/car_detail.html:6 templates/inventory/car_detail.html:58
|
||||
msgid "Car Details"
|
||||
msgstr "تفاصيل السيارة"
|
||||
|
||||
#: templates/inventory/car_detail.html:21
|
||||
#: templates/inventory/car_detail.html:100 templates/inventory/car_form.html:37
|
||||
#: templates/inventory/car_detail.html:37
|
||||
#: templates/inventory/car_detail.html:117 templates/inventory/car_form.html:37
|
||||
#: templates/inventory/car_form.html:316 templates/inventory/car_list.html:47
|
||||
#: templates/inventory/car_list.html:221
|
||||
msgid "specifications"
|
||||
msgstr "المواصفات"
|
||||
|
||||
#: templates/inventory/car_detail.html:48 templates/inventory/car_list.html:119
|
||||
#: templates/inventory/car_detail.html:65 templates/inventory/car_list.html:119
|
||||
msgid "year"
|
||||
msgstr "السنة"
|
||||
|
||||
#: templates/inventory/car_detail.html:52 templates/inventory/car_form.html:137
|
||||
#: templates/inventory/car_detail.html:69 templates/inventory/car_form.html:137
|
||||
#: templates/inventory/car_list.html:79
|
||||
msgid "make"
|
||||
msgstr "الصانع"
|
||||
|
||||
#: templates/inventory/car_detail.html:61 templates/inventory/car_list.html:130
|
||||
#: templates/inventory/car_detail.html:78 templates/inventory/car_list.html:130
|
||||
msgid "series"
|
||||
msgstr "السلسلة"
|
||||
|
||||
#: templates/inventory/car_detail.html:65 templates/inventory/car_form.html:199
|
||||
#: templates/inventory/car_detail.html:82 templates/inventory/car_form.html:199
|
||||
#: templates/inventory/car_list.html:141
|
||||
msgid "trim"
|
||||
msgstr "الفئة"
|
||||
|
||||
#: templates/inventory/car_detail.html:86
|
||||
#: templates/inventory/car_detail.html:103
|
||||
msgid "Branch"
|
||||
msgstr "الفرع"
|
||||
|
||||
#: templates/inventory/car_detail.html:113
|
||||
#: templates/inventory/transfer_car.html:23
|
||||
msgid "transfer"
|
||||
msgstr "نقل"
|
||||
#: templates/inventory/car_detail.html:147
|
||||
msgid "Add"
|
||||
msgstr "إضافة"
|
||||
|
||||
#: templates/inventory/car_detail.html:119
|
||||
#: templates/inventory/car_detail.html:156
|
||||
msgid "Financial Details"
|
||||
msgstr "التفاصيل المالية"
|
||||
|
||||
#: templates/inventory/car_detail.html:143
|
||||
#: templates/inventory/car_detail.html:180
|
||||
#: templates/inventory/inventory_stats.html:61
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:98
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:127
|
||||
@ -1029,43 +1060,43 @@ msgstr "التفاصيل المالية"
|
||||
msgid "Total"
|
||||
msgstr "الإجمالي"
|
||||
|
||||
#: templates/inventory/car_detail.html:149
|
||||
#: templates/inventory/car_detail.html:187
|
||||
msgid "Edit Finance Details"
|
||||
msgstr "تعديل التفاصيل المالية"
|
||||
|
||||
#: templates/inventory/car_detail.html:153
|
||||
#: templates/inventory/car_detail.html:191
|
||||
msgid "No finance details available."
|
||||
msgstr "لا توجد تفاصيل مالية متاحة."
|
||||
|
||||
#: templates/inventory/car_detail.html:156
|
||||
#: templates/inventory/car_detail.html:194
|
||||
msgid "Add Finance Details"
|
||||
msgstr "إضافة التفاصيل المالية"
|
||||
|
||||
#: templates/inventory/car_detail.html:159
|
||||
#: templates/inventory/car_detail.html:200
|
||||
msgid "Colors Details"
|
||||
msgstr "تفاصيل الألوان"
|
||||
|
||||
#: templates/inventory/car_detail.html:185
|
||||
#: templates/inventory/car_detail.html:224
|
||||
msgid "No colors available for this car."
|
||||
msgstr "لا تتوفر ألوان لهذه السيارة."
|
||||
|
||||
#: templates/inventory/car_detail.html:192
|
||||
#: templates/inventory/car_detail.html:231
|
||||
msgid "Get Colors"
|
||||
msgstr "الحصول على الألوان"
|
||||
|
||||
#: templates/inventory/car_detail.html:199
|
||||
#: templates/inventory/car_detail.html:238
|
||||
msgid "Reservations Details"
|
||||
msgstr "تفاصيل الحجز"
|
||||
|
||||
#: templates/inventory/car_detail.html:206
|
||||
#: templates/inventory/car_detail.html:243
|
||||
msgid "Reserved By"
|
||||
msgstr "محجوز بواسطة"
|
||||
|
||||
#: templates/inventory/car_detail.html:207
|
||||
#: templates/inventory/car_detail.html:244
|
||||
msgid "Expires At"
|
||||
msgstr "ينتهي في"
|
||||
|
||||
#: templates/inventory/car_detail.html:208
|
||||
#: templates/inventory/car_detail.html:245
|
||||
#: templates/inventory/car_inventory.html:44
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/account_txs_table.html:29
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:29
|
||||
@ -1093,22 +1124,27 @@ msgstr "ينتهي في"
|
||||
msgid "Actions"
|
||||
msgstr "الإجراءات"
|
||||
|
||||
#: templates/inventory/car_detail.html:224
|
||||
#: templates/inventory/car_detail.html:260
|
||||
msgid "renew"
|
||||
msgstr "تجديد"
|
||||
|
||||
#: templates/inventory/car_detail.html:239
|
||||
#: templates/inventory/car_detail.html:277
|
||||
#: templates/inventory/reserve_car.html:29
|
||||
msgid "Reserve"
|
||||
msgstr "حجز"
|
||||
|
||||
#: templates/inventory/car_detail.html:305
|
||||
#: templates/inventory/car_detail.html:289
|
||||
#: templates/inventory/transfer_car.html:23
|
||||
msgid "transfer"
|
||||
msgstr "نقل"
|
||||
|
||||
#: templates/inventory/car_detail.html:378
|
||||
#: templates/inventory/car_list.html:542
|
||||
#: templates/partials/specifications_modal.html:11
|
||||
msgid "No specifications available."
|
||||
msgstr "لا توجد مواصفات متاحة."
|
||||
|
||||
#: templates/inventory/car_detail.html:309
|
||||
#: templates/inventory/car_detail.html:382
|
||||
#: templates/inventory/car_list.html:546
|
||||
msgid "Error loading specifications."
|
||||
msgstr "حدث خطأ أثناء تحميل المواصفات."
|
||||
@ -1125,19 +1161,19 @@ msgstr "التفاصيل المالية السيارة"
|
||||
msgid "Finance Details for"
|
||||
msgstr "التفاصيل المالية لـ"
|
||||
|
||||
#: templates/inventory/car_finance_form.html:41
|
||||
#: templates/inventory/car_finance_form.html:36
|
||||
msgid "Please provide a valid cost price."
|
||||
msgstr "يرجى تقديم سعر تكلفة صالح."
|
||||
|
||||
#: templates/inventory/car_finance_form.html:49
|
||||
#: templates/inventory/car_finance_form.html:43
|
||||
msgid "Please provide a profit margin between 0 and 100."
|
||||
msgstr "يجب أن يكون هامش الربح بين 0 و 100"
|
||||
|
||||
#: templates/inventory/car_finance_form.html:57
|
||||
#: templates/inventory/car_finance_form.html:50
|
||||
msgid "Please provide a valid VAT rate."
|
||||
msgstr "يرجى تقديم معدل صالح لضريبة القيمة المضافة."
|
||||
|
||||
#: templates/inventory/car_finance_form.html:77
|
||||
#: templates/inventory/car_finance_form.html:67
|
||||
msgid "Save Finance Details"
|
||||
msgstr "حفظ التفاصيل المالية"
|
||||
|
||||
@ -1250,18 +1286,13 @@ msgstr "لا توجد سيارات متاحة."
|
||||
msgid "Error loading options."
|
||||
msgstr "خطأ في تحميل الخيارات."
|
||||
|
||||
#: templates/inventory/color_palette.html:55
|
||||
msgid "Add Color for"
|
||||
msgstr "إضافة لون الى"
|
||||
|
||||
#: templates/inventory/color_palette_update.html:4
|
||||
#: templates/inventory/color_palette_update.html:54
|
||||
#: templates/inventory/color_palette.html:74
|
||||
msgid "Update Color"
|
||||
msgstr "تحديث اللون"
|
||||
|
||||
#: templates/inventory/color_palette_update.html:86
|
||||
msgid "Select Color"
|
||||
msgstr "اختر اللون"
|
||||
#: templates/inventory/color_palette.html:77
|
||||
msgid "Add Color for"
|
||||
msgstr "إضافة لون الى"
|
||||
|
||||
#: templates/inventory/inventory_stats.html:5
|
||||
msgid "Inventory Statistics"
|
||||
@ -1325,69 +1356,48 @@ msgstr "الماسح الضوئي"
|
||||
msgid "Specifications"
|
||||
msgstr "المواصفات"
|
||||
|
||||
#: templates/vendors/add_vendor.html:3 templates/vendors/add_vendor.html:6
|
||||
msgid "Add Supplier"
|
||||
msgstr "إضافة مورد"
|
||||
#: templates/vendors/vendor_form.html:14
|
||||
msgid "Edit Vendor"
|
||||
msgstr "تحديث المورد"
|
||||
|
||||
#: templates/vendors/add_vendor.html:16
|
||||
msgid "Add"
|
||||
msgstr "إضافة"
|
||||
|
||||
#: templates/vendors/delete_vendor.html:3
|
||||
#: templates/vendors/delete_vendor.html:6
|
||||
msgid "Delete Supplier"
|
||||
msgstr "حذف المورد"
|
||||
|
||||
#: templates/vendors/delete_vendor.html:7
|
||||
msgid "Are you sure you want to delete this supplier?"
|
||||
msgstr "هل أنت متأكد أنك تريد حذف هذا المورد؟"
|
||||
|
||||
#: templates/vendors/edit_vendor.html:3 templates/vendors/edit_vendor.html:6
|
||||
msgid "Edit Supplier"
|
||||
msgstr "تعديل المورد"
|
||||
|
||||
#: templates/vendors/vendors_list.html:4 templates/vendors/vendors_list.html:5
|
||||
msgid "suppliers"
|
||||
msgstr "الموردون"
|
||||
|
||||
#: templates/vendors/vendors_list.html:15
|
||||
msgid "add supplier"
|
||||
msgstr "إضافة مورد"
|
||||
|
||||
#: templates/vendors/vendors_list.html:28
|
||||
#: templates/vendors/vendors_list.html:42
|
||||
msgid "name"
|
||||
msgstr "الاسم"
|
||||
|
||||
#: templates/vendors/vendors_list.html:31
|
||||
#: templates/vendors/vendors_list.html:45
|
||||
msgid "address"
|
||||
msgstr "العنوان"
|
||||
|
||||
#: templates/vendors/vendors_list.html:63
|
||||
msgid "no suppliers found"
|
||||
#: templates/vendors/vendors_list.html:72
|
||||
msgid "no vendors found"
|
||||
msgstr "لم يتم العثور على موردين"
|
||||
|
||||
#: templates/vendors/vendors_list.html:73
|
||||
#: templates/vendors/vendors_list.html:82
|
||||
msgid "first"
|
||||
msgstr "الأول"
|
||||
|
||||
#: templates/vendors/vendors_list.html:78
|
||||
#: templates/vendors/vendors_list.html:87
|
||||
msgid "previous"
|
||||
msgstr "السابق"
|
||||
|
||||
#: templates/vendors/vendors_list.html:103
|
||||
#: templates/vendors/vendors_list.html:112
|
||||
msgid "next"
|
||||
msgstr "التالي"
|
||||
|
||||
#: templates/vendors/vendors_list.html:108
|
||||
#: templates/vendors/vendors_list.html:117
|
||||
msgid "last"
|
||||
msgstr "الأخير"
|
||||
|
||||
#: templates/vendors/view_vendor.html:3
|
||||
msgid "View Supplier"
|
||||
msgid "View Vendor"
|
||||
msgstr "عرض المورد"
|
||||
|
||||
#: templates/vendors/view_vendor.html:6
|
||||
msgid "Supplier Details"
|
||||
#: templates/vendors/view_vendor.html:18
|
||||
msgid "Are you sure you want to delete this vendor?"
|
||||
msgstr "هل أنت متأكد أنك تريد حذف هذا المورد؟"
|
||||
|
||||
#: templates/vendors/view_vendor.html:37
|
||||
msgid "Vendor Details"
|
||||
msgstr "تفاصيل المورد"
|
||||
|
||||
#: templates/welcome.html:4
|
||||
@ -3554,11 +3564,6 @@ msgstr "مقفل"
|
||||
msgid "Active"
|
||||
msgstr "نشط"
|
||||
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:436
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/coa.py:152
|
||||
msgid "Chart of Accounts"
|
||||
msgstr "قائمة الحسابات"
|
||||
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:443
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:485
|
||||
#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_update.html:13
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
{% block title %}{{ _("View Customer") }}{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
<!-- Specification Modal -->
|
||||
<!-- Delete Modal -->
|
||||
<div class="modal fade" id="deleteModal"
|
||||
data-bs-backdrop="static"
|
||||
data-bs-keyboard="false"
|
||||
|
||||
@ -76,6 +76,32 @@
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle"
|
||||
href="#" id="vendorsDropdown"
|
||||
role="button" data-bs-toggle="dropdown"
|
||||
aria-expanded="false">
|
||||
{% trans 'Vendors' %}
|
||||
</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="vendorsDropdown">
|
||||
<li>
|
||||
<a href="{% url 'vendor_create' %}"
|
||||
class="dropdown-item fw-lighter">
|
||||
<small>
|
||||
{% trans "Add Vendor" %}
|
||||
</small>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{% url 'vendor_list' %}"
|
||||
class="dropdown-item fw-lighter">
|
||||
<small>
|
||||
{% trans "Vendors" %}
|
||||
</small>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="nav-item">
|
||||
|
||||
19
templates/vendors/add_vendor.html
vendored
19
templates/vendors/add_vendor.html
vendored
@ -1,19 +0,0 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Add Supplier" %}{% endblock title %}
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<h1>{% trans "Add Supplier" %}</h1>
|
||||
<form method="post" class="form">
|
||||
{% csrf_token %}
|
||||
{% for field in form %}
|
||||
<div class="form-floating mb-3">
|
||||
{{ field }}
|
||||
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
<button class="btn btn-sm btn-success mt-3" type="submit">{% trans "Add" %}</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
15
templates/vendors/delete_vendor.html
vendored
15
templates/vendors/delete_vendor.html
vendored
@ -1,15 +0,0 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Delete Supplier" %}{% endblock title %}
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<h1>{% trans "Delete Supplier" %}</h1>
|
||||
<p>{% trans "Are you sure you want to delete this supplier?" %}</p>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<button class="btn btn-sm btn-danger" type="submit">{% trans "Delete" %}</button>
|
||||
<a class="btn btn-sm btn-secondary" href="{% url 'supplier_list' %}">{% trans "Cancel" %}</a>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
14
templates/vendors/edit_vendor.html
vendored
14
templates/vendors/edit_vendor.html
vendored
@ -1,14 +0,0 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load crispy_forms_filters %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Edit Supplier" %}{% endblock title %}
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<h1>{% trans "Edit Supplier" %}</h1>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
<button class="btn btn-primary" type="submit">{% trans "Save" %}</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
39
templates/vendors/vendor_form.html
vendored
Normal file
39
templates/vendors/vendor_form.html
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
{% extends "base.html" %}
|
||||
{% load i18n %}
|
||||
{% load crispy_forms_filters %}
|
||||
{% block title %}{% trans "Vendors" %}{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container my-5">
|
||||
<!-- Display Form Errors -->
|
||||
<div class="card shadow rounded">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<p class="mb-0">
|
||||
{% if customer.created %}
|
||||
<!--<i class="bi bi-pencil-square"></i>-->
|
||||
{{ _("Edit Vendor") }}
|
||||
{% else %}
|
||||
<!--<i class="bi bi-person-plus"></i> -->
|
||||
{{ _("Add Vendor") }}
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form method="post" class="form" novalidate>
|
||||
{% csrf_token %}
|
||||
{{ form|crispy }}
|
||||
{% for error in form.errors %}
|
||||
<div class="text-danger">{{ error }}</div>
|
||||
{% endfor %}
|
||||
<div class="d-flex justify-content-end">
|
||||
<button class="btn btn-sm btn-success me-1" type="submit">
|
||||
<!--<i class="bi bi-save"></i> -->
|
||||
{{ _("Save") }}
|
||||
</button>
|
||||
<a href="{{request.META.HTTP_REFERER}}" class="btn btn-sm btn-danger">{% trans "Cancel" %}</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
47
templates/vendors/vendors_list.html
vendored
47
templates/vendors/vendors_list.html
vendored
@ -1,8 +1,8 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% block title %}{% trans 'suppliers'|capfirst %}{% endblock title %}
|
||||
{% block suppliers %}<a class="nav-link active">{% trans "suppliers"|capfirst %}</a>{% endblock suppliers %}
|
||||
{% block title %}{% trans 'Vendors'|capfirst %}{% endblock title %}
|
||||
{% block vendors %}<a class="nav-link active">{% trans "Vendors"|capfirst %}</a>{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
@ -12,16 +12,30 @@
|
||||
{% include 'breadcrumbs.html' %}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<a class="btn btn-sm btn-success mb-3" href="{% url 'add_supplier' %}">{% trans "add supplier"|capfirst %}</a>
|
||||
|
||||
<form method="get" action="{% url 'supplier_list' %}">
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" name="q" class="form-control form-control-sm" placeholder="{% trans 'search'|capfirst %}" value="{{ request.GET.q }}">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-sm btn-primary" type="submit">{% trans 'search'|capfirst %}</button>
|
||||
</div>
|
||||
<div class="container-fluid p-2">
|
||||
<form method="get">
|
||||
<div class="input-group input-group-sm">
|
||||
<button id="inputGroup-sizing-sm"
|
||||
class="btn btn-sm btn-secondary rounded-start" type="submit">
|
||||
{% trans 'search'|capfirst %}
|
||||
</button>
|
||||
<input type="text"
|
||||
name="q"
|
||||
class="form-control form-control-sm rounded-end"
|
||||
value="{{ request.GET.q }}"
|
||||
aria-describedby="inputGroup-sizing-sm"/>
|
||||
<!-- Clear Button -->
|
||||
{% if request.GET.q %}
|
||||
<a href="{% url request.resolver_match.view_name %}"
|
||||
class="btn btn-sm btn-outline-danger ms-1 rounded">
|
||||
<i class="bi bi-x-lg"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
<table class="table table-hover table-responsive-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -37,11 +51,7 @@
|
||||
{% for vendor in page_obj.object_list %}
|
||||
<tr>
|
||||
<td>
|
||||
{% if request.LANGUAGE_CODE == 'ar' %}
|
||||
{{ vendor.name }}
|
||||
{% else %}
|
||||
{{ vendor.english_name }}
|
||||
{% endif %}
|
||||
{{ vendor.get_local_name }}
|
||||
</td>
|
||||
<td>
|
||||
{% if vendor.logo %}
|
||||
@ -52,15 +62,14 @@
|
||||
</td>
|
||||
<td>{{ vendor.address }}</td>
|
||||
<td>
|
||||
<a class="btn btn-sm btn-warning" href="{% url 'view_supplier' vendor.id %}">{% trans 'view'|capfirst %}</a>
|
||||
{# <a class="btn btn-sm btn-outline-success" href="{% url 'edit_supplier' supplier.id %}">{% trans 'Edit' %}</a>#}
|
||||
{# <a class="btn btn-sm btn-outline-danger" href="{% url 'delete_supplier' supplier.id %}" onclick="return confirm('{% trans "Are you sure you want to delete this supplier?" %}');">{% trans 'Delete' %}</a>#}
|
||||
<a class="btn btn-sm btn-warning" href="{% url 'vendor_detail' vendor.id %}">{% trans 'view'|capfirst %}</a>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="border-0" colspan="6">{% trans 'no suppliers found'|capfirst %}</td>
|
||||
<td class="border-0" colspan="6">{% trans 'no vendors found'|capfirst %}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
|
||||
52
templates/vendors/view_vendor.html
vendored
52
templates/vendors/view_vendor.html
vendored
@ -1,24 +1,56 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "View Supplier" %}{% endblock title %}
|
||||
{% block title %}{% trans "View Vendor" %}{% endblock title %}
|
||||
{% block content %}
|
||||
|
||||
<!-- Delete Modal -->
|
||||
<div class="modal fade" id="deleteModal"
|
||||
data-bs-backdrop="static"
|
||||
data-bs-keyboard="false"
|
||||
tabindex="-1"
|
||||
aria-labelledby="deleteModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-sm ">
|
||||
<div class="modal-content rounded">
|
||||
<div class="modal-body d-flex justify-content-center">
|
||||
<h1 class="text-danger me-2"><i class="bi bi-exclamation-diamond-fill"></i></h1>
|
||||
<span class="text-danger">
|
||||
{% trans "Are you sure you want to delete this vendor?" %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<button type="button"
|
||||
class="btn btn-secondary"
|
||||
data-bs-dismiss="modal">
|
||||
{% trans 'No' %}
|
||||
</button>
|
||||
<a type="button"
|
||||
class="btn btn-danger"
|
||||
href="{% url 'vendor_delete' vendor.id %}">
|
||||
{% trans 'Yes' %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<h1>{% trans "Supplier Details" %}</h1>
|
||||
<h1>{% trans "Vendor Details" %}</h1>
|
||||
<ul>
|
||||
<li><strong>{% trans "Name" %}:</strong>
|
||||
|
||||
{% if request.LANGUAGE_CODE == 'ar' %}
|
||||
{{ vendor.name }}
|
||||
{% else %}
|
||||
{{ vendor.english_name }}
|
||||
{% endif %}
|
||||
</li>
|
||||
{{ vendor.get_local_name }}
|
||||
</li>
|
||||
<li><strong>{% trans "Contact Person" %}:</strong> {{ vendor.contact_person }}</li>
|
||||
<li><strong>{% trans "Phone Number" %}:</strong> {{ vendor.phone_number }}</li>
|
||||
<li><strong>{% trans "Email" %}:</strong> {{ vendor.email }}</li>
|
||||
<li><strong>{% trans "Address" %}:</strong> {{ vendor.address }}</li>
|
||||
</ul>
|
||||
<a class="btn btn-sm btn-primary" href="{% url 'edit_supplier' vendor.id %}">{% trans "Edit" %}</a>
|
||||
<a class="btn btn-sm btn-danger" href="{% url 'delete_supplier' vendor.id %}">{% trans "Delete" %}</a>
|
||||
<a class="btn btn-sm btn-primary" href="{% url 'vendor_update' vendor.id %}">{% trans "Edit" %}</a>
|
||||
<a class="btn btn-sm btn-danger me-1"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#deleteModal">
|
||||
<!--<i class="bi bi-trash-fill"></i>-->
|
||||
{{ _("Delete") }}
|
||||
</a>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user