From d94c5adef70ce9f97b2ae09f00a8e7db7be29bef Mon Sep 17 00:00:00 2001 From: Marwan Alwali Date: Mon, 28 Apr 2025 17:21:41 +0300 Subject: [PATCH] update --- .../__pycache__/settings.cpython-311.pyc | Bin 8926 -> 8943 bytes haikalbot/migrations/0001_initial.py | 26 + inventory/services.py | 2 +- inventory/views.py | 20 +- locale/ar/LC_MESSAGES/django.mo | Bin 229933 -> 230673 bytes locale/ar/LC_MESSAGES/django.po | 808 ++++++++++-------- 6 files changed, 469 insertions(+), 387 deletions(-) create mode 100644 haikalbot/migrations/0001_initial.py diff --git a/car_inventory/__pycache__/settings.cpython-311.pyc b/car_inventory/__pycache__/settings.cpython-311.pyc index 73069f06bf9682f5fd7809a08f2e6413e6630c21..55aabaa5e784642e3b6a496eb14c9efdf7325784 100644 GIT binary patch delta 120 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 qnd=TQdLjTw=@rl?{C7H8nQI%vP{Qd`\n" "Language-Team: LANGUAGE \n" @@ -38,25 +38,25 @@ msgstr "" msgid "VIN" msgstr "رقم الهيكل" -#: car_inventory/settings.py:162 car_inventory/settings.py:327 +#: car_inventory/settings.py:163 car_inventory/settings.py:328 msgid "SAR" msgstr "ريال" -#: car_inventory/settings.py:259 +#: car_inventory/settings.py:260 #: venv/lib/python3.11/site-packages/appointments/settings.py:136 msgid "English" msgstr "الإنجليزية" -#: car_inventory/settings.py:260 +#: car_inventory/settings.py:261 msgid "Arabic" msgstr "العربية" -#: car_inventory/settings.py:349 templates/header.html:389 +#: car_inventory/settings.py:350 templates/header.html:389 #: templates/welcome-temp.html:57 templates/welcome_header.html:7 msgid "Haikal" msgstr "هيكل" -#: inventory/forms.py:222 inventory/forms.py:877 inventory/models.py:896 +#: inventory/forms.py:182 inventory/forms.py:754 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 @@ -70,7 +70,7 @@ msgstr "هيكل" msgid "Phone Number" msgstr "رقم الهاتف" -#: inventory/forms.py:225 inventory/forms.py:880 +#: inventory/forms.py:185 inventory/forms.py:757 #: templates/administration/display_appointment.html:55 #: templates/appointment/appointment_client_information.html:57 #: templates/crm/leads/lead_detail.html:88 @@ -85,74 +85,74 @@ msgstr "رقم الهاتف" 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 +#: inventory/forms.py:190 inventory/forms.py:649 inventory/forms.py:666 +#: inventory/forms.py:762 inventory/forms.py:801 inventory/forms.py:819 +#: inventory/forms.py:834 #: 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 +#: inventory/forms.py:191 inventory/forms.py:763 msgid "Phone number must be in the format 05xxxxxxxx" msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" -#: inventory/forms.py:502 inventory/models.py:719 +#: inventory/forms.py:416 inventory/models.py:719 #: templates/inventory/car_detail.html:122 msgid "Custom Date" msgstr "تاريخ البطاقة الجمركية" -#: inventory/forms.py:614 +#: inventory/forms.py:528 msgid "Both exterior and interior colors must be selected." msgstr "يجب اختيار اللونين الخارجي والداخلي." -#: inventory/forms.py:745 inventory/models.py:1201 inventory/models.py:1561 +#: inventory/forms.py:622 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:749 +#: inventory/forms.py:626 #: 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:750 templates/crm/leads/lead_list.html:41 +#: inventory/forms.py:627 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:756 +#: inventory/forms.py:633 msgid "You must add an email." msgstr "يجب إضافة بريد إلكتروني." -#: inventory/forms.py:761 inventory/forms.py:765 +#: inventory/forms.py:638 inventory/forms.py:642 #: 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:778 inventory/forms.py:782 +#: inventory/forms.py:655 inventory/forms.py:659 msgid "Confirm Password" msgstr "تأكيد كلمة المرور" -#: inventory/forms.py:795 +#: inventory/forms.py:672 msgid "I accept the Terms and Privacy Policy" msgstr "أوافق على الشروط وسياسة الخصوصية" -#: inventory/forms.py:804 +#: inventory/forms.py:681 msgid "You must accept the terms and privacy policy." msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." -#: inventory/forms.py:814 +#: inventory/forms.py:691 msgid "An account with this email already exists." msgstr "يوجد بالفعل حساب بهذا البريد الإلكتروني." -#: inventory/forms.py:822 +#: inventory/forms.py:699 msgid "Passwords do not match." msgstr "كلمات المرور غير متطابقة." -#: inventory/forms.py:849 inventory/models.py:324 inventory/models.py:668 +#: inventory/forms.py:726 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 @@ -176,50 +176,50 @@ msgstr "كلمات المرور غير متطابقة." msgid "Name" msgstr "الاسم" -#: inventory/forms.py:853 inventory/models.py:895 inventory/models.py:1558 +#: inventory/forms.py:730 inventory/models.py:895 inventory/models.py:1558 msgid "English Name" msgstr "الاسم بالإنجليزية" -#: inventory/forms.py:858 +#: inventory/forms.py:735 msgid "Please enter an English Name." msgstr "يرجى إدخال اسم باللغة الإنجليزية." -#: inventory/forms.py:863 inventory/forms.py:867 inventory/models.py:325 +#: inventory/forms.py:740 inventory/forms.py:744 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:872 +#: inventory/forms.py:749 msgid "Please enter an Arabic name." msgstr "يرجى إدخال اسم باللغة العربية." -#: inventory/forms.py:913 templates/organizations/organization_detail.html:8 +#: inventory/forms.py:790 templates/organizations/organization_detail.html:8 #: templates/organizations/organization_list.html:50 msgid "CRN" msgstr "رقم السجل التجاري" -#: inventory/forms.py:917 inventory/models.py:887 inventory/models.py:1170 +#: inventory/forms.py:794 inventory/models.py:887 inventory/models.py:1170 #: inventory/models.py:1255 inventory/models.py:1552 msgid "Commercial Registration Number" msgstr "رقم السجل التجاري" -#: inventory/forms.py:931 templates/organizations/organization_detail.html:9 +#: inventory/forms.py:808 templates/organizations/organization_detail.html:9 #: templates/organizations/organization_list.html:57 msgid "VRN" msgstr "الرقم الضريبي" -#: inventory/forms.py:935 inventory/models.py:892 inventory/models.py:1172 +#: inventory/forms.py:812 inventory/models.py:892 inventory/models.py:1172 #: inventory/models.py:1258 inventory/models.py:1555 msgid "VAT Registration Number" msgstr "رقم التسجيل في ضريبة القيمة المضافة" -#: inventory/forms.py:943 +#: inventory/forms.py:820 msgid "VAT Registration Number must be 15 characters." msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." -#: inventory/forms.py:948 inventory/models.py:898 inventory/models.py:1145 +#: inventory/forms.py:825 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 @@ -235,29 +235,29 @@ msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا msgid "Address" msgstr "العنوان" -#: inventory/forms.py:1030 inventory/models.py:1761 +#: inventory/forms.py:893 inventory/models.py:1761 msgid "cash" msgstr "نقداً" -#: inventory/forms.py:1031 inventory/models.py:1762 +#: inventory/forms.py:894 inventory/models.py:1762 msgid "credit" msgstr "دائن" -#: inventory/forms.py:1032 inventory/models.py:1763 +#: inventory/forms.py:895 inventory/models.py:1763 #: templates/inventory/car_detail.html:164 #: templates/inventory/transfer_car.html:23 msgid "transfer" msgstr "نقل" -#: inventory/forms.py:1033 inventory/models.py:1764 +#: inventory/forms.py:896 inventory/models.py:1764 msgid "debit" msgstr "مدين" -#: inventory/forms.py:1034 inventory/models.py:1765 inventory/models.py:1848 +#: inventory/forms.py:897 inventory/models.py:1765 inventory/models.py:1848 msgid "SADAD" msgstr "سداد" -#: inventory/forms.py:1346 inventory/forms.py:1363 inventory/models.py:1151 +#: inventory/forms.py:1205 inventory/forms.py:1222 inventory/models.py:1151 #: inventory/models.py:1222 #: templates/crm/opportunities/opportunity_form.html:22 #: templates/sales/estimates/estimate_detail.html:153 @@ -274,7 +274,7 @@ msgstr "سداد" msgid "Customer" msgstr "العميل" -#: inventory/forms.py:1352 inventory/forms.py:1362 +#: inventory/forms.py:1211 inventory/forms.py:1221 #: templates/ledger/bills/bill_detail.html:104 #: templates/sales/estimates/sale_order_preview.html:229 #: templates/sales/invoices/invoice_detail.html:125 @@ -282,12 +282,12 @@ msgstr "العميل" msgid "Terms" msgstr "الشروط" -#: inventory/forms.py:1357 inventory/forms.py:1361 inventory/models.py:1124 +#: inventory/forms.py:1216 inventory/forms.py:1220 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:1542 +#: inventory/forms.py:1401 msgid "Select Car Makes" msgstr "اختر ماركات السيارات" @@ -880,7 +880,7 @@ msgstr "انضم في" msgid "Dealers" msgstr "المعارض" -#: inventory/models.py:979 inventory/signals.py:174 templates/header.html:29 +#: inventory/models.py:979 inventory/tasks.py:42 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 @@ -1323,8 +1323,8 @@ msgstr "ملاحظة" #: templates/crm/leads/lead_detail.html:137 #: templates/crm/leads/lead_detail.html:213 #: templates/crm/leads/lead_detail.html:387 -#: templates/customers/view_customer.html:93 -#: templates/customers/view_customer.html:189 +#: templates/customers/view_customer.html:92 +#: templates/customers/view_customer.html:187 #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:154 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/card_markdown.html:9 msgid "Notes" @@ -1442,7 +1442,7 @@ msgstr "استردادات" msgid "Estimate" msgstr "تقدير" -#: inventory/models.py:1838 templates/customers/view_customer.html:151 +#: inventory/models.py:1838 templates/customers/view_customer.html:149 #: templates/ledger/journal_entry/includes/card_invoice.html:10 #: templates/plans/create_order.html:29 #: templates/sales/invoices/invoice_create.html:5 @@ -1455,7 +1455,7 @@ msgstr "تقدير" msgid "Invoice" msgstr "فاتورة" -#: inventory/models.py:1843 inventory/signals.py:150 +#: inventory/models.py:1843 inventory/tasks.py:18 #: templates/ledger/reports/dashboard.html:32 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_bs.html:14 msgid "Cash" @@ -1478,247 +1478,6 @@ msgstr "بطاقة ائتمان" msgid "Bank Transfer" msgstr "تحويل بنكي" -#: 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:187 -msgid "Prepaid Expenses" -msgstr "المصروفات المدفوعة مقدمًا" - -#: inventory/signals.py:199 -msgid "Employee Advance" -msgstr "سلفة الموظف" - -#: inventory/signals.py:210 -msgid "VAT Receivable" -msgstr "ضريبة القيمة المضافة المستحقة" - -#: 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: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:244 -msgid "Investments" -msgstr "الاستثمارات" - -#: 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: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: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: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:331 -msgid "Long-Term Notes Payable" -msgstr "أوراق الدفع طويلة الأجل" - -#: inventory/signals.py:343 -msgid "VAT Payable" -msgstr "ضريبة القيمة المضافة المستحقة الدفع" - -#: 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:363 -msgid "Social Insurance Payable" -msgstr "التأمينات الاجتماعية المستحقة الدفع" - -#: inventory/signals.py:369 -msgid "End of Service Benefits" -msgstr "مكافأة نهاية الخدمة" - -#: 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:384 -msgid "Registered Capital" -msgstr "رأس المال المسجل" - -#: inventory/signals.py:387 -msgid "Additional Paid-In Capital" -msgstr "رأس المال المدفوع الإضافي" - -#: inventory/signals.py:390 -msgid "Opening Balances" -msgstr "الأرصدة الافتتاحية" - -#: inventory/signals.py:395 -msgid "Statutory Reserve" -msgstr "الاحتياطي النظامي" - -#: inventory/signals.py:398 -msgid "Foreign Currency Translation Reserve" -msgstr "احتياطي تحويل العملات الأجنبية" - -#: inventory/signals.py:405 -msgid "Operating Profits and Losses" -msgstr "الأرباح والخسائر التشغيلية" - -#: inventory/signals.py:416 -msgid "Retained Earnings (or Losses)" -msgstr "الأرباح المحتجزة (أو الخسائر)" - -#: inventory/signals.py:426 -msgid "Sales Revenue" -msgstr "إيرادات المبيعات" - -#: 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:450 -msgid "Unearned Income" -msgstr "الدخل غير المكتسب" - -#: inventory/signals.py:456 -msgid "Sales/Service Revenue" -msgstr "إيرادات المبيعات/الخدمات" - -#: inventory/signals.py:459 -msgid "Non-Operating Revenues" -msgstr "الإيرادات غير التشغيلية" - -#: 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:480 -msgid "Accrued Expenses" -msgstr "المصروفات المستحقة" - -#: inventory/signals.py:490 -msgid "Accrued Salaries" -msgstr "الرواتب المستحقة" - -#: inventory/signals.py:500 -msgid "Rent Expense" -msgstr "مصروف الإيجار" - -#: inventory/signals.py:512 -msgid "Salaries and Administrative Fees" -msgstr "الرواتب والرسوم الإدارية" - -#: inventory/signals.py:522 -msgid "Medical Insurance" -msgstr "التأمين الطبي" - -#: inventory/signals.py:532 -msgid "Marketing and Advertising Expenses" -msgstr "مصروفات التسويق والإعلان" - -#: inventory/signals.py:542 -msgid "Commissions and Incentives" -msgstr "العمولات والحوافز" - -#: inventory/signals.py:552 -msgid "Travel Tickets" -msgstr "تذاكر السفر" - -#: inventory/signals.py:562 -msgid "Social Insurance" -msgstr "التأمينات الاجتماعية" - -#: inventory/signals.py:572 -msgid "Government Fees" -msgstr "الرسوم الحكومية" - -#: inventory/signals.py:582 -msgid "Fees and Subscriptions" -msgstr "الرسوم والاشتراكات" - -#: inventory/signals.py:592 -msgid "Office Services Expenses" -msgstr "مصروفات خدمات المكتب" - -#: inventory/signals.py:602 -msgid "Office Supplies and Printing" -msgstr "اللوازم المكتبية والطباعة" - -#: inventory/signals.py:612 -msgid "Hospitality Expenses" -msgstr "مصروفات الضيافة" - -#: inventory/signals.py:622 -msgid "Bank Commissions" -msgstr "عمولات البنوك" - -#: 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:642 -msgid "Transportation Expenses" -msgstr "مصروفات النقل" - -#: inventory/signals.py:649 -msgid "Salaries and Wages" -msgstr "الرواتب والأجور" - -#: inventory/signals.py:650 -msgid "Sales Commissions" -msgstr "عمولات المبيعات" - -#: inventory/signals.py:651 -msgid "Shipping and Customs Clearance" -msgstr "الشحن والتخليص الجمركي" - -#: inventory/signals.py:654 -msgid "Zakat" -msgstr "الزكاة" - -#: inventory/signals.py:655 -msgid "Taxes" -msgstr "الضرائب" - -#: inventory/signals.py:656 -msgid "Foreign Currency Translation" -msgstr "تحويل العملات الأجنبية" - -#: inventory/signals.py:657 -msgid "Interest Expenses" -msgstr "مصروفات الفائدة" - #: inventory/tables.py:59 templates/inventory/car_inventory.html:55 msgid "Exterior Color" msgstr "اللون الخارجي" @@ -1732,6 +1491,247 @@ msgstr "اللون الداخلي" msgid "Age" msgstr "العمر" +#: inventory/tasks.py:30 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/tasks.py:55 +msgid "Prepaid Expenses" +msgstr "المصروفات المدفوعة مقدمًا" + +#: inventory/tasks.py:67 +msgid "Employee Advance" +msgstr "سلفة الموظف" + +#: inventory/tasks.py:78 +msgid "VAT Receivable" +msgstr "ضريبة القيمة المضافة المستحقة" + +#: inventory/tasks.py:88 +#: 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/tasks.py:100 +#: 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/tasks.py:112 +msgid "Investments" +msgstr "الاستثمارات" + +#: inventory/tasks.py:149 +#: 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/tasks.py:163 +#: 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/tasks.py:175 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/tasks.py:187 +#: 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/tasks.py:199 +msgid "Long-Term Notes Payable" +msgstr "أوراق الدفع طويلة الأجل" + +#: inventory/tasks.py:211 +msgid "VAT Payable" +msgstr "ضريبة القيمة المضافة المستحقة الدفع" + +#: inventory/tasks.py:221 +#: 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/tasks.py:231 +msgid "Social Insurance Payable" +msgstr "التأمينات الاجتماعية المستحقة الدفع" + +#: inventory/tasks.py:237 +msgid "End of Service Benefits" +msgstr "مكافأة نهاية الخدمة" + +#: inventory/tasks.py:244 +#: 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/tasks.py:252 +msgid "Registered Capital" +msgstr "رأس المال المسجل" + +#: inventory/tasks.py:255 +msgid "Additional Paid-In Capital" +msgstr "رأس المال المدفوع الإضافي" + +#: inventory/tasks.py:258 +msgid "Opening Balances" +msgstr "الأرصدة الافتتاحية" + +#: inventory/tasks.py:263 +msgid "Statutory Reserve" +msgstr "الاحتياطي النظامي" + +#: inventory/tasks.py:266 +msgid "Foreign Currency Translation Reserve" +msgstr "احتياطي تحويل العملات الأجنبية" + +#: inventory/tasks.py:273 +msgid "Operating Profits and Losses" +msgstr "الأرباح والخسائر التشغيلية" + +#: inventory/tasks.py:284 +msgid "Retained Earnings (or Losses)" +msgstr "الأرباح المحتجزة (أو الخسائر)" + +#: inventory/tasks.py:294 +msgid "Sales Revenue" +msgstr "إيرادات المبيعات" + +#: inventory/tasks.py:306 +#: 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/tasks.py:318 +msgid "Unearned Income" +msgstr "الدخل غير المكتسب" + +#: inventory/tasks.py:324 +msgid "Sales/Service Revenue" +msgstr "إيرادات المبيعات/الخدمات" + +#: inventory/tasks.py:327 +msgid "Non-Operating Revenues" +msgstr "الإيرادات غير التشغيلية" + +#: inventory/tasks.py:335 inventory/tasks.py:516 +#: 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/tasks.py:348 +msgid "Accrued Expenses" +msgstr "المصروفات المستحقة" + +#: inventory/tasks.py:358 +msgid "Accrued Salaries" +msgstr "الرواتب المستحقة" + +#: inventory/tasks.py:368 +msgid "Rent Expense" +msgstr "مصروف الإيجار" + +#: inventory/tasks.py:380 +msgid "Salaries and Administrative Fees" +msgstr "الرواتب والرسوم الإدارية" + +#: inventory/tasks.py:390 +msgid "Medical Insurance" +msgstr "التأمين الطبي" + +#: inventory/tasks.py:400 +msgid "Marketing and Advertising Expenses" +msgstr "مصروفات التسويق والإعلان" + +#: inventory/tasks.py:410 +msgid "Commissions and Incentives" +msgstr "العمولات والحوافز" + +#: inventory/tasks.py:420 +msgid "Travel Tickets" +msgstr "تذاكر السفر" + +#: inventory/tasks.py:430 +msgid "Social Insurance" +msgstr "التأمينات الاجتماعية" + +#: inventory/tasks.py:440 +msgid "Government Fees" +msgstr "الرسوم الحكومية" + +#: inventory/tasks.py:450 +msgid "Fees and Subscriptions" +msgstr "الرسوم والاشتراكات" + +#: inventory/tasks.py:460 +msgid "Office Services Expenses" +msgstr "مصروفات خدمات المكتب" + +#: inventory/tasks.py:470 +msgid "Office Supplies and Printing" +msgstr "اللوازم المكتبية والطباعة" + +#: inventory/tasks.py:480 +msgid "Hospitality Expenses" +msgstr "مصروفات الضيافة" + +#: inventory/tasks.py:490 +msgid "Bank Commissions" +msgstr "عمولات البنوك" + +#: inventory/tasks.py:500 +#: 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/tasks.py:510 +msgid "Transportation Expenses" +msgstr "مصروفات النقل" + +#: inventory/tasks.py:517 +msgid "Salaries and Wages" +msgstr "الرواتب والأجور" + +#: inventory/tasks.py:518 +msgid "Sales Commissions" +msgstr "عمولات المبيعات" + +#: inventory/tasks.py:519 +msgid "Shipping and Customs Clearance" +msgstr "الشحن والتخليص الجمركي" + +#: inventory/tasks.py:522 +msgid "Zakat" +msgstr "الزكاة" + +#: inventory/tasks.py:523 +msgid "Taxes" +msgstr "الضرائب" + +#: inventory/tasks.py:524 +msgid "Foreign Currency Translation" +msgstr "تحويل العملات الأجنبية" + +#: inventory/tasks.py:525 +msgid "Interest Expenses" +msgstr "مصروفات الفائدة" + #: inventory/utils.py:78 msgid "success" msgstr "ناجحة" @@ -1750,370 +1750,413 @@ msgstr "نسيت كلمة المرور؟" msgid "Car reserved successfully." msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:293 inventory/views.py:2642 +#: inventory/views.py:287 +msgid "Passwords do not match" +msgstr "كلمات المرور غير متطابقة." + +#: inventory/views.py:312 inventory/views.py:2668 msgid "User created successfully" msgstr "تم إنشاء المستخدم بنجاح." -#: inventory/views.py:590 +#: inventory/views.py:608 msgid "Car saved successfully" msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:654 +#: inventory/views.py:672 msgid "VIN number exists" msgstr "رقم الهيكل موجود مسبقاً" -#: inventory/views.py:885 templates/dashboards/manager.html:49 +msgid "Invalid VIN number provided" +msgstr "تم تقديم رقم تعريف مركبة (VIN) غير صالح" + +msgid "VIN not found in all sources" +msgstr "لم يتم العثور على رقم التعريف (VIN) في جميع المصادر" + +msgid "Manufacturer not found in the database" +msgstr "لم يتم العثور على الشركة المصنعة في قاعدة البيانات" + +msgid "Server error occurred" +msgstr "حدث خطأ في الخادم" + +msgid "No image provided" +msgstr "لم يتم تقديم صورة" + +msgid "No QR/Barcode detected" +msgstr "لم يتم اكتشاف رمز QR أو الباركود" + +#: inventory/views.py:903 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:1212 +#: inventory/views.py:1232 msgid "Car finance details saved successfully" msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:1258 -msgid "Car finance details updated successfully." +#: inventory/views.py:1278 +msgid "Car finance details updated successfully" msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:1310 -msgid "Car updated successfully." +#: inventory/views.py:1330 +msgid "Car updated successfully" msgstr "تم تحديث السيارة بنجاح" -#: inventory/views.py:1342 +#: inventory/views.py:1362 msgid "Car deleted successfully" msgstr "تم حذف السيارة بنجاح." -#: inventory/views.py:1378 +#: inventory/views.py:1398 msgid "Location saved successfully" msgstr "تم حفظ يوم الإجازة بنجاح." -#: inventory/views.py:1416 +#: inventory/views.py:1436 msgid "Location updated successfully" msgstr "تم تحديث البريد الإلكتروني بنجاح!" -#: inventory/views.py:1519 +#: inventory/views.py:1541 msgid "Car transfer canceled successfully" msgstr "تم إلغاء نقل السيارة بنجاح." -#: inventory/views.py:1536 +#: inventory/views.py:1558 msgid "Car transfer approved successfully" msgstr "تمت الموافقة على نقل السيارة بنجاح." -#: inventory/views.py:1561 +#: inventory/views.py:1583 msgid "Car transfer rejected successfully" msgstr "تم رفض نقل السيارة بنجاح." -#: inventory/views.py:1573 +#: inventory/views.py:1595 msgid "Car Transfer Completed successfully." msgstr "تم إكمال نقل السيارة بنجاح." -#: inventory/views.py:1642 +#: inventory/views.py:1664 msgid "Custom Card added successfully" msgstr "تم إضافة البطاقة الجمركية بنجاح." -#: inventory/views.py:1683 +#: inventory/views.py:1705 msgid "Registration added successfully" msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1706 +#: inventory/views.py:1728 msgid "This car is already reserved" msgstr "هذه السيارة محجوزة بالفعل." -#: inventory/views.py:1744 +#: inventory/views.py:1766 msgid "Reservation renewed successfully" msgstr "تم تجديد الحجز بنجاح" -#: inventory/views.py:1752 +#: inventory/views.py:1774 msgid "Reservation canceled successfully" msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1757 +#: inventory/views.py:1779 msgid "Invalid action" msgstr "إجراء غير صالح." -#: inventory/views.py:1761 +#: inventory/views.py:1783 msgid "Invalid request method" msgstr "طريقة الطلب غير صالحة" -#: inventory/views.py:1838 +#: inventory/views.py:1860 msgid "Dealer updated successfully" msgstr "تم تحديث المعرض بنجاح." -#: inventory/views.py:1871 templates/header.html:190 +#: inventory/views.py:1893 templates/header.html:190 msgid "customers" msgstr "العملاء" -#: inventory/views.py:2027 -msgid "Customer with this email already exists." +#: inventory/views.py:2053 +msgid "Customer with this email already exists" msgstr "عميل بهذا البريد الإلكتروني موجود بالفعل." -#: inventory/views.py:2052 +#: inventory/views.py:2078 msgid "Customer created successfully" msgstr "تم إنشاء العميل بنجاح." -#: inventory/views.py:2058 +#: inventory/views.py:2084 msgid "Please correct the errors below" msgstr "يرجى تصحيح الأخطاء أدناه." -#: inventory/views.py:2117 +#: inventory/views.py:2143 msgid "Customer updated successfully" msgstr "تم تحديث العميل بنجاح." -#: inventory/views.py:2152 +#: inventory/views.py:2178 msgid "Customer deleted successfully" msgstr "تم حذف العميل بنجاح." -#: inventory/views.py:2244 +#: inventory/views.py:2270 msgid "Vendor created successfully" msgstr "تم إنشاء المورد بنجاح." -#: inventory/views.py:2282 +#: inventory/views.py:2308 msgid "Vendor updated successfully" msgstr "تم تحديث المورد بنجاح" -#: inventory/views.py:2324 +#: inventory/views.py:2350 msgid "Vendor deleted successfully" msgstr "تم حذف المورد بنجاح." -#: inventory/views.py:2409 +#: inventory/views.py:2435 msgid "Group created successfully" msgstr "تم إنشاء المجموعة بنجاح." -#: inventory/views.py:2451 +#: inventory/views.py:2477 msgid "Group updated successfully" msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:2478 +#: inventory/views.py:2504 msgid "Group deleted successfully" msgstr "تم حذف المجموعة بنجاح." -#: inventory/views.py:2512 +#: inventory/views.py:2538 msgid "Permission added successfully" msgstr "تمت إضافة الإذن بنجاح." -#: inventory/views.py:2548 +#: inventory/views.py:2574 msgid "Group added successfully" msgstr "تمت إضافة المجموعة بنجاح." -#: inventory/views.py:2650 +#: inventory/views.py:2676 msgid "The user quota for staff members is not defined. Please contact support" msgstr "لم يتم تحديد الحصة المخصصة لأعضاء الفريق. يرجى الاتصال بالدعم." -#: inventory/views.py:2655 +#: inventory/views.py:2681 msgid "" "You have reached the maximum number of staff users allowed for your plan" msgstr "لقد وصلت إلى الحد الأقصى لعدد أعضاء الفريق المسموح به في خطتك." -#: inventory/views.py:2709 +#: inventory/views.py:2735 msgid "User updated successfully" msgstr "تم تحديث المستخدم بنجاح" -#: inventory/views.py:2761 +#: inventory/views.py:2787 msgid "User deleted successfully" msgstr "تم حذف المستخدم بنجاح." -#: inventory/views.py:2842 +#: inventory/views.py:2868 msgid "An organization with this email already exists." msgstr "توجد بالفعل منظمة بهذا البريد الإلكتروني." -#: inventory/views.py:2870 inventory/views.py:2927 +#: inventory/views.py:2896 inventory/views.py:2953 msgid "Organization created successfully" msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:2961 +#: inventory/views.py:2987 msgid "Organization deleted successfully" msgstr "تم حذف المنظمة بنجاح." -#: inventory/views.py:2964 +#: inventory/views.py:2990 msgid "Unable to delete organization" msgstr "غير قادر على حذف المنظمة" -#: inventory/views.py:3046 +#: inventory/views.py:3072 msgid "Representative created successfully" msgstr "تم إنشاء الخدمة بنجاح." -#: inventory/views.py:3088 +#: inventory/views.py:3114 msgid "Representative updated successfully" msgstr "تم تحديث الخدمة بنجاح." -#: inventory/views.py:3112 +#: inventory/views.py:3138 msgid "Representative deleted successfully" msgstr "تم حذف الخدمة بنجاح!" -#: inventory/views.py:3183 +#: inventory/views.py:3209 msgid "Bank account created successfully" msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:3254 +#: inventory/views.py:3280 msgid "Bank account updated successfully" msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:3290 +#: inventory/views.py:3316 msgid "Bank account deleted successfully" msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:3376 +#: inventory/views.py:3402 msgid "Account created successfully" msgstr "تم إنشاء المجموعة بنجاح." -#: inventory/views.py:3491 +#: inventory/views.py:3517 msgid "Account updated successfully" msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:3519 +#: inventory/views.py:3545 msgid "Account deleted successfully" msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:3631 inventory/views.py:6005 +#: inventory/views.py:3657 inventory/views.py:6031 msgid "Items and Quantities are required" msgstr "المنتجات والكميات مطلوبة" -#: inventory/views.py:3638 inventory/views.py:3643 inventory/views.py:6011 -#: inventory/views.py:6016 +#: inventory/views.py:3664 inventory/views.py:3669 inventory/views.py:6037 +#: inventory/views.py:6042 msgid "Quantity must be greater than zero" msgstr "يجب أن تكون مدة الفاصل الزمني أكبر من 0." -#: inventory/views.py:3652 inventory/views.py:3660 +#: inventory/views.py:3678 inventory/views.py:3686 msgid "Quantity must be less than or equal to the number of cars in stock" msgstr "يجب أن تكون الكمية أقل من أو تساوي عدد السيارات المتوفرة في المخزون" -#: inventory/views.py:3752 +#: inventory/views.py:3778 msgid "Quotation created successfully" msgstr "تم إنشاء عرض السعر بنجاح" -#: inventory/views.py:4010 +#: inventory/views.py:4036 msgid "Quotation is not ready for review" msgstr "العرض غير جاهز للمراجعة." -#: inventory/views.py:4016 +#: inventory/views.py:4042 msgid "Quotation is not ready for approval" msgstr "العرض غير جاهز للموافقة." -#: inventory/views.py:4019 +#: inventory/views.py:4045 msgid "Quotation approved successfully" msgstr "تمت الموافقة على العرض بنجاح." -#: inventory/views.py:4022 +#: inventory/views.py:4048 msgid "Quotation is not ready for rejection" msgstr "العرض غير جاهز للرفض." -#: inventory/views.py:4025 inventory/views.py:4043 +#: inventory/views.py:4051 inventory/views.py:4069 msgid "Quotation canceled successfully" msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:4028 +#: inventory/views.py:4054 msgid "Quotation is not ready for completion" msgstr "العرض غير جاهز للإكمال." -#: inventory/views.py:4032 +#: inventory/views.py:4058 msgid "Quotation is not ready for cancellation" msgstr "العرض غير جاهز للإلغاء." +#: inventory/views.py:4071 msgid "Quotation marked as " msgstr "تم وضع علامة على عرض السعر كـ" +#: inventory/views.py:4485 msgid "fully paid" msgstr "مدفوع بالكامل" +#: inventory/views.py:4488 msgid "Amount exceeds due amount" msgstr "المبلغ يتجاوز المبلغ المستحق" +#: inventory/views.py:4496 inventory/views.py:4606 msgid "Payment created successfully" msgstr "تم إنشاء الدفعة بنجاح" +#: inventory/views.py:4610 msgid "Invoice is not fully paid, Payment cannot be marked as paid" msgstr "لم يتم دفع الفاتورة بالكامل، لا يمكن وضع علامة مدفوعة على الدفعة" +#: inventory/views.py:4808 msgid "Lead created successfully" msgstr "تم إنشاء العميل المتوقع بنجاح" +#: inventory/views.py:4873 msgid "Lead deleted successfully" msgstr "تم حذف العميل المتوقع بنجاح" +#: inventory/views.py:4902 inventory/views.py:4931 msgid "Note added successfully" msgstr "تمت إضافة الملاحظة بنجاح" +#: inventory/views.py:4928 msgid "Notes field is required" msgstr "حقل الملاحظات مطلوب" +#: inventory/views.py:4964 msgid "Note updated successfully" msgstr "تم تحديث الملاحظة بنجاح" +#: inventory/views.py:4990 msgid "Note deleted successfully." msgstr "تم حذف الملاحظة بنجاح." +#: inventory/views.py:5016 msgid "Lead is already converted to customer" msgstr "تم تحويل العميل المتوقع بالفعل إلى عميل" +#: inventory/views.py:5020 msgid "Lead converted to customer successfully" msgstr "تم تحويل العميل المتوقع إلى عميل بنجاح" +#: inventory/views.py:5045 msgid "You do not have permission to schedule lead" msgstr "ليست لديك صلاحية جدولة هذا العميل المتوقع" +#: inventory/views.py:5086 msgid "Lead scheduled and appointment created successfully" msgstr "تمت جدولة العميل المتوقع وإنشاء الموعد بنجاح" +#: inventory/views.py:5116 msgid "Lead transferred successfully" msgstr "تم نقل العميل المتوقع بنجاح" +#: inventory/views.py:5149 msgid "Email Draft successfully" msgstr "تم إنشاء مسودة البريد الإلكتروني بنجاح" -#: inventory/views.py:5156 inventory/views.py:6216 +#: inventory/views.py:5182 inventory/views.py:6242 msgid "Email sent successfully" msgstr "تم إرسال البريد الإلكتروني بنجاح!" -#: inventory/views.py:5385 +#: inventory/views.py:5411 msgid "Opportunity deleted successfully" msgstr "تم حذف الفرصة بنجاح." +#: inventory/views.py:5449 msgid "Opportunity status updated successfully" msgstr "تم تحديث حالة الفرصة بنجاح" +#: inventory/views.py:5506 msgid "Notification marked as read" msgstr "تم تعليم الإشعار كمقروء" +#: inventory/views.py:5563 msgid "Service created successfully" msgstr "تم إنشاء الخدمة بنجاح" +#: inventory/views.py:5607 msgid "Service updated successfully" msgstr "تم تحديث الخدمة بنجاح" -#: inventory/views.py:5837 inventory/views.py:5889 +#: inventory/views.py:5863 inventory/views.py:5915 msgid "Bill updated successfully" msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:5930 +#: inventory/views.py:5956 msgid "Bill is already approved" msgstr "تمت الموافقة على الفاتورة مسبقًا." -#: inventory/views.py:5934 +#: inventory/views.py:5960 msgid "Bill marked as approved successfully" msgstr "تم تحديد الفاتورة كموافقة بنجاح." -#: inventory/views.py:5961 +#: inventory/views.py:5987 msgid "Bill is already paid" msgstr "تم دفع الفاتورة مسبقًا." -#: inventory/views.py:5970 +#: inventory/views.py:5996 msgid "Bill marked as paid successfully" msgstr "تم تحديد الفاتورة كمدفوعة بنجاح." -#: inventory/views.py:5972 +#: inventory/views.py:5998 msgid "Amount paid is not equal to amount due" msgstr "المبلغ المدفوع لا يساوي المبلغ المستحق." -#: inventory/views.py:6077 +#: inventory/views.py:6103 msgid "Bill created successfully" msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:6178 +#: inventory/views.py:6204 msgid "Quotation has no items" msgstr "عرض السعر لا يحتوي على أي عناصر" -#: inventory/views.py:6211 templates/customers/view_customer.html:129 +#: inventory/views.py:6237 templates/customers/view_customer.html:127 #: templates/sales/estimates/estimate_detail.html:79 #: templates/sales/estimates/estimate_send.html:5 #: templates/sales/estimates/sale_order_form.html:171 @@ -2121,33 +2164,41 @@ msgstr "عرض السعر لا يحتوي على أي عناصر" msgid "Quotation" msgstr "عرض سعر" -#: inventory/views.py:6725 +#: inventory/views.py:6751 #: 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:6906 inventory/views.py:6940 inventory/views.py:7000 msgid "Unauthorized" msgstr "غير مصرح" +#: inventory/views.py:7126 msgid "Settings updated" msgstr "تم تحديث الإعدادات" +#: inventory/views.py:7450 msgid "Journal Entry created" msgstr "تم إنشاء قيد اليومية" +#: inventory/views.py:7491 msgid "Journal Entry cannot be deleted" msgstr "لا يمكن حذف قيد اليومية" +#: inventory/views.py:7564 msgid "Ledger is already locked" msgstr "دفتر الأستاذ مقفل بالفعل" +#: inventory/views.py:7591 msgid "Ledger is already Unlocked" msgstr "دفتر الأستاذ غير مقفل بالفعل" +#: inventory/views.py:7620 msgid "Ledger is already posted" msgstr "دفتر الأستاذ تم ترحيله بالفعل" +#: inventory/views.py:7650 msgid "Ledger is already Unposted" msgstr "دفتر الأستاذ لم يتم ترحيله بعد" @@ -2950,7 +3001,7 @@ msgstr "" "عنوان بريدك الإلكتروني." #: templates/administration/display_appointment.html:19 -#: templates/customers/view_customer.html:120 +#: templates/customers/view_customer.html:118 #: templates/email_sender/reminder_email.html:80 #: templates/email_sender/reschedule_email.html:64 #: templates/email_sender/reschedule_email.html:69 @@ -3653,7 +3704,7 @@ msgid "Payment Details" msgstr "تفاصيل الدفع" #: templates/appointment/appointment_client_information.html:96 -#: templates/customers/view_customer.html:118 +#: templates/customers/view_customer.html:116 #: templates/inventory/car_detail.html:230 #: templates/inventory/inventory_stats.html:72 #: templates/inventory/transfer_details.html:74 @@ -3940,7 +3991,7 @@ msgid "Update" msgstr "تحديث" #: templates/crm/leads/lead_detail.html:417 -#: templates/customers/view_customer.html:220 +#: templates/customers/view_customer.html:218 #: templates/inventory/car_detail.html:536 msgid "Error loading form. Please try again later" msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." @@ -4237,22 +4288,22 @@ msgstr "العروض" msgid "Default Address" msgstr "العنوان الافتراضي" -#: templates/customers/view_customer.html:111 +#: templates/customers/view_customer.html:109 msgid "Related" msgstr "مرتبط" -#: templates/customers/view_customer.html:117 +#: templates/customers/view_customer.html:115 #: templates/ledger/bank_accounts/bank_account_list.html:20 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:8 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:8 msgid "Type" msgstr "النوع" -#: templates/customers/view_customer.html:119 +#: templates/customers/view_customer.html:117 msgid "Payment Status" msgstr "حالة الدفع" -#: templates/customers/view_customer.html:157 +#: templates/customers/view_customer.html:155 #: templates/ledger/bills/bill_detail.html:199 #: templates/sales/invoices/invoice_detail.html:80 #: templates/sales/invoices/invoice_detail.html:224 @@ -5466,18 +5517,23 @@ msgstr "وقت بدء الحجز" msgid "Reservation End Time" msgstr "وقت انتهاء الحجز" +#: templates/inventory/scan_vin.html:6 msgid "Scan Vehicle Code" msgstr "مسح رمز السيارة" +#: templates/inventory/scan_vin.html:10 msgid "VIN / Barcode / QR Code" msgstr "رمز VIN / الباركود / رمز QR" +#: templates/inventory/scan_vin.html:14 msgid "Start Scanning" msgstr "ابدأ المسح" +#: templates/inventory/scan_vin.html:22 msgid "Switch Camera" msgstr "تبديل الكاميرا" +#: templates/inventory/scan_vin.html:23 msgid "Scan" msgstr "مسح"