diff --git a/inventory/services.py b/inventory/services.py index 099e0722..91585363 100644 --- a/inventory/services.py +++ b/inventory/services.py @@ -88,8 +88,8 @@ def decodevin(vin): return result elif result:=elm(vin): return result - elif result:=decode_vin_haikalna(vin): - return result + # elif result:=decode_vin_haikalna(vin): + # return result else: return None @@ -118,7 +118,6 @@ def decode_vin(vin): "model": v.Model, "modelYear": v.ModelYear, } - print(data) return data if all([x for x in data.values()]) else None @@ -160,5 +159,4 @@ def elm(vin): "model": response["data"]["model"], "modelYear": response["data"]["modelYear"], } - print(data) - return data if all([x for x in data.values()]) else None + return data if all([x for x in data.values()]) else None diff --git a/inventory/signals.py b/inventory/signals.py index a64da336..4cd796ef 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -96,7 +96,6 @@ def create_car_location(sender, instance, created, **kwargs): showroom=instance.dealer, description=f"Initial location set for car {instance.vin}.", ) - print("Car Location created") except Exception as e: print(f"Failed to create CarLocation for car {instance.vin}: {e}") diff --git a/inventory/views.py b/inventory/views.py index 46cb28af..26a9203f 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -11,7 +11,6 @@ from calendar import month_name from pyzbar.pyzbar import decode from urllib.parse import urlparse, urlunparse -##################################################################### from django.db.models.deletion import RestrictedError # Django @@ -53,7 +52,6 @@ from django.views.generic import ( TemplateView, ArchiveIndexView, ) -##################################################################### # Django Ledger from django_ledger.io import roles @@ -123,9 +121,7 @@ from django_ledger.views.mixins import ( DjangoLedgerSecurityMixIn, EntityUnitMixIn, ) -##################################################################### # Other - from plans.models import Plan from inventory.filters import AccountModelFilter @@ -153,7 +149,6 @@ from .utils import ( CarTransfer, ) -##################################################################### logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) @@ -306,30 +301,6 @@ def dealer_signup(request, *args, **kwargs): ) -# class OTPView(View, LoginRequiredMixin): -# template_name = "account/otp_verification.html" -# -# def get(self, request, *args, **kwargs): -# # device = default_device(request.user) -# # device.generate_challenge() -# return render(request, self.template_name) -# -# def post(self, request, *args, **kwargs): -# otp_code = request.POST.get("otp_code") -# -# if self.verify_otp(otp_code, request.user): -# messages.success(request, _("OTP verified successfully!")) -# return redirect("home") -# -# messages.error(request, _("Invalid OTP. Please try again.")) -# return render(request, self.template_name) - -# def verify_otp(self, otp_code, user): -# device = default_device(user) -# if device and device.verify_token(otp_code): -# return True -# return False - class HomeView(LoginRequiredMixin, TemplateView): """ @@ -354,58 +325,6 @@ class HomeView(LoginRequiredMixin, TemplateView): return redirect("welcome") return super().dispatch(request, *args, **kwargs) - # def get_context_data(self, **kwargs): - # context = super().get_context_data(**kwargs) - # dealer = get_user_type(self.request) - # - # try: - # # Fetch car-related statistics - # total_cars = models.Car.objects.filter(dealer=dealer).count() - # total_reservations = models.CarReservation.objects.filter( - # reserved_until__gte=timezone.now() - # ).count() - # cars_in_house = models.CarLocation.objects.filter( - # owner=dealer, - # ).count() - # cars_outside = total_cars - cars_in_house - # - # # Fetch financial statistics - # stats = models.CarFinance.objects.aggregate( - # total_cost_price=Sum("cost_price"), - # total_selling_price=Sum("selling_price"), - # ) - # total_cost_price = stats.get("total_cost_price", 0) or 0 - # total_selling_price = stats.get("total_selling_price", 0) or 0 - # total_profit = total_selling_price - total_cost_price - # - # # Prepare context data - # context.update({ - # "dealer": dealer, - # "total_cars": total_cars, - # "cars_in_house": cars_in_house, - # "cars_outside": cars_outside, - # "total_reservations": total_reservations, - # "total_cost_price": total_cost_price, - # "total_selling_price": total_selling_price, - # "total_profit": total_profit, - # }) - # - # except Exception as e: - # # Log the error (you can use Django's logging framework) - # print(f"Error fetching data: {e}") - # # Provide default values in case of an error - # context.update({ - # "dealer": dealer, - # "total_cars": 0, - # "cars_in_house": 0, - # "cars_outside": 0, - # "total_reservations": 0, - # "total_cost_price": 0, - # "total_selling_price": 0, - # "total_profit": 0, - # }) - # return context - class TestView(TemplateView): """ @@ -594,12 +513,6 @@ class SalesDashboard(LoginRequiredMixin, TemplateView): context["staff"] = staff context["total_cars"] = total_cars context["total_reservations"] = total_reservations - # context["total_cost_price"] = total_cost_price - # context["total_selling_price"] = total_selling_price - # context["total_profit"] = total_profit - # context['new_leads'] = new_leads - # context['pending_leads'] = pending_leads - # context['canceled_leads'] = canceled_leads context["reserved_percentage"] = reserved_percentage context["sold_percentage"] = sold_percentage context["available_cars"] = available_cars @@ -609,10 +522,6 @@ class SalesDashboard(LoginRequiredMixin, TemplateView): context["damaged_cars"] = damaged_cars context["transfer_cars"] = transfer_cars context["car"] = json.dumps(car_by_make) - # context['customers'] = customers - # context['staff'] = staff - # context['total_leads'] = total_leads - # context['invoices'] = invoices return context @@ -635,7 +544,6 @@ class WelcomeView(TemplateView): context = super().get_context_data(**kwargs) dealer = get_user_type(self.request) plan_list = Plan.objects.all() - # pricing = PlanPricing.objects.filter(plan=plan). context["plan_list"] = plan_list return context @@ -662,7 +570,6 @@ class CarCreateView(LoginRequiredMixin, PermissionRequiredMixin, CreateView): template_name = "inventory/car_form.html" permission_required = ["inventory.add_car"] - # success_url = reverse_lazy('inventory_stats') def get_form(self, form_class=None): form = super().get_form(form_class) @@ -898,49 +805,54 @@ class AjaxHandlerView(LoginRequiredMixin, View): return JsonResponse(serialized_options, safe=False) +import cv2 +import numpy as np +from pyzbar.pyzbar import decode +from django.views import View +from django.shortcuts import render, get_object_or_404, redirect +from django.http import JsonResponse +from django.contrib.auth.mixins import LoginRequiredMixin +from django.utils.decorators import method_decorator +from django.views.decorators.csrf import csrf_exempt +from django.urls import reverse +from . import models # Adjust to your project structure + @method_decorator(csrf_exempt, name="dispatch") class SearchCodeView(LoginRequiredMixin, View): - """ - View to handle barcode/QR code scanning and car detail retrieval. - - This class is responsible for rendering the form page for scanning and processing - images to decode VIN codes using uploaded images. It handles both GET and POST - requests. Upon successfully decoding a VIN, it redirects to the car detail page. - - :ivar template_name: Path to the template used for the form rendering. - :type template_name: str - """ template_name = "inventory/scan_vin.html" def get(self, request, *args, **kwargs): - """Render the form page.""" return render(request, self.template_name) def post(self, request, *args, **kwargs): image_file = request.FILES.get("image") - if image_file: - print("image received!") - image = cv2.imdecode( - np.frombuffer(image_file.read(), np.uint8), cv2.IMREAD_COLOR - ) - decoded_objects = decode(image) - if decoded_objects: - print("image decoded!") - print(decoded_objects[0]) - code = decoded_objects[0].data.decode("utf-8") - print("code received!") - print(code) - car = get_object_or_404(models.Car, vin=code) - name = car.id_car_make.get_local_name - print(name) - return redirect("car_detail", pk=car.pk) - else: - print("back to else statement") - return JsonResponse({"success": False, "error": "No code detected"}) - else: + if not image_file: return JsonResponse({"success": False, "error": "No image provided"}) + try: + np_arr = np.frombuffer(image_file.read(), np.uint8) + image = cv2.imdecode(np_arr, cv2.IMREAD_COLOR) + if image is None: + raise ValueError("Invalid image format") + + gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + decoded_objects = decode(gray) + + if not decoded_objects: + return JsonResponse({"success": False, "error": "No QR/Barcode detected"}) + + code = decoded_objects[0].data.decode("utf-8").strip() + car = get_object_or_404(models.Car, vin=code) + return JsonResponse({ + "success": True, + "code": code, + "redirect_url": reverse("car_detail", args=[car.pk]) + }) + + except Exception as e: + return JsonResponse({"success": False, "error": str(e)}) + class CarInventory(LoginRequiredMixin, PermissionRequiredMixin, ListView): """ @@ -1874,17 +1786,15 @@ class DealerDetailView(LoginRequiredMixin, DetailView): return models.Dealer.objects.annotate( staff_count=Coalesce( Count("staff"), Value(0) - ) # Get the number of staff members + ) ) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) dealer = self.object car_makes = models.CarMake.objects.filter(car_dealers__dealer=dealer) - # Fetch current staff count from the annotated queryset staff_count = dealer.staff_count cars_count = models.Car.objects.filter(dealer=dealer).count() - # Get the quota value dynamically quota_dict = get_user_quota(dealer.user) allowed_users = quota_dict.get("Users", None) @@ -2116,7 +2026,6 @@ def CustomerCreateView(request): ): messages.error(request, _("Customer with this email already exists.")) else: - # Create customer name customer_name = ( f"{form.cleaned_data['first_name']} " f"{form.cleaned_data['last_name']}" @@ -2126,7 +2035,6 @@ def CustomerCreateView(request): for x in request.POST if x != "csrfmiddlewaretoken" } - # Create customer instance try: customer = dealer.entity.create_customer( commit=False, @@ -2137,7 +2045,6 @@ def CustomerCreateView(request): "email": form.cleaned_data["email"], }, ) - # customer.additional_info = {} customer.additional_info.update({"customer_info": customer_dict}) customer.additional_info.update({"type": "customer"}) customer.save() @@ -2148,7 +2055,6 @@ def CustomerCreateView(request): except Exception as e: messages.error(request, _(f"An error occurred: {str(e)}")) else: - # Form is invalid, show errors messages.error(request, _("Please correct the errors below")) return render(request, "customers/customer_form.html", {"form": form}) @@ -3636,7 +3542,7 @@ def sales_list_view(request): transactions = ItemTransactionModel.objects.for_entity( entity_slug=entity.slug, user_model=dealer.user - ) + ).order_by('created') paginator = Paginator(transactions, 10) page_number = request.GET.get("page") page_obj = paginator.get_page(page_number) diff --git a/locale/ar/LC_MESSAGES/django.mo b/locale/ar/LC_MESSAGES/django.mo index 6d5630f8..2bdd345d 100644 Binary files a/locale/ar/LC_MESSAGES/django.mo and b/locale/ar/LC_MESSAGES/django.mo differ diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index d08254b9..df3ec0cf 100644 --- a/locale/ar/LC_MESSAGES/django.po +++ b/locale/ar/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: inventory/models.py:1856 +#: inventory/models.py:1891 #: templates/ledger/reports/tags/balance_sheet_statement.html:20 #: templates/ledger/reports/tags/income_statement.html:15 #, fuzzy @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-22 06:21+0300\n" +"POT-Creation-Date: 2025-04-24 18:53+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: api/models.py:6 inventory/models.py:353 inventory/tables.py:12 +#: api/models.py:6 inventory/models.py:369 inventory/tables.py:51 #: templates/inventory/car_detail.html:59 templates/inventory/car_form.html:32 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:31 #: templates/inventory/car_inventory.html:53 @@ -38,89 +38,123 @@ msgstr "" msgid "VIN" msgstr "رقم الهيكل" -#: car_inventory/settings.py:161 car_inventory/settings.py:326 +#: car_inventory/settings.py:162 car_inventory/settings.py:327 msgid "SAR" msgstr "ريال" -#: car_inventory/settings.py:258 +#: car_inventory/settings.py:259 #: venv/lib/python3.11/site-packages/appointments/settings.py:136 msgid "English" msgstr "الإنجليزية" -#: car_inventory/settings.py:259 +#: car_inventory/settings.py:260 msgid "Arabic" msgstr "العربية" -#: car_inventory/settings.py:348 templates/header.html:389 +#: car_inventory/settings.py:349 templates/header.html:389 #: templates/welcome-temp.html:57 templates/welcome_header.html:7 msgid "Haikal" msgstr "هيكل" -#: inventory/forms.py:310 inventory/models.py:701 +#: inventory/forms.py:222 inventory/forms.py:877 inventory/models.py:896 +#: inventory/models.py:992 inventory/models.py:1142 inventory/models.py:1173 +#: inventory/models.py:1200 inventory/models.py:1220 inventory/models.py:1560 +#: templates/administration/staff_index.html:123 +#: templates/crm/leads/lead_list.html:47 +#: templates/crm/opportunities/opportunity_detail.html:190 +#: templates/customers/customer_list.html:41 +#: templates/customers/view_customer.html:76 +#: templates/users/user_detail.html:51 templates/vendors/view_vendor.html:52 +#: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:369 +#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:114 +msgid "Phone Number" +msgstr "رقم الهاتف" + +#: inventory/forms.py:225 inventory/forms.py:880 +#: templates/administration/display_appointment.html:55 +#: templates/appointment/appointment_client_information.html:57 +#: templates/crm/leads/lead_detail.html:88 +#: templates/dealers/dealer_detail.html:84 +#: templates/organizations/organization_detail.html:10 +#: templates/organizations/organization_list.html:64 +#: templates/representatives/representative_detail.html:9 +#: templates/representatives/representative_list.html:19 +#: templates/vendors/vendors_list.html:54 +#: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:49 +#: venv/lib/python3.11/site-packages/appointment/templates/appointment/appointment_client_information.html:64 +msgid "Phone" +msgstr "الهاتف" + +#: inventory/forms.py:230 inventory/forms.py:772 inventory/forms.py:789 +#: inventory/forms.py:885 inventory/forms.py:924 inventory/forms.py:942 +#: inventory/forms.py:957 +#: venv/lib/python3.11/site-packages/django/forms/fields.py:95 +msgid "This field is required." +msgstr "هذا الحقل مطلوب." + +#: inventory/forms.py:231 inventory/forms.py:886 +msgid "Phone number must be in the format 05xxxxxxxx" +msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" + +#: inventory/forms.py:502 inventory/models.py:719 #: templates/inventory/car_detail.html:122 msgid "Custom Date" msgstr "تاريخ البطاقة الجمركية" -#: inventory/forms.py:380 +#: inventory/forms.py:614 msgid "Both exterior and interior colors must be selected." msgstr "يجب اختيار اللونين الخارجي والداخلي." -#: inventory/forms.py:458 inventory/models.py:1178 inventory/models.py:1526 +#: inventory/forms.py:745 inventory/models.py:1201 inventory/models.py:1561 #: templates/account/email_change.html:5 templates/account/email_change.html:9 msgid "Email Address" msgstr "عنوان البريد الإلكتروني" -#: inventory/forms.py:462 +#: inventory/forms.py:749 #: venv/lib/python3.11/site-packages/appointment/views.py:424 #: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1915 msgid "Email address" msgstr "عنوان البريد الإلكتروني" -#: inventory/forms.py:463 templates/crm/leads/lead_list.html:41 +#: inventory/forms.py:750 templates/crm/leads/lead_list.html:41 #: templates/customers/customer_list.html:36 #: templates/vendors/vendors_list.html:49 msgid "email" msgstr "البريد الإلكتروني" -#: inventory/forms.py:469 +#: inventory/forms.py:756 msgid "You must add an email." msgstr "يجب إضافة بريد إلكتروني." -#: inventory/forms.py:474 inventory/forms.py:478 +#: inventory/forms.py:761 inventory/forms.py:765 #: templates/account/login.html:36 templates/account/login.html:38 #: venv/lib/python3.11/site-packages/django_ledger/forms/auth.py:15 msgid "Password" msgstr "كلمة المرور" -#: inventory/forms.py:485 inventory/forms.py:502 inventory/forms.py:577 -#: inventory/forms.py:598 inventory/forms.py:616 inventory/forms.py:631 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:95 -msgid "This field is required." -msgstr "هذا الحقل مطلوب." - -#: inventory/forms.py:491 inventory/forms.py:495 +#: inventory/forms.py:778 inventory/forms.py:782 msgid "Confirm Password" msgstr "تأكيد كلمة المرور" -#: inventory/forms.py:508 +#: inventory/forms.py:795 msgid "I accept the Terms and Privacy Policy" msgstr "أوافق على الشروط وسياسة الخصوصية" -#: inventory/forms.py:517 +#: inventory/forms.py:804 msgid "You must accept the terms and privacy policy." msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." -#: inventory/forms.py:527 +#: inventory/forms.py:814 msgid "An account with this email already exists." msgstr "يوجد بالفعل حساب بهذا البريد الإلكتروني." -#: inventory/forms.py:535 +#: inventory/forms.py:822 msgid "Passwords do not match." msgstr "كلمات المرور غير متطابقة." -#: inventory/forms.py:541 inventory/models.py:308 inventory/models.py:650 -#: inventory/models.py:663 inventory/models.py:972 inventory/models.py:1144 -#: inventory/models.py:1172 templates/administration/manage_service.html:22 +#: inventory/forms.py:849 inventory/models.py:324 inventory/models.py:668 +#: inventory/models.py:681 inventory/models.py:990 inventory/models.py:1167 +#: inventory/models.py:1195 templates/administration/manage_service.html:22 #: templates/administration/service_list.html:23 #: templates/administration/staff_list.html:34 #: templates/administration/user_profile.html:226 @@ -142,83 +176,51 @@ msgstr "كلمات المرور غير متطابقة." msgid "Name" msgstr "الاسم" -#: inventory/forms.py:545 inventory/models.py:877 inventory/models.py:1523 +#: inventory/forms.py:853 inventory/models.py:895 inventory/models.py:1558 msgid "English Name" msgstr "الاسم بالإنجليزية" -#: inventory/forms.py:550 +#: inventory/forms.py:858 msgid "Please enter an English Name." msgstr "يرجى إدخال اسم باللغة الإنجليزية." -#: inventory/forms.py:555 inventory/forms.py:559 inventory/models.py:309 -#: inventory/models.py:651 inventory/models.py:664 inventory/models.py:876 -#: inventory/models.py:973 inventory/models.py:1145 inventory/models.py:1173 -#: inventory/models.py:1522 templates/users/user_detail.html:48 +#: inventory/forms.py:863 inventory/forms.py:867 inventory/models.py:325 +#: inventory/models.py:669 inventory/models.py:682 inventory/models.py:894 +#: inventory/models.py:991 inventory/models.py:1168 inventory/models.py:1196 +#: inventory/models.py:1557 templates/users/user_detail.html:48 msgid "Arabic Name" msgstr "الاسم بالعربية" -#: inventory/forms.py:564 +#: inventory/forms.py:872 msgid "Please enter an Arabic name." msgstr "يرجى إدخال اسم باللغة العربية." -#: inventory/forms.py:569 inventory/models.py:878 inventory/models.py:974 -#: inventory/models.py:1119 inventory/models.py:1150 inventory/models.py:1177 -#: inventory/models.py:1197 inventory/models.py:1525 -#: templates/administration/staff_index.html:123 -#: templates/crm/leads/lead_list.html:47 -#: templates/crm/opportunities/opportunity_detail.html:193 -#: templates/customers/customer_list.html:41 -#: templates/customers/view_customer.html:76 -#: templates/users/user_detail.html:51 templates/vendors/view_vendor.html:52 -#: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:369 -#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:114 -msgid "Phone Number" -msgstr "رقم الهاتف" - -#: inventory/forms.py:572 templates/administration/display_appointment.html:55 -#: templates/appointment/appointment_client_information.html:57 -#: templates/crm/leads/lead_detail.html:88 -#: templates/dealers/dealer_detail.html:84 -#: templates/organizations/organization_detail.html:10 -#: templates/organizations/organization_list.html:64 -#: templates/representatives/representative_detail.html:9 -#: templates/representatives/representative_list.html:19 -#: templates/vendors/vendors_list.html:54 -#: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:49 -#: venv/lib/python3.11/site-packages/appointment/templates/appointment/appointment_client_information.html:64 -msgid "Phone" -msgstr "الهاتف" - -#: inventory/forms.py:578 -msgid "Phone number must be in the format 05xxxxxxxx" -msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" - -#: inventory/forms.py:587 templates/organizations/organization_detail.html:8 +#: inventory/forms.py:913 templates/organizations/organization_detail.html:8 #: templates/organizations/organization_list.html:50 msgid "CRN" msgstr "رقم السجل التجاري" -#: inventory/forms.py:591 inventory/models.py:869 inventory/models.py:1147 -#: inventory/models.py:1232 inventory/models.py:1517 +#: inventory/forms.py:917 inventory/models.py:887 inventory/models.py:1170 +#: inventory/models.py:1255 inventory/models.py:1552 msgid "Commercial Registration Number" msgstr "رقم السجل التجاري" -#: inventory/forms.py:605 templates/organizations/organization_detail.html:9 +#: inventory/forms.py:931 templates/organizations/organization_detail.html:9 #: templates/organizations/organization_list.html:57 msgid "VRN" msgstr "الرقم الضريبي" -#: inventory/forms.py:609 inventory/models.py:874 inventory/models.py:1149 -#: inventory/models.py:1235 inventory/models.py:1520 +#: inventory/forms.py:935 inventory/models.py:892 inventory/models.py:1172 +#: inventory/models.py:1258 inventory/models.py:1555 msgid "VAT Registration Number" msgstr "رقم التسجيل في ضريبة القيمة المضافة" -#: inventory/forms.py:617 +#: inventory/forms.py:943 msgid "VAT Registration Number must be 15 characters." msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." -#: inventory/forms.py:622 inventory/models.py:880 inventory/models.py:1122 -#: inventory/models.py:1152 inventory/models.py:1180 inventory/models.py:1528 +#: inventory/forms.py:948 inventory/models.py:898 inventory/models.py:1145 +#: inventory/models.py:1175 inventory/models.py:1203 inventory/models.py:1563 #: templates/crm/leads/lead_detail.html:118 #: templates/customers/customer_list.html:51 #: templates/customers/view_customer.html:71 @@ -233,30 +235,30 @@ msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا msgid "Address" msgstr "العنوان" -#: inventory/forms.py:671 inventory/models.py:1726 +#: inventory/forms.py:1030 inventory/models.py:1761 msgid "cash" msgstr "نقداً" -#: inventory/forms.py:672 inventory/models.py:1727 +#: inventory/forms.py:1031 inventory/models.py:1762 msgid "credit" msgstr "دائن" -#: inventory/forms.py:673 inventory/models.py:1728 +#: inventory/forms.py:1032 inventory/models.py:1763 #: templates/inventory/car_detail.html:164 #: templates/inventory/transfer_car.html:23 msgid "transfer" msgstr "نقل" -#: inventory/forms.py:674 inventory/models.py:1729 +#: inventory/forms.py:1033 inventory/models.py:1764 msgid "debit" msgstr "مدين" -#: inventory/forms.py:675 inventory/models.py:1730 inventory/models.py:1813 +#: inventory/forms.py:1034 inventory/models.py:1765 inventory/models.py:1848 msgid "SADAD" msgstr "سداد" -#: inventory/forms.py:837 inventory/forms.py:854 inventory/models.py:1128 -#: inventory/models.py:1199 +#: inventory/forms.py:1346 inventory/forms.py:1363 inventory/models.py:1151 +#: inventory/models.py:1222 #: templates/crm/opportunities/opportunity_form.html:22 #: templates/sales/estimates/estimate_detail.html:153 #: templates/sales/estimates/estimate_list.html:15 @@ -272,7 +274,7 @@ msgstr "سداد" msgid "Customer" msgstr "العميل" -#: inventory/forms.py:843 inventory/forms.py:853 +#: inventory/forms.py:1352 inventory/forms.py:1362 #: templates/ledger/bills/bill_detail.html:104 #: templates/sales/estimates/sale_order_preview.html:229 #: templates/sales/invoices/invoice_detail.html:125 @@ -280,18 +282,18 @@ msgstr "العميل" msgid "Terms" msgstr "الشروط" -#: inventory/forms.py:848 inventory/forms.py:852 inventory/models.py:1101 +#: inventory/forms.py:1357 inventory/forms.py:1361 inventory/models.py:1124 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:11 msgid "Title" msgstr "العنوان" -#: inventory/forms.py:945 +#: inventory/forms.py:1542 msgid "Select Car Makes" msgstr "اختر ماركات السيارات" -#: inventory/models.py:127 inventory/models.py:422 inventory/models.py:500 -#: inventory/models.py:545 inventory/models.py:698 inventory/models.py:713 -#: inventory/models.py:757 inventory/models.py:1400 +#: inventory/models.py:143 inventory/models.py:436 inventory/models.py:514 +#: inventory/models.py:559 inventory/models.py:716 inventory/models.py:731 +#: inventory/models.py:775 inventory/models.py:1435 #: templates/crm/leads/lead_list.html:35 #: templates/crm/opportunities/opportunity_form.html:35 #: templates/dashboards/manager.html:53 @@ -299,59 +301,59 @@ msgstr "اختر ماركات السيارات" msgid "Car" msgstr "سيارة" -#: inventory/models.py:128 +#: inventory/models.py:144 msgid "Light Commercial" msgstr "مركبات تجارية خفيفة" -#: inventory/models.py:129 +#: inventory/models.py:145 msgid "Heavy-Duty Tractors" msgstr "جرارات ثقيلة" -#: inventory/models.py:130 +#: inventory/models.py:146 msgid "Trailers" msgstr "مقطورات" -#: inventory/models.py:131 +#: inventory/models.py:147 msgid "Medium Trucks" msgstr "شاحنات متوسطة" -#: inventory/models.py:132 +#: inventory/models.py:148 msgid "Buses" msgstr "حافلات" -#: inventory/models.py:133 +#: inventory/models.py:149 msgid "Motorcycles" msgstr "دراجات نارية" -#: inventory/models.py:134 +#: inventory/models.py:150 msgid "Buggy" msgstr "باجي" -#: inventory/models.py:135 +#: inventory/models.py:151 msgid "Moto ATV" msgstr "موتو ATV" -#: inventory/models.py:136 +#: inventory/models.py:152 msgid "Scooters" msgstr "دراجات سكوتر" -#: inventory/models.py:137 +#: inventory/models.py:153 msgid "Karting" msgstr "كارتينج" -#: inventory/models.py:138 +#: inventory/models.py:154 msgid "ATV" msgstr "مركبات ATV" -#: inventory/models.py:139 +#: inventory/models.py:155 msgid "Snowmobiles" msgstr "دراجات الثلج" -#: inventory/models.py:146 +#: inventory/models.py:162 msgid "logo" msgstr "الشعار" -#: inventory/models.py:285 templates/ledger/bills/bill_detail.html:191 +#: inventory/models.py:301 templates/ledger/bills/bill_detail.html:191 #: templates/sales/estimates/estimate_detail.html:82 #: templates/sales/estimates/estimate_detail.html:168 #: templates/sales/estimates/estimate_list.html:29 @@ -365,7 +367,7 @@ msgstr "الشعار" msgid "Draft" msgstr "مسودة" -#: inventory/models.py:286 templates/ledger/bills/bill_detail.html:195 +#: inventory/models.py:302 templates/ledger/bills/bill_detail.html:195 #: templates/sales/estimates/estimate_detail.html:86 #: templates/sales/estimates/estimate_detail.html:172 #: templates/sales/estimates/estimate_list.html:33 @@ -380,30 +382,30 @@ msgstr "مسودة" msgid "Approved" msgstr "تمت الموافقة" -#: inventory/models.py:287 inventory/models.py:1041 +#: inventory/models.py:303 inventory/models.py:1064 #: templates/crm/leads/lead_detail.html:55 #: templates/crm/leads/lead_list.html:123 test.txt:46 msgid "Pending" msgstr "قيد الانتظار" -#: inventory/models.py:288 +#: inventory/models.py:304 msgid "Accepted" msgstr "تم القبول" -#: inventory/models.py:289 templates/administration/staff_index.html:83 +#: inventory/models.py:305 templates/administration/staff_index.html:83 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:329 msgid "Success" msgstr "ناجحة" -#: inventory/models.py:290 +#: inventory/models.py:306 msgid "Reject" msgstr "رفض" -#: inventory/models.py:291 +#: inventory/models.py:307 msgid "Cancelled" msgstr "ملغى" -#: inventory/models.py:295 templates/dashboards/manager.html:104 +#: inventory/models.py:311 templates/dashboards/manager.html:104 #: templates/dashboards/manager.html:236 templates/dashboards/sales.html:21 #: templates/dashboards/sales.html:333 #: templates/inventory/car_inventory.html:99 @@ -413,7 +415,7 @@ msgstr "ملغى" msgid "Available" msgstr "متاح" -#: inventory/models.py:296 templates/dashboards/manager.html:110 +#: inventory/models.py:312 templates/dashboards/manager.html:110 #: templates/dashboards/manager.html:237 templates/dashboards/sales.html:27 #: templates/dashboards/sales.html:334 #: templates/inventory/car_inventory.html:101 @@ -422,14 +424,14 @@ msgstr "متاح" msgid "Sold" msgstr "تم البيع" -#: inventory/models.py:297 templates/dashboards/manager.html:128 +#: inventory/models.py:313 templates/dashboards/manager.html:128 #: templates/dashboards/manager.html:240 templates/dashboards/sales.html:45 #: templates/dashboards/sales.html:337 #: templates/inventory/car_inventory.html:103 msgid "Hold" msgstr "في الانتظار" -#: inventory/models.py:298 templates/dashboards/manager.html:134 +#: inventory/models.py:314 templates/dashboards/manager.html:134 #: templates/dashboards/manager.html:241 templates/dashboards/sales.html:51 #: templates/dashboards/sales.html:338 #: templates/inventory/car_inventory.html:107 @@ -437,7 +439,7 @@ msgstr "في الانتظار" msgid "Damaged" msgstr "تالف" -#: inventory/models.py:299 templates/dashboards/manager.html:116 +#: inventory/models.py:315 templates/dashboards/manager.html:116 #: templates/dashboards/manager.html:238 templates/dashboards/sales.html:33 #: templates/dashboards/sales.html:335 #: templates/inventory/car_inventory.html:105 @@ -446,7 +448,7 @@ msgstr "تالف" msgid "Reserved" msgstr "محجوزة" -#: inventory/models.py:300 templates/dashboards/manager.html:122 +#: inventory/models.py:316 templates/dashboards/manager.html:122 #: templates/dashboards/manager.html:239 templates/dashboards/sales.html:39 #: templates/dashboards/sales.html:336 #: templates/inventory/car_list_view.html:89 @@ -455,18 +457,18 @@ msgstr "محجوزة" msgid "Transfer" msgstr "نقل" -#: inventory/models.py:303 inventory/models.py:1040 +#: inventory/models.py:319 inventory/models.py:1063 #: templates/crm/leads/lead_detail.html:53 #: templates/crm/leads/lead_list.html:121 #: templates/inventory/car_inventory.html:68 test.txt:33 msgid "New" msgstr "جديد" -#: inventory/models.py:304 templates/inventory/car_inventory.html:70 +#: inventory/models.py:320 templates/inventory/car_inventory.html:70 msgid "Used" msgstr "مستعمل" -#: inventory/models.py:310 inventory/models.py:732 +#: inventory/models.py:326 inventory/models.py:750 #: templates/administration/manage_day_off.html:63 #: templates/administration/manage_service.html:33 #: templates/administration/user_profile.html:93 @@ -494,7 +496,7 @@ msgstr "مستعمل" msgid "Description" msgstr "الوصف" -#: inventory/models.py:312 inventory/tables.py:19 +#: inventory/models.py:328 inventory/tables.py:58 #: templates/administration/manage_service.html:55 #: templates/administration/service_list.html:25 #: templates/administration/user_profile.html:229 @@ -505,19 +507,19 @@ msgstr "الوصف" msgid "Price" msgstr "السعر" -#: inventory/models.py:314 +#: inventory/models.py:330 msgid "taxable" msgstr "خاضع للضريبة" -#: inventory/models.py:318 +#: inventory/models.py:334 msgid "Unit of Measurement" msgstr "وحدة القياس" -#: inventory/models.py:321 inventory/models.py:355 inventory/models.py:913 +#: inventory/models.py:337 inventory/models.py:371 inventory/models.py:931 msgid "Dealer" msgstr "المعرض" -#: inventory/models.py:326 templates/inventory/transfer_preview.html:229 +#: inventory/models.py:342 templates/inventory/transfer_preview.html:229 #: templates/ledger/bills/bill_detail.html:213 #: templates/ledger/ledger/ledger_detail.html:81 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:94 @@ -536,18 +538,18 @@ msgstr "المعرض" msgid "Item" msgstr "العنصر" -#: inventory/models.py:345 inventory/models.py:346 +#: inventory/models.py:361 inventory/models.py:362 #: templates/sales/estimates/estimate_detail.html:226 #: templates/sales/estimates/sale_order_preview.html:266 #: templates/sales/invoices/invoice_detail.html:273 msgid "Additional Services" msgstr "الخدمات الإضافية" -#: inventory/models.py:364 inventory/models.py:1536 +#: inventory/models.py:378 inventory/models.py:1571 #: templates/inventory/car_detail.html:100 #: templates/inventory/car_form.html:134 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:166 -#: templates/ledger/bills/bill_list.html:46 +#: templates/ledger/bills/bill_list.html:51 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:364 #: 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 @@ -555,7 +557,7 @@ msgstr "الخدمات الإضافية" msgid "Vendor" msgstr "المورد" -#: inventory/models.py:372 inventory/models.py:1213 inventory/tables.py:13 +#: inventory/models.py:386 inventory/models.py:1236 inventory/tables.py:52 #: templates/inventory/car_list_view.html:64 #: templates/inventory/car_list_view.html:109 #: templates/inventory/cars_list_api.html:32 @@ -567,7 +569,7 @@ msgstr "المورد" msgid "Make" msgstr "الصانع" -#: inventory/models.py:380 inventory/models.py:1220 inventory/tables.py:14 +#: inventory/models.py:394 inventory/models.py:1243 inventory/tables.py:53 #: templates/inventory/car_list_view.html:73 #: templates/inventory/car_list_view.html:110 #: templates/inventory/cars_list_api.html:33 @@ -579,7 +581,7 @@ msgstr "الصانع" msgid "Model" msgstr "الموديل" -#: inventory/models.py:382 inventory/models.py:1223 inventory/tables.py:15 +#: inventory/models.py:396 inventory/models.py:1246 inventory/tables.py:54 #: templates/inventory/car_form.html:55 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:61 #: templates/inventory/car_inventory.html:54 @@ -593,22 +595,22 @@ msgstr "الموديل" msgid "Year" msgstr "السنة" -#: inventory/models.py:389 inventory/tables.py:16 +#: inventory/models.py:403 inventory/tables.py:55 #: templates/inventory/car_form.html:65 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:121 msgid "Series" msgstr "السلسلة" -#: inventory/models.py:397 inventory/tables.py:17 +#: inventory/models.py:411 inventory/tables.py:56 #: templates/inventory/car_list_view.html:112 #: templates/sales/sales_list.html:115 msgid "Trim" msgstr "الفئة" -#: inventory/models.py:403 inventory/models.py:1255 inventory/models.py:1408 -#: inventory/models.py:1459 inventory/tables.py:23 +#: inventory/models.py:417 inventory/models.py:1278 inventory/models.py:1443 +#: inventory/models.py:1494 inventory/tables.py:62 #: templates/crm/leads/lead_detail.html:51 -#: templates/crm/opportunities/opportunity_detail.html:91 +#: templates/crm/opportunities/opportunity_detail.html:88 #: templates/inventory/car_detail.html:83 #: templates/inventory/car_detail.html:368 #: templates/inventory/car_inventory.html:58 @@ -628,14 +630,14 @@ msgstr "الفئة" msgid "Status" msgstr "الحالة" -#: inventory/models.py:409 inventory/tables.py:11 +#: inventory/models.py:423 inventory/tables.py:50 #: templates/inventory/car_detail.html:87 templates/inventory/car_form.html:147 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:183 #: templates/inventory/car_list.html:177 msgid "Stock Type" msgstr "نوع المخزون" -#: inventory/models.py:411 inventory/models.py:518 +#: inventory/models.py:425 inventory/models.py:532 #: templates/inventory/car_detail.html:105 #: templates/inventory/car_form.html:185 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:232 @@ -643,41 +645,41 @@ msgstr "نوع المخزون" msgid "Remarks" msgstr "ملاحظات" -#: inventory/models.py:412 inventory/tables.py:18 +#: inventory/models.py:426 inventory/tables.py:57 #: templates/inventory/car_detail.html:91 templates/inventory/car_form.html:159 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:198 #: templates/inventory/car_list.html:191 templates/inventory/car_list.html:192 msgid "Mileage" msgstr "عدد الكيلومترات" -#: inventory/models.py:413 templates/inventory/car_detail.html:95 +#: inventory/models.py:427 templates/inventory/car_detail.html:95 #: templates/inventory/car_form.html:172 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:215 msgid "Receiving Date" msgstr "تاريخ الاستلام" -#: inventory/models.py:414 +#: inventory/models.py:428 msgid "Hash" msgstr "رمز" -#: inventory/models.py:423 templates/header.html:83 +#: inventory/models.py:437 templates/header.html:83 #: templates/sales/estimates/estimate_form.html:38 msgid "Cars" msgstr "السيارات" -#: inventory/models.py:506 +#: inventory/models.py:520 msgid "From Dealer" msgstr "من معرض" -#: inventory/models.py:512 +#: inventory/models.py:526 msgid "To Dealer" msgstr "الى معرض" -#: inventory/models.py:515 +#: inventory/models.py:529 msgid "Transfer Date" msgstr "تاريخ النقل" -#: inventory/models.py:517 templates/inventory/transfer_preview.html:230 +#: inventory/models.py:531 templates/inventory/transfer_preview.html:230 #: templates/ledger/bills/bill_detail.html:214 #: templates/ledger/ledger/ledger_detail.html:83 #: templates/sales/estimates/estimate_detail.html:194 @@ -695,161 +697,161 @@ msgstr "تاريخ النقل" msgid "Quantity" msgstr "الكمية" -#: inventory/models.py:526 inventory/models.py:735 inventory/models.py:1533 +#: inventory/models.py:540 inventory/models.py:753 inventory/models.py:1568 msgid "Created At" msgstr "تاريخ الإنشاء" -#: inventory/models.py:527 inventory/models.py:889 +#: inventory/models.py:541 inventory/models.py:907 msgid "Updated At" msgstr "تم التحديث" -#: inventory/models.py:533 +#: inventory/models.py:547 msgid "Car Transfer Log" msgstr "سجل نقل السيارة" -#: inventory/models.py:534 +#: inventory/models.py:548 msgid "Car Transfer Logs" msgstr "سجلات نقل السيارات" -#: inventory/models.py:551 templates/inventory/car_detail.html:311 +#: inventory/models.py:565 templates/inventory/car_detail.html:311 msgid "Reserved By" msgstr "محجوز بواسطة" -#: inventory/models.py:559 +#: inventory/models.py:573 msgid "Reserved At" msgstr "تاريخ الحجز" -#: inventory/models.py:560 +#: inventory/models.py:574 msgid "Reserved Until" msgstr "محجوز حتى" -#: inventory/models.py:570 templates/inventory/car_detail.html:451 +#: inventory/models.py:584 templates/inventory/car_detail.html:451 msgid "Car Reservation" msgstr "حجز السيارة" -#: inventory/models.py:571 +#: inventory/models.py:585 msgid "Car Reservations" msgstr "حجوزات السيارات" -#: inventory/models.py:581 templates/inventory/car_detail.html:201 +#: inventory/models.py:595 templates/inventory/car_detail.html:201 msgid "Cost Price" msgstr "سعر التكلفة" -#: inventory/models.py:584 templates/inventory/car_detail.html:206 +#: inventory/models.py:598 templates/inventory/car_detail.html:206 msgid "Selling Price" msgstr "سعر البيع" -#: inventory/models.py:589 templates/inventory/car_detail.html:210 +#: inventory/models.py:603 templates/inventory/car_detail.html:210 #: templates/sales/estimates/estimate_detail.html:220 #: templates/sales/invoices/invoice_detail.html:261 msgid "Discount Amount" msgstr "مبلغ الخصم" -#: inventory/models.py:645 inventory/models.py:646 +#: inventory/models.py:663 inventory/models.py:664 msgid "Car Financial Details" msgstr "تفاصيل المالية للسيارة" -#: inventory/models.py:652 inventory/models.py:665 +#: inventory/models.py:670 inventory/models.py:683 msgid "RGB" msgstr "آر جي بي" -#: inventory/models.py:655 inventory/models.py:656 +#: inventory/models.py:673 inventory/models.py:674 #: templates/inventory/add_colors.html:13 msgid "Exterior Colors" msgstr "الألوان الخارجية" -#: inventory/models.py:668 inventory/models.py:669 +#: inventory/models.py:686 inventory/models.py:687 #: templates/inventory/add_colors.html:32 msgid "Interior Colors" msgstr "الألوان الداخلية" -#: inventory/models.py:685 templates/inventory/car_list_view.html:113 +#: inventory/models.py:703 templates/inventory/car_list_view.html:113 msgid "Color" msgstr "اللون" -#: inventory/models.py:686 +#: inventory/models.py:704 msgid "Colors" msgstr "الألوان" -#: inventory/models.py:700 templates/inventory/car_detail.html:118 +#: inventory/models.py:718 templates/inventory/car_detail.html:118 msgid "Custom Number" msgstr "رقم البطاقة الجمركية" -#: inventory/models.py:704 templates/inventory/car_detail.html:127 +#: inventory/models.py:722 templates/inventory/car_detail.html:127 #: templates/inventory/car_detail.html:421 msgid "Custom Card" msgstr "البطاقة الجمركية" -#: inventory/models.py:705 +#: inventory/models.py:723 msgid "Custom Cards" msgstr "البطاقات الجمركية" -#: inventory/models.py:719 inventory/models.py:1416 +#: inventory/models.py:737 inventory/models.py:1451 msgid "Owner" msgstr "المالك" -#: inventory/models.py:720 +#: inventory/models.py:738 msgid "Dealer who owns the car." msgstr "التاجر الذي يمتلك السيارة." -#: inventory/models.py:726 inventory/models.py:1020 +#: inventory/models.py:744 inventory/models.py:1043 msgid "Showroom" msgstr "صالة العرض" -#: inventory/models.py:727 +#: inventory/models.py:745 msgid "Dealer where the car is displayed (can be the owner)." msgstr "التاجر الذي تُعرض السيارة في صالته (يمكن أن يكون المالك)." -#: inventory/models.py:733 +#: inventory/models.py:751 msgid "Optional description about the showroom placement." msgstr "وصف اختياري حول وضع السيارة في صالة العرض." -#: inventory/models.py:736 +#: inventory/models.py:754 msgid "Last Updated" msgstr "آخر تحديث" -#: inventory/models.py:739 +#: inventory/models.py:757 msgid "Car Location" msgstr "موقع السيارة" -#: inventory/models.py:740 +#: inventory/models.py:758 msgid "Car Locations" msgstr "مواقف السيارات" -#: inventory/models.py:759 +#: inventory/models.py:777 msgid "Plate Number" msgstr "رقم اللوحة" -#: inventory/models.py:760 +#: inventory/models.py:778 msgid "Text 1" msgstr "النص 1" -#: inventory/models.py:761 +#: inventory/models.py:779 msgid "Text 2" msgstr "النص 2" -#: inventory/models.py:762 +#: inventory/models.py:780 msgid "Text 3" msgstr "النص 3" -#: inventory/models.py:763 templates/inventory/car_detail.html:143 +#: inventory/models.py:781 templates/inventory/car_detail.html:143 msgid "Registration Date" msgstr "تاريخ التسجيل" -#: inventory/models.py:766 templates/inventory/car_detail.html:137 +#: inventory/models.py:784 templates/inventory/car_detail.html:137 #: templates/inventory/car_detail.html:149 #: templates/inventory/car_detail.html:436 msgid "Registration" msgstr "التسجيل" -#: inventory/models.py:767 +#: inventory/models.py:785 msgid "Registrations" msgstr "تسجيل السيارات" -#: inventory/models.py:775 inventory/models.py:976 inventory/models.py:1124 -#: inventory/models.py:1157 inventory/models.py:1260 inventory/models.py:1421 -#: inventory/models.py:1441 inventory/models.py:1463 inventory/models.py:1486 -#: inventory/models.py:1503 templates/crm/leads/lead_detail.html:100 +#: inventory/models.py:793 inventory/models.py:994 inventory/models.py:1147 +#: inventory/models.py:1180 inventory/models.py:1283 inventory/models.py:1456 +#: inventory/models.py:1476 inventory/models.py:1498 inventory/models.py:1521 +#: inventory/models.py:1538 templates/crm/leads/lead_detail.html:100 #: templates/sales/estimates/estimate_list.html:18 #: templates/sales/invoices/invoice_list.html:19 #: templates/sales/journals/journal_list.html:19 @@ -859,26 +861,26 @@ msgstr "تسجيل السيارات" msgid "Created" msgstr "تاريخ الإنشاء" -#: inventory/models.py:776 inventory/models.py:977 inventory/models.py:1125 -#: inventory/models.py:1158 inventory/models.py:1262 inventory/models.py:1422 -#: inventory/models.py:1442 inventory/models.py:1464 inventory/models.py:1487 +#: inventory/models.py:794 inventory/models.py:995 inventory/models.py:1148 +#: inventory/models.py:1181 inventory/models.py:1285 inventory/models.py:1457 +#: inventory/models.py:1477 inventory/models.py:1499 inventory/models.py:1522 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html:41 msgid "Updated" msgstr "تم التحديث" -#: inventory/models.py:883 inventory/models.py:1155 inventory/models.py:1531 +#: inventory/models.py:901 inventory/models.py:1178 inventory/models.py:1566 msgid "Logo" msgstr "الشعار" -#: inventory/models.py:888 +#: inventory/models.py:906 msgid "Joined At" msgstr "انضم في" -#: inventory/models.py:914 +#: inventory/models.py:932 msgid "Dealers" msgstr "المعارض" -#: inventory/models.py:961 inventory/signals.py:142 templates/header.html:29 +#: inventory/models.py:979 inventory/signals.py:174 templates/header.html:29 #: templates/header.html:64 templates/header.html:69 templates/welcome.html:19 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:440 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:526 @@ -887,81 +889,81 @@ msgstr "المعارض" msgid "Inventory" msgstr "المخزن" -#: inventory/models.py:962 +#: inventory/models.py:980 msgid "Accountant" msgstr "محاسب" -#: inventory/models.py:963 templates/header.html:34 templates/header.html:157 +#: inventory/models.py:981 templates/header.html:34 templates/header.html:157 msgid "Sales" msgstr "المبيعات" -#: inventory/models.py:975 +#: inventory/models.py:993 msgid "Staff Type" msgstr "نوع الموظف" -#: inventory/models.py:1009 inventory/models.py:1010 -#: templates/crm/opportunities/opportunity_detail.html:234 +#: inventory/models.py:1032 inventory/models.py:1033 +#: templates/crm/opportunities/opportunity_detail.html:231 #: templates/crm/opportunities/opportunity_form.html:70 #: templates/dashboards/manager.html:17 templates/users/user_form.html:4 #: templates/users/user_list.html:5 msgid "Staff" msgstr "الموظفون" -#: inventory/models.py:1018 +#: inventory/models.py:1041 msgid "Referrals" msgstr "إحالات" -#: inventory/models.py:1019 inventory/models.py:1066 +#: inventory/models.py:1042 inventory/models.py:1089 msgid "WhatsApp" msgstr "واتساب" -#: inventory/models.py:1021 +#: inventory/models.py:1044 msgid "TikTok" msgstr "تيك توك" -#: inventory/models.py:1022 +#: inventory/models.py:1045 msgid "Instagram" msgstr "إنستغرام" -#: inventory/models.py:1023 +#: inventory/models.py:1046 msgid "X" msgstr "إكس" -#: inventory/models.py:1024 +#: inventory/models.py:1047 msgid "Facebook" msgstr "فيسبوك" -#: inventory/models.py:1025 +#: inventory/models.py:1048 msgid "Motory" msgstr "موتري" -#: inventory/models.py:1026 +#: inventory/models.py:1049 msgid "Influencers" msgstr "المؤثرون" -#: inventory/models.py:1027 +#: inventory/models.py:1050 msgid "Youtube" msgstr "يوتيوب" -#: inventory/models.py:1028 +#: inventory/models.py:1051 msgid "Campaign" msgstr "حملة" -#: inventory/models.py:1032 +#: inventory/models.py:1055 msgid "Walk In" msgstr "زيارة مباشرة" -#: inventory/models.py:1033 +#: inventory/models.py:1056 msgid "Toll Free" msgstr "رقم مجاني" -#: inventory/models.py:1034 +#: inventory/models.py:1057 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:113 msgid "Website" msgstr "الموقع الإلكتروني" -#: inventory/models.py:1035 inventory/models.py:1065 inventory/models.py:1114 -#: inventory/models.py:1196 inventory/models.py:1467 +#: inventory/models.py:1058 inventory/models.py:1088 inventory/models.py:1137 +#: inventory/models.py:1219 inventory/models.py:1502 #: templates/account/login.html:29 templates/account/login.html:31 #: templates/administration/display_appointment.html:49 #: templates/administration/manage_staff_personal_info.html:29 @@ -969,7 +971,7 @@ msgstr "الموقع الإلكتروني" #: templates/administration/user_profile.html:25 #: templates/appointment/appointment_client_information.html:45 #: templates/crm/leads/lead_detail.html:82 -#: templates/crm/opportunities/opportunity_detail.html:203 +#: templates/crm/opportunities/opportunity_detail.html:200 #: templates/customers/view_customer.html:74 #: templates/dealers/dealer_detail.html:78 #: templates/groups/group_detail.html:61 @@ -985,29 +987,29 @@ msgstr "الموقع الإلكتروني" msgid "Email" msgstr "البريد الإلكتروني" -#: inventory/models.py:1036 +#: inventory/models.py:1059 msgid "Form" msgstr "نموذج" -#: inventory/models.py:1042 templates/crm/leads/lead_detail.html:57 +#: inventory/models.py:1065 templates/crm/leads/lead_detail.html:57 #: templates/crm/leads/lead_list.html:125 msgid "In Progress" msgstr "قيد التنفيذ" -#: inventory/models.py:1043 templates/crm/leads/lead_detail.html:59 +#: inventory/models.py:1066 templates/crm/leads/lead_detail.html:59 #: templates/crm/leads/lead_list.html:127 msgid "Qualified" msgstr "مؤهل" -#: inventory/models.py:1044 templates/crm/leads/lead_list.html:129 +#: inventory/models.py:1067 templates/crm/leads/lead_list.html:129 msgid "Contacted" msgstr "تم الاتصال" -#: inventory/models.py:1045 +#: inventory/models.py:1068 msgid "Converted" msgstr "تم التحويل" -#: inventory/models.py:1046 templates/crm/leads/lead_detail.html:61 +#: inventory/models.py:1069 templates/crm/leads/lead_detail.html:61 #: templates/crm/leads/lead_list.html:131 #: templates/sales/estimates/estimate_detail.html:90 #: templates/sales/estimates/estimate_detail.html:176 @@ -1021,175 +1023,175 @@ msgstr "تم التحويل" msgid "Canceled" msgstr "ملغى" -#: inventory/models.py:1050 +#: inventory/models.py:1073 msgid "Mr" msgstr "السيد" -#: inventory/models.py:1051 +#: inventory/models.py:1074 msgid "Mrs" msgstr "السيدة" -#: inventory/models.py:1052 +#: inventory/models.py:1075 msgid "Ms" msgstr "الآنسة" -#: inventory/models.py:1053 +#: inventory/models.py:1076 msgid "Miss" msgstr "الآنسة" -#: inventory/models.py:1054 +#: inventory/models.py:1077 msgid "Dr" msgstr "الدكتور" -#: inventory/models.py:1055 +#: inventory/models.py:1078 msgid "Prof" msgstr "الأستاذ" -#: inventory/models.py:1056 +#: inventory/models.py:1079 msgid "Prince" msgstr "الأمير" -#: inventory/models.py:1057 +#: inventory/models.py:1080 msgid "Princess" msgstr "الأميرة" -#: inventory/models.py:1058 +#: inventory/models.py:1081 msgid "Company" msgstr "الشركة" -#: inventory/models.py:1059 +#: inventory/models.py:1082 msgid "N/A" msgstr "غير متوفر" -#: inventory/models.py:1063 +#: inventory/models.py:1086 msgid "Call" msgstr "مكالمة" -#: inventory/models.py:1064 +#: inventory/models.py:1087 msgid "SMS" msgstr "رسالة نصية" -#: inventory/models.py:1067 +#: inventory/models.py:1090 msgid "Visit" msgstr "زيارة" -#: inventory/models.py:1068 templates/inventory/car_form.html:23 +#: inventory/models.py:1091 templates/inventory/car_form.html:23 msgid "Add Car" msgstr "إضافة سيارة" -#: inventory/models.py:1069 +#: inventory/models.py:1092 msgid "Sale Car" msgstr "بيع سيارة" -#: inventory/models.py:1070 templates/inventory/reserve_car.html:6 +#: inventory/models.py:1093 templates/inventory/reserve_car.html:6 #: templates/inventory/reserve_car.html:9 msgid "Reserve Car" msgstr "حجز السيارة" -#: inventory/models.py:1071 templates/inventory/transfer_car.html:4 +#: inventory/models.py:1094 templates/inventory/transfer_car.html:4 msgid "Transfer Car" msgstr "نقل السيارة" -#: inventory/models.py:1072 +#: inventory/models.py:1095 msgid "Remove Car" msgstr "إزالة السيارة" -#: inventory/models.py:1073 -#: templates/crm/opportunities/opportunity_detail.html:19 +#: inventory/models.py:1096 +#: templates/crm/opportunities/opportunity_detail.html:18 #: templates/sales/estimates/estimate_form.html:5 #: templates/sales/estimates/estimate_form.html:32 msgid "Create Quotation" msgstr "إنشاء عرض" -#: inventory/models.py:1074 +#: inventory/models.py:1097 msgid "Cancel Quotation" msgstr "إلغاء العرض" -#: inventory/models.py:1075 +#: inventory/models.py:1098 msgid "Create Order" msgstr "إنشاء طلب" -#: inventory/models.py:1076 +#: inventory/models.py:1099 msgid "Cancel Order" msgstr "إلغاء الطلب" -#: inventory/models.py:1077 templates/sales/estimates/estimate_detail.html:108 +#: inventory/models.py:1100 templates/sales/estimates/estimate_detail.html:108 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:24 #: venv/lib/python3.11/site-packages/django_ledger/views/invoice.py:68 msgid "Create Invoice" msgstr "إنشاء فاتورة" -#: inventory/models.py:1078 +#: inventory/models.py:1101 msgid "Cancel Invoice" msgstr "إلغاء الفاتورة" -#: inventory/models.py:1082 +#: inventory/models.py:1105 msgid "Prospect" msgstr "العميل المحتمل" -#: inventory/models.py:1083 +#: inventory/models.py:1106 msgid "Proposal" msgstr "عرض" -#: inventory/models.py:1084 +#: inventory/models.py:1107 msgid "Negotiation" msgstr "مفاوضات" -#: inventory/models.py:1085 +#: inventory/models.py:1108 msgid "Closed Won" msgstr "مغلقة - ناجحة" -#: inventory/models.py:1086 +#: inventory/models.py:1109 msgid "Closed Lost" msgstr "مغلقة - خسارة" -#: inventory/models.py:1090 +#: inventory/models.py:1113 msgid "Low" msgstr "منخفض" -#: inventory/models.py:1091 +#: inventory/models.py:1114 msgid "Medium" msgstr "متوسط" -#: inventory/models.py:1092 +#: inventory/models.py:1115 msgid "High" msgstr "مرتفع" -#: inventory/models.py:1103 inventory/models.py:1194 +#: inventory/models.py:1126 inventory/models.py:1217 #: templates/administration/manage_staff_personal_info.html:18 msgid "First Name" msgstr "الاسم الأول" -#: inventory/models.py:1105 +#: inventory/models.py:1128 msgid "Middle Name" msgstr "اسم الأب" -#: inventory/models.py:1107 inventory/models.py:1195 +#: inventory/models.py:1130 inventory/models.py:1218 #: templates/administration/manage_staff_personal_info.html:24 msgid "Last Name" msgstr "اسم العائلة" -#: inventory/models.py:1109 +#: inventory/models.py:1132 msgid "Male" msgstr "ذكر" -#: inventory/models.py:1109 +#: inventory/models.py:1132 msgid "Female" msgstr "أنثى" -#: inventory/models.py:1111 +#: inventory/models.py:1134 msgid "Gender" msgstr "الجنس" -#: inventory/models.py:1113 +#: inventory/models.py:1136 msgid "Date of Birth" msgstr "تاريخ الميلاد" -#: inventory/models.py:1116 templates/customers/customer_list.html:46 +#: inventory/models.py:1139 templates/customers/customer_list.html:46 msgid "National ID" msgstr "رقم الهوية الوطنية" -#: inventory/models.py:1129 templates/customers/customer_form.html:4 +#: inventory/models.py:1152 templates/customers/customer_form.html:4 #: templates/customers/customer_list.html:4 #: templates/customers/customer_list.html:5 #: templates/customers/customer_list.html:9 @@ -1197,99 +1199,99 @@ msgstr "رقم الهوية الوطنية" msgid "Customers" msgstr "العملاء" -#: inventory/models.py:1161 inventory/models.py:1199 +#: inventory/models.py:1184 inventory/models.py:1222 msgid "Organization" msgstr "شركة" -#: inventory/models.py:1162 templates/header.html:198 +#: inventory/models.py:1185 templates/header.html:198 #: templates/organizations/organization_list.html:5 #: templates/organizations/organization_list.html:8 #: templates/organizations/organization_list.html:14 msgid "Organizations" msgstr "الشركات" -#: inventory/models.py:1175 +#: inventory/models.py:1198 #: templates/representatives/representative_detail.html:8 #: templates/representatives/representative_list.html:18 msgid "ID Number" msgstr "رقم الهوية" -#: inventory/models.py:1185 +#: inventory/models.py:1208 msgid "Representative" msgstr "ممثل شركة" -#: inventory/models.py:1186 +#: inventory/models.py:1209 #: templates/representatives/representative_list.html:3 #: templates/representatives/representative_list.html:6 msgid "Representatives" msgstr "ممثلي الشركات" -#: inventory/models.py:1199 +#: inventory/models.py:1222 msgid "Lead Type" msgstr "نوع العميل المتوقع" -#: inventory/models.py:1226 templates/crm/leads/lead_list.html:65 +#: inventory/models.py:1249 templates/crm/leads/lead_list.html:65 msgid "Source" msgstr "المصدر" -#: inventory/models.py:1229 templates/crm/leads/lead_list.html:71 +#: inventory/models.py:1252 templates/crm/leads/lead_list.html:71 msgid "Channel" msgstr "القناة" -#: inventory/models.py:1237 +#: inventory/models.py:1260 msgid "address" msgstr "العنوان" -#: inventory/models.py:1244 +#: inventory/models.py:1267 msgid "Assigned" msgstr "مُعين" -#: inventory/models.py:1250 +#: inventory/models.py:1273 msgid "Priority" msgstr "الأولوية" -#: inventory/models.py:1265 +#: inventory/models.py:1288 msgid "Lead" msgstr "فرصة" -#: inventory/models.py:1266 templates/crm/leads/lead_list.html:3 +#: inventory/models.py:1289 templates/crm/leads/lead_list.html:3 #: templates/crm/leads/lead_list.html:7 templates/crm/leads/lead_send.html:5 #: templates/dashboards/manager.html:22 test.txt:21 msgid "Leads" msgstr "الفرص" -#: inventory/models.py:1369 +#: inventory/models.py:1404 msgid "Old Status" msgstr "الحالة القديمة" -#: inventory/models.py:1372 +#: inventory/models.py:1407 msgid "New Status" msgstr "الحالة الجديدة" -#: inventory/models.py:1377 +#: inventory/models.py:1412 msgid "Changed At" msgstr "تم التغيير في" -#: inventory/models.py:1380 +#: inventory/models.py:1415 msgid "Lead Status History" msgstr "تاريخ حالة العميل المحتمل" -#: inventory/models.py:1381 +#: inventory/models.py:1416 msgid "Lead Status Histories" msgstr "تواريخ حالات العملاء المحتملين" -#: inventory/models.py:1389 +#: inventory/models.py:1424 msgid "Probability must be between 0 and 100." msgstr "يجب أن تكون الاحتمالية بين 0 و 100." -#: inventory/models.py:1403 templates/crm/leads/lead_list.html:77 -#: templates/crm/opportunities/opportunity_detail.html:98 +#: inventory/models.py:1438 templates/crm/leads/lead_list.html:77 +#: templates/crm/opportunities/opportunity_detail.html:95 #: templates/crm/opportunities/opportunity_form.html:48 msgid "Stage" msgstr "المرحلة" -#: inventory/models.py:1420 -#: templates/crm/opportunities/opportunity_detail.html:267 +#: inventory/models.py:1455 +#: templates/crm/opportunities/opportunity_detail.html:264 #: templates/crm/opportunities/opportunity_form.html:79 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:100 #: templates/crm/opportunities/opportunity_list.html:94 @@ -1297,27 +1299,27 @@ msgstr "المرحلة" msgid "Closing Date" msgstr "تاريخ الإغلاق" -#: inventory/models.py:1423 +#: inventory/models.py:1458 msgid "Closed" msgstr "مغلقة" -#: inventory/models.py:1426 +#: inventory/models.py:1461 msgid "Opportunity" msgstr "فرصة" -#: inventory/models.py:1427 +#: inventory/models.py:1462 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:8 #: templates/crm/opportunities/opportunity_list.html:8 msgid "Opportunities" msgstr "الفرص" -#: inventory/models.py:1437 inventory/models.py:1445 +#: inventory/models.py:1472 inventory/models.py:1480 #: templates/account/snippets/already_logged_in.html:8 #: templates/crm/leads/lead_detail.html:226 msgid "Note" msgstr "ملاحظة" -#: inventory/models.py:1446 inventory/models.py:1482 +#: inventory/models.py:1481 inventory/models.py:1517 #: templates/crm/leads/lead_detail.html:137 #: templates/crm/leads/lead_detail.html:213 #: templates/crm/leads/lead_detail.html:387 @@ -1328,32 +1330,32 @@ msgstr "ملاحظة" msgid "Notes" msgstr "ملاحظات" -#: inventory/models.py:1455 +#: inventory/models.py:1490 msgid "From Email" msgstr "من البريد الإلكتروني" -#: inventory/models.py:1456 +#: inventory/models.py:1491 msgid "To Email" msgstr "إلى البريد الإلكتروني" -#: inventory/models.py:1457 +#: inventory/models.py:1492 msgid "Subject" msgstr "الموضوع" -#: inventory/models.py:1458 inventory/models.py:1501 +#: inventory/models.py:1493 inventory/models.py:1536 msgid "Message" msgstr "رسالة" -#: inventory/models.py:1468 templates/crm/leads/lead_detail.html:138 +#: inventory/models.py:1503 templates/crm/leads/lead_detail.html:138 #: templates/crm/leads/lead_detail.html:265 msgid "Emails" msgstr "رسائل البريد الإلكتروني" -#: inventory/models.py:1480 +#: inventory/models.py:1515 msgid "Activity Type" msgstr "نوع النشاط" -#: inventory/models.py:1490 templates/crm/leads/lead_detail.html:136 +#: inventory/models.py:1525 templates/crm/leads/lead_detail.html:136 #: templates/dealers/activity_log.html:11 #: templates/ledger/journal_entry/includes/card_journal_entry.html:32 #: templates/ledger/journal_entry/journal_entry_list.html:64 @@ -1365,82 +1367,82 @@ msgstr "نوع النشاط" msgid "Activity" msgstr "النشاط" -#: inventory/models.py:1491 templates/crm/leads/lead_detail.html:166 +#: inventory/models.py:1526 templates/crm/leads/lead_detail.html:166 #: templates/header.html:465 msgid "Activities" msgstr "الأنشطة" -#: inventory/models.py:1502 +#: inventory/models.py:1537 msgid "Is Read" msgstr "تمت قراءته" -#: inventory/models.py:1506 +#: inventory/models.py:1541 msgid "Notification" msgstr "إشعار" -#: inventory/models.py:1507 templates/crm/notifications_history.html:6 +#: inventory/models.py:1542 templates/crm/notifications_history.html:6 #: templates/notifications.html:13 msgid "Notifications" msgstr "الإشعارات" -#: inventory/models.py:1524 templates/vendors/view_vendor.html:49 +#: inventory/models.py:1559 templates/vendors/view_vendor.html:49 msgid "Contact Person" msgstr "الشخص المسؤول" -#: inventory/models.py:1537 templates/vendors/vendor_form.html:4 +#: inventory/models.py:1572 templates/vendors/vendor_form.html:4 #: templates/vendors/vendors_list.html:4 templates/vendors/vendors_list.html:5 #: templates/vendors/vendors_list.html:12 msgid "Vendors" msgstr "الموردين" -#: inventory/models.py:1736 inventory/models.py:1766 +#: inventory/models.py:1771 inventory/models.py:1801 msgid "amount" msgstr "المبلغ" -#: inventory/models.py:1739 +#: inventory/models.py:1774 msgid "method" msgstr "طريقة" -#: inventory/models.py:1742 +#: inventory/models.py:1777 msgid "reference number" msgstr "رقم المرجع" -#: inventory/models.py:1744 +#: inventory/models.py:1779 msgid "date" msgstr "التاريخ" -#: inventory/models.py:1754 +#: inventory/models.py:1789 msgid "payment" msgstr "الدفعة" -#: inventory/models.py:1755 templates/header.html:149 +#: inventory/models.py:1790 templates/header.html:149 msgid "payments" msgstr "المدفوعات" -#: inventory/models.py:1768 +#: inventory/models.py:1803 msgid "reason" msgstr "السبب" -#: inventory/models.py:1769 +#: inventory/models.py:1804 msgid "refund date" msgstr "تاريخ الاسترداد" -#: inventory/models.py:1772 +#: inventory/models.py:1807 msgid "refund" msgstr "استرداد" -#: inventory/models.py:1773 +#: inventory/models.py:1808 msgid "refunds" msgstr "استردادات" -#: inventory/models.py:1797 +#: inventory/models.py:1832 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3160 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:9 msgid "Estimate" msgstr "تقدير" -#: inventory/models.py:1803 templates/customers/view_customer.html:151 +#: inventory/models.py:1838 templates/customers/view_customer.html:151 #: templates/ledger/journal_entry/includes/card_invoice.html:10 #: templates/plans/create_order.html:29 #: templates/sales/invoices/invoice_create.html:5 @@ -1453,870 +1455,665 @@ msgstr "تقدير" msgid "Invoice" msgstr "فاتورة" -#: inventory/models.py:1808 inventory/signals.py:118 +#: inventory/models.py:1843 inventory/signals.py:150 #: templates/ledger/reports/dashboard.html:32 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_bs.html:14 msgid "Cash" msgstr "نقداً" -#: inventory/models.py:1809 +#: inventory/models.py:1844 msgid "Finance" msgstr "تمويل" -#: inventory/models.py:1810 +#: inventory/models.py:1845 msgid "Lease" msgstr "تأجير" -#: inventory/models.py:1811 +#: inventory/models.py:1846 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:1139 msgid "Credit Card" msgstr "بطاقة ائتمان" -#: inventory/models.py:1812 +#: inventory/models.py:1847 msgid "Bank Transfer" msgstr "تحويل بنكي" -#: inventory/signals.py:130 templates/ledger/ledger/ledger_detail.html:38 +#: inventory/signals.py:162 templates/ledger/ledger/ledger_detail.html:38 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:41 msgid "Accounts Receivable" msgstr "الحسابات المدينة" -#: inventory/signals.py:155 +#: inventory/signals.py:187 msgid "Prepaid Expenses" msgstr "المصروفات المدفوعة مقدمًا" -#: inventory/signals.py:167 +#: inventory/signals.py:199 msgid "Employee Advance" msgstr "سلفة الموظف" -#: inventory/signals.py:178 +#: inventory/signals.py:210 msgid "VAT Receivable" msgstr "ضريبة القيمة المضافة المستحقة" -#: inventory/signals.py:188 +#: inventory/signals.py:220 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:452 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:538 msgid "Buildings - Accum. Depreciation" msgstr "المباني - الإهلاك المتراكم" -#: inventory/signals.py:200 +#: inventory/signals.py:232 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:459 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:545 msgid "Intangible Assets" msgstr "الأصول غير الملموسة" -#: inventory/signals.py:212 +#: inventory/signals.py:244 msgid "Investments" msgstr "الاستثمارات" -#: inventory/signals.py:249 +#: inventory/signals.py:281 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:451 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:537 msgid "Buildings" msgstr "المباني" -#: inventory/signals.py:263 +#: inventory/signals.py:295 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:466 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:552 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:52 msgid "Accounts Payable" msgstr "الحسابات الدائنة" -#: inventory/signals.py:275 templates/ledger/ledger/ledger_detail.html:46 +#: inventory/signals.py:307 templates/ledger/ledger/ledger_detail.html:46 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:472 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:558 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:51 msgid "Deferred Revenue" msgstr "الإيرادات المؤجلة" -#: inventory/signals.py:287 +#: inventory/signals.py:319 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:467 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:553 msgid "Wages Payable" msgstr "الأجور المستحقة الدفع" -#: inventory/signals.py:299 +#: inventory/signals.py:331 msgid "Long-Term Notes Payable" msgstr "أوراق الدفع طويلة الأجل" -#: inventory/signals.py:311 +#: inventory/signals.py:343 msgid "VAT Payable" msgstr "ضريبة القيمة المضافة المستحقة الدفع" -#: inventory/signals.py:321 +#: inventory/signals.py:353 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:469 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:555 msgid "Taxes Payable" msgstr "الضرائب المستحقة الدفع" -#: inventory/signals.py:331 +#: inventory/signals.py:363 msgid "Social Insurance Payable" msgstr "التأمينات الاجتماعية المستحقة الدفع" -#: inventory/signals.py:337 +#: inventory/signals.py:369 msgid "End of Service Benefits" msgstr "مكافأة نهاية الخدمة" -#: inventory/signals.py:344 +#: inventory/signals.py:376 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:478 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:564 msgid "Mortgage Payable" msgstr "الرهن المستحق الدفع" -#: inventory/signals.py:352 +#: inventory/signals.py:384 msgid "Registered Capital" msgstr "رأس المال المسجل" -#: inventory/signals.py:355 +#: inventory/signals.py:387 msgid "Additional Paid-In Capital" msgstr "رأس المال المدفوع الإضافي" -#: inventory/signals.py:358 +#: inventory/signals.py:390 msgid "Opening Balances" msgstr "الأرصدة الافتتاحية" -#: inventory/signals.py:363 +#: inventory/signals.py:395 msgid "Statutory Reserve" msgstr "الاحتياطي النظامي" -#: inventory/signals.py:366 +#: inventory/signals.py:398 msgid "Foreign Currency Translation Reserve" msgstr "احتياطي تحويل العملات الأجنبية" -#: inventory/signals.py:373 +#: inventory/signals.py:405 msgid "Operating Profits and Losses" msgstr "الأرباح والخسائر التشغيلية" -#: inventory/signals.py:384 +#: inventory/signals.py:416 msgid "Retained Earnings (or Losses)" msgstr "الأرباح المحتجزة (أو الخسائر)" -#: inventory/signals.py:394 +#: inventory/signals.py:426 msgid "Sales Revenue" msgstr "إيرادات المبيعات" -#: inventory/signals.py:406 +#: inventory/signals.py:438 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:492 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:580 msgid "Interest Income" msgstr "دخل الفائدة" -#: inventory/signals.py:418 +#: inventory/signals.py:450 msgid "Unearned Income" msgstr "الدخل غير المكتسب" -#: inventory/signals.py:424 +#: inventory/signals.py:456 msgid "Sales/Service Revenue" msgstr "إيرادات المبيعات/الخدمات" -#: inventory/signals.py:427 +#: inventory/signals.py:459 msgid "Non-Operating Revenues" msgstr "الإيرادات غير التشغيلية" -#: inventory/signals.py:435 inventory/signals.py:616 +#: inventory/signals.py:467 inventory/signals.py:648 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:497 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:587 msgid "Cost of Goods Sold" msgstr "تكلفة البضائع المباعة" -#: inventory/signals.py:448 +#: inventory/signals.py:480 msgid "Accrued Expenses" msgstr "المصروفات المستحقة" -#: inventory/signals.py:458 +#: inventory/signals.py:490 msgid "Accrued Salaries" msgstr "الرواتب المستحقة" -#: inventory/signals.py:468 +#: inventory/signals.py:500 msgid "Rent Expense" msgstr "مصروف الإيجار" -#: inventory/signals.py:480 +#: inventory/signals.py:512 msgid "Salaries and Administrative Fees" msgstr "الرواتب والرسوم الإدارية" -#: inventory/signals.py:490 +#: inventory/signals.py:522 msgid "Medical Insurance" msgstr "التأمين الطبي" -#: inventory/signals.py:500 +#: inventory/signals.py:532 msgid "Marketing and Advertising Expenses" msgstr "مصروفات التسويق والإعلان" -#: inventory/signals.py:510 +#: inventory/signals.py:542 msgid "Commissions and Incentives" msgstr "العمولات والحوافز" -#: inventory/signals.py:520 +#: inventory/signals.py:552 msgid "Travel Tickets" msgstr "تذاكر السفر" -#: inventory/signals.py:530 +#: inventory/signals.py:562 msgid "Social Insurance" msgstr "التأمينات الاجتماعية" -#: inventory/signals.py:540 +#: inventory/signals.py:572 msgid "Government Fees" msgstr "الرسوم الحكومية" -#: inventory/signals.py:550 +#: inventory/signals.py:582 msgid "Fees and Subscriptions" msgstr "الرسوم والاشتراكات" -#: inventory/signals.py:560 +#: inventory/signals.py:592 msgid "Office Services Expenses" msgstr "مصروفات خدمات المكتب" -#: inventory/signals.py:570 +#: inventory/signals.py:602 msgid "Office Supplies and Printing" msgstr "اللوازم المكتبية والطباعة" -#: inventory/signals.py:580 +#: inventory/signals.py:612 msgid "Hospitality Expenses" msgstr "مصروفات الضيافة" -#: inventory/signals.py:590 +#: inventory/signals.py:622 msgid "Bank Commissions" msgstr "عمولات البنوك" -#: inventory/signals.py:600 +#: inventory/signals.py:632 #: templates/ledger/reports/tags/income_statement.html:223 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:291 msgid "Other Expenses" msgstr "مصروفات أخرى" -#: inventory/signals.py:610 +#: inventory/signals.py:642 msgid "Transportation Expenses" msgstr "مصروفات النقل" -#: inventory/signals.py:617 +#: inventory/signals.py:649 msgid "Salaries and Wages" msgstr "الرواتب والأجور" -#: inventory/signals.py:618 +#: inventory/signals.py:650 msgid "Sales Commissions" msgstr "عمولات المبيعات" -#: inventory/signals.py:619 +#: inventory/signals.py:651 msgid "Shipping and Customs Clearance" msgstr "الشحن والتخليص الجمركي" -#: inventory/signals.py:622 +#: inventory/signals.py:654 msgid "Zakat" msgstr "الزكاة" -#: inventory/signals.py:623 +#: inventory/signals.py:655 msgid "Taxes" msgstr "الضرائب" -#: inventory/signals.py:624 +#: inventory/signals.py:656 msgid "Foreign Currency Translation" msgstr "تحويل العملات الأجنبية" -#: inventory/signals.py:625 +#: inventory/signals.py:657 msgid "Interest Expenses" msgstr "مصروفات الفائدة" -#: inventory/tables.py:20 templates/inventory/car_inventory.html:55 +#: inventory/tables.py:59 templates/inventory/car_inventory.html:55 msgid "Exterior Color" msgstr "اللون الخارجي" -#: inventory/tables.py:21 templates/inventory/car_inventory.html:56 +#: inventory/tables.py:60 templates/inventory/car_inventory.html:56 msgid "Interior Color" msgstr "اللون الداخلي" -#: inventory/tables.py:22 templates/inventory/car_inventory.html:59 +#: inventory/tables.py:61 templates/inventory/car_inventory.html:59 #: templates/inventory/car_list_view.html:114 msgid "Age" msgstr "العمر" -#: inventory/utils.py:54 +#: inventory/utils.py:78 msgid "success" msgstr "ناجحة" -#: inventory/utils.py:55 templates/inventory/car_form.html:373 +#: inventory/utils.py:79 templates/inventory/car_form.html:373 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:427 msgid "error" msgstr "خطأ" -#: inventory/utils.py:56 templates/account/login.html:48 +#: inventory/utils.py:80 templates/account/login.html:48 #: templates/account/password_change.html:28 msgid "Forgot Password?" msgstr "نسيت كلمة المرور؟" -#: inventory/utils.py:123 +#: inventory/utils.py:216 msgid "Car reserved successfully." msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:210 -#, fuzzy -#| msgid "Passwords do not match." -msgid "Passwords do not match" -msgstr "كلمات المرور غير متطابقة." - -#: inventory/views.py:233 inventory/views.py:1648 -#, fuzzy -#| msgid "User created successfully." +#: inventory/views.py:293 inventory/views.py:2642 msgid "User created successfully" msgstr "تم إنشاء المستخدم بنجاح." -#: inventory/views.py:495 -#, fuzzy -#| msgid "Car reserved successfully." +#: inventory/views.py:590 msgid "Car saved successfully" msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:526 +#: inventory/views.py:654 msgid "VIN number exists" msgstr "رقم الهيكل موجود مسبقاً" -#: inventory/views.py:719 templates/dashboards/manager.html:49 +#: inventory/views.py:885 templates/dashboards/manager.html:49 #: templates/dashboards/sales.html:113 templates/inventory/car_inventory.html:5 #: templates/inventory/inventory_stats.html:5 msgid "inventory" msgstr "المخزون" -#: inventory/views.py:937 -#, fuzzy -#| msgid "Car finance details saved successfully." +#: inventory/views.py:1212 msgid "Car finance details saved successfully" msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:961 -#, fuzzy -#| msgid "Car finance details updated successfully." -msgid "Car finance details updated successfully" +#: inventory/views.py:1258 +msgid "Car finance details updated successfully." msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:991 -#, fuzzy -#| msgid "Car updated successfully." -msgid "Car updated successfully" +#: inventory/views.py:1310 +msgid "Car updated successfully." msgstr "تم تحديث السيارة بنجاح" -#: inventory/views.py:1005 -#, fuzzy -#| msgid "Car deleted successfully." +#: inventory/views.py:1342 msgid "Car deleted successfully" msgstr "تم حذف السيارة بنجاح." -#: inventory/views.py:1023 -#, fuzzy -#| msgid "Day off saved successfully." +#: inventory/views.py:1378 msgid "Location saved successfully" msgstr "تم حفظ يوم الإجازة بنجاح." -#: inventory/views.py:1043 -#, fuzzy -#| msgid "Email updated successfully!" +#: inventory/views.py:1416 msgid "Location updated successfully" msgstr "تم تحديث البريد الإلكتروني بنجاح!" -#: inventory/views.py:1098 -#, fuzzy -#| msgid "Car transfer canceled successfully." +#: inventory/views.py:1519 msgid "Car transfer canceled successfully" msgstr "تم إلغاء نقل السيارة بنجاح." -#: inventory/views.py:1115 -#, fuzzy -#| msgid "Car transfer approved successfully." +#: inventory/views.py:1536 msgid "Car transfer approved successfully" msgstr "تمت الموافقة على نقل السيارة بنجاح." -#: inventory/views.py:1127 -#, fuzzy -#| msgid "Car transfer rejected successfully." +#: inventory/views.py:1561 msgid "Car transfer rejected successfully" msgstr "تم رفض نقل السيارة بنجاح." -#: inventory/views.py:1139 -#, fuzzy -#| msgid "Car Transfer Completed successfully." -msgid "Car Transfer Completed successfully" +#: inventory/views.py:1573 +msgid "Car Transfer Completed successfully." msgstr "تم إكمال نقل السيارة بنجاح." -#: inventory/views.py:1172 -#, fuzzy -#| msgid "Custom Card added successfully." +#: inventory/views.py:1642 msgid "Custom Card added successfully" msgstr "تم إضافة البطاقة الجمركية بنجاح." -#: inventory/views.py:1192 -#, fuzzy -#| msgid "Registration added successfully." +#: inventory/views.py:1683 msgid "Registration added successfully" msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1201 -#, fuzzy -#| msgid "This car is already reserved." +#: inventory/views.py:1706 msgid "This car is already reserved" msgstr "هذه السيارة محجوزة بالفعل." -#: inventory/views.py:1221 -#, fuzzy -#| msgid "Reservation renewed successfully." +#: inventory/views.py:1744 msgid "Reservation renewed successfully" msgstr "تم تجديد الحجز بنجاح" -#: inventory/views.py:1229 -#, fuzzy -#| msgid "Reservation canceled successfully." +#: inventory/views.py:1752 msgid "Reservation canceled successfully" msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1234 -#, fuzzy -#| msgid "Invalid action." +#: inventory/views.py:1757 msgid "Invalid action" msgstr "إجراء غير صالح." -#: inventory/views.py:1238 -#, fuzzy -#| msgid "Invalid request method." +#: inventory/views.py:1761 msgid "Invalid request method" msgstr "طريقة الطلب غير صالحة" -#: inventory/views.py:1279 -#, fuzzy -#| msgid "Dealer updated successfully." +#: inventory/views.py:1838 msgid "Dealer updated successfully" msgstr "تم تحديث المعرض بنجاح." -#: inventory/views.py:1286 templates/header.html:190 +#: inventory/views.py:1871 templates/header.html:190 msgid "customers" msgstr "العملاء" -#: inventory/views.py:1370 -#, fuzzy -#| msgid "Customer with this email already exists." -msgid "Customer with this email already exists" +#: inventory/views.py:2027 +msgid "Customer with this email already exists." msgstr "عميل بهذا البريد الإلكتروني موجود بالفعل." -#: inventory/views.py:1394 -#, fuzzy -#| msgid "Customer created successfully." +#: inventory/views.py:2052 msgid "Customer created successfully" msgstr "تم إنشاء العميل بنجاح." -#: inventory/views.py:1401 -#, fuzzy -#| msgid "Please correct the errors below." +#: inventory/views.py:2058 msgid "Please correct the errors below" msgstr "يرجى تصحيح الأخطاء أدناه." -#: inventory/views.py:1440 -#, fuzzy -#| msgid "Customer updated successfully." +#: inventory/views.py:2117 msgid "Customer updated successfully" msgstr "تم تحديث العميل بنجاح." -#: inventory/views.py:1461 -#, fuzzy -#| msgid "Customer deleted successfully." +#: inventory/views.py:2152 msgid "Customer deleted successfully" msgstr "تم حذف العميل بنجاح." -#: inventory/views.py:1493 -#, fuzzy -#| msgid "Vendor created successfully." +#: inventory/views.py:2244 msgid "Vendor created successfully" msgstr "تم إنشاء المورد بنجاح." -#: inventory/views.py:1511 -#, fuzzy -#| msgid "Vendor updated successfully." +#: inventory/views.py:2282 msgid "Vendor updated successfully" msgstr "تم تحديث المورد بنجاح" -#: inventory/views.py:1519 -#, fuzzy -#| msgid "Vendor deleted successfully." +#: inventory/views.py:2324 msgid "Vendor deleted successfully" msgstr "تم حذف المورد بنجاح." -#: inventory/views.py:1548 -#, fuzzy -#| msgid "Group created successfully." +#: inventory/views.py:2409 msgid "Group created successfully" msgstr "تم إنشاء المجموعة بنجاح." -#: inventory/views.py:1569 -#, fuzzy -#| msgid "Group updated successfully." +#: inventory/views.py:2451 msgid "Group updated successfully" msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:1583 -#, fuzzy -#| msgid "Group deleted successfully." +#: inventory/views.py:2478 msgid "Group deleted successfully" msgstr "تم حذف المجموعة بنجاح." -#: inventory/views.py:1595 -#, fuzzy -#| msgid "Permission added successfully." +#: inventory/views.py:2512 msgid "Permission added successfully" msgstr "تمت إضافة الإذن بنجاح." -#: inventory/views.py:1613 -#, fuzzy -#| msgid "Group added successfully." +#: inventory/views.py:2548 msgid "Group added successfully" msgstr "تمت إضافة المجموعة بنجاح." -#: inventory/views.py:1656 -#, fuzzy -#| msgid "" -#| "The user quota for staff members is not defined. Please contact support." +#: inventory/views.py:2650 msgid "The user quota for staff members is not defined. Please contact support" msgstr "لم يتم تحديد الحصة المخصصة لأعضاء الفريق. يرجى الاتصال بالدعم." -#: inventory/views.py:1661 -#, fuzzy -#| msgid "" -#| "You have reached the maximum number of staff users allowed for your plan." +#: inventory/views.py:2655 msgid "" "You have reached the maximum number of staff users allowed for your plan" msgstr "لقد وصلت إلى الحد الأقصى لعدد أعضاء الفريق المسموح به في خطتك." -#: inventory/views.py:1693 -#, fuzzy -#| msgid "User updated successfully." +#: inventory/views.py:2709 msgid "User updated successfully" msgstr "تم تحديث المستخدم بنجاح" -#: inventory/views.py:1731 -#, fuzzy -#| msgid "User deleted successfully." +#: inventory/views.py:2761 msgid "User deleted successfully" msgstr "تم حذف المستخدم بنجاح." -#: inventory/views.py:1760 -#, fuzzy -#| msgid "An organization with this email already exists." -msgid "An organization with this email already exists" +#: inventory/views.py:2842 +msgid "An organization with this email already exists." msgstr "توجد بالفعل منظمة بهذا البريد الإلكتروني." -#: inventory/views.py:1787 inventory/views.py:1826 -#, fuzzy -#| msgid "Organization created successfully." +#: inventory/views.py:2870 inventory/views.py:2927 msgid "Organization created successfully" msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:1847 -#, fuzzy -#| msgid "Organization deleted successfully." +#: inventory/views.py:2961 msgid "Organization deleted successfully" msgstr "تم حذف المنظمة بنجاح." -#: inventory/views.py:1850 +#: inventory/views.py:2964 msgid "Unable to delete organization" msgstr "غير قادر على حذف المنظمة" -#: inventory/views.py:1877 -#, fuzzy -#| msgid "Service created successfully." +#: inventory/views.py:3046 msgid "Representative created successfully" msgstr "تم إنشاء الخدمة بنجاح." -#: inventory/views.py:1893 -#, fuzzy -#| msgid "Service updated successfully." +#: inventory/views.py:3088 msgid "Representative updated successfully" msgstr "تم تحديث الخدمة بنجاح." -#: inventory/views.py:1900 -#, fuzzy -#| msgid "Service deleted successfully!" +#: inventory/views.py:3112 msgid "Representative deleted successfully" msgstr "تم حذف الخدمة بنجاح!" -#: inventory/views.py:1923 -#, fuzzy -#| msgid "Organization created successfully." +#: inventory/views.py:3183 msgid "Bank account created successfully" msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:1952 -#, fuzzy -#| msgid "Group updated successfully." +#: inventory/views.py:3254 msgid "Bank account updated successfully" msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:1969 -#, fuzzy -#| msgid "Note deleted successfully." +#: inventory/views.py:3290 msgid "Bank account deleted successfully" msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:1998 -#, fuzzy -#| msgid "Group created successfully." +#: inventory/views.py:3376 msgid "Account created successfully" msgstr "تم إنشاء المجموعة بنجاح." -#: inventory/views.py:2065 -#, fuzzy -#| msgid "Group updated successfully." +#: inventory/views.py:3491 msgid "Account updated successfully" msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:2081 -#, fuzzy -#| msgid "Note deleted successfully." +#: inventory/views.py:3519 msgid "Account deleted successfully" msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:2138 inventory/views.py:3489 +#: inventory/views.py:3631 inventory/views.py:6005 msgid "Items and Quantities are required" -msgstr "" +msgstr "المنتجات والكميات مطلوبة" -#: inventory/views.py:2145 inventory/views.py:2150 inventory/views.py:3495 -#: inventory/views.py:3500 -#, fuzzy -#| msgid "Slot duration must be greater than 0" +#: inventory/views.py:3638 inventory/views.py:3643 inventory/views.py:6011 +#: inventory/views.py:6016 msgid "Quantity must be greater than zero" msgstr "يجب أن تكون مدة الفاصل الزمني أكبر من 0." -#: inventory/views.py:2156 inventory/views.py:2161 +#: inventory/views.py:3652 inventory/views.py:3660 msgid "Quantity must be less than or equal to the number of cars in stock" -msgstr "" +msgstr "يجب أن تكون الكمية أقل من أو تساوي عدد السيارات المتوفرة في المخزون" -#: inventory/views.py:2243 -#, fuzzy -#| msgid "Organization created successfully." +#: inventory/views.py:3752 msgid "Quotation created successfully" -msgstr "تم إنشاء المنظمة بنجاح." +msgstr "تم إنشاء عرض السعر بنجاح" -#: inventory/views.py:2395 -#, fuzzy -#| msgid "Estimate is not ready for review" +#: inventory/views.py:4010 msgid "Quotation is not ready for review" msgstr "العرض غير جاهز للمراجعة." -#: inventory/views.py:2401 -#, fuzzy -#| msgid "Estimate is not ready for approval" +#: inventory/views.py:4016 msgid "Quotation is not ready for approval" msgstr "العرض غير جاهز للموافقة." -#: inventory/views.py:2404 -#, fuzzy -#| msgid "Estimate approved successfully." +#: inventory/views.py:4019 msgid "Quotation approved successfully" msgstr "تمت الموافقة على العرض بنجاح." -#: inventory/views.py:2407 -#, fuzzy -#| msgid "Estimate is not ready for rejection" +#: inventory/views.py:4022 msgid "Quotation is not ready for rejection" msgstr "العرض غير جاهز للرفض." -#: inventory/views.py:2410 inventory/views.py:2426 -#, fuzzy -#| msgid "Reservation canceled successfully." +#: inventory/views.py:4025 inventory/views.py:4043 msgid "Quotation canceled successfully" msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:2413 -#, fuzzy -#| msgid "Estimate is not ready for completion" +#: inventory/views.py:4028 msgid "Quotation is not ready for completion" msgstr "العرض غير جاهز للإكمال." -#: inventory/views.py:2417 -#, fuzzy -#| msgid "Estimate is not ready for cancelation" +#: inventory/views.py:4032 msgid "Quotation is not ready for cancellation" msgstr "العرض غير جاهز للإلغاء." -#: inventory/views.py:2428 -#, fuzzy -#| msgid "Notification marked as read." msgid "Quotation marked as " -msgstr "تم تمييز الإشعار كمقروء." +msgstr "تم وضع علامة على عرض السعر كـ" -#: inventory/views.py:2652 msgid "fully paid" -msgstr "" +msgstr "مدفوع بالكامل" -#: inventory/views.py:2655 -#, fuzzy -#| msgid "Amount Received" msgid "Amount exceeds due amount" -msgstr "المبلغ المستلم" +msgstr "المبلغ يتجاوز المبلغ المستحق" -#: inventory/views.py:2663 inventory/views.py:2727 -#, fuzzy -#| msgid "Vendor created successfully." msgid "Payment created successfully" -msgstr "تم إنشاء المورد بنجاح." +msgstr "تم إنشاء الدفعة بنجاح" -#: inventory/views.py:2731 msgid "Invoice is not fully paid, Payment cannot be marked as paid" -msgstr "" +msgstr "لم يتم دفع الفاتورة بالكامل، لا يمكن وضع علامة مدفوعة على الدفعة" -#: inventory/views.py:2856 -#, fuzzy -#| msgid "Vendor created successfully." msgid "Lead created successfully" -msgstr "تم إنشاء المورد بنجاح." +msgstr "تم إنشاء العميل المتوقع بنجاح" -#: inventory/views.py:2887 -#, fuzzy -#| msgid "Car deleted successfully." msgid "Lead deleted successfully" -msgstr "تم حذف السيارة بنجاح." +msgstr "تم حذف العميل المتوقع بنجاح" -#: inventory/views.py:2902 inventory/views.py:2918 -#, fuzzy -#| msgid "Note deleted successfully." msgid "Note added successfully" -msgstr "تم حذف الملاحظة بنجاح." +msgstr "تمت إضافة الملاحظة بنجاح" -#: inventory/views.py:2915 -#, fuzzy -#| msgid "This field is required." msgid "Notes field is required" -msgstr "هذا الحقل مطلوب." +msgstr "حقل الملاحظات مطلوب" -#: inventory/views.py:2935 -#, fuzzy -#| msgid "User updated successfully." msgid "Note updated successfully" -msgstr "تم تحديث المستخدم بنجاح" +msgstr "تم تحديث الملاحظة بنجاح" -#: inventory/views.py:2949 -#, fuzzy -#| msgid "Note deleted successfully." -msgid "Note deleted successfully" +msgid "Note deleted successfully." msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:2959 msgid "Lead is already converted to customer" -msgstr "" +msgstr "تم تحويل العميل المتوقع بالفعل إلى عميل" -#: inventory/views.py:2963 -#, fuzzy -#| msgid "Dealer updated successfully." msgid "Lead converted to customer successfully" -msgstr "تم تحديث المعرض بنجاح." +msgstr "تم تحويل العميل المتوقع إلى عميل بنجاح" -#: inventory/views.py:2970 -#, fuzzy -#| msgid "You do not have permission to access this appointment." msgid "You do not have permission to schedule lead" -msgstr "ليس لديك إذن للوصول إلى هذا الموعد." +msgstr "ليست لديك صلاحية جدولة هذا العميل المتوقع" -#: inventory/views.py:2985 -#, fuzzy -#| msgid "User not found" -msgid "Service not found" -msgstr "المستخدم غير موجود" - -#: inventory/views.py:3010 -#, fuzzy -#| msgid "Appointment updated successfully." msgid "Lead scheduled and appointment created successfully" -msgstr "تم تحديث الموعد بنجاح." +msgstr "تمت جدولة العميل المتوقع وإنشاء الموعد بنجاح" -#: inventory/views.py:3029 -#, fuzzy -#| msgid "Car transfer approved successfully." msgid "Lead transferred successfully" -msgstr "تمت الموافقة على نقل السيارة بنجاح." +msgstr "تم نقل العميل المتوقع بنجاح" -#: inventory/views.py:3043 -#, fuzzy -#| msgid "Email Draft successfully!" msgid "Email Draft successfully" -msgstr "تم حفظ مسودة البريد الإلكتروني بنجاح!" +msgstr "تم إنشاء مسودة البريد الإلكتروني بنجاح" -#: inventory/views.py:3068 inventory/views.py:3652 -#, fuzzy -#| msgid "Email sent successfully!" +#: inventory/views.py:5156 inventory/views.py:6216 msgid "Email sent successfully" msgstr "تم إرسال البريد الإلكتروني بنجاح!" -#: inventory/views.py:3194 -#, fuzzy -#| msgid "Opportunity deleted successfully." +#: inventory/views.py:5385 msgid "Opportunity deleted successfully" msgstr "تم حذف الفرصة بنجاح." -#: inventory/views.py:3207 -#, fuzzy -#| msgid "Opportunity deleted successfully." msgid "Opportunity status updated successfully" -msgstr "تم حذف الفرصة بنجاح." +msgstr "تم تحديث حالة الفرصة بنجاح" -#: inventory/views.py:3229 -#, fuzzy -#| msgid "Notification marked as read." msgid "Notification marked as read" -msgstr "تم تمييز الإشعار كمقروء." +msgstr "تم تعليم الإشعار كمقروء" -#: inventory/views.py:3247 -#, fuzzy -#| msgid "Service created successfully." msgid "Service created successfully" -msgstr "تم إنشاء الخدمة بنجاح." +msgstr "تم إنشاء الخدمة بنجاح" -#: inventory/views.py:3265 -#, fuzzy -#| msgid "Service updated successfully." msgid "Service updated successfully" -msgstr "تم تحديث الخدمة بنجاح." +msgstr "تم تحديث الخدمة بنجاح" -#: inventory/views.py:3388 inventory/views.py:3414 -#, fuzzy -#| msgid "Bill updated successfully." +#: inventory/views.py:5837 inventory/views.py:5889 msgid "Bill updated successfully" msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:3443 -#, fuzzy -#| msgid "Bill is already approved." +#: inventory/views.py:5930 msgid "Bill is already approved" msgstr "تمت الموافقة على الفاتورة مسبقًا." -#: inventory/views.py:3447 -#, fuzzy -#| msgid "Bill marked as approved successfully." +#: inventory/views.py:5934 msgid "Bill marked as approved successfully" msgstr "تم تحديد الفاتورة كموافقة بنجاح." -#: inventory/views.py:3458 -#, fuzzy -#| msgid "Bill is already paid." +#: inventory/views.py:5961 msgid "Bill is already paid" msgstr "تم دفع الفاتورة مسبقًا." -#: inventory/views.py:3467 -#, fuzzy -#| msgid "Bill marked as paid successfully." +#: inventory/views.py:5970 msgid "Bill marked as paid successfully" msgstr "تم تحديد الفاتورة كمدفوعة بنجاح." -#: inventory/views.py:3469 -#, fuzzy -#| msgid "Amount paid is not equal to amount due." +#: inventory/views.py:5972 msgid "Amount paid is not equal to amount due" msgstr "المبلغ المدفوع لا يساوي المبلغ المستحق." -#: inventory/views.py:3561 -#, fuzzy -#| msgid "Bill updated successfully." +#: inventory/views.py:6077 msgid "Bill created successfully" msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:3616 +#: inventory/views.py:6178 msgid "Quotation has no items" msgstr "عرض السعر لا يحتوي على أي عناصر" -#: inventory/views.py:3647 templates/customers/view_customer.html:129 +#: inventory/views.py:6211 templates/customers/view_customer.html:129 #: templates/sales/estimates/estimate_detail.html:79 #: templates/sales/estimates/estimate_send.html:5 #: templates/sales/estimates/sale_order_form.html:171 @@ -2324,57 +2121,35 @@ msgstr "عرض السعر لا يحتوي على أي عناصر" msgid "Quotation" msgstr "عرض سعر" -#: inventory/views.py:3828 +#: inventory/views.py:6725 #: 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" msgstr "لوحة القيادة" -#: inventory/views.py:3896 inventory/views.py:3922 inventory/views.py:3971 -#, fuzzy -#| msgid "Not authorized." msgid "Unauthorized" -msgstr "غير مصرح." +msgstr "غير مصرح" -#: inventory/views.py:4024 -#, fuzzy -#| msgid "Settings" msgid "Settings updated" -msgstr "الإعدادات" +msgstr "تم تحديث الإعدادات" -#: inventory/views.py:4137 -#, fuzzy -#| msgid "Journal Entry Detail" msgid "Journal Entry created" -msgstr "تفاصيل إدخال اليومية" +msgstr "تم إنشاء قيد اليومية" -#: inventory/views.py:4163 -#, fuzzy -#| msgid "Journal Entry has not been posted." msgid "Journal Entry cannot be deleted" -msgstr "إدخال اليومية لم يتم نشره." +msgstr "لا يمكن حذف قيد اليومية" -#: inventory/views.py:4190 -#, fuzzy -#| msgid "Bill is already approved." msgid "Ledger is already locked" -msgstr "تمت الموافقة على الفاتورة مسبقًا." +msgstr "دفتر الأستاذ مقفل بالفعل" -#: inventory/views.py:4200 msgid "Ledger is already Unlocked" -msgstr "" +msgstr "دفتر الأستاذ غير مقفل بالفعل" -#: inventory/views.py:4214 -#, fuzzy -#| msgid "Bill is already approved." msgid "Ledger is already posted" -msgstr "تمت الموافقة على الفاتورة مسبقًا." +msgstr "دفتر الأستاذ تم ترحيله بالفعل" -#: inventory/views.py:4224 -#, fuzzy -#| msgid "Bill is already approved." msgid "Ledger is already Unposted" -msgstr "تمت الموافقة على الفاتورة مسبقًا." +msgstr "دفتر الأستاذ لم يتم ترحيله بعد" #: templates/account/account_inactive.html:5 #: templates/account/account_inactive.html:9 @@ -2425,7 +2200,7 @@ msgstr "تأكيد" #: templates/account/confirm_login_code..html:38 #: templates/crm/leads/lead_form.html:18 #: templates/crm/leads/schedule_lead.html:18 -#: templates/crm/opportunities/opportunity_detail.html:61 +#: templates/crm/opportunities/opportunity_detail.html:58 #: templates/crm/opportunities/opportunity_form.html:89 #: templates/dealers/dealer_form.html:22 templates/groups/group_form.html:35 #: templates/groups/group_permission_form.html:35 @@ -3289,7 +3064,7 @@ msgstr "لقد أرسلنا رمز التحقق إلى بريدك الإلكتر #: templates/administration/email_change_verification_code.html:22 #: templates/appointment/enter_verification_code.html:21 -#: templates/ledger/coa_accounts/account_list.html:44 +#: templates/ledger/coa_accounts/account_list.html:49 #: venv/lib/python3.11/site-packages/appointment/templates/administration/email_change_verification_code.html:22 #: venv/lib/python3.11/site-packages/appointment/templates/appointment/enter_verification_code.html:21 msgid "Code" @@ -3338,15 +3113,16 @@ msgstr "تأكيد الحذف" #: templates/administration/staff_index.html:79 #: templates/administration/user_profile.html:18 #: templates/crm/leads/lead_list.html:99 templates/crm/leads/lead_list.html:232 -#: templates/crm/opportunities/opportunity_detail.html:11 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:28 #: templates/customers/view_customer.html:23 #: templates/groups/group_detail.html:109 #: 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/ledger/coa_accounts/account_list.html:115 +#: templates/ledger/journal_entry/journal_entry_delete.html:19 #: templates/ledger/journal_entry/journal_entry_list.html:116 +#: templates/ledger/ledger/ledger_delete.html:19 +#: templates/ledger/ledger/ledger_list.html:108 #: templates/modal/delete_modal.html:12 templates/modal/delete_modal.html:26 #: templates/modal/event_details_modal.html:33 #: templates/organizations/organization_detail.html:19 @@ -3354,7 +3130,7 @@ msgstr "تأكيد الحذف" #: templates/plans/billing_info_create_or_update.html:14 #: templates/representatives/representative_detail.html:16 #: templates/sales/estimates/estimate_detail.html:29 -#: templates/users/user_detail.html:90 templates/vendors/vendors_list.html:136 +#: templates/users/user_detail.html:90 templates/vendors/vendors_list.html:137 #: templates/vendors/view_vendor.html:67 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:325 #: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:33 @@ -3446,7 +3222,7 @@ msgstr "" #: templates/administration/manage_staff_member.html:70 #: templates/crm/leads/lead_form.html:15 #: templates/crm/leads/schedule_lead.html:15 -#: templates/crm/opportunities/opportunity_detail.html:62 +#: templates/crm/opportunities/opportunity_detail.html:59 #: templates/crm/opportunities/opportunity_form.html:88 #: templates/customers/customer_form.html:29 #: templates/dealers/assign_car_makes.html:23 @@ -3528,7 +3304,7 @@ msgstr "قائمة الخدمات" #: templates/items/service/service_list.html:24 #: templates/ledger/bank_accounts/bank_account_list.html:21 #: templates/ledger/journal_entry/journal_entry_list.html:69 -#: templates/ledger/ledger/ledger_list.html:21 +#: templates/ledger/ledger/ledger_list.html:25 #: templates/modal/confirm_modal.html:21 #: venv/lib/python3.11/site-packages/appointment/templates/administration/service_list.html:31 #: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:106 @@ -4209,9 +3985,8 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل الم #: templates/ledger/bills/bill_detail.html:24 #: templates/ledger/bills/bill_detail.html:49 #: templates/ledger/bills/bill_detail.html:121 -#: templates/ledger/bills/bill_list.html:69 #: templates/ledger/coa_accounts/account_detail.html:22 -#: templates/ledger/coa_accounts/account_list.html:78 +#: templates/ledger/coa_accounts/account_list.html:83 #: templates/ledger/journal_entry/journal_entry_list.html:25 #: templates/organizations/organization_list.html:96 #: templates/sales/estimates/estimate_detail.html:37 @@ -4236,9 +4011,8 @@ msgstr "نعم" #: 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/ledger/coa_accounts/account_list.html:80 #: templates/ledger/journal_entry/journal_entry_list.html:24 #: templates/organizations/organization_list.html:95 #: templates/sales/estimates/estimate_detail.html:63 @@ -4254,7 +4028,6 @@ msgid "No" msgstr "لا" #: templates/crm/leads/lead_list.html:223 -#: templates/crm/opportunities/opportunity_detail.html:10 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:27 #: templates/dealers/dealer_detail.html:13 #: templates/groups/group_detail.html:103 @@ -4266,7 +4039,7 @@ msgstr "لا" #: templates/organizations/organization_detail.html:14 #: templates/organizations/organization_list.html:124 #: templates/representatives/representative_detail.html:13 -#: templates/users/user_detail.html:84 templates/vendors/vendors_list.html:134 +#: templates/users/user_detail.html:84 templates/vendors/vendors_list.html:135 #: templates/vendors/view_vendor.html:64 #: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/includes/card_customer.html:28 @@ -4317,37 +4090,37 @@ msgstr "وضع علامة مقروء" msgid "Opportunity details" msgstr "تفاصيل الفرصة" -#: templates/crm/opportunities/opportunity_detail.html:17 +#: templates/crm/opportunities/opportunity_detail.html:16 #: templates/sales/estimates/estimate_detail.html:4 msgid "View Quotation" msgstr "مشاهدة عرض السعر" -#: templates/crm/opportunities/opportunity_detail.html:86 +#: templates/crm/opportunities/opportunity_detail.html:83 msgid "Other Information" msgstr "معلومات أخرى" -#: templates/crm/opportunities/opportunity_detail.html:92 +#: templates/crm/opportunities/opportunity_detail.html:89 msgid "Update Status" msgstr "تحديث الحالة" -#: templates/crm/opportunities/opportunity_detail.html:99 +#: templates/crm/opportunities/opportunity_detail.html:96 msgid "Update Stage" msgstr "تحديث المرحلة" -#: templates/crm/opportunities/opportunity_detail.html:117 +#: templates/crm/opportunities/opportunity_detail.html:114 msgid "Quotation Amount" msgstr "مبلغ عرض السعر" -#: templates/crm/opportunities/opportunity_detail.html:172 +#: templates/crm/opportunities/opportunity_detail.html:169 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:14 msgid "Estimated Revenue" msgstr "الإيرادات المقدرة" -#: templates/crm/opportunities/opportunity_detail.html:222 +#: templates/crm/opportunities/opportunity_detail.html:219 msgid "Contact Name" msgstr "اسم جهة الاتصال" -#: templates/crm/opportunities/opportunity_detail.html:255 +#: templates/crm/opportunities/opportunity_detail.html:252 msgid "Create Date" msgstr "تاريخ الإنشاء" @@ -4377,8 +4150,8 @@ msgstr "إضافة فرصة" #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:55 #: templates/crm/opportunities/opportunity_list.html:49 #: templates/inventory/car_list_view.html:167 -#: templates/ledger/bills/bill_list.html:97 -#: templates/ledger/coa_accounts/account_list.html:108 +#: templates/ledger/bills/bill_list.html:80 +#: templates/ledger/coa_accounts/account_list.html:113 #: templates/ledger/journal_entry/includes/card_invoice.html:33 #: templates/ledger/journal_entry/journal_entry_list.html:113 #: templates/sales/invoices/invoice_list.html:61 @@ -4422,7 +4195,7 @@ msgstr "إضافة عميل" #: templates/customers/customer_list.html:56 #: templates/dealers/dealer_detail.html:104 #: templates/ledger/coa_accounts/account_detail.html:55 -#: templates/ledger/coa_accounts/account_list.html:46 +#: templates/ledger/coa_accounts/account_list.html:51 #: templates/plans/current.html:21 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:433 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:27 @@ -4910,6 +4683,8 @@ msgid "Bad Request" msgstr "طلب غير صالح" #: templates/errors/400.html:46 +#: templates/ledger/journal_entry/journal_entry_delete.html:18 +#: templates/ledger/ledger/ledger_delete.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_delete.html:27 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_void.html:24 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_delete.html:18 @@ -5523,7 +5298,7 @@ msgstr "حدث خطأ أثناء فك تشفير الهيكل" #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:45 #: templates/inventory/car_list_view.html:93 -#: templates/partials/search_box.html:4 +#: templates/inventory/scan_vin.html:15 templates/partials/search_box.html:4 #: templates/representatives/representative_list.html:9 #: templates/representatives/representative_list.html:10 #: templates/sales/sales_list.html:50 @@ -5552,8 +5327,8 @@ msgid "Add a Car" msgstr "إضافة سيارة" #: templates/inventory/car_list.html:70 -#: templates/ledger/bills/bill_list.html:22 -#: templates/ledger/coa_accounts/account_list.html:19 +#: templates/ledger/bills/bill_list.html:27 +#: templates/ledger/coa_accounts/account_list.html:25 msgid "search" msgstr "بحث" @@ -5691,6 +5466,21 @@ msgstr "وقت بدء الحجز" msgid "Reservation End Time" msgstr "وقت انتهاء الحجز" +msgid "Scan Vehicle Code" +msgstr "مسح رمز السيارة" + +msgid "VIN / Barcode / QR Code" +msgstr "رمز VIN / الباركود / رمز QR" + +msgid "Start Scanning" +msgstr "ابدأ المسح" + +msgid "Switch Camera" +msgstr "تبديل الكاميرا" + +msgid "Scan" +msgstr "مسح" + #: templates/inventory/transfer_car.html:6 msgid "transfer car" msgstr "نقل السيارة" @@ -5904,7 +5694,7 @@ msgstr "رقم الحساب" #: templates/ledger/bank_accounts/bank_account_list.html:39 #: templates/ledger/journal_entry/journal_entry_list.html:124 -#: templates/ledger/ledger/ledger_list.html:67 +#: templates/ledger/ledger/ledger_list.html:116 msgid "No Bank Accounts Found" msgstr "لم يتم العثور على أي حساب بنكي." @@ -5976,7 +5766,7 @@ msgid "Due Amount" msgstr "المبلغ الكلي" #: templates/ledger/bills/bill_detail.html:158 -#: templates/ledger/bills/bill_list.html:40 +#: templates/ledger/bills/bill_list.html:45 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:356 msgid "Bill Number" msgstr "رقم الفاتورة" @@ -6042,34 +5832,31 @@ msgstr "إنشاء فاتورة" msgid "Bills" msgstr "الفواتير" -#: templates/ledger/bills/bill_list.html:23 +#: templates/ledger/bills/bill_list.html:17 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:217 +msgid "New Bill" +msgstr "فاتورة جديدة" + +#: templates/ledger/bills/bill_list.html:28 msgid "Search bills..." msgstr "ابحث عن الفواتير ..." -#: templates/ledger/bills/bill_list.html:43 +#: templates/ledger/bills/bill_list.html:48 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:360 msgid "Bill Status" msgstr "حالة الفاتورة" -#: templates/ledger/bills/bill_list.html:58 -msgid "Delete Bill" -msgstr "حذف الفاتورة" - -#: templates/ledger/bills/bill_list.html:65 -msgid "Are you sure you want to delete this Bill?" -msgstr "هل أنت متأكد أنك تريد حذف هذه الفاتورة؟" - -#: templates/ledger/bills/bill_list.html:106 +#: templates/ledger/bills/bill_list.html:88 msgid "No bill found." msgstr "لم يتم العثور على فاتورة." -#: templates/ledger/bills/bill_list.html:115 -#: templates/ledger/coa_accounts/account_list.html:127 +#: templates/ledger/bills/bill_list.html:97 +#: templates/ledger/coa_accounts/account_list.html:132 msgid "to" msgstr "إلى" -#: templates/ledger/bills/bill_list.html:115 -#: templates/ledger/coa_accounts/account_list.html:127 +#: templates/ledger/bills/bill_list.html:97 +#: templates/ledger/coa_accounts/account_list.html:132 msgid "Items of" msgstr "عناصر" @@ -6082,7 +5869,7 @@ msgid "Are you sure you want to delete this account?" msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" #: templates/ledger/coa_accounts/account_detail.html:39 -#: templates/ledger/coa_accounts/account_list.html:43 +#: templates/ledger/coa_accounts/account_list.html:48 #: templates/ledger/journal_entry/journal_entry_transactions.html:19 #: templates/ledger/reports/tags/balance_sheet_statement.html:14 #: templates/sales/payments/payment_details.html:16 @@ -6108,7 +5895,7 @@ msgstr "رمز الحساب" #: templates/ledger/coa_accounts/account_detail.html:48 #: templates/ledger/coa_accounts/account_detail.html:50 -#: templates/ledger/coa_accounts/account_list.html:45 +#: templates/ledger/coa_accounts/account_list.html:50 #: templates/ledger/reports/tags/balance_sheet_statement.html:18 #: templates/ledger/reports/tags/income_statement.html:13 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:26 @@ -6119,7 +5906,7 @@ msgstr "نوع الرصيد" #: templates/ledger/coa_accounts/account_detail.html:48 #: templates/ledger/coa_accounts/account_detail.html:65 -#: templates/ledger/coa_accounts/account_list.html:92 +#: templates/ledger/coa_accounts/account_list.html:97 #: templates/ledger/journal_entry/journal_entry_transactions.html:21 #: templates/sales/payments/payment_details.html:18 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:423 @@ -6133,7 +5920,7 @@ msgstr "مدين" #: templates/ledger/coa_accounts/account_detail.html:50 #: templates/ledger/coa_accounts/account_detail.html:66 -#: templates/ledger/coa_accounts/account_list.html:94 +#: templates/ledger/coa_accounts/account_list.html:99 #: templates/ledger/journal_entry/journal_entry_transactions.html:22 #: templates/sales/payments/payment_details.html:19 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:422 @@ -6164,25 +5951,29 @@ msgstr "إضافة حساب" #: templates/ledger/coa_accounts/account_list.html:3 #: templates/ledger/coa_accounts/account_list.html:6 -#: templates/ledger/coa_accounts/account_list.html:14 +#: templates/ledger/coa_accounts/account_list.html:20 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:444 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html:54 msgid "Accounts" msgstr "الحسابات" -#: templates/ledger/coa_accounts/account_list.html:25 +#: templates/ledger/coa_accounts/account_list.html:17 +msgid "New Account" +msgstr "حساب جديد" + +#: templates/ledger/coa_accounts/account_list.html:31 msgid "Search accounts..." msgstr "ابحث عن الحسابات..." -#: templates/ledger/coa_accounts/account_list.html:64 +#: templates/ledger/coa_accounts/account_list.html:69 msgid "Delete Account" msgstr "حذف الحساب" -#: templates/ledger/coa_accounts/account_list.html:71 +#: templates/ledger/coa_accounts/account_list.html:76 msgid "Are you sure you want to delete this Account?" msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" -#: templates/ledger/coa_accounts/account_list.html:119 +#: templates/ledger/coa_accounts/account_list.html:124 msgid "No account found." msgstr "لم يتم العثور على حساب." @@ -6321,7 +6112,7 @@ msgstr "تفاصيل إدخال اليومية" #: templates/ledger/journal_entry/includes/card_journal_entry.html:17 #: templates/ledger/journal_entry/journal_entry_list.html:66 -#: templates/ledger/ledger/ledger_list.html:19 +#: templates/ledger/ledger/ledger_list.html:23 #: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:391 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:12 @@ -6331,7 +6122,7 @@ msgstr "تم النشر" #: templates/ledger/journal_entry/includes/card_journal_entry.html:24 #: templates/ledger/journal_entry/journal_entry_list.html:67 -#: templates/ledger/ledger/ledger_list.html:20 +#: templates/ledger/ledger/ledger_list.html:24 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:432 #: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:392 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:28 @@ -6343,6 +6134,7 @@ msgstr "مقفل" #: templates/ledger/journal_entry/includes/card_journal_entry.html:42 #: templates/ledger/journal_entry/journal_entry_txs.html:71 +#: templates/ledger/ledger/ledger_list.html:82 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:113 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:43 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:64 @@ -6353,6 +6145,7 @@ msgstr "قفل" #: templates/ledger/journal_entry/includes/card_journal_entry.html:46 #: templates/ledger/journal_entry/journal_entry_txs.html:77 +#: templates/ledger/ledger/ledger_list.html:86 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:47 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:70 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:109 @@ -6361,6 +6154,7 @@ msgstr "إلغاء القفل" #: templates/ledger/journal_entry/includes/card_journal_entry.html:50 #: templates/ledger/journal_entry/journal_entry_txs.html:83 +#: templates/ledger/ledger/ledger_list.html:90 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:28 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:51 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:76 @@ -6371,6 +6165,7 @@ msgstr "نشر" #: templates/ledger/journal_entry/includes/card_journal_entry.html:54 #: templates/ledger/journal_entry/journal_entry_txs.html:89 +#: templates/ledger/ledger/ledger_list.html:94 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:46 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:55 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:82 @@ -6388,8 +6183,8 @@ msgstr "إنشاء إدخال يومية" #: templates/ledger/journal_entry/journal_entry_list.html:4 #: templates/ledger/journal_entry/journal_entry_list.html:36 -#: templates/ledger/ledger/ledger_list.html:17 -#: templates/ledger/ledger/ledger_list.html:42 +#: templates/ledger/ledger/ledger_list.html:21 +#: templates/ledger/ledger/ledger_list.html:46 #: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:408 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:19 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:10 @@ -6510,6 +6305,7 @@ msgstr "معاملات الفاتورة" #: templates/ledger/ledger/ledger_form.html:5 #: templates/ledger/ledger/ledger_form.html:9 +#: templates/ledger/ledger/ledger_list.html:14 #: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:95 msgid "Create Ledger" msgstr "إنشاء دفتر الأستاذ" @@ -6522,15 +6318,25 @@ msgstr "إنشاء دفتر الأستاذ" msgid "Ledger" msgstr "دفتر الأستاذ" -#: templates/ledger/ledger/ledger_list.html:16 +#: templates/ledger/ledger/ledger_list.html:20 #: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:195 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:9 msgid "Ledger Name" msgstr "اسم دفتر الأستاذ" -#: templates/ledger/ledger/ledger_list.html:18 -msgid "Earliest Date" -msgstr "أقدم تاريخ" +#: templates/ledger/ledger/ledger_list.html:22 +msgid "Created Date" +msgstr "تاريخ الإنشاء" + +#: templates/ledger/ledger/ledger_list.html:99 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:122 +msgid "Hide" +msgstr "إخفاء" + +#: templates/ledger/ledger/ledger_list.html:103 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:126 +msgid "UnHide" +msgstr "إلغاء الإخفاء" #: templates/ledger/reports/balance_sheet.html:38 #: templates/ledger/reports/cash_flow_statement.html:33 @@ -12353,10 +12159,6 @@ msgstr "وضع علامة ملغاة" msgid "This bill is" msgstr "هذه الفاتورة هي" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:217 -msgid "New Bill" -msgstr "فاتورة جديدة" - #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:19 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/tags/po_item_table.html:10 msgid "PO Qty" @@ -12847,14 +12649,6 @@ msgstr "أقدم تاريخ إدخال اليومية" msgid "Locked by Closing Entry" msgstr "مقفل بإدخال الإغلاق" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:122 -msgid "Hide" -msgstr "إخفاء" - -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:126 -msgid "UnHide" -msgstr "إلغاء الإخفاء" - #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_list.html:12 msgid "Products List" msgstr "قائمة المنتجات" @@ -13346,18 +13140,3 @@ msgstr "س" #: venv/lib/python3.11/site-packages/sympy/solvers/simplex.py:565 msgid "y" msgstr "ص" - -#~ msgid "Estimate canceled successfully." -#~ msgstr "تم إلغاء العرض بنجاح." - -#~ msgid "UnLock All" -#~ msgstr "إلغاء القفل للجميع" - -#~ msgid "UnPost All" -#~ msgstr "إلغاء نشر الجميع" - -#~ msgid "Because" -#~ msgstr "لأن" - -#~ msgid "Needs" -#~ msgstr "يحتاج" diff --git a/templates/inventory/scan_vin.html b/templates/inventory/scan_vin.html index 14001cbf..77881b2c 100644 --- a/templates/inventory/scan_vin.html +++ b/templates/inventory/scan_vin.html @@ -1,48 +1,73 @@ -
-
-
- - - +{% extends 'base.html' %} +{% load static i18n%} + +{% block content %} +
+

{{ _("Scan Vehicle Code")}}

+ + +
+ + +
+
+ +
- - - - - - \ No newline at end of file + +{% endblock content %} \ No newline at end of file