From f3cd624851f0c3fae890d8be9ff7cae6c4b6ea16 Mon Sep 17 00:00:00 2001 From: Marwan Alwali Date: Tue, 25 Feb 2025 14:43:25 +0300 Subject: [PATCH] update --- .../__pycache__/settings.cpython-311.pyc | Bin 8874 -> 9110 bytes inventory/__pycache__/admin.cpython-311.pyc | Bin 8837 -> 8837 bytes inventory/__pycache__/forms.cpython-311.pyc | Bin 40018 -> 40370 bytes inventory/__pycache__/models.cpython-311.pyc | Bin 93547 -> 95072 bytes inventory/__pycache__/urls.cpython-311.pyc | Bin 29868 -> 30009 bytes inventory/__pycache__/views.cpython-311.pyc | Bin 217645 -> 218856 bytes inventory/admin.py | 3 +- .../management/commands/serie_translate.py | 47 +- .../0049_carreservation_reserved_for.py | 22 + ...0050_remove_carreservation_reserved_for.py | 17 + inventory/models.py | 7 + inventory/views.py | 2 +- locale/ar/LC_MESSAGES/django.mo | Bin 221841 -> 221581 bytes locale/ar/LC_MESSAGES/django.po | 1085 +++++++++-------- templates/base.html | 11 +- templates/customers/view_customer.html | 59 +- templates/dashboards/manager.html | 2 +- templates/groups/group_form.html | 2 +- templates/groups/group_permission_form.html | 2 +- templates/inventory/car_detail.html | 16 +- templates/inventory/car_form.html | 12 +- templates/ledger/reports/dashboard.html | 2 +- .../organizations/organization_form.html | 2 +- .../sales/estimates/estimate_detail.html | 4 +- templates/sales/invoices/invoice_detail.html | 2 +- templates/users/user_form.html | 2 +- templates/users/user_group_form.html | 2 +- templates/vendors/vendor_form.html | 2 +- test.txt | 187 ++- 29 files changed, 853 insertions(+), 637 deletions(-) create mode 100644 inventory/migrations/0049_carreservation_reserved_for.py create mode 100644 inventory/migrations/0050_remove_carreservation_reserved_for.py diff --git a/car_inventory/__pycache__/settings.cpython-311.pyc b/car_inventory/__pycache__/settings.cpython-311.pyc index 85e59d4f7039a06cf5c29ec1c98e750d1708d740..9feaae4dfcf1a0c3dd4f898881001e0b7a78781f 100644 GIT binary patch delta 1001 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 diff --git a/inventory/__pycache__/models.cpython-311.pyc b/inventory/__pycache__/models.cpython-311.pyc index ec8b336401dbb896b453bdec923dab46c3b03edb..a38dda2dd98a805c418c280e13900970efe5199c 100644 GIT binary patch delta 24231 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 diff --git a/inventory/__pycache__/urls.cpython-311.pyc b/inventory/__pycache__/urls.cpython-311.pyc index fb809f0861c78b356bbd2cfd191b5f213f882566..717cb8c1ad4b65e407f65406abb3ac847eeaf589 100644 GIT binary patch delta 3503 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 delta 3375 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 diff --git a/inventory/__pycache__/views.cpython-311.pyc b/inventory/__pycache__/views.cpython-311.pyc index 38d47dd99ff1c567be56833c6fd70da6858c6bb8..b05fcf3c13a31232a2743e9c5dce22ff2d6fcbb0 100644 GIT binary patch delta 55934 zcmb@v2Yi%86F;7Pl3dEAKp>EWmJkp^?;thw9y-DS#*jN8aF>MV5=uZ15PL%&VJ)D7 ziedpYV(b!M>M|g;!r2mfw75pS$OBxv2l&?;k%7&pkW4J3BiwJ3CvR2kuNh z`9N~Y-O0&`QS|rJjwhEsk#l`Y#=v9gQBg9=8RZo2D2Mu2I0XOJ92)-{?TDd&HFvDX z=CBFiM7yt_)8FT5>S)S8!;!(yN$yNf zmLrRwlijU6tsSlTImO+^)7H_JpHtoKJlT$Her`f}a~wII_Kx=kuq?`JVzeCOLuqibaiy~baQm$-!0tTJv|&fJUtyf z`FBfqFHdhrZ+_08vidms@N=fSucx1*A3tZg`+ElX90T}AEB8RpAjcqnZtXtTGuSbN zpWC>HdWJcM@pD`EaL)+G2!3wo&i9OTjP#6hjN;$f?$Mqxjxqe4LwI8yWBIu~abTQd zoM*gayk~-A0>8_pyb~Q0J(C=hJU$dM*)iEO#WBS*)iKpm;3#0E4(@55>5l3A+|fP5 zGt)7XpU-j6^2~P3_RMk2;oqIyb3Nxd&hyN3%;Vpk-Sa&Thr_eLv4DT)xfgmCITm@& zcbw0^ySNKI7dS5P6gi6U+vn`+UhFA$6nmTwr^n@RF;X}8635!sB+hJsyY0Q|c)7lsU>g<&JXCO2fSAUK> zIQ`DRZ^FGR@O=MZ6W3TBlj0k)Im$WIm9Zz9veW7fKnGy>KNCQJ+V|c{jdHUHJrYP($9~W{wSvxQu+m)K6Q_;egTg$ zLJ=V>Cf3)Ni^n;wn9`h7as9L>IL$?AOB&>RlGBz_+A^+mWGKvIwcqQtuC|&va*bgKqc_b|9Uq z73YNnUnNQ}YC!*MTo^QHLxieccW$JdZ!pd#!nv5qogB(|;`WK z;y-uZN$?BCyNmGlFhNtp2>z1O@22#7LaQ-l>?Eh|rPO=PT6|QMnRtp5@1w-~x#)0l z`HIsYp!9v59xg3kbNYTtKM;|$Z#exyN`J^A&659bIk}pWAC6f4cbtBZ(jTGpaKZYX zQ)?*oQO+Gs+-VZ!#~O(88P)%fQ?@58nt~kpFBkeGr9Ksrq#ro_X-a=40!cq|>LE(4 zjY!h}h@@vpgX`NW$4~V7KMmgg%!M7M!k&vj=r68eENIVf7Gb6R%K2WPd@n{I@i(XM zB@(K$&X)=P&Zw^t>Z=h@|KQZuDE0LQ0{SPB{6+(k|Kc1+D96!;BySN8a%0AmANVFA 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

Mbd}jETS{l>bAs9gEVa;S z6hSQtx9IAbRyj*O+A4#(OYLiuRaG-|vim(9deFTNhqMbz zz0@vCGSg`6K?|Qir}x8l*{!mf8p7z^CR+4NHg!oX%j2uFdf1T zhXO7kG{jNrYVeQ*AwY0DonDKo1cn%c8Fs`V2myjK3-l#HjUc2Ic+anvuj`9u>fJ;V zA0J=kt5_Q1z)Os#JJ_r)td)6V355qEUU>f8w~Mw%r!y2JZqx2&;jDMUvmKweQUUw+M@mc#Ar rizf(&H_k*P0&ptI_7ncDvWb+c$6 diff --git a/inventory/admin.py b/inventory/admin.py index 37402a56..2ecb1b2d 100644 --- a/inventory/admin.py +++ b/inventory/admin.py @@ -9,7 +9,7 @@ from import_export.resources import ModelResource from .models import Car -# Define resource class +# # Define resource class # class CarSerieResource(ModelResource): # class Meta: # model = models.CarSerie @@ -19,6 +19,7 @@ from .models import Car # class CarSeriesAdmin(ExportMixin, admin.ModelAdmin): # resource_class = CarSerieResource + admin.site.register(models.Dealer) admin.site.register(models.Staff) admin.site.register(models.Vendor) diff --git a/inventory/management/commands/serie_translate.py b/inventory/management/commands/serie_translate.py index 8cb887aa..6660ccaf 100644 --- a/inventory/management/commands/serie_translate.py +++ b/inventory/management/commands/serie_translate.py @@ -2,51 +2,8 @@ from django.core.management.base import BaseCommand from inventory.models import CarSerie TRANSLATIONS = { - "Sedan": "سيدان", - "Coupe": "كوبيه", - "SUV 5 doors": "إس يو في - خمسة أبواب", - "Minivan": "ميني فان", - "Hatchback": "هاتشباك", - "Cabriolet": "سطح قابل للطي", - "Hatchback 5-doors": "هاتشباك - خمسة أبواب", - "Hatchback 5 doors": "هاتشباك - خمسة أبواب", - "Hatchback 3-doors": "هاتشباك - ثلاثة أبواب", - "Crossover": "كروس أوفر", - "Wagon": "واغن", - "SUV": "إس يو في", - "Wagon 5 doors": "واغن - خمسة أبواب", - "Roadster": "رودستر", - "SUV 5-doors": "إس يو في - خمسة أبواب", - "Wagon 5-doors": "واغن - خمسة أبواب", - "Sedan 4-doors": "سيدان - أربعة أبواب", - "Hatchback 3 doors": "هاتشباك - ثلاثة أبواب", - "Van": "فان", - "Pickup Double cabin": "بيك أب - غمارتين", - "Compactvan": "كومباكت فان", - "Pickup": "بيك أب", - "Microvan": "ميكروفان", - "Liftback": "ليفت باك", - "SUV 3-doors": "إس يو في - ثلاثة أبواب", - "Coupe 2-doors": "كوبيه - بابين", - "Pickup Single cabin": "بيك أب - غمارة واحدة", - "Crossover 5-doors": "كروس أوفر - خمسة أبواب", - "Coupe-Hardtop": "كوبيه هاردتوب", - "SUV 3 doors": "إس يو في - ثلاثة أبواب", - "Hardtop": "هاردتوب", - "Sedan 2-doors": "سيدان - بابين", - "Minivan 5-doors": "ميني فان - خمسة أبواب", - "Targa": "تارغا", - "SUV opened": "إس يو في مكشوف", - "Pickup One-and-a-half cabin": "بيك أب - غمارة ونصف", - "Sedan 2 doors": "سيدان - بابين", - "AMG Sedan 4-doors": "أي إم جي سيدان - أربعة أبواب", - "Cabriolet 2-doors": "سطح قابل للطي - بابين", - "Fastback": "فاست باك", - "Sedan-Hardtop": "سيدان هاردتوب", - "Regular Cab pickup 2-doors": "بيك أب كابينة عادية - بابين", - "Grand minivan 5-doors": "ميني فان كبير - خمسة أبواب", - "Sedan Long": "سيدان طويل", - "Speedster": "سبيدستر", + "Liftback 5-doors": "ليفت باك - خمسة أبواب", + } diff --git a/inventory/migrations/0049_carreservation_reserved_for.py b/inventory/migrations/0049_carreservation_reserved_for.py new file mode 100644 index 00000000..d4086b3c --- /dev/null +++ b/inventory/migrations/0049_carreservation_reserved_for.py @@ -0,0 +1,22 @@ +# Generated by Django 5.1.6 on 2025-02-24 17:25 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventory', '0048_remove_dealersettings_bill_payable_account_and_more'), + migrations.swappable_dependency(settings.DJANGO_LEDGER_CUSTOMER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='carreservation', + name='reserved_for', + field=models.ForeignKey(default='dd747dc3-39bc-411f-a17d-c930a50220fe', on_delete=django.db.models.deletion.CASCADE, related_name='reservations', to=settings.DJANGO_LEDGER_CUSTOMER_MODEL, verbose_name='Reserved For'), + preserve_default=False, + ), + ] diff --git a/inventory/migrations/0050_remove_carreservation_reserved_for.py b/inventory/migrations/0050_remove_carreservation_reserved_for.py new file mode 100644 index 00000000..cfc42e5d --- /dev/null +++ b/inventory/migrations/0050_remove_carreservation_reserved_for.py @@ -0,0 +1,17 @@ +# Generated by Django 5.1.6 on 2025-02-25 01:05 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventory', '0049_carreservation_reserved_for'), + ] + + operations = [ + migrations.RemoveField( + model_name='carreservation', + name='reserved_for', + ), + ] diff --git a/inventory/models.py b/inventory/models.py index 8c3ea81e..7a444303 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -535,9 +535,16 @@ class CarReservation(models.Model): related_name="reservations", verbose_name=_("Reserved By"), ) + # reserved_for = models.ForeignKey( + # CustomerModel, + # on_delete=models.CASCADE, + # related_name="reservations", + # verbose_name=_("Reserved For"), + # ) reserved_at = models.DateTimeField(auto_now_add=True, verbose_name=_("Reserved At")) reserved_until = models.DateTimeField(verbose_name=_("Reserved Until")) + @property def is_active(self): return self.reserved_until > now() diff --git a/inventory/views.py b/inventory/views.py index f3c0dab6..92314872 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -355,7 +355,7 @@ class ManagerDashboard(LoginRequiredMixin, TemplateView): sold_percentage = sold_cars / total_cars * 100 qs = models.Car.objects.values('id_car_make__name').annotate(count=Count('id')).order_by('id_car_make__name') car_by_make = list(qs) - print(qs) + context["dealer"] = dealer context["total_cars"] = total_cars context["total_reservations"] = total_reservations diff --git a/locale/ar/LC_MESSAGES/django.mo b/locale/ar/LC_MESSAGES/django.mo index 79d550aebe8b5270a4a629b2c59733b49fbd4fb2..5ca1afd7a046a157352048cebf4d5ea89cb1d0a7 100644 GIT binary patch delta 51309 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

9#*ZN>I|4o>K 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 Y=?fsEr6WUmRQlpTS~av)w)_SD4^_mEWB>pF diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index 5f8e3ea9..72873b71 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:1786 +#: inventory/models.py:1797 #: 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-02-23 12:44+0300\n" +"POT-Creation-Date: 2025-02-25 04:14+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:337 inventory/tables.py:12 +#: api/models.py:6 inventory/models.py:340 inventory/tables.py:12 #: templates/inventory/car_detail.html:54 templates/inventory/car_form.html:33 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:31 #: templates/inventory/car_inventory.html:53 @@ -37,12 +37,11 @@ msgstr "" msgid "VIN" msgstr "رقم الهيكل" -#: car_inventory/settings.py:161 car_inventory/settings.py:324 +#: car_inventory/settings.py:161 car_inventory/settings.py:325 #: templates/crm/opportunities/opportunity_detail.html:42 #: templates/index.html:100 templates/index.html:104 #: templates/ledger/coa_accounts/account_detail.html:101 #: templates/ledger/coa_accounts/account_detail.html:102 -#: templates/sales/invoices/invoice_detail.html:84 #: templates/sales/invoices/invoice_detail.html:85 #: templates/sales/invoices/invoice_detail.html:137 #: templates/sales/invoices/invoice_detail.html:139 @@ -50,85 +49,85 @@ msgstr "رقم الهيكل" msgid "SAR" msgstr "ريال" -#: car_inventory/settings.py:257 +#: car_inventory/settings.py:258 #: venv/lib/python3.11/site-packages/appointments/settings.py:136 msgid "English" msgstr "الإنجليزية" -#: car_inventory/settings.py:258 +#: car_inventory/settings.py:259 msgid "Arabic" msgstr "العربية" -#: car_inventory/settings.py:347 templates/header.html:348 +#: car_inventory/settings.py:348 templates/header.html:349 #: templates/welcome.html:57 msgid "Haikal" msgstr "هيكل" -#: inventory/forms.py:313 inventory/models.py:676 +#: inventory/forms.py:311 inventory/models.py:686 #: templates/inventory/car_detail.html:117 msgid "Custom Date" msgstr "تاريخ البطاقة الجمركية" -#: inventory/forms.py:383 +#: inventory/forms.py:381 msgid "Both exterior and interior colors must be selected." msgstr "يجب اختيار اللونين الخارجي والداخلي." -#: inventory/forms.py:461 inventory/models.py:1128 inventory/models.py:1459 +#: inventory/forms.py:459 inventory/models.py:1139 inventory/models.py:1470 #: templates/account/email_change.html:5 templates/account/email_change.html:9 msgid "Email Address" msgstr "عنوان البريد الإلكتروني" -#: inventory/forms.py:465 +#: inventory/forms.py:463 #: 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:466 templates/crm/leads/lead_list.html:39 +#: inventory/forms.py:464 templates/crm/leads/lead_list.html:39 #: templates/customers/customer_list.html:35 #: templates/vendors/vendors_list.html:49 msgid "email" msgstr "البريد الإلكتروني" -#: inventory/forms.py:472 +#: inventory/forms.py:470 msgid "You must add an email." msgstr "يجب إضافة بريد إلكتروني." -#: inventory/forms.py:477 inventory/forms.py:481 +#: inventory/forms.py:475 inventory/forms.py:479 #: templates/account/login.html:35 templates/account/login.html:37 #: venv/lib/python3.11/site-packages/django_ledger/forms/auth.py:15 msgid "Password" msgstr "كلمة المرور" -#: inventory/forms.py:488 inventory/forms.py:505 inventory/forms.py:580 -#: inventory/forms.py:601 inventory/forms.py:619 inventory/forms.py:634 +#: inventory/forms.py:486 inventory/forms.py:503 inventory/forms.py:578 +#: inventory/forms.py:599 inventory/forms.py:617 inventory/forms.py:632 #: venv/lib/python3.11/site-packages/django/forms/fields.py:95 msgid "This field is required." msgstr "هذا الحقل مطلوب." -#: inventory/forms.py:494 inventory/forms.py:498 +#: inventory/forms.py:492 inventory/forms.py:496 msgid "Confirm Password" msgstr "تأكيد كلمة المرور" -#: inventory/forms.py:511 +#: inventory/forms.py:509 msgid "I accept the Terms and Privacy Policy" msgstr "أوافق على الشروط وسياسة الخصوصية" -#: inventory/forms.py:520 +#: inventory/forms.py:518 msgid "You must accept the terms and privacy policy." msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." -#: inventory/forms.py:530 +#: inventory/forms.py:528 msgid "An account with this email already exists." msgstr "يوجد بالفعل حساب بهذا البريد الإلكتروني." -#: inventory/forms.py:538 +#: inventory/forms.py:536 msgid "Passwords do not match." msgstr "كلمات المرور غير متطابقة." -#: inventory/forms.py:544 inventory/models.py:293 inventory/models.py:625 -#: inventory/models.py:638 inventory/models.py:935 inventory/models.py:1094 -#: inventory/models.py:1122 templates/administration/manage_service.html:22 +#: inventory/forms.py:542 inventory/models.py:296 inventory/models.py:635 +#: inventory/models.py:648 inventory/models.py:945 inventory/models.py:1105 +#: inventory/models.py:1133 templates/administration/manage_service.html:22 #: templates/administration/service_list.html:23 #: templates/administration/staff_list.html:34 #: templates/administration/user_profile.html:226 @@ -150,40 +149,40 @@ msgstr "كلمات المرور غير متطابقة." msgid "Name" msgstr "الاسم" -#: inventory/forms.py:548 inventory/models.py:852 inventory/models.py:1456 +#: inventory/forms.py:546 inventory/models.py:862 inventory/models.py:1467 msgid "English Name" msgstr "الاسم بالإنجليزية" -#: inventory/forms.py:553 +#: inventory/forms.py:551 msgid "Please enter an English Name." msgstr "يرجى إدخال اسم باللغة الإنجليزية." -#: inventory/forms.py:558 inventory/forms.py:562 inventory/models.py:294 -#: inventory/models.py:626 inventory/models.py:639 inventory/models.py:851 -#: inventory/models.py:936 inventory/models.py:1095 inventory/models.py:1123 -#: inventory/models.py:1455 templates/users/user_detail.html:48 +#: inventory/forms.py:556 inventory/forms.py:560 inventory/models.py:297 +#: inventory/models.py:636 inventory/models.py:649 inventory/models.py:861 +#: inventory/models.py:946 inventory/models.py:1106 inventory/models.py:1134 +#: inventory/models.py:1466 templates/users/user_detail.html:48 msgid "Arabic Name" msgstr "الاسم بالعربية" -#: inventory/forms.py:567 +#: inventory/forms.py:565 msgid "Please enter an Arabic name." msgstr "يرجى إدخال اسم باللغة العربية." -#: inventory/forms.py:572 inventory/models.py:853 inventory/models.py:937 -#: inventory/models.py:1069 inventory/models.py:1100 inventory/models.py:1127 -#: inventory/models.py:1147 inventory/models.py:1458 +#: inventory/forms.py:570 inventory/models.py:863 inventory/models.py:947 +#: inventory/models.py:1080 inventory/models.py:1111 inventory/models.py:1138 +#: inventory/models.py:1158 inventory/models.py:1469 #: templates/administration/staff_index.html:123 #: templates/crm/leads/lead_list.html:45 #: templates/crm/opportunities/opportunity_detail.html:193 #: templates/customers/customer_list.html:40 -#: templates/customers/view_customer.html:101 +#: templates/customers/view_customer.html:73 #: 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:113 msgid "Phone Number" msgstr "رقم الهاتف" -#: inventory/forms.py:575 templates/administration/display_appointment.html:55 +#: inventory/forms.py:573 templates/administration/display_appointment.html:55 #: templates/appointment/appointment_client_information.html:57 #: templates/crm/leads/lead_detail.html:79 #: templates/dealers/dealer_detail.html:80 @@ -197,39 +196,39 @@ msgstr "رقم الهاتف" msgid "Phone" msgstr "الهاتف" -#: inventory/forms.py:581 +#: inventory/forms.py:579 msgid "Phone number must be in the format 05xxxxxxxx" msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" -#: inventory/forms.py:590 templates/organizations/organization_detail.html:8 +#: inventory/forms.py:588 templates/organizations/organization_detail.html:8 #: templates/organizations/organization_list.html:49 msgid "CRN" msgstr "رقم السجل التجاري" -#: inventory/forms.py:594 inventory/models.py:844 inventory/models.py:1097 -#: inventory/models.py:1450 +#: inventory/forms.py:592 inventory/models.py:854 inventory/models.py:1108 +#: inventory/models.py:1461 msgid "Commercial Registration Number" msgstr "رقم السجل التجاري" -#: inventory/forms.py:608 templates/organizations/organization_detail.html:9 +#: inventory/forms.py:606 templates/organizations/organization_detail.html:9 #: templates/organizations/organization_list.html:54 msgid "VRN" msgstr "الرقم الضريبي" -#: inventory/forms.py:612 inventory/models.py:849 inventory/models.py:1099 -#: inventory/models.py:1453 +#: inventory/forms.py:610 inventory/models.py:859 inventory/models.py:1110 +#: inventory/models.py:1464 msgid "VAT Registration Number" msgstr "رقم التسجيل في ضريبة القيمة المضافة" -#: inventory/forms.py:620 +#: inventory/forms.py:618 msgid "VAT Registration Number must be 15 characters." msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." -#: inventory/forms.py:625 inventory/models.py:855 inventory/models.py:1072 -#: inventory/models.py:1102 inventory/models.py:1130 inventory/models.py:1461 +#: inventory/forms.py:623 inventory/models.py:865 inventory/models.py:1083 +#: inventory/models.py:1113 inventory/models.py:1141 inventory/models.py:1472 #: templates/crm/leads/lead_detail.html:109 #: templates/customers/customer_list.html:50 -#: templates/customers/view_customer.html:96 +#: templates/customers/view_customer.html:68 #: templates/dealers/dealer_detail.html:64 #: templates/organizations/organization_detail.html:11 #: templates/organizations/organization_list.html:64 @@ -240,29 +239,29 @@ msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا msgid "Address" msgstr "العنوان" -#: inventory/forms.py:674 inventory/models.py:1659 +#: inventory/forms.py:672 inventory/models.py:1670 msgid "cash" msgstr "نقداً" -#: inventory/forms.py:675 inventory/models.py:1660 +#: inventory/forms.py:673 inventory/models.py:1671 msgid "credit" msgstr "دائن" -#: inventory/forms.py:676 inventory/models.py:1661 +#: inventory/forms.py:674 inventory/models.py:1672 #: templates/inventory/car_detail.html:159 #: templates/inventory/transfer_car.html:23 msgid "transfer" msgstr "نقل" -#: inventory/forms.py:677 inventory/models.py:1662 +#: inventory/forms.py:675 inventory/models.py:1673 msgid "debit" msgstr "مدين" -#: inventory/forms.py:678 inventory/models.py:1663 +#: inventory/forms.py:676 inventory/models.py:1674 msgid "SADAD" msgstr "سداد" -#: inventory/forms.py:837 inventory/forms.py:854 inventory/models.py:1078 +#: inventory/forms.py:835 inventory/forms.py:852 inventory/models.py:1089 #: templates/crm/opportunities/opportunity_form.html:22 #: templates/sales/estimates/estimate_detail.html:118 #: templates/sales/estimates/estimate_list.html:15 @@ -279,7 +278,7 @@ msgstr "سداد" msgid "Customer" msgstr "العميل" -#: inventory/forms.py:843 inventory/forms.py:853 +#: inventory/forms.py:841 inventory/forms.py:851 #: templates/ledger/bills/bill_detail.html:104 #: templates/sales/estimates/estimate_preview.html:267 #: templates/sales/estimates/sale_order_preview.html:229 @@ -288,73 +287,73 @@ msgstr "العميل" msgid "Terms" msgstr "الشروط" -#: inventory/forms.py:848 inventory/forms.py:852 inventory/models.py:1051 +#: inventory/forms.py:846 inventory/forms.py:850 inventory/models.py:1062 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:11 msgid "Title" msgstr "العنوان" -#: inventory/models.py:112 inventory/models.py:405 inventory/models.py:482 -#: inventory/models.py:527 inventory/models.py:673 inventory/models.py:688 -#: inventory/models.py:732 inventory/models.py:1333 +#: inventory/models.py:115 inventory/models.py:408 inventory/models.py:485 +#: inventory/models.py:530 inventory/models.py:683 inventory/models.py:698 +#: inventory/models.py:742 inventory/models.py:1344 #: templates/crm/leads/lead_list.html:33 #: templates/crm/opportunities/opportunity_form.html:35 #: templates/inventory/transfer_details.html:70 msgid "Car" msgstr "سيارة" -#: inventory/models.py:113 +#: inventory/models.py:116 msgid "Light Commercial" msgstr "مركبات تجارية خفيفة" -#: inventory/models.py:114 +#: inventory/models.py:117 msgid "Heavy-Duty Tractors" msgstr "جرارات ثقيلة" -#: inventory/models.py:115 +#: inventory/models.py:118 msgid "Trailers" msgstr "مقطورات" -#: inventory/models.py:116 +#: inventory/models.py:119 msgid "Medium Trucks" msgstr "شاحنات متوسطة" -#: inventory/models.py:117 +#: inventory/models.py:120 msgid "Buses" msgstr "حافلات" -#: inventory/models.py:118 +#: inventory/models.py:121 msgid "Motorcycles" msgstr "دراجات نارية" -#: inventory/models.py:119 +#: inventory/models.py:122 msgid "Buggy" msgstr "باجي" -#: inventory/models.py:120 +#: inventory/models.py:123 msgid "Moto ATV" msgstr "موتو ATV" -#: inventory/models.py:121 +#: inventory/models.py:124 msgid "Scooters" msgstr "دراجات سكوتر" -#: inventory/models.py:122 +#: inventory/models.py:125 msgid "Karting" msgstr "كارتينج" -#: inventory/models.py:123 +#: inventory/models.py:126 msgid "ATV" msgstr "مركبات ATV" -#: inventory/models.py:124 +#: inventory/models.py:127 msgid "Snowmobiles" msgstr "دراجات الثلج" -#: inventory/models.py:131 +#: inventory/models.py:134 msgid "logo" msgstr "الشعار" -#: inventory/models.py:270 templates/ledger/bills/bill_detail.html:191 +#: inventory/models.py:273 templates/ledger/bills/bill_detail.html:191 #: templates/sales/estimates/estimate_detail.html:133 #: templates/sales/estimates/estimate_list.html:29 #: templates/sales/invoices/invoice_detail.html:192 @@ -366,7 +365,7 @@ msgstr "الشعار" msgid "Draft" msgstr "مسودة" -#: inventory/models.py:271 templates/ledger/bills/bill_detail.html:195 +#: inventory/models.py:274 templates/ledger/bills/bill_detail.html:195 #: templates/sales/estimates/estimate_detail.html:137 #: templates/sales/estimates/estimate_list.html:33 #: templates/sales/invoices/invoice_detail.html:196 @@ -379,31 +378,31 @@ msgstr "مسودة" msgid "Approved" msgstr "تمت الموافقة" -#: inventory/models.py:272 inventory/models.py:993 +#: inventory/models.py:275 inventory/models.py:1004 #: templates/crm/leads/lead_detail.html:46 #: templates/crm/leads/lead_list.html:121 test.txt:46 msgid "Pending" msgstr "قيد الانتظار" -#: inventory/models.py:273 +#: inventory/models.py:276 msgid "Accepted" msgstr "تم القبول" -#: inventory/models.py:274 templates/administration/staff_index.html:83 +#: inventory/models.py:277 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:275 templates/sales/estimates/estimate_preview.html:245 +#: inventory/models.py:278 templates/sales/estimates/estimate_preview.html:245 msgid "Reject" msgstr "رفض" -#: inventory/models.py:276 +#: inventory/models.py:279 msgid "Cancelled" msgstr "ملغى" -#: inventory/models.py:280 templates/dashboards/manager.html:22 -#: templates/dashboards/manager.html:334 +#: inventory/models.py:283 templates/dashboards/manager.html:21 +#: templates/dashboards/manager.html:333 #: templates/inventory/car_inventory.html:99 #: templates/inventory/car_list_view.html:86 #: templates/inventory/cars_list_api.html:19 @@ -411,37 +410,37 @@ msgstr "ملغى" msgid "Available" msgstr "متاح" -#: inventory/models.py:281 templates/dashboards/manager.html:28 -#: templates/dashboards/manager.html:335 +#: inventory/models.py:284 templates/dashboards/manager.html:27 +#: templates/dashboards/manager.html:334 #: templates/inventory/car_inventory.html:101 #: templates/inventory/car_list_view.html:88 #: templates/inventory/cars_list_api.html:21 msgid "Sold" msgstr "تم البيع" -#: inventory/models.py:282 templates/dashboards/manager.html:46 -#: templates/dashboards/manager.html:338 +#: inventory/models.py:285 templates/dashboards/manager.html:45 +#: templates/dashboards/manager.html:337 #: templates/inventory/car_inventory.html:103 msgid "Hold" msgstr "في الانتظار" -#: inventory/models.py:283 templates/dashboards/manager.html:52 -#: templates/dashboards/manager.html:339 +#: inventory/models.py:286 templates/dashboards/manager.html:51 +#: templates/dashboards/manager.html:338 #: templates/inventory/car_inventory.html:107 #: templates/inventory/cars_list_api.html:23 msgid "Damaged" msgstr "تالف" -#: inventory/models.py:284 templates/dashboards/manager.html:34 -#: templates/dashboards/manager.html:336 templates/index.html:24 +#: inventory/models.py:287 templates/dashboards/manager.html:33 +#: templates/dashboards/manager.html:335 templates/index.html:24 #: templates/inventory/car_inventory.html:105 #: templates/inventory/car_list_view.html:87 #: templates/inventory/cars_list_api.html:20 msgid "Reserved" msgstr "محجوزة" -#: inventory/models.py:285 templates/dashboards/manager.html:40 -#: templates/dashboards/manager.html:337 +#: inventory/models.py:288 templates/dashboards/manager.html:39 +#: templates/dashboards/manager.html:336 #: templates/inventory/car_list_view.html:89 #: templates/inventory/car_location_form.html:8 #: templates/inventory/cars_list_api.html:22 @@ -449,18 +448,18 @@ msgstr "محجوزة" msgid "Transfer" msgstr "نقل" -#: inventory/models.py:288 inventory/models.py:992 +#: inventory/models.py:291 inventory/models.py:1003 #: templates/crm/leads/lead_detail.html:44 #: templates/crm/leads/lead_list.html:119 #: templates/inventory/car_inventory.html:68 test.txt:33 msgid "New" msgstr "جديد" -#: inventory/models.py:289 templates/inventory/car_inventory.html:70 +#: inventory/models.py:292 templates/inventory/car_inventory.html:70 msgid "Used" msgstr "مستعمل" -#: inventory/models.py:295 inventory/models.py:707 +#: inventory/models.py:298 inventory/models.py:717 #: templates/administration/manage_day_off.html:63 #: templates/administration/manage_service.html:33 #: templates/administration/user_profile.html:93 @@ -486,7 +485,7 @@ msgstr "مستعمل" msgid "Description" msgstr "الوصف" -#: inventory/models.py:297 inventory/tables.py:19 +#: inventory/models.py:300 inventory/tables.py:19 #: templates/administration/manage_service.html:55 #: templates/administration/service_list.html:25 #: templates/administration/user_profile.html:229 @@ -497,19 +496,19 @@ msgstr "الوصف" msgid "Price" msgstr "السعر" -#: inventory/models.py:299 +#: inventory/models.py:302 msgid "taxable" msgstr "خاضع للضريبة" -#: inventory/models.py:303 +#: inventory/models.py:306 msgid "Unit of Measurement" msgstr "وحدة القياس" -#: inventory/models.py:306 inventory/models.py:339 inventory/models.py:888 +#: inventory/models.py:309 inventory/models.py:342 inventory/models.py:898 msgid "Dealer" msgstr "المعرض" -#: inventory/models.py:311 templates/inventory/transfer_preview.html:229 +#: inventory/models.py:314 templates/inventory/transfer_preview.html:229 #: templates/ledger/bills/bill_detail.html:213 #: templates/sales/estimates/estimate_preview.html:275 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:94 @@ -528,7 +527,7 @@ msgstr "المعرض" msgid "Item" msgstr "العنصر" -#: inventory/models.py:329 inventory/models.py:330 +#: inventory/models.py:332 inventory/models.py:333 #: templates/sales/estimates/estimate_detail.html:191 #: templates/sales/estimates/estimate_preview.html:297 #: templates/sales/estimates/sale_order_preview.html:266 @@ -536,7 +535,7 @@ msgstr "العنصر" msgid "Additional Services" msgstr "الخدمات الإضافية" -#: inventory/models.py:348 inventory/models.py:1469 +#: inventory/models.py:351 inventory/models.py:1480 #: templates/inventory/car_detail.html:95 templates/inventory/car_form.html:135 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:166 #: templates/ledger/bills/bill_list.html:46 @@ -547,7 +546,7 @@ msgstr "الخدمات الإضافية" msgid "Vendor" msgstr "المورد" -#: inventory/models.py:356 inventory/models.py:1160 inventory/tables.py:13 +#: inventory/models.py:359 inventory/models.py:1171 inventory/tables.py:13 #: templates/inventory/car_list_view.html:64 #: templates/inventory/car_list_view.html:109 #: templates/inventory/cars_list_api.html:32 @@ -558,7 +557,7 @@ msgstr "المورد" msgid "Make" msgstr "الصانع" -#: inventory/models.py:364 inventory/models.py:1167 inventory/tables.py:14 +#: inventory/models.py:367 inventory/models.py:1178 inventory/tables.py:14 #: templates/inventory/car_list_view.html:73 #: templates/inventory/car_list_view.html:110 #: templates/inventory/cars_list_api.html:33 @@ -569,7 +568,7 @@ msgstr "الصانع" msgid "Model" msgstr "الموديل" -#: inventory/models.py:366 inventory/models.py:1170 inventory/tables.py:15 +#: inventory/models.py:369 inventory/models.py:1181 inventory/tables.py:15 #: templates/inventory/car_form.html:56 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:61 #: templates/inventory/car_inventory.html:54 @@ -582,20 +581,20 @@ msgstr "الموديل" msgid "Year" msgstr "السنة" -#: inventory/models.py:373 inventory/tables.py:16 +#: inventory/models.py:376 inventory/tables.py:16 #: templates/inventory/car_form.html:66 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:121 msgid "Series" msgstr "السلسلة" -#: inventory/models.py:381 inventory/tables.py:17 +#: inventory/models.py:384 inventory/tables.py:17 #: templates/inventory/car_list_view.html:112 #: templates/sales/sales_list.html:115 msgid "Trim" msgstr "الفئة" -#: inventory/models.py:387 inventory/models.py:1196 inventory/models.py:1341 -#: inventory/models.py:1392 inventory/tables.py:23 +#: inventory/models.py:390 inventory/models.py:1207 inventory/models.py:1352 +#: inventory/models.py:1403 inventory/tables.py:23 #: templates/crm/leads/lead_detail.html:42 #: templates/crm/opportunities/opportunity_detail.html:91 #: templates/inventory/car_detail.html:78 @@ -617,14 +616,14 @@ msgstr "الفئة" msgid "Status" msgstr "الحالة" -#: inventory/models.py:393 inventory/tables.py:11 +#: inventory/models.py:396 inventory/tables.py:11 #: templates/inventory/car_detail.html:82 templates/inventory/car_form.html:148 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:183 #: templates/inventory/car_list.html:177 msgid "Stock Type" msgstr "نوع المخزون" -#: inventory/models.py:395 inventory/models.py:500 +#: inventory/models.py:398 inventory/models.py:503 #: templates/inventory/car_detail.html:100 #: templates/inventory/car_form.html:186 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:232 @@ -632,41 +631,41 @@ msgstr "نوع المخزون" msgid "Remarks" msgstr "ملاحظات" -#: inventory/models.py:396 inventory/tables.py:18 +#: inventory/models.py:399 inventory/tables.py:18 #: templates/inventory/car_detail.html:86 templates/inventory/car_form.html:160 #: ⁨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:397 templates/inventory/car_detail.html:90 +#: inventory/models.py:400 templates/inventory/car_detail.html:90 #: templates/inventory/car_form.html:173 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:215 msgid "Receiving Date" msgstr "تاريخ الاستلام" -#: inventory/models.py:398 +#: inventory/models.py:401 msgid "Hash" msgstr "رمز" -#: inventory/models.py:406 templates/customers/view_customer.html:136 -#: templates/header.html:84 templates/sales/estimates/estimate_form.html:16 +#: inventory/models.py:409 templates/header.html:85 +#: templates/sales/estimates/estimate_form.html:16 msgid "Cars" msgstr "السيارات" -#: inventory/models.py:488 +#: inventory/models.py:491 msgid "From Dealer" msgstr "من معرض" -#: inventory/models.py:494 +#: inventory/models.py:497 msgid "To Dealer" msgstr "الى معرض" -#: inventory/models.py:497 +#: inventory/models.py:500 msgid "Transfer Date" msgstr "تاريخ النقل" -#: inventory/models.py:499 templates/inventory/transfer_preview.html:230 +#: inventory/models.py:502 templates/inventory/transfer_preview.html:230 #: templates/ledger/bills/bill_detail.html:214 #: templates/sales/estimates/estimate_detail.html:159 #: templates/sales/estimates/estimate_preview.html:276 @@ -684,161 +683,161 @@ msgstr "تاريخ النقل" msgid "Quantity" msgstr "الكمية" -#: inventory/models.py:508 inventory/models.py:710 inventory/models.py:1466 +#: inventory/models.py:511 inventory/models.py:720 inventory/models.py:1477 msgid "Created At" msgstr "تاريخ الإنشاء" -#: inventory/models.py:509 inventory/models.py:864 +#: inventory/models.py:512 inventory/models.py:874 msgid "Updated At" msgstr "تم التحديث" -#: inventory/models.py:515 +#: inventory/models.py:518 msgid "Car Transfer Log" msgstr "سجل نقل السيارة" -#: inventory/models.py:516 +#: inventory/models.py:519 msgid "Car Transfer Logs" msgstr "سجلات نقل السيارات" -#: inventory/models.py:533 templates/inventory/car_detail.html:295 +#: inventory/models.py:536 templates/inventory/car_detail.html:295 msgid "Reserved By" msgstr "محجوز بواسطة" -#: inventory/models.py:535 +#: inventory/models.py:544 msgid "Reserved At" msgstr "تاريخ الحجز" -#: inventory/models.py:536 +#: inventory/models.py:545 msgid "Reserved Until" msgstr "محجوز حتى" -#: inventory/models.py:545 templates/inventory/car_detail.html:429 +#: inventory/models.py:555 templates/inventory/car_detail.html:429 msgid "Car Reservation" msgstr "حجز السيارة" -#: inventory/models.py:546 +#: inventory/models.py:556 msgid "Car Reservations" msgstr "حجوزات السيارات" -#: inventory/models.py:556 templates/inventory/car_detail.html:190 +#: inventory/models.py:566 templates/inventory/car_detail.html:190 msgid "Cost Price" msgstr "سعر التكلفة" -#: inventory/models.py:559 templates/inventory/car_detail.html:194 +#: inventory/models.py:569 templates/inventory/car_detail.html:194 msgid "Selling Price" msgstr "سعر البيع" -#: inventory/models.py:564 templates/inventory/car_detail.html:198 +#: inventory/models.py:574 templates/inventory/car_detail.html:198 #: templates/sales/estimates/estimate_detail.html:185 #: templates/sales/invoices/invoice_detail.html:237 msgid "Discount Amount" msgstr "مبلغ الخصم" -#: inventory/models.py:620 inventory/models.py:621 +#: inventory/models.py:630 inventory/models.py:631 msgid "Car Financial Details" msgstr "تفاصيل المالية للسيارة" -#: inventory/models.py:627 inventory/models.py:640 +#: inventory/models.py:637 inventory/models.py:650 msgid "RGB" msgstr "آر جي بي" -#: inventory/models.py:630 inventory/models.py:631 +#: inventory/models.py:640 inventory/models.py:641 #: templates/inventory/add_colors.html:13 msgid "Exterior Colors" msgstr "الألوان الخارجية" -#: inventory/models.py:643 inventory/models.py:644 +#: inventory/models.py:653 inventory/models.py:654 #: templates/inventory/add_colors.html:32 msgid "Interior Colors" msgstr "الألوان الداخلية" -#: inventory/models.py:660 +#: inventory/models.py:670 msgid "Color" msgstr "اللون" -#: inventory/models.py:661 +#: inventory/models.py:671 msgid "Colors" msgstr "الألوان" -#: inventory/models.py:675 templates/inventory/car_detail.html:113 +#: inventory/models.py:685 templates/inventory/car_detail.html:113 msgid "Custom Number" msgstr "رقم البطاقة الجمركية" -#: inventory/models.py:679 templates/inventory/car_detail.html:122 +#: inventory/models.py:689 templates/inventory/car_detail.html:122 #: templates/inventory/car_detail.html:399 msgid "Custom Card" msgstr "البطاقة الجمركية" -#: inventory/models.py:680 +#: inventory/models.py:690 msgid "Custom Cards" msgstr "البطاقات الجمركية" -#: inventory/models.py:694 inventory/models.py:1349 +#: inventory/models.py:704 inventory/models.py:1360 msgid "Owner" msgstr "المالك" -#: inventory/models.py:695 +#: inventory/models.py:705 msgid "Dealer who owns the car." msgstr "التاجر الذي يمتلك السيارة." -#: inventory/models.py:701 inventory/models.py:972 +#: inventory/models.py:711 inventory/models.py:983 msgid "Showroom" msgstr "صالة العرض" -#: inventory/models.py:702 +#: inventory/models.py:712 msgid "Dealer where the car is displayed (can be the owner)." msgstr "التاجر الذي تُعرض السيارة في صالته (يمكن أن يكون المالك)." -#: inventory/models.py:708 +#: inventory/models.py:718 msgid "Optional description about the showroom placement." msgstr "وصف اختياري حول وضع السيارة في صالة العرض." -#: inventory/models.py:711 +#: inventory/models.py:721 msgid "Last Updated" msgstr "آخر تحديث" -#: inventory/models.py:714 +#: inventory/models.py:724 msgid "Car Location" msgstr "موقع السيارة" -#: inventory/models.py:715 +#: inventory/models.py:725 msgid "Car Locations" msgstr "مواقف السيارات" -#: inventory/models.py:734 +#: inventory/models.py:744 msgid "Plate Number" msgstr "رقم اللوحة" -#: inventory/models.py:735 +#: inventory/models.py:745 msgid "Text 1" msgstr "النص 1" -#: inventory/models.py:736 +#: inventory/models.py:746 msgid "Text 2" msgstr "النص 2" -#: inventory/models.py:737 +#: inventory/models.py:747 msgid "Text 3" msgstr "النص 3" -#: inventory/models.py:738 templates/inventory/car_detail.html:138 +#: inventory/models.py:748 templates/inventory/car_detail.html:138 msgid "Registration Date" msgstr "تاريخ التسجيل" -#: inventory/models.py:741 templates/inventory/car_detail.html:132 +#: inventory/models.py:751 templates/inventory/car_detail.html:132 #: templates/inventory/car_detail.html:144 #: templates/inventory/car_detail.html:414 msgid "Registration" msgstr "التسجيل" -#: inventory/models.py:742 +#: inventory/models.py:752 msgid "Registrations" msgstr "تسجيل السيارات" -#: inventory/models.py:750 inventory/models.py:939 inventory/models.py:1074 -#: inventory/models.py:1107 inventory/models.py:1201 inventory/models.py:1354 -#: inventory/models.py:1374 inventory/models.py:1396 inventory/models.py:1419 -#: inventory/models.py:1436 templates/crm/leads/lead_detail.html:91 +#: inventory/models.py:760 inventory/models.py:949 inventory/models.py:1085 +#: inventory/models.py:1118 inventory/models.py:1212 inventory/models.py:1365 +#: inventory/models.py:1385 inventory/models.py:1407 inventory/models.py:1430 +#: inventory/models.py:1447 templates/crm/leads/lead_detail.html:91 #: templates/sales/estimates/estimate_list.html:18 #: templates/sales/invoices/invoice_list.html:19 #: templates/sales/journals/journal_list.html:19 @@ -848,32 +847,32 @@ msgstr "تسجيل السيارات" msgid "Created" msgstr "تاريخ الإنشاء" -#: inventory/models.py:751 inventory/models.py:940 inventory/models.py:1075 -#: inventory/models.py:1108 inventory/models.py:1203 inventory/models.py:1355 -#: inventory/models.py:1375 inventory/models.py:1397 inventory/models.py:1420 +#: inventory/models.py:761 inventory/models.py:950 inventory/models.py:1086 +#: inventory/models.py:1119 inventory/models.py:1214 inventory/models.py:1366 +#: inventory/models.py:1386 inventory/models.py:1408 inventory/models.py:1431 #: 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:858 inventory/models.py:1105 inventory/models.py:1464 +#: inventory/models.py:868 inventory/models.py:1116 inventory/models.py:1475 msgid "Logo" msgstr "الشعار" -#: inventory/models.py:863 +#: inventory/models.py:873 msgid "Joined At" msgstr "انضم في" -#: inventory/models.py:889 +#: inventory/models.py:899 msgid "Dealers" msgstr "المعارض" -#: inventory/models.py:923 templates/header.html:25 +#: inventory/models.py:933 templates/header.html:26 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3214 msgid "Manager" msgstr "مدير" -#: inventory/models.py:924 inventory/signals.py:138 templates/header.html:30 -#: templates/header.html:67 templates/header.html:72 +#: inventory/models.py:934 inventory/signals.py:143 templates/header.html:31 +#: templates/header.html:68 templates/header.html:73 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:440 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:526 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:521 @@ -881,92 +880,92 @@ msgstr "مدير" msgid "Inventory" msgstr "المخزن" -#: inventory/models.py:925 +#: inventory/models.py:935 msgid "Accountant" msgstr "محاسب" -#: inventory/models.py:926 templates/header.html:35 templates/header.html:152 +#: inventory/models.py:936 templates/header.html:36 templates/header.html:153 msgid "Sales" msgstr "المبيعات" -#: inventory/models.py:927 +#: inventory/models.py:937 msgid "Coordinator" msgstr "المنسق" -#: inventory/models.py:928 +#: inventory/models.py:938 msgid "Receptionist" msgstr "موظف الاستقبال" -#: inventory/models.py:929 +#: inventory/models.py:939 msgid "Agent" msgstr "عميل" -#: inventory/models.py:938 +#: inventory/models.py:948 msgid "Staff Type" msgstr "نوع الموظف" -#: inventory/models.py:961 inventory/models.py:962 +#: inventory/models.py:972 inventory/models.py:973 #: templates/crm/opportunities/opportunity_detail.html:234 #: templates/crm/opportunities/opportunity_form.html:70 #: templates/users/user_form.html:4 templates/users/user_list.html:5 msgid "Staff" msgstr "الموظفون" -#: inventory/models.py:970 +#: inventory/models.py:981 msgid "Referrals" msgstr "إحالات" -#: inventory/models.py:971 inventory/models.py:1016 +#: inventory/models.py:982 inventory/models.py:1027 msgid "WhatsApp" msgstr "واتساب" -#: inventory/models.py:973 +#: inventory/models.py:984 msgid "TikTok" msgstr "تيك توك" -#: inventory/models.py:974 +#: inventory/models.py:985 msgid "Instagram" msgstr "إنستغرام" -#: inventory/models.py:975 +#: inventory/models.py:986 msgid "X" msgstr "إكس" -#: inventory/models.py:976 +#: inventory/models.py:987 msgid "Facebook" msgstr "فيسبوك" -#: inventory/models.py:977 +#: inventory/models.py:988 msgid "Motory" msgstr "موتري" -#: inventory/models.py:978 +#: inventory/models.py:989 msgid "Influencers" msgstr "المؤثرون" -#: inventory/models.py:979 +#: inventory/models.py:990 msgid "Youtube" msgstr "يوتيوب" -#: inventory/models.py:980 +#: inventory/models.py:991 msgid "Campaign" msgstr "حملة" -#: inventory/models.py:984 +#: inventory/models.py:995 msgid "Walk In" msgstr "زيارة مباشرة" -#: inventory/models.py:985 +#: inventory/models.py:996 msgid "Toll Free" msgstr "رقم مجاني" -#: inventory/models.py:986 +#: inventory/models.py:997 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:112 msgid "Website" msgstr "الموقع الإلكتروني" -#: inventory/models.py:987 inventory/models.py:1015 inventory/models.py:1064 -#: inventory/models.py:1146 inventory/models.py:1400 +#: inventory/models.py:998 inventory/models.py:1026 inventory/models.py:1075 +#: inventory/models.py:1157 inventory/models.py:1411 #: templates/account/login.html:28 templates/account/login.html:30 #: templates/administration/display_appointment.html:49 #: templates/administration/manage_staff_personal_info.html:29 @@ -975,7 +974,7 @@ msgstr "الموقع الإلكتروني" #: templates/appointment/appointment_client_information.html:45 #: templates/crm/leads/lead_detail.html:73 #: templates/crm/opportunities/opportunity_detail.html:203 -#: templates/customers/view_customer.html:99 +#: templates/customers/view_customer.html:71 #: templates/dealers/dealer_detail.html:74 #: templates/groups/group_detail.html:61 #: templates/sales/estimates/estimate_detail.html:122 @@ -990,22 +989,23 @@ msgstr "الموقع الإلكتروني" msgid "Email" msgstr "البريد الإلكتروني" -#: inventory/models.py:988 +#: inventory/models.py:999 msgid "Form" msgstr "نموذج" -#: inventory/models.py:994 templates/crm/leads/lead_detail.html:48 +#: inventory/models.py:1005 templates/crm/leads/lead_detail.html:48 #: templates/crm/leads/lead_list.html:123 msgid "In Progress" msgstr "قيد التنفيذ" -#: inventory/models.py:995 templates/crm/leads/lead_detail.html:50 +#: inventory/models.py:1006 templates/crm/leads/lead_detail.html:50 #: templates/crm/leads/lead_list.html:125 msgid "Qualified" msgstr "مؤهل" -#: inventory/models.py:996 templates/crm/leads/lead_detail.html:52 +#: inventory/models.py:1007 templates/crm/leads/lead_detail.html:52 #: templates/crm/leads/lead_list.html:127 +#: templates/sales/estimates/estimate_detail.html:141 #: templates/sales/estimates/estimate_list.html:37 #: templates/sales/invoices/invoice_list.html:34 test.txt:59 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:347 @@ -1016,269 +1016,269 @@ msgstr "مؤهل" msgid "Canceled" msgstr "ملغى" -#: inventory/models.py:1000 +#: inventory/models.py:1011 msgid "Mr" msgstr "السيد" -#: inventory/models.py:1001 +#: inventory/models.py:1012 msgid "Mrs" msgstr "السيدة" -#: inventory/models.py:1002 +#: inventory/models.py:1013 msgid "Ms" msgstr "الآنسة" -#: inventory/models.py:1003 +#: inventory/models.py:1014 msgid "Miss" msgstr "الآنسة" -#: inventory/models.py:1004 +#: inventory/models.py:1015 msgid "Dr" msgstr "الدكتور" -#: inventory/models.py:1005 +#: inventory/models.py:1016 msgid "Prof" msgstr "الأستاذ" -#: inventory/models.py:1006 +#: inventory/models.py:1017 msgid "Prince" msgstr "الأمير" -#: inventory/models.py:1007 +#: inventory/models.py:1018 msgid "Princess" msgstr "الأميرة" -#: inventory/models.py:1008 +#: inventory/models.py:1019 msgid "Company" msgstr "الشركة" -#: inventory/models.py:1009 +#: inventory/models.py:1020 msgid "N/A" msgstr "غير متوفر" -#: inventory/models.py:1013 +#: inventory/models.py:1024 msgid "Call" msgstr "مكالمة" -#: inventory/models.py:1014 +#: inventory/models.py:1025 msgid "SMS" msgstr "رسالة نصية" -#: inventory/models.py:1017 +#: inventory/models.py:1028 msgid "Visit" msgstr "زيارة" -#: inventory/models.py:1018 templates/inventory/car_form.html:23 +#: inventory/models.py:1029 templates/inventory/car_form.html:23 msgid "Add Car" msgstr "إضافة سيارة" -#: inventory/models.py:1019 +#: inventory/models.py:1030 msgid "Sale Car" msgstr "بيع سيارة" -#: inventory/models.py:1020 templates/inventory/reserve_car.html:6 +#: inventory/models.py:1031 templates/inventory/reserve_car.html:6 #: templates/inventory/reserve_car.html:9 msgid "Reserve Car" msgstr "حجز السيارة" -#: inventory/models.py:1021 templates/inventory/transfer_car.html:4 +#: inventory/models.py:1032 templates/inventory/transfer_car.html:4 msgid "Transfer Car" msgstr "نقل السيارة" -#: inventory/models.py:1022 +#: inventory/models.py:1033 msgid "Remove Car" msgstr "إزالة السيارة" -#: inventory/models.py:1023 +#: inventory/models.py:1034 #: templates/crm/opportunities/opportunity_detail.html:19 #: templates/sales/estimates/estimate_form.html:5 #: templates/sales/estimates/estimate_form.html:9 msgid "Create Quotation" msgstr "إنشاء عرض" -#: inventory/models.py:1024 +#: inventory/models.py:1035 msgid "Cancel Quotation" msgstr "إلغاء العرض" -#: inventory/models.py:1025 +#: inventory/models.py:1036 msgid "Create Order" msgstr "إنشاء طلب" -#: inventory/models.py:1026 +#: inventory/models.py:1037 msgid "Cancel Order" msgstr "إلغاء الطلب" -#: inventory/models.py:1027 templates/sales/estimates/estimate_detail.html:74 +#: inventory/models.py:1038 templates/sales/estimates/estimate_detail.html:74 #: 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:1028 +#: inventory/models.py:1039 msgid "Cancel Invoice" msgstr "إلغاء الفاتورة" -#: inventory/models.py:1032 +#: inventory/models.py:1043 msgid "Prospect" msgstr "العميل المحتمل" -#: inventory/models.py:1033 +#: inventory/models.py:1044 msgid "Proposal" msgstr "عرض" -#: inventory/models.py:1034 +#: inventory/models.py:1045 msgid "Negotiation" msgstr "مفاوضات" -#: inventory/models.py:1035 +#: inventory/models.py:1046 msgid "Closed Won" msgstr "مغلقة - ناجحة" -#: inventory/models.py:1036 +#: inventory/models.py:1047 msgid "Closed Lost" msgstr "مغلقة - خسارة" -#: inventory/models.py:1040 +#: inventory/models.py:1051 msgid "Low" msgstr "منخفض" -#: inventory/models.py:1041 +#: inventory/models.py:1052 msgid "Medium" msgstr "متوسط" -#: inventory/models.py:1042 +#: inventory/models.py:1053 msgid "High" msgstr "مرتفع" -#: inventory/models.py:1053 inventory/models.py:1144 +#: inventory/models.py:1064 inventory/models.py:1155 #: templates/administration/manage_staff_personal_info.html:18 msgid "First Name" msgstr "الاسم الأول" -#: inventory/models.py:1055 +#: inventory/models.py:1066 msgid "Middle Name" msgstr "اسم الأب" -#: inventory/models.py:1057 inventory/models.py:1145 +#: inventory/models.py:1068 inventory/models.py:1156 #: templates/administration/manage_staff_personal_info.html:24 msgid "Last Name" msgstr "اسم العائلة" -#: inventory/models.py:1059 +#: inventory/models.py:1070 msgid "Male" msgstr "ذكر" -#: inventory/models.py:1059 +#: inventory/models.py:1070 msgid "Female" msgstr "أنثى" -#: inventory/models.py:1061 +#: inventory/models.py:1072 msgid "Gender" msgstr "الجنس" -#: inventory/models.py:1063 +#: inventory/models.py:1074 msgid "Date of Birth" msgstr "تاريخ الميلاد" -#: inventory/models.py:1066 templates/customers/customer_list.html:45 +#: inventory/models.py:1077 templates/customers/customer_list.html:45 msgid "National ID" msgstr "رقم الهوية الوطنية" -#: inventory/models.py:1079 templates/customers/customer_form.html:4 +#: inventory/models.py:1090 templates/customers/customer_form.html:4 #: templates/customers/customer_list.html:4 #: templates/customers/customer_list.html:5 #: templates/customers/customer_list.html:9 msgid "Customers" msgstr "العملاء" -#: inventory/models.py:1111 +#: inventory/models.py:1122 msgid "Organization" msgstr "شركة" -#: inventory/models.py:1112 templates/header.html:187 +#: inventory/models.py:1123 templates/header.html:188 #: templates/organizations/organization_list.html:4 #: templates/organizations/organization_list.html:5 #: templates/organizations/organization_list.html:12 msgid "Organizations" msgstr "الشركات" -#: inventory/models.py:1125 +#: inventory/models.py:1136 #: templates/representatives/representative_detail.html:8 #: templates/representatives/representative_list.html:18 msgid "ID Number" msgstr "رقم الهوية" -#: inventory/models.py:1135 +#: inventory/models.py:1146 msgid "Representative" msgstr "ممثل شركة" -#: inventory/models.py:1136 templates/header.html:195 +#: inventory/models.py:1147 templates/header.html:196 #: templates/representatives/representative_list.html:3 #: templates/representatives/representative_list.html:6 msgid "Representatives" msgstr "ممثلي الشركات" -#: inventory/models.py:1173 templates/crm/leads/lead_list.html:63 +#: inventory/models.py:1184 templates/crm/leads/lead_list.html:63 msgid "Source" msgstr "المصدر" -#: inventory/models.py:1176 templates/crm/leads/lead_list.html:69 +#: inventory/models.py:1187 templates/crm/leads/lead_list.html:69 msgid "Channel" msgstr "القناة" -#: inventory/models.py:1178 +#: inventory/models.py:1189 msgid "address" msgstr "العنوان" -#: inventory/models.py:1185 +#: inventory/models.py:1196 msgid "Assigned" msgstr "مُعين" -#: inventory/models.py:1191 +#: inventory/models.py:1202 msgid "Priority" msgstr "الأولوية" -#: inventory/models.py:1206 +#: inventory/models.py:1217 msgid "Lead" msgstr "فرصة" -#: inventory/models.py:1207 templates/crm/leads/lead_list.html:3 +#: inventory/models.py:1218 templates/crm/leads/lead_list.html:3 #: templates/crm/leads/lead_list.html:7 templates/crm/leads/lead_send.html:5 #: test.txt:21 msgid "Leads" msgstr "الفرص" -#: inventory/models.py:1302 +#: inventory/models.py:1313 msgid "Old Status" msgstr "الحالة القديمة" -#: inventory/models.py:1305 +#: inventory/models.py:1316 msgid "New Status" msgstr "الحالة الجديدة" -#: inventory/models.py:1310 +#: inventory/models.py:1321 msgid "Changed At" msgstr "تم التغيير في" -#: inventory/models.py:1313 +#: inventory/models.py:1324 msgid "Lead Status History" msgstr "تاريخ حالة العميل المحتمل" -#: inventory/models.py:1314 +#: inventory/models.py:1325 msgid "Lead Status Histories" msgstr "تواريخ حالات العملاء المحتملين" -#: inventory/models.py:1322 +#: inventory/models.py:1333 msgid "Probability must be between 0 and 100." msgstr "يجب أن تكون الاحتمالية بين 0 و 100." -#: inventory/models.py:1336 templates/crm/leads/lead_list.html:75 +#: inventory/models.py:1347 templates/crm/leads/lead_list.html:75 #: templates/crm/opportunities/opportunity_detail.html:98 #: templates/crm/opportunities/opportunity_form.html:48 msgid "Stage" msgstr "المرحلة" -#: inventory/models.py:1353 +#: inventory/models.py:1364 #: templates/crm/opportunities/opportunity_detail.html:267 #: templates/crm/opportunities/opportunity_form.html:79 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:100 @@ -1287,64 +1287,64 @@ msgstr "المرحلة" msgid "Closing Date" msgstr "تاريخ الإغلاق" -#: inventory/models.py:1356 +#: inventory/models.py:1367 msgid "Closed" msgstr "مغلقة" -#: inventory/models.py:1359 +#: inventory/models.py:1370 msgid "Opportunity" msgstr "فرصة" -#: inventory/models.py:1360 +#: inventory/models.py:1371 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:8 #: templates/crm/opportunities/opportunity_list.html:8 msgid "Opportunities" msgstr "الفرص" -#: inventory/models.py:1370 inventory/models.py:1378 +#: inventory/models.py:1381 inventory/models.py:1389 #: templates/account/snippets/already_logged_in.html:8 #: templates/crm/leads/lead_detail.html:194 msgid "Note" msgstr "ملاحظة" -#: inventory/models.py:1379 inventory/models.py:1415 +#: inventory/models.py:1390 inventory/models.py:1426 #: templates/crm/leads/lead_detail.html:128 #: templates/crm/leads/lead_detail.html:181 #: templates/crm/leads/lead_detail.html:357 -#: templates/customers/view_customer.html:118 -#: templates/customers/view_customer.html:230 +#: templates/customers/view_customer.html:90 +#: templates/customers/view_customer.html:186 #: 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" msgstr "ملاحظات" -#: inventory/models.py:1388 +#: inventory/models.py:1399 msgid "From Email" msgstr "من البريد الإلكتروني" -#: inventory/models.py:1389 +#: inventory/models.py:1400 msgid "To Email" msgstr "إلى البريد الإلكتروني" -#: inventory/models.py:1390 +#: inventory/models.py:1401 msgid "Subject" msgstr "الموضوع" -#: inventory/models.py:1391 inventory/models.py:1434 +#: inventory/models.py:1402 inventory/models.py:1445 msgid "Message" msgstr "رسالة" -#: inventory/models.py:1401 templates/crm/leads/lead_detail.html:129 +#: inventory/models.py:1412 templates/crm/leads/lead_detail.html:129 #: templates/crm/leads/lead_detail.html:234 msgid "Emails" msgstr "رسائل البريد الإلكتروني" -#: inventory/models.py:1413 +#: inventory/models.py:1424 msgid "Activity Type" msgstr "نوع النشاط" -#: inventory/models.py:1423 templates/crm/leads/lead_detail.html:127 -#: templates/dealers/activity_log.html:11 templates/header.html:456 +#: inventory/models.py:1434 templates/crm/leads/lead_detail.html:127 +#: templates/dealers/activity_log.html:11 templates/header.html:457 #: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:384 #: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:388 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:10 @@ -1353,81 +1353,82 @@ msgstr "نوع النشاط" msgid "Activity" msgstr "النشاط" -#: inventory/models.py:1424 templates/crm/leads/lead_detail.html:134 +#: inventory/models.py:1435 templates/crm/leads/lead_detail.html:134 msgid "Activities" msgstr "الأنشطة" -#: inventory/models.py:1435 +#: inventory/models.py:1446 msgid "Is Read" msgstr "تمت قراءته" -#: inventory/models.py:1439 +#: inventory/models.py:1450 msgid "Notification" msgstr "إشعار" -#: inventory/models.py:1440 templates/crm/notifications_history.html:6 +#: inventory/models.py:1451 templates/crm/notifications_history.html:6 #: templates/notifications.html:13 msgid "Notifications" msgstr "الإشعارات" -#: inventory/models.py:1457 templates/vendors/view_vendor.html:49 +#: inventory/models.py:1468 templates/vendors/view_vendor.html:49 msgid "Contact Person" msgstr "الشخص المسؤول" -#: inventory/models.py:1470 templates/vendors/vendor_form.html:4 +#: inventory/models.py:1481 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:1669 inventory/models.py:1699 +#: inventory/models.py:1680 inventory/models.py:1710 msgid "amount" msgstr "المبلغ" -#: inventory/models.py:1672 +#: inventory/models.py:1683 msgid "method" msgstr "طريقة" -#: inventory/models.py:1675 +#: inventory/models.py:1686 msgid "reference number" msgstr "رقم المرجع" -#: inventory/models.py:1677 +#: inventory/models.py:1688 msgid "date" msgstr "التاريخ" -#: inventory/models.py:1687 +#: inventory/models.py:1698 msgid "payment" msgstr "الدفعة" -#: inventory/models.py:1688 templates/header.html:144 +#: inventory/models.py:1699 templates/header.html:145 msgid "payments" msgstr "المدفوعات" -#: inventory/models.py:1701 +#: inventory/models.py:1712 msgid "reason" msgstr "السبب" -#: inventory/models.py:1702 +#: inventory/models.py:1713 msgid "refund date" msgstr "تاريخ الاسترداد" -#: inventory/models.py:1705 +#: inventory/models.py:1716 msgid "refund" msgstr "استرداد" -#: inventory/models.py:1706 +#: inventory/models.py:1717 msgid "refunds" msgstr "استردادات" -#: inventory/models.py:1730 templates/sales/estimates/estimate_preview.html:257 +#: inventory/models.py:1741 templates/sales/estimates/estimate_preview.html:257 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3145 #: 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:1736 templates/plans/create_order.html:29 +#: inventory/models.py:1747 templates/customers/view_customer.html:148 +#: templates/plans/create_order.html:29 #: templates/sales/invoices/invoice_create.html:5 #: templates/sales/invoices/invoice_detail.html:60 #: templates/sales/payments/payment_list.html:21 @@ -1438,258 +1439,258 @@ msgstr "تقدير" msgid "Invoice" msgstr "فاتورة" -#: inventory/signals.py:114 templates/ledger/reports/dashboard.html:32 +#: inventory/signals.py:119 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/signals.py:126 +#: inventory/signals.py:131 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:41 msgid "Accounts Receivable" msgstr "الحسابات المدينة" -#: inventory/signals.py:151 +#: inventory/signals.py:156 msgid "Prepaid Expenses" msgstr "المصروفات المدفوعة مقدمًا" -#: inventory/signals.py:163 +#: inventory/signals.py:168 msgid "Employee Advance" msgstr "سلفة الموظف" -#: inventory/signals.py:174 +#: inventory/signals.py:179 msgid "VAT Receivable" msgstr "ضريبة القيمة المضافة المستحقة" -#: inventory/signals.py:184 +#: inventory/signals.py:189 #: 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:196 +#: inventory/signals.py:201 #: 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:208 +#: inventory/signals.py:213 msgid "Investments" msgstr "الاستثمارات" -#: inventory/signals.py:245 +#: inventory/signals.py:250 #: 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:259 +#: inventory/signals.py:264 #: 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:271 +#: inventory/signals.py:276 #: 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:283 +#: inventory/signals.py:288 #: 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:295 +#: inventory/signals.py:300 msgid "Long-Term Notes Payable" msgstr "أوراق الدفع طويلة الأجل" -#: inventory/signals.py:307 +#: inventory/signals.py:312 msgid "VAT Payable" msgstr "ضريبة القيمة المضافة المستحقة الدفع" -#: inventory/signals.py:317 +#: inventory/signals.py:322 #: 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:327 +#: inventory/signals.py:332 msgid "Social Insurance Payable" msgstr "التأمينات الاجتماعية المستحقة الدفع" -#: inventory/signals.py:333 +#: inventory/signals.py:338 msgid "End of Service Benefits" msgstr "مكافأة نهاية الخدمة" -#: inventory/signals.py:340 +#: inventory/signals.py:345 #: 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:348 +#: inventory/signals.py:353 msgid "Registered Capital" msgstr "رأس المال المسجل" -#: inventory/signals.py:351 +#: inventory/signals.py:356 msgid "Additional Paid-In Capital" msgstr "رأس المال المدفوع الإضافي" -#: inventory/signals.py:354 +#: inventory/signals.py:359 msgid "Opening Balances" msgstr "الأرصدة الافتتاحية" -#: inventory/signals.py:359 +#: inventory/signals.py:364 msgid "Statutory Reserve" msgstr "الاحتياطي النظامي" -#: inventory/signals.py:362 +#: inventory/signals.py:367 msgid "Foreign Currency Translation Reserve" msgstr "احتياطي تحويل العملات الأجنبية" -#: inventory/signals.py:369 +#: inventory/signals.py:374 msgid "Operating Profits and Losses" msgstr "الأرباح والخسائر التشغيلية" -#: inventory/signals.py:380 +#: inventory/signals.py:385 msgid "Retained Earnings (or Losses)" msgstr "الأرباح المحتجزة (أو الخسائر)" -#: inventory/signals.py:390 +#: inventory/signals.py:395 msgid "Sales Revenue" msgstr "إيرادات المبيعات" -#: inventory/signals.py:402 +#: inventory/signals.py:407 #: 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:414 +#: inventory/signals.py:419 msgid "Unearned Income" msgstr "الدخل غير المكتسب" -#: inventory/signals.py:420 +#: inventory/signals.py:425 msgid "Sales/Service Revenue" msgstr "إيرادات المبيعات/الخدمات" -#: inventory/signals.py:423 +#: inventory/signals.py:428 msgid "Non-Operating Revenues" msgstr "الإيرادات غير التشغيلية" -#: inventory/signals.py:431 inventory/signals.py:612 +#: inventory/signals.py:436 inventory/signals.py:617 #: 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:444 +#: inventory/signals.py:449 msgid "Accrued Expenses" msgstr "المصروفات المستحقة" -#: inventory/signals.py:454 +#: inventory/signals.py:459 msgid "Accrued Salaries" msgstr "الرواتب المستحقة" -#: inventory/signals.py:464 +#: inventory/signals.py:469 msgid "Rent Expense" msgstr "مصروف الإيجار" -#: inventory/signals.py:476 +#: inventory/signals.py:481 msgid "Salaries and Administrative Fees" msgstr "الرواتب والرسوم الإدارية" -#: inventory/signals.py:486 +#: inventory/signals.py:491 msgid "Medical Insurance" msgstr "التأمين الطبي" -#: inventory/signals.py:496 +#: inventory/signals.py:501 msgid "Marketing and Advertising Expenses" msgstr "مصروفات التسويق والإعلان" -#: inventory/signals.py:506 +#: inventory/signals.py:511 msgid "Commissions and Incentives" msgstr "العمولات والحوافز" -#: inventory/signals.py:516 +#: inventory/signals.py:521 msgid "Travel Tickets" msgstr "تذاكر السفر" -#: inventory/signals.py:526 +#: inventory/signals.py:531 msgid "Social Insurance" msgstr "التأمينات الاجتماعية" -#: inventory/signals.py:536 +#: inventory/signals.py:541 msgid "Government Fees" msgstr "الرسوم الحكومية" -#: inventory/signals.py:546 +#: inventory/signals.py:551 msgid "Fees and Subscriptions" msgstr "الرسوم والاشتراكات" -#: inventory/signals.py:556 +#: inventory/signals.py:561 msgid "Office Services Expenses" msgstr "مصروفات خدمات المكتب" -#: inventory/signals.py:566 +#: inventory/signals.py:571 msgid "Office Supplies and Printing" msgstr "اللوازم المكتبية والطباعة" -#: inventory/signals.py:576 +#: inventory/signals.py:581 msgid "Hospitality Expenses" msgstr "مصروفات الضيافة" -#: inventory/signals.py:586 +#: inventory/signals.py:591 msgid "Bank Commissions" msgstr "عمولات البنوك" -#: inventory/signals.py:596 -#: templates/ledger/reports/tags/income_statement.html:274 +#: inventory/signals.py:601 +#: 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:606 +#: inventory/signals.py:611 msgid "Transportation Expenses" msgstr "مصروفات النقل" -#: inventory/signals.py:613 +#: inventory/signals.py:618 msgid "Salaries and Wages" msgstr "الرواتب والأجور" -#: inventory/signals.py:614 +#: inventory/signals.py:619 msgid "Sales Commissions" msgstr "عمولات المبيعات" -#: inventory/signals.py:615 +#: inventory/signals.py:620 msgid "Shipping and Customs Clearance" msgstr "الشحن والتخليص الجمركي" -#: inventory/signals.py:618 +#: inventory/signals.py:623 msgid "Zakat" msgstr "الزكاة" -#: inventory/signals.py:619 +#: inventory/signals.py:624 msgid "Taxes" msgstr "الضرائب" -#: inventory/signals.py:620 +#: inventory/signals.py:625 msgid "Foreign Currency Translation" msgstr "تحويل العملات الأجنبية" -#: inventory/signals.py:621 +#: inventory/signals.py:626 msgid "Interest Expenses" msgstr "مصروفات الفائدة" -#: inventory/signals.py:890 inventory/views.py:2038 +#: inventory/signals.py:895 inventory/views.py:1541 msgid "" "The user quota for staff members is not defined. Please contact support." msgstr "لم يتم تحديد الحصة المخصصة لأعضاء الفريق. يرجى الاتصال بالدعم." -#: inventory/signals.py:893 inventory/views.py:2043 +#: inventory/signals.py:898 inventory/views.py:1546 msgid "" "You have reached the maximum number of staff users allowed for your plan." msgstr "لقد وصلت إلى الحد الأقصى لعدد أعضاء الفريق المسموح به في خطتك." @@ -1725,237 +1726,237 @@ msgstr "نسيت كلمة المرور؟" msgid "Car reserved successfully." msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:454 +#: inventory/views.py:447 msgid "VIN number exists" msgstr "رقم الهيكل موجود مسبقاً" -#: inventory/views.py:649 templates/dashboards/manager.html:114 +#: inventory/views.py:642 templates/dashboards/manager.html:113 #: templates/inventory/car_inventory.html:5 #: templates/inventory/inventory_stats.html:5 msgid "inventory" msgstr "المخزون" -#: inventory/views.py:863 +#: inventory/views.py:856 msgid "Car finance details saved successfully." msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:895 +#: inventory/views.py:880 msgid "Car finance details updated successfully." msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:924 +#: inventory/views.py:909 msgid "Car updated successfully." msgstr "تم تحديث السيارة بنجاح" -#: inventory/views.py:936 +#: inventory/views.py:921 msgid "Car deleted successfully." msgstr "تم حذف السيارة بنجاح." -#: inventory/views.py:1018 +#: inventory/views.py:997 msgid "Car transfer canceled successfully." msgstr "تم إلغاء نقل السيارة بنجاح." -#: inventory/views.py:1035 +#: inventory/views.py:1014 msgid "Car transfer approved successfully." msgstr "تمت الموافقة على نقل السيارة بنجاح." -#: inventory/views.py:1046 +#: inventory/views.py:1025 msgid "Car transfer rejected successfully." msgstr "تم رفض نقل السيارة بنجاح." -#: inventory/views.py:1059 +#: inventory/views.py:1037 msgid "Car Transfer Completed successfully." msgstr "تم إكمال نقل السيارة بنجاح." -#: inventory/views.py:1131 +#: inventory/views.py:1069 msgid "Custom Card added successfully." msgstr "تم إضافة البطاقة الجمركية بنجاح." -#: inventory/views.py:1151 +#: inventory/views.py:1089 msgid "Registration added successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1160 +#: inventory/views.py:1098 msgid "This car is already reserved." msgstr "هذه السيارة محجوزة بالفعل." -#: inventory/views.py:1180 +#: inventory/views.py:1118 msgid "Reservation renewed successfully." msgstr "تم تجديد الحجز بنجاح" -#: inventory/views.py:1188 +#: inventory/views.py:1126 msgid "Reservation canceled successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1193 +#: inventory/views.py:1131 msgid "Invalid action." msgstr "إجراء غير صالح." -#: inventory/views.py:1197 +#: inventory/views.py:1135 msgid "Invalid request method." msgstr "طريقة الطلب غير صالحة" -#: inventory/views.py:1234 +#: inventory/views.py:1172 msgid "Dealer updated successfully." msgstr "تم تحديث المعرض بنجاح." -#: inventory/views.py:1254 templates/header.html:180 +#: inventory/views.py:1179 templates/header.html:181 msgid "customers" msgstr "العملاء" -#: inventory/views.py:1345 +#: inventory/views.py:1264 msgid "Customer with this email already exists." msgstr "عميل بهذا البريد الإلكتروني موجود بالفعل." -#: inventory/views.py:1377 +#: inventory/views.py:1296 msgid "Customer created successfully." msgstr "تم إنشاء العميل بنجاح." -#: inventory/views.py:1384 +#: inventory/views.py:1303 msgid "Please correct the errors below." msgstr "يرجى تصحيح الأخطاء أدناه." -#: inventory/views.py:1414 +#: inventory/views.py:1333 msgid "Customer updated successfully." msgstr "تم تحديث العميل بنجاح." -#: inventory/views.py:1435 +#: inventory/views.py:1350 msgid "Customer deleted successfully." msgstr "تم حذف العميل بنجاح." -#: inventory/views.py:1471 +#: inventory/views.py:1381 msgid "Vendor created successfully." msgstr "تم إنشاء المورد بنجاح." -#: inventory/views.py:1491 +#: inventory/views.py:1399 msgid "Vendor updated successfully." msgstr "تم تحديث المورد بنجاح" -#: inventory/views.py:1499 +#: inventory/views.py:1407 msgid "Vendor deleted successfully." msgstr "تم حذف المورد بنجاح." -#: inventory/views.py:1905 +#: inventory/views.py:1436 msgid "Group created successfully." msgstr "تم إنشاء المجموعة بنجاح." -#: inventory/views.py:1926 +#: inventory/views.py:1457 msgid "Group updated successfully." msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:1968 +#: inventory/views.py:1469 msgid "Group deleted successfully." msgstr "تم حذف المجموعة بنجاح." -#: inventory/views.py:1979 +#: inventory/views.py:1480 msgid "Permission added successfully." msgstr "تمت إضافة الإذن بنجاح." -#: inventory/views.py:1996 +#: inventory/views.py:1498 msgid "Group added successfully." msgstr "تمت إضافة المجموعة بنجاح." -#: inventory/views.py:2030 +#: inventory/views.py:1533 msgid "User created successfully." msgstr "تم إنشاء المستخدم بنجاح." -#: inventory/views.py:2073 +#: inventory/views.py:1576 msgid "User updated successfully." msgstr "تم تحديث المستخدم بنجاح" -#: inventory/views.py:2109 +#: inventory/views.py:1612 msgid "User deleted successfully." msgstr "تم حذف المستخدم بنجاح." -#: inventory/views.py:2180 inventory/views.py:2210 +#: inventory/views.py:1681 inventory/views.py:1711 msgid "Organization created successfully." msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:2969 +#: inventory/views.py:2248 msgid "Estimate is not ready for review" msgstr "العرض غير جاهز للمراجعة." -#: inventory/views.py:2975 +#: inventory/views.py:2254 msgid "Estimate is not ready for approval" msgstr "العرض غير جاهز للموافقة." -#: inventory/views.py:2978 +#: inventory/views.py:2257 msgid "Estimate approved successfully." msgstr "تمت الموافقة على العرض بنجاح." -#: inventory/views.py:2981 +#: inventory/views.py:2260 msgid "Estimate is not ready for rejection" msgstr "العرض غير جاهز للرفض." -#: inventory/views.py:2984 inventory/views.py:2994 +#: inventory/views.py:2263 inventory/views.py:2273 msgid "Estimate canceled successfully." msgstr "تم إلغاء العرض بنجاح." -#: inventory/views.py:2987 +#: inventory/views.py:2266 msgid "Estimate is not ready for completion" msgstr "العرض غير جاهز للإكمال." -#: inventory/views.py:2991 +#: inventory/views.py:2270 msgid "Estimate is not ready for cancelation" msgstr "العرض غير جاهز للإلغاء." -#: inventory/views.py:3503 +#: inventory/views.py:2742 msgid "Note deleted successfully." msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:3576 +#: inventory/views.py:2815 msgid "Email Draft successfully!" msgstr "تم حفظ مسودة البريد الإلكتروني بنجاح!" -#: inventory/views.py:3602 inventory/views.py:4215 +#: inventory/views.py:2841 inventory/views.py:3377 msgid "Email sent successfully!" msgstr "تم إرسال البريد الإلكتروني بنجاح!" -#: inventory/views.py:3732 +#: inventory/views.py:2967 msgid "Opportunity deleted successfully." msgstr "تم حذف الفرصة بنجاح." -#: inventory/views.py:3784 +#: inventory/views.py:3001 msgid "Notification marked as read." msgstr "تم تمييز الإشعار كمقروء." -#: inventory/views.py:3810 +#: inventory/views.py:3019 msgid "Service created successfully." msgstr "تم إنشاء الخدمة بنجاح." -#: inventory/views.py:3827 +#: inventory/views.py:3036 msgid "Service updated successfully." msgstr "تم تحديث الخدمة بنجاح." -#: inventory/views.py:3945 inventory/views.py:3970 +#: inventory/views.py:3152 inventory/views.py:3177 msgid "Bill updated successfully." msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:3997 +#: inventory/views.py:3204 msgid "Bill is already approved." msgstr "تمت الموافقة على الفاتورة مسبقًا." -#: inventory/views.py:4001 +#: inventory/views.py:3208 msgid "Bill marked as approved successfully." msgstr "تم تحديد الفاتورة كموافقة بنجاح." -#: inventory/views.py:4011 +#: inventory/views.py:3218 msgid "Bill is already paid." msgstr "تم دفع الفاتورة مسبقًا." -#: inventory/views.py:4020 +#: inventory/views.py:3227 msgid "Bill marked as paid successfully." msgstr "تم تحديد الفاتورة كمدفوعة بنجاح." -#: inventory/views.py:4022 +#: inventory/views.py:3229 msgid "Amount paid is not equal to amount due." msgstr "المبلغ المدفوع لا يساوي المبلغ المستحق." -#: inventory/views.py:4205 +#: inventory/views.py:3367 msgid "Estimate has no items" msgstr "التقدير لا يحتوي على أي عناصر." -#: inventory/views.py:4406 templates/header.html:285 +#: inventory/views.py:3568 templates/header.html:286 #: 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" @@ -2011,6 +2012,8 @@ msgstr "تأكيد" #: templates/crm/leads/schedule_lead.html:18 #: templates/crm/opportunities/opportunity_detail.html:61 #: templates/crm/opportunities/opportunity_form.html:89 +#: templates/groups/group_form.html:35 +#: templates/groups/group_permission_form.html:35 #: templates/inventory/add_colors.html:56 #: templates/inventory/add_custom_card.html:12 #: templates/inventory/car_confirm_delete.html:14 @@ -2026,6 +2029,7 @@ msgstr "تأكيد" #: templates/ledger/bills/bill_update_form.html:18 #: templates/ledger/coa_accounts/account_form.html:32 #: templates/modal/event_details_modal.html:24 +#: templates/organizations/organization_form.html:14 #: templates/representatives/representative_form.html:12 #: templates/sales/estimates/estimate_detail.html:84 #: templates/sales/estimates/estimate_form.html:44 @@ -2033,6 +2037,8 @@ msgstr "تأكيد" #: templates/sales/estimates/estimate_preview.html:244 #: templates/sales/journals/journal_form.html:19 #: templates/two_factor/_wizard_actions.html:5 +#: templates/users/user_form.html:36 templates/users/user_group_form.html:28 +#: templates/vendors/vendor_form.html:38 #: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:22 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_create.html:37 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:205 @@ -2048,7 +2054,7 @@ msgstr "إلغاء" #: templates/account/confirm_login_code..html:35 templates/account/login.html:6 #: templates/account/login.html:21 templates/account/login.html:45 #: templates/account/request_login_code.html:5 templates/account/signup.html:80 -#: templates/header.html:483 templates/welcome.html:77 +#: templates/header.html:486 templates/welcome.html:77 msgid "Sign In" msgstr "تسجيل الدخول" @@ -2405,7 +2411,7 @@ msgstr "إذا لم تقم بإنشاء حساب بعد، يرجى التسجي #: templates/account/login.html:55 templates/account/signup-wizard.html:16 #: templates/account/signup.html:5 templates/account/signup.html:79 -#: templates/header.html:486 templates/welcome.html:78 +#: templates/header.html:489 templates/welcome.html:78 msgid "Sign Up" msgstr "إنشاء حساب" @@ -2418,7 +2424,7 @@ msgid "Mail me a sign-in code" msgstr "أرسل لي رمز تسجيل الدخول عبر البريد الإلكتروني" #: templates/account/logout.html:3 templates/account/logout.html:11 -#: templates/account/logout.html:20 templates/header.html:476 +#: templates/account/logout.html:20 templates/header.html:479 msgid "Sign Out" msgstr "تسجيل الخروج" @@ -2644,13 +2650,26 @@ msgstr "السابق" msgid "Next" msgstr "التالي" -#: templates/account/signup-wizard.html:140 +#: templates/account/signup-wizard.html:102 +#: templates/account/signup-wizard.html:107 +#, fuzzy +#| msgid "Please enter a valid 17-character VIN number." +msgid "Please enter a valid phone number" +msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." + +#: templates/account/signup-wizard.html:138 +#, fuzzy +#| msgid "Passwords do not match." +msgid "Password does not match" +msgstr "كلمات المرور غير متطابقة." + +#: templates/account/signup-wizard.html:246 #: templates/inventory/car_form.html:605 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:654 msgid "Please Wait" msgstr "الرجاء الإنتظار" -#: templates/account/signup-wizard.html:141 +#: templates/account/signup-wizard.html:247 #: templates/inventory/car_form.html:606 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:655 msgid "Loading" @@ -2683,6 +2702,12 @@ msgstr "" "ليس لديك حاليًا أي عنوان بريد إلكتروني مُسجل. يجب عليك إضافة عنوان بريد " "إلكتروني حتى تتمكن من تلقي الإشعارات وإعادة تعيين كلمة المرور وما إلى ذلك." +#: templates/account/user_settings.html:6 +#, fuzzy +#| msgid "User Details" +msgid "User Settings" +msgstr "تفاصيل المستخدم" + #: templates/account/verfied_email_required.html:5 #: templates/account/verfied_email_required.html:19 #: templates/account/verification_sent.html:5 @@ -2737,6 +2762,7 @@ msgstr "" "عنوان بريدك الإلكتروني." #: templates/administration/display_appointment.html:19 +#: templates/customers/view_customer.html:117 #: templates/email_sender/reminder_email.html:80 #: templates/email_sender/reschedule_email.html:64 #: templates/email_sender/reschedule_email.html:69 @@ -2901,7 +2927,7 @@ msgstr "تأكيد الحذف" #: templates/crm/leads/lead_list.html:97 templates/crm/leads/lead_list.html:198 #: templates/crm/opportunities/opportunity_detail.html:11 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:28 -#: templates/customers/view_customer.html:51 +#: templates/customers/view_customer.html:22 #: templates/groups/group_detail.html:109 #: templates/ledger/bank_accounts/bank_account_detail.html:63 #: templates/ledger/bills/bill_list.html:98 @@ -3199,8 +3225,8 @@ msgstr "أعضاء الفريق" #: templates/administration/staff_list.html:25 #: templates/crm/leads/lead_detail.html:184 templates/crm/note_form.html:15 -#: templates/customers/note_form.html:10 -#: templates/customers/view_customer.html:109 +#: templates/customers/note_form.html:6 +#: templates/customers/view_customer.html:81 #: templates/inventory/car_detail.html:125 #: templates/inventory/car_detail.html:147 #: templates/inventory/car_detail.html:163 @@ -3437,6 +3463,7 @@ msgid "Payment Details" msgstr "تفاصيل الدفع" #: templates/appointment/appointment_client_information.html:96 +#: templates/customers/view_customer.html:115 #: templates/inventory/car_detail.html:218 #: templates/inventory/inventory_stats.html:72 #: templates/inventory/transfer_details.html:74 @@ -3659,7 +3686,7 @@ msgid "by" msgstr "بواسطة" #: templates/crm/leads/lead_detail.html:186 -#: templates/customers/view_customer.html:111 +#: templates/customers/view_customer.html:83 msgid "Add Note" msgstr "إضافة ملاحظة" @@ -3673,14 +3700,10 @@ msgstr "تم الإنشاء في" #: templates/crm/leads/lead_detail.html:213 #: templates/crm/leads/schedule_lead.html:5 templates/crm/note_form.html:13 -#: templates/customers/view_customer.html:54 +#: templates/customers/view_customer.html:27 #: templates/items/expenses/expenses_list.html:34 #: templates/items/service/service_list.html:44 #: templates/ledger/bank_accounts/bank_account_list.html:33 -#: templates/ledger/reports/tags/income_statement.html:104 -#: templates/ledger/reports/tags/income_statement.html:178 -#: templates/ledger/reports/tags/income_statement.html:252 -#: templates/ledger/reports/tags/income_statement.html:313 #: venv/lib/python3.11/site-packages/appointment/services.py:170 #: venv/lib/python3.11/site-packages/appointment/views_admin.py:374 #: venv/lib/python3.11/site-packages/appointment/views_admin.py:471 @@ -3722,7 +3745,7 @@ msgid "Update" msgstr "تحديث" #: templates/crm/leads/lead_detail.html:387 -#: templates/customers/view_customer.html:261 +#: templates/customers/view_customer.html:217 #: templates/inventory/car_detail.html:516 msgid "Error loading form. Please try again later" msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." @@ -3760,7 +3783,6 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل الم #: templates/crm/leads/lead_list.html:105 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:158 -#: templates/customers/view_customer.html:31 #: templates/groups/group_detail.html:32 #: templates/inventory/car_detail.html:450 #: templates/inventory/transfer_details.html:47 @@ -3786,7 +3808,6 @@ msgstr "نعم" #: templates/crm/leads/lead_list.html:175 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:155 -#: templates/customers/view_customer.html:26 #: templates/groups/group_detail.html:27 #: templates/inventory/car_detail.html:445 #: templates/inventory/transfer_details.html:24 @@ -3979,15 +4000,11 @@ msgstr "إضافة عميل" msgid "View Customer" msgstr "عرض العميل" -#: templates/customers/view_customer.html:19 -msgid "Are you sure you want to delete this customer?" -msgstr "هل أنت متأكد أنك تريد حذف هذا العميل؟" - -#: templates/customers/view_customer.html:44 +#: templates/customers/view_customer.html:13 msgid "Customer details" msgstr "تفاصيل العميل" -#: templates/customers/view_customer.html:78 +#: templates/customers/view_customer.html:50 #: templates/sales/invoices/invoice_list.html:4 #: templates/sales/invoices/invoice_list.html:9 #: templates/sales/journals/journal_list.html:4 @@ -3998,59 +4015,94 @@ msgstr "تفاصيل العميل" msgid "Invoices" msgstr "الفواتير" -#: templates/customers/view_customer.html:82 +#: templates/customers/view_customer.html:54 #: templates/sales/estimates/estimate_list.html:4 #: templates/sales/estimates/estimate_list.html:8 msgid "Quotations" msgstr "العروض" -#: templates/customers/view_customer.html:93 +#: templates/customers/view_customer.html:65 #: templates/dealers/dealer_detail.html:59 msgid "Default Address" msgstr "العنوان الافتراضي" +#: templates/customers/view_customer.html:108 +#, fuzzy +#| msgid "Created" +msgid "Related" +msgstr "تاريخ الإنشاء" + +#: templates/customers/view_customer.html:114 +#: 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:116 +#, fuzzy +#| msgid "Payment Details" +msgid "Payment Status" +msgstr "تفاصيل الدفع" + +#: templates/customers/view_customer.html:126 +#: templates/sales/estimates/estimate_detail.html:61 +#: templates/sales/estimates/estimate_send.html:5 +#: templates/sales/sales_list.html:117 +msgid "Quotation" +msgstr "عرض سعر" + +#: templates/customers/view_customer.html:154 +#: templates/ledger/bills/bill_detail.html:199 +#: templates/sales/invoices/invoice_detail.html:200 +#: templates/sales/invoices/invoice_list.html:40 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:346 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:303 +msgid "Paid" +msgstr "مدفوع" + #: templates/dashboards/manager.html:17 msgid "Inventory by Status" msgstr "المخزون حسب الحالة" -#: templates/dashboards/manager.html:73 +#: templates/dashboards/manager.html:72 msgid "New Leads and Customers" msgstr "العملاء والفرص الجديدة." -#: templates/dashboards/manager.html:74 +#: templates/dashboards/manager.html:73 msgid "Payment received across all channels" msgstr "تم استلام الدفع عبر جميع القنوات." -#: templates/dashboards/manager.html:79 +#: templates/dashboards/manager.html:78 msgid "New Customers" msgstr "عملاء جدد." -#: templates/dashboards/manager.html:93 +#: templates/dashboards/manager.html:92 msgid "New Leads" msgstr "فرص جديدة." -#: templates/dashboards/manager.html:121 +#: templates/dashboards/manager.html:120 msgid "As of" msgstr "حتى" -#: templates/dashboards/manager.html:126 templates/index.html:94 +#: templates/dashboards/manager.html:125 templates/index.html:94 msgid "inventory value" msgstr "قيمة المخزون" -#: templates/dashboards/manager.html:141 templates/index.html:99 +#: templates/dashboards/manager.html:140 templates/index.html:99 msgid "Profits" msgstr "الأرباح" -#: templates/dashboards/manager.html:156 +#: templates/dashboards/manager.html:155 msgid "Canceled Invoices" msgstr "الفواتير الملغاة." -#: templates/dashboards/manager.html:162 +#: templates/dashboards/manager.html:161 msgid "From last month" msgstr "من الشهر الماضي." -#: templates/dashboards/manager.html:173 -#: templates/ledger/reports/tags/income_statement.html:131 +#: templates/dashboards/manager.html:172 +#: templates/ledger/reports/tags/income_statement.html:114 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:148 msgid "Gross Profit" msgstr "الربح الإجمالي" @@ -4526,14 +4578,6 @@ msgstr "تعديل المجموعة" msgid "Add Group" msgstr "إضافة مجموعة" -#: templates/groups/group_form.html:35 -#: templates/groups/group_permission_form.html:35 -#: templates/organizations/organization_form.html:14 -#: templates/users/user_form.html:36 templates/users/user_group_form.html:28 -#: templates/vendors/vendor_form.html:38 -msgid "cancel" -msgstr "إلغاء" - #: templates/groups/group_list.html:25 msgid "total Users" msgstr "إجمالي المستخدمين" @@ -4589,79 +4633,79 @@ msgstr "إرسال" msgid "You" msgstr "أنت" -#: templates/header.html:17 templates/header.html:22 +#: templates/header.html:18 templates/header.html:23 msgid "Dashboards" msgstr "لوحة القيادة" -#: templates/header.html:40 +#: templates/header.html:41 msgid "CRM" msgstr "إدارة علاقات العملاء" -#: templates/header.html:45 templates/header.html:216 templates/header.html:221 +#: templates/header.html:46 templates/header.html:217 templates/header.html:222 msgid "Financials" msgstr "البيانات المالية" -#: templates/header.html:50 templates/header.html:273 +#: templates/header.html:51 templates/header.html:274 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:42 msgid "Reports" msgstr "التقارير" -#: templates/header.html:76 +#: templates/header.html:77 msgid "add car" msgstr "إضافة سيارة" -#: templates/header.html:91 templates/inventory/car_inventory.html:52 +#: templates/header.html:92 templates/inventory/car_inventory.html:52 msgid "Stock" msgstr "المخزون" -#: templates/header.html:103 templates/header.html:108 +#: templates/header.html:104 templates/header.html:109 msgid "sales" msgstr "المبيعات" -#: templates/header.html:112 +#: templates/header.html:113 msgid "create quotation" msgstr "إنشاء عرض" -#: templates/header.html:120 +#: templates/header.html:121 msgid "quotations" msgstr "العروض" -#: templates/header.html:128 +#: templates/header.html:129 msgid "orders" msgstr "الطلبات" -#: templates/header.html:136 +#: templates/header.html:137 msgid "invoices" msgstr "الفواتير" -#: templates/header.html:164 templates/header.html:169 +#: templates/header.html:165 templates/header.html:170 msgid "crm" msgstr "إدارة علاقات العملاء" -#: templates/header.html:173 +#: templates/header.html:174 msgid "leads" msgstr "الفرص" -#: templates/header.html:225 +#: templates/header.html:226 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:436 #: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:192 msgid "Chart of Accounts" msgstr "قائمة الحسابات" -#: templates/header.html:232 +#: templates/header.html:233 #: templates/ledger/bank_accounts/bank_account_list.html:4 #: templates/ledger/bank_accounts/bank_account_list.html:10 #: venv/lib/python3.11/site-packages/django_ledger/views/bank_account.py:33 msgid "Bank Accounts" msgstr "الحسابات المصرفية" -#: templates/header.html:239 templates/items/service/service_list.html:10 +#: templates/header.html:240 templates/items/service/service_list.html:10 #: venv/lib/python3.11/site-packages/django_ledger/views/item.py:297 msgid "Services" msgstr "الخدمات" -#: templates/header.html:247 templates/items/expenses/expense_create.html:5 +#: templates/header.html:248 templates/items/expenses/expense_create.html:5 #: templates/items/expenses/expense_update.html:5 #: templates/items/expenses/expenses_list.html:4 #: templates/items/expenses/expenses_list.html:10 @@ -4671,19 +4715,19 @@ msgstr "الخدمات" msgid "Expenses" msgstr "المصروفات" -#: templates/header.html:255 +#: templates/header.html:256 msgid "vendors" msgstr "الموردين" -#: templates/header.html:262 +#: templates/header.html:263 msgid "bills" msgstr "الفواتير" -#: templates/header.html:294 +#: templates/header.html:295 msgid "Cash Flow" msgstr "التدفق النقدي" -#: templates/header.html:303 templates/ledger/reports/income_statement.html:31 +#: templates/header.html:304 templates/ledger/reports/income_statement.html:31 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:146 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_update.html:71 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/income_statement.html:31 @@ -4694,7 +4738,7 @@ msgstr "التدفق النقدي" msgid "Income Statement" msgstr "بيان الدخل" -#: templates/header.html:312 templates/ledger/reports/balance_sheet.html:36 +#: templates/header.html:313 templates/ledger/reports/balance_sheet.html:36 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:144 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_update.html:66 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:30 @@ -4706,11 +4750,11 @@ msgstr "بيان الدخل" msgid "Balance Sheet" msgstr "الميزانية العمومية" -#: templates/header.html:444 templates/header.html:448 +#: templates/header.html:445 templates/header.html:449 msgid "profile" msgstr "الملف الشخصي" -#: templates/header.html:453 +#: templates/header.html:454 msgid "Staff & Group" msgstr "الموظفون والمجموعة" @@ -4853,10 +4897,6 @@ msgstr "ينتهي في" #: templates/inventory/car_detail.html:297 #: templates/ledger/coa_accounts/account_detail.html:69 -#: templates/ledger/reports/tags/income_statement.html:95 -#: templates/ledger/reports/tags/income_statement.html:169 -#: templates/ledger/reports/tags/income_statement.html:243 -#: templates/ledger/reports/tags/income_statement.html:304 #: templates/representatives/representative_list.html:20 #: templates/sales/estimates/estimate_list.html:19 #: templates/sales/invoices/invoice_list.html:20 @@ -5407,12 +5447,6 @@ msgstr "إضافة حساب بنكي" msgid "Account Number" msgstr "رقم الحساب" -#: 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/ledger/bank_accounts/bank_account_list.html:39 msgid "No Bank Accounts Found" msgstr "لم يتم العثور على أي حساب بنكي." @@ -5520,14 +5554,6 @@ msgstr "قيد المراجعة" msgid "Declined" msgstr "مرفوض" -#: templates/ledger/bills/bill_detail.html:199 -#: templates/sales/invoices/invoice_detail.html:200 -#: templates/sales/invoices/invoice_list.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:346 -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:303 -msgid "Paid" -msgstr "مدفوع" - #: templates/ledger/bills/bill_detail.html:230 msgid "Vat Amount" msgstr "مبلغ ضريبة القيمة المضافة" @@ -5714,7 +5740,7 @@ msgstr "الوحدة" #: templates/ledger/reports/balance_sheet.html:43 #: templates/ledger/reports/cash_flow_statement.html:38 -#: templates/ledger/reports/components/period_navigator.html:10 +#: templates/ledger/reports/components/period_navigator.html:11 #: templates/ledger/reports/income_statement.html:35 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3158 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:37 @@ -5739,34 +5765,34 @@ msgstr "بيان التدفقات النقدية" msgid "Download PDF" msgstr "تنزيل PDF" -#: templates/ledger/reports/components/period_navigator.html:37 +#: templates/ledger/reports/components/period_navigator.html:47 msgid "Quarter" msgstr "ربع السنة" -#: templates/ledger/reports/components/period_navigator.html:48 +#: templates/ledger/reports/components/period_navigator.html:58 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:26 msgid "Month" msgstr "الشهر" -#: templates/ledger/reports/components/period_navigator.html:63 +#: templates/ledger/reports/components/period_navigator.html:73 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:37 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_ic.html:17 msgid "thru" msgstr "عبر" -#: templates/ledger/reports/components/period_navigator.html:72 +#: templates/ledger/reports/components/period_navigator.html:82 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:41 msgid "Go To Current Month" msgstr "الذهاب إلى الشهر الحالي" -#: templates/ledger/reports/dashboard-copy.html:43 +#: templates/ledger/reports/dashboard-copy.html:42 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:439 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:525 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entity_dashboard.html:50 msgid "Receivables" msgstr "المستحقات" -#: templates/ledger/reports/dashboard-copy.html:75 +#: templates/ledger/reports/dashboard-copy.html:74 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entity_dashboard.html:83 msgid "Payables" msgstr "الحسابات الدائنة" @@ -5906,66 +5932,52 @@ msgstr "صافي الإيرادات التشغيلية" msgid "Less: Cost of Goods Sold" msgstr "ناقص: تكلفة البضائع المباعة" -#: templates/ledger/reports/tags/income_statement.html:102 -#: templates/ledger/reports/tags/income_statement.html:176 -#: templates/ledger/reports/tags/income_statement.html:250 -#: templates/ledger/reports/tags/income_statement.html:311 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:100 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:64 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:58 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:119 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:193 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:267 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:328 -msgid "Detail" -msgstr "التفاصيل" - -#: templates/ledger/reports/tags/income_statement.html:118 +#: templates/ledger/reports/tags/income_statement.html:101 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:135 msgid "Net COGS" msgstr "صافي تكلفة البضائع المباعة" -#: templates/ledger/reports/tags/income_statement.html:139 +#: templates/ledger/reports/tags/income_statement.html:122 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:156 msgid "Operating Expenses" msgstr "المصروفات التشغيلية" -#: templates/ledger/reports/tags/income_statement.html:191 +#: templates/ledger/reports/tags/income_statement.html:157 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:208 msgid "Net Operating Expenses" msgstr "صافي المصروفات التشغيلية" -#: templates/ledger/reports/tags/income_statement.html:205 +#: templates/ledger/reports/tags/income_statement.html:171 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:222 msgid "Net Operating Income (Loss)" msgstr "صافي الدخل التشغيلي (الخسارة)" -#: templates/ledger/reports/tags/income_statement.html:213 +#: templates/ledger/reports/tags/income_statement.html:179 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:230 msgid "Other Revenues" msgstr "إيرادات أخرى" -#: templates/ledger/reports/tags/income_statement.html:265 +#: templates/ledger/reports/tags/income_statement.html:214 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:282 msgid "Net Other Revenues" msgstr "صافي الإيرادات الأخرى" -#: templates/ledger/reports/tags/income_statement.html:326 +#: templates/ledger/reports/tags/income_statement.html:258 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:343 msgid "Net Other Expenses" msgstr "صافي النفقات الأخرى" -#: templates/ledger/reports/tags/income_statement.html:339 +#: templates/ledger/reports/tags/income_statement.html:271 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:356 msgid "Net Other Income (Loss)" msgstr "صافي الدخل الآخر (الخسارة)" -#: templates/ledger/reports/tags/income_statement.html:353 +#: templates/ledger/reports/tags/income_statement.html:285 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:370 msgid "through" msgstr "خلال" -#: templates/ledger/reports/tags/income_statement.html:355 +#: templates/ledger/reports/tags/income_statement.html:287 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:372 msgid "Net Income" msgstr "صافي الدخل" @@ -6539,12 +6551,6 @@ msgstr "هل أنت متأكد أنك تريد إلغاء هذا التقدير msgid "Are you sure ?" msgstr "هل أنت متأكد؟" -#: templates/sales/estimates/estimate_detail.html:61 -#: templates/sales/estimates/estimate_send.html:5 -#: templates/sales/sales_list.html:117 -msgid "Quotation" -msgstr "عرض سعر" - #: templates/sales/estimates/estimate_detail.html:68 msgid "Send Quotation" msgstr "إرسال عرض السعر" @@ -6580,13 +6586,11 @@ msgid "Quotation Status" msgstr "حالة عرض السعر" #: templates/sales/estimates/estimate_detail.html:139 -msgid "completed" +#: templates/sales/estimates/estimate_list.html:39 +#: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:226 +msgid "Completed" msgstr "مكتمل" -#: templates/sales/estimates/estimate_detail.html:141 -msgid "canceled" -msgstr "ملغى" - #: templates/sales/estimates/estimate_detail.html:179 msgid "Vat" msgstr "الضريبة" @@ -6607,11 +6611,6 @@ msgstr "إضافة المزيد" msgid "Status Date" msgstr "تاريخ الحالة" -#: templates/sales/estimates/estimate_list.html:39 -#: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:226 -msgid "Completed" -msgstr "مكتمل" - #: templates/sales/estimates/estimate_list.html:41 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:348 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:227 @@ -11359,6 +11358,16 @@ msgstr "مخطط الحسابات" msgid "CoA Role Default" msgstr "الدور الافتراضي لمخطط الحسابات" +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:100 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:64 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:58 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:119 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:193 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:267 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:328 +msgid "Detail" +msgstr "التفاصيل" + #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:105 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/tags/bank_accounts_table.html:52 msgid "Activate" diff --git a/templates/base.html b/templates/base.html index 00b375de..cb77016a 100644 --- a/templates/base.html +++ b/templates/base.html @@ -52,7 +52,14 @@ - + {% block customCSS %} {% endblock %} @@ -72,7 +79,7 @@ {% block body %} {% endblock body%} - +
{% include 'footer.html' %} diff --git a/templates/customers/view_customer.html b/templates/customers/view_customer.html index c6bcd194..f6b8d5c8 100644 --- a/templates/customers/view_customer.html +++ b/templates/customers/view_customer.html @@ -111,45 +111,54 @@ - - - - + + + -{% for estimate in estimates %} + {% for estimate in estimates %} + + + + +{% endfor %} + {% for invoice in invoices %} + + + + - - +
{% trans 'Type'|upper %}{% trans 'Total'|upper %}{% trans 'Payment Status'|upper %}{% trans 'Fulfilment Status'|upper %}{% trans 'Type'|upper %}{% trans 'Total'|upper %}{% trans 'Payment Status'|upper %} {% trans 'Date'|upper %}
-

{{ estimate.estimate_number }}

+ +

{{ _("Quotation") }}-{{ estimate.estimate_number }}

{{ estimate.revenue_estimate|currency_format }} + + {{ estimate.created }} +
+ + +
+
+ +

{{ _("Invoice") }}-{{ invoice.invoice_number }}

+
{{ invoice.amount_paid|currency_format }} + {% if invoice.is_paid %} - Paid + {{ _("Paid") }} + + + {% endif %} - {% if estimate.status == 'draft' %} - {% trans "Draft" %} - {% elif estimate.status == 'in_review' %} - {% trans "In Review" %} - {% elif estimate.status == 'approved' %} - {% trans "Approved" %} - {% elif estimate.status == 'declined' %} - {% trans "Declined" %} - {% elif estimate.status == 'canceled' %} - {% trans "Canceled" %} - {% elif estimate.status == 'completed' %} - {% trans "Completed" %} - {% elif estimate.status == 'void' %} - {% trans "Void" %} - {% endif %} - {{ estimate.created }}{{ invoice.created }}
diff --git a/templates/dashboards/manager.html b/templates/dashboards/manager.html index 28b6a58a..ddb555d1 100644 --- a/templates/dashboards/manager.html +++ b/templates/dashboards/manager.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load i18n static custom_filters %} +{% load i18n static custom_filters django_ledger%} {% block content %} diff --git a/templates/groups/group_form.html b/templates/groups/group_form.html index dda25677..969b5b66 100644 --- a/templates/groups/group_form.html +++ b/templates/groups/group_form.html @@ -32,7 +32,7 @@
{{ error }}
{% endfor %}
- {% trans "cancel"|capfirst %} + {% trans "Cancel"|capfirst %} - +
+ + +
{% else %} - + {% trans "Expired" %} {% endif %} diff --git a/templates/inventory/car_form.html b/templates/inventory/car_form.html index bc17a57e..bb5ff1d8 100644 --- a/templates/inventory/car_form.html +++ b/templates/inventory/car_form.html @@ -12,11 +12,11 @@ -
+
{% csrf_token %} {% include 'partials/form_errors.html' %} -
+
@@ -34,13 +34,13 @@
-
@@ -190,8 +190,8 @@
- -
+ +
diff --git a/templates/ledger/reports/dashboard.html b/templates/ledger/reports/dashboard.html index caf5b301..d046c195 100644 --- a/templates/ledger/reports/dashboard.html +++ b/templates/ledger/reports/dashboard.html @@ -17,7 +17,7 @@

{% currency_symbol %}{{ tx_digest.group_balance.GROUP_ASSETS | currency_format }}

-

{{ _("Assets") }}

+

{{ _("Assets") }}nmnmnmnmnmnm

{% currency_symbol %}{{ tx_digest.group_balance.GROUP_LIABILITIES | currency_format }}

diff --git a/templates/organizations/organization_form.html b/templates/organizations/organization_form.html index 43831fe4..c5f9955d 100644 --- a/templates/organizations/organization_form.html +++ b/templates/organizations/organization_form.html @@ -11,7 +11,7 @@ {{ form|crispy }}
- {% trans "cancel"|capfirst %} + {% trans "Cancel"|capfirst %}
diff --git a/templates/sales/invoices/invoice_detail.html b/templates/sales/invoices/invoice_detail.html index 9c3cd735..b8397221 100644 --- a/templates/sales/invoices/invoice_detail.html +++ b/templates/sales/invoices/invoice_detail.html @@ -81,7 +81,7 @@

{% trans 'Paid Amount' %}

-

{{invoice.amount_paid}} {{ _("SAR") }}

+

{{invoice.amount_paid}} {{ CURRENCY }}

{{ _("Owned") }} {{invoice.get_amount_open|floatformat}} {{ _("SAR") }}
{{invoice.get_progress_percent}}%
diff --git a/templates/users/user_form.html b/templates/users/user_form.html index c474ca6e..509c0679 100644 --- a/templates/users/user_form.html +++ b/templates/users/user_form.html @@ -33,7 +33,7 @@
{{ error }}
{% endfor %}
- {% trans "cancel"|capfirst %} + {% trans "Cancel"|capfirst %}
-
\ No newline at end of file +
+ + + +"Sedan": "سيدان", + "Coupe": "كوبيه", + "SUV 5 doors": "إس يو في - خمسة أبواب", + "Minivan": "ميني فان", + "Hatchback": "هاتشباك", + "Cabriolet": "سطح قابل للطي", + "Hatchback 5-doors": "هاتشباك - خمسة أبواب", + "Hatchback 5 doors": "هاتشباك - خمسة أبواب", + "Hatchback 3-doors": "هاتشباك - ثلاثة أبواب", + "Crossover": "كروس أوفر", + "Wagon": "واغن", + "SUV": "إس يو في", + "Wagon 5 doors": "واغن - خمسة أبواب", + "Roadster": "رودستر", + "SUV 5-doors": "إس يو في - خمسة أبواب", + "Wagon 5-doors": "واغن - خمسة أبواب", + "Sedan 4-doors": "سيدان - أربعة أبواب", + "Hatchback 3 doors": "هاتشباك - ثلاثة أبواب", + "Van": "فان", + "Pickup Double cabin": "بيك أب - غمارتين", + "Compactvan": "كومباكت فان", + "Pickup": "بيك أب", + "Microvan": "ميكروفان", + "Liftback": "ليفت باك", + "SUV 3-doors": "إس يو في - ثلاثة أبواب", + "Coupe 2-doors": "كوبيه - بابين", + "Pickup Single cabin": "بيك أب - غمارة واحدة", + "Crossover 5-doors": "كروس أوفر - خمسة أبواب", + "Coupe-Hardtop": "كوبيه هاردتوب", + "SUV 3 doors": "إس يو في - ثلاثة أبواب", + "Hardtop": "هاردتوب", + "Sedan 2-doors": "سيدان - بابين", + "Minivan 5-doors": "ميني فان - خمسة أبواب", + "Targa": "تارغا", + "SUV opened": "إس يو في مكشوف", + "Pickup One-and-a-half cabin": "بيك أب - غمارة ونصف", + "Sedan 2 doors": "سيدان - بابين", + "AMG Sedan 4-doors": "أي إم جي سيدان - أربعة أبواب", + "Cabriolet 2-doors": "سطح قابل للطي - بابين", + "Fastback": "فاست باك", + "Sedan-Hardtop": "سيدان هاردتوب", + "Regular Cab pickup 2-doors": "بيك أب كابينة عادية - بابين", + "Grand minivan 5-doors": "ميني فان كبير - خمسة أبواب", + "Sedan Long": "سيدان طويل", + "Speedster": "سبيدستر", + + + + "Liftback 5-doors": "ليفت باك - خمسة أبواب", + "AMG roadster 2-doors": "أي إم جي رودستر - بابين", + "SUV 2-doors": "إس يو في - بابين", + "Hybrid Sedan 4-doors": "سيدان هجينة - أربعة أبواب", + "JDM Sedan 4-doors": "جي دي إم سيدان - أربعة أبواب", + "wagon 3-doors": "واغن - ثلاثة أبواب", + "wagon (5 doors)": "واغن - خمسة أبواب", + "AMG crossover 5-doors": "أي إم جي كروس أوفر - خمسة أبواب", + "Kingswood Estate wagon": "عربة كينجسوود إستيت", + "SUV 5 doors L": "سيارات الدفع الرباعي 5 أبواب L", + "Limousine Sedan": "ليموزين سيدان", + "Z28 Coupe 2-doors": "Z28 كوبيه 2 أبواب", + "S Coupe 2-doors": "S كوبيه 2 أبواب", + "Combi wagon 5-doors": "كومبي واجن 5 أبواب", + "Sportback hatchback 5-doors": "سبورتباك هاتشباك 5 أبواب", + "RS hatchback 3-doors": "RS هاتشباك 3 أبواب", + "Pickup 4-doors": "بيك أب 4 أبواب", + "Trans Am Coupe 2-doors": "ترانس آم كوبيه 2 أبواب", + "Break wagon": "كسر عربة", + "Pickup Double cabin Crew Cab": "بيك أب كابينة طاقم المقصورة المزدوجة", + "Allroad quattro wagon 5-doors": "أولرود كواترو واجن 5 أبواب", + "GTI hatchback 5-doors": "GTI هاتشباك 5 أبواب", + "WRX STI Sedan 4-doors": "WRX STI سيدان 4 أبواب", + "Combi wagon": "عربة كومبي", + "GT hatchback 5-doors": "GT هاتشباك 5 أبواب", + "RS Coupe 2-doors": "RS كوبيه 2 أبواب", + "Sport Sedan Hardtop": "الرياضة سيدان السقف الصلب", + "Xtracab pickup 2-doors": "بيك اب إكستراكاب 2 أبواب", + "CC cabriolet": "CC كابريوليه", + "Sport Sedan Hardtop 4-doors": "سبورت سيدان هاردتوب 4 أبواب", + "Phaeton": "فايتون", + "Hatchback 5 doors Sportback": "هاتشباك 5 أبواب سبورتباك", + "Minivan Grand": "ميني فان جراند", + "Cross hatchback 5-doors": "عبر هاتشباك 5 أبواب", + "Volante cabriolet": "فولانتي كابريوليه", + "Turbo Coupe 2-doors": "توربو كوبيه 2 أبواب", + "Sport Coupe Coupe": "سبورت كوبيه كوبيه", + "Classic pickup 2-doors": "بيك أب كلاسيكي 2 أبواب", + "GT hatchback 3-doors": "GT هاتشباك 3 أبواب", + "Spyder cabriolet": "سبايدر كابريوليه", + "ST hatchback 3-doors": "ST هاتشباك 3 أبواب", + "SUV 5 doors X": "سيارات الدفع الرباعي 5 أبواب X", + "Pickup Single cabin Regular Cab": "بيك أب كابينة واحدة الكابينة العادية", + "Single Cab pickup 2-doors": "بيك اب كابينة واحدة 2 أبواب", + "Cabrio cabriolet": "كابريو كابريوليه", + "Sportback hatchback": "سبورت باك هاتشباك", + "Wagon minivan": "عربة ميني فان", + "WRX Sedan 4-doors": "WRX سيدان 4 أبواب", + "Convertible cabriolet": "كابريوليه قابلة للتحويل", + "OPC hatchback 3-doors": "OPC هاتشباك 3 أبواب", + "Grand minivan": "الميني فان الكبرى", + "Spider cabriolet": "العنكبوت كابريوليه", + "Athlete Sedan 4-doors": "رياضي سيدان 4 أبواب", + "Combi RS wagon 5-doors": "كومبي RS واجن 5 أبواب", + "V8 Coupe 2-doors": "V8 كوبيه 2 أبواب", + "Sportvan minivan": "ميني فان سبورت فان", + "Coupe Coupe": "كوبيه كوبيه", + "Hybrid hatchback 5-doors": "هاتشباك هجينة 5 أبواب", + "Extended Cab pickup 2-doors": "بيك أب كابينة ممتدة 2 أبواب", + "Hybrid crossover 5-doors": "كروس أوفر هجين 5 أبواب", + "JDM Hardtop": "JDM Hardtop", + "US-Spec. Sedan 4-doors": "مواصفات الولايات المتحدة. سيدان 4 أبواب", + "Sport hatchback 3-doors": "هاتشباك رياضية 3 أبواب", + "Combi Scout wagon 5-doors": "كومبي سكاوت واجن 5 أبواب", + "Formula Coupe 2-doors": "فورمولا كوبيه 2 أبواب", + "Stingray roadster": "ستينغراي رودستر", + "wagon 5-doors Shooting Brake": "عربة 5 أبواب اطلاق النار الفرامل", + "Minivan SWB": "ميني فان SWB", + "Roadster Spider": "رودستر سبايدر", + "Sedan L": "سيدان L", + "SUV 5 doors Long": "سيارات الدفع الرباعي 5 أبواب طويلة", + "Coupe RS": "كوبيه RS", + "Extended Cab pickup 4-doors": "بيك أب كابينة ممتدة 4 أبواب", + "Gran Coupe Sedan": "غران كوبيه سيدان", + "Van wagon": "فان واغن", + "Double Cab pickup": "بيك أب مزدوج الكابينة", + "Stepway hatchback 5-doors": "ستيبوي هاتشباك 5 أبواب", + "US-spec Coupe": "كوبيه ذات مواصفات أمريكية", + "RS liftback 5-doors": "RS Liftback 5 أبواب", + "Carrera Coupe 2-doors": "كاريرا كوبيه 2 أبواب", + "Van 4-doors": "فان 4 أبواب", + "F-150 RegularCab pickup 2-doors": "F-150 RegularCab بيك اب 2 أبواب", + "F-150 SuperCab pickup 4-doors": "F-150 SuperCab بيك أب 4 أبواب", + "Classic Coupe 2-doors": "كلاسيك كوبيه 2 أبواب", + "Royal Sedan 4-doors": "رويال سيدان 4 أبواب", + "Grandtour wagon": "عربة جراندتور", + "Esprit Coupe 2-doors": "إسبريت كوبيه 2 أبواب", + "XKR cabriolet 2-doors": "XKR كابريوليه 2 أبواب", + "XKR Coupe 2-doors": "XKR كوبيه 2 أبواب", + "Soft top SUV 3-doors": "سيارات الدفع الرباعي ذات السقف الناعم 3 أبواب", + "US-spec minivan 5-doors": "ميني فان 5 أبواب بمواصفات أمريكية", + "Absolute minivan 5-doors": "ميني فان مطلق 5 أبواب", + "Si Sedan 4-doors": "سي سيدان 4 أبواب", + "Sport SUV 3-doors": "سبورت SUV 3 أبواب", + "Hard top SUV": "سيارات الدفع الرباعي ذات السقف الصلب", + "Station Wagon wagon": "عربة ستيشن واغن", + "Custom Coupe Hardtop 2-doors": "مخصص كوبيه Hardtop 2 أبواب", + "Limousine Pullman": "ليموزين بولمان", + "Hatchback 4 doors": "هاتشباك 4 أبواب", + "Hatchback 5 doors GT": "هاتشباك 5 أبواب جي تي", + "SUV 5 doors EV": "سيارات الدفع الرباعي 5 أبواب EV", + "Cabriolet Volante": "كابريوليه فولانتي", + "Cabriolet Spider": "كابريوليه العنكبوت", + "Pickup Double cabin Double Cab": "بيك أب كابينة مزدوجة الكابينة", + "Compactvan Stepway": "كومباكت فان ستيبواي", + "wagon 5 doors Scout": "عربة 5 أبواب الكشافة", + "Axio Sedan 4-doors": "أكسيو سيدان 4 أبواب", + "hatchback": "هاتشباك", + "R Coupe 2-doors": "R كوبيه 2 أبواب", + "SC Cupra hatchback 3-doors": "SC كوبرا هاتشباك 3 أبواب", + "GT hatchback": "جي تي هاتشباك", + "King Cab pickup 2-doors": "كينج كاب بيك أب 2 أبواب", + "R hatchback 3-doors": "R هاتشباك 3 أبواب", + "Sport Sedan 4-doors": "سبورت سيدان 4 أبواب", + "Caravan wagon 5-doors": "كارافان واجن 5 أبواب", + "Kombi minivan 4-doors": "ميني فان كومبي 4 أبواب", + "Variant wagon 5-doors": "عربة متغيرة 5 أبواب", + "Sports Tourer wagon 5-doors": "عربة رياضية سياحية 5 أبواب", + "Gran Turismo liftback": "ارتداد Gran Turismo", + "Shooting Brake wagon 5-doors": "عربة فرامل الرماية 5 أبواب", + "AMG Shooting Brake wagon 5-doors": "AMG عربة الفرامل الرماية 5 أبواب", + "F-100 RegularCab pickup 2-doors": "F-100 RegularCab بيك أب 2 أبواب", + "Grand minivan 4-doors": "ميني فان جراند 4 أبواب", + "Regular pickup 2-doors": "بيك أب عادي 2 أبواب", + "Combi minivan": "ميني فان كومبي", + "Classic Sedan": "سيارة سيدان كلاسيكية", + "Turbo hatchback 3-doors": "توربو هاتشباك 3 أبواب", + "Spyder roadster 2-doors": "سبايدر رودستر 2 أبواب", + "Turbo cabriolet 2-doors": "توربو كابريوليه 2 أبواب", + "GT3 Coupe 2-doors": "GT3 كوبيه 2 أبواب", + "Trans Am T-Roof targa 2-doors": "ترانس آم تي روف تارجا 2 أبواب", + "OPC minivan 5-doors": "ميني فان OPC 5 أبواب", + "Hardtop 2-doors": "Hardtop 2 أبواب", + "JP-spec Sedan 4-doors": "جي بي مواصفات سيدان 4 أبواب",