From 5442d5a539998e2974dac6699870ba044a325620 Mon Sep 17 00:00:00 2001 From: Marwan Alwali Date: Wed, 15 Jan 2025 19:52:16 +0300 Subject: [PATCH] update --- .../__pycache__/middleware.cpython-311.pyc | Bin 2744 -> 2744 bytes inventory/__pycache__/models.cpython-311.pyc | Bin 83078 -> 83109 bytes inventory/__pycache__/views.cpython-311.pyc | Bin 145911 -> 147872 bytes inventory/models.py | 1 + inventory/signals.py | 38 +- inventory/views.py | 64 +- locale/ar/LC_MESSAGES/django.mo | Bin 126250 -> 133506 bytes locale/ar/LC_MESSAGES/django.po | 2677 ++++++++++------- static/css/custom.css | 9 +- static/images/.DS_Store | Bin 14340 -> 14340 bytes .../crm/opportunities/opportunity_detail.html | 2 +- templates/customers/customer_list.html | 37 +- templates/header.html | 26 +- templates/index.html | 99 +- templates/inventory/car_form.html | 4 +- templates/inventory/inventory_stats.html | 29 +- templates/items/service/service_create.html | 2 +- .../bank_accounts/bank_account_list.html | 2 +- .../ledger/coa_accounts/account_list.html | 2 +- templates/partials/pagination.html | 36 +- templates/sales/estimates/estimate_list.html | 5 +- templates/sales/invoices/invoice_list.html | 5 +- 22 files changed, 1901 insertions(+), 1137 deletions(-) diff --git a/inventory/__pycache__/middleware.cpython-311.pyc b/inventory/__pycache__/middleware.cpython-311.pyc index 197f3ccca9eb7a44155125d1d734de0183341f87..57fc69d5769c38d1edbbf22de350f5d3965b7346 100644 GIT binary patch delta 20 acmdlXx#iPJm_(j0~w>&Ae+LY{V+wz(G4pmw7MAvt>27B4YPtq(icU~FmBv!5V4>9 zVozc(?~U~UlIh2|E~N3(@m~O$v@Kx{xwJ8{1BEo3c$Jld;s>9l;kT|Mp4Y#9SkP8M zqnVQv7@TP!%26(6@S*Y%dyj4+wvkn#+rjvHt=tp?Y~oPGuu zx$e+8QTp9B#gqKd`(v2r%}4BkN5r$N_>RY9$BEFgOS>LHtq2%s-Z)~g;&m-Hf-&Rc$lJ3n!>lWAX8Oa9(E{&)w% zX?a;bUf>mFr6MB9gUS(2?KFqYyzx|ygiP*LT@F=AUNa|IY_)z%yL^2n7v&Uob_{#C zvDRNiE8p7CC$LM5a#Fm>-+CBVsovUyP9Fd1N>LiLO?r#M!%V!U^*M%7-rqK5JA&5s zN{0LV6`m_%j$c&z83g{}g?)enpYGmbC#@F#X}axlBYgSH<^52PC}x03c%I@0=kOv$ z41FU7sKoRI8lN@t&~Np2>bVyg@S6y7HtSY6Qe` z?VSiwGTY!KBY5h#7D(qA6P~b3Tw;R~28{fxyY8Z0z6zw-3DlqGVmp_L$ubntiOF77 zsvY-71y=E-ZP?TTPE+XgZz$nDzaA0r3DwQCpowg7k>JSW=#kRz&qmlVU(aAF8oyqz!tJWw7v zqe6>lrPOG{W0X2K90kmZzXzfqWs0g&Tjd}R^}l8lZlXZW_Cyn2Q#`#e&2UoIuY!z^ zlyj?K71(*v=7aq18eB)4yxteXs8sCz@Q#2k*&Kjc^vH%lRO54{B@kwY0ok|?W4Ive*xbeuAcw^ delta 1135 zcmZWne@v8R9KX-|zISxW9jrhg0uB-vfq>%DQGw2lW!lCJfmA5cQjpL)k`;FR2og{6 zfWEMI%C9-ZGYN>E^lbrl46cNep@>0?g}B5ub#XyLq}2QBR)6$t&*zWN^Lf7C@8|P8 z%@*}xi&|&X>6WPE#SmkOTv52nnEtY&{hwjc9f+DOGLP(W(JI=vm1&9WchK zk^_KbYERip_YBMEfK^S;q^^U7s@D2?n4wac6nIVExsz0!+T=bhKpj4_fyI!T?)jj$o`%erLEAi@$8F$ zM724y=%UK~$I-?D543P_(158I{bbFphn+>de@1|du6;0zKiH)YwZJ?L=i4yI@(-m8 zaHk&&ufUVe6*;)S!HmTg4u14kNuI`=lU?VFLs9T%<)sU}He4o5H{~JdYK{+iHfX8+ z$PPr&QcE{hQ@`aG1hBTF7dZ8cvhcB~g5w>Cr)X;t*0K(3xq#Oxjw+EtLo|bpthd^% zK_1&sTM0R*;kp_15#_3A41*W_Twj0+N^2O$4i?)OA)tlrX}ZXBJsj2LET_%3gZPem zY+X3d3eNfnngM0r>$E=3z&byFmcuBUXuAVUFy|LF9Hv+XD-iHIyCK;*aO~7KnShop z?MiS{hw}e6&FVdkFy_&h1^JWYJ2(y2kl8tdb!5EUr&%crbLVN%<rc9|4 zO~%`sSoOVd9*tz5Zoz5Fc9r7<`_t7VaNWFE5s5(g)#7O3z8*cKox6au%sv;b#uais zFyfjR%wr3+KTL$<%f&+iCS~V-qMY3^+)~b3Fe(l5Fg}5&qL?sBLUSB64FspJTSjpsfSl<>t*!Z3tZaoh74Mz!=@ zINsqQiPlIoqEn2FLM=L^fhg?f&?m;O#yI*#pBU8OTd6e$m$eZ(teIB*A1afpce)gQ N_P@grTl33s`v-ear`Z4i diff --git a/inventory/__pycache__/views.cpython-311.pyc b/inventory/__pycache__/views.cpython-311.pyc index 13405f1ea14787956bbdaa25f1d7f3b0365a85d1..00b75f5dc5c33806dd98b4d95158d7de6b73ad93 100644 GIT binary patch delta 22735 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 delta 21975 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 diff --git a/inventory/models.py b/inventory/models.py index e0278891..39f2f263 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -336,6 +336,7 @@ class CarReservation(models.Model): 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/signals.py b/inventory/signals.py index fca8c26d..b00f31f5 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -12,6 +12,7 @@ from django_ledger.models import ( VendorModel, ) from . import models +from django.utils.timezone import now User = get_user_model() @@ -816,4 +817,39 @@ def notify_assigned_staff(sender, instance, created, **kwargs): models.Notification.objects.create( user=instance.assigned.user, message=f"You have been assigned a new lead: {instance.first_name} {instance.last_name}." - ) \ No newline at end of file + ) + + +@receiver(post_save, sender=models.CarReservation) +def update_car_status_on_reservation_create(sender, instance, created, **kwargs): + """ + Signal to update the car status to 'reserved' when a reservation is created. + """ + if created: + car = instance.car + car.status = models.CarStatusChoices.RESERVED + car.save() + +@receiver(post_delete, sender=models.CarReservation) +def update_car_status_on_reservation_delete(sender, instance, **kwargs): + """ + Signal to update the car status to 'available' when a reservation is deleted. + """ + car = instance.car + # Check if there are no active reservations for the car + if not car.reservations.filter(reserved_until__gt=now()).exists(): + car.status = models.CarStatusChoices.AVAILABLE + car.save() + +@receiver(post_save, sender=models.CarReservation) +def update_car_status_on_reservation_update(sender, instance, **kwargs): + """ + Signal to update the car status based on the reservation's active status. + """ + car = instance.car + if instance.is_active: + car.status = models.CarStatusChoices.RESERVED + else: + if not car.reservations.filter(reserved_until__gt=now()).exists(): + car.status = models.CarStatusChoices.AVAILABLE + car.save() \ No newline at end of file diff --git a/inventory/views.py b/inventory/views.py index 349f484c..eda0c31a 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -195,6 +195,44 @@ class Login(views.LoginView): class HomeView(TemplateView): template_name = "index.html" + def dispatch(self, request, *args, **kwargs): + if ( + # not any(hasattr(request.user, attr) for attr in ["dealer", "subdealer"]) + not request.user.is_authenticated + ): + # messages.error(request, _("You are not associated with any dealer.")) + return redirect("welcome") + return super().dispatch(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + dealer = get_user_type(self.request) + total_cars = models.Car.objects.filter(dealer=dealer).count() + total_reservations = models.CarReservation.objects.filter( + reserved_until__gte=timezone.now() + ).count() + cars_in_house = models.CarLocation.objects.filter( + owner=dealer, + ).count() + cars_outside = total_cars - cars_in_house + stats = models.CarFinance.objects.aggregate( + total_cost_price=Sum("cost_price"), + total_selling_price=Sum("selling_price"), + ) + total_cost_price = stats["total_cost_price"] or 0 + total_selling_price = stats["total_selling_price"] or 0 + total_profit = total_selling_price - total_cost_price + + context["dealer"] = dealer + context["total_cars"] = total_cars + context["cars_in_house"] = cars_in_house + context["cars_outside"] = cars_outside + context["total_reservations"] = total_reservations + context["total_cost_price"] = total_cost_price + context["total_selling_price"] = total_selling_price + context["total_profit"] = total_profit + return context + class TestView(TemplateView): template_name = "test.html" @@ -529,15 +567,20 @@ class CarColorCreate(LoginRequiredMixin, CreateView): def inventory_stats_view(request): dealer = get_user_type(request) + # Base queryset for cars belonging to the dealer + cars = models.Car.objects.filter(dealer=dealer) + + # Count for total, reserved, showroom, and unreserved cars + total_cars = cars.count() + reserved_cars = models.CarReservation.objects.count() + # showroom_cars = cars.filter(location='showroom').count() + # unreserved_cars = total_cars - reserved_cars + # Annotate total cars by make, model, and trim - cars = ( - models.Car.objects.filter(dealer=dealer) - .select_related("id_car_make", "id_car_model", "id_car_trim") - .annotate( - make_total=Count("id_car_make"), - model_total=Count("id_car_model"), - trim_total=Count("id_car_trim"), - ) + cars = cars.select_related("id_car_make", "id_car_model", "id_car_trim").annotate( + make_total=Count("id_car_make"), + model_total=Count("id_car_model"), + trim_total=Count("id_car_trim"), ) inventory = {} @@ -584,7 +627,8 @@ def inventory_stats_view(request): except Exception as e: print(e) result = { - "total_cars": cars.count(), + "total_cars": total_cars, + "reserved_cars": reserved_cars, "makes": [ { "make_id": make_data["make_id"], @@ -1898,6 +1942,7 @@ class EstimateListView(LoginRequiredMixin, ListView): model = EstimateModel template_name = "sales/estimates/estimate_list.html" context_object_name = "estimates" + paginate_by = 10 def get_queryset(self): dealer = get_user_type(self.request) @@ -2161,6 +2206,7 @@ class InvoiceListView(LoginRequiredMixin, ListView): model = InvoiceModel template_name = "sales/invoices/invoice_list.html" context_object_name = "invoices" + paginate_by = 10 def get_queryset(self): dealer = get_user_type(self.request) diff --git a/locale/ar/LC_MESSAGES/django.mo b/locale/ar/LC_MESSAGES/django.mo index 987a672706c63df6dac2b673e43f9d920862d905..76e6913614e09914c84f33f9e08e889cbc2fa185 100644 GIT binary patch delta 42635 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%0DHWAP%GgLoNCrO*Gy1k^xVEQfEQmVPM)Hxp_A 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 delta 36516 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\n" "Language-Team: LANGUAGE \n" @@ -19,207 +19,235 @@ 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:188 +#: api/models.py:6 inventory/models.py:253 #: templates/inventory/car_detail.html:19 templates/inventory/car_form.html:31 -#: templates/inventory/car_inventory.html:56 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:31 +#: templates/inventory/car_inventory.html:53 #: templates/inventory/car_list.html:67 templates/inventory/car_list.html:69 #: templates/sales/quotation_detail.html:72 #: templates/sales/quotation_pdf.html:41 msgid "VIN" msgstr "رقم الهيكل" -#: car_inventory/settings.py:207 +#: car_inventory/settings.py:208 msgid "English" msgstr "الإنجليزية" -#: car_inventory/settings.py:208 +#: car_inventory/settings.py:209 msgid "Arabic" msgstr "العربية" -#: car_inventory/settings.py:268 templates/dashboards/accounting.html:35 +#: car_inventory/settings.py:269 +#: templates/crm/opportunities/opportunity_detail.html:35 +#: templates/dashboards/accounting.html:35 #: templates/dashboards/accounting.html:39 -#: templates/dealers/dealer_detail.html:130 -#: templates/subscriptions/subscription_plan.html:41 +#: templates/dealers/dealer_detail.html:130 templates/index.html:50 +#: templates/index.html:54 templates/subscriptions/subscription_plan.html:41 msgid "SAR" -msgstr "ريال سعودي" +msgstr "ريال" -#: inventory/forms.py:236 inventory/models.py:414 +#: inventory/forms.py:248 inventory/models.py:452 #: templates/inventory/car_detail.html:82 msgid "Custom Date" msgstr "تاريخ البطاقة الجمركية" -#: inventory/forms.py:300 +#: inventory/forms.py:312 msgid "Both exterior and interior colors must be selected." msgstr "يجب اختيار اللونين الخارجي والداخلي." -#: inventory/forms.py:379 +#: inventory/forms.py:391 msgid "You must add an email." msgstr "يجب إضافة بريد إلكتروني." -#: inventory/forms.py:386 +#: inventory/forms.py:398 #: venv/lib/python3.11/site-packages/django_ledger/forms/auth.py:15 msgid "Password" msgstr "كلمة المرور" -#: inventory/forms.py:391 inventory/forms.py:403 inventory/forms.py:456 -#: inventory/forms.py:492 inventory/forms.py:506 +#: inventory/forms.py:403 inventory/forms.py:415 inventory/forms.py:468 +#: inventory/forms.py:504 inventory/forms.py:518 #: venv/lib/python3.11/site-packages/django/forms/fields.py:95 msgid "This field is required." msgstr "هذا الحقل مطلوب." -#: inventory/forms.py:398 +#: inventory/forms.py:410 msgid "Confirm Password" msgstr "تأكيد كلمة المرور" -#: inventory/forms.py:414 +#: inventory/forms.py:426 msgid "You must accept the terms and privacy policy." msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." -#: inventory/forms.py:424 inventory/models.py:578 inventory/models.py:870 +#: inventory/forms.py:436 inventory/models.py:615 inventory/models.py:946 msgid "English Name" msgstr "الاسم بالإنجليزية" -#: inventory/forms.py:429 +#: inventory/forms.py:441 msgid "Please enter an English Name." msgstr "يرجى إدخال اسم باللغة الإنجليزية." -#: inventory/forms.py:436 inventory/models.py:172 inventory/models.py:369 -#: inventory/models.py:382 inventory/models.py:577 inventory/models.py:661 -#: inventory/models.py:869 inventory/models.py:893 inventory/models.py:911 +#: inventory/forms.py:448 inventory/models.py:236 inventory/models.py:407 +#: inventory/models.py:420 inventory/models.py:614 inventory/models.py:698 +#: inventory/models.py:945 inventory/models.py:969 inventory/models.py:987 #: templates/users/user_detail.html:48 msgid "Arabic Name" msgstr "الاسم بالعربية" -#: inventory/forms.py:441 +#: inventory/forms.py:453 msgid "Please enter an Arabic name." msgstr "يرجى إدخال اسم باللغة العربية." -#: inventory/forms.py:450 templates/dealers/dealer_detail.html:99 +#: inventory/forms.py:462 templates/crm/leads/lead_detail.html:80 +#: templates/dealers/dealer_detail.html:99 #: templates/organizations/organization_detail.html:10 #: templates/organizations/organization_list.html:59 #: templates/representatives/representative_detail.html:9 #: templates/representatives/representative_list.html:19 +#: templates/vendors/vendors_list.html:54 msgid "Phone" msgstr "الهاتف" -#: inventory/forms.py:457 +#: inventory/forms.py:469 msgid "Phone number must be in the format 05xxxxxxxx" msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" -#: inventory/forms.py:468 inventory/models.py:570 inventory/models.py:864 -#: inventory/models.py:894 +#: inventory/forms.py:480 inventory/models.py:607 inventory/models.py:940 +#: inventory/models.py:970 msgid "Commercial Registration Number" msgstr "رقم السجل التجاري" -#: inventory/forms.py:485 inventory/models.py:574 inventory/models.py:867 -#: inventory/models.py:895 +#: inventory/forms.py:497 inventory/models.py:611 inventory/models.py:943 +#: inventory/models.py:971 msgid "VAT Registration Number" msgstr "رقم التسجيل في ضريبة القيمة المضافة" -#: inventory/forms.py:493 +#: inventory/forms.py:505 msgid "VAT Registration Number must be 15 characters." msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." -#: inventory/forms.py:539 inventory/models.py:1099 +#: inventory/forms.py:551 inventory/models.py:1175 msgid "cash" msgstr "نقداً" -#: inventory/forms.py:540 inventory/models.py:1100 +#: inventory/forms.py:552 inventory/models.py:1176 msgid "credit" msgstr "دائن" -#: inventory/forms.py:541 inventory/models.py:1101 +#: inventory/forms.py:553 inventory/models.py:1177 #: templates/inventory/car_detail.html:100 #: templates/inventory/transfer_car.html:23 msgid "transfer" msgstr "نقل" -#: inventory/forms.py:542 inventory/models.py:1102 +#: inventory/forms.py:554 inventory/models.py:1178 msgid "debit" msgstr "مدين" -#: inventory/forms.py:543 inventory/models.py:1103 +#: inventory/forms.py:555 inventory/models.py:1179 msgid "SADAD" msgstr "سداد" -#: inventory/models.py:43 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:9 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:32 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:33 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/income_statement.html:28 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:11 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:14 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:11 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:21 -msgid "Unit" -msgstr "الوحدة" +#: inventory/models.py:78 inventory/models.py:316 inventory/models.py:334 +#: inventory/models.py:450 inventory/models.py:467 inventory/models.py:517 +#: inventory/models.py:869 inventory/models.py:1108 +#: templates/crm/opportunities/opportunity_form.html:35 +#: templates/sales/sales_order_detail.html:24 +msgid "Car" +msgstr "سيارة" -#: inventory/models.py:44 -msgid "Kg" -msgstr "كجم" +#: inventory/models.py:79 +msgid "Light Commercial" +msgstr "مركبات تجارية خفيفة" -#: inventory/models.py:45 -msgid "L" -msgstr "لتر" +#: inventory/models.py:80 +msgid "Heavy-Duty Tractors" +msgstr "جرارات ثقيلة" -#: inventory/models.py:46 -msgid "m" -msgstr "م" +#: inventory/models.py:81 +msgid "Trailers" +msgstr "مقطورات" -#: inventory/models.py:47 -msgid "cm" -msgstr "سم" +#: inventory/models.py:82 +msgid "Medium Trucks" +msgstr "شاحنات متوسطة" -#: inventory/models.py:48 -msgid "m2" -msgstr "متر مربع" +#: inventory/models.py:83 +msgid "Buses" +msgstr "حافلات" -#: inventory/models.py:49 inventory/models.py:50 -msgid "m3" -msgstr "متر مكعب" +#: inventory/models.py:84 +msgid "Motorcycles" +msgstr "دراجات نارية" -#: inventory/models.py:68 +#: inventory/models.py:85 +msgid "Buggy" +msgstr "باجي" + +#: inventory/models.py:86 +msgid "Moto ATV" +msgstr "موتو ATV" + +#: inventory/models.py:87 +msgid "Scooters" +msgstr "دراجات سكوتر" + +#: inventory/models.py:88 +msgid "Karting" +msgstr "كارتينج" + +#: inventory/models.py:89 +msgid "ATV" +msgstr "مركبات ATV" + +#: inventory/models.py:90 +msgid "Snowmobiles" +msgstr "دراجات الثلج" + +#: inventory/models.py:98 msgid "logo" msgstr "الشعار" -#: inventory/models.py:158 templates/inventory/car_inventory.html:102 +#: inventory/models.py:222 templates/inventory/car_inventory.html:99 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:21 msgid "Available" msgstr "متاح" -#: inventory/models.py:159 templates/inventory/car_inventory.html:104 +#: inventory/models.py:223 templates/inventory/car_inventory.html:101 msgid "Sold" msgstr "تم البيع" -#: inventory/models.py:160 templates/inventory/car_inventory.html:106 +#: inventory/models.py:224 templates/inventory/car_inventory.html:103 msgid "Hold" msgstr "في الانتظار" -#: inventory/models.py:161 templates/inventory/car_inventory.html:110 +#: inventory/models.py:225 templates/inventory/car_inventory.html:107 msgid "Damaged" msgstr "تالف" -#: inventory/models.py:162 templates/inventory/car_inventory.html:108 +#: inventory/models.py:226 templates/index.html:18 +#: templates/inventory/car_inventory.html:105 msgid "Reserved" msgstr "محجوزة" -#: inventory/models.py:166 inventory/models.py:684 inventory/models.py:713 -#: templates/inventory/car_inventory.html:71 +#: inventory/models.py:230 inventory/models.py:737 +#: templates/crm/leads/lead_detail.html:46 +#: templates/crm/leads/lead_list.html:108 +#: templates/inventory/car_inventory.html:68 msgid "New" msgstr "جديد" -#: inventory/models.py:167 templates/inventory/car_inventory.html:73 +#: inventory/models.py:231 templates/inventory/car_inventory.html:70 msgid "Used" msgstr "مستعمل" -#: inventory/models.py:171 inventory/models.py:368 inventory/models.py:381 -#: inventory/models.py:660 inventory/models.py:892 inventory/models.py:910 -#: templates/crm/lead_list.html:41 templates/crm/opportunity_list.html:80 +#: inventory/models.py:235 inventory/models.py:406 inventory/models.py:419 +#: inventory/models.py:697 inventory/models.py:968 inventory/models.py:986 +#: templates/crm/leads/lead_list.html:43 #: templates/customers/customer_list.html:42 -#: templates/items/service/service_list.html:42 -#: templates/ledger/bank_accounts/bank_account_list.html:51 +#: templates/items/expenses/expenses_list.html:20 +#: templates/items/service/service_list.html:20 +#: templates/ledger/bank_accounts/bank_account_list.html:19 +#: templates/ledger/coa_accounts/account_list.html:192 #: templates/organizations/organization_list.html:46 #: templates/representatives/representative_list.html:17 #: templates/sales/quotation_detail.html:44 @@ -230,9 +258,10 @@ msgstr "مستعمل" msgid "Name" msgstr "الاسم" -#: inventory/models.py:173 inventory/models.py:448 -#: templates/sales/payments/payment_details.html:19 -#: templates/sales/payments/payment_list.html:20 +#: inventory/models.py:237 inventory/models.py:486 +#: templates/ledger/coa_accounts/account_detail.html:65 +#: templates/sales/payments/payment_details.html:21 +#: templates/sales/payments/payment_list.html:22 #: venv/lib/python3.11/site-packages/django_ledger/forms/coa.py:17 #: venv/lib/python3.11/site-packages/django_ledger/forms/coa.py:38 #: venv/lib/python3.11/site-packages/django_ledger/models/data_import.py:61 @@ -245,30 +274,52 @@ msgstr "الاسم" msgid "Description" msgstr "الوصف" -#: inventory/models.py:174 templates/sales/quotation_detail.html:76 +#: inventory/models.py:238 templates/sales/quotation_detail.html:76 #: templates/sales/quotation_pdf.html:45 msgid "Price" msgstr "السعر" -#: inventory/models.py:175 +#: inventory/models.py:239 msgid "taxable" msgstr "خاضع للضريبة" -#: inventory/models.py:176 +#: inventory/models.py:240 msgid "Unit of Measurement" msgstr "وحدة القياس" -#: inventory/models.py:177 inventory/models.py:190 inventory/models.py:613 +#: inventory/models.py:241 inventory/models.py:255 inventory/models.py:650 msgid "Dealer" msgstr "المعرض" -#: inventory/models.py:180 inventory/models.py:181 +#: inventory/models.py:242 templates/sales/estimates/estimate_detail.html:121 +#: templates/sales/estimates/estimate_preview.html:273 +#: templates/sales/invoices/invoice_detail.html:215 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:94 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:18 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_item_table.html:8 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:18 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html:9 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html:9 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:94 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:18 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:10 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:18 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_update.html:50 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/tags/po_item_table.html:8 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:10 +msgid "Item" +msgstr "العنصر" + +#: inventory/models.py:245 inventory/models.py:246 +#: templates/sales/estimates/estimate_detail.html:151 #: templates/sales/estimates/estimate_preview.html:295 +#: templates/sales/invoices/invoice_detail.html:244 msgid "Additional Services" msgstr "الخدمات الإضافية" -#: inventory/models.py:199 inventory/models.py:883 -#: templates/inventory/car_detail.html:60 templates/inventory/car_form.html:165 +#: inventory/models.py:264 inventory/models.py:959 +#: templates/inventory/car_detail.html:60 templates/inventory/car_form.html:162 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:166 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:359 #: venv/lib/python3.11/site-packages/django_ledger/models/vendor.py:191 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_table.html:12 @@ -276,33 +327,38 @@ msgstr "الخدمات الإضافية" msgid "Vendor" msgstr "المورد" -#: inventory/models.py:207 +#: inventory/models.py:272 inventory/models.py:792 msgid "Make" msgstr "الصانع" -#: inventory/models.py:215 templates/sales/quotation_detail.html:73 +#: inventory/models.py:280 inventory/models.py:793 +#: templates/sales/quotation_detail.html:73 #: templates/sales/quotation_pdf.html:42 msgid "Model" msgstr "الموديل" -#: inventory/models.py:217 templates/inventory/car_form.html:61 -#: templates/inventory/car_inventory.html:57 +#: inventory/models.py:282 inventory/models.py:794 +#: templates/inventory/car_form.html:61 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:61 +#: templates/inventory/car_inventory.html:54 #: templates/sales/quotation_detail.html:74 #: templates/sales/quotation_pdf.html:43 msgid "Year" msgstr "السنة" -#: inventory/models.py:224 templates/inventory/car_form.html:121 +#: inventory/models.py:289 templates/inventory/car_form.html:113 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:121 msgid "Series" msgstr "السلسلة" -#: inventory/models.py:232 +#: inventory/models.py:297 msgid "Trim" msgstr "الفئة" -#: inventory/models.py:238 inventory/models.py:953 -#: templates/inventory/car_detail.html:43 -#: templates/inventory/car_inventory.html:61 +#: inventory/models.py:303 inventory/models.py:802 inventory/models.py:871 +#: inventory/models.py:1029 templates/crm/leads/lead_detail.html:44 +#: templates/crm/leads/lead_list.html:39 templates/inventory/car_detail.html:43 +#: templates/inventory/car_inventory.html:58 #: templates/inventory/car_list.html:163 #: templates/sales/estimates/estimate_list.html:17 #: templates/sales/invoices/invoice_list.html:17 @@ -317,180 +373,183 @@ msgstr "الفئة" msgid "Status" msgstr "الحالة" -#: inventory/models.py:244 templates/inventory/car_detail.html:47 -#: templates/inventory/car_form.html:182 templates/inventory/car_list.html:177 +#: inventory/models.py:309 templates/inventory/car_detail.html:47 +#: templates/inventory/car_form.html:180 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:183 +#: templates/inventory/car_list.html:177 msgid "Stock Type" msgstr "نوع المخزون" -#: inventory/models.py:246 inventory/models.py:950 +#: inventory/models.py:311 inventory/models.py:1026 #: templates/inventory/car_detail.html:65 templates/inventory/car_form.html:231 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:232 #: templates/inventory/car_list.html:200 #: templates/sales/quotation_detail.html:53 msgid "Remarks" msgstr "ملاحظات" -#: inventory/models.py:247 templates/inventory/car_detail.html:51 -#: templates/inventory/car_form.html:197 templates/inventory/car_list.html:191 -#: templates/inventory/car_list.html:192 +#: inventory/models.py:312 templates/inventory/car_detail.html:51 +#: templates/inventory/car_form.html:195 +#: ⁨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:248 templates/inventory/car_detail.html:55 -#: templates/inventory/car_form.html:214 +#: inventory/models.py:313 templates/inventory/car_detail.html:55 +#: templates/inventory/car_form.html:213 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:215 msgid "Receiving Date" msgstr "تاريخ الاستلام" -#: inventory/models.py:251 inventory/models.py:297 inventory/models.py:412 -#: inventory/models.py:429 inventory/models.py:479 inventory/models.py:798 -#: inventory/models.py:1032 templates/sales/sales_order_detail.html:24 -msgid "Car" -msgstr "السيارة" - -#: inventory/models.py:252 templates/customers/view_customer.html:122 -#: templates/header.html:72 +#: inventory/models.py:317 templates/customers/view_customer.html:137 +#: templates/header.html:71 msgid "Cars" msgstr "السيارات" -#: inventory/models.py:298 templates/inventory/car_detail.html:230 +#: inventory/models.py:335 templates/inventory/car_detail.html:226 msgid "Reserved By" msgstr "محجوز بواسطة" -#: inventory/models.py:299 +#: inventory/models.py:336 msgid "Reserved At" msgstr "تاريخ الحجز" -#: inventory/models.py:300 +#: inventory/models.py:337 msgid "Reserved Until" msgstr "محجوز حتى" -#: inventory/models.py:308 templates/inventory/car_detail.html:295 +#: inventory/models.py:346 templates/inventory/car_detail.html:291 msgid "Car Reservation" msgstr "حجز السيارة" -#: inventory/models.py:309 +#: inventory/models.py:347 msgid "Car Reservations" msgstr "حجوزات السيارات" -#: inventory/models.py:316 templates/inventory/car_detail.html:127 +#: inventory/models.py:354 templates/inventory/car_detail.html:126 msgid "Cost Price" msgstr "سعر التكلفة" -#: inventory/models.py:317 templates/inventory/car_detail.html:132 +#: inventory/models.py:355 templates/inventory/car_detail.html:130 #: templates/sales/sales_order_detail.html:25 msgid "Selling Price" msgstr "سعر البيع" -#: inventory/models.py:318 templates/inventory/car_detail.html:136 +#: inventory/models.py:356 templates/inventory/car_detail.html:134 +#: templates/sales/estimates/estimate_detail.html:139 +#: templates/sales/invoices/invoice_detail.html:232 msgid "Discount Amount" msgstr "مبلغ الخصم" -#: inventory/models.py:364 inventory/models.py:365 +#: inventory/models.py:401 inventory/models.py:402 msgid "Car Financial Details" msgstr "تفاصيل المالية للسيارة" -#: inventory/models.py:370 inventory/models.py:383 +#: inventory/models.py:408 inventory/models.py:421 msgid "RGB" msgstr "آر جي بي" -#: inventory/models.py:373 inventory/models.py:374 +#: inventory/models.py:411 inventory/models.py:412 #: templates/inventory/add_colors.html:13 msgid "Exterior Colors" msgstr "الألوان الخارجية" -#: inventory/models.py:386 inventory/models.py:387 +#: inventory/models.py:424 inventory/models.py:425 #: templates/inventory/add_colors.html:32 msgid "Interior Colors" msgstr "الألوان الداخلية" -#: inventory/models.py:403 +#: inventory/models.py:441 msgid "Color" msgstr "اللون" -#: inventory/models.py:404 +#: inventory/models.py:442 msgid "Colors" msgstr "الألوان" -#: inventory/models.py:413 templates/inventory/car_detail.html:78 +#: inventory/models.py:451 templates/inventory/car_detail.html:78 msgid "Custom Number" msgstr "رقم البطاقة الجمركية" -#: inventory/models.py:417 templates/inventory/car_detail.html:87 -#: templates/inventory/car_detail.html:281 +#: inventory/models.py:455 templates/inventory/car_detail.html:87 +#: templates/inventory/car_detail.html:277 msgid "Custom Card" msgstr "البطاقة الجمركية" -#: inventory/models.py:418 +#: inventory/models.py:456 msgid "Custom Cards" msgstr "البطاقات الجمركية" -#: inventory/models.py:435 +#: inventory/models.py:473 inventory/models.py:872 msgid "Owner" msgstr "المالك" -#: inventory/models.py:436 +#: inventory/models.py:474 msgid "Dealer who owns the car." msgstr "التاجر الذي يمتلك السيارة." -#: inventory/models.py:442 inventory/models.py:701 +#: inventory/models.py:480 inventory/models.py:718 msgid "Showroom" msgstr "صالة العرض" -#: inventory/models.py:443 +#: inventory/models.py:481 msgid "Dealer where the car is displayed (can be the owner)." msgstr "التاجر الذي تُعرض السيارة في صالته (يمكن أن يكون المالك)." -#: inventory/models.py:449 +#: inventory/models.py:487 msgid "Optional description about the showroom placement." msgstr "وصف اختياري حول وضع السيارة في صالة العرض." -#: inventory/models.py:453 inventory/models.py:664 inventory/models.py:804 -#: inventory/models.py:820 inventory/models.py:835 inventory/models.py:850 -#: inventory/models.py:880 inventory/models.py:899 inventory/models.py:955 -#: inventory/models.py:1088 templates/sales/quotation_list.html:18 +#: inventory/models.py:491 inventory/models.py:956 inventory/models.py:975 +#: inventory/models.py:1031 inventory/models.py:1164 +#: templates/sales/quotation_list.html:18 msgid "Created At" msgstr "تاريخ الإنشاء" -#: inventory/models.py:457 +#: inventory/models.py:495 msgid "Last Updated" msgstr "آخر تحديث" -#: inventory/models.py:461 +#: inventory/models.py:499 msgid "Car Location" msgstr "موقع السيارة" -#: inventory/models.py:462 +#: inventory/models.py:500 msgid "Car Locations" msgstr "مواقف السيارات" -#: inventory/models.py:481 +#: inventory/models.py:519 msgid "Plate Number" msgstr "رقم اللوحة" -#: inventory/models.py:482 +#: inventory/models.py:520 msgid "Text 1" msgstr "النص 1" -#: inventory/models.py:483 +#: inventory/models.py:521 msgid "Text 2" msgstr "النص 2" -#: inventory/models.py:484 +#: inventory/models.py:522 msgid "Text 3" msgstr "النص 3" -#: inventory/models.py:485 +#: inventory/models.py:523 msgid "Registration Date" msgstr "تاريخ التسجيل" -#: inventory/models.py:488 +#: inventory/models.py:526 msgid "Registration" msgstr "التسجيل" -#: inventory/models.py:489 +#: inventory/models.py:527 msgid "Registrations" msgstr "تسجيل السيارات" -#: inventory/models.py:497 inventory/models.py:780 +#: inventory/models.py:535 inventory/models.py:701 inventory/models.py:803 +#: inventory/models.py:846 inventory/models.py:875 inventory/models.py:893 +#: inventory/models.py:911 inventory/models.py:926 +#: templates/crm/leads/lead_detail.html:91 #: templates/sales/estimates/estimate_list.html:19 #: templates/sales/invoices/invoice_list.html:19 #: templates/sales/journals/journal_list.html:19 @@ -500,63 +559,70 @@ msgstr "تسجيل السيارات" msgid "Created" msgstr "تاريخ الإنشاء" -#: inventory/models.py:498 +#: inventory/models.py:536 inventory/models.py:702 inventory/models.py:804 +#: inventory/models.py:847 inventory/models.py:876 inventory/models.py:894 +#: inventory/models.py:912 #: 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:519 templates/dealers/dealer_detail.html:63 +#: inventory/models.py:557 templates/dealers/dealer_detail.html:63 msgid "Subscription" msgstr "الاشتراك" -#: inventory/models.py:520 templates/welcome.html:104 +#: inventory/models.py:558 templates/welcome.html:104 msgid "Subscriptions" msgstr "الاشتراكات" -#: inventory/models.py:536 +#: inventory/models.py:573 msgid "Subscription User" msgstr "مستخدم الاشتراك" -#: inventory/models.py:537 +#: inventory/models.py:574 msgid "Subscription Users" msgstr "مستخدمو الاشتراك" -#: inventory/models.py:544 +#: inventory/models.py:581 msgid "Name of the subscription plan" msgstr "اسم خطة الاشتراك" -#: inventory/models.py:547 +#: inventory/models.py:584 msgid "Maximum number of users allowed" msgstr "الحد الأقصى لعدد المستخدمين المسموح به" -#: inventory/models.py:548 +#: inventory/models.py:585 msgid "Maximum number of cars in inventory" msgstr "الحد الأقصى لعدد السيارات في المخزون" -#: inventory/models.py:555 +#: inventory/models.py:592 msgid "Additional features specific to this plan" msgstr "ميزات إضافية خاصة بهذه الخطة" -#: inventory/models.py:560 +#: inventory/models.py:597 msgid "Subscription Plan" msgstr "خطة الاشتراك" -#: inventory/models.py:561 +#: inventory/models.py:598 msgid "Subscription Plans" msgstr "خطط الاشتراك" -#: inventory/models.py:579 inventory/models.py:662 inventory/models.py:775 -#: inventory/models.py:872 inventory/models.py:896 inventory/models.py:913 -#: templates/crm/lead_list.html:49 templates/customers/customer_list.html:50 +#: inventory/models.py:616 inventory/models.py:699 inventory/models.py:789 +#: inventory/models.py:843 inventory/models.py:948 inventory/models.py:972 +#: inventory/models.py:989 templates/crm/leads/lead_list.html:56 +#: templates/crm/opportunities/opportunity_detail.html:217 +#: templates/customers/customer_form.html:102 +#: templates/customers/customer_list.html:50 #: templates/customers/view_customer.html:105 #: templates/users/user_detail.html:51 templates/vendors/view_vendor.html:52 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:113 msgid "Phone Number" msgstr "رقم الهاتف" -#: inventory/models.py:583 inventory/models.py:778 inventory/models.py:875 -#: inventory/models.py:897 inventory/models.py:915 -#: templates/crm/lead_list.html:59 templates/customers/customer_list.html:60 +#: inventory/models.py:620 inventory/models.py:797 inventory/models.py:845 +#: inventory/models.py:951 inventory/models.py:973 inventory/models.py:991 +#: templates/crm/leads/lead_detail.html:109 +#: templates/customers/customer_form.html:109 +#: templates/customers/customer_list.html:60 #: templates/customers/view_customer.html:100 #: templates/dealers/dealer_detail.html:83 #: templates/organizations/organization_detail.html:11 @@ -570,30 +636,29 @@ msgstr "رقم الهاتف" msgid "Address" msgstr "العنوان" -#: inventory/models.py:587 inventory/models.py:878 inventory/models.py:898 +#: inventory/models.py:624 inventory/models.py:954 inventory/models.py:974 msgid "Logo" msgstr "الشعار" -#: inventory/models.py:589 +#: inventory/models.py:626 msgid "Joined At" msgstr "انضم في" -#: inventory/models.py:590 inventory/models.py:665 inventory/models.py:805 -#: inventory/models.py:821 inventory/models.py:956 +#: inventory/models.py:627 inventory/models.py:1032 msgid "Updated At" msgstr "تم التحديث" -#: inventory/models.py:614 +#: inventory/models.py:651 msgid "Dealers" msgstr "المعارض" -#: inventory/models.py:648 +#: inventory/models.py:685 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3190 msgid "Manager" msgstr "مدير" -#: inventory/models.py:649 inventory/signals.py:127 templates/header.html:55 -#: templates/header.html:60 +#: inventory/models.py:686 inventory/signals.py:129 inventory/signals.py:164 +#: templates/header.html:27 templates/header.html:54 templates/header.html:59 #: 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 @@ -601,133 +666,124 @@ msgstr "مدير" msgid "Inventory" msgstr "المخزن" -#: inventory/models.py:650 +#: inventory/models.py:687 msgid "Accountant" msgstr "محاسب" -#: inventory/models.py:651 +#: inventory/models.py:688 templates/header.html:32 msgid "Sales" msgstr "المبيعات" -#: inventory/models.py:652 +#: inventory/models.py:689 msgid "Coordinator" msgstr "المنسق" -#: inventory/models.py:653 +#: inventory/models.py:690 msgid "Receptionist" msgstr "موظف الاستقبال" -#: inventory/models.py:654 +#: inventory/models.py:691 msgid "Agent" msgstr "عميل" -#: inventory/models.py:663 +#: inventory/models.py:700 msgid "Staff Type" msgstr "نوع الموظف" -#: inventory/models.py:668 inventory/models.py:669 inventory/models.py:831 -#: templates/header.html:294 +#: inventory/models.py:707 inventory/models.py:708 inventory/models.py:834 +#: templates/crm/opportunities/opportunity_detail.html:258 +#: templates/header.html:365 templates/users/user_form.html:4 msgid "Staff" msgstr "الموظفون" -#: inventory/models.py:677 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_create.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_create.html:33 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_create.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/expense_create.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/inventory_item_create.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:38 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_create.html:24 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_create.html:27 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/service_create.html:24 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_create.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/uom_create.html:24 -msgid "Create" -msgstr "إنشاء" +#: inventory/models.py:716 +msgid "Referrals" +msgstr "إحالات" -#: inventory/models.py:678 templates/customers/view_customer.html:54 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:101 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_update.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/tags/bank_accounts_table.html:49 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:46 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:154 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/tags/customer_table.html:63 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/import_job_update.html:14 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entity_update.html:16 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:56 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/expense_update.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html:43 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:66 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/inventory_item_update.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html:38 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:137 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail.html:34 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_update.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:42 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:61 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/service_update.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:42 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_list.html:34 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_update.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/tags/uom_table.html:41 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/uom_update.html:24 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/vendor/tags/vendor_table.html:63 -msgid "Update" -msgstr "تحديث" +#: inventory/models.py:717 inventory/models.py:759 +msgid "WhatsApp" +msgstr "واتساب" -#: inventory/models.py:679 templates/crm/lead_list.html:131 -#: templates/crm/opportunity_list.html:32 -#: templates/customers/customer_list.html:127 -#: templates/customers/view_customer.html:51 -#: templates/ledger/bank_accounts/bank_account_detail.html:63 -#: templates/ledger/coa_accounts/account_detail.html:67 -#: templates/ledger/coa_accounts/account_list.html:115 -#: templates/organizations/organization_detail.html:17 -#: templates/organizations/organization_list.html:130 -#: templates/representatives/representative_detail.html:16 -#: templates/users/user_detail.html:65 templates/vendors/vendors_list.html:137 -#: templates/vendors/view_vendor.html:67 -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:499 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_delete.html:28 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:25 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_delete.html:19 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:60 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html:46 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/import_job_delete.html:18 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html:42 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entitiy_list.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entity_delete.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/includes/card_entity.html:31 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:25 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_delete.html:24 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:19 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:88 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_delete.html:19 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:130 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_delete.html:20 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:44 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:103 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:25 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_delete.html:24 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/service_delete.html:20 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:44 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/tags/uom_table.html:43 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/uom_delete.html:28 -msgid "Delete" -msgstr "حذف" +#: inventory/models.py:719 +msgid "TikTok" +msgstr "تيك توك" -#: inventory/models.py:680 -msgid "Status Change" -msgstr "تغيير الحالة" +#: inventory/models.py:720 +msgid "Instagram" +msgstr "إنستغرام" -#: inventory/models.py:685 inventory/models.py:714 +#: inventory/models.py:721 +msgid "X" +msgstr "إكس" + +#: inventory/models.py:722 +msgid "Facebook" +msgstr "فيسبوك" + +#: inventory/models.py:723 +msgid "Motory" +msgstr "موتري" + +#: inventory/models.py:724 +msgid "Influencers" +msgstr "المؤثرون" + +#: inventory/models.py:725 +msgid "Youtube" +msgstr "يوتيوب" + +#: inventory/models.py:726 +msgid "Campaign" +msgstr "حملة" + +#: inventory/models.py:729 +msgid "Walk In" +msgstr "زيارة مباشرة" + +#: inventory/models.py:730 +msgid "Toll Free" +msgstr "رقم مجاني" + +#: inventory/models.py:731 +#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:112 +msgid "Website" +msgstr "الموقع الإلكتروني" + +#: inventory/models.py:732 inventory/models.py:758 inventory/models.py:788 +#: inventory/models.py:841 templates/crm/leads/lead_detail.html:75 +#: templates/crm/opportunities/opportunity_detail.html:227 +#: templates/customers/customer_form.html:79 +#: templates/customers/customer_form.html:80 +#: templates/customers/view_customer.html:103 +#: templates/dealers/dealer_detail.html:93 +#: templates/sales/estimates/estimate_detail.html:90 +#: templates/sales/estimates/estimate_preview.html:264 +#: templates/vendors/view_vendor.html:55 +#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:111 +msgid "Email" +msgstr "البريد الإلكتروني" + +#: inventory/models.py:733 +msgid "Form" +msgstr "نموذج" + +#: inventory/models.py:738 templates/crm/leads/lead_detail.html:48 +#: templates/crm/leads/lead_list.html:110 msgid "Pending" msgstr "قيد الانتظار" -#: inventory/models.py:686 inventory/models.py:719 +#: inventory/models.py:739 templates/crm/leads/lead_detail.html:50 +#: templates/crm/leads/lead_list.html:112 +msgid "In Progress" +msgstr "قيد التنفيذ" + +#: inventory/models.py:740 templates/crm/leads/lead_detail.html:52 +#: templates/crm/leads/lead_list.html:114 +msgid "Qualified" +msgstr "مؤهل" + +#: inventory/models.py:741 templates/crm/leads/lead_detail.html:54 +#: templates/crm/leads/lead_list.html:116 #: templates/sales/estimates/estimate_list.html:38 #: templates/sales/invoices/invoice_list.html:34 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:342 @@ -738,120 +794,238 @@ msgstr "قيد الانتظار" msgid "Canceled" msgstr "ملغى" -#: inventory/models.py:687 templates/sales/estimates/estimate_list.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:226 -msgid "Completed" -msgstr "مكتمل" +#: inventory/models.py:744 +msgid "Mr" +msgstr "السيد" -#: inventory/models.py:691 +#: inventory/models.py:745 +msgid "Mrs" +msgstr "السيدة" + +#: inventory/models.py:746 +msgid "Ms" +msgstr "الآنسة" + +#: inventory/models.py:747 +msgid "Miss" +msgstr "الآنسة" + +#: inventory/models.py:748 +msgid "Dr" +msgstr "الدكتور" + +#: inventory/models.py:749 +msgid "Prof" +msgstr "الأستاذ" + +#: inventory/models.py:750 +msgid "Prince" +msgstr "الأمير" + +#: inventory/models.py:751 +msgid "Princess" +msgstr "الأميرة" + +#: inventory/models.py:752 +msgid "Company" +msgstr "الشركة" + +#: inventory/models.py:753 +msgid "N/A" +msgstr "غير متوفر" + +#: inventory/models.py:756 +msgid "Call" +msgstr "مكالمة" + +#: inventory/models.py:757 +msgid "SMS" +msgstr "رسالة نصية" + +#: inventory/models.py:760 +msgid "Visit" +msgstr "زيارة" + +#: inventory/models.py:761 +msgid "Add Car" +msgstr "إضافة سيارة" + +#: inventory/models.py:762 templates/inventory/reserve_car.html:6 +#: templates/inventory/reserve_car.html:9 +msgid "Reserve Car" +msgstr "حجز السيارة" + +#: inventory/models.py:763 +msgid "Remove Car" +msgstr "إزالة السيارة" + +#: inventory/models.py:764 templates/sales/quotation_form.html:5 +#: templates/sales/quotation_form.html:9 +msgid "Create Quotation" +msgstr "إنشاء عرض" + +#: inventory/models.py:765 +msgid "Cancel Quotation" +msgstr "إلغاء العرض" + +#: inventory/models.py:766 +msgid "Create Order" +msgstr "إنشاء طلب" + +#: inventory/models.py:767 +msgid "Cancel Order" +msgstr "إلغاء الطلب" + +#: inventory/models.py:768 templates/sales/estimates/estimate_detail.html:50 +#: 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:769 +msgid "Cancel Invoice" +msgstr "إلغاء الفاتورة" + +#: inventory/models.py:772 +msgid "Prospect" +msgstr "العميل المحتمل" + +#: inventory/models.py:773 +msgid "Proposal" +msgstr "عرض" + +#: inventory/models.py:774 +msgid "Negotiation" +msgstr "مفاوضات" + +#: inventory/models.py:775 +msgid "Closed Won" +msgstr "مغلقة - ناجحة" + +#: inventory/models.py:776 +msgid "Closed Lost" +msgstr "مغلقة - خسارة" + +#: inventory/models.py:779 msgid "Low" msgstr "منخفض" -#: inventory/models.py:692 +#: inventory/models.py:780 msgid "Medium" msgstr "متوسط" -#: inventory/models.py:693 +#: inventory/models.py:781 msgid "High" msgstr "مرتفع" -#: inventory/models.py:697 -msgid "Referrals" -msgstr "إحالات" +#: inventory/models.py:785 inventory/models.py:835 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:11 +msgid "Title" +msgstr "العنوان" -#: inventory/models.py:698 -msgid "Walk In" -msgstr "زيارة مباشرة" - -#: inventory/models.py:699 -msgid "Toll Free" -msgstr "رقم مجاني" - -#: inventory/models.py:700 -msgid "WhatsApp" -msgstr "واتساب" - -#: inventory/models.py:702 -#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:112 -msgid "Website" -msgstr "الموقع الإلكتروني" - -#: inventory/models.py:703 -msgid "TikTok" -msgstr "تيك توك" - -#: inventory/models.py:704 -msgid "Instagram" -msgstr "إنستغرام" - -#: inventory/models.py:705 -msgid "X" -msgstr "إكس" - -#: inventory/models.py:706 -msgid "Facebook" -msgstr "فيسبوك" - -#: inventory/models.py:707 -msgid "Motory" -msgstr "موتري" - -#: inventory/models.py:708 -msgid "Influencers" -msgstr "المؤثرون" - -#: inventory/models.py:709 -msgid "Youtube" -msgstr "يوتيوب" - -#: inventory/models.py:710 inventory/models.py:770 -#: templates/customers/view_customer.html:103 -#: templates/dealers/dealer_detail.html:93 -#: templates/sales/estimates/estimate_detail.html:90 -#: templates/sales/estimates/estimate_preview.html:264 -#: templates/vendors/view_vendor.html:55 -#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:111 -msgid "Email" -msgstr "البريد الإلكتروني" - -#: inventory/models.py:715 -msgid "Assigned" -msgstr "مُعين" - -#: inventory/models.py:716 -msgid "Contacted" -msgstr "تم التواصل" - -#: inventory/models.py:717 -msgid "Accepted" -msgstr "مقبول" - -#: inventory/models.py:718 -msgid "Qualified" -msgstr "مؤهل" - -#: inventory/models.py:765 +#: inventory/models.py:786 inventory/models.py:836 +#: templates/customers/customer_form.html:29 +#: templates/customers/customer_form.html:30 msgid "First Name" msgstr "الاسم الأول" -#: inventory/models.py:767 -msgid "Middle Name" -msgstr "اسم الأب" - -#: inventory/models.py:769 +#: inventory/models.py:787 inventory/models.py:838 +#: templates/customers/customer_form.html:43 +#: templates/customers/customer_form.html:44 msgid "Last Name" msgstr "اسم العائلة" -#: inventory/models.py:772 templates/crm/lead_list.html:54 +#: inventory/models.py:790 templates/crm/leads/lead_detail.html:85 +msgid "Salary" +msgstr "الراتب" + +#: inventory/models.py:791 +msgid "Obligations" +msgstr "الالتزامات" + +#: inventory/models.py:795 templates/crm/leads/lead_list.html:62 +msgid "Source" +msgstr "المصدر" + +#: inventory/models.py:796 templates/crm/leads/lead_list.html:68 +msgid "Channel" +msgstr "القناة" + +#: inventory/models.py:798 inventory/models.py:844 +#: templates/crm/leads/lead_detail.html:115 +#: templates/customers/customer_form.html:93 +#: templates/customers/customer_form.html:94 +#: venv/lib/python3.11/site-packages/django_ledger/forms/entity.py:82 +#: venv/lib/python3.11/site-packages/django_ledger/forms/entity.py:159 +#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:107 +msgid "City" +msgstr "المدينة" + +#: inventory/models.py:799 +msgid "Assigned" +msgstr "مُعين" + +#: inventory/models.py:801 +msgid "Priority" +msgstr "الأولوية" + +#: inventory/models.py:807 inventory/models.py:831 +msgid "Lead" +msgstr "فرصة" + +#: inventory/models.py:808 templates/crm/leads/lead_list.html:3 +#: templates/crm/leads/lead_list.html:7 +msgid "Leads" +msgstr "الفرص" + +#: inventory/models.py:816 +msgid "Old Status" +msgstr "الحالة القديمة" + +#: inventory/models.py:817 +msgid "New Status" +msgstr "الحالة الجديدة" + +#: inventory/models.py:819 +msgid "Changed At" +msgstr "تم التغيير في" + +#: inventory/models.py:822 +msgid "Lead Status History" +msgstr "تاريخ حالة العميل المحتمل" + +#: inventory/models.py:823 +msgid "Lead Status Histories" +msgstr "تواريخ حالات العملاء المحتملين" + +#: inventory/models.py:837 templates/customers/customer_form.html:36 +#: templates/customers/customer_form.html:37 +msgid "Middle Name" +msgstr "اسم الأب" + +#: inventory/models.py:839 +msgid "Male" +msgstr "ذكر" + +#: inventory/models.py:839 +msgid "Female" +msgstr "أنثى" + +#: inventory/models.py:839 templates/customers/customer_form.html:66 +msgid "Gender" +msgstr "الجنس" + +#: inventory/models.py:840 templates/customers/customer_form.html:73 +msgid "Date of Birth" +msgstr "تاريخ الميلاد" + +#: inventory/models.py:842 templates/customers/customer_form.html:87 #: templates/customers/customer_list.html:55 msgid "National ID" msgstr "رقم الهوية الوطنية" -#: inventory/models.py:781 -msgid "Is Lead" -msgstr "فرصة بالفعل" - -#: inventory/models.py:784 inventory/models.py:942 +#: inventory/models.py:850 inventory/models.py:1018 +#: templates/crm/opportunities/opportunity_form.html:22 #: templates/sales/estimates/estimate_detail.html:86 #: templates/sales/estimates/estimate_list.html:16 #: templates/sales/estimates/estimate_preview.html:263 @@ -867,134 +1041,132 @@ msgstr "فرصة بالفعل" msgid "Customer" msgstr "العميل" -#: inventory/models.py:785 templates/customers/customer_form.html:4 +#: inventory/models.py:851 templates/customers/customer_form.html:4 #: templates/customers/customer_list.html:4 #: templates/customers/customer_list.html:5 #: templates/customers/customer_list.html:9 -#: templates/ledger/bank_accounts/bank_account_list.html:6 msgid "Customers" msgstr "العملاء" -#: inventory/models.py:799 -msgid "Deal Name" -msgstr "اسم الصفقة" +#: inventory/models.py:863 +msgid "Probability must be between 0 and 100." +msgstr "يجب أن تكون الاحتمالية بين 0 و 100." -#: inventory/models.py:800 -msgid "Deal Value" -msgstr "قيمة الصفقة" +#: inventory/models.py:870 templates/crm/opportunities/opportunity_form.html:48 +msgid "Stage" +msgstr "المرحلة" -#: inventory/models.py:801 -msgid "Deal Status" -msgstr "حالة الصفقة" +#: inventory/models.py:874 +#: templates/crm/opportunities/opportunity_detail.html:291 +#: templates/crm/opportunities/opportunity_form.html:66 +#: templates/crm/opportunities/opportunity_list.html:100 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:69 +msgid "Closing Date" +msgstr "تاريخ الإغلاق" -#: inventory/models.py:802 -msgid "Priority" -msgstr "الأولوية" +#: inventory/models.py:877 +msgid "Closed" +msgstr "مغلقة" -#: inventory/models.py:809 templates/crm/lead_list.html:130 +#: inventory/models.py:880 msgid "Opportunity" msgstr "فرصة" -#: inventory/models.py:810 templates/crm/opportunity_list.html:10 +#: inventory/models.py:881 templates/crm/opportunities/opportunity_list.html:8 +#: templates/header.html:176 msgid "Opportunities" msgstr "الفرص" -#: inventory/models.py:818 +#: inventory/models.py:891 inventory/models.py:897 msgid "Note" msgstr "ملاحظة" -#: inventory/models.py:824 inventory/models.py:825 +#: inventory/models.py:898 inventory/models.py:909 +#: templates/crm/leads/lead_detail.html:151 +#: templates/customers/view_customer.html:119 #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:154 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/card_markdown.html:9 msgid "Notes" msgstr "ملاحظات" -#: inventory/models.py:830 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html:13 -msgid "Action" -msgstr "الإجراء" +#: inventory/models.py:908 +msgid "Activity Type" +msgstr "نوع النشاط" -#: inventory/models.py:832 -msgid "Old Status" -msgstr "الحالة القديمة" +#: inventory/models.py:915 templates/dealers/activity_log.html:11 +#: templates/header.html:368 +#: 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:325 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:10 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:33 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:10 +msgid "Activity" +msgstr "النشاط" -#: inventory/models.py:833 -msgid "New Status" -msgstr "الحالة الجديدة" +#: inventory/models.py:916 templates/crm/leads/lead_detail.html:135 +msgid "Activities" +msgstr "الأنشطة" -#: inventory/models.py:834 templates/inventory/inventory_stats.html:52 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html:43 -msgid "Details" -msgstr "التفاصيل" - -#: inventory/models.py:838 -msgid "Log" -msgstr "سجل" - -#: inventory/models.py:839 -msgid "Logs" -msgstr "السجلات" - -#: inventory/models.py:848 +#: inventory/models.py:924 msgid "Message" msgstr "رسالة" -#: inventory/models.py:849 +#: inventory/models.py:925 msgid "Is Read" msgstr "تمت قراءته" -#: inventory/models.py:853 +#: inventory/models.py:929 msgid "Notification" msgstr "إشعار" -#: inventory/models.py:854 templates/notifications_history.html:6 +#: inventory/models.py:930 templates/crm/notifications_history.html:6 msgid "Notifications" msgstr "الإشعارات" -#: inventory/models.py:871 templates/vendors/view_vendor.html:49 +#: inventory/models.py:947 templates/vendors/view_vendor.html:49 msgid "Contact Person" msgstr "الشخص المسؤول" -#: inventory/models.py:873 inventory/models.py:914 +#: inventory/models.py:949 inventory/models.py:990 msgid "Email Address" msgstr "عنوان البريد الإلكتروني" -#: inventory/models.py:884 templates/vendors/vendor_form.html:4 +#: inventory/models.py:960 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:902 +#: inventory/models.py:978 msgid "Organization" msgstr "شركة" -#: inventory/models.py:903 templates/header.html:108 +#: inventory/models.py:979 templates/header.html:160 #: templates/organizations/organization_list.html:4 #: templates/organizations/organization_list.html:5 #: templates/organizations/organization_list.html:12 msgid "Organizations" msgstr "الشركات" -#: inventory/models.py:912 +#: inventory/models.py:988 #: templates/representatives/representative_detail.html:8 #: templates/representatives/representative_list.html:18 msgid "ID Number" msgstr "رقم الهوية" -#: inventory/models.py:919 +#: inventory/models.py:995 msgid "Representative" msgstr "ممثل شركة" -#: inventory/models.py:920 templates/header.html:116 +#: inventory/models.py:996 templates/header.html:168 #: templates/representatives/representative_list.html:3 #: templates/representatives/representative_list.html:6 msgid "Representatives" msgstr "ممثلي الشركات" -#: inventory/models.py:930 templates/sales/estimates/estimate_detail.html:101 +#: inventory/models.py:1006 templates/sales/estimates/estimate_detail.html:101 #: templates/sales/estimates/estimate_list.html:30 -#: templates/sales/invoices/invoice_detail.html:118 +#: templates/sales/invoices/invoice_detail.html:193 #: templates/sales/invoices/invoice_list.html:36 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:338 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:223 @@ -1003,9 +1175,9 @@ msgstr "ممثلي الشركات" msgid "Draft" msgstr "مسودة" -#: inventory/models.py:931 templates/sales/estimates/estimate_detail.html:105 +#: inventory/models.py:1007 templates/sales/estimates/estimate_detail.html:105 #: templates/sales/estimates/estimate_list.html:34 -#: templates/sales/invoices/invoice_detail.html:122 +#: templates/sales/invoices/invoice_detail.html:197 #: templates/sales/invoices/invoice_list.html:32 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:340 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:225 @@ -1015,9 +1187,9 @@ msgstr "مسودة" msgid "Approved" msgstr "تمت الموافقة" -#: inventory/models.py:932 templates/sales/estimates/estimate_detail.html:103 +#: inventory/models.py:1008 templates/sales/estimates/estimate_detail.html:103 #: templates/sales/estimates/estimate_list.html:32 -#: templates/sales/invoices/invoice_detail.html:120 +#: templates/sales/invoices/invoice_detail.html:195 #: templates/sales/invoices/invoice_list.html:38 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:339 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:224 @@ -1026,14 +1198,15 @@ msgstr "تمت الموافقة" msgid "In Review" msgstr "قيد المراجعة" -#: inventory/models.py:933 templates/sales/invoices/invoice_detail.html:126 +#: inventory/models.py:1009 templates/sales/invoices/invoice_detail.html:201 #: templates/sales/invoices/invoice_list.html:40 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:341 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:302 msgid "Paid" msgstr "مدفوع" -#: inventory/models.py:948 +#: inventory/models.py:1024 +#: templates/crm/opportunities/opportunity_detail.html:145 #: templates/ledger/bank_accounts/bank_account_detail.html:50 #: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:491 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:22 @@ -1041,11 +1214,11 @@ msgstr "مدفوع" msgid "Amount" msgstr "المبلغ" -#: inventory/models.py:959 +#: inventory/models.py:1035 msgid "Payment ID" msgstr "معرف الدفع" -#: inventory/models.py:961 +#: inventory/models.py:1037 #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:49 #: venv/lib/python3.11/site-packages/django_ledger/forms/invoice.py:64 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:375 @@ -1055,14 +1228,14 @@ msgstr "معرف الدفع" msgid "Draft Date" msgstr "تاريخ المسودة" -#: inventory/models.py:962 +#: inventory/models.py:1038 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:376 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:349 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:220 msgid "In Review Date" msgstr "تاريخ المراجعة" -#: inventory/models.py:963 +#: inventory/models.py:1039 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:377 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:350 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:221 @@ -1070,7 +1243,7 @@ msgstr "تاريخ المراجعة" msgid "Approved Date" msgstr "تاريخ الموافقة" -#: inventory/models.py:964 +#: inventory/models.py:1040 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:378 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:351 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:138 @@ -1078,27 +1251,27 @@ msgstr "تاريخ الموافقة" msgid "Paid Date" msgstr "تاريخ الدفع" -#: inventory/models.py:965 +#: inventory/models.py:1041 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:379 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:352 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:222 msgid "Void Date" msgstr "تاريخ الإبطال" -#: inventory/models.py:966 +#: inventory/models.py:1042 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:380 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:353 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:224 msgid "Canceled Date" msgstr "تاريخ الإلغاء" -#: inventory/models.py:1027 inventory/models.py:1086 +#: inventory/models.py:1103 inventory/models.py:1162 msgid "Quotation" msgstr "عزرص سعر" -#: inventory/models.py:1034 templates/sales/estimates/estimate_detail.html:122 +#: inventory/models.py:1110 templates/sales/estimates/estimate_detail.html:122 #: templates/sales/estimates/estimate_preview.html:274 -#: templates/sales/invoices/invoice_detail.html:141 +#: templates/sales/invoices/invoice_detail.html:216 #: templates/sales/quotation_detail.html:75 #: templates/sales/quotation_pdf.html:44 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1068 @@ -1113,54 +1286,54 @@ msgstr "عزرص سعر" msgid "Quantity" msgstr "الكمية" -#: inventory/models.py:1090 templates/sales/estimates/estimate_preview.html:300 +#: inventory/models.py:1166 templates/sales/estimates/estimate_preview.html:305 #: templates/sales/quotation_list.html:17 #: templates/sales/sales_order_detail.html:16 #: templates/sales/sales_order_detail.html:27 msgid "Total Amount" msgstr "المبلغ الإجمالي" -#: inventory/models.py:1106 inventory/models.py:1128 +#: inventory/models.py:1182 inventory/models.py:1204 msgid "amount" msgstr "المبلغ" -#: inventory/models.py:1107 +#: inventory/models.py:1183 msgid "method" msgstr "طريقة" -#: inventory/models.py:1108 +#: inventory/models.py:1184 msgid "reference number" msgstr "رقم المرجع" -#: inventory/models.py:1109 +#: inventory/models.py:1185 msgid "date" msgstr "التاريخ" -#: inventory/models.py:1119 +#: inventory/models.py:1195 msgid "payment" msgstr "الدفعة" -#: inventory/models.py:1120 templates/header.html:156 +#: inventory/models.py:1196 templates/header.html:125 msgid "payments" msgstr "المدفوعات" -#: inventory/models.py:1129 +#: inventory/models.py:1205 msgid "reason" msgstr "السبب" -#: inventory/models.py:1130 +#: inventory/models.py:1206 msgid "refund date" msgstr "تاريخ الاسترداد" -#: inventory/models.py:1133 +#: inventory/models.py:1209 msgid "refund" msgstr "استرداد" -#: inventory/models.py:1134 +#: inventory/models.py:1210 msgid "refunds" msgstr "استردادات" -#: inventory/signals.py:107 +#: inventory/signals.py:105 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_bs.html:14 msgid "Cash" msgstr "نقداً" @@ -1170,184 +1343,390 @@ msgstr "نقداً" msgid "Accounts Receivable" msgstr "الحسابات المدينة" -#: inventory/signals.py:137 +#: inventory/signals.py:142 +msgid "Prepaid Expenses" +msgstr "المصروفات المدفوعة مقدمًا" + +#: inventory/signals.py:154 +msgid "Employee Advance" +msgstr "سلفة الموظف" + +#: inventory/signals.py:176 +msgid "VAT Receivable" +msgstr "ضريبة القيمة المضافة المستحقة" + +#: inventory/signals.py:186 +#: 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:198 +#: 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:210 +msgid "Investments" +msgstr "الاستثمارات" + +#: inventory/signals.py:247 +#: 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:261 #: 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:146 -msgid "Partners Current" -msgstr "جاري الشركاء" +#: inventory/signals.py:273 +#: 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:156 +#: inventory/signals.py:285 +#: 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:297 +msgid "Long-Term Notes Payable" +msgstr "أوراق الدفع طويلة الأجل" + +#: inventory/signals.py:309 +msgid "VAT Payable" +msgstr "ضريبة القيمة المضافة المستحقة الدفع" + +#: inventory/signals.py:319 +#: 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:329 +msgid "Social Insurance Payable" +msgstr "التأمينات الاجتماعية المستحقة الدفع" + +#: inventory/signals.py:335 +msgid "End of Service Benefits" +msgstr "مكافأة نهاية الخدمة" + +#: inventory/signals.py:342 +#: 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:350 +msgid "Registered Capital" +msgstr "رأس المال المسجل" + +#: inventory/signals.py:353 +msgid "Additional Paid-In Capital" +msgstr "رأس المال المدفوع الإضافي" + +#: inventory/signals.py:356 +msgid "Opening Balances" +msgstr "الأرصدة الافتتاحية" + +#: inventory/signals.py:361 +msgid "Statutory Reserve" +msgstr "الاحتياطي النظامي" + +#: inventory/signals.py:364 +msgid "Foreign Currency Translation Reserve" +msgstr "احتياطي تحويل العملات الأجنبية" + +#: inventory/signals.py:371 +msgid "Operating Profits and Losses" +msgstr "الأرباح والخسائر التشغيلية" + +#: inventory/signals.py:382 +msgid "Retained Earnings (or Losses)" +msgstr "الأرباح المحتجزة (أو الخسائر)" + +#: inventory/signals.py:392 msgid "Sales Revenue" msgstr "إيرادات المبيعات" -#: inventory/signals.py:166 templates/items/service/service_list.html:44 +#: inventory/signals.py:404 +#: 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:416 +msgid "Unearned Income" +msgstr "الدخل غير المكتسب" + +#: inventory/signals.py:422 +msgid "Sales/Service Revenue" +msgstr "إيرادات المبيعات/الخدمات" + +#: inventory/signals.py:425 +msgid "Non-Operating Revenues" +msgstr "الإيرادات غير التشغيلية" + +#: inventory/signals.py:433 inventory/signals.py:614 #: 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:176 +#: inventory/signals.py:446 +msgid "Accrued Expenses" +msgstr "المصروفات المستحقة" + +#: inventory/signals.py:456 +msgid "Accrued Salaries" +msgstr "الرواتب المستحقة" + +#: inventory/signals.py:466 msgid "Rent Expense" msgstr "مصروف الإيجار" -#: inventory/signals.py:186 -msgid "Utilities Expense" -msgstr "مصروف الخدمات" +#: inventory/signals.py:478 +msgid "Salaries and Administrative Fees" +msgstr "الرواتب والرسوم الإدارية" -#: inventory/utils.py:29 +#: inventory/signals.py:488 +msgid "Medical Insurance" +msgstr "التأمين الطبي" + +#: inventory/signals.py:498 +msgid "Marketing and Advertising Expenses" +msgstr "مصروفات التسويق والإعلان" + +#: inventory/signals.py:508 +msgid "Commissions and Incentives" +msgstr "العمولات والحوافز" + +#: inventory/signals.py:518 +msgid "Travel Tickets" +msgstr "تذاكر السفر" + +#: inventory/signals.py:528 +msgid "Social Insurance" +msgstr "التأمينات الاجتماعية" + +#: inventory/signals.py:538 +msgid "Government Fees" +msgstr "الرسوم الحكومية" + +#: inventory/signals.py:548 +msgid "Fees and Subscriptions" +msgstr "الرسوم والاشتراكات" + +#: inventory/signals.py:558 +msgid "Office Services Expenses" +msgstr "مصروفات خدمات المكتب" + +#: inventory/signals.py:568 +msgid "Office Supplies and Printing" +msgstr "اللوازم المكتبية والطباعة" + +#: inventory/signals.py:578 +msgid "Hospitality Expenses" +msgstr "مصروفات الضيافة" + +#: inventory/signals.py:588 +msgid "Bank Commissions" +msgstr "عمولات البنوك" + +#: inventory/signals.py:598 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:197 +msgid "Other Expenses" +msgstr "مصروفات أخرى" + +#: inventory/signals.py:608 +msgid "Transportation Expenses" +msgstr "مصروفات النقل" + +#: inventory/signals.py:615 +msgid "Salaries and Wages" +msgstr "الرواتب والأجور" + +#: inventory/signals.py:616 +msgid "Sales Commissions" +msgstr "عمولات المبيعات" + +#: inventory/signals.py:617 +msgid "Shipping and Customs Clearance" +msgstr "الشحن والتخليص الجمركي" + +#: inventory/signals.py:620 +msgid "Zakat" +msgstr "الزكاة" + +#: inventory/signals.py:621 +msgid "Taxes" +msgstr "الضرائب" + +#: inventory/signals.py:622 +msgid "Foreign Currency Translation" +msgstr "تحويل العملات الأجنبية" + +#: inventory/signals.py:623 +msgid "Interest Expenses" +msgstr "مصروفات الفائدة" + +#: inventory/utils.py:35 msgid "success" msgstr "ناجحة" -#: inventory/utils.py:30 templates/inventory/car_form.html:383 +#: inventory/utils.py:36 templates/inventory/car_form.html:413 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:427 msgid "error" msgstr "خطأ" -#: inventory/utils.py:31 templates/account/password_change.html:27 +#: inventory/utils.py:37 templates/account/password_change.html:27 msgid "Forgot Password?" msgstr "نسيت كلمة المرور؟" -#: inventory/views.py:256 -msgid "VIN number exists" -msgstr "رقم الهيكل موجود مسبقاً" - -#: inventory/views.py:374 templates/dashboards/accounting.html:21 -#: templates/inventory/car_inventory.html:5 -#: templates/inventory/car_inventory.html:9 -msgid "inventory" -msgstr "المخزون" - -#: inventory/views.py:525 -msgid "Car finance details saved successfully." -msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." - -#: inventory/views.py:541 -msgid "Car finance details updated successfully." -msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." - -#: inventory/views.py:563 -msgid "Car updated successfully." -msgstr "تم تحديث السيارة بنجاح" - -#: inventory/views.py:575 -msgid "Car deleted successfully." -msgstr "تم حذف السيارة بنجاح." - -#: inventory/views.py:620 -msgid "Custom Card added successfully." -msgstr "تم إضافة البطاقة الجمركية بنجاح." - -#: inventory/views.py:629 -msgid "This car is already reserved." -msgstr "هذه السيارة محجوزة بالفعل." - -#: inventory/views.py:637 +#: inventory/utils.py:105 msgid "Car reserved successfully." msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:658 +#: inventory/views.py:324 +msgid "VIN number exists" +msgstr "رقم الهيكل موجود مسبقاً" + +#: inventory/views.py:514 templates/dashboards/accounting.html:21 +#: templates/inventory/car_inventory.html:5 +msgid "inventory" +msgstr "المخزون" + +#: inventory/views.py:671 +msgid "Car finance details saved successfully." +msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." + +#: inventory/views.py:701 +msgid "Car finance details updated successfully." +msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." + +#: inventory/views.py:732 +msgid "Car updated successfully." +msgstr "تم تحديث السيارة بنجاح" + +#: inventory/views.py:744 +msgid "Car deleted successfully." +msgstr "تم حذف السيارة بنجاح." + +#: inventory/views.py:790 +msgid "Custom Card added successfully." +msgstr "تم إضافة البطاقة الجمركية بنجاح." + +#: inventory/views.py:799 +msgid "This car is already reserved." +msgstr "هذه السيارة محجوزة بالفعل." + +#: inventory/views.py:819 msgid "Reservation renewed successfully." msgstr "تم تجديد الحجز بنجاح" -#: inventory/views.py:663 +#: inventory/views.py:827 msgid "Reservation canceled successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:668 +#: inventory/views.py:832 msgid "Invalid action." msgstr "إجراء غير صالح." -#: inventory/views.py:672 +#: inventory/views.py:836 msgid "Invalid request method." msgstr "طريقة الطلب غير صالحة" -#: inventory/views.py:694 +#: inventory/views.py:858 msgid "Dealer updated successfully." msgstr "تم تحديث المعرض بنجاح." -#: inventory/views.py:714 templates/header.html:101 +#: inventory/views.py:878 templates/header.html:153 msgid "customers" msgstr "العملاء" -#: inventory/views.py:754 +#: inventory/views.py:967 msgid "Customer created successfully." msgstr "تم إنشاء العميل بنجاح." -#: inventory/views.py:770 +#: inventory/views.py:983 msgid "Customer updated successfully." msgstr "تم تحديث العميل بنجاح." -#: inventory/views.py:777 +#: inventory/views.py:990 msgid "Customer deleted successfully." msgstr "تم حذف العميل بنجاح." -#: inventory/views.py:802 +#: inventory/views.py:1015 msgid "Vendor created successfully." msgstr "تم إنشاء المورد بنجاح." -#: inventory/views.py:818 +#: inventory/views.py:1031 msgid "Vendor updated successfully." msgstr "تم تحديث المورد بنجاح" -#: inventory/views.py:825 +#: inventory/views.py:1038 msgid "Vendor deleted successfully." msgstr "تم حذف المورد بنجاح." -#: inventory/views.py:847 +#: inventory/views.py:1059 msgid "Quotation created successfully." msgstr "تم إنشاء عرض السعر بنجاح." -#: inventory/views.py:1148 +#: inventory/views.py:1361 msgid "Quotation Approved" msgstr "تمت الموافقة على العرض" -#: inventory/views.py:1169 +#: inventory/views.py:1382 msgid "Quotation Paid" msgstr "تم دفع العرض" -#: inventory/views.py:1177 +#: inventory/views.py:1390 msgid "Quotation already approved." msgstr "تمت الموافقة على العرض بالفعل." -#: inventory/views.py:1192 +#: inventory/views.py:1405 msgid "Quotation confirmed and sales order created." msgstr "تم تأكيد عرض السعر وإنشاء أمر البيع." -#: inventory/views.py:1229 +#: inventory/views.py:1447 msgid "User created successfully." msgstr "تم إنشاء المستخدم بنجاح." -#: inventory/views.py:1253 +#: inventory/views.py:1472 msgid "User updated successfully." msgstr "تم تحديث المستخدم بنجاح" -#: inventory/views.py:1264 +#: inventory/views.py:1483 msgid "User deleted successfully." msgstr "تم حذف المستخدم بنجاح." -#: inventory/views.py:2232 -msgid "Customer is already a lead." -msgstr "العميل هو بالفعل عميل محتمل." - -#: inventory/views.py:2236 -msgid "Customer successfully marked as a lead." -msgstr "تم تمييز العميل بنجاح كعميل محتمل." - -#: inventory/views.py:2312 +#: inventory/views.py:2734 msgid "Opportunity deleted successfully." msgstr "تم حذف الفرصة بنجاح." -#: inventory/views.py:2350 +#: inventory/views.py:2772 msgid "Notification marked as read." msgstr "تم تمييز الإشعار كمقروء." +#: inventory/views.py:2797 +msgid "Service created successfully." +msgstr "تم إنشاء الخدمة بنجاح." + +#: inventory/views.py:2812 +msgid "Service updated successfully." +msgstr "تم تحديث الخدمة بنجاح." + #: templates/account/login.html:6 templates/account/login.html:21 #: templates/account/login.html:33 templates/account/signup.html:79 -#: templates/header.html:323 templates/welcome.html:137 +#: templates/header.html:394 templates/welcome.html:137 msgid "Sign In" msgstr "تسجيل الدخول" @@ -1368,12 +1747,12 @@ msgstr "إذا لم تقم بإنشاء حساب بعد، يرجى التسجي #: templates/account/login.html:38 templates/account/signup-wizard.html:16 #: templates/account/signup.html:5 templates/account/signup.html:78 -#: templates/header.html:326 templates/welcome.html:141 +#: templates/header.html:397 templates/welcome.html:141 msgid "Sign Up" msgstr "إنشاء حساب" #: templates/account/logout.html:3 templates/account/logout.html:11 -#: templates/account/logout.html:20 templates/header.html:316 +#: templates/account/logout.html:20 templates/header.html:387 msgid "Sign Out" msgstr "تسجيل الخروج" @@ -1429,6 +1808,7 @@ msgid "Access" msgstr "الوصول" #: templates/account/signup-wizard.html:27 +#: templates/items/service/service_list.html:23 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:443 #: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:485 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_update.html:13 @@ -1467,25 +1847,26 @@ msgstr "في أي مكان" msgid "Submit" msgstr "إرسال" -#: templates/account/signup-wizard.html:71 -#: templates/ledger/bank_accounts/bank_account_list.html:85 +#: templates/account/signup-wizard.html:71 templates/partials/pagination.html:8 #: venv/lib/python3.11/site-packages/alabaster/relations.html:9 msgid "Previous" msgstr "السابق" #: templates/account/signup-wizard.html:73 -#: templates/ledger/bank_accounts/bank_account_list.html:107 +#: templates/partials/pagination.html:43 #: venv/lib/python3.11/site-packages/alabaster/relations.html:13 msgid "Next" msgstr "التالي" -#: templates/account/signup-wizard.html:149 -#: templates/inventory/car_form.html:560 +#: templates/account/signup-wizard.html:152 +#: templates/inventory/car_form.html:641 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:654 msgid "Please Wait" msgstr "الرجاء الإنتظار" -#: templates/account/signup-wizard.html:150 -#: templates/inventory/car_form.html:561 +#: templates/account/signup-wizard.html:153 +#: templates/inventory/car_form.html:642 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:655 msgid "Loading" msgstr "تحميل" @@ -1501,66 +1882,168 @@ msgstr "هل لديك حساب بالفعل؟" msgid "HAIKAL" msgstr "هيكل" -#: templates/crm/lead_list.html:4 templates/crm/lead_list.html:5 -#: templates/crm/lead_list.html:9 -msgid "Leads" -msgstr "الفرص" +#: templates/crm/leads/lead_detail.html:10 +#: templates/crm/leads/lead_detail.html:28 +msgid "Lead Details" +msgstr "تفاصيل العميل المحتمل" -#: templates/crm/lead_list.html:14 templates/customers/customer_form.html:18 -#: templates/customers/customer_list.html:14 -msgid "Add Customer" -msgstr "إضافة عميل" +#: templates/crm/leads/lead_detail.html:37 +msgid "Assigned to" +msgstr "مُعين إلى" -#: templates/crm/lead_list.html:24 templates/customers/customer_list.html:24 -msgid "Enter customer name" -msgstr "أدخل اسم العميل" +#: templates/crm/leads/lead_detail.html:39 +msgid "Not Assigned" +msgstr "غير معين" -#: templates/crm/lead_list.html:44 templates/customers/customer_list.html:45 +#: templates/crm/leads/lead_detail.html:65 +msgid "Car Requested" +msgstr "السيارة المطلوبة" + +#: templates/crm/leads/lead_detail.html:97 +msgid "Lead Source" +msgstr "مصدر العميل المحتمل" + +#: templates/crm/leads/lead_detail.html:103 +msgid "Lead Channel" +msgstr "قناة العميل المحتمل" + +#: templates/crm/leads/lead_detail.html:142 +msgid "by" +msgstr "بواسطة" + +#: templates/crm/leads/lead_detail.html:143 +msgid "on" +msgstr "في" + +#: templates/crm/leads/lead_detail.html:154 +#: templates/customers/view_customer.html:113 +msgid "Add Note" +msgstr "إضافة ملاحظة" + +#: templates/crm/leads/lead_form.html:14 +#: templates/crm/opportunities/opportunity_form.html:75 +#: templates/customers/customer_form.html:117 +#: templates/inventory/add_colors.html:55 +#: templates/inventory/add_custom_card.html:7 +#: templates/inventory/car_edit.html:12 +#: templates/inventory/car_finance_form.html:40 +#: templates/inventory/car_location_form.html:18 +#: templates/inventory/color_palette.html:106 +#: templates/items/expenses/expense_create.html:16 +#: templates/items/expenses/expense_update.html:16 +#: templates/items/service/service_create.html:22 +#: templates/ledger/bank_accounts/bank_account_form.html:31 +#: templates/ledger/coa_accounts/account_form.html:30 +#: templates/organizations/organization_form.html:17 +#: templates/representatives/representative_form.html:11 +#: templates/sales/estimates/estimate_form.html:41 +#: templates/sales/invoices/approved_invoice_update.html:16 +#: templates/sales/invoices/draft_invoice_update.html:16 +#: templates/sales/invoices/invoice_create.html:16 +#: templates/sales/invoices/paid_invoice_update.html:16 +#: templates/sales/journals/journal_form.html:18 +#: templates/sales/payments/payment_create.html:16 +#: templates/sales/payments/payment_form.html:32 +#: templates/sales/quotation_form.html:18 templates/users/user_form.html:38 +#: templates/vendors/vendor_form.html:41 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:81 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_update.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html:78 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:76 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:70 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:55 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:102 +msgid "Save" +msgstr "حفظ" + +#: templates/crm/leads/lead_form.html:17 +#: templates/crm/opportunities/opportunity_form.html:76 +#: templates/inventory/add_colors.html:56 +#: templates/inventory/add_custom_card.html:8 +#: templates/inventory/car_confirm_delete.html:14 +#: templates/inventory/car_detail.html:244 +#: templates/inventory/car_finance_form.html:41 +#: templates/inventory/color_palette.html:107 +#: templates/inventory/reserve_car.html:30 +#: templates/ledger/bank_accounts/bank_account_form.html:33 +#: templates/ledger/coa_accounts/account_form.html:32 +#: templates/representatives/representative_form.html:12 +#: templates/sales/estimates/estimate_form.html:42 +#: templates/sales/estimates/estimate_preview.html:223 +#: templates/sales/estimates/estimate_preview.html:242 +#: templates/sales/journals/journal_form.html:19 +#: templates/sales/quotation_form.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_create.html:37 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:205 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals.html:11 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals_v2.html:9 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:188 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:42 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:121 +msgid "Cancel" +msgstr "إلغاء" + +#: templates/crm/leads/lead_list.html:12 +msgid "Add Lead" +msgstr "إضافة عميل محتمل" + +#: templates/crm/leads/lead_list.html:22 +msgid "Enter lead name" +msgstr "أدخل اسم العميل المحتمل" + +#: templates/crm/leads/lead_list.html:50 +#: templates/customers/customer_list.html:45 #: templates/vendors/vendors_list.html:49 msgid "email" msgstr "البريد الإلكتروني" -#: templates/crm/lead_list.html:63 templates/customers/customer_list.html:64 +#: templates/crm/leads/lead_list.html:72 +#: templates/customers/customer_list.html:64 #: templates/organizations/organization_list.html:68 #: templates/vendors/vendors_list.html:68 msgid "Create date" msgstr "تاريخ الإنشاء" -#: templates/crm/lead_list.html:82 templates/customers/customer_list.html:83 -msgid "Delete Customer" -msgstr "حذف العميل" +#: templates/crm/leads/lead_list.html:85 +msgid "Delete Lead" +msgstr "حذف العميل المحتمل" -#: templates/crm/lead_list.html:89 templates/customers/customer_list.html:90 -#: templates/customers/view_customer.html:19 -msgid "Are you sure you want to delete this customer?" -msgstr "هل أنت متأكد أنك تريد حذف هذا العميل؟" +#: templates/crm/leads/lead_list.html:92 +msgid "Are you sure you want to delete this lead?" +msgstr "هل أنت متأكد أنك تريد حذف هذا العميل المحتمل؟" -#: templates/crm/lead_list.html:92 templates/crm/opportunity_list.html:153 +#: templates/crm/leads/lead_list.html:95 +#: templates/crm/opportunities/opportunity_list.html:155 #: templates/customers/customer_list.html:93 #: templates/customers/view_customer.html:26 -#: templates/inventory/car_detail.html:303 +#: templates/inventory/car_detail.html:299 #: templates/ledger/bank_accounts/bank_account_detail.html:26 #: templates/ledger/coa_accounts/account_detail.html:26 #: templates/ledger/coa_accounts/account_list.html:82 #: templates/organizations/organization_list.html:97 #: templates/sales/estimates/estimate_detail.html:20 #: templates/sales/invoices/invoice_detail.html:20 +#: templates/sales/invoices/invoice_detail.html:45 +#: templates/sales/invoices/invoice_detail.html:121 #: templates/sales/quotation_detail.html:21 templates/users/user_detail.html:27 #: templates/vendors/vendors_list.html:97 templates/vendors/view_vendor.html:29 #: venv/lib/python3.11/site-packages/django/forms/widgets.py:802 msgid "No" msgstr "لا" -#: templates/crm/lead_list.html:95 templates/crm/opportunity_list.html:156 +#: templates/crm/leads/lead_list.html:98 +#: templates/crm/opportunities/opportunity_list.html:158 #: templates/customers/customer_list.html:96 #: templates/customers/view_customer.html:31 -#: templates/inventory/car_detail.html:307 +#: templates/inventory/car_detail.html:303 #: templates/ledger/bank_accounts/bank_account_detail.html:31 #: templates/ledger/coa_accounts/account_detail.html:32 #: templates/ledger/coa_accounts/account_list.html:85 #: templates/organizations/organization_list.html:100 #: templates/sales/estimates/estimate_detail.html:24 #: templates/sales/invoices/invoice_detail.html:24 +#: templates/sales/invoices/invoice_detail.html:49 +#: templates/sales/invoices/invoice_detail.html:119 #: templates/sales/quotation_detail.html:25 templates/users/user_detail.html:32 #: templates/vendors/vendors_list.html:100 #: templates/vendors/view_vendor.html:32 @@ -1568,18 +2051,14 @@ msgstr "لا" msgid "Yes" msgstr "نعم" -#: templates/crm/lead_list.html:106 -msgid "Lead" -msgstr "فرصة" - -#: templates/crm/lead_list.html:129 templates/crm/opportunity_list.html:31 +#: templates/crm/leads/lead_list.html:143 +#: templates/crm/opportunities/opportunity_list.html:27 #: templates/customers/customer_list.html:125 #: templates/dealers/dealer_detail.html:24 #: templates/inventory/car_detail.html:112 -#: templates/inventory/car_detail.html:163 +#: templates/inventory/car_detail.html:160 #: templates/ledger/bank_accounts/bank_account_detail.html:57 -#: templates/ledger/coa_accounts/account_detail.html:61 -#: templates/ledger/coa_accounts/account_list.html:113 +#: templates/ledger/coa_accounts/account_detail.html:121 #: templates/organizations/organization_detail.html:14 #: templates/organizations/organization_list.html:128 #: templates/representatives/representative_detail.html:13 @@ -1592,77 +2071,160 @@ msgstr "فرصة" msgid "Edit" msgstr "تحديث" -#: templates/crm/opportunity_list.html:13 -msgid "Add Opportunity" -msgstr "إضافة فرصة" +#: templates/crm/leads/lead_list.html:145 +#: templates/crm/opportunities/opportunity_list.html:28 +#: templates/customers/customer_list.html:126 +#: templates/customers/view_customer.html:51 +#: templates/ledger/bank_accounts/bank_account_detail.html:63 +#: templates/ledger/coa_accounts/account_detail.html:127 +#: templates/ledger/coa_accounts/account_list.html:117 +#: templates/organizations/organization_detail.html:17 +#: templates/organizations/organization_list.html:130 +#: templates/representatives/representative_detail.html:16 +#: templates/users/user_detail.html:65 templates/vendors/vendors_list.html:137 +#: templates/vendors/view_vendor.html:67 +#: venv/lib/python3.11/site-packages/django/forms/formsets.py:499 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_delete.html:28 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:25 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_delete.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:60 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html:46 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/import_job_delete.html:18 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html:42 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entitiy_list.html:22 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entity_delete.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/includes/card_entity.html:31 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:25 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_delete.html:24 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:88 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_delete.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:130 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_delete.html:20 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:44 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:103 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:25 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_delete.html:24 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/service_delete.html:20 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:44 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/tags/uom_table.html:43 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/uom_delete.html:28 +msgid "Delete" +msgstr "حذف" -#: templates/crm/opportunity_list.html:24 +#: templates/crm/notifications.html:16 +#: templates/crm/notifications_history.html:14 +msgid "System" +msgstr "نظام" + +#: templates/crm/notifications_history.html:25 +msgid "Mark as Read" +msgstr "وضع علامة مقروء" + +#: templates/crm/opportunities/opportunity_detail.html:10 +msgid "Opportunity details" +msgstr "تفاصيل الفرصة" + +#: templates/crm/opportunities/opportunity_detail.html:196 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_ic.html:5 msgid "Revenue" msgstr "الإيرادات" -#: templates/crm/opportunity_list.html:69 -msgid "Expected Revenue" -msgstr "الإيرادات المتوقعة" +#: templates/crm/opportunities/opportunity_detail.html:246 +msgid "Contact Name" +msgstr "اسم جهة الاتصال" -#: templates/crm/opportunity_list.html:91 -msgid "Closing Date and Time" -msgstr "تاريخ ووقت الإغلاق" +#: templates/crm/opportunities/opportunity_detail.html:279 +msgid "Create Date" +msgstr "تاريخ الإنشاء" -#: templates/crm/opportunity_list.html:121 +#: templates/crm/opportunities/opportunity_form.html:8 +msgid "Edit Opportunity" +msgstr "تعديل الفرصة" + +#: templates/crm/opportunities/opportunity_form.html:8 +msgid "Add New Opportunity" +msgstr "إضافة فرصة جديدة" + +#: templates/crm/opportunities/opportunity_form.html:56 +msgid "Enter probability" +msgstr "أدخل الاحتمالية" + +#: templates/crm/opportunities/opportunity_form.html:57 +#: templates/crm/opportunities/opportunity_list.html:110 msgid "Probability" msgstr "الاحتمالية" -#: templates/crm/opportunity_list.html:143 +#: templates/crm/opportunities/opportunity_list.html:11 +msgid "Add Opportunity" +msgstr "إضافة فرصة" + +#: templates/crm/opportunities/opportunity_list.html:55 +#: templates/ledger/coa_accounts/account_list.html:115 +#: templates/sales/invoices/invoice_list.html:60 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:44 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entitiy_list.html:20 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:38 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:85 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:22 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_list.html:32 +msgid "View" +msgstr "عرض" + +#: templates/crm/opportunities/opportunity_list.html:71 +#: templates/inventory/inventory_stats.html:48 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html:43 +msgid "Details" +msgstr "التفاصيل" + +#: templates/crm/opportunities/opportunity_list.html:78 +msgid "Expected Revenue" +msgstr "الإيرادات المتوقعة" + +#: templates/crm/opportunities/opportunity_list.html:89 +msgid "Contact" +msgstr "جهة الاتصال" + +#: templates/crm/opportunities/opportunity_list.html:145 msgid "Delete Opportunity" msgstr "حذف الفرصة" -#: templates/crm/opportunity_list.html:150 +#: templates/crm/opportunities/opportunity_list.html:152 msgid "Are you sure you want to delete this opportunity?" msgstr "هل أنت متأكد أنك تريد حذف هذه الفرصة؟" -#: templates/customers/customer_form.html:16 +#: templates/customers/customer_form.html:15 msgid "Edit Customer" msgstr "تحديث العميل" -#: templates/customers/customer_form.html:36 +#: templates/customers/customer_form.html:17 +#: templates/customers/customer_list.html:14 +msgid "Add Customer" +msgstr "إضافة عميل" + +#: templates/customers/customer_form.html:86 +msgid "Enter national ID" +msgstr "رقم الهوية الوطنية" + +#: templates/customers/customer_form.html:115 #: templates/organizations/organization_form.html:14 -#: templates/vendors/vendor_form.html:38 +#: templates/users/user_form.html:35 templates/vendors/vendor_form.html:38 msgid "cancel" msgstr "إلغاء" -#: templates/customers/customer_form.html:39 -#: templates/inventory/add_colors.html:55 -#: templates/inventory/add_custom_card.html:7 -#: templates/inventory/car_edit.html:12 -#: templates/inventory/car_finance_form.html:40 -#: templates/inventory/car_location_form.html:18 -#: templates/inventory/color_palette.html:106 -#: templates/items/service/service_create.html:16 -#: templates/ledger/bank_accounts/bank_account_form.html:31 -#: templates/ledger/coa_accounts/account_form.html:30 -#: templates/organizations/organization_form.html:17 -#: templates/representatives/representative_form.html:11 -#: templates/sales/estimates/estimate_form.html:41 -#: templates/sales/invoices/invoice_create.html:16 -#: templates/sales/journals/journal_form.html:18 -#: templates/sales/payments/payment_create.html:16 -#: templates/sales/payments/payment_form.html:32 -#: templates/sales/quotation_form.html:18 templates/users/user_form.html:19 -#: templates/vendors/vendor_form.html:41 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:81 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_update.html:19 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html:78 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:76 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:70 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:55 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:102 -msgid "Save" -msgstr "حفظ" +#: templates/customers/customer_list.html:24 +msgid "Enter customer name" +msgstr "أدخل اسم العميل" -#: templates/customers/customer_list.html:126 -msgid "Mark as Lead" -msgstr "تمييز كعميل محتمل" +#: templates/customers/customer_list.html:83 +msgid "Delete Customer" +msgstr "حذف العميل" + +#: templates/customers/customer_list.html:90 +#: templates/customers/view_customer.html:19 +msgid "Are you sure you want to delete this customer?" +msgstr "هل أنت متأكد أنك تريد حذف هذا العميل؟" #: templates/customers/view_customer.html:4 templates/users/user_detail.html:5 msgid "View Customer" @@ -1672,6 +2234,42 @@ msgstr "عرض العميل" msgid "Customer details" msgstr "تفاصيل العميل" +#: templates/customers/view_customer.html:54 +#: templates/items/expenses/expenses_list.html:34 +#: templates/items/service/service_list.html:44 +#: templates/ledger/bank_accounts/bank_account_list.html:34 +#: templates/ledger/coa_accounts/account_list.html:209 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:101 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_update.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/tags/bank_accounts_table.html:49 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:46 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:154 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/tags/customer_table.html:63 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/import_job_update.html:14 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html:40 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entity_update.html:16 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:56 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/expense_update.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html:43 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:66 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/inventory_item_update.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html:38 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:40 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:137 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail.html:34 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_update.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:42 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:61 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/service_update.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:42 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_list.html:34 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_update.html:22 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/tags/uom_table.html:41 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/uom_update.html:24 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/vendor/tags/vendor_table.html:63 +msgid "Update" +msgstr "تحديث" + #: templates/customers/view_customer.html:78 msgid "Visits" msgstr "الزيارات" @@ -1693,19 +2291,11 @@ msgstr "العروض" msgid "Default Address" msgstr "العنوان الافتراضي" -#: templates/customers/view_customer.html:112 -msgid "Notes on Customer" -msgstr "ملاحظات عن العميل" - -#: templates/customers/view_customer.html:114 -msgid "Add Note" -msgstr "إضافة ملاحظة" - -#: templates/dashboards/accounting.html:30 +#: templates/dashboards/accounting.html:30 templates/index.html:45 msgid "inventory value" msgstr "قيمة المخزون" -#: templates/dashboards/accounting.html:34 +#: templates/dashboards/accounting.html:34 templates/index.html:49 msgid "Profits" msgstr "الأرباح" @@ -1713,15 +2303,6 @@ msgstr "الأرباح" msgid "Commissions" msgstr "العمولات" -#: templates/dealers/activity_log.html:11 templates/header.html:297 -#: 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:325 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:10 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:33 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:10 -msgid "Activity" -msgstr "النشاط" - #: templates/dealers/dealer_detail.html:15 msgid "Profile" msgstr "الملف الشخصي" @@ -1746,6 +2327,7 @@ msgstr "إجمالي المستخدمين" #: templates/dealers/dealer_detail.html:65 #: templates/ledger/coa_accounts/account_detail.html:54 #: templates/ledger/coa_accounts/account_list.html:53 +#: templates/ledger/coa_accounts/account_list.html:195 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:433 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:26 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/tags/customer_table.html:11 @@ -1755,7 +2337,7 @@ msgid "Active" msgstr "نشط" #: templates/dealers/dealer_detail.html:67 -#: templates/inventory/car_detail.html:253 +#: templates/inventory/car_detail.html:249 msgid "Expired" msgstr "منتهي الصلاحية" @@ -1829,11 +2411,11 @@ msgstr "طلب غير صالح" msgid "Go Back" msgstr "العودة" -#: templates/footer.html:6 +#: templates/footer.html:5 msgid "All right reserved" msgstr "جميع الحقوق محفوظة" -#: templates/footer.html:6 +#: templates/footer.html:5 msgid "tenhal" msgstr "تنحل" @@ -1858,42 +2440,106 @@ msgstr "إرسال" msgid "You" msgstr "أنت" -#: templates/header.html:64 +#: templates/header.html:13 templates/header.html:18 +msgid "Dashboards" +msgstr "لوحة القيادة" + +#: templates/header.html:21 +msgid "Accounting" +msgstr "الحسابات" + +#: templates/header.html:37 +msgid "CRM" +msgstr "إدارة علاقات العملاء" + +#: templates/header.html:63 msgid "add car" msgstr "إضافة سيارة" -#: templates/header.html:85 templates/header.html:90 +#: templates/header.html:84 templates/header.html:89 msgid "sales" msgstr "المبيعات" -#: templates/header.html:94 -msgid "vendors" -msgstr "الموردين" - -#: templates/header.html:124 +#: templates/header.html:93 msgid "create quotation" msgstr "إنشاء عرض" -#: templates/header.html:132 +#: templates/header.html:101 msgid "quotations" msgstr "العروض" -#: templates/header.html:140 +#: templates/header.html:109 msgid "orders" msgstr "الطلبات" -#: templates/header.html:148 +#: templates/header.html:117 msgid "invoices" msgstr "الفواتير" -#: templates/header.html:193 templates/welcome.html:65 +#: templates/header.html:137 templates/header.html:142 +msgid "crm" +msgstr "إدارة علاقات العملاء" + +#: templates/header.html:146 +msgid "leads" +msgstr "الفرص" + +#: templates/header.html:189 templates/header.html:194 +msgid "Financials" +msgstr "البيانات المالية" + +#: templates/header.html:198 +#: templates/ledger/coa_accounts/account_list.html:183 +#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:436 +#: venv/lib/python3.11/site-packages/django_ledger/models/coa.py:152 +msgid "Chart of Accounts" +msgstr "قائمة الحسابات" + +#: templates/header.html:205 +#: 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:212 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:220 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 +#: templates/items/service/service_list.html:4 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_ic.html:8 +msgid "Expenses" +msgstr "المصروفات" + +#: templates/header.html:228 +msgid "vendors" +msgstr "الموردين" + +#: templates/header.html:264 templates/welcome.html:65 msgid "Haikal" msgstr "هيكل" -#: templates/header.html:286 templates/header.html:290 +#: templates/header.html:357 templates/header.html:361 msgid "profile" msgstr "الملف الشخصي" +#: templates/index.html:14 +msgid "Total Cars in Inventory" +msgstr "إجمالي السيارات في المخزون" + +#: templates/index.html:22 +msgid "In Our Showroom" +msgstr "في صالة العرض الخاصة بنا" + +#: templates/index.html:26 +msgid "Outside Showroom" +msgstr "خارج صالة العرض" + #: templates/inventory/add_colors.html:5 msgid "Add Colors" msgstr "إضافة لون" @@ -1902,31 +2548,6 @@ msgstr "إضافة لون" msgid "Select exterior and interior colors for" msgstr "اختر الألوان الخارجية والداخلية لـ" -#: templates/inventory/add_colors.html:56 -#: templates/inventory/add_custom_card.html:8 -#: templates/inventory/car_confirm_delete.html:14 -#: templates/inventory/car_detail.html:248 -#: templates/inventory/car_finance_form.html:41 -#: templates/inventory/color_palette.html:107 -#: templates/inventory/reserve_car.html:30 -#: templates/ledger/bank_accounts/bank_account_form.html:33 -#: templates/ledger/coa_accounts/account_form.html:32 -#: templates/representatives/representative_form.html:12 -#: templates/sales/estimates/estimate_form.html:42 -#: templates/sales/estimates/estimate_preview.html:223 -#: templates/sales/estimates/estimate_preview.html:242 -#: templates/sales/journals/journal_form.html:19 -#: templates/sales/quotation_form.html:19 templates/users/user_form.html:20 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_create.html:37 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:205 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals.html:11 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals_v2.html:9 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:188 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:42 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:121 -msgid "Cancel" -msgstr "إلغاء" - #: templates/inventory/car_detail.html:3 templates/inventory/car_detail.html:14 #: templates/sales/quotation_detail.html:68 #: templates/sales/quotation_pdf.html:37 @@ -1938,11 +2559,13 @@ msgid "year" msgstr "السنة" #: templates/inventory/car_detail.html:27 templates/inventory/car_form.html:82 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:82 #: templates/inventory/car_list.html:79 msgid "make" msgstr "الصانع" -#: templates/inventory/car_detail.html:31 templates/inventory/car_form.html:99 +#: templates/inventory/car_detail.html:31 templates/inventory/car_form.html:95 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:99 #: templates/inventory/car_list.html:97 msgid "model" msgstr "الموديل" @@ -1951,21 +2574,24 @@ msgstr "الموديل" msgid "series" msgstr "السلسلة" -#: templates/inventory/car_detail.html:39 templates/inventory/car_form.html:142 +#: templates/inventory/car_detail.html:39 templates/inventory/car_form.html:130 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:143 #: templates/inventory/car_list.html:141 msgid "trim" msgstr "الفئة" #: templates/inventory/car_detail.html:69 -#: templates/inventory/car_detail.html:318 -#: templates/inventory/car_form.html:251 templates/inventory/car_form.html:273 +#: templates/inventory/car_detail.html:314 +#: templates/inventory/car_form.html:142 templates/inventory/car_form.html:265 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:252 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:279 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:299 #: templates/inventory/car_list.html:47 templates/inventory/car_list.html:221 msgid "specifications" msgstr "المواصفات" #: templates/inventory/car_detail.html:72 -#: templates/inventory/car_inventory.html:119 -#: templates/ledger/bank_accounts/bank_account_list.html:64 +#: templates/inventory/car_inventory.html:116 #: templates/representatives/representative_list.html:30 #: templates/sales/estimates/estimate_list.html:50 #: templates/sales/journals/journal_list.html:34 @@ -1975,8 +2601,8 @@ msgstr "عرض" #: templates/inventory/car_detail.html:90 #: templates/inventory/car_detail.html:104 -#: templates/inventory/car_detail.html:169 -#: templates/inventory/car_detail.html:213 +#: templates/inventory/car_detail.html:165 +#: templates/inventory/car_detail.html:209 #: templates/inventory/car_location_form.html:10 msgid "Add" msgstr "إضافة" @@ -1986,7 +2612,7 @@ msgid "Location" msgstr "الموقع" #: templates/inventory/car_detail.html:98 -#: templates/inventory/car_inventory.html:95 +#: templates/inventory/car_inventory.html:92 msgid "Our Showroom" msgstr "معرضنا" @@ -1998,22 +2624,22 @@ msgstr "لا يوجد موقع متاح." msgid "Financial Details" msgstr "التفاصيل المالية" -#: templates/inventory/car_detail.html:140 +#: templates/inventory/car_detail.html:138 msgid "Additional Fee" msgstr "رسوم إضافية" -#: templates/inventory/car_detail.html:152 +#: templates/inventory/car_detail.html:150 #: templates/sales/quotation_detail.html:111 #: templates/sales/quotation_pdf.html:67 #: templates/sales/sales_order_detail.html:26 msgid "VAT Amount" msgstr "مبلغ ضريبة القيمة المضافة" -#: templates/inventory/car_detail.html:156 -#: templates/inventory/inventory_stats.html:61 +#: templates/inventory/car_detail.html:154 +#: templates/inventory/inventory_stats.html:57 #: templates/sales/estimates/estimate_detail.html:124 #: templates/sales/estimates/estimate_preview.html:276 -#: templates/sales/invoices/invoice_detail.html:143 +#: templates/sales/invoices/invoice_detail.html:218 #: templates/sales/quotation_detail.html:78 #: templates/sales/quotation_pdf.html:47 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:98 @@ -2033,41 +2659,42 @@ msgstr "مبلغ ضريبة القيمة المضافة" msgid "Total" msgstr "الإجمالي" -#: templates/inventory/car_detail.html:167 +#: templates/inventory/car_detail.html:163 msgid "No finance details available." msgstr "لا توجد تفاصيل مالية متاحة." -#: templates/inventory/car_detail.html:179 +#: templates/inventory/car_detail.html:175 msgid "Colors Details" msgstr "تفاصيل الألوان" -#: templates/inventory/car_detail.html:186 +#: templates/inventory/car_detail.html:182 msgid "Exterior" msgstr "الخارجي" -#: templates/inventory/car_detail.html:195 +#: templates/inventory/car_detail.html:191 msgid "Interior" msgstr "الداخلي" -#: templates/inventory/car_detail.html:207 +#: templates/inventory/car_detail.html:203 msgid "No colors available for this car." msgstr "لا تتوفر ألوان لهذه السيارة." -#: templates/inventory/car_detail.html:223 +#: templates/inventory/car_detail.html:219 msgid "Reservations Details" msgstr "تفاصيل الحجز" -#: templates/inventory/car_detail.html:231 +#: templates/inventory/car_detail.html:227 msgid "Expires At" msgstr "ينتهي في" -#: templates/inventory/car_detail.html:232 -#: templates/ledger/bank_accounts/bank_account_list.html:53 +#: templates/inventory/car_detail.html:228 +#: templates/ledger/coa_accounts/account_detail.html:67 +#: templates/ledger/coa_accounts/account_detail.html:83 #: templates/representatives/representative_list.html:20 #: templates/sales/estimates/estimate_list.html:20 #: templates/sales/invoices/invoice_list.html:20 #: templates/sales/journals/journal_list.html:20 -#: templates/sales/payments/payment_list.html:21 +#: templates/sales/payments/payment_list.html:23 #: templates/sales/quotation_list.html:19 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/account_txs_table.html:29 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:29 @@ -2095,34 +2722,40 @@ msgstr "ينتهي في" msgid "Actions" msgstr "الإجراءات" -#: templates/inventory/car_detail.html:245 +#: templates/inventory/car_detail.html:241 msgid "Renew" msgstr "تجديد" -#: templates/inventory/car_detail.html:262 +#: templates/inventory/car_detail.html:258 #: templates/inventory/reserve_car.html:29 msgid "Reserve" msgstr "حجز" -#: templates/inventory/car_detail.html:299 +#: templates/inventory/car_detail.html:295 msgid "Are you sure you want to reserve this car?" msgstr "هل أنت متأكد أنك تريد حجز هذه السيارة؟" -#: templates/inventory/car_detail.html:325 -#: templates/inventory/car_form.html:275 templates/inventory/car_form.html:281 -#: templates/inventory/car_form.html:293 +#: templates/inventory/car_detail.html:321 +#: templates/inventory/car_form.html:267 templates/inventory/car_form.html:273 +#: templates/inventory/car_form.html:287 templates/inventory/car_form.html:307 +#: templates/inventory/car_form.html:319 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:281 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:287 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:301 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:321 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:333 #: templates/partials/scanner_modal.html:6 #: templates/partials/specifications_modal.html:8 msgid "Close" msgstr "إغلاق" -#: templates/inventory/car_detail.html:402 +#: templates/inventory/car_detail.html:398 #: templates/inventory/car_list.html:542 #: templates/partials/specifications_modal.html:11 msgid "No specifications available." msgstr "لا توجد مواصفات متاحة." -#: templates/inventory/car_detail.html:406 +#: templates/inventory/car_detail.html:402 #: templates/inventory/car_list.html:546 msgid "Error loading specifications." msgstr "حدث خطأ أثناء تحميل المواصفات." @@ -2140,88 +2773,118 @@ msgid "Finance Details for" msgstr "التفاصيل المالية لـ" #: templates/inventory/car_form.html:45 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:45 #: templates/representatives/representative_list.html:9 #: templates/representatives/representative_list.html:10 msgid "Search" msgstr "بحث" -#: templates/inventory/car_form.html:105 templates/inventory/car_form.html:126 -#: templates/inventory/car_form.html:147 templates/inventory/car_form.html:453 -#: templates/inventory/car_form.html:470 templates/inventory/car_form.html:471 -#: templates/inventory/car_form.html:489 +#: templates/inventory/car_form.html:101 templates/inventory/car_form.html:118 +#: templates/inventory/car_form.html:135 templates/inventory/car_form.html:299 +#: templates/inventory/car_form.html:483 templates/inventory/car_form.html:500 +#: templates/inventory/car_form.html:501 templates/inventory/car_form.html:521 +#: templates/inventory/car_form.html:540 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:105 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:126 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:148 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:313 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:497 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:514 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:515 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:535 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:554 msgid "Select" msgstr "اختيار" -#: templates/inventory/car_form.html:255 -msgid "Save and Add Another" -msgstr "حفظ وإضافة آخر" - -#: templates/inventory/car_form.html:258 -msgid "Save and Go to Inventory" -msgstr "حفظ والانتقال إلى المخزون" - -#: templates/inventory/car_form.html:292 -msgid "scanner" -msgstr "الماسح الضوئي" - -#: templates/inventory/car_form.html:297 -#: templates/partials/scanner_modal.html:10 -msgid "VIN will appear here." -msgstr "رقم الهيكل سيظهر هنا." - -#: templates/inventory/car_form.html:298 -#: templates/partials/scanner_modal.html:11 -msgid "Use OCR Fallback" -msgstr "التعرف الآلي على الحروف" - -#: templates/inventory/car_form.html:365 templates/inventory/car_form.html:366 -msgid "Please enter a valid VIN." -msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." - -#: templates/inventory/car_form.html:388 -msgid "An error occurred while decoding the VIN." -msgstr "حدث خطأ أثناء فك تشفير الهيكل" - -#: templates/inventory/car_inventory.html:55 -msgid "Stock" -msgstr "المخزون" - -#: templates/inventory/car_inventory.html:58 -msgid "Exterior Color" -msgstr "اللون الخارجي" - -#: templates/inventory/car_inventory.html:59 -msgid "Interior Color" -msgstr "اللون الداخلي" - -#: templates/inventory/car_inventory.html:60 -msgid "Showroom Location" -msgstr "موقع صالة العرض" - -#: templates/inventory/car_inventory.html:62 -msgid "Age" -msgstr "العمر" - -#: templates/inventory/car_inventory.html:90 -#: templates/inventory/car_inventory.html:91 -msgid "No Color" -msgstr "بدون لون" - -#: templates/inventory/car_inventory.html:128 -msgid "No cars available." -msgstr "لا توجد سيارات متاحة." - -#: templates/inventory/car_inventory.html:129 -msgid "Add a Car" -msgstr "إضافة سيارة" - +#: templates/inventory/car_form.html:149 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:259 #: templates/inventory/car_list.html:27 templates/inventory/car_list.html:214 msgid "options" msgstr "الخيارات" +#: templates/inventory/car_form.html:248 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:262 +msgid "Save and Add Another" +msgstr "حفظ وإضافة آخر" + +#: templates/inventory/car_form.html:251 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:265 +msgid "Save and Go to Inventory" +msgstr "حفظ والانتقال إلى المخزون" + +#: templates/inventory/car_form.html:285 +#: venv/lib/python3.11/site-packages/click/core.py:1396 +msgid "Options" +msgstr "الخيارات" + +#: templates/inventory/car_form.html:294 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:308 +#: templates/inventory/car_list.html:152 +msgid "equipment" +msgstr "التجهيزات" + +#: templates/inventory/car_form.html:318 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:332 +msgid "scanner" +msgstr "الماسح الضوئي" + +#: templates/inventory/car_form.html:323 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:337 +#: templates/partials/scanner_modal.html:10 +msgid "VIN will appear here." +msgstr "رقم الهيكل سيظهر هنا." + +#: templates/inventory/car_form.html:324 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:338 +#: templates/partials/scanner_modal.html:11 +msgid "Use OCR Fallback" +msgstr "التعرف الآلي على الحروف" + +#: templates/inventory/car_form.html:395 templates/inventory/car_form.html:396 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:409 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:410 +msgid "Please enter a valid VIN." +msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." + +#: templates/inventory/car_form.html:418 +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:432 +msgid "An error occurred while decoding the VIN." +msgstr "حدث خطأ أثناء فك تشفير الهيكل" + +#: templates/inventory/car_inventory.html:52 +msgid "Stock" +msgstr "المخزون" + +#: templates/inventory/car_inventory.html:55 +msgid "Exterior Color" +msgstr "اللون الخارجي" + +#: templates/inventory/car_inventory.html:56 +msgid "Interior Color" +msgstr "اللون الداخلي" + +#: templates/inventory/car_inventory.html:57 +msgid "Showroom Location" +msgstr "موقع صالة العرض" + +#: templates/inventory/car_inventory.html:59 +msgid "Age" +msgstr "العمر" + +#: templates/inventory/car_inventory.html:87 +#: templates/inventory/car_inventory.html:88 +msgid "No Color" +msgstr "بدون لون" + +#: templates/inventory/car_inventory.html:125 +msgid "No cars available." +msgstr "لا توجد سيارات متاحة." + +#: templates/inventory/car_inventory.html:126 +msgid "Add a Car" +msgstr "إضافة سيارة" + #: templates/inventory/car_list.html:70 -#: templates/items/service/service_list.html:19 -#: templates/ledger/bank_accounts/bank_account_list.html:21 #: templates/ledger/coa_accounts/account_list.html:21 #: templates/users/user_list.html:19 msgid "search" @@ -2249,10 +2912,6 @@ msgstr "اختيار" msgid "generation" msgstr "الجيل" -#: templates/inventory/car_list.html:152 -msgid "equipment" -msgstr "التجهيزات" - #: templates/inventory/car_list.html:201 msgid "Enter remarks" msgstr "أدخل الملاحظات" @@ -2302,31 +2961,22 @@ msgstr "نوع اللون" msgid "Inventory Statistics" msgstr "إحصائيات المخزون" -#: templates/inventory/inventory_stats.html:14 -msgid "Total Cars in Inventory" -msgstr "إجمالي السيارات في المخزون" - -#: templates/inventory/inventory_stats.html:40 +#: templates/inventory/inventory_stats.html:36 msgid "models" msgstr "الموديلات" -#: templates/inventory/inventory_stats.html:55 +#: templates/inventory/inventory_stats.html:51 msgid "Trims" msgstr "الفئات" -#: templates/inventory/inventory_stats.html:64 +#: templates/inventory/inventory_stats.html:60 msgid "No trims available" msgstr "لا يوجد فئات متاحة." -#: templates/inventory/inventory_stats.html:70 +#: templates/inventory/inventory_stats.html:66 msgid "No models available." msgstr "لا توجد موديلات متاحة." -#: templates/inventory/reserve_car.html:6 -#: templates/inventory/reserve_car.html:9 -msgid "Reserve Car" -msgstr "حجز السيارة" - #: templates/inventory/reserve_car.html:11 msgid "You are reserving" msgstr "أنت تحجز" @@ -2347,33 +2997,63 @@ msgstr "نقل السيارة" msgid "transfer car" msgstr "نقل السيارة" -#: templates/items/service/service_create.html:5 -#: venv/lib/python3.11/site-packages/django_ledger/models/items.py:522 -msgid "Service" -msgstr "الخدمة" +#: templates/items/expenses/expense_create.html:11 +#: templates/items/expenses/expenses_list.html:11 +msgid "Add Expense" +msgstr "إضافة مصروف" -#: templates/items/service/service_create.html:11 -msgid "Add Service" -msgstr "إضافة خدمة" +#: templates/items/expenses/expense_update.html:11 +msgid "Update Expense" +msgstr "تحديث المصروف" -#: templates/items/service/service_list.html:5 -#: templates/items/service/service_list.html:6 templates/users/user_form.html:4 -#: templates/users/user_list.html:5 templates/users/user_list.html:6 -msgid "users" -msgstr "المستخدمون" - -#: templates/items/service/service_list.html:41 +#: templates/items/expenses/expenses_list.html:19 +#: templates/items/service/service_list.html:19 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:530 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:9 msgid "Item Number" msgstr "رقم العنصر" -#: templates/items/service/service_list.html:43 +#: templates/items/expenses/expenses_list.html:21 +#: templates/items/service/service_list.html:21 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:535 msgid "Unit of Measure" msgstr "وحدة القياس" +#: templates/items/expenses/expenses_list.html:22 +#: templates/items/service/service_list.html:24 +#: templates/ledger/bank_accounts/bank_account_list.html:22 +#: templates/ledger/coa_accounts/account_list.html:196 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html:13 +msgid "Action" +msgstr "الإجراء" + +#: templates/items/expenses/expenses_list.html:40 +#: templates/items/service/service_list.html:50 +#: templates/ledger/coa_accounts/account_list.html:215 +#: templates/sales/invoices/invoice_list.html:66 +msgid "No Invoice Found" +msgstr "لم يتم العثور على فاتورة" + +#: templates/items/service/service_create.html:5 +#: venv/lib/python3.11/site-packages/django_ledger/models/items.py:522 +msgid "Service" +msgstr "الخدمة" + +#: templates/items/service/service_create.html:13 +#: venv/lib/python3.11/site-packages/django_ledger/views/item.py:340 +msgid "Update Service" +msgstr "تحديث الخدمة" + +#: templates/items/service/service_create.html:15 +#: templates/items/service/service_list.html:11 +msgid "Add Service" +msgstr "إضافة خدمة" + +#: templates/items/service/service_list.html:22 +msgid "Taxable" +msgstr "خاضع للضريبة" + #: templates/ledger/bank_accounts/bank_account_detail.html:4 msgid "View Bank Account" msgstr "عرض الحساب البنكي" @@ -2383,7 +3063,6 @@ msgid "Are you sure you want to delete this bank account?" msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب البنكي؟" #: templates/ledger/bank_accounts/bank_account_detail.html:41 -#: templates/ledger/coa_accounts/account_detail.html:44 msgid "Bank Account Details" msgstr "تفاصيل الحساب البنكي" @@ -2402,7 +3081,7 @@ msgid "Cash Account" msgstr "حساب نقدي" #: templates/ledger/bank_accounts/bank_account_detail.html:68 -#: templates/ledger/coa_accounts/account_detail.html:72 +#: templates/ledger/coa_accounts/account_detail.html:132 #: templates/users/user_detail.html:70 msgid "Back to List" msgstr "العودة إلى القائمة" @@ -2416,36 +3095,27 @@ msgid "Edit Bank Account" msgstr "تحديث الحساب المصرفي" #: templates/ledger/bank_accounts/bank_account_form.html:17 +#: templates/ledger/bank_accounts/bank_account_list.html:11 msgid "Add Bank Account" msgstr "إضافة حساب بنكي" -#: templates/ledger/bank_accounts/bank_account_list.html:3 -#: venv/lib/python3.11/site-packages/django_ledger/views/bank_account.py:33 -msgid "Bank Accounts" -msgstr "الحسابات المصرفية" +#: templates/ledger/bank_accounts/bank_account_list.html:20 +#: templates/ledger/coa_accounts/account_list.html:193 +#: venv/lib/python3.11/site-packages/django_ledger/forms/bank_account.py:81 +#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:1134 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:8 +msgid "Account Number" +msgstr "رقم الحساب" -#: templates/ledger/bank_accounts/bank_account_list.html:27 -#: templates/ledger/coa_accounts/account_list.html:27 -msgid "Search accounts..." -msgstr "ابحث عن العملاء..." - -#: templates/ledger/bank_accounts/bank_account_list.html:45 -msgid "Customers List" -msgstr "قائمة العملاء" - -#: templates/ledger/bank_accounts/bank_account_list.html:52 +#: templates/ledger/bank_accounts/bank_account_list.html:21 #: 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:71 -msgid "No customers found." -msgstr "لم يتم العثور على عملاء." - -#: templates/ledger/coa_accounts/account_detail.html:4 -msgid "View Account" -msgstr "عرض الحساب" +#: templates/ledger/bank_accounts/bank_account_list.html:40 +msgid "No Bank Accounts Found" +msgstr "لم يتم العثور على أي حساب بنكي." #: templates/ledger/coa_accounts/account_detail.html:19 msgid "Are you sure you want to delete this account?" @@ -2472,12 +3142,58 @@ msgstr "رمز الحساب" #: templates/ledger/coa_accounts/account_detail.html:53 #: templates/ledger/coa_accounts/account_list.html:52 +#: templates/ledger/coa_accounts/account_list.html:194 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:13 msgid "Balance Type" msgstr "نوع الرصيد" +#: templates/ledger/coa_accounts/account_detail.html:61 +msgid "JE Number" +msgstr "رقم القيد المحاسبي" + +#: templates/ledger/coa_accounts/account_detail.html:62 +#: templates/sales/estimates/estimate_preview.html:262 +#: templates/sales/quotation_detail.html:52 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:15 +msgid "Date" +msgstr "التاريخ" + +#: templates/ledger/coa_accounts/account_detail.html:63 +#: templates/ledger/coa_accounts/account_list.html:99 +#: templates/sales/payments/payment_details.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:423 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:474 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:13 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:45 +msgid "Debit" +msgstr "مدين" + +#: templates/ledger/coa_accounts/account_detail.html:64 +#: templates/ledger/coa_accounts/account_list.html:101 +#: templates/sales/payments/payment_details.html:20 +#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:422 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:473 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:12 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:44 +msgid "Credit" +msgstr "دائن" + +#: templates/ledger/coa_accounts/account_detail.html:66 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:9 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:32 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:33 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/income_statement.html:28 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:11 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:14 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:11 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:21 +msgid "Unit" +msgstr "الوحدة" + #: templates/ledger/coa_accounts/account_form.html:4 msgid "account" msgstr "الحساب" @@ -2487,6 +3203,7 @@ msgid "Edit Account" msgstr "تعديل الحساب" #: templates/ledger/coa_accounts/account_form.html:17 +#: templates/ledger/coa_accounts/account_list.html:184 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html:52 msgid "Add Account" msgstr "إضافة حساب" @@ -2498,6 +3215,10 @@ msgstr "إضافة حساب" msgid "Accounts" msgstr "الحسابات" +#: templates/ledger/coa_accounts/account_list.html:27 +msgid "Search accounts..." +msgstr "ابحث عن العملاء..." + #: templates/ledger/coa_accounts/account_list.html:51 msgid "Code" msgstr "الكود" @@ -2510,44 +3231,18 @@ msgstr "حذف الحساب" msgid "Are you sure you want to delete this Account?" msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" -#: templates/ledger/coa_accounts/account_list.html:99 -#: templates/sales/payments/payment_details.html:21 -#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:423 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:474 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:13 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:45 -msgid "Debit" -msgstr "مدين" - -#: templates/ledger/coa_accounts/account_list.html:101 -#: templates/sales/payments/payment_details.html:20 -#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:422 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:473 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:12 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:44 -msgid "Credit" -msgstr "دائن" - -#: templates/ledger/coa_accounts/account_list.html:124 +#: templates/ledger/coa_accounts/account_list.html:126 msgid "No account found." msgstr "لم يتم العثور على حساب." -#: templates/ledger/coa_accounts/account_list.html:132 +#: templates/ledger/coa_accounts/account_list.html:134 msgid "to" msgstr "إلى" -#: templates/ledger/coa_accounts/account_list.html:132 +#: templates/ledger/coa_accounts/account_list.html:134 msgid "Items of" msgstr "عناصر" -#: templates/notifications.html:16 templates/notifications_history.html:14 -msgid "System" -msgstr "نظام" - -#: templates/notifications_history.html:25 -msgid "Mark as Read" -msgstr "وضع علامة مقروء" - #: templates/organizations/organization_detail.html:3 msgid "Organization Details" msgstr "تفاصيل الشركة" @@ -2613,6 +3308,7 @@ msgstr "عرض التقدير" #: templates/sales/estimates/estimate_detail.html:11 #: templates/sales/invoices/invoice_detail.html:11 +#: templates/sales/invoices/invoice_detail.html:36 #: templates/sales/quotation_detail.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals_v2.html:11 msgid "Confirm" @@ -2620,6 +3316,7 @@ msgstr "تأكيد" #: templates/sales/estimates/estimate_detail.html:15 #: templates/sales/invoices/invoice_detail.html:15 +#: templates/sales/invoices/invoice_detail.html:40 #: templates/sales/quotation_detail.html:15 msgid "Are you sure" msgstr "هل أنت متأكد" @@ -2644,14 +3341,8 @@ msgstr "وضع كمدفوع" msgid "Mark As Accept" msgstr "وضع كنشط" -#: templates/sales/estimates/estimate_detail.html:50 -#: 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 "إنشاء فاتورة" - #: templates/sales/estimates/estimate_detail.html:53 -#: templates/sales/invoices/invoice_detail.html:44 +#: templates/sales/invoices/invoice_detail.html:72 msgid "Preview" msgstr "عرض" @@ -2674,37 +3365,18 @@ msgstr "حالة نموذج التقدير" msgid "canceled" msgstr "ملغى" -#: templates/sales/estimates/estimate_detail.html:121 -#: templates/sales/estimates/estimate_preview.html:273 -#: templates/sales/invoices/invoice_detail.html:140 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:94 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:18 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_item_table.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:18 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html:9 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html:9 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:94 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:18 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:10 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:18 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_update.html:50 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/tags/po_item_table.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:10 -msgid "Item" -msgstr "العنصر" - #: templates/sales/estimates/estimate_detail.html:123 #: templates/sales/estimates/estimate_preview.html:275 -#: templates/sales/invoices/invoice_detail.html:142 +#: templates/sales/invoices/invoice_detail.html:217 msgid "Unit Price" msgstr "سعر الوحدة" -#: templates/sales/estimates/estimate_detail.html:139 +#: templates/sales/estimates/estimate_detail.html:145 msgid "Vat" msgstr "الضريبة" -#: templates/sales/estimates/estimate_detail.html:145 -#: templates/sales/invoices/invoice_detail.html:163 +#: templates/sales/estimates/estimate_detail.html:159 +#: templates/sales/invoices/invoice_detail.html:252 msgid "Grand Total" msgstr "الإجمالي" @@ -2722,10 +3394,15 @@ msgid "Status Date" msgstr "تاريخ الحالة" #: templates/sales/estimates/estimate_list.html:36 -#: templates/sales/invoices/invoice_detail.html:124 +#: templates/sales/invoices/invoice_detail.html:199 msgid "Declined" msgstr "مرفوض" +#: templates/sales/estimates/estimate_list.html:40 +#: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:226 +msgid "Completed" +msgstr "مكتمل" + #: templates/sales/estimates/estimate_list.html:42 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:343 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:227 @@ -2763,7 +3440,7 @@ msgid "Are you sure you want to accept this estimate?" msgstr "هل أنت متأكد أنك تريد قبول هذا العرض؟" #: templates/sales/estimates/estimate_preview.html:224 -#: templates/sales/invoices/invoice_detail.html:39 +#: templates/sales/invoices/invoice_detail.html:64 #: templates/sales/quotation_detail.html:141 msgid "Accept" msgstr "قبول" @@ -2780,35 +3457,36 @@ msgstr "رفض" msgid "Thank you for choosing us. We appreciate your business" msgstr "شكراً لاختياركم لنا. نقدر عملكم" -#: templates/sales/estimates/estimate_preview.html:262 -#: templates/sales/quotation_detail.html:52 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:15 -msgid "Date" -msgstr "التاريخ" - #: templates/sales/estimates/estimate_preview.html:265 +#: templates/sales/invoices/invoice_detail.html:102 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:974 msgid "Terms" msgstr "الشروط" #: templates/sales/estimates/estimate_preview.html:294 -#: templates/sales/invoices/invoice_detail.html:157 +#: templates/sales/invoices/invoice_detail.html:238 #: templates/sales/quotation_detail.html:77 #: templates/sales/quotation_pdf.html:46 msgid "VAT" msgstr "ضريبة القيمة المضافة" -#: templates/sales/estimates/estimate_preview.html:305 +#: templates/sales/estimates/estimate_preview.html:310 msgid "If you have any questions, feel free to contact us at" msgstr "إذا كان لديك أي أسئلة، يرجى التواصل معنا على" -#: templates/sales/estimates/estimate_preview.html:306 +#: templates/sales/estimates/estimate_preview.html:311 msgid "Thank you for your business" msgstr "شكراً لتعاملك معنا" +#: templates/sales/invoices/approved_invoice_update.html:11 +#: templates/sales/invoices/draft_invoice_update.html:11 +#: templates/sales/invoices/paid_invoice_update.html:11 +msgid "Update Invoice" +msgstr "تحديث فاتورة" + #: templates/sales/invoices/invoice_create.html:5 -#: templates/sales/invoices/invoice_detail.html:36 -#: templates/sales/payments/payment_list.html:18 +#: templates/sales/invoices/invoice_detail.html:61 +#: templates/sales/payments/payment_list.html:20 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3124 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:360 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:10 @@ -2819,39 +3497,59 @@ msgstr "فاتورة" msgid "Add Invoice" msgstr "اضافة فاتورة" -#: templates/sales/invoices/invoice_detail.html:42 +#: templates/sales/invoices/invoice_detail.html:67 msgid "Record Payment" msgstr "تسجيل عملية دفع" -#: templates/sales/invoices/invoice_detail.html:56 +#: templates/sales/invoices/invoice_detail.html:70 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:49 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:187 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:43 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:170 +msgid "Mark as Paid" +msgstr "وضع علامة مدفوعة" + +#: templates/sales/invoices/invoice_detail.html:84 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:43 msgid "Paid Amount" msgstr "المبلغ المدفوع" -#: templates/sales/invoices/invoice_detail.html:65 +#: templates/sales/invoices/invoice_detail.html:106 +msgid "Date Due" +msgstr "تاريخ الاستحقاق" + +#: templates/sales/invoices/invoice_detail.html:110 +msgid "Due in Days" +msgstr "الاستحقاق بالأيام" + +#: templates/sales/invoices/invoice_detail.html:116 +msgid "Is Past Due" +msgstr "متأخر عن السداد" + +#: templates/sales/invoices/invoice_detail.html:136 msgid "Due Amount" msgstr "المبلغ الكلي" -#: templates/sales/invoices/invoice_detail.html:81 +#: templates/sales/invoices/invoice_detail.html:156 #: templates/sales/invoices/invoice_list.html:15 #: templates/sales/journals/journal_list.html:15 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:313 msgid "Invoice Number" msgstr "رقم الفاتورة" -#: templates/sales/invoices/invoice_detail.html:91 +#: templates/sales/invoices/invoice_detail.html:166 msgid "Invoice Date" msgstr "تاريخ الفاتورة" -#: templates/sales/invoices/invoice_detail.html:103 +#: templates/sales/invoices/invoice_detail.html:178 msgid "Customer Name" msgstr "اسم العميل" -#: templates/sales/invoices/invoice_detail.html:107 +#: templates/sales/invoices/invoice_detail.html:182 msgid "Customer Email" msgstr "ايميل العميل" -#: templates/sales/invoices/invoice_detail.html:115 +#: templates/sales/invoices/invoice_detail.html:190 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:315 msgid "Invoice Status" msgstr "حالة الفاتورة" @@ -2871,20 +3569,6 @@ msgstr "الفواتير" msgid "Past Due" msgstr "مستحق" -#: templates/sales/invoices/invoice_list.html:60 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:44 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/entity/entitiy_list.html:20 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:38 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:85 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_list.html:32 -msgid "View" -msgstr "عرض" - -#: templates/sales/invoices/invoice_list.html:66 -msgid "No Invoice Found" -msgstr "لم يتم العثور على فاتورة" - #: templates/sales/journals/journal_form.html:5 #: templates/sales/journals/journal_form.html:9 msgid "Create Payment" @@ -2909,7 +3593,7 @@ msgid "#" msgstr "#" #: templates/sales/payments/payment_details.html:16 -#: templates/sales/payments/payment_list.html:19 +#: templates/sales/payments/payment_list.html:21 #: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:313 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:8 @@ -2925,24 +3609,24 @@ msgid "Payment Already Made" msgstr "تم الدفع بالفعل" #: templates/sales/payments/payment_list.html:4 -#: templates/sales/payments/payment_list.html:9 +#: templates/sales/payments/payment_list.html:10 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_table.html:14 msgid "Payments" msgstr "المدفوعات" -#: templates/sales/payments/payment_list.html:8 +#: templates/sales/payments/payment_list.html:9 msgid "Add Payment" msgstr "اضافة مدفوعات" -#: templates/sales/payments/payment_list.html:17 +#: templates/sales/payments/payment_list.html:19 msgid "Payment Number" msgstr "رقم عملية الدفع" -#: templates/sales/payments/payment_list.html:37 +#: templates/sales/payments/payment_list.html:39 msgid "View Tranactions" msgstr "عرض المعالملات" -#: templates/sales/payments/payment_list.html:42 +#: templates/sales/payments/payment_list.html:44 msgid "No Payments Found" msgstr "لم يتم العثور على عملية دفع" @@ -2993,10 +3677,6 @@ msgstr "التكلفة الإجمالية مع ضريبة القيمة المض msgid "Back to Quotations" msgstr "العودة إلى العروض" -#: templates/sales/quotation_form.html:5 templates/sales/quotation_form.html:9 -msgid "Create Quotation" -msgstr "إنشاء عرض" - #: templates/sales/quotation_list.html:14 msgid "Quotation Number" msgstr "رقم عرض السعر" @@ -3070,6 +3750,18 @@ msgstr "تفاصيل المستخدم" msgid "Role" msgstr "الدور" +#: templates/users/user_form.html:16 +msgid "Edit Staff" +msgstr "تعديل الموظف" + +#: templates/users/user_form.html:18 +msgid "Add Staff" +msgstr "إضافة موظف" + +#: templates/users/user_list.html:5 templates/users/user_list.html:6 +msgid "users" +msgstr "المستخدمون" + #: templates/users/user_list.html:41 msgid "name" msgstr "الاسم" @@ -3154,10 +3846,6 @@ msgstr "تم الإلغاء!" msgid "(Deprecated) {text}" msgstr "(مهمل) {text}" -#: venv/lib/python3.11/site-packages/click/core.py:1396 -msgid "Options" -msgstr "الخيارات" - #: venv/lib/python3.11/site-packages/click/core.py:1422 #, python-brace-format msgid "Got unexpected extra argument ({args})" @@ -4801,12 +5489,6 @@ msgstr "أدخل رقم ABA..." msgid "Enter SWIFT number..." msgstr "أدخل رقم SWIFT..." -#: venv/lib/python3.11/site-packages/django_ledger/forms/bank_account.py:81 -#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:1134 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:8 -msgid "Account Number" -msgstr "رقم الحساب" - #: venv/lib/python3.11/site-packages/django_ledger/forms/bank_account.py:82 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:1144 msgid "Account Type" @@ -4921,12 +5603,6 @@ msgstr "العنوان سطر 1" msgid "Address line 2" msgstr "العنوان سطر 2" -#: venv/lib/python3.11/site-packages/django_ledger/forms/entity.py:82 -#: venv/lib/python3.11/site-packages/django_ledger/forms/entity.py:159 -#: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:107 -msgid "City" -msgstr "المدينة" - #: venv/lib/python3.11/site-packages/django_ledger/forms/entity.py:86 #: venv/lib/python3.11/site-packages/django_ledger/forms/entity.py:164 msgid "State" @@ -5192,16 +5868,6 @@ msgstr "الأرض" msgid "Securities" msgstr "الأوراق المالية" -#: 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 "المباني" - -#: 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 "المباني - الإهلاك المتراكم" - #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:453 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:539 msgid "Plant" @@ -5223,11 +5889,6 @@ msgstr "المعدات" msgid "Equipment - Accum. Depreciation" msgstr "المعدات - الإهلاك المتراكم" -#: 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 "الأصول غير الملموسة" - #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:460 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:546 msgid "Intangible Assets - Accum. Amortization" @@ -5238,21 +5899,11 @@ msgstr "الأصول غير الملموسة - الاستهلاك المتراك msgid "Other Assets" msgstr "أصول أخرى" -#: 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 "الأجور المستحقة الدفع" - #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:468 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:554 msgid "Interest Payable" msgstr "الفائدة المستحقة الدفع" -#: 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 "الضرائب المستحقة الدفع" - #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:470 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:556 msgid "Short Term Notes Payable" @@ -5263,12 +5914,6 @@ msgstr "السندات المستحقة قصيرة الأجل" msgid "Current Maturities of Long Tern Debt" msgstr "استحقاقات الديون طويلة الأجل الحالية" -#: 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 "الإيرادات المؤجلة" - #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:473 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:559 msgid "Other Liabilities" @@ -5284,11 +5929,6 @@ msgstr "سندات الدفع طويلة الأجل" msgid "Bonds Payable" msgstr "السندات المستحقة الدفع" -#: 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 "الرهن العقاري المستحق الدفع" - #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:483 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:569 msgid "Capital" @@ -5324,11 +5964,6 @@ msgstr "الدخل التشغيلي" msgid "Investing/Passive Income" msgstr "الدخل من الاستثمار/الدخل السلبي" -#: 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 "دخل الفائدة" - #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:493 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:581 msgid "Capital Gain/Loss Income" @@ -5405,11 +6040,6 @@ msgstr "نوع رصيد الحساب" msgid "Locked" msgstr "مقفل" -#: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:436 -#: venv/lib/python3.11/site-packages/django_ledger/models/coa.py:152 -msgid "Chart of Accounts" -msgstr "قائمة الحسابات" - #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:449 msgid "Account codes must be unique for each Chart of Accounts Model." msgstr "يجب أن تكون رموز الحساب فريدة لكل نموذج من نماذج دليل الحسابات." @@ -5508,10 +6138,6 @@ msgstr "هل تريد إبطال الفاتورة %s؟" msgid "Do you want to mark Bill %s as Canceled?" msgstr "هل تريد وضع الفاتورة %s كملغاة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:69 -msgid "Closing Date" -msgstr "تاريخ الإغلاق" - #: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:70 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html:10 msgid "Is Posted" @@ -6563,6 +7189,20 @@ msgstr "تسجيل الدخول" msgid "Create Bank Account" msgstr "إنشاء حساب بنكي" +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_create.html:22 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_create.html:33 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_create.html:22 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/expense_create.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/inventory/inventory_item_create.html:23 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:38 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_create.html:24 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_create.html:27 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/service_create.html:24 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_create.html:22 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/uom_create.html:24 +msgid "Create" +msgstr "إنشاء" + #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_list.html:14 msgid "New Bank Account" msgstr "حساب بنكي جديد" @@ -6769,13 +7409,6 @@ msgstr "تكوين الفاتورة" msgid "Due in" msgstr "مستحق في" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:49 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:187 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:43 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:170 -msgid "Mark as Paid" -msgstr "وضع علامة مدفوعة" - #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:53 msgid "Mark as Canceled" msgstr "وضع علامة ملغاة" @@ -7211,10 +7844,6 @@ msgstr "التكلفة الإجمالية المقدرة" msgid "Total Revenue Estimate" msgstr "الإيرادات الإجمالية المقدرة" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:11 -msgid "Title" -msgstr "العنوان" - #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:14 msgid "Sales Price" msgstr "سعر البيع" @@ -7364,10 +7993,6 @@ msgstr "إيرادات أخرى" msgid "Net Other Revenues" msgstr "صافي الإيرادات الأخرى" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:197 -msgid "Other Expenses" -msgstr "نفقات أخرى" - #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:228 msgid "Net Other Expenses" msgstr "صافي النفقات الأخرى" @@ -7404,10 +8029,6 @@ msgstr "الالتزامات" msgid "Equity" msgstr "حقوق الملكية" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_ic.html:8 -msgid "Expenses" -msgstr "المصروفات" - #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_ic.html:11 msgid "Earnings (Loss)" msgstr "الأرباح (الخسارة)" @@ -7892,18 +8513,10 @@ msgstr "إنشاء منتج جديد" msgid "Update Product" msgstr "تحديث المنتج" -#: venv/lib/python3.11/site-packages/django_ledger/views/item.py:297 -msgid "Services" -msgstr "الخدمات" - #: venv/lib/python3.11/site-packages/django_ledger/views/item.py:309 msgid "Create New Service" msgstr "إنشاء خدمة جديدة" -#: venv/lib/python3.11/site-packages/django_ledger/views/item.py:340 -msgid "Update Service" -msgstr "تحديث الخدمة" - #: venv/lib/python3.11/site-packages/django_ledger/views/item.py:416 msgid "Expense Items" msgstr "عناصر النفقات" diff --git a/static/css/custom.css b/static/css/custom.css index 1017a420..4a74f6b8 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -7,4 +7,11 @@ text-align: center; /*vertical-align: middle;*/ /*line-height: 22px;*/ - } \ No newline at end of file + } + .rtl .fa-chevron-left { + transform: scaleX(-1); +} + +.rtl .fa-chevron-right { + transform: scaleX(-1); +} \ No newline at end of file diff --git a/static/images/.DS_Store b/static/images/.DS_Store index 4ee801b41fe7cfa78fe8fb181c88201b23b7a2a1..2b8dc0e8821ce3e46e432bdf58373cc4b23c7cd1 100644 GIT binary patch delta 65 vcmZoEXern*T}Ig0Ku5vMz@%13q1w_2$TqPwn!H}fc=KJEUHrHub=0{5fprrJ delta 41 kcmZoEXern*U54GjP)EVoz+iHts{Q7>GQ0Ru1$5N80UzoOEdT%j diff --git a/templates/crm/opportunities/opportunity_detail.html b/templates/crm/opportunities/opportunity_detail.html index 6b8767fb..a33a7174 100644 --- a/templates/crm/opportunities/opportunity_detail.html +++ b/templates/crm/opportunities/opportunity_detail.html @@ -7,7 +7,7 @@
-

O{{ _("pportunity details")}}

+

O{{ _("Opportunity details")}}

diff --git a/templates/customers/customer_list.html b/templates/customers/customer_list.html index 94f371ef..7a9d7d12 100644 --- a/templates/customers/customer_list.html +++ b/templates/customers/customer_list.html @@ -136,42 +136,7 @@
{% if is_paginated %} - + {% include 'partials/pagination.html' %} {% endif %}
diff --git a/templates/header.html b/templates/header.html index 0a7e10b9..994ce1e0 100644 --- a/templates/header.html +++ b/templates/header.html @@ -87,14 +87,6 @@ diff --git a/templates/index.html b/templates/index.html index b8a81169..5c32c2fa 100644 --- a/templates/index.html +++ b/templates/index.html @@ -3,8 +3,101 @@ {% block content %} -
- +
+
+
+
+
+
+

{{ dealer.get_local_name }}

+
+ +

{{ total_cars }}

+

{% trans "Total Cars in Inventory" %}

+
+
+ +

{{ total_reservations }}

+

{{ _("Reserved")}}

+
+
+ +

{{ cars_in_house}}

+

{{ _("In Our Showroom")}}

+
+
+ +

{{ cars_outside }}

+

{{ _("Outside Showroom")}}

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Outgoing call

+
+

3 Leads Today

+
+
+
+
+
+
+
+
+
+
+
+
+

Outgoing meeting

+
+

12 This Week

+
+
+
+
+
+
+
+
+
+
+
+
+
-{% endblock %} \ No newline at end of file +
+
+
+
{% trans 'inventory value'|capfirst %}
+
+
+ +
+

{% trans "Profits"|upper %}

+

{{ total_profit }} {% trans 'SAR' %}

+
+
+
+

{{ total_selling_price }} {% trans 'SAR' %}

+
+
+
+
+
+
+
+
+
+{% endblock %} diff --git a/templates/inventory/car_form.html b/templates/inventory/car_form.html index 2dbaf02e..00a4f77a 100644 --- a/templates/inventory/car_form.html +++ b/templates/inventory/car_form.html @@ -16,11 +16,11 @@ -
+
{% csrf_token %}
-
+
diff --git a/templates/inventory/inventory_stats.html b/templates/inventory/inventory_stats.html index b7d98f06..b7d438c8 100644 --- a/templates/inventory/inventory_stats.html +++ b/templates/inventory/inventory_stats.html @@ -6,34 +6,7 @@ {% endblock %} {% block content %} -
-
-
-

{{ inventory.total_cars }}

-

{% trans "Total Cars in Inventory" %}

-
-
-

2

-

{{ _("Reserved")}}

-
-
-

1,366

-

Emails Delivered

-
-
-

1,200

-

Emails Opened

-
-
-

900

-

Emails Clicked

-
-
-

500

-

Emails Bounce

-
-
-
+
diff --git a/templates/items/service/service_create.html b/templates/items/service/service_create.html index 017f209f..a7883526 100644 --- a/templates/items/service/service_create.html +++ b/templates/items/service/service_create.html @@ -10,7 +10,7 @@
{% if service.pk %} - {{ _("UpdateService") }} + {{ _("Update Service") }} {% else %} {{ _("Add Service") }} {% endif %} diff --git a/templates/ledger/bank_accounts/bank_account_list.html b/templates/ledger/bank_accounts/bank_account_list.html index dc630ed9..653103ea 100644 --- a/templates/ledger/bank_accounts/bank_account_list.html +++ b/templates/ledger/bank_accounts/bank_account_list.html @@ -37,7 +37,7 @@ {% empty %} - {% trans "No Invoice Found" %} + {% trans "No Bank Accounts Found" %} {% endfor %} diff --git a/templates/ledger/coa_accounts/account_list.html b/templates/ledger/coa_accounts/account_list.html index 22766184..aa2b6fe8 100644 --- a/templates/ledger/coa_accounts/account_list.html +++ b/templates/ledger/coa_accounts/account_list.html @@ -180,7 +180,7 @@
-

{% trans "Accounts" %}

+

{% trans "Chart of Accounts" %}

{% trans "Add Account" %}
diff --git a/templates/partials/pagination.html b/templates/partials/pagination.html index ce899510..912c18c3 100644 --- a/templates/partials/pagination.html +++ b/templates/partials/pagination.html @@ -1,16 +1,30 @@ {% load i18n static %} - diff --git a/templates/sales/invoices/invoice_list.html b/templates/sales/invoices/invoice_list.html index 757906e5..3be50fc9 100644 --- a/templates/sales/invoices/invoice_list.html +++ b/templates/sales/invoices/invoice_list.html @@ -69,7 +69,10 @@
-
+
+ {% if is_paginated %} + {% include 'partials/pagination.html' %} + {% endif %}