From 00c07b544269868647ca53ddff7782bde4a9d4af Mon Sep 17 00:00:00 2001 From: Marwan Alwali Date: Thu, 27 Feb 2025 15:01:32 +0300 Subject: [PATCH] update --- .../__pycache__/settings.cpython-311.pyc | Bin 8905 -> 8950 bytes inventory/__pycache__/admin.cpython-311.pyc | Bin 8931 -> 9134 bytes inventory/__pycache__/forms.cpython-311.pyc | Bin 40370 -> 40776 bytes .../__pycache__/middleware.cpython-311.pyc | Bin 3662 -> 3866 bytes inventory/__pycache__/models.cpython-311.pyc | Bin 95072 -> 95956 bytes inventory/__pycache__/urls.cpython-311.pyc | Bin 30186 -> 30415 bytes inventory/__pycache__/utils.cpython-311.pyc | Bin 40879 -> 40791 bytes inventory/__pycache__/views.cpython-311.pyc | Bin 221944 -> 225829 bytes inventory/admin.py | 3 +- inventory/models.py | 3 + inventory/signals.py | 18 +- inventory/views.py | 11 +- locale/ar/LC_MESSAGES/django.mo | Bin 221581 -> 222298 bytes locale/ar/LC_MESSAGES/django.po | 1159 +++++++++-------- requirements.txt | 2 + ...lamjdouie-Hyundai-logo_I8WTQve_NvbZyE9.png | Bin 0 -> 6262 bytes templates/header.html | 8 +- .../sales/estimates/estimate_detail.html | 4 +- 18 files changed, 624 insertions(+), 584 deletions(-) create mode 100644 static/images/images/Alamjdouie-Hyundai-logo_I8WTQve_NvbZyE9.png diff --git a/car_inventory/__pycache__/settings.cpython-311.pyc b/car_inventory/__pycache__/settings.cpython-311.pyc index 75710e6114736ac91cc99c5d949245e456e7d538..f64d2f3b4c1be9e5092366e83a8f5c12416e23bb 100644 GIT binary patch delta 76 zcmX@<`puPhIWI340}yb!9Z3JXk@pY>Bmd?L9P61FwI>H~i}HBpWu+#UxTGfLq!w*1 Z;r=Kjs3FAkfdNJ|@O=o`TqYOH0sxl?7nlG5 delta 57 zcmez7deW75IWI340}yDv*_VELBkv&&M!wA#IMy?5Uc>!NNKjpf=>r3dXyE%0w0W^y GFbe=I8xooT diff --git a/inventory/__pycache__/admin.cpython-311.pyc b/inventory/__pycache__/admin.cpython-311.pyc index a5459aa30c142408ee3fd8e09db2ede75bfdeb63..65cd3b33761e7fa222d35780b216cefa90b43c88 100644 GIT binary patch delta 365 zcmaFty3U<%IWI340}yO*-k)wMI+0I;@!LlASFFseSvr$9FxgHHWUFFk&(a67t%0-w zSj?0C^5hGQs*I*!UMGk6WGRl=$(K3wCNBkIeNMf}j6mEC#IZp99Ef*v>IvI3F{CnQ z34<&HfmGHk2cUkj$pT!)!j5Qi>{(7Axrq;0Cl_+*F*`Q+xGLcV$v1+6GD^_OqES<>{*lZ^UvQ;s&X6aAfz+}s4 z03s)QvR|G&gCknll!+mgIZGI%83a;Uv&?|%bWQoGbf8pK9J65zJ_TT69dC)AclY_jud8~9+q1I zKB8mq7Kz zm*f|@frQ;bga?SY2T~6rmN7Fh6dMDD8sPATkj4bnD?%D8N_K?qiM?*?cgfc8qHVwx z+kgu~fft1WuLuP;c!MCsJfJDe44NgI)hC=}X1q7~&16}wUqFL_h@trGX5lFlIbFCI Y8G{%y85n?wp?Lb{;;9ok`52fPr9Xg(B6pxD0BPeF<^TWy diff --git a/inventory/__pycache__/middleware.cpython-311.pyc b/inventory/__pycache__/middleware.cpython-311.pyc index 643147ba17af47ca834803d5cf2f4709954519b9..ae0ab7a127342df013f110ccec1a54b3c1b3aa63 100644 GIT binary patch delta 501 zcmX>nGfR$dIWI340}yO*-k;9Kxsh)>2jj}g$2h()7H{6osmNIW4k$OBfs-MHv4$}o zq!0|iJVqF=gcZhOV5nitVutZjn3gdyFsue*2q+J{LM8#Z4GbTcI5-7wD5!S0 zU*VCxA+G|WW$yBeO(>sIvmoLkzupyoy$=kGyqY&uG$ycL5m1E5#a`q$zQS(|lGC`M ztPYY>_%T_J(^*moXmFDwn}ThtU%JQ$Z~Q9j{;-y7zX9TLiBtC+~zF?6k5&>EZ0Gu>%=l}o! delta 326 zcmbOwcTR?HIWI340}#x9yfs~wVo4o1z%$2h()e%`#BQ<0Ht22gG~11CcXDi%HdurG_P#p@;{lQ`mS&f+eiY!1z8Gr~85FrR6tYL&9h+zpNCP(saW^|j(%Xee)UOx57r};Qp G!Ri6uct3Xl diff --git a/inventory/__pycache__/models.cpython-311.pyc b/inventory/__pycache__/models.cpython-311.pyc index a38dda2dd98a805c418c280e13900970efe5199c..562fe1769d7c8ee49cfca70997252acffab71054 100644 GIT binary patch delta 24811 zcmbV!31C#!)&JbdB$=#}kPs3=k_kx&0TT8-fFTP6NCG76Xc#gR7|q6;2|@$|3WC-R zulBiNqqPbx+G^0a)D5glTQx`&e65OpfBWgzPsJ+k*8lmPH(Mqd=>H$f>3ip%yPbQ^ zx#ymH-kkYIc;Bbt@ejtuMH}ev-F?q(ijFuCpDG?bkbmDegFUV(y?Mmi5yD`Pw_BPr znlsmC(zC&y&=lXCur{GNacyFA*4nIQ>)He7#xAFV4Y2M!xb?ugK(LI8xK19 zxrm6$B8-(V6M-q2#8laY8wo1!2ppLYm}o@w&oiRQOqWA+x&7(nF5}SId4wO;A0JeI zD%Z~^y3zgVWUq1PngYU)>5mVpKb`B3CAx9vrJKQYg+x~bI?QqUOva5T+=TPioyBw$ ziEfg&uKZP4MAT%$Od*WU>td#wO1No0+#JSDC)^A#Zu(rt%_Q6`wC3gH0M5>1y4gfm z3_4z?dQ(Ky9Ky`?Vk{+0HIHx?`Ec_YS3N1I+#ez`qAsSlOMDc| zn4+F=8+^FsjI$ALqYqchxCX-6eYiTtISAKCI9}uW6^z?NxXr+Yocl_qa}wR9=cQZ4 zbe9obleZ7cYQ{AauEmF2!?;$$wJ|QioSJOkvd6G?9TzB6;PMf#XPldG?LOSajN3}M z%e^@HoH-(D8)3G4F_wC!>LA<|UflEzjN3uDoxp{hvW@AkB)U#-UCTzs?IPT6FHUww zMMPain5(@Qi=C0WXSaRaS>dQA*~r{vL+^7?vB5yGm9t+!j&8l z<^rHoEw*iQYm1}4rM-EhL(!sLZd+p`kC!_rFezg|6mEvUK0XbxblJf5^MlGkCeLA`l~NR{8c5HE{vN{|uNGvuAgd&Ewe zHT05LFw!LmScxy!4$Tl-|k+~P$1a-X)IDjU(IOTG^ z>um=4!3(L~AEdO2m?SFF!b)w5(jnKU&J)|^-KqOy0wyTOr|lVg5L7X>)itZCYUWoi zDX$Ig=6ZAk(BA!CT8z*+c76Bf!|xHypu;=%&WsfW2~}W<|wMKce$1N`Wp!OC7h>ShSQd$>$mrsQ{f@evDHQ545jMN9?ewcaNCsUi0)?Dl`$ffm*zOVRu?4q<8oidxNN_IL{~Q3 zHaRMwg-RDuD~|*0li8Vh)0q`d(z|AEu<2^fGf>cMQ2)xqzya))J2OAmm*-)FJa8aY z{vzwWjNha9B?5X9-_Y9B-rS-*0`#NAwxaZ>@%Tr80bG-BSck^kiK1r!z??}k zJ9}8?3wZ6%2z_vGQUR9Q1*zEO`|tFy%>A+WPd6<(dn|$ML4)A{eqCdULDY z(WFIJv?>ngrk2Hy?L1ShG`g&&zPhGvVP*9Ko}BVBs`|Janp>}d4&YY#eRhw|t=E`a z-Mu51h-_w8ABbKD(Ah*!hmC$oE1G>CmJw}70ts5JLvi{f?FiZmVBzW9)Xb19{5ui< zoJhstlZS8&LN&DbBJdVz#+7H#vq#t#^;3O(?=iz=$6kGoYmR$km2Z?8I&c$&;4p349x(TG04utM_bvnUjQM&L!+T=<60sLwpx*Sew)i&&1J zY-GT@L0d#Xi=yGQ*%X@n;V|V5pncZ9sPqENON9=$IU1ae&IX&?+1lb|poVq=7#Kex ze|<<@{DFwyrGEp=*{Ff489z8*<$(#qOM+O&%E=7<2BQhdw{s{3cvJrGgr{}3ozvy( zrHR8tF0;)qUq2D$CtnGw^EE1ZY`mDfc{EDcJZj-vZB6YC&D7rFbPrk1VkVaa!9THaLstFnh`_4BM`#_V(vD`(F3ip;^;xuHd7D79>n z@6YZhG9flKnNgfp&$H*5F$;J|FeC~OKS*TGP=OZdbk%RP(JmNLfQDew00tp%EB;z{ zHHUN`m=i8UrBvr`U)tXR)E%_psFexp8(5{J6oXC=?r760^6bn98bXS$mF(yHaG*dOXz2pF~VLm1gmRn~YBm5`v z1e6X?gfCUd87Cus1yDNxKvAJZx^3HR8=FvjCu8N;<<@!J5d2%FQpVC#fl-TUZK)@3 z&*643S~FF;9nEzlhRZNqw8uvP<*0n)V47^HxJu;8FDjCzRZ+1P*52A&5TTp6F!Jt| zI#gN#fO2IeK%nf(SqnysQrWPege;wyoF<=L@K)7+jKs``9X^z55sl6!8jlv<=v1gx zZpws_aPwEw6U~hGs<5p#x64QfE1kDMu|l3%m?;*^pBG+ioNSQdp%R&}KUMZrP8>SO zYAMI$PnBuGr#{y54K(x`IeyVBebJB0#C>UU|DqZzYvw9Uj7JkVI}Bj2{AN*>sFlMO z=Z%|8i0Xn7gYHnQLtUuB4d%(si$~;MgLiIrAD(#Pd(eUheywVwsS{_iPZ9~#X<;iXt4X9F zELsF@S6kY3!C-mOObs^0MN$*1IGSv3hh0CLK}xiUm5vsBt3s0V7`^H~15B1KLpTd5 z&l8|>_9^^C#|$(@-BmtG1e$4$gHE-TsLI~qyQs?B?I(Dup#m*}LKyCL*I|>c9?Tw( zsDHOSJ?1C~xrbvit9DEbi@uJOCq5b~&z>^L=Gsfe)ADp}Mm%P(nOwH54jNpM467TJ z%(8S9_0(aejj0G_x63(ob99+nGnKJ?1l21Ok*ivS#ua~*cAN7k(= zG@<`6p1u~32wPKYgRM!ID&|DL8BAZFCyvUC*N-(pv(zhVMN0R5>vxI8cT+Q(nL=!I z2y0bzdlb>$W+xHVS<7wRfLXFgL7KD(M@s`8bhW6>j%{}5CWp&SBPo*2msnGo*_}k* z5sP_YV4H2O%};dy<`RoYjHKFO^zTb}9IC-B)Zf*J;bA+CJLDI(JlZzgCMxj!T?$J6 z+hM5p;ddCi!e!!yykW84QiI`Aw99{8X8FjMLzfwM80=z)xHQU(cPD$Fh&smme8l)b zI9<-rKm8B)O%%Bdt7h4?*0wg;Ny3~o8+qS`$(^yv5TetDG}u}i98L9#gZ6B)qU5Xd zj;BlmFC!>)NcyEf1vGO>gWI{)Np@x&)#Q*N2LiP?6tuRK>OmpRTwAiFyuP$#IrxY^ zA{9E)5MQ}-7Z_o+h9NLkYRgGIPEETy3AfAeZer%`m!C+??@P?zA0fBcrq1cw`b6C; z!+Yx+`|2+{XE0nL78<|8|1C52nzOzz7^0Tro#5F4kle+kd(z|?o4Oc2r&qdF>Q1?f z=jPe&0!51ml_#jMBL(X{kTrjn$2QiI%z9eR_q6QZw{TWo)vUbQf;cT~tFuM95i~ae+zbHO)ne^V zS6h>9yRIKk%C8-hI(MPK=(HDDlovrbh$Z35$|00K$s_l;;VwEJ zx_l-?ezIx2_)w;89><5}g2@-yEP0M^p?P*pA=OGWy=oC#dHc}=bIb$|!?5C?0X=I! z2Oii2d;}Z@rc3>k1`|qYKTPdj+We?-1lNYx(jLzqo_~uTD>K^` z&)6e^a#Ya1<&v8sI9Hgl4$ zDw=tVr!_6CfwuR9R8Na?x4OyNllAE*YjX9Lf*dn>b*^F5;x5A(3KQ?V-F^4AzN`s- zS+h=9X7!q9QS6DlyEXEsEicNy+x^yYM@YC~FqHk1@nFDy_}r z0pt1x1M)of8xUB6mF-9(>rkiIT3n3|-xh3t^aqKhdCDOMjqi-hh4c3WY?kL zXnhy7*AtIf8b3f0J0&cuLEg$qlmh&tdyzZLsB`S3Ecr!RchlAdB8J6>y@fvc?B!X* zP7!HG{Bqty9Cqspl9wiO-Q==wQf2J6sfE1wMlD|7WyoJ_XA1UEg3Zf**|IG|jFH!G z%h27dRC#>c#t3HDr*iD}8U1cITDE76?gE=2tI9@&xZG5L-V*-^^PaWOUvJ4dtK05NA*b8j>K^KN{pxccy%x;{%<+|6~R~ zaK$+>iPiBa+JT19F~_f@i_i}aejU-JtuD8fPk+i1`P$BL30I(o?*ypqM95_%GoNlQ zU1Um}Et~4wa9r#s*mBL4BU0#g-r#~a!J5`*$?i30(MFax z=7eQ(uX(aEx%=}yQ$?o*<7OU5;^_zKj@ifD;jz+$`3QSq$^jh4Ue#}09%q2=+6}H| zj7$Fdnr2?chICfm0jmv;?Ugs}8zx%hgZoDL59%eEAx-&EYW@n@x_?&SRbP6bBFh){ z5AQ6)T*ENyOYy|^icK$%m1JuP^h7b(opOqQ$EZd18(!31}3P4;|q;C(KlQ zj%cQJZ@l&$&u!|t?vh`ag!K`0TaNk_01E)_Bpe;NmoJ#F?7Zcn`5dZv?)v=DTu7%u z?3Jb)0-_RG^4ptp<-Qx@(sQXbElk<8alo4GmA}6sU0f^wa>JM3LW%U+&b-ImW+aaNeUPfO9pF`Uy<0Q!ITtkHKcfqL!SV5%8ze-N*9lD zx_G>B+fNgjaeZh8+R+hL+U|0I^S;9$A+r|EU&?vr{kRsDdY2Tm!f1$&(p`Cl}p5Ogtr5-=6F7>ju9w53(@4fXs7N zBT6$Q4;RDcbOSBM( z`CoTUj`2GQ$7J^18^l6+)!nlS*^PM2Csvd*Xi(k(v)OBlU1B3AVg(0D?8@K3+0ug( zLUWc<{|xWQ0|$MaedFLNktFl)$;xM@nq8Y)FIQSyo3-%P%Uc}EAZ%^ECsn*FueoQu z#}#V1Ef?QfI$6~YkxIWoRK&GO20!5O6uq@m3|xVUjdd+f79$mZ^G2CMO}Et z$|rdBuLI>24$wEs<1|DlfX{YM?7C6t@;is+xBI<&e+~ttP^!%)?X&o9rna6k6|FZLPzDvUmp%_0x8?j@D=@2DgZntFkyO{-1_veQ64`p zmO=w=Z}L|^ZlagH^5^?Ubbd?KUARG@JZ`bNVDKBEkYauY?NZ*N zzHeyZZkp*t{r@KE|2J88mlGAoCMN|LZ1T?EMCbT<9%SAqIg?`E1pd4G<=>3+aJ$MV z&kj$OLmuo&fY@r0K8Y1FJ7c1ZK9t@$1p}E1FpYp_wrxab4emkhCuJfUL>RFF%d^Y( z-|3`b`_1^z!(A$@ro_1ZP3yLhWvB~1MK(~#(>=yv*CIXVtU=v>N~NUmDuJKm>xZt^ zrD&ZlMQw*wW5QT!i(_Q^{!t@`9mykac+QcLG3+(4uTUW`JyMi>j7UFuh5IhC+v#B9 zB4_`|k+j)QppE_-PhmJV47z|(c}LWuR%Z*H(@NZI0~8HnN~*u95JS)+%lH_4zDV{K zn#DeO>qAq#_LUAAoe;nfxlHIaUT@aB_ufd%_gw5!X{bXpOC6413hz2Oc=Ed^qwty! zkY_Mtd)$=-yw3s{4FE3b`CV_xyB|)Uk7d)ME@ckjILrnh14JCw3@MhpIsmJ?zkB#c zk64c7R6P0HIe(GwKXUKDOU0WXtqQ(Y+72lI_^tf<(K~c0*lyIX{T}YlH#QVwfZ-H* zrQ}R@BnERCH=`9Nz@-E_qUj=}vC&#bIjI!U;mANYrgV%zokID#y0up*OP5w!$i(TX za_Qq)bo0^nc=BB4YM|XkRUkd>79rvF`7oc&ph!%g#oFhw85F@!lYe{s=4|LOrO0}A zxJ`6kYg7JBqUAdx$?JP2ikIZGJvqg&T_l+3M2lcj7l&mB7_8edy;z=Jkxuub%y?n~ z9TrqkCD!G#)zceNK&yo}G~wbXa60n!C-TIr@~bCCvbZ)F)i2hFWI5rV&jD?ep|J2LD3(7N-x&b4BzvmJinqZ1Qg{*nefOIm2V{t%KS( zR=wd=LsvZs(cul%W2X=)^{Zko2uTYKieLX&)L9s3qks)2WpPuS24DtotaE(gf++A3 zD0iXsR{+O>g99JT7_c@%0X*7$;E#`Zw6R!EjI}-6C?eRGD3z~0M_ggUPQwHA7eE(%O4({BzGM5oZ?=j9@5B^{5eJ0O2Veh0hkMr0gx$ozc^)e zR6}cvoAxx?Yobd1kA$T(SufV}NcpR{+aXfAr_`US3kIC{x@byDiTvQjytz@OHPv+` zrFG?H)Obzx%JSuSG?$iCmzFOXn90DS1UQS?+`yR(Reze1n2>(^GWzd|J1)8VlHP=| zyDDY;3%N177VcW8Z>n3n@BPzbgJfVdzI;*eN_+^00eml?d-)}OB|Ze7y6=DGF+t{Q z?VpDyWMc-eg7Of+;qE#{<_$6rhl4qK)!oHl@Gms0Y=Indza{3 zDv~#UnAW}N#4Ta#v59C2`niKXPN3j0B~~~%X3xB(Got_I+_!Cff-e%jkFG%Og%wFC z?7P-=#8f%$^f8H!+9_AOmD33qN{d)PH!tMxA0VD~#NohWZEdv9cPj49`Yk?Ih>l)c zz{z7&qa&u8?;CAR*2*%a4QSu4M#lFtBKH$3O?Yhv7`U6^0$}Oemhm%*1thtAs&kz8 zCcc~~7s?yo_W3UeHh%E-$_NvN@mo3P)VK+3{Ue%rw!SS4QUQZRX~v#zy#CA*dB>>= zI??FY3VAZ~bn?gts5P2OCDvylz#@QtTT|WXF=DCgJng+Z$Q{%c`|U2fK~9X)?;7P` zRBVb_UwAQp2CKTLfLw5=o0hx(AZXLomy14cqiB)6bz`R%&2~-CiqA&Pm=@0h)jRD0 zW}V%tAY*Nmjcj>}ZXC5gE1C*HZ-bKNkL1-Sa} zjmFI(y&wlBX$PQBcLKzRogx;QI$dUV62r9crq)fZE~N#etpLH2gv0OF_mk$=(IB1wwIQS(bb>blQ3>i)Fc^4Hq%A3sN?M<9rLVf#`Re_}cIHA7$%i@%RP5 zy2$!RdgtDtRT%dFzX~*DWK!$jVg)GCGO!a`rk_$$Adf6}v8|M8;uAdOxKFWy)&ty7 z0Je1h_dhmyJfQVq^7X1zquZo@5l+`F&mK;efB1Wq`uR{1+dcY|$HF@4i@wSBag-NQ zsF{{f$_^<7L6?5eC`OZW05~>17f-yeavZ~FoO#(0yzs}Hd}mALc^WTmC|uP49IBi& z7{(fucC2a`?*RUTDrIuDwkvckwUkQPLsCY|-JcG32DQWYV#mM|h!*d8%H?>18$#(V zynC_z1CeH?Z*H8lD{a#gAffNn^)A%sMw&1~{Y(TQyX3Q&v5kb%!oiyJiB=0yy&`Y@ z%(s7d;*0ZO@#(sbjqLzqkA8Xch(-HemH#UVn+tw6dFFE2m#L&#Xl?iBqI=VrWt8v5PON0y|U%WkbYVHw$H8QE(dNq0ZVXMZI+{R7BGudMTYCiW+k zApAw{;3}{$B>79IoeR(hz~1{`P$O_qDB=4ceO`1E6pp-*lXCjMRL^WE_L>6TC<<5} zSXt(OnJM0r6<_A$z~nX18u|Vr>51qKU&azvHS7>wQmjkv?)q}3kUPK14hy$O$Ul9h zMnqPVoye9O&*h73dEL2@oqT@Y<{U^qvxD3&+RkM?KRJpncwIsa%s}}&HfaOwjb|^ zHCmF){x(St|8}_eT2B2I7qH~Z(7EOVTfXdEJw`r!Rf@@OJQAk9TuM2++Z+jIwT#YO7tH@OuJ>=XL5uEA8dQzcTfeRy7n(IjFBk&bN* zP3`3T?FT+^aZ#Gg34P=b(mf}7kQ2T&g}FM?fOzzqOF8wf0&0&p#sU|aX$@8*V;C55M+HTb|75q^<4YY2cQ5x$i% zgF*eg)TovW7iry-ewt$xx5~DkQ#x;>P6~|QC*i<~fULF5=^|xA$V2(1UKUqNnKv$L zmBZnt90f(yv9Y!7ZEdZJ+gfUCYEo`zq!wP|-c09=JMb1p2MQxSFrb9wNN)poGOfOQ zb@IuBNVTY1uY@ai>5b7Ly15N$?{?*Gy$WQW1z(qP_%?OQW-2=@^j!@O3YmESR)Yc1 zw&F){aulnI&?1|i87=K3{QU8(@(z|9eJd0`fo}c%wtL0(xv)4|Y@q%HtC6x-T_(g( zF*j zu@WkM5rKX!`F+VoH8DXXB`|^=PQ52}N`e?!$j$h>4n8wduN7KEX%l^+Zda;F5Y%@Q z#1QekdNx5MhZcxeX~On!d7C;)txWU@gt{S7tVn04;tDWx;PUq-id3;#{UlLjdX_&w z^zw6{)*mqNYZbVvZ#-Ri^50f7J6Sk(q5q)Whb4r!D#RX)B&633Av1!-qcFD8y3w}L z*@Rt-g9@W7MJg*d2wk|J`(;M}6cwX~A?t=FAAJD+q0UWs7gZXPCLXS|I* zP7*lJcO36f@#QoGr47WB!9xBpNd0t}m_O@YLLLrN9;d!_zxpVi1}r7j>WHhx(7XqM zD^zEyDDW)nd5)ZE=#ZDS5Bim==3xab#&MMH1t5l} z1cp7q2%zMCO@AJ>pCj8&PTF3l7% zMOYf;ZvcZY2lwJ#jsxnonWA73mbbbfE3}sV$IGGqm?_59vk{&LX0x7E@Dn8D|6z>+ zmxvbu;7TaPed@S0QQ6a*B`)^Z-&gg!#hxYE;(amdDQHAA`C#~x!%1EVZ*2Y7P$^cI z<%pzMnAJL7ePz4amLt*=f{h=v=3I`jOw^k#@iluM<@uD@e?Jx~S6!1UEP-3$zFg5L z?o~g_71>snQw}2zu0HDcJo1JPspWa1*rPHTq1PzL67rI<^Bz)zc$qlr&&$+>W$M8) z`5g^jFpP6%@YU9FPiO;);b}7`(1iZ-6&D&S*)i7(j0mo&lkC33@;5| z{=N^9t)OZZ9g&qT>vD=7DAn}pwPUwDl%{4Bh_&Kh>b3%5Ee>+%c<{WBae{P6|Lz=h zb5!js5Och%;=R_VP5WbvVNkV6CM!1JOaCV^!D!-xey-cmYfkqZ%Le}mgtx#l<|tdX z9K7-xEauU3@B0YJUl>!mg*|}h$3Z+8yZ?nT102C<{%TOO$uCjIj1@=q3H}Q)=ANI% zimQ#CZsMmFseeA=Q40=V>hWa`TynUXBh9=jdOikKQ#O(MDbG+p9r2z^IqOoofS}_| z|Dc(22?o?Z!r2kWVd=E--md-eX+2BpmWS3YT*+Ux6!E8q`apHe`7Gj3)YqFdZv~eZ z-d)POpy$ie@O0+AI7Slz5$WOov6k`j@#^`*(0K^xD7oro6GYl#4oLZr*@Fe9*^fUS zYJI^91>l*UHztVx&o!afK4RY$m$LQXgnL=q+awwG-?ev*W}DlKYD zJAFIDU+oQ0O?AUG+OhwjwoeliI9s}!J`M}E4C*t}L|V)>G+b_8d0G8nniy3G2Trk2 zf1#Z*BT4~o>X|ZKtnl#OsFqwJ(s~Zf5NV>A4HyS%!EU_+@VZWmAPpwi6oI zCM2NuY`usapQ(K$cUoj+%U1kySsleN`Jm@N1NyZY-YN%{!c6LQ^F?9)J;Yf(a06Mc z@P>M}phdHTLc{ox1)cNs!+Z&9WT{Bc{e~)4D~C~)oa#UyfG075#`;gSqEux1S)JT- zWhwDXB&m0miBYriFelEB*^gE@`1@z-Q$gaU{vG3Pyi&Z`KzZc2u2!xFVvqVmnMj+! zaY+7b5ZfxHEz#dDJtrPjI^q#>t5GOy%OAFXrk0fpe8fo~x2ivsi;0B@N)238YO5pB zU)8fqe5$j6)tn9Z*TI@VyB$gXCK}u68%O-Q+YgX&1Y7BwmLVy( z7WNG(?6r*VHIJw7kdXBB@xO-1=VwLBm@U!sYAGFqC}}bH^m-5z|DI=0*g!?D!(1)? z-uUyUpVccCkcHAG`|tvBg*k#O9vOxc>coX2g?@RqUn5$$lYS1v71#_T!XnkSg<`Hg zZ6wrjP8OQMy!jj-)Dj~*hWLl$y>y78MRMVU?)lKsn_Y)F_WQnt5PJS8E6q^6vZ?99 zQzv(f@ErL`x~%J7)DRPuLZviwLu)fO5SKCqI94t`mmfz1kPO|G;)pVf063@=gP3R3 zi`Nqbn9H8eQCV2?kXduG=i^H8tjC|tGqFGWr^O;(6v9E$f9?i}dVKQeh_ZZ%#9yCu-3rDf5Be9gzGPprbTXYRk@2wIe zz4?M=0Zl6RVHkH|I(w+kK%qfN$FRV*0I0biinc z(twmiwRou*Pl4X1rQ)W!tbBh2BLfG4ciz{M0%zvY;2aV_?+-2E)VzF|I4yRlW0#BU znG3M^7>;g__~vIZaDj=ECJajHpC_sAT`rc1Q9Y-Yi&Mt9D=@1a1jvPYUwwLoaHrN$ zD_RtVjhgt^29=#Cjik~AE5)4YwdjLMEL)w9%kis(jrs?D#EF%t8qT8Qg)*< zVy9296pz%bKxGgq8vr`d`Eoq%(?`IQ%B4wZ7LqD%!jpzczX?IVAweG-?x9kzSg230 z5+!10&rhqwCmv^KN6-JRA)KgIi`Iz=i`Z8Cc%y~Uy_e3Q2;Ddb4X6fVVRn((qb0YFO>D8Jhv#;5S;_E4{0reXkl)w3ID>#(b_HjzGCcM}GWX|r<`bd+Z+I1KHys~c_N zo}8;;Wq4*mQ*mK>0Bd@3HVRe5pesfcY*zo&ASQ_4sb4pUC8A3$wTs`5v(U82PPQuB zi`waXW|#hh8I%yV%}JTM$*9cM7uHrC=MXt&&(Hd%sznYlx)VVLZ3umgO{wN?{uMzM zahEb21u^uQMvJS6{dXlDjb#8JDOQWY$0DAe)8L=6aq z<^b?#8vIEEuL$S*a)6kxK3_BOOty{ ltzv;FZW98Rw4wiR|Fr9iztGFS>Q83x+1DoCGV<^1{9l2gDOdmi delta 24351 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 delta 3234 zcmX|@3v63w6~}X(>*Tw3UN=c;9?ru_?7ZrmK2x@#Hf__U&CBttNgTi8M`I^;oY;A^ zEX^`a6BQC$o1;x(Fz8^SWox^Z2xwJ784{Xc6SdJDOA(C6HnB1x90`enHsHJ8v1i5S ze!p}6=X~dW-*>Nb|L@%2KH*BP6c=mq=;wX@-qgv-OC?ntxz+l`LarJb^Gy&b)O|jx zQV)dG(`|~M8@%+Vo$4Wq?F@%0!V_c^engDxf)U#C4bUnKz>7HMT#DRH<$GAw4+MiM z=u>izYep3@7gPixDmVb|YvPcvm0(n>;|{`x_AIL=7SWW1l9DXKlqCwA9~8M&5G*yq zjnY9@=s87FQMOMNTvtj0EjhsEyi{gjg??OSSQqEma9+Fv!{tWUpkJlqd*vwksQeE6 zyuzpo-c(B5q9vTH#J)<5kJIaSDrx+-62C*^9u}|If$_)iy6N4~se&6jak7T0JF4K8 z(%p_~yn){<*?*wfb8w^Dz|FxUYUiQ8Mq+pJp%VUxhLfy#vW70e$BOSE^)14GYwWCP zTkQ+%`mojjdv!S1cXe^-t~0_~-70J~v;tS(s$4fa>#uY0X+wrN|IygWU*v-I>y6bg zsxO8M`VQv*p&rG5)IX=CZ7rfk3&wWD~ZGO^nH^0ewmF8KT->25`H-qi_)m#hQ>#E({+4W8>cYX82{uULK5A_yE^sptmz%^7;utyp0g_WT< zxWk*fhF{9(V(^w_m`lJHtWR*uV6{H3ds5M?Q1iReQ?pC)NFX#ANiLj@gq9PlaMjw$ zJq@z;GIs$MZ5!N0D6tO}yr87KxH)NW&exi_ygd4sm)x$0=SMA^1O7bPO06)~p?7FX zRhg0+>a4MbwXB)K(&UR|Q6qYv7y%m-}D-Y8^H&^^cp%Q5&Wo633VHba>Ie!<`h4e<_BedFcUyU5UPAe5<)lw zCw!7Hg)pav^FF;WkF=tOD?X!e9%)q#zxA2OQ%EO4J6TIk;oA0tG-)IQ2!r6FFoZA+ zU!ANWW`q&AMk5vkD+3#X9f)5d4g?PzqTodc!-C&HA_&v)ir*m2AVdq`zQ0q5AteeR z712RMKopYbSt)>cKnIS1NY10@1k45`(pSiqbp&1wG!YAe6Mju$0wD;G0!=~)VYU#O zgC-%4v{VS=LA|hyv{DGq1oh-R(h0a0q}55b`d=tm5S&mIqSX-w;b_P}hBQnz4DpbW zm=Q+cWeOGqE4&>tbl4E=n(Q;7zkEP$K6slx6S*yQpyD*toT(8;5u6&>J>5bkkX#Ts zV-(y79u3@&8i*Ik2fsLD7@9=z=O$^od|YmM>}Mq@-kj#mGH=cVP!Y^243`(>)}B<~ zc#3zXd8f=fGa;0O;oy`>h#<^rAU0(Z<49*Qdy6!{|E8+RIrJWdccz-eV_LQxgWBv- zZ-@3UT_p65L1S1F#}WKFNi%Q}gAhP(R104Vn}itBk{13QHj!nd9(WX%$dRJ#f=dyT zXhyIXWv6RmkMLSVBo2&t;Oh~31QEh;KO%_{ghVc<9W35zA&K7ABDUgBA@zW3n$B3v zX6%RcX%iVh7=gEF#Dd_2&!%h11Ool_oG}tFf)9pgB=aP~ba8g`abHqBmK1MI^H!O+ zW@bkVcHcC}drzfC0x3S2=7TaH%-B$3hu5RE#DPGcr>K!kAh_Vus9tm< z__5L!X@=A^-9Pk3OTZN~i7}+5oMs>V#8pj}(c1%eV{}zZv#YutlbQz*?4{X#Jh(-Q zWwPr%vi~<^f0}g5q#JHcRX7}|3!*M1)NCA=b$f2p6W*8R`((Z^6GFwAT%`_Hso_C! zU8ay%7i{NI^H0TOrcjwEh1X{FLK11E6y#a@CP1>nXR{{JR>nFVD`U+)AdN5|H;{4k z`XL;bgaE>98GJiVpA)3Bxdc5+IEUV&P&Z!(=D0|XiLCB0^voHE8DRusb2Y?*V1?)B zqz)T`OJvihg|@2(x#Q5A?i6oJ^ER2cW!$Lnz+dO+Sw{%dX(SPwx?FMTFIP zdXGr`aAlsp^2=E-R(N+_A~u9E&?Y1@j^KeK6ubyQSf&s{n1<^KNt{7gD9?7;4Z9aA z*OQ{Kh=DJcLru~|o z!T<~OUJ+(1;8zRuJ&$y@VtvshoI_ZxfbK>5!-v!hGm8>AUdejshgT>JAdJ9!6f6j1 zP`pG}0l@>uD0mTqaBfLz3o%&JZqHTbl{~(tc~HDtF<(+l_nPKu&6+0BN&jj4KXA9w ANB{r; diff --git a/inventory/__pycache__/utils.cpython-311.pyc b/inventory/__pycache__/utils.cpython-311.pyc index f564af6fd2c501610089ccb7e907a092b1dca466..01677b7e5154a7826c5a2a3cef94eb534563393a 100644 GIT binary patch delta 1105 zcmX|AYitx%6rMA)JF`pMeKp$_gjLF;)P{s$OE7VbSW01`TWYZyNZBsk*>)F~(mS)Y zE^P|((9#79N7+)aKYRq^Bg9_C&;(lfqgJCNZe=qGMkQbZAz6t(2(NhWsJ%bFx##=N zIrqC~X3kEES1yW$+{{@C zgYHtq;^OUb@&ANoAtE#jWGjm+Wy2oRLJ>9mib@PiQe!Cp7ulGg>EUS9C@>!hHL-)q zRx_vsLm_H+Qq^<~SR*vtkNclyo4rC#ab%UUydYU?a?X-;U)EWE*;byjyR!DVc>!kG zimY>a)>(boR-G$wzFCb8o>oxt6VI~{r#C%6h!DZAylLpBYfIh}mA$OD)*)b1O%*Mh z8?nF;?O(7JAVYJ$8Vih3$D+Fc=cuy832>g4F7*LS(Nz`Cfbs?}{T9s950<^Ez%87= z;tJfszgOImA9Ar8ulnXw+sZKjnVxy-eSm4YvBprCpQZk@;G@6zH&|KlL~RN-(o?lR zNi5h|zn7{fxJIS6aS8JDT>Fd&4`@0%$HL5H;a^xZyXP*mDW4VSnEwgwfyM z0Dsb<{%J{0usqU@+xCsaZR&V^TJ*fenG}OciFEUQ5^o;p1qIs=epAxP359|A*|d@6 z{6aB&?$AnhTkX({=rT*VYDlqNI!WNmgKglz^MiLGh2w|YpcspXW(sH1$N*q`FbH0( zO&=~W`^Wep5zM6zKoM;{@}(&EaAp9@hBre6#)d}})3#Yzg=>c&!$*s4unb>1cGSC{ zrB6#mu02X82@rmtQxc(xC76wLP%bG2r#^(c};F^Xy!hI8+Lz08QfsdH* zaTte*h*~Vp;$I delta 1174 zcmX|Ae@s(X6n^KuwvURGw!kpJ(2c@q91+5pE&@>&L5Sst60>L~w7gej6*_NUwJ9{x zgqapQ)^ZfPxwwQaZqr0E?sSPJF#X5qG{&T4qzg+(G+E+YaQnwB!|mR(aFhGx-1B|s z-tXL-`}3SQGcTIH&dJ#zun~-X-(RGCXS!>~A&)WVE0#JhC=db-1RV7gXUXo3bld+NHdynLblw7eQNc!!ImQ80%QWjgp5HTzn&GEvsCCShuV^zvnwIaYe zZ%D`AC zTUcB6GCbVU3_d#D@~a358g7$CxJaY>d;pi|s-ppz`<)$o;R+q=Smq0NmkX}ayImJ_ zaFePBU+UmKRSxgb!DD*4XI6se^!>gC5msrfdxMVIYW(1tE}!%8&0-9BZ$mNN^B`SG8NkWT`)(7{gWcN&=iQm0!;=8 z=oF^JM7YFw!m0HTr>6dbwZTfdMCknz`k*S{L?xr}na5~Wj z<@hXdtLmCT`YtD0NP||RR910 diff --git a/inventory/__pycache__/views.cpython-311.pyc b/inventory/__pycache__/views.cpython-311.pyc index c940e87cd2600b7d12f0eef1576705ed23f8072e..4fc9c8dff13bd3aa3df55ef2b5fefab3caa51dfd 100644 GIT binary patch delta 57349 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 ^5fBqlh z=$wN@a@s`tb5nf=#Z9spO`?^{Jp-oA#=)?*sYj2C&XL%D>uYF_s%~$Ks{ggEvi=|2 zssYso?DMu&#}h*7twDp{8aV!RLVW1CY4@4G(&C*v`9XE^ue3AceZmYB>NNlph=~z} zpL|&2*&gVD!BpZN&E6c2As%*SjlQQS%v)OMm3xt+S)wz3DU1f(W+Mfav2@QB79&x9qgNNh|aS}G(u%m zG+K5fAk0N#!=|KAwJ}*Z)aKud=&Yj9ow8nRyb*fUI%0tFQv(ur1Edi6O^KhXl=GrD z&8gYv#VQ+r7O~0n3DE<%Z>~CfUf8XgENSKND8i2c9tWIPr;gKLudvB5mC+)8 z-~J?uFUWbxsTR>|5bqIg2eF}JNXZ)!{)EEZzOIEw5Yia))Rd1!SqBu*tqn9<9r;-F zs^t;Fy@LnLA3^BDfFppr0N#rVS+$YnL(zCK24(j8bBT1BUtvs`WAQEv&E31a z);~m!Hq=Vg=l3m0djiSAUEPihAh`c>Paci@ZvY$sOaXZN^i=%J0n7k&raC#T%m&<+ zT)cZ>u^?}@a}lj03k;dgE(a?+KM_4`YfuPndE~O~au5~10_VU9@MYEXo{{R1pNcm_ ziF?qUCW-3&7h=s^9%q=HsBe3D1B=22QkK*;Sg6DFK_&dwq|PW1%SRXR5M{JPz3?wF z3Ni@qEp~ms6j@V)NQ#}|9(NXjt5qJTJPuGb6L+#PlyuPkhmU?KT>gh&b)5TBoEB~u znFqfSwxm>$swdL)0`vy($yR@L;TxKsxIQe-AK-}jR;&!Ios1NSk`}880fl4D`+2?C zCV%9kvj#-wKF(_x=77m~hEor%ddwmn-vc3hkrebx%U76#!zg>~pxq}zD*BR$4|{{2 zlsnQciE22vCndy5gBD{J4tnQ@xdg8OkAi)9Zy1?02xsDLB*Kj(Cg91yM9bPvRDxH4 z#(+eFOWRI_n@3E*bKXQ+#JJ|);x9Ac<*ref?CcK0X%nqOopLUy$Paj+LS{}+&*3S~ zYqby^?_CTXdknShvY1S}ma~^d_6YQ$+{VyAxzpR|5&@m;IGzDsRI|Sq1NGAGIJR&@ z)yvSd3kuhn_}p6PU5-Aw$|6UjR|s}(

xcM{24}nc{Gy7& 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

wTBlBeU5IT5lGT{ukE` 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 diff --git a/inventory/admin.py b/inventory/admin.py index e696123e..f5a80737 100644 --- a/inventory/admin.py +++ b/inventory/admin.py @@ -31,10 +31,11 @@ class CarTrimAdmin(ExportMixin, admin.ModelAdmin): admin.site.register(models.Dealer) admin.site.register(models.Staff) admin.site.register(models.Vendor) +admin.site.register(models.DealerSettings) # admin.site.register(models.SaleQuotation) # admin.site.register(models.SaleQuotationCar) admin.site.register(models.SaleOrder) - +admin.site.register(models.CustomGroup) admin.site.register(models.CarFinance) admin.site.register(models.CarColors) admin.site.register(models.CarRegistration) diff --git a/inventory/models.py b/inventory/models.py index 4735de77..75bd5dbb 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -23,6 +23,7 @@ from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType from appointment.models import StaffMember from plans.quota import get_user_quota +# from simple_history.models import HistoricalRecords class DealerUserManager(UserManager): @@ -318,6 +319,7 @@ class AdditionalServices(models.Model, LocalizedNameMixin): blank=True, ) + def to_dict(self): return { "name": self.name, @@ -401,6 +403,7 @@ class Car(models.Model): mileage = models.IntegerField(blank=True, null=True, verbose_name=_("Mileage")) receiving_date = models.DateTimeField(verbose_name=_("Receiving Date")) hash = models.CharField(max_length=64, blank=True, null=True, verbose_name=_("Hash")) + # history = HistoricalRecords() def save(self, *args, **kwargs): self.hash = self.get_hash diff --git a/inventory/signals.py b/inventory/signals.py index d39f65ad..3012e4b2 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -883,12 +883,12 @@ def update_car_status_on_reservation_update(sender, instance, **kwargs): # notes=f"New schedule created for {instance.purpose} with {instance.lead.full_name} on {instance.scheduled_at}." # ) -@receiver(post_save, sender=models.Staff) -def check_users_quota(sender, instance, **kwargs): - quota_dict = get_user_quota(instance.dealer.user) - allowed_users = quota_dict.get("Users") - if allowed_users is None: - raise ValidationError(_("The user quota for staff members is not defined. Please contact support.")) - current_staff_count = instance.dealer.staff.count() - if current_staff_count > allowed_users: - raise ValidationError(_("You have reached the maximum number of staff users allowed for your plan.")) +# @receiver(post_save, sender=models.Staff) +# def check_users_quota(sender, instance, **kwargs): +# quota_dict = get_user_quota(instance.dealer.user) +# allowed_users = quota_dict.get("Users") +# if allowed_users is None: +# raise ValidationError(_("The user quota for staff members is not defined. Please contact support.")) +# current_staff_count = instance.dealer.staff.count() +# if current_staff_count > allowed_users: +# raise ValidationError(_("You have reached the maximum number of staff users allowed for your plan.")) diff --git a/inventory/views.py b/inventory/views.py index 6d2de5b7..48123988 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -318,6 +318,13 @@ class TestView(TemplateView): class ManagerDashboard(LoginRequiredMixin, TemplateView): template_name = "dashboards/manager.html" + def dispatch(self, request, *args, **kwargs): + if ( + not request.user.is_authenticated + ): + 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) @@ -3828,8 +3835,8 @@ def DealerSettingsView(request,pk): instance = form.save(commit=False) instance.dealer = dealer instance.save() - messages.success(request, 'ssettings updated') - return redirect('dealer_settings', pk=dealer.pk) + messages.success(request, 'Settings updated') + return redirect('dealer_detail', pk=dealer.pk) else: print(form.errors) form = forms.DealerSettingsForm(instance=dealer_setting,initial={'dealer':dealer}) diff --git a/locale/ar/LC_MESSAGES/django.mo b/locale/ar/LC_MESSAGES/django.mo index 5ca1afd7a046a157352048cebf4d5ea89cb1d0a7..70ecf901dfb564d2d67089504b5c8141072c85ad 100644 GIT binary patch delta 52053 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 delta 51590 zcmZ793Am2c!tn8X?~PD0lPTMrd7h_j$UGJylBuK=iBjYVrGZqE&`5(qq(PLDL@JUp zgixnaX;#u8egFTn)_K48diQnh^IL1(Yo6|BZ*mT7D{%Mb0;$7Aay^jn)i+;~l*K2z zCCSxiB}uJxYLa}mHA!yFNRrR70uJ7mBzwts^Sep%GWL5fNd{v6_e1(f{D63i?Mc!O z^X;HKcE|g03qFnm$h101Qpq0#R*>+_&LnAz{XR^R!!$G>R}sJNqa-;4D}J0L=VA@4 zh+Q!kjzzL3*Wv`c4!ht{bU<}?CrLT%fjM|3w!{_KjP{eS2{b1mdry*_gBN3Iybf(} zE?UuZG5x*hS7^mfhtJQ&j@S}&<1Nuy(K*q1(S=x)_LD~mRKORIRY-PYCLYEt{2U$O zS6C3gMn`@U2jeL$fCKj>NgKQz>*7;b3-@4E%={$OR~_>cuZ<}iY8D@~M3z2ji+QmJ z=E44G!$YED5mV=+8{*8dY0!c(6x|3wKD*dInv0nJbs zZLk%djXh%eV6@;BSRQYT>5I^jK8?=6$Jhyr97vLyI0zl_ZCDuZMF+U_0Q2wEtsudQ z*P|VJ4{i7`Is-qTBl`{0J&zVR7@nVt9e7>^%{K;Z;94w>H(|Qr7+;FkyDmk*k#0ms zz7y@~r)ULVqaFMi-3zDjOw9Z=bmZ)4d9>krX#QqsJ)O{c`=WbmDB6)L(0Wog#Rs!u z!o6t24@aLuXJi#x@mn$dL$u@j(HZ#`ow2`SJl~8?v#>Nif_7vbI@0ZE{@u|pqQ|2dhr=-}gq6ux0^O7?(V6U(e$M(|5EBN* z3`5X{#$k7yiS=ynoQKh+Sc>L<5liAbXh)A=HvWdr zZ1Mjv|CI>TBH)8QcrIRxR&*~~!IJ2Dv_relDLsW1u)-I?4rs%dVHvy;ZRi0s|4OWg zyU=pKeZl%Wr6s-$Yg!lGd`;0Q%t1%i3!UPA=#&mdclBs=4@|_$I1}sOGtqs~JYTT^ zNpFk}U?eucxnD8=KG;NpYy4AuP~m8}IQpRlZb6@~K=U7p>1Tc&E}kaXko1vg2Of-W zMa!Q+N1pvn7+43aM!au|fEC_|xp5ih!RIh9zJ!kW_2|1;j`$wT#$VAXF7|CGR};@8 z-T>?3V9bZJ(V2PxbK#Td(x#pz;1X;?*X{s%+>A(2OV0in6{B$E7&hK$U0%wBojC zzJ6%A%h84>qBC?Gn(qm8#Oq@Gb@U$i2=n>=|B65<5`Mz`nD2+s!(y0^cs80|Bc?Zw z@pkCU^@#Dy;`8xn$EIRloQu}~Ao?y?gH`YytU&w84+Na@f^6eQhySpFmFnS(rkXVkX*w+1M5r z#^;|zKgAlPe}+!&nLme-7D6{~DYSuXJR9qv^|i)A*bNKf;Gda)r|2pYEHDwBx*6yQ z=A&!*C_3T|=tvJ@JuLW3IF>osnD_*AhMqxB!H$^zJ60lI>v)*@K4|{yk2C*{cqIw; z=p}Sb-$rNT5T1#jqr3eFbPY3p$?HddkUS2+2}wY#x88R zWEBDTz)7@6$;nXg9CWHGqnoTNx|w>RyZjQg;*n^_u0lID0gGS?(*r`wJ&MlYb7=W( zn8)+~0Rc1aK}Ya8TG97d7XL)ovcw-@jjLjD;*HRTxpd(&{_ViJ-V^5+ZU5$=tEt-D|I)jJNrTZFfIL}{UAQjM= zs)H_7lNiszls)c3zzz&SM|O3L&%`Rk=cBv()fnG~or(X5+1TXo@B_vGw4rI}jLkx4 zask@mCt~~sw8Is@LY6PFF_l4 z5iS1~nr|Pb8${dr6H8&?)ag(`&1f66qQ2TPD|hHXQFM*UqPw>i*27MC5#E3` z@B?&;|3o{GKTqgjCA5JWXa}0d`1xqP{m?x#Do-jSeSB^p!6lfBP4QuL3U^~Q{1&sZ z@EM`P2IxrJV0uPkyeIm4?vHKpMsxt{(Rw~c%l(ZNFe{Ze1gfAt>x_nw*l*$+K*T81P+oGFwa&!rLmA{9U{~2BKRO$Q~>0h0+jgH0IJXnNg zd?&_#K`ShOX4n&5q7%{d$FUZ^i;nd7=(%TQq<_@v6ulAa@_Z#W^!$Gs0!g6)8R;LL zI-;BFI&?+G=03!&*1W4tbA5^slYzK-ar>Xw%C-=BcH zei*uzW6(`AKBiAaPr+^I$kw3w_M=n(8QRfbVmzZ@M)>6u+R;I1hlZlZ@G7*uo3Q}x zC$k9HqxooskD(PlAAK`E{}3&B5UuD-w4=Y{1(;bVjIcj8AwC%0)br5#9*^Ztil=T-)facH|0=t6W)L>(fw$Lo=0b7Jvx9l(M`Au%VGW^Vd>7p zY~mx(ax;s>^FN0K@AL=agXhp=vKF1XH*g}pj|(uTXhw29?!$YrSFw!bNj!o}@z&xQ zNh_>YA|q*yqp%Gw#g_OvdLfl7$@#a3^-G4Uv^Uz3LFnuDT6C&zkLin}FGSx%r}jVS zxj&9pT;iNit_B)!9qo(GP z33L-?^25EJjm}u8(4_G)s|s-TocoGp(FSV?bsja zdHxs8pSx_h5euR-*aBVJzUc8ChhAt8p*P0<-!b9LOWCoo$8io zNBg238y=k=pD#hL>Q~UK_5j*Ya&FigRWO@qS9B(>H17GI8Z$hC^@(pnNAN3}F@O0m zg0krAwhNkX8aBe`(KY=FJ?|OWVMYp~`AeZ!dhZy&8S4;#5!3Jg{}6C0Pop!Ct3o(_ z#nBO$Lo2S0u6avzX1ZW|9Dweb#pten0zJNOpcmU#bjfz1oB9(p|MwL*|5kK@1RKg# zF*HyNy_hPX9czgeXcz4ky)Zfiow3W%hNhxxKNG!zm*5C|8r>`TDuw(-E2YBP)*!)x zIcN_%qkCd7x&+stBe?~wU^aS=A3)2kiqBt;zKNcO_tEnEV*Fb?pZEz(@2OPf5a^4p z;b?TKXQB<=7vm41_rtU3rrL_G;dkhgm9CPJT!S^y5idqR%sv+5Z=fCBjD7}uFUC_J z#0-1T9v?tQdKB%*FX+_(Gs-a^g(WR?^cAy?+W4ri#1iDwo;>CC)+Ogf(7WX3^ zN+qSLg$lCKDX)(<*b(heKlI!W!%Uovc4P{=H)f(sb|+fyk@)<%=*wtFUq?H%9Ua(y zJk#_4HGy6v{EAl4{=Cre1z3alP;@iiiLTibXhrMMhPR>}Ie=FD8Jhn`bV>784_1!m zpi41CJ^v#KxYk#qQ#279;EiYlE71zyL@$^FXh;6RfmpOgM*7bI#-cOy3fjP{XoohT z_3n)BMrUw8rhM=@fgX4?W@uP5ybGG4ySFD^jhEtd+<{fFcdd-{?*S&E19%;JBjbZ zH8{L}`a@(=v;pObcgAt}G}_@34a3shioV?LLYMe4bknYG7|;Kk@xfknYLCYFDRdK_ z)hLYc9CR~PL`Pa5U8+_wJ`Sz;CbYrX=%#)gy`WyiI`|$s1AnFn*g)&XVXeBN6%0Vr zuRy1EBDxgQuo~WruHicLlg^u10slewNckoqe|vPq{m^ zaLretyY+4Ks@)aiKcdIzZ?t3iT7-P(py^f6^oD4M+sE_^WBTwIACC@jTJ(O*>-m3% zfSYLz+Vc(3t!Tv`qCGzn)4xMUZ~~j-Kj=uCwu~c2pN~P`0oP(1ycgTyPOOcETgCI= zmViC$h&D6`?a*athsMYBo3I)2Sy&f0qMPX_beI2u=0CG_=s`uF&?~rRn|LhIC2WP38-(tmq3Gru zk9O#eHk^Ogd|pg=42?gF?&h`Vn(jb*emJK8h*q4tZOETLS`yPEMQ5@Oy0==Oo3syB z#!+a8?@SSJs_#LkYBAdI5_AOX(5c#kPVpD$yWn>;U!k1PP&KsU4Y3jC#PmrqeLALh zJ-SyGpi7rpO~9V6Lr3~H+Q1%k^ZkStJdGB}(=Lp>AQ~@*mM@16pgKBJ^{^x6U=6$t z9mwzu`{EIelcIWV;RyI2IIcS6Z(WxDR={*qB zFOTV0V;!Dfht|6k?a+&8hc=+~Z0no~ADMQNU_~FHAEEYQXWWmqutJyc+UeA!{t)fZVYEZvq7^6I!-(^vKOk3ZSXU!geS2Ymgy6gssp+wx}dwfKl(vqI69M0L|;UgYBRdT+xu|-Jtn(IxE{Yp z&-KW@VWeZwif=+kcssi0PofpQfNtK`(52gm*?0s!-^m4`!)IUvqBYT(8H!c#h6_0V zR`3W3-ds!2&G>B0_!8Rij+lN7ox&67CMs}Y_!L|Ly>PmroApL?hMq>3>;rW7A3#$9kgq2BSCI2(+QeXam#G8JvxFcmX=) z%hB?i(bKdG$)8F-BjBd{A^I;`u<(G8u?pHyBea2T=#&mX8@?iX4f>Lrh~68kqc5OS z|1#R}Ms(yKU|!GvUILEj2s-6Q(E`WOO?3)wxa`0%b=C1=;?2=rJRfa%5jvB*(RzN0 z&;O3`WKgL0EcE!5z#^XidIa3f9ng{WKzn)#x&&j<0@KlsJcMqZXV7E11#S3CbaVcT z)>rc4u(`9*5m!dnz83nt6{dV}J^>r*88eJPJ1_yga;KvOo<`SlHQJ$VX!-x3<&U8= z_b<8!@(m74TMQjoRkXuR(fk(;=KQ;cSCQbzuEp9o4ejYlwBZftRBu7^y%(SFLo5Co zt>+K)ZFm~ZS9(Y|J=M@9>55lje{7GNhH(Bn5y*8(_yfl7IF9&KtbyNSHkKS33N%B{ z?-cBcbI}feg3d^uOT*G+qj!939F2qV2HcD_vE{Jv>3DRCfEib!Yx-V%@HOTTuQfb; z*t{CM5MPJqW5$T^2bG=CsZ60WH9y85L1*R#^y=P>&fozw-w|}vr@kTJx%>&8@_*1Z zEif{~i=!1)LD#+s+R@%9b>eKDtRCMwjRnqywqsV**xi0PEow z==m=;Dx{x>u3desimlOxN172<2wL%I^uih+<1^4Dn2nyA$I%OGbxhw9JrL7>it*f+vu8a2r3u(z zBXnvyqF3%P^f=8#8@?Ou`2uuC9!1x1Iht<`x>T>B9oZh^2czGk1NjGi>E#{G`M2S- z2snbWXa)7rP17E2a1eU23`h6Cjp)qGLr=qcv_sp`j(&pH`#CyOzn~q;x*{xD5ws)a zui*UqpauzMY>tkkJ6dsnbd9fw&nICv@!QcQdj@T2EjklhV|+*S5L*8aXa`TB1Ijxl z#0!l{g&V0X30BY&?OA)w#-8Y|z6R~cM06&m$M_<&!l%)OR-rTZI@+<_Xt^&jJrn5O z$htBtb*U5q3p7S6?t!&%6gt)Sp%pBT&tJi8;yckL`xz~t`>L>K%3=lLZPDk$(GFgZ z&cHNuiSCN=)crB=7&?L#Xir~_@$KkwJQ&k|LNBb0v0<;2kJdvQY8T^O(FQM$UXC8W z3243>koHnZihxr*7u}WfqYKfVJ{;pup)>I;X5(6PkL*L2?iiZ?7jy~#LhH?abr{f@ zXot$7d#5_4|Nc)?0}c(n z-U8iI-O#-=Bzn_$&c7X4NP-=B1HA#a#|+<~Qxx6QRxYse;ck#f>YZXeM=2MJ2C<7z+7|$529=QY)oGhAbt_Lbkot(a4%YZ0lE~aCkfcox8j4H=;k|w&cx5?l$|*#Trefj zikhPxYl}V~7#)eeysnAy`_PU&9Mj)HJ9-SMhx`Bf(8FSAM=GJ4s~$QNP0^|EfHvG8 zZE$e(al_1F~7e_H}Clh6=P zV12AUHSGSu*qZoQT#d`o4qtq8MzRp^M$1>77EZzC*x7t|J|0JBt{KPNj`YVi_$b!I zLn#865y*E-M*6??8i$VLHFO5{plkLkx@H}xhtKnU(dX;YncIic%!f8OVMa*52c7yA z=n`*5Z_2~yKz~dT=t>}aW_WL3i8G1M!H!ty){Nv~?2m4~ZV;f3TYgLZ5j+Tm&F6yJk3^cdRkljuyYLYM4SG~X7q+#alrN9S_>eNgP4 zFr}5zwQY`O?1`@ZP;_l4q9dM%mRpQ2(QqkDyc!hikhGeosV_!5_B`oK`U5*ehyfSPWj51{uWjxz7_4j59re6eIS&ph&Egm zZMZ(#UNbD<`R`1?-P%7oJpF+G3MM)Qz0>cEJ{{eRF3o4?h`&J__yz62ALvvUS&)&; z#gga%o<;|@4%6rVEdwNci1zd_TJg8hU(hA`6YY7P2SdC#y2cgJ0W?JKiMD9N=c5gE z!+O{cZRa+${`)ayg%1(1f#v8(UcpZICO(K~EX+uL#mBHPFO~ZjWh4&}e`;|?G8S7t z6#f#*GgyiES9m$*dpINc5y#_cy!4UqHXZtCcwMi4l=FWv4}K+~EB1OU^lTwI6OW^7 zzXBb}YIN<_qq}}5y5`j%51X?ix>SSEfn1M1PoX1UjMecO^gj9M@l<&2{!9V`ONuNB zQ&$XaxKy+pT0sT84C~@dd;nd7QcJ_8t$|MUAZ$T}ci{`fw>%O4iuU9u!yb4a{~-NP ziogy6d!Nck_T!UJhu>CBTNZxeS&P1mzQFS^&okjqF6v?p;{CBI-hwr8S&V-iVckF`&o(q44YbZAH{C`7WIuFXP%1A!NCFo|HwmQ5%XQLl9mZKy6 z0v&1o=QEN~*aYp+L+A&OU(wg@xHVyh=HfEq>#;KqexG|A~N~#frTcM%)Rl z;C6I#K8@uuOV)|#%U*q#UYeNT0M=M5apqsVu7~L(EH>tTJ8rlf5t0ePZYyE#H*w2)q92W?-Vs6!KrB# zADoZgXk9TA`^WTw=-wC-pN~Oryh&)jDd^Nri|I4bj@^kiyclhG33{JA^$O?T0;}VL zm(ch+wBpxe`et+_@1O+_#OGh4BR&?>|BUHb>q0~M(E19XGg1VdxvJ;|*Ca*2p0z`7 zwk~Laq39+Xi8g3H3*L#&)FN~wOQTOmm!lQ0LI37lkcSTcs30Tp==n=F- zU!V;gLo50OX47xPs^8JRi_iuhk3NM~v>ff|3uwcyp?hRwe7+r>k=}zavPNPleY<2!S?vz zW3<78=+u3NcJK>yhJHdvkngq7(bDLME1~7;p)ae(XhR)hdUy0C*C%=brvLtLKLYl6 z5Zc2_&(`QHe?2WWtHXgs=S=Asp^!3%INUWC;*hS&5hcnR^N(T;Cs zB-avOiv6(ICeD9d0%JCXo-RT=^d|b6JcbRi@>}80cn6|0bw579Tt0|wo22&Jyj<|> zExawU?mHRDaq^AZmXTb6Bi>~blKwur27BKN9oUz8KYYZhwLK$wh>UOJGdOHVM)DTs z`yeCPjoYy|F4>upJk6%~1z#b)@T0JI`g|PTk^`_Q>Gz_iVjI$4vI`%_kI~-`Oxztm z8SNtAN2c$w9p>8;-sj!11M#`o5kEqAaml@5jhkW>;)Buj>F81|!3y|peEwZbFT5}O z(Q9+`SU(j^CF^6tj_Bvn6X;7Q-zVYqS_Zv>yP!)jIC?2M!jb3=c^P_4C*fS2f}V!_ z`@{SH9CXQt;TYfl_Y&wu!e3~`T@Qo{qbGX&2BODpaC9vC3Fl^XiszvtdMLUY?f7Q& z6zxGb_kUu%z`^i?PHC*{`ENkLB^ZEKG!gyOdI$Orcmhk}#`t_6`jP6p7|;APlq-SW zoHejM=EU>~cs21^I01jd{y6#&=Rb$Q>jbI95QHa38|3irVx+(>*Q*1^=#uvDwi`d^Fg3#O7^3D|*xUxy5>(1r%0Q#A#<-~zlI zkDyC1`kU}KBW9s{V;9c#IX1>?z74+(dlDT``D0-QYM^h?_E^UAKO`nhMjM=mcHlXz zjUQq|JdGZ!2H%CH8ikH%GP(rwaS*DRd3jq78q5j_eq^<|kr$t{=nwkd5xGrkI0$uq)n&UhM}lWuW{| zAz>tTCcZ4je~LEzIXu4s`|$iVG~Zdjgx79Aw4PP@!*b|5ChxDoZohK= z&nICH2|4%?+T)_Xg&C=Z?THUZ?}I1NbH4%|`8xDiZI13i*Zym4iRDg&*ZLqd|1Fq< zv(cs6euDGwF0cA~*i?1VcrSFV2cVw^?u_vlu@&*Juo+f78GaZYj1`IBj+R@FKL0eP z7yly+s2O@JuSWOC%oG7%moFgKaUR+=h<$2zs@CkM5B|e}_%jEZPIz6T{Gt zTvIU{pFrz>8{K?Iu>mHh!f{PCB;e*6g!cSOw4#Tj>(C#!ccT>~|Aft18qL=sdMUa& zr=T6ZAMMC1Xt~4DKhRBGtx4#JHE;&HcF#q>Mem0y|Av{k0B!hEwBu9I za&yq7dIg=@&(S3)#7o@G*%e*dyV29K0PA`FpCaJfY%e<1zo8?^$jD6pVNofx;6U_> z9*$N#32(+#=tyg2W~Qh7LTo{NB3j>SwEPBi6K+9g9#d|URD7qBI^Jb<$_2!^6`7D}m6T0??&;kFG zH#3!<`l9(V(^qYMbQ4~R9;f@z*W^nvz6+h|->^NF$)B12MdeU5{VB}B?Pxs(&J6Xo zMfb+l=$?5H9l$eZ^6#G(Ch#H&PVp8z509XmF7H`kGpBXmk_aj4s_>XgllCdQy7`xJKWipXW0Qg^^T?Hb9@Zj`l}8ay2@ox1*KLT7kNFqJ$>;BgXm;2n5Pk@|9z#2jr&vg@iP^+kUG%K51e~HpXvI%Q*PtWcfKKIZY>LM) z8!HyiOy7(h(C6c@G2VtQ-D}tqiT8o&H1-rqtYSc0CW>h zMBj3YWBOa@$d1JLX>`rYlnEoPjm}I5G<_&~+{U9FxD)N@(`W}@MeE;PhVyU5r{aS$ zWkZI>m`!?bOjm^d%y%c|#YfSPY|GFY{1jc&Z_!PfyIiQJ8#>}q=<%D1=3jx{gzHiS z+$5i%yRz81;R3riHrydP z7^yFnTt~nH52H)50$sEBqFUO?>_iwkG~LW@GtE zVWxAil<)r$1RT*+^b{;XD_Dts{(lRbUwmhX5!_z z66;~ns$rlV(Rwb#^!xuR10>vzPSq3WIbDfXcmxaL_h<)Cp?l?wYN6ulXh$x_oAG(< zignHl`6gox;)~ID!xnU@w`0nld=?Y_K;vgs4;d<>$Eq3HfeX=HKN8)&3(;M@4ju8= zXa@_`2<6M5uiLuO9Lyo!7YF0K8k~RE`p5X-%$lKs9$1U?0nuC09x-&K*eigc8OVRt_)98vG>s^G_y9<3@tbTYtBt@VT3A3?2euTc) zb2Z3J|Guv+`V-PU=<_}3l%LTsY|*M9=j=bT3RmkJnx39(V@beCyEs2hf@M3f%)$8ix;^z0lLM7~Lz|(E7f?(U>$z zmro^E5b(iu=#4iU?Z68$eLH$OzKrptY3TVm=-#P=mhX;sbYyfoIs=d4415voc#~$C z$z&XewLJg32sovu(J8LoJgnuV*pc`gY>2y}xm$$i&Cw~p9KB$+Mf0=_%8)*Hz(EnEefG=*2;UFb3W9i7os z`JUls8h~v{Sd2CB0NR1vy}}62!@|T{p%wN*8yl_p!3ANY zx1lrhI=Uo#u%qYyTLNCWbuJ9&b_}*8z6$*b=NS50F4iyX+H&X;v_mWGgU-Yi=nTw= zF2s?(m%Yss-SzWKc@fv-)jjtrPI+}IR|ZEIa=|0baQ=-7W@^R@`4wIat-h- z;;qqg-C}%Dj9-o(w@K(g7NIk~6jL_*E`d3?8=acr1Hv(zgpTk@G~WjFB6s#a3LU^UbViRy^QSHepV=y6HV+=hDYyx(u=UWe z)?Lsky$WsM4)i!aj9#&;(6!x+4q!VvQ~S|h-+db`erb5#4!zJ)y$E<-Z$Z~`E!M@o zF`j1_4QBEiQgoy(MueFfh`or9K^s_yUMydtOHyED*eli14)sFI55_upBi5q*l6x_rkfCWv2fRhjP&O{YPj=x?djZ z9f;|_|1+F`Q#~tsA9{=)MtAKBoQ|8&JDe7+%x8khM!DqBFDvU5Z!Gwcm+u&hM}<{)3k9Jt@q@7&QOQlQ{qG-UmqV z?Y11-;3o7QNUjf4ekEF9O7wp82a^@?`BwBE*@xZm6uM_R-w^53`2Jr{z#p-W-~g;LJ?!qA(T10!AHiNhr}!&$M1P|V6`c{R zhMxD9cpgE_u6PozyIeDu;B;M-T4MO(xd1(J{99<&k7Y( zM)S8p*Z#7YJ{_}(KZGvP2DG6qXvdGC11oxaNN;jG=f61#gGunE^8j|jEtsCVJHnck zM5nwFdO!3)@A}!8jqjqH^%(kcDSKz=V0W|w6QU2|IN}@7-!;{`i_MZvp!;26WMi=b z@mc73U5{Q+`_PKMM|XeW*&%;xw4(#iy)pvx;5c+MUXM033!Rat&`rJym*NL00(}Tv zJ0~>oR`hFh#An?dtc*6$3hhAGm_8}S?~blVXXY!kW0mHHrL2SfiFZWnS&VMp)Uuf2 zHMGH9I2OM}M{?0Up`uIBwYwrZ8=aw5SP!>jHvWS*;JNo^rvHBe7oa1*`o3_SuSe^- z9Z63m%LzDDFQPr#j856U82=q>5zjv_HA38;EqCMS#Ht;jnz`XOrC!dCRCGi>PG5Y}>Y4Zod-e`|5 z!H^gq9plr{<2eV@@BfDgIF&2#B77I^K=y)gylSH(>56t_SWKUc-V5_%`WrEQFWSKI zXvTvfUI^__d2EF>FqOUt2-x5pw1Guv#x>Cm@%cN^-FOAhKgYJ%ZDD3|9o~g@=rr1a z^A?58+7!JEe;>In_y?+z0oOuFvh6+M8?#5#0MKSW2cAN}0_ z9lEJ2SFPeT32V<_M!Y?F-VN=il zg9PmHPHco(PlvZ)v*<8%Puziyd<9zJF0?~`VJ$4XEd23$SM*fOz%%hJbO}B{kMUu= z08d~c+E2PX6RyTVXvQniHNFXL=yqI)&!eZJ>$Bk{G7vpZlhF>$MA!6rwESkwiyvYG z+>b8VS<6GY_Lyo%f^$KqwU7<(Xp2P6GivM0I+hN3UGS68RP-M@(hkJmrw%~bIDuoSh>-P;Oncr-et z6VL{y#ODv7OYi)M19fcL(z^*iRrVj3-S9g6F)^ek~%`b0>7eDU+BfK+nYoOq0gsA z7e&{iQ~NQx*4ZzG5p}^^iH}A{{yq9zuoGAd2fZBbnOR5&Q^~^wT-#;w!Dh50`>{O! z8`I0L4e5>18*(uA!`snMJfFtrrC$l35p&RcBo$qQUT9ySGgD-p9pwC#BjDOpjW$CY z?uKT(5}kob=n~C~@#WZx_&eya%e6ktM9FAdH2-Myo=Blfv;?hp6{i3Fzx4#1fe-OK z{2nb({MAsPDY{l2(c?N0y+|HH?~51E3g1E-+<|Vsuh5PsuZ4Qbp)*het#1&f+7P&! zfLG~CT!8Q4EF8We`~u<|>_B|b>zV2Q9`F(LV|(K_LWSdS1o21FnakK1j#&llN&M#M z``DCtsW-!t^?j4`{~`(Zkgx$eYzk|aycK?gYKy*n?nkfY*U?YQ$8m`HH;3PrJ&vqo zQugg|Q$CD-K4`opTkhqyb#K74O3b*+62AnI-xUkb#yj5 zwa=nA;8yg;Jc;h|+V6z=E=C(3jxNzP(Ho<;refe8>_LXbXa!%R1&eJ97fS`~M7$ol zM{dAE_&E9l${O^?_^oKUjCaEtpB=4;K5v4SyB6JZsTl-(xjc&AU`^i(o2U~OCq5KS zpBSAP)90bb>lt)p2hbV(3a$A2Xx{h33|2-rYjV5g(6UFwdeRegQqk8_^EzLOb>YdXxTv)}Lob=s*QL$6eEgfDZ=vd-GROvK1Da{?`Xs2J`BgPIl451&>0#Qoq#DDxRrnx z!VpY>(y8)ssHi9UP8c1%ADy9%=s7=(cI+hjZaH^% znBk7QIsZ=05E5LQk?6>8jPY49ApZaeiG|ou6?1QhG=?U zbO1xq(=Z-gn$$D`uJJuF!*l3JHlmyE2&OCiBsADC+6LXEUC|jF9^+S_4c&qcU|vjr z23^`WqX)4r?I*tza0FHNhmo~FXP_V2z(};BDQH9Yp~q|?x;I`$2XF{on!nNf%@2f; z_eSd(g65xy4(vf3;`!e|U=#_Z4u(xP4cimnhz&9G(=ehY=#+QCT6iJa@mtVSG#{Pn zHRu4|i18ihk{yWthL$_~5FMxeq@n@LL2taFXb*44j<^yn@Jme3eK_Q+fi`p@PR0?K zjR(;NPhl4ibI-_0jG8~P*Gj^a$l;^83vqit+{Ch43lHhT;3jKj( zD!LSpqa%D5ZTJwniB4bxJm+Y5-W@&Xm!eBD8{H#|(arcy^bqzU{wsP)+NZvbf0~7k zd|C8Iw4%n}gyYx|9nmOs1T)YM-GiQnWoZ6)(FQ+3H|vk+%>9YZXpwKj^SWsM)cFL= z*bkk7OVJM$<74`5Se5v_*co3ze_;6+-4jiYg+JrD7OiJ<^n>Vrw4pE2i|kkQYCeSw zfWQCoU6_i7IE4r2$M`1nX8agE4L_kHF7|z>uok+TTcUg6a&%_qq76NScIe6I>gcOz zzAc#k{oh9fT=V165FAojffoE6Jw898Q(yVVuopT-Z^Y)LuSD}7MQ89= zXl z$1{^Ju<5Vi{FnJHEYT=*kFCY-_z$KWLDv)EugzSALx>;33$VrSnd$$#oxAZG;w4Xp znV5whr)Tj7{13XhF8(9@!Q>5Ck9gic!xA;e?Zii+$F=@n;Wa+#FV4U3^ED*6yMI6{ zI`i*ve9ptk#QUSi>jV4<|H4VQ<5XsH2s``}rn)==*Am?WUC|q{ACAXsuy7{# z#%a#KYy3-+mF`)cjI8t&Pe6D1QncWHw1dB*ySZ>?R{CX>jb1#}(EFk(dSed5-Z%x@ z;rsYG7Rbs<{{;0DzDxY}RIaS_MbI~QR{A)NM33R4XoIVxJJ93z9eOGn=E+Kb{O*lS ziBCt<*P~Ov2R$`;&d5s7a82~W8jTKYF;>UaE&{&q|3-hrDw8)WJ=J~C<24nXvSsLA zIVWGp*8&~+I80w8=x(2j&e%ifOuUR9+Yh7PU=iZ{ztdWODk(~!8}T-n2k%60uzRCV zqZMpGE8ZQ`e?-?d*O{T=g6QTdi_YM%=(Xq)&%i~v5v^y?S(fMgT}Qwfn1(j|D7uy} zr896E(2;$E7CeFGD_9^{1xFHZiP`uVI`TJT{2*HX6grT6XNPhXF#Yd;G$r7b*gbkB z_9T8M+R#4qRQwR*`3r`MveApF8CrfY`ck0z7Bmoe;EA|9l#&xUdk$(mHw+6`O$oHuoga! zc4SA@f+clon1{&w^Wv|Q%7q2ndccms5AbV57Q7t??L|6&48?L>4WYtfM%iJpuWET5JB zeSS5(isudSWqb^mXYi8B&Pq05QZXy}3tq33l?=yqm9x@+PFT81xPouPS*ByX6b0H= z%}OrC@zt`@uh|dJ%S!((*0$BN(tpoq4bGrI`x@a2-hxi`*XR_VRWn!)I}xvgPvInV zt;^I3_eT#jJ_cRt#h7xlEhFF*@4=4v9oE2lwZmo{jI331Cpv}q#`r_grRat7EIxp5 z;VK+hC)9gJ-B52i^d&R``FAUl2kLVED-*b)ei-514Z=&MP{XX`64JA=7EWu#2ysQ@ ztn}~yHZ;jfMo>|KrlI2Tcs}u$(cS(xHpV8+!qSe7u0r$u9BtA(6?XsB=Hd0a5{HxF zH_S(a7qtjeHmqe<(w6l5qPwsc@xrabaU6zKh`)w&Dfc;!CqBMSSd!222IA+n4SVcy z%pv}6ihvhO{+z7zug#m{Ys5ETKb+hyE7^=Y@O&!1uYFj8eI3Gk{6Cn(^HLqdYx!dA zOZ*$OwpR9@6I+=TbxK;lQx zP1LMgRx%&Qpy&BCcEG0HLwri~CA^UIAMh@0*CUkQj%>nI@=pjP`FnQu|B%l z8b#Y81(I&j0Wp14bX@c%^nBkIor{)xF#2S4OiLf;v8#rRWwIsX=To&+n}g!b&i=pl5($D+TY6`w-) z${81ga^=tw)A zQQiwf2a2P6rZU>$YUuNNXuYk`0ro-5Uy9CH>N)~uoQ*cHFlKlHE$|BZ31}-?(U)kx zlQ;r1`-S*rXvfE+OFA9hgm=XFQna0Cqid1+Q^{rmem?&QZJ=QPP+>*1hqciWogeLm zHZUMM6y0o>p&hs#?eN0*d@Z_EucICR7=2kC#zKDnKS{s}^IjCDuwb+ZTA(=kJRALF zQw^=4H`>q@=;oY-mGSAA{yyGE{9CMwQwD_3giA4-_!eyF`9Ep^OAie8Lf=v|&>zXR zp;zlaG2U)axSFqzuEF8l_1|MQ`FafwukUea`NeoU?!?=0z>sitAHvie5++=dl{|v~ zMjsiPmHy9ZT3#A{Gk`b_jmy|8J?A7;hji-(jP{uvvy6{nP2gs zj_Vk|o+YhYZswm~*CvlzimyGnS?@ErkO-e<&hzF=C;!j?Tt}__$o~{6!#OrT#&Z0+ zF#Xkn{8xIM_~Mr-{@;HkXOmVUBqdGAe~vwiUu#|e5;VGo#%`o{j}cx+2R@4#t|9E# zrLoe2#OqQqFSGPlbt-E>Xar>+jTKj?uF>S5NZv+q#P5Xc>Hi%<`dG?8j8#)Kcs-f; z*EN!}Dd^W(r1`a<^d^LViH)1~4tc8ZeVk{#V&!MVh8I!kpQPQw_Y+j!l(J{WIxYKN ztY;_TY7Al^@l;X%=h2wy2MW&T!B=E>p0wPA|L@nb*tz>Cw}yvZV&mrf_GDcS*+#Tczvue`+qflHJyKh z@Be=7BhOYML#b~!-`~=B3%(zsOmFHPgHPsS{fF_;ubw3MVbib2$@nzk3>q9k=W_m6 z#k?|-vV8wa`puMWi2Y+Ze)dQfl9n59r;%5vYcplb{GXXDMV|9**Ym%T!bNH5BO3MV z916}OoSzJHW7=veEFC*h982)56AgDI|C3h4SCv3AgZK{WIKlTtv10@NR|npWX*cpb zHGv2BQQ>_gK1X9CsnoA}#9!vwLaa{bn(&>E=Vy|4Bi}~|-;Vc?=Vco7*J%f+(68RH zLr?PDul9U*rTj+f9>cSRq<19#9`{d@m&kSs&g8+;I9dz65-T%2n$b7l`77k@PW)z` zeT>bhWIWF^Wv+He_J~1|NkF;rJH1tVI1zGQ+^f4{#3ev z@Pm9$R^s#d{w(IH5F6!D!awhnJVB#=&7q+MjGAALCl|-GA=IBio+keLnU-c|N8czj85v-F&BhF%m1@7)Q06LN`&#apKGQevUjFV&`!;jx0r|CPco5$;R_^>HqRs^BwJ z_z+H|a9#2=q+&h7ZYS_}&}CQy6_` zD({Ii`JO->7ZD#tJ(p9Se}OIOjEngm&GS?_5~@-`NiuaH^9y{Bj|~mt*^N9~NaxkSmR1pVB9JtOj~00qw??RTElq=E8SGA_{@glq6@EqU68?8!VT=eIS< z6Lj!@e-)<8XOzD+ruViJw!ea272tavg|_kiF5#c4*sor(r|%Fi8Vi0zC8Nk!m-wZ0 zGK24iq|GO-UF>ud%DqV1pVV~*-+$3bzv}T_n(({idz$pr9VC24pc<8}iN#8+u zHJQ#QJrmy}?N$mjr6Zkr=2sWO{dneA4W@l5@uPg#A$&e*{=V>B>htSS8~cA=H_tOp{pUaPzDo$Zu80SGBEQl%5NrOffT4h&;SYi!3GjB*38IYH?Ak1i4RyFH zxft~&|C+uSasiw+0P+UJukfSMjSSsDY{jOBb1id{xS_4`_y0XYN{|3xwGv*FCP?@l zq@g{vDfkK42;#I5WWe4bw#y-UMIy16St1uaehy3T06T>GVg}bDUm3l|G9CH-lfi=X z7($WE5QG7WcOdV@a9-?Sc!rgqdOy*8mbfdJPUtxB3vAu|QbBnnJO|ebY9hB&&Hw*A zEDLfFKl#AQ0bw-=9pw$VThy#ro?SQ0f#?AKGW>;DckE^*xA#3HE)H=leRknF2Eznh zDgy`jf}f85Y2fY=bABFQ$kL%#&`+F*CoT*Rq!CapC7Xb)NQ1~(Y6UbeKlexDH{vwD z_#?n{P}~}D-553-9jUo4VA7HosVa|u;Z)!73_F?yLQs)FNZaAx1RM;(2o~Ex{5!tL zFeMpI{;@9OL~erKN&?u5V0U4Mq9QJ8#ounjasF>OZ%7nWLMe)@rrC$B!_ffz{xs*o zHo}(VW)?H_HE|8}N@|PkY1WC<_QTmhbNPrJr3d}xxvj_arQSdG8N+u{$O?D{T31hz zUoEdwFtjA!K$?&O5R@QpL45_a%H&3~XmMhu#klb*vW-o%Q+T4(0HEr@B zAI#8ynACwrKgB$^PsYB`rQ-3wLUx6oX<&!yQpc&+7#P?lJHHjq-FFZ;H#?vhsta)WEdR0mbQ)Cood5HRuVX9!2dLy_@J+t%m_( z$f>tEk=n0dAp4E_HWELv zgW&v!+Z5SBYz2QE{|z(7;eWt4f!S@Qc%0^yBoj$qVW>!6;!M=C>vf&N)}%QNHV~br z`Lt@K$C-Krb_V*M-hsq-ZKve#4DgO+p*h3}y4Zf|<_pq^EJe2{SmIcGS#BiYQP@cg zI*OkGTMA7QkjifmeL+t!q&!*{Tz-01ldHl(+T!!(`i3#o2GU!WzACA`X2Wt4Ub@j( zuJ#lSB9CYeB`$&Hp}9S|{pg?MFQReiOSCSeC&+(bNC;daqu~g}E~4I$e%^D~U?KO8 z*ilx?&wnCoC_Dscmx(yLHU1sqwZun>n?ZC4JC3*pwgew^IanZ?!4vcl!jVEwBm`Zl zJPWAbW{G9kZs6+)j~PN&RAd$E1EI)FibjAu#b=m~)+hfQ`(LR=?gqF@=mO>O*ISrI zt~&JxEYq9=ek693UEs~`Bq!;%Svlz=5b22Lp^4P4V=s}v2T>M?b7A*^*{MT>&=r3s zxVaA3y9J!cY|Ae@*fNfbS%yL(m(tWb7Tpa<-f&2${n4Wk8wT9aGQx~fwv*i2V8;XAD6Po&C;{aBmc#-C; zkb9E9r&pT`zbqJ$Md)1?TB1Y3z)XVNOx;tLvjO>IoAxXvU!R`0@Eqn)|H$J%O;5R$ z<|D*@8rz%2dXrnJgC^)LECBxl{4U7WFrYK}U&wVJ7D)#0rd$>VA4LaKy8yN(_7T?h z@!tZ_cis5AHoSnKEaW0V+VCJCtsPEO2O5X!;xyU^Ldt8@t zAT=@G z1Jj>aX6B^V6?;W-0ggZay8wy=EE0}?6R=%oI4tJN@LIZY9wkcDf!VRWwAPS`($*9m z2CqESA~ooD*S=TsySqaaijv5UFVdEHBK{ZbS2Pa)0Ja9i$7%krye9XGWhH7((uilEpE%jE8(wB*0&cu=Ec6^ar z^d7=CCT`3UFZDLA>OyVlD@HC7>n)%Et8hd<19*@BnPJZ$nS`*zk_5FU@J?!U{E#y zycFE_snJ}?GZBllB5sV$srhTzuf(0GUxRcx{vHQs# zhWa#IfUqk0CoEBccoCYL#tYO%zNH%8OrGzEU=r!A#PT8F7GvLnYlq(&To3#dhIB=} zIPE9mu4qPjW9WMd&i47=Nv}${BLN&ii%|TEEs1sn9LcZ-5VZpnL2fej(d7EGupI0L z+JcBz?2cp7=#MvB*=!#)55+e;+NTi!5~J{BI$+46qd1okBa}9okeBJA%bJQA@!V zBRpFuS#RNw_&7G3_?*mYz0R-t7vIfnnLl#m? zi{BP41DQwx20qZC(;+$vz5uq7_SDjoSJzm2hRQ%Rh~Wd2rxhu4SwPPrcne`~00jk& zlmXb4;cKx^Y4{4x8@rddJ=n9UFvBr0b&12tPr}|pMZz71kAYw09N2B-yMXPRnlsy8 z@%WbD8-+j$B7OivS;if|B{?hgB@p*j@?JI+Uv$7!2)N^<%~f{5$;V z!i%j9E*-ev$rnUl$@?#jB59WuI6Wb_186J$DP3qE3k`)}F#~IX??wHdy$S11%`SuK zKS+Ir=Bnz$(NyPD$9gk-8FqktQ>Z}DkwIUv8DXhJ?j!aIxeVm;W8)z0g$-trXzC&d zS!NqUs$z@Djp3idw@Wg)!7TD$=?f+r>~`wr?~sZlYGb9;(C~wSOVNoea1M-4d)@M%#c?9CIxGl0C=Y6HZoui z{!hqrbDb^m>)?yH>-DBaoEW~ndYA?99;PsaTy9W2~FPRnb1~Z7BbPV}JiPn+75AHfDGF7pq!Dc4+L1#?HPs{Cm zrf(ZL^92%9mBgKb6~7OSj2i=H)AyE!snmuLFD1Uo zt;{D^leh}`Z&-g~BmQt|B6r{}2v<@0`k#|RQIeG@UPoU-(vzGKP$qO9xg~%_b`jqr zzD=AFdx%(MJv|N3pX9fa-^0>T3_h*(Q`9z~lXdx%@Y_T_{t9s=MJTSMF%5;u_#*QG zw;(P6$ts8+5pRKXB=wopOEIK`4iNlRB`*n&NHuUv$z1^R1)fIay_pq`eNS8xPTR-- zT}Y=u76h;-4PVd|N>&Eo8pxXIpp9SyA-M**k1i_1vQYnwj)$}$T&Gcy%E}}DAkBS% zqb|Jz<@^5xk}haAfFl{U*MT$$vQWSx8}UU3pzp~2M6+lujaq*lFqTDLg6jcSHBK7< zugD_u#ZkMIw155|)GBe}|g*$*na?!X7Eu9+L{-bDdJ8IoYPb<0B^pD2| z!;wHwbK*2uyL2Jn9G%9{*YqEuzL{mZ0jS5rD6c;^SSdWGuo$4DtS5gPvJ`50(05=X zAQDMWz6iMpeOT7v_od#6o}3T|C@w;m{Ybol`b=H!3Aju0_-{}^6r@$u&jnd${NErd zME)wV$a$Jtq9U8n%aHymCxrAPi;UEvi>d8XE@x^X`0~!F*{Pq#&qVztwy^E}7YRh> z=w^+yQF0R@olE2I*f!L6;)mkrk|NTYT%ryg&*{$7YazCh&&cvUz&hbq#-7Ch~X8(3;{c^e>1W+A@5PCl=X@t%voXwhWzR%kqOI#8*&fNF8MfcxQ&xKtG^` zl}9iGz-HE4%yW;cZ9+0ViPP9)x>@t+EvwzkYuMSH$|pu{fg)b3DZ+ykg6clwla;Oj zxh?n)9mXxAo|jyGTL)j5;TnnWOI~Cj_HTWFb8u%Of79Nn97_=V8!^i07fg3AkL5yVqiCW_b> zzX`sV4wFSD(c7Gx9xj1=ce<;^>8S}rc^cnCTARiaXeNf2B6mu1_)Qpggq}X&pWvT? za3D3i90co1Uo4nbEF^N3zS_i16gP&r5b1PDamzeeP|RJ z1yK|_L&!#1Dit5TYfs&OCgD7krxy`ajFVj zkt<8YpdwoV7sW5GILU?UaBuwD45~vsoL;+R&`-6S%*f%8x7SC5HxJ{FqG)-tod9NI zK(Y?C1N%@HnZ^m?1yI34Cn zUBrX>c<^V4dt*zIdn`}D*d-%{xtyXiiCg6BLwZY>Fza&tsJDY?oi5`-&q4K#^fb}O z+#kO;J@>Ki!Hc{Fdq#bUtHSN@@h>Ubv>cCaR56Fk1WoTYS{v=DBWoT1s2gwJc zrO4G}*mJDNQtTykJN_S>_6yjuESH5ii1-~^PJTL=4^eiK{Yd0s!_oMq8T5>NUtK06 zLuH@tXfVzs>dZ1cpx%a_Dfo%_ar8_=cj2dnPoxNbG>fbvZlJlNLWZQ1&;R3)wbX)# zUY`_uLzEZ0T5EN|B`|C~b|v|(ke-BGBo@Nz=uWnJOrH-ujnQ4y{INOc*+s1y{D!$s73@Xq3&=$FGiW5Z61vnYavxc^ zD|QpLY}BIQ-;M1{&s?H=MgE9>eaa*H z&N0{cH^-tq;w_G=b&NnZr{7Mx6E&2Z0i)0KFDab zyb3bLrm0RYvS(6+b&GYoHO|8SST}UO<=s}3 z*(E0X6_Z;`r(-71m^8ah?lJS4Iu*1y?>2cEV{Sb#xmao>n1a(<&K@+ib+weeWV)5k zQsjndo^u}STI&YurlctACQs|?r194E1e36FF?;Ts8d*G&O@S`PI7`qYQ$QKZ&fHFe W12V5kit>~eStr6$qP0`$EdK)yRnANR diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index 72873b71..dffef71a 100644 --- a/locale/ar/LC_MESSAGES/django.po +++ b/locale/ar/LC_MESSAGES/django.po @@ -3,7 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#: inventory/models.py:1797 +#: inventory/models.py:1803 #: templates/ledger/reports/tags/balance_sheet_statement.html:20 #: templates/ledger/reports/tags/income_statement.html:15 #, fuzzy @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-25 04:14+0300\n" +"POT-Creation-Date: 2025-02-26 17:28+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,17 +22,17 @@ 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:340 inventory/tables.py:12 -#: templates/inventory/car_detail.html:54 templates/inventory/car_form.html:33 +#: api/models.py:6 inventory/models.py:342 inventory/tables.py:12 +#: templates/inventory/car_detail.html:60 templates/inventory/car_form.html:33 #: ⁨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/inventory/car_list_view.html:108 #: templates/inventory/cars_list_api.html:31 #: templates/inventory/transfer_details.html:69 -#: templates/sales/estimates/estimate_detail.html:158 +#: templates/sales/estimates/estimate_detail.html:173 #: templates/sales/estimates/sale_order_preview.html:238 -#: templates/sales/invoices/invoice_detail.html:217 +#: templates/sales/invoices/invoice_detail.html:239 #: templates/sales/sales_list.html:114 msgid "VIN" msgstr "رقم الهيكل" @@ -42,9 +42,9 @@ msgstr "رقم الهيكل" #: templates/index.html:100 templates/index.html:104 #: templates/ledger/coa_accounts/account_detail.html:101 #: templates/ledger/coa_accounts/account_detail.html:102 -#: templates/sales/invoices/invoice_detail.html:85 -#: templates/sales/invoices/invoice_detail.html:137 -#: templates/sales/invoices/invoice_detail.html:139 +#: templates/sales/invoices/invoice_detail.html:107 +#: templates/sales/invoices/invoice_detail.html:159 +#: templates/sales/invoices/invoice_detail.html:161 #: templates/subscriptions/subscription_plan.html:41 msgid "SAR" msgstr "ريال" @@ -63,8 +63,8 @@ msgstr "العربية" msgid "Haikal" msgstr "هيكل" -#: inventory/forms.py:311 inventory/models.py:686 -#: templates/inventory/car_detail.html:117 +#: inventory/forms.py:311 inventory/models.py:689 +#: templates/inventory/car_detail.html:123 msgid "Custom Date" msgstr "تاريخ البطاقة الجمركية" @@ -72,7 +72,7 @@ msgstr "تاريخ البطاقة الجمركية" msgid "Both exterior and interior colors must be selected." msgstr "يجب اختيار اللونين الخارجي والداخلي." -#: inventory/forms.py:459 inventory/models.py:1139 inventory/models.py:1470 +#: inventory/forms.py:459 inventory/models.py:1144 inventory/models.py:1476 #: templates/account/email_change.html:5 templates/account/email_change.html:9 msgid "Email Address" msgstr "عنوان البريد الإلكتروني" @@ -125,9 +125,9 @@ msgstr "يوجد بالفعل حساب بهذا البريد الإلكترون msgid "Passwords do not match." msgstr "كلمات المرور غير متطابقة." -#: inventory/forms.py:542 inventory/models.py:296 inventory/models.py:635 -#: inventory/models.py:648 inventory/models.py:945 inventory/models.py:1105 -#: inventory/models.py:1133 templates/administration/manage_service.html:22 +#: inventory/forms.py:542 inventory/models.py:298 inventory/models.py:638 +#: inventory/models.py:651 inventory/models.py:948 inventory/models.py:1110 +#: inventory/models.py:1138 templates/administration/manage_service.html:22 #: templates/administration/service_list.html:23 #: templates/administration/staff_list.html:34 #: templates/administration/user_profile.html:226 @@ -149,7 +149,7 @@ msgstr "كلمات المرور غير متطابقة." msgid "Name" msgstr "الاسم" -#: inventory/forms.py:546 inventory/models.py:862 inventory/models.py:1467 +#: inventory/forms.py:546 inventory/models.py:865 inventory/models.py:1473 msgid "English Name" msgstr "الاسم بالإنجليزية" @@ -157,10 +157,10 @@ msgstr "الاسم بالإنجليزية" msgid "Please enter an English Name." msgstr "يرجى إدخال اسم باللغة الإنجليزية." -#: inventory/forms.py:556 inventory/forms.py:560 inventory/models.py:297 -#: inventory/models.py:636 inventory/models.py:649 inventory/models.py:861 -#: inventory/models.py:946 inventory/models.py:1106 inventory/models.py:1134 -#: inventory/models.py:1466 templates/users/user_detail.html:48 +#: inventory/forms.py:556 inventory/forms.py:560 inventory/models.py:299 +#: inventory/models.py:639 inventory/models.py:652 inventory/models.py:864 +#: inventory/models.py:949 inventory/models.py:1111 inventory/models.py:1139 +#: inventory/models.py:1472 templates/users/user_detail.html:48 msgid "Arabic Name" msgstr "الاسم بالعربية" @@ -168,9 +168,9 @@ msgstr "الاسم بالعربية" msgid "Please enter an Arabic name." msgstr "يرجى إدخال اسم باللغة العربية." -#: inventory/forms.py:570 inventory/models.py:863 inventory/models.py:947 -#: inventory/models.py:1080 inventory/models.py:1111 inventory/models.py:1138 -#: inventory/models.py:1158 inventory/models.py:1469 +#: inventory/forms.py:570 inventory/models.py:866 inventory/models.py:950 +#: inventory/models.py:1085 inventory/models.py:1116 inventory/models.py:1143 +#: inventory/models.py:1163 inventory/models.py:1475 #: templates/administration/staff_index.html:123 #: templates/crm/leads/lead_list.html:45 #: templates/crm/opportunities/opportunity_detail.html:193 @@ -184,7 +184,7 @@ msgstr "رقم الهاتف" #: inventory/forms.py:573 templates/administration/display_appointment.html:55 #: templates/appointment/appointment_client_information.html:57 -#: templates/crm/leads/lead_detail.html:79 +#: templates/crm/leads/lead_detail.html:88 #: templates/dealers/dealer_detail.html:80 #: templates/organizations/organization_detail.html:10 #: templates/organizations/organization_list.html:59 @@ -205,8 +205,8 @@ msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" msgid "CRN" msgstr "رقم السجل التجاري" -#: inventory/forms.py:592 inventory/models.py:854 inventory/models.py:1108 -#: inventory/models.py:1461 +#: inventory/forms.py:592 inventory/models.py:857 inventory/models.py:1113 +#: inventory/models.py:1467 msgid "Commercial Registration Number" msgstr "رقم السجل التجاري" @@ -215,8 +215,8 @@ msgstr "رقم السجل التجاري" msgid "VRN" msgstr "الرقم الضريبي" -#: inventory/forms.py:610 inventory/models.py:859 inventory/models.py:1110 -#: inventory/models.py:1464 +#: inventory/forms.py:610 inventory/models.py:862 inventory/models.py:1115 +#: inventory/models.py:1470 msgid "VAT Registration Number" msgstr "رقم التسجيل في ضريبة القيمة المضافة" @@ -224,9 +224,9 @@ msgstr "رقم التسجيل في ضريبة القيمة المضافة" msgid "VAT Registration Number must be 15 characters." msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." -#: inventory/forms.py:623 inventory/models.py:865 inventory/models.py:1083 -#: inventory/models.py:1113 inventory/models.py:1141 inventory/models.py:1472 -#: templates/crm/leads/lead_detail.html:109 +#: inventory/forms.py:623 inventory/models.py:868 inventory/models.py:1088 +#: inventory/models.py:1118 inventory/models.py:1146 inventory/models.py:1478 +#: templates/crm/leads/lead_detail.html:118 #: templates/customers/customer_list.html:50 #: templates/customers/view_customer.html:68 #: templates/dealers/dealer_detail.html:64 @@ -239,31 +239,31 @@ msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا msgid "Address" msgstr "العنوان" -#: inventory/forms.py:672 inventory/models.py:1670 +#: inventory/forms.py:672 inventory/models.py:1676 msgid "cash" msgstr "نقداً" -#: inventory/forms.py:673 inventory/models.py:1671 +#: inventory/forms.py:673 inventory/models.py:1677 msgid "credit" msgstr "دائن" -#: inventory/forms.py:674 inventory/models.py:1672 -#: templates/inventory/car_detail.html:159 +#: inventory/forms.py:674 inventory/models.py:1678 +#: templates/inventory/car_detail.html:165 #: templates/inventory/transfer_car.html:23 msgid "transfer" msgstr "نقل" -#: inventory/forms.py:675 inventory/models.py:1673 +#: inventory/forms.py:675 inventory/models.py:1679 msgid "debit" msgstr "مدين" -#: inventory/forms.py:676 inventory/models.py:1674 +#: inventory/forms.py:676 inventory/models.py:1680 msgid "SADAD" msgstr "سداد" -#: inventory/forms.py:835 inventory/forms.py:852 inventory/models.py:1089 +#: inventory/forms.py:835 inventory/forms.py:852 inventory/models.py:1094 #: templates/crm/opportunities/opportunity_form.html:22 -#: templates/sales/estimates/estimate_detail.html:118 +#: templates/sales/estimates/estimate_detail.html:133 #: templates/sales/estimates/estimate_list.html:15 #: templates/sales/estimates/estimate_preview.html:265 #: templates/sales/estimates/sale_order_preview.html:227 @@ -282,81 +282,83 @@ msgstr "العميل" #: templates/ledger/bills/bill_detail.html:104 #: templates/sales/estimates/estimate_preview.html:267 #: templates/sales/estimates/sale_order_preview.html:229 -#: templates/sales/invoices/invoice_detail.html:101 +#: templates/sales/invoices/invoice_detail.html:123 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:974 msgid "Terms" msgstr "الشروط" -#: inventory/forms.py:846 inventory/forms.py:850 inventory/models.py:1062 +#: inventory/forms.py:846 inventory/forms.py:850 inventory/models.py:1067 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:11 msgid "Title" msgstr "العنوان" -#: inventory/models.py:115 inventory/models.py:408 inventory/models.py:485 -#: inventory/models.py:530 inventory/models.py:683 inventory/models.py:698 -#: inventory/models.py:742 inventory/models.py:1344 +#: inventory/models.py:117 inventory/models.py:410 inventory/models.py:488 +#: inventory/models.py:533 inventory/models.py:686 inventory/models.py:701 +#: inventory/models.py:745 inventory/models.py:1350 #: templates/crm/leads/lead_list.html:33 #: templates/crm/opportunities/opportunity_form.html:35 #: templates/inventory/transfer_details.html:70 msgid "Car" msgstr "سيارة" -#: inventory/models.py:116 +#: inventory/models.py:118 msgid "Light Commercial" msgstr "مركبات تجارية خفيفة" -#: inventory/models.py:117 +#: inventory/models.py:119 msgid "Heavy-Duty Tractors" msgstr "جرارات ثقيلة" -#: inventory/models.py:118 +#: inventory/models.py:120 msgid "Trailers" msgstr "مقطورات" -#: inventory/models.py:119 +#: inventory/models.py:121 msgid "Medium Trucks" msgstr "شاحنات متوسطة" -#: inventory/models.py:120 +#: inventory/models.py:122 msgid "Buses" msgstr "حافلات" -#: inventory/models.py:121 +#: inventory/models.py:123 msgid "Motorcycles" msgstr "دراجات نارية" -#: inventory/models.py:122 +#: inventory/models.py:124 msgid "Buggy" msgstr "باجي" -#: inventory/models.py:123 +#: inventory/models.py:125 msgid "Moto ATV" msgstr "موتو ATV" -#: inventory/models.py:124 +#: inventory/models.py:126 msgid "Scooters" msgstr "دراجات سكوتر" -#: inventory/models.py:125 +#: inventory/models.py:127 msgid "Karting" msgstr "كارتينج" -#: inventory/models.py:126 +#: inventory/models.py:128 msgid "ATV" msgstr "مركبات ATV" -#: inventory/models.py:127 +#: inventory/models.py:129 msgid "Snowmobiles" msgstr "دراجات الثلج" -#: inventory/models.py:134 +#: inventory/models.py:136 msgid "logo" msgstr "الشعار" -#: inventory/models.py:273 templates/ledger/bills/bill_detail.html:191 -#: templates/sales/estimates/estimate_detail.html:133 +#: inventory/models.py:275 templates/ledger/bills/bill_detail.html:191 +#: templates/sales/estimates/estimate_detail.html:65 +#: templates/sales/estimates/estimate_detail.html:148 #: templates/sales/estimates/estimate_list.html:29 -#: templates/sales/invoices/invoice_detail.html:192 +#: templates/sales/invoices/invoice_detail.html:71 +#: templates/sales/invoices/invoice_detail.html:214 #: templates/sales/invoices/invoice_list.html:36 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:343 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:223 @@ -365,10 +367,12 @@ msgstr "الشعار" msgid "Draft" msgstr "مسودة" -#: inventory/models.py:274 templates/ledger/bills/bill_detail.html:195 -#: templates/sales/estimates/estimate_detail.html:137 +#: inventory/models.py:276 templates/ledger/bills/bill_detail.html:195 +#: templates/sales/estimates/estimate_detail.html:69 +#: templates/sales/estimates/estimate_detail.html:152 #: templates/sales/estimates/estimate_list.html:33 -#: templates/sales/invoices/invoice_detail.html:196 +#: templates/sales/invoices/invoice_detail.html:75 +#: templates/sales/invoices/invoice_detail.html:218 #: templates/sales/invoices/invoice_list.html:32 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:345 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:225 @@ -378,31 +382,32 @@ msgstr "مسودة" msgid "Approved" msgstr "تمت الموافقة" -#: inventory/models.py:275 inventory/models.py:1004 -#: templates/crm/leads/lead_detail.html:46 +#: inventory/models.py:277 inventory/models.py:1007 +#: templates/crm/leads/lead_detail.html:55 #: templates/crm/leads/lead_list.html:121 test.txt:46 msgid "Pending" msgstr "قيد الانتظار" -#: inventory/models.py:276 +#: inventory/models.py:278 msgid "Accepted" msgstr "تم القبول" -#: inventory/models.py:277 templates/administration/staff_index.html:83 +#: inventory/models.py:279 templates/administration/staff_index.html:83 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:329 msgid "Success" msgstr "ناجحة" -#: inventory/models.py:278 templates/sales/estimates/estimate_preview.html:245 +#: inventory/models.py:280 templates/sales/estimates/estimate_preview.html:245 msgid "Reject" msgstr "رفض" -#: inventory/models.py:279 +#: inventory/models.py:281 msgid "Cancelled" msgstr "ملغى" -#: inventory/models.py:283 templates/dashboards/manager.html:21 -#: templates/dashboards/manager.html:333 +#: inventory/models.py:285 templates/dashboards/manager.html:21 +#: templates/dashboards/manager.html:333 templates/dashboards/sales.html:21 +#: templates/dashboards/sales.html:333 #: templates/inventory/car_inventory.html:99 #: templates/inventory/car_list_view.html:86 #: templates/inventory/cars_list_api.html:19 @@ -410,37 +415,42 @@ msgstr "ملغى" msgid "Available" msgstr "متاح" -#: inventory/models.py:284 templates/dashboards/manager.html:27 -#: templates/dashboards/manager.html:334 +#: inventory/models.py:286 templates/dashboards/manager.html:27 +#: templates/dashboards/manager.html:334 templates/dashboards/sales.html:27 +#: templates/dashboards/sales.html:334 #: templates/inventory/car_inventory.html:101 #: templates/inventory/car_list_view.html:88 #: templates/inventory/cars_list_api.html:21 msgid "Sold" msgstr "تم البيع" -#: inventory/models.py:285 templates/dashboards/manager.html:45 -#: templates/dashboards/manager.html:337 +#: inventory/models.py:287 templates/dashboards/manager.html:45 +#: templates/dashboards/manager.html:337 templates/dashboards/sales.html:45 +#: templates/dashboards/sales.html:337 #: templates/inventory/car_inventory.html:103 msgid "Hold" msgstr "في الانتظار" -#: inventory/models.py:286 templates/dashboards/manager.html:51 -#: templates/dashboards/manager.html:338 +#: inventory/models.py:288 templates/dashboards/manager.html:51 +#: templates/dashboards/manager.html:338 templates/dashboards/sales.html:51 +#: templates/dashboards/sales.html:338 #: templates/inventory/car_inventory.html:107 #: templates/inventory/cars_list_api.html:23 msgid "Damaged" msgstr "تالف" -#: inventory/models.py:287 templates/dashboards/manager.html:33 -#: templates/dashboards/manager.html:335 templates/index.html:24 +#: inventory/models.py:289 templates/dashboards/manager.html:33 +#: templates/dashboards/manager.html:335 templates/dashboards/sales.html:33 +#: templates/dashboards/sales.html:335 templates/index.html:24 #: templates/inventory/car_inventory.html:105 #: templates/inventory/car_list_view.html:87 #: templates/inventory/cars_list_api.html:20 msgid "Reserved" msgstr "محجوزة" -#: inventory/models.py:288 templates/dashboards/manager.html:39 -#: templates/dashboards/manager.html:336 +#: inventory/models.py:290 templates/dashboards/manager.html:39 +#: templates/dashboards/manager.html:336 templates/dashboards/sales.html:39 +#: templates/dashboards/sales.html:336 #: templates/inventory/car_list_view.html:89 #: templates/inventory/car_location_form.html:8 #: templates/inventory/cars_list_api.html:22 @@ -448,18 +458,18 @@ msgstr "محجوزة" msgid "Transfer" msgstr "نقل" -#: inventory/models.py:291 inventory/models.py:1003 -#: templates/crm/leads/lead_detail.html:44 +#: inventory/models.py:293 inventory/models.py:1006 +#: templates/crm/leads/lead_detail.html:53 #: templates/crm/leads/lead_list.html:119 #: templates/inventory/car_inventory.html:68 test.txt:33 msgid "New" msgstr "جديد" -#: inventory/models.py:292 templates/inventory/car_inventory.html:70 +#: inventory/models.py:294 templates/inventory/car_inventory.html:70 msgid "Used" msgstr "مستعمل" -#: inventory/models.py:298 inventory/models.py:717 +#: inventory/models.py:300 inventory/models.py:720 #: templates/administration/manage_day_off.html:63 #: templates/administration/manage_service.html:33 #: templates/administration/user_profile.html:93 @@ -485,7 +495,7 @@ msgstr "مستعمل" msgid "Description" msgstr "الوصف" -#: inventory/models.py:300 inventory/tables.py:19 +#: inventory/models.py:302 inventory/tables.py:19 #: templates/administration/manage_service.html:55 #: templates/administration/service_list.html:25 #: templates/administration/user_profile.html:229 @@ -496,19 +506,19 @@ msgstr "الوصف" msgid "Price" msgstr "السعر" -#: inventory/models.py:302 +#: inventory/models.py:304 msgid "taxable" msgstr "خاضع للضريبة" -#: inventory/models.py:306 +#: inventory/models.py:308 msgid "Unit of Measurement" msgstr "وحدة القياس" -#: inventory/models.py:309 inventory/models.py:342 inventory/models.py:898 +#: inventory/models.py:311 inventory/models.py:344 inventory/models.py:901 msgid "Dealer" msgstr "المعرض" -#: inventory/models.py:314 templates/inventory/transfer_preview.html:229 +#: inventory/models.py:316 templates/inventory/transfer_preview.html:229 #: templates/ledger/bills/bill_detail.html:213 #: templates/sales/estimates/estimate_preview.html:275 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:94 @@ -527,16 +537,17 @@ msgstr "المعرض" msgid "Item" msgstr "العنصر" -#: inventory/models.py:332 inventory/models.py:333 -#: templates/sales/estimates/estimate_detail.html:191 +#: inventory/models.py:334 inventory/models.py:335 +#: templates/sales/estimates/estimate_detail.html:206 #: templates/sales/estimates/estimate_preview.html:297 #: templates/sales/estimates/sale_order_preview.html:266 -#: templates/sales/invoices/invoice_detail.html:249 +#: templates/sales/invoices/invoice_detail.html:271 msgid "Additional Services" msgstr "الخدمات الإضافية" -#: inventory/models.py:351 inventory/models.py:1480 -#: templates/inventory/car_detail.html:95 templates/inventory/car_form.html:135 +#: inventory/models.py:353 inventory/models.py:1486 +#: templates/inventory/car_detail.html:101 +#: templates/inventory/car_form.html:135 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:166 #: templates/ledger/bills/bill_list.html:46 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:364 @@ -546,62 +557,62 @@ msgstr "الخدمات الإضافية" msgid "Vendor" msgstr "المورد" -#: inventory/models.py:359 inventory/models.py:1171 inventory/tables.py:13 +#: inventory/models.py:361 inventory/models.py:1176 inventory/tables.py:13 #: templates/inventory/car_list_view.html:64 #: templates/inventory/car_list_view.html:109 #: templates/inventory/cars_list_api.html:32 -#: templates/sales/estimates/estimate_detail.html:155 +#: templates/sales/estimates/estimate_detail.html:170 #: templates/sales/estimates/sale_order_preview.html:239 -#: templates/sales/invoices/invoice_detail.html:214 +#: templates/sales/invoices/invoice_detail.html:236 #: templates/sales/sales_list.html:112 msgid "Make" msgstr "الصانع" -#: inventory/models.py:367 inventory/models.py:1178 inventory/tables.py:14 +#: inventory/models.py:369 inventory/models.py:1183 inventory/tables.py:14 #: templates/inventory/car_list_view.html:73 #: templates/inventory/car_list_view.html:110 #: templates/inventory/cars_list_api.html:33 -#: templates/sales/estimates/estimate_detail.html:156 +#: templates/sales/estimates/estimate_detail.html:171 #: templates/sales/estimates/sale_order_preview.html:240 -#: templates/sales/invoices/invoice_detail.html:215 +#: templates/sales/invoices/invoice_detail.html:237 #: templates/sales/sales_list.html:113 msgid "Model" msgstr "الموديل" -#: inventory/models.py:369 inventory/models.py:1181 inventory/tables.py:15 +#: inventory/models.py:371 inventory/models.py:1186 inventory/tables.py:15 #: templates/inventory/car_form.html:56 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:61 #: templates/inventory/car_inventory.html:54 #: templates/inventory/car_list_view.html:79 #: templates/inventory/car_list_view.html:111 #: templates/ledger/reports/components/period_navigator.html:21 -#: templates/sales/estimates/estimate_detail.html:157 +#: templates/sales/estimates/estimate_detail.html:172 #: templates/sales/estimates/sale_order_preview.html:241 -#: templates/sales/invoices/invoice_detail.html:216 +#: templates/sales/invoices/invoice_detail.html:238 msgid "Year" msgstr "السنة" -#: inventory/models.py:376 inventory/tables.py:16 +#: inventory/models.py:378 inventory/tables.py:16 #: templates/inventory/car_form.html:66 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:121 msgid "Series" msgstr "السلسلة" -#: inventory/models.py:384 inventory/tables.py:17 +#: inventory/models.py:386 inventory/tables.py:17 #: templates/inventory/car_list_view.html:112 #: templates/sales/sales_list.html:115 msgid "Trim" msgstr "الفئة" -#: inventory/models.py:390 inventory/models.py:1207 inventory/models.py:1352 -#: inventory/models.py:1403 inventory/tables.py:23 -#: templates/crm/leads/lead_detail.html:42 +#: inventory/models.py:392 inventory/models.py:1212 inventory/models.py:1358 +#: inventory/models.py:1409 inventory/tables.py:23 +#: templates/crm/leads/lead_detail.html:51 #: templates/crm/opportunities/opportunity_detail.html:91 -#: templates/inventory/car_detail.html:78 -#: templates/inventory/car_detail.html:349 +#: templates/inventory/car_detail.html:84 +#: templates/inventory/car_detail.html:357 #: templates/inventory/car_inventory.html:58 #: templates/inventory/car_list.html:163 -#: templates/inventory/car_list_view.html:114 +#: templates/inventory/car_list_view.html:115 #: templates/inventory/cars_list_api.html:18 #: templates/inventory/cars_list_api.html:34 templates/plans/current.html:18 #: templates/sales/estimates/estimate_list.html:16 @@ -616,61 +627,61 @@ msgstr "الفئة" msgid "Status" msgstr "الحالة" -#: inventory/models.py:396 inventory/tables.py:11 -#: templates/inventory/car_detail.html:82 templates/inventory/car_form.html:148 +#: inventory/models.py:398 inventory/tables.py:11 +#: templates/inventory/car_detail.html:88 templates/inventory/car_form.html:148 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:183 #: templates/inventory/car_list.html:177 msgid "Stock Type" msgstr "نوع المخزون" -#: inventory/models.py:398 inventory/models.py:503 -#: templates/inventory/car_detail.html:100 +#: inventory/models.py:400 inventory/models.py:506 +#: templates/inventory/car_detail.html:106 #: templates/inventory/car_form.html:186 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:232 #: templates/inventory/car_list.html:200 msgid "Remarks" msgstr "ملاحظات" -#: inventory/models.py:399 inventory/tables.py:18 -#: templates/inventory/car_detail.html:86 templates/inventory/car_form.html:160 +#: inventory/models.py:401 inventory/tables.py:18 +#: templates/inventory/car_detail.html:92 templates/inventory/car_form.html:160 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:198 #: templates/inventory/car_list.html:191 templates/inventory/car_list.html:192 msgid "Mileage" msgstr "عدد الكيلومترات" -#: inventory/models.py:400 templates/inventory/car_detail.html:90 +#: inventory/models.py:402 templates/inventory/car_detail.html:96 #: templates/inventory/car_form.html:173 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:215 msgid "Receiving Date" msgstr "تاريخ الاستلام" -#: inventory/models.py:401 +#: inventory/models.py:403 msgid "Hash" msgstr "رمز" -#: inventory/models.py:409 templates/header.html:85 +#: inventory/models.py:411 templates/header.html:85 #: templates/sales/estimates/estimate_form.html:16 msgid "Cars" msgstr "السيارات" -#: inventory/models.py:491 +#: inventory/models.py:494 msgid "From Dealer" msgstr "من معرض" -#: inventory/models.py:497 +#: inventory/models.py:500 msgid "To Dealer" msgstr "الى معرض" -#: inventory/models.py:500 +#: inventory/models.py:503 msgid "Transfer Date" msgstr "تاريخ النقل" -#: inventory/models.py:502 templates/inventory/transfer_preview.html:230 +#: inventory/models.py:505 templates/inventory/transfer_preview.html:230 #: templates/ledger/bills/bill_detail.html:214 -#: templates/sales/estimates/estimate_detail.html:159 +#: templates/sales/estimates/estimate_detail.html:174 #: templates/sales/estimates/estimate_preview.html:276 #: templates/sales/estimates/sale_order_preview.html:242 -#: templates/sales/invoices/invoice_detail.html:218 +#: templates/sales/invoices/invoice_detail.html:240 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1068 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:97 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:21 @@ -683,161 +694,161 @@ msgstr "تاريخ النقل" msgid "Quantity" msgstr "الكمية" -#: inventory/models.py:511 inventory/models.py:720 inventory/models.py:1477 +#: inventory/models.py:514 inventory/models.py:723 inventory/models.py:1483 msgid "Created At" msgstr "تاريخ الإنشاء" -#: inventory/models.py:512 inventory/models.py:874 +#: inventory/models.py:515 inventory/models.py:877 msgid "Updated At" msgstr "تم التحديث" -#: inventory/models.py:518 +#: inventory/models.py:521 msgid "Car Transfer Log" msgstr "سجل نقل السيارة" -#: inventory/models.py:519 +#: inventory/models.py:522 msgid "Car Transfer Logs" msgstr "سجلات نقل السيارات" -#: inventory/models.py:536 templates/inventory/car_detail.html:295 +#: inventory/models.py:539 templates/inventory/car_detail.html:301 msgid "Reserved By" msgstr "محجوز بواسطة" -#: inventory/models.py:544 +#: inventory/models.py:547 msgid "Reserved At" msgstr "تاريخ الحجز" -#: inventory/models.py:545 +#: inventory/models.py:548 msgid "Reserved Until" msgstr "محجوز حتى" -#: inventory/models.py:555 templates/inventory/car_detail.html:429 +#: inventory/models.py:558 templates/inventory/car_detail.html:440 msgid "Car Reservation" msgstr "حجز السيارة" -#: inventory/models.py:556 +#: inventory/models.py:559 msgid "Car Reservations" msgstr "حجوزات السيارات" -#: inventory/models.py:566 templates/inventory/car_detail.html:190 +#: inventory/models.py:569 templates/inventory/car_detail.html:196 msgid "Cost Price" msgstr "سعر التكلفة" -#: inventory/models.py:569 templates/inventory/car_detail.html:194 +#: inventory/models.py:572 templates/inventory/car_detail.html:200 msgid "Selling Price" msgstr "سعر البيع" -#: inventory/models.py:574 templates/inventory/car_detail.html:198 -#: templates/sales/estimates/estimate_detail.html:185 -#: templates/sales/invoices/invoice_detail.html:237 +#: inventory/models.py:577 templates/inventory/car_detail.html:204 +#: templates/sales/estimates/estimate_detail.html:200 +#: templates/sales/invoices/invoice_detail.html:259 msgid "Discount Amount" msgstr "مبلغ الخصم" -#: inventory/models.py:630 inventory/models.py:631 +#: inventory/models.py:633 inventory/models.py:634 msgid "Car Financial Details" msgstr "تفاصيل المالية للسيارة" -#: inventory/models.py:637 inventory/models.py:650 +#: inventory/models.py:640 inventory/models.py:653 msgid "RGB" msgstr "آر جي بي" -#: inventory/models.py:640 inventory/models.py:641 +#: inventory/models.py:643 inventory/models.py:644 #: templates/inventory/add_colors.html:13 msgid "Exterior Colors" msgstr "الألوان الخارجية" -#: inventory/models.py:653 inventory/models.py:654 +#: inventory/models.py:656 inventory/models.py:657 #: templates/inventory/add_colors.html:32 msgid "Interior Colors" msgstr "الألوان الداخلية" -#: inventory/models.py:670 +#: inventory/models.py:673 templates/inventory/car_list_view.html:113 msgid "Color" msgstr "اللون" -#: inventory/models.py:671 +#: inventory/models.py:674 msgid "Colors" msgstr "الألوان" -#: inventory/models.py:685 templates/inventory/car_detail.html:113 +#: inventory/models.py:688 templates/inventory/car_detail.html:119 msgid "Custom Number" msgstr "رقم البطاقة الجمركية" -#: inventory/models.py:689 templates/inventory/car_detail.html:122 -#: templates/inventory/car_detail.html:399 +#: inventory/models.py:692 templates/inventory/car_detail.html:128 +#: templates/inventory/car_detail.html:410 msgid "Custom Card" msgstr "البطاقة الجمركية" -#: inventory/models.py:690 +#: inventory/models.py:693 msgid "Custom Cards" msgstr "البطاقات الجمركية" -#: inventory/models.py:704 inventory/models.py:1360 +#: inventory/models.py:707 inventory/models.py:1366 msgid "Owner" msgstr "المالك" -#: inventory/models.py:705 +#: inventory/models.py:708 msgid "Dealer who owns the car." msgstr "التاجر الذي يمتلك السيارة." -#: inventory/models.py:711 inventory/models.py:983 +#: inventory/models.py:714 inventory/models.py:986 msgid "Showroom" msgstr "صالة العرض" -#: inventory/models.py:712 +#: inventory/models.py:715 msgid "Dealer where the car is displayed (can be the owner)." msgstr "التاجر الذي تُعرض السيارة في صالته (يمكن أن يكون المالك)." -#: inventory/models.py:718 +#: inventory/models.py:721 msgid "Optional description about the showroom placement." msgstr "وصف اختياري حول وضع السيارة في صالة العرض." -#: inventory/models.py:721 +#: inventory/models.py:724 msgid "Last Updated" msgstr "آخر تحديث" -#: inventory/models.py:724 +#: inventory/models.py:727 msgid "Car Location" msgstr "موقع السيارة" -#: inventory/models.py:725 +#: inventory/models.py:728 msgid "Car Locations" msgstr "مواقف السيارات" -#: inventory/models.py:744 +#: inventory/models.py:747 msgid "Plate Number" msgstr "رقم اللوحة" -#: inventory/models.py:745 +#: inventory/models.py:748 msgid "Text 1" msgstr "النص 1" -#: inventory/models.py:746 +#: inventory/models.py:749 msgid "Text 2" msgstr "النص 2" -#: inventory/models.py:747 +#: inventory/models.py:750 msgid "Text 3" msgstr "النص 3" -#: inventory/models.py:748 templates/inventory/car_detail.html:138 +#: inventory/models.py:751 templates/inventory/car_detail.html:144 msgid "Registration Date" msgstr "تاريخ التسجيل" -#: inventory/models.py:751 templates/inventory/car_detail.html:132 -#: templates/inventory/car_detail.html:144 -#: templates/inventory/car_detail.html:414 +#: inventory/models.py:754 templates/inventory/car_detail.html:138 +#: templates/inventory/car_detail.html:150 +#: templates/inventory/car_detail.html:425 msgid "Registration" msgstr "التسجيل" -#: inventory/models.py:752 +#: inventory/models.py:755 msgid "Registrations" msgstr "تسجيل السيارات" -#: inventory/models.py:760 inventory/models.py:949 inventory/models.py:1085 -#: inventory/models.py:1118 inventory/models.py:1212 inventory/models.py:1365 -#: inventory/models.py:1385 inventory/models.py:1407 inventory/models.py:1430 -#: inventory/models.py:1447 templates/crm/leads/lead_detail.html:91 +#: inventory/models.py:763 inventory/models.py:952 inventory/models.py:1090 +#: inventory/models.py:1123 inventory/models.py:1217 inventory/models.py:1371 +#: inventory/models.py:1391 inventory/models.py:1413 inventory/models.py:1436 +#: inventory/models.py:1453 templates/crm/leads/lead_detail.html:100 #: templates/sales/estimates/estimate_list.html:18 #: templates/sales/invoices/invoice_list.html:19 #: templates/sales/journals/journal_list.html:19 @@ -847,31 +858,31 @@ msgstr "تسجيل السيارات" msgid "Created" msgstr "تاريخ الإنشاء" -#: inventory/models.py:761 inventory/models.py:950 inventory/models.py:1086 -#: inventory/models.py:1119 inventory/models.py:1214 inventory/models.py:1366 -#: inventory/models.py:1386 inventory/models.py:1408 inventory/models.py:1431 +#: inventory/models.py:764 inventory/models.py:953 inventory/models.py:1091 +#: inventory/models.py:1124 inventory/models.py:1219 inventory/models.py:1372 +#: inventory/models.py:1392 inventory/models.py:1414 inventory/models.py:1437 #: 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:868 inventory/models.py:1116 inventory/models.py:1475 +#: inventory/models.py:871 inventory/models.py:1121 inventory/models.py:1481 msgid "Logo" msgstr "الشعار" -#: inventory/models.py:873 +#: inventory/models.py:876 msgid "Joined At" msgstr "انضم في" -#: inventory/models.py:899 +#: inventory/models.py:902 msgid "Dealers" msgstr "المعارض" -#: inventory/models.py:933 templates/header.html:26 +#: inventory/models.py:936 templates/header.html:26 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3214 msgid "Manager" msgstr "مدير" -#: inventory/models.py:934 inventory/signals.py:143 templates/header.html:31 +#: inventory/models.py:937 inventory/signals.py:143 templates/header.html:31 #: templates/header.html:68 templates/header.html:73 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:440 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:526 @@ -880,104 +891,104 @@ msgstr "مدير" msgid "Inventory" msgstr "المخزن" -#: inventory/models.py:935 +#: inventory/models.py:938 msgid "Accountant" msgstr "محاسب" -#: inventory/models.py:936 templates/header.html:36 templates/header.html:153 +#: inventory/models.py:939 templates/header.html:36 templates/header.html:153 msgid "Sales" msgstr "المبيعات" -#: inventory/models.py:937 +#: inventory/models.py:940 msgid "Coordinator" msgstr "المنسق" -#: inventory/models.py:938 +#: inventory/models.py:941 msgid "Receptionist" msgstr "موظف الاستقبال" -#: inventory/models.py:939 +#: inventory/models.py:942 msgid "Agent" msgstr "عميل" -#: inventory/models.py:948 +#: inventory/models.py:951 msgid "Staff Type" msgstr "نوع الموظف" -#: inventory/models.py:972 inventory/models.py:973 +#: inventory/models.py:975 inventory/models.py:976 #: templates/crm/opportunities/opportunity_detail.html:234 #: templates/crm/opportunities/opportunity_form.html:70 #: templates/users/user_form.html:4 templates/users/user_list.html:5 msgid "Staff" msgstr "الموظفون" -#: inventory/models.py:981 +#: inventory/models.py:984 msgid "Referrals" msgstr "إحالات" -#: inventory/models.py:982 inventory/models.py:1027 +#: inventory/models.py:985 inventory/models.py:1032 msgid "WhatsApp" msgstr "واتساب" -#: inventory/models.py:984 +#: inventory/models.py:987 msgid "TikTok" msgstr "تيك توك" -#: inventory/models.py:985 +#: inventory/models.py:988 msgid "Instagram" msgstr "إنستغرام" -#: inventory/models.py:986 +#: inventory/models.py:989 msgid "X" msgstr "إكس" -#: inventory/models.py:987 +#: inventory/models.py:990 msgid "Facebook" msgstr "فيسبوك" -#: inventory/models.py:988 +#: inventory/models.py:991 msgid "Motory" msgstr "موتري" -#: inventory/models.py:989 +#: inventory/models.py:992 msgid "Influencers" msgstr "المؤثرون" -#: inventory/models.py:990 +#: inventory/models.py:993 msgid "Youtube" msgstr "يوتيوب" -#: inventory/models.py:991 +#: inventory/models.py:994 msgid "Campaign" msgstr "حملة" -#: inventory/models.py:995 +#: inventory/models.py:998 msgid "Walk In" msgstr "زيارة مباشرة" -#: inventory/models.py:996 +#: inventory/models.py:999 msgid "Toll Free" msgstr "رقم مجاني" -#: inventory/models.py:997 +#: inventory/models.py:1000 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:112 msgid "Website" msgstr "الموقع الإلكتروني" -#: inventory/models.py:998 inventory/models.py:1026 inventory/models.py:1075 -#: inventory/models.py:1157 inventory/models.py:1411 +#: inventory/models.py:1001 inventory/models.py:1031 inventory/models.py:1080 +#: inventory/models.py:1162 inventory/models.py:1417 #: templates/account/login.html:28 templates/account/login.html:30 #: templates/administration/display_appointment.html:49 #: templates/administration/manage_staff_personal_info.html:29 #: templates/administration/staff_list.html:35 #: templates/administration/user_profile.html:25 #: templates/appointment/appointment_client_information.html:45 -#: templates/crm/leads/lead_detail.html:73 +#: templates/crm/leads/lead_detail.html:82 #: templates/crm/opportunities/opportunity_detail.html:203 #: templates/customers/view_customer.html:71 #: templates/dealers/dealer_detail.html:74 #: templates/groups/group_detail.html:61 -#: templates/sales/estimates/estimate_detail.html:122 +#: templates/sales/estimates/estimate_detail.html:137 #: templates/sales/estimates/estimate_preview.html:266 #: templates/sales/estimates/sale_order_preview.html:228 #: templates/vendors/view_vendor.html:55 @@ -989,23 +1000,32 @@ msgstr "الموقع الإلكتروني" msgid "Email" msgstr "البريد الإلكتروني" -#: inventory/models.py:999 +#: inventory/models.py:1002 msgid "Form" msgstr "نموذج" -#: inventory/models.py:1005 templates/crm/leads/lead_detail.html:48 +#: inventory/models.py:1008 templates/crm/leads/lead_detail.html:57 #: templates/crm/leads/lead_list.html:123 msgid "In Progress" msgstr "قيد التنفيذ" -#: inventory/models.py:1006 templates/crm/leads/lead_detail.html:50 +#: inventory/models.py:1009 templates/crm/leads/lead_detail.html:59 #: templates/crm/leads/lead_list.html:125 msgid "Qualified" msgstr "مؤهل" -#: inventory/models.py:1007 templates/crm/leads/lead_detail.html:52 -#: templates/crm/leads/lead_list.html:127 -#: templates/sales/estimates/estimate_detail.html:141 +#: inventory/models.py:1010 templates/crm/leads/lead_list.html:127 +msgid "Contacted" +msgstr "تم الاتصال" + +#: inventory/models.py:1011 +msgid "Converted" +msgstr "تم التحويل" + +#: inventory/models.py:1012 templates/crm/leads/lead_detail.html:61 +#: templates/crm/leads/lead_list.html:129 +#: templates/sales/estimates/estimate_detail.html:73 +#: templates/sales/estimates/estimate_detail.html:156 #: templates/sales/estimates/estimate_list.html:37 #: templates/sales/invoices/invoice_list.html:34 test.txt:59 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:347 @@ -1016,269 +1036,269 @@ msgstr "مؤهل" msgid "Canceled" msgstr "ملغى" -#: inventory/models.py:1011 +#: inventory/models.py:1016 msgid "Mr" msgstr "السيد" -#: inventory/models.py:1012 +#: inventory/models.py:1017 msgid "Mrs" msgstr "السيدة" -#: inventory/models.py:1013 +#: inventory/models.py:1018 msgid "Ms" msgstr "الآنسة" -#: inventory/models.py:1014 +#: inventory/models.py:1019 msgid "Miss" msgstr "الآنسة" -#: inventory/models.py:1015 +#: inventory/models.py:1020 msgid "Dr" msgstr "الدكتور" -#: inventory/models.py:1016 +#: inventory/models.py:1021 msgid "Prof" msgstr "الأستاذ" -#: inventory/models.py:1017 +#: inventory/models.py:1022 msgid "Prince" msgstr "الأمير" -#: inventory/models.py:1018 +#: inventory/models.py:1023 msgid "Princess" msgstr "الأميرة" -#: inventory/models.py:1019 +#: inventory/models.py:1024 msgid "Company" msgstr "الشركة" -#: inventory/models.py:1020 +#: inventory/models.py:1025 msgid "N/A" msgstr "غير متوفر" -#: inventory/models.py:1024 +#: inventory/models.py:1029 msgid "Call" msgstr "مكالمة" -#: inventory/models.py:1025 +#: inventory/models.py:1030 msgid "SMS" msgstr "رسالة نصية" -#: inventory/models.py:1028 +#: inventory/models.py:1033 msgid "Visit" msgstr "زيارة" -#: inventory/models.py:1029 templates/inventory/car_form.html:23 +#: inventory/models.py:1034 templates/inventory/car_form.html:23 msgid "Add Car" msgstr "إضافة سيارة" -#: inventory/models.py:1030 +#: inventory/models.py:1035 msgid "Sale Car" msgstr "بيع سيارة" -#: inventory/models.py:1031 templates/inventory/reserve_car.html:6 +#: inventory/models.py:1036 templates/inventory/reserve_car.html:6 #: templates/inventory/reserve_car.html:9 msgid "Reserve Car" msgstr "حجز السيارة" -#: inventory/models.py:1032 templates/inventory/transfer_car.html:4 +#: inventory/models.py:1037 templates/inventory/transfer_car.html:4 msgid "Transfer Car" msgstr "نقل السيارة" -#: inventory/models.py:1033 +#: inventory/models.py:1038 msgid "Remove Car" msgstr "إزالة السيارة" -#: inventory/models.py:1034 +#: inventory/models.py:1039 #: templates/crm/opportunities/opportunity_detail.html:19 #: templates/sales/estimates/estimate_form.html:5 #: templates/sales/estimates/estimate_form.html:9 msgid "Create Quotation" msgstr "إنشاء عرض" -#: inventory/models.py:1035 +#: inventory/models.py:1040 msgid "Cancel Quotation" msgstr "إلغاء العرض" -#: inventory/models.py:1036 +#: inventory/models.py:1041 msgid "Create Order" msgstr "إنشاء طلب" -#: inventory/models.py:1037 +#: inventory/models.py:1042 msgid "Cancel Order" msgstr "إلغاء الطلب" -#: inventory/models.py:1038 templates/sales/estimates/estimate_detail.html:74 +#: inventory/models.py:1043 templates/sales/estimates/estimate_detail.html:89 #: 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:1039 +#: inventory/models.py:1044 msgid "Cancel Invoice" msgstr "إلغاء الفاتورة" -#: inventory/models.py:1043 +#: inventory/models.py:1048 msgid "Prospect" msgstr "العميل المحتمل" -#: inventory/models.py:1044 +#: inventory/models.py:1049 msgid "Proposal" msgstr "عرض" -#: inventory/models.py:1045 +#: inventory/models.py:1050 msgid "Negotiation" msgstr "مفاوضات" -#: inventory/models.py:1046 +#: inventory/models.py:1051 msgid "Closed Won" msgstr "مغلقة - ناجحة" -#: inventory/models.py:1047 +#: inventory/models.py:1052 msgid "Closed Lost" msgstr "مغلقة - خسارة" -#: inventory/models.py:1051 +#: inventory/models.py:1056 msgid "Low" msgstr "منخفض" -#: inventory/models.py:1052 +#: inventory/models.py:1057 msgid "Medium" msgstr "متوسط" -#: inventory/models.py:1053 +#: inventory/models.py:1058 msgid "High" msgstr "مرتفع" -#: inventory/models.py:1064 inventory/models.py:1155 +#: inventory/models.py:1069 inventory/models.py:1160 #: templates/administration/manage_staff_personal_info.html:18 msgid "First Name" msgstr "الاسم الأول" -#: inventory/models.py:1066 +#: inventory/models.py:1071 msgid "Middle Name" msgstr "اسم الأب" -#: inventory/models.py:1068 inventory/models.py:1156 +#: inventory/models.py:1073 inventory/models.py:1161 #: templates/administration/manage_staff_personal_info.html:24 msgid "Last Name" msgstr "اسم العائلة" -#: inventory/models.py:1070 +#: inventory/models.py:1075 msgid "Male" msgstr "ذكر" -#: inventory/models.py:1070 +#: inventory/models.py:1075 msgid "Female" msgstr "أنثى" -#: inventory/models.py:1072 +#: inventory/models.py:1077 msgid "Gender" msgstr "الجنس" -#: inventory/models.py:1074 +#: inventory/models.py:1079 msgid "Date of Birth" msgstr "تاريخ الميلاد" -#: inventory/models.py:1077 templates/customers/customer_list.html:45 +#: inventory/models.py:1082 templates/customers/customer_list.html:45 msgid "National ID" msgstr "رقم الهوية الوطنية" -#: inventory/models.py:1090 templates/customers/customer_form.html:4 +#: inventory/models.py:1095 templates/customers/customer_form.html:4 #: templates/customers/customer_list.html:4 #: templates/customers/customer_list.html:5 #: templates/customers/customer_list.html:9 msgid "Customers" msgstr "العملاء" -#: inventory/models.py:1122 +#: inventory/models.py:1127 msgid "Organization" msgstr "شركة" -#: inventory/models.py:1123 templates/header.html:188 +#: inventory/models.py:1128 templates/header.html:188 #: templates/organizations/organization_list.html:4 #: templates/organizations/organization_list.html:5 #: templates/organizations/organization_list.html:12 msgid "Organizations" msgstr "الشركات" -#: inventory/models.py:1136 +#: inventory/models.py:1141 #: templates/representatives/representative_detail.html:8 #: templates/representatives/representative_list.html:18 msgid "ID Number" msgstr "رقم الهوية" -#: inventory/models.py:1146 +#: inventory/models.py:1151 msgid "Representative" msgstr "ممثل شركة" -#: inventory/models.py:1147 templates/header.html:196 +#: inventory/models.py:1152 templates/header.html:196 #: templates/representatives/representative_list.html:3 #: templates/representatives/representative_list.html:6 msgid "Representatives" msgstr "ممثلي الشركات" -#: inventory/models.py:1184 templates/crm/leads/lead_list.html:63 +#: inventory/models.py:1189 templates/crm/leads/lead_list.html:63 msgid "Source" msgstr "المصدر" -#: inventory/models.py:1187 templates/crm/leads/lead_list.html:69 +#: inventory/models.py:1192 templates/crm/leads/lead_list.html:69 msgid "Channel" msgstr "القناة" -#: inventory/models.py:1189 +#: inventory/models.py:1194 msgid "address" msgstr "العنوان" -#: inventory/models.py:1196 +#: inventory/models.py:1201 msgid "Assigned" msgstr "مُعين" -#: inventory/models.py:1202 +#: inventory/models.py:1207 msgid "Priority" msgstr "الأولوية" -#: inventory/models.py:1217 +#: inventory/models.py:1222 msgid "Lead" msgstr "فرصة" -#: inventory/models.py:1218 templates/crm/leads/lead_list.html:3 +#: inventory/models.py:1223 templates/crm/leads/lead_list.html:3 #: templates/crm/leads/lead_list.html:7 templates/crm/leads/lead_send.html:5 #: test.txt:21 msgid "Leads" msgstr "الفرص" -#: inventory/models.py:1313 +#: inventory/models.py:1319 msgid "Old Status" msgstr "الحالة القديمة" -#: inventory/models.py:1316 +#: inventory/models.py:1322 msgid "New Status" msgstr "الحالة الجديدة" -#: inventory/models.py:1321 +#: inventory/models.py:1327 msgid "Changed At" msgstr "تم التغيير في" -#: inventory/models.py:1324 +#: inventory/models.py:1330 msgid "Lead Status History" msgstr "تاريخ حالة العميل المحتمل" -#: inventory/models.py:1325 +#: inventory/models.py:1331 msgid "Lead Status Histories" msgstr "تواريخ حالات العملاء المحتملين" -#: inventory/models.py:1333 +#: inventory/models.py:1339 msgid "Probability must be between 0 and 100." msgstr "يجب أن تكون الاحتمالية بين 0 و 100." -#: inventory/models.py:1347 templates/crm/leads/lead_list.html:75 +#: inventory/models.py:1353 templates/crm/leads/lead_list.html:75 #: templates/crm/opportunities/opportunity_detail.html:98 #: templates/crm/opportunities/opportunity_form.html:48 msgid "Stage" msgstr "المرحلة" -#: inventory/models.py:1364 +#: inventory/models.py:1370 #: templates/crm/opportunities/opportunity_detail.html:267 #: templates/crm/opportunities/opportunity_form.html:79 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:100 @@ -1287,30 +1307,30 @@ msgstr "المرحلة" msgid "Closing Date" msgstr "تاريخ الإغلاق" -#: inventory/models.py:1367 +#: inventory/models.py:1373 msgid "Closed" msgstr "مغلقة" -#: inventory/models.py:1370 +#: inventory/models.py:1376 msgid "Opportunity" msgstr "فرصة" -#: inventory/models.py:1371 +#: inventory/models.py:1377 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:8 #: templates/crm/opportunities/opportunity_list.html:8 msgid "Opportunities" msgstr "الفرص" -#: inventory/models.py:1381 inventory/models.py:1389 +#: inventory/models.py:1387 inventory/models.py:1395 #: templates/account/snippets/already_logged_in.html:8 -#: templates/crm/leads/lead_detail.html:194 +#: templates/crm/leads/lead_detail.html:226 msgid "Note" msgstr "ملاحظة" -#: inventory/models.py:1390 inventory/models.py:1426 -#: templates/crm/leads/lead_detail.html:128 -#: templates/crm/leads/lead_detail.html:181 -#: templates/crm/leads/lead_detail.html:357 +#: inventory/models.py:1396 inventory/models.py:1432 +#: templates/crm/leads/lead_detail.html:137 +#: templates/crm/leads/lead_detail.html:213 +#: templates/crm/leads/lead_detail.html:388 #: templates/customers/view_customer.html:90 #: templates/customers/view_customer.html:186 #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:154 @@ -1318,33 +1338,33 @@ msgstr "ملاحظة" msgid "Notes" msgstr "ملاحظات" -#: inventory/models.py:1399 +#: inventory/models.py:1405 msgid "From Email" msgstr "من البريد الإلكتروني" -#: inventory/models.py:1400 +#: inventory/models.py:1406 msgid "To Email" msgstr "إلى البريد الإلكتروني" -#: inventory/models.py:1401 +#: inventory/models.py:1407 msgid "Subject" msgstr "الموضوع" -#: inventory/models.py:1402 inventory/models.py:1445 +#: inventory/models.py:1408 inventory/models.py:1451 msgid "Message" msgstr "رسالة" -#: inventory/models.py:1412 templates/crm/leads/lead_detail.html:129 -#: templates/crm/leads/lead_detail.html:234 +#: inventory/models.py:1418 templates/crm/leads/lead_detail.html:138 +#: templates/crm/leads/lead_detail.html:266 msgid "Emails" msgstr "رسائل البريد الإلكتروني" -#: inventory/models.py:1424 +#: inventory/models.py:1430 msgid "Activity Type" msgstr "نوع النشاط" -#: inventory/models.py:1434 templates/crm/leads/lead_detail.html:127 -#: templates/dealers/activity_log.html:11 templates/header.html:457 +#: inventory/models.py:1440 templates/crm/leads/lead_detail.html:136 +#: templates/dealers/activity_log.html:11 #: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:384 #: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:388 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:10 @@ -1353,84 +1373,85 @@ msgstr "نوع النشاط" msgid "Activity" msgstr "النشاط" -#: inventory/models.py:1435 templates/crm/leads/lead_detail.html:134 +#: inventory/models.py:1441 templates/crm/leads/lead_detail.html:166 +#: templates/header.html:457 msgid "Activities" msgstr "الأنشطة" -#: inventory/models.py:1446 +#: inventory/models.py:1452 msgid "Is Read" msgstr "تمت قراءته" -#: inventory/models.py:1450 +#: inventory/models.py:1456 msgid "Notification" msgstr "إشعار" -#: inventory/models.py:1451 templates/crm/notifications_history.html:6 +#: inventory/models.py:1457 templates/crm/notifications_history.html:6 #: templates/notifications.html:13 msgid "Notifications" msgstr "الإشعارات" -#: inventory/models.py:1468 templates/vendors/view_vendor.html:49 +#: inventory/models.py:1474 templates/vendors/view_vendor.html:49 msgid "Contact Person" msgstr "الشخص المسؤول" -#: inventory/models.py:1481 templates/vendors/vendor_form.html:4 +#: inventory/models.py:1487 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:1680 inventory/models.py:1710 +#: inventory/models.py:1686 inventory/models.py:1716 msgid "amount" msgstr "المبلغ" -#: inventory/models.py:1683 +#: inventory/models.py:1689 msgid "method" msgstr "طريقة" -#: inventory/models.py:1686 +#: inventory/models.py:1692 msgid "reference number" msgstr "رقم المرجع" -#: inventory/models.py:1688 +#: inventory/models.py:1694 msgid "date" msgstr "التاريخ" -#: inventory/models.py:1698 +#: inventory/models.py:1704 msgid "payment" msgstr "الدفعة" -#: inventory/models.py:1699 templates/header.html:145 +#: inventory/models.py:1705 templates/header.html:145 msgid "payments" msgstr "المدفوعات" -#: inventory/models.py:1712 +#: inventory/models.py:1718 msgid "reason" msgstr "السبب" -#: inventory/models.py:1713 +#: inventory/models.py:1719 msgid "refund date" msgstr "تاريخ الاسترداد" -#: inventory/models.py:1716 +#: inventory/models.py:1722 msgid "refund" msgstr "استرداد" -#: inventory/models.py:1717 +#: inventory/models.py:1723 msgid "refunds" msgstr "استردادات" -#: inventory/models.py:1741 templates/sales/estimates/estimate_preview.html:257 +#: inventory/models.py:1747 templates/sales/estimates/estimate_preview.html:257 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3145 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:9 msgid "Estimate" msgstr "تقدير" -#: inventory/models.py:1747 templates/customers/view_customer.html:148 +#: inventory/models.py:1753 templates/customers/view_customer.html:148 #: templates/plans/create_order.html:29 #: templates/sales/invoices/invoice_create.html:5 -#: templates/sales/invoices/invoice_detail.html:60 +#: templates/sales/invoices/invoice_detail.html:68 #: templates/sales/payments/payment_list.html:21 #: templates/sales/sales_list.html:118 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3144 @@ -1685,16 +1706,6 @@ msgstr "تحويل العملات الأجنبية" msgid "Interest Expenses" msgstr "مصروفات الفائدة" -#: inventory/signals.py:895 inventory/views.py:1541 -msgid "" -"The user quota for staff members is not defined. Please contact support." -msgstr "لم يتم تحديد الحصة المخصصة لأعضاء الفريق. يرجى الاتصال بالدعم." - -#: inventory/signals.py:898 inventory/views.py:1546 -msgid "" -"You have reached the maximum number of staff users allowed for your plan." -msgstr "لقد وصلت إلى الحد الأقصى لعدد أعضاء الفريق المسموح به في خطتك." - #: inventory/tables.py:20 templates/inventory/car_inventory.html:55 msgid "Exterior Color" msgstr "اللون الخارجي" @@ -1704,7 +1715,7 @@ msgid "Interior Color" msgstr "اللون الداخلي" #: inventory/tables.py:22 templates/inventory/car_inventory.html:59 -#: templates/inventory/car_list_view.html:113 +#: templates/inventory/car_list_view.html:114 msgid "Age" msgstr "العمر" @@ -1726,237 +1737,255 @@ msgstr "نسيت كلمة المرور؟" msgid "Car reserved successfully." msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:447 +#: inventory/views.py:496 msgid "VIN number exists" msgstr "رقم الهيكل موجود مسبقاً" -#: inventory/views.py:642 templates/dashboards/manager.html:113 -#: templates/inventory/car_inventory.html:5 +#: inventory/views.py:689 templates/dashboards/manager.html:113 +#: templates/dashboards/sales.html:113 templates/inventory/car_inventory.html:5 #: templates/inventory/inventory_stats.html:5 msgid "inventory" msgstr "المخزون" -#: inventory/views.py:856 +#: inventory/views.py:903 msgid "Car finance details saved successfully." msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:880 +#: inventory/views.py:927 msgid "Car finance details updated successfully." msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:909 +#: inventory/views.py:956 msgid "Car updated successfully." msgstr "تم تحديث السيارة بنجاح" -#: inventory/views.py:921 +#: inventory/views.py:968 msgid "Car deleted successfully." msgstr "تم حذف السيارة بنجاح." -#: inventory/views.py:997 +#: inventory/views.py:1044 msgid "Car transfer canceled successfully." msgstr "تم إلغاء نقل السيارة بنجاح." -#: inventory/views.py:1014 +#: inventory/views.py:1061 msgid "Car transfer approved successfully." msgstr "تمت الموافقة على نقل السيارة بنجاح." -#: inventory/views.py:1025 +#: inventory/views.py:1072 msgid "Car transfer rejected successfully." msgstr "تم رفض نقل السيارة بنجاح." -#: inventory/views.py:1037 +#: inventory/views.py:1084 msgid "Car Transfer Completed successfully." msgstr "تم إكمال نقل السيارة بنجاح." -#: inventory/views.py:1069 +#: inventory/views.py:1116 msgid "Custom Card added successfully." msgstr "تم إضافة البطاقة الجمركية بنجاح." -#: inventory/views.py:1089 +#: inventory/views.py:1136 msgid "Registration added successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1098 +#: inventory/views.py:1145 msgid "This car is already reserved." msgstr "هذه السيارة محجوزة بالفعل." -#: inventory/views.py:1118 +#: inventory/views.py:1165 msgid "Reservation renewed successfully." msgstr "تم تجديد الحجز بنجاح" -#: inventory/views.py:1126 +#: inventory/views.py:1173 msgid "Reservation canceled successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1131 +#: inventory/views.py:1178 msgid "Invalid action." msgstr "إجراء غير صالح." -#: inventory/views.py:1135 +#: inventory/views.py:1182 msgid "Invalid request method." msgstr "طريقة الطلب غير صالحة" -#: inventory/views.py:1172 +#: inventory/views.py:1216 msgid "Dealer updated successfully." msgstr "تم تحديث المعرض بنجاح." -#: inventory/views.py:1179 templates/header.html:181 +#: inventory/views.py:1223 templates/header.html:181 msgid "customers" msgstr "العملاء" -#: inventory/views.py:1264 +#: inventory/views.py:1302 msgid "Customer with this email already exists." msgstr "عميل بهذا البريد الإلكتروني موجود بالفعل." -#: inventory/views.py:1296 +#: inventory/views.py:1327 msgid "Customer created successfully." msgstr "تم إنشاء العميل بنجاح." -#: inventory/views.py:1303 +#: inventory/views.py:1334 msgid "Please correct the errors below." msgstr "يرجى تصحيح الأخطاء أدناه." -#: inventory/views.py:1333 +#: inventory/views.py:1373 msgid "Customer updated successfully." msgstr "تم تحديث العميل بنجاح." -#: inventory/views.py:1350 +#: inventory/views.py:1390 msgid "Customer deleted successfully." msgstr "تم حذف العميل بنجاح." -#: inventory/views.py:1381 +#: inventory/views.py:1421 msgid "Vendor created successfully." msgstr "تم إنشاء المورد بنجاح." -#: inventory/views.py:1399 +#: inventory/views.py:1439 msgid "Vendor updated successfully." msgstr "تم تحديث المورد بنجاح" -#: inventory/views.py:1407 +#: inventory/views.py:1447 msgid "Vendor deleted successfully." msgstr "تم حذف المورد بنجاح." -#: inventory/views.py:1436 +#: inventory/views.py:1476 msgid "Group created successfully." msgstr "تم إنشاء المجموعة بنجاح." -#: inventory/views.py:1457 +#: inventory/views.py:1497 msgid "Group updated successfully." msgstr "تم تحديث المجموعة بنجاح." -#: inventory/views.py:1469 +#: inventory/views.py:1509 msgid "Group deleted successfully." msgstr "تم حذف المجموعة بنجاح." -#: inventory/views.py:1480 +#: inventory/views.py:1520 msgid "Permission added successfully." msgstr "تمت إضافة الإذن بنجاح." -#: inventory/views.py:1498 +#: inventory/views.py:1538 msgid "Group added successfully." msgstr "تمت إضافة المجموعة بنجاح." -#: inventory/views.py:1533 +#: inventory/views.py:1573 msgid "User created successfully." msgstr "تم إنشاء المستخدم بنجاح." -#: inventory/views.py:1576 +#: inventory/views.py:1581 +msgid "" +"The user quota for staff members is not defined. Please contact support." +msgstr "لم يتم تحديد الحصة المخصصة لأعضاء الفريق. يرجى الاتصال بالدعم." + +#: inventory/views.py:1586 +msgid "" +"You have reached the maximum number of staff users allowed for your plan." +msgstr "لقد وصلت إلى الحد الأقصى لعدد أعضاء الفريق المسموح به في خطتك." + +#: inventory/views.py:1616 msgid "User updated successfully." msgstr "تم تحديث المستخدم بنجاح" -#: inventory/views.py:1612 +#: inventory/views.py:1652 msgid "User deleted successfully." msgstr "تم حذف المستخدم بنجاح." -#: inventory/views.py:1681 inventory/views.py:1711 +#: inventory/views.py:1697 +msgid "An organization with this email already exists." +msgstr "توجد بالفعل منظمة بهذا البريد الإلكتروني." + +#: inventory/views.py:1723 inventory/views.py:1760 msgid "Organization created successfully." msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:2248 +#: inventory/views.py:1778 +msgid "Organization deleted successfully." +msgstr "تم حذف المنظمة بنجاح." + +#: inventory/views.py:2301 msgid "Estimate is not ready for review" msgstr "العرض غير جاهز للمراجعة." -#: inventory/views.py:2254 +#: inventory/views.py:2307 msgid "Estimate is not ready for approval" msgstr "العرض غير جاهز للموافقة." -#: inventory/views.py:2257 +#: inventory/views.py:2310 msgid "Estimate approved successfully." msgstr "تمت الموافقة على العرض بنجاح." -#: inventory/views.py:2260 +#: inventory/views.py:2313 msgid "Estimate is not ready for rejection" msgstr "العرض غير جاهز للرفض." -#: inventory/views.py:2263 inventory/views.py:2273 +#: inventory/views.py:2316 inventory/views.py:2326 msgid "Estimate canceled successfully." msgstr "تم إلغاء العرض بنجاح." -#: inventory/views.py:2266 +#: inventory/views.py:2319 msgid "Estimate is not ready for completion" msgstr "العرض غير جاهز للإكمال." -#: inventory/views.py:2270 +#: inventory/views.py:2323 msgid "Estimate is not ready for cancelation" msgstr "العرض غير جاهز للإلغاء." -#: inventory/views.py:2742 +#: inventory/views.py:2802 msgid "Note deleted successfully." msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:2815 +#: inventory/views.py:2893 msgid "Email Draft successfully!" msgstr "تم حفظ مسودة البريد الإلكتروني بنجاح!" -#: inventory/views.py:2841 inventory/views.py:3377 +#: inventory/views.py:2918 inventory/views.py:3454 msgid "Email sent successfully!" msgstr "تم إرسال البريد الإلكتروني بنجاح!" -#: inventory/views.py:2967 +#: inventory/views.py:3044 msgid "Opportunity deleted successfully." msgstr "تم حذف الفرصة بنجاح." -#: inventory/views.py:3001 +#: inventory/views.py:3078 msgid "Notification marked as read." msgstr "تم تمييز الإشعار كمقروء." -#: inventory/views.py:3019 +#: inventory/views.py:3096 msgid "Service created successfully." msgstr "تم إنشاء الخدمة بنجاح." -#: inventory/views.py:3036 +#: inventory/views.py:3113 msgid "Service updated successfully." msgstr "تم تحديث الخدمة بنجاح." -#: inventory/views.py:3152 inventory/views.py:3177 +#: inventory/views.py:3229 inventory/views.py:3254 msgid "Bill updated successfully." msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:3204 +#: inventory/views.py:3281 msgid "Bill is already approved." msgstr "تمت الموافقة على الفاتورة مسبقًا." -#: inventory/views.py:3208 +#: inventory/views.py:3285 msgid "Bill marked as approved successfully." msgstr "تم تحديد الفاتورة كموافقة بنجاح." -#: inventory/views.py:3218 +#: inventory/views.py:3295 msgid "Bill is already paid." msgstr "تم دفع الفاتورة مسبقًا." -#: inventory/views.py:3227 +#: inventory/views.py:3304 msgid "Bill marked as paid successfully." msgstr "تم تحديد الفاتورة كمدفوعة بنجاح." -#: inventory/views.py:3229 +#: inventory/views.py:3306 msgid "Amount paid is not equal to amount due." msgstr "المبلغ المدفوع لا يساوي المبلغ المستحق." -#: inventory/views.py:3367 +#: inventory/views.py:3444 msgid "Estimate has no items" msgstr "التقدير لا يحتوي على أي عناصر." -#: inventory/views.py:3568 templates/header.html:286 +#: inventory/views.py:3645 templates/header.html:286 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:23 #: venv/lib/python3.11/site-packages/django_ledger/views/entity.py:210 msgid "Dashboard" @@ -1999,8 +2028,8 @@ msgstr "" #: templates/ledger/bills/bill_detail.html:36 #: templates/plans/billing_info_delete.html:13 #: templates/sales/estimates/estimate_detail.html:35 -#: templates/sales/invoices/invoice_detail.html:11 -#: templates/sales/invoices/invoice_detail.html:35 +#: templates/sales/invoices/invoice_detail.html:18 +#: templates/sales/invoices/invoice_detail.html:42 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/modals_v2.html:11 msgid "Confirm" msgstr "تأكيد" @@ -2017,7 +2046,7 @@ msgstr "تأكيد" #: templates/inventory/add_colors.html:56 #: templates/inventory/add_custom_card.html:12 #: templates/inventory/car_confirm_delete.html:14 -#: templates/inventory/car_detail.html:313 +#: templates/inventory/car_detail.html:320 #: templates/inventory/car_finance_form.html:41 #: templates/inventory/car_registration_form.html:13 #: templates/inventory/color_palette.html:107 @@ -2031,7 +2060,7 @@ msgstr "تأكيد" #: templates/modal/event_details_modal.html:24 #: templates/organizations/organization_form.html:14 #: templates/representatives/representative_form.html:12 -#: templates/sales/estimates/estimate_detail.html:84 +#: templates/sales/estimates/estimate_detail.html:99 #: templates/sales/estimates/estimate_form.html:44 #: templates/sales/estimates/estimate_preview.html:225 #: templates/sales/estimates/estimate_preview.html:244 @@ -2652,16 +2681,12 @@ msgstr "التالي" #: templates/account/signup-wizard.html:102 #: templates/account/signup-wizard.html:107 -#, fuzzy -#| msgid "Please enter a valid 17-character VIN number." msgid "Please enter a valid phone number" -msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." +msgstr "يرجى إدخال رقم هاتف صالح" #: templates/account/signup-wizard.html:138 -#, fuzzy -#| msgid "Passwords do not match." msgid "Password does not match" -msgstr "كلمات المرور غير متطابقة." +msgstr "كلمة المرور غير متطابقة" #: templates/account/signup-wizard.html:246 #: templates/inventory/car_form.html:605 @@ -2703,10 +2728,8 @@ msgstr "" "إلكتروني حتى تتمكن من تلقي الإشعارات وإعادة تعيين كلمة المرور وما إلى ذلك." #: templates/account/user_settings.html:6 -#, fuzzy -#| msgid "User Details" msgid "User Settings" -msgstr "تفاصيل المستخدم" +msgstr "إعدادات المستخدم" #: templates/account/verfied_email_required.html:5 #: templates/account/verfied_email_required.html:19 @@ -2766,7 +2789,7 @@ msgstr "" #: templates/email_sender/reminder_email.html:80 #: templates/email_sender/reschedule_email.html:64 #: templates/email_sender/reschedule_email.html:69 -#: templates/inventory/car_detail.html:352 +#: templates/inventory/car_detail.html:360 #: templates/inventory/transfer_details.html:59 #: templates/inventory/transfer_preview.html:219 #: templates/ledger/coa_accounts/account_detail.html:64 @@ -2924,7 +2947,7 @@ msgstr "تأكيد الحذف" #: templates/administration/service_list.html:13 #: templates/administration/staff_index.html:79 #: templates/administration/user_profile.html:18 -#: templates/crm/leads/lead_list.html:97 templates/crm/leads/lead_list.html:198 +#: templates/crm/leads/lead_list.html:97 templates/crm/leads/lead_list.html:202 #: templates/crm/opportunities/opportunity_detail.html:11 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:28 #: templates/customers/view_customer.html:22 @@ -2935,8 +2958,8 @@ msgstr "تأكيد الحذف" #: templates/ledger/coa_accounts/account_list.html:110 #: templates/modal/delete_modal.html:12 templates/modal/delete_modal.html:26 #: templates/modal/event_details_modal.html:33 -#: templates/organizations/organization_detail.html:17 -#: templates/organizations/organization_list.html:130 +#: templates/organizations/organization_detail.html:19 +#: templates/organizations/organization_list.html:131 #: templates/plans/billing_info_create_or_update.html:14 #: templates/representatives/representative_detail.html:16 #: templates/sales/estimates/estimate_detail.html:12 @@ -3110,7 +3133,7 @@ msgstr "قائمة الخدمات" #: templates/administration/user_profile.html:94 #: templates/administration/user_profile.html:162 #: templates/groups/group_detail.html:83 -#: templates/inventory/car_detail.html:348 +#: templates/inventory/car_detail.html:356 #: templates/items/expenses/expenses_list.html:22 #: templates/items/service/service_list.html:24 #: templates/ledger/bank_accounts/bank_account_list.html:21 @@ -3224,14 +3247,14 @@ msgid "Staff Members" msgstr "أعضاء الفريق" #: templates/administration/staff_list.html:25 -#: templates/crm/leads/lead_detail.html:184 templates/crm/note_form.html:15 +#: templates/crm/leads/lead_detail.html:216 templates/crm/note_form.html:15 #: templates/customers/note_form.html:6 #: templates/customers/view_customer.html:81 -#: templates/inventory/car_detail.html:125 -#: templates/inventory/car_detail.html:147 -#: templates/inventory/car_detail.html:163 -#: templates/inventory/car_detail.html:233 -#: templates/inventory/car_detail.html:277 +#: templates/inventory/car_detail.html:131 +#: templates/inventory/car_detail.html:153 +#: templates/inventory/car_detail.html:169 +#: templates/inventory/car_detail.html:239 +#: templates/inventory/car_detail.html:283 #: templates/inventory/car_location_form.html:10 #: venv/lib/python3.11/site-packages/appointment/services.py:170 msgid "Add" @@ -3464,7 +3487,7 @@ msgstr "تفاصيل الدفع" #: templates/appointment/appointment_client_information.html:96 #: templates/customers/view_customer.html:115 -#: templates/inventory/car_detail.html:218 +#: templates/inventory/car_detail.html:224 #: templates/inventory/inventory_stats.html:72 #: templates/inventory/transfer_details.html:74 #: templates/inventory/transfer_preview.html:232 @@ -3472,10 +3495,10 @@ msgstr "تفاصيل الدفع" #: templates/ledger/coa_accounts/account_detail.html:100 #: templates/ledger/reports/tags/balance_sheet_statement.html:55 #: templates/plans/order_detail_table.html:12 -#: templates/sales/estimates/estimate_detail.html:161 +#: templates/sales/estimates/estimate_detail.html:176 #: templates/sales/estimates/estimate_preview.html:278 #: templates/sales/estimates/sale_order_preview.html:244 -#: templates/sales/invoices/invoice_detail.html:220 +#: templates/sales/invoices/invoice_detail.html:242 #: venv/lib/python3.11/site-packages/appointment/templates/appointment/appointment_client_information.html:103 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:98 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:127 @@ -3645,60 +3668,60 @@ msgstr "هيكل" msgid "Select Date" msgstr "اختر التاريخ" -#: templates/crm/leads/lead_detail.html:9 -#: templates/crm/leads/lead_detail.html:26 +#: templates/crm/leads/lead_detail.html:18 +#: templates/crm/leads/lead_detail.html:35 msgid "Lead Details" msgstr "تفاصيل العميل المحتمل" -#: templates/crm/leads/lead_detail.html:35 +#: templates/crm/leads/lead_detail.html:44 msgid "Assigned to" msgstr "مُعين إلى" -#: templates/crm/leads/lead_detail.html:37 +#: templates/crm/leads/lead_detail.html:46 msgid "Not Assigned" msgstr "غير معين" -#: templates/crm/leads/lead_detail.html:63 +#: templates/crm/leads/lead_detail.html:72 msgid "Car Requested" msgstr "السيارة المطلوبة" -#: templates/crm/leads/lead_detail.html:85 +#: templates/crm/leads/lead_detail.html:94 msgid "Salary" msgstr "الراتب" -#: templates/crm/leads/lead_detail.html:97 +#: templates/crm/leads/lead_detail.html:106 msgid "Lead Source" msgstr "مصدر العميل المحتمل" -#: templates/crm/leads/lead_detail.html:103 +#: templates/crm/leads/lead_detail.html:112 msgid "Lead Channel" msgstr "قناة العميل المحتمل" -#: templates/crm/leads/lead_detail.html:115 +#: templates/crm/leads/lead_detail.html:124 #: 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 "المدينة" -#: templates/crm/leads/lead_detail.html:169 +#: templates/crm/leads/lead_detail.html:201 msgid "by" msgstr "بواسطة" -#: templates/crm/leads/lead_detail.html:186 +#: templates/crm/leads/lead_detail.html:218 #: templates/customers/view_customer.html:83 msgid "Add Note" msgstr "إضافة ملاحظة" -#: templates/crm/leads/lead_detail.html:195 +#: templates/crm/leads/lead_detail.html:227 msgid "Created By" msgstr "تم الإنشاء بواسطة" -#: templates/crm/leads/lead_detail.html:196 +#: templates/crm/leads/lead_detail.html:228 msgid "Created On" msgstr "تم الإنشاء في" -#: templates/crm/leads/lead_detail.html:213 +#: templates/crm/leads/lead_detail.html:245 #: templates/crm/leads/schedule_lead.html:5 templates/crm/note_form.html:13 #: templates/customers/view_customer.html:27 #: templates/items/expenses/expenses_list.html:34 @@ -3744,9 +3767,9 @@ msgstr "تم الإنشاء في" msgid "Update" msgstr "تحديث" -#: templates/crm/leads/lead_detail.html:387 +#: templates/crm/leads/lead_detail.html:418 #: templates/customers/view_customer.html:217 -#: templates/inventory/car_detail.html:516 +#: templates/inventory/car_detail.html:525 msgid "Error loading form. Please try again later" msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." @@ -3784,7 +3807,7 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل الم #: templates/crm/leads/lead_list.html:105 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:158 #: templates/groups/group_detail.html:32 -#: templates/inventory/car_detail.html:450 +#: templates/inventory/car_detail.html:461 #: templates/inventory/transfer_details.html:47 #: templates/ledger/bank_accounts/bank_account_detail.html:31 #: templates/ledger/bills/bill_detail.html:24 @@ -3796,9 +3819,9 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل الم #: templates/organizations/organization_list.html:100 #: templates/sales/estimates/estimate_detail.html:20 #: templates/sales/estimates/estimate_detail.html:47 -#: templates/sales/invoices/invoice_detail.html:23 -#: templates/sales/invoices/invoice_detail.html:48 -#: templates/sales/invoices/invoice_detail.html:118 +#: templates/sales/invoices/invoice_detail.html:30 +#: templates/sales/invoices/invoice_detail.html:55 +#: templates/sales/invoices/invoice_detail.html:140 #: templates/users/user_detail.html:32 templates/vendors/vendors_list.html:100 #: templates/vendors/view_vendor.html:32 #: venv/lib/python3.11/site-packages/appointment/models.py:530 @@ -3806,10 +3829,10 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا العميل الم msgid "Yes" msgstr "نعم" -#: templates/crm/leads/lead_list.html:175 +#: templates/crm/leads/lead_list.html:178 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:155 #: templates/groups/group_detail.html:27 -#: templates/inventory/car_detail.html:445 +#: templates/inventory/car_detail.html:456 #: templates/inventory/transfer_details.html:24 #: templates/inventory/transfer_details.html:46 #: templates/ledger/bank_accounts/bank_account_detail.html:26 @@ -3821,9 +3844,9 @@ msgstr "نعم" #: templates/ledger/coa_accounts/account_list.html:75 #: templates/organizations/organization_list.html:97 #: templates/sales/estimates/estimate_detail.html:46 -#: templates/sales/invoices/invoice_detail.html:19 -#: templates/sales/invoices/invoice_detail.html:44 -#: templates/sales/invoices/invoice_detail.html:120 +#: templates/sales/invoices/invoice_detail.html:26 +#: templates/sales/invoices/invoice_detail.html:51 +#: templates/sales/invoices/invoice_detail.html:142 #: templates/users/user_detail.html:27 templates/vendors/vendors_list.html:97 #: templates/vendors/view_vendor.html:29 #: venv/lib/python3.11/site-packages/appointment/models.py:530 @@ -3832,18 +3855,18 @@ msgstr "نعم" msgid "No" msgstr "لا" -#: templates/crm/leads/lead_list.html:191 +#: templates/crm/leads/lead_list.html:195 #: templates/crm/opportunities/opportunity_detail.html:10 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:27 #: templates/dealers/dealer_detail.html:13 #: templates/groups/group_detail.html:103 -#: templates/inventory/car_detail.html:173 -#: templates/inventory/car_detail.html:225 +#: templates/inventory/car_detail.html:179 +#: templates/inventory/car_detail.html:231 #: templates/ledger/bank_accounts/bank_account_detail.html:57 #: templates/ledger/coa_accounts/account_detail.html:114 #: templates/modal/event_details_modal.html:27 #: templates/organizations/organization_detail.html:14 -#: templates/organizations/organization_list.html:128 +#: templates/organizations/organization_list.html:129 #: templates/representatives/representative_detail.html:13 #: templates/users/user_detail.html:84 templates/vendors/vendors_list.html:134 #: templates/vendors/view_vendor.html:64 @@ -3855,17 +3878,17 @@ msgstr "لا" msgid "Edit" msgstr "تحديث" -#: templates/crm/leads/lead_list.html:192 +#: templates/crm/leads/lead_list.html:196 msgid "Send Email" msgstr "إرسال البريد الإلكتروني" -#: templates/crm/leads/lead_list.html:193 -msgid "Set Schedule" -msgstr "تحديد الجدولة" +#: templates/crm/leads/lead_list.html:197 +msgid "Schedule Event" +msgstr "جدولة الحدث" -#: templates/crm/leads/lead_list.html:195 -msgid "Convert To Opportunity" -msgstr "تحويل إلى فرصة" +#: templates/crm/leads/lead_list.html:199 +msgid "Convert" +msgstr "تحويل" #: templates/crm/leads/schedule_lead.html:5 #: venv/lib/python3.11/site-packages/appointment/views_admin.py:429 @@ -3955,7 +3978,7 @@ msgstr "إضافة فرصة" #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:55 #: templates/crm/opportunities/opportunity_list.html:49 -#: templates/inventory/car_list_view.html:156 +#: templates/inventory/car_list_view.html:167 #: templates/ledger/bills/bill_list.html:97 #: templates/ledger/coa_accounts/account_list.html:108 #: templates/sales/invoices/invoice_list.html:61 @@ -4027,10 +4050,8 @@ msgid "Default Address" msgstr "العنوان الافتراضي" #: templates/customers/view_customer.html:108 -#, fuzzy -#| msgid "Created" msgid "Related" -msgstr "تاريخ الإنشاء" +msgstr "مرتبط" #: templates/customers/view_customer.html:114 #: templates/ledger/bank_accounts/bank_account_list.html:20 @@ -4040,13 +4061,11 @@ msgid "Type" msgstr "النوع" #: templates/customers/view_customer.html:116 -#, fuzzy -#| msgid "Payment Details" msgid "Payment Status" -msgstr "تفاصيل الدفع" +msgstr "حالة الدفع" #: templates/customers/view_customer.html:126 -#: templates/sales/estimates/estimate_detail.html:61 +#: templates/sales/estimates/estimate_detail.html:62 #: templates/sales/estimates/estimate_send.html:5 #: templates/sales/sales_list.html:117 msgid "Quotation" @@ -4054,54 +4073,57 @@ msgstr "عرض سعر" #: templates/customers/view_customer.html:154 #: templates/ledger/bills/bill_detail.html:199 -#: templates/sales/invoices/invoice_detail.html:200 +#: templates/sales/invoices/invoice_detail.html:79 +#: templates/sales/invoices/invoice_detail.html:222 #: templates/sales/invoices/invoice_list.html:40 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:346 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:303 msgid "Paid" msgstr "مدفوع" -#: templates/dashboards/manager.html:17 +#: templates/dashboards/manager.html:17 templates/dashboards/sales.html:17 msgid "Inventory by Status" msgstr "المخزون حسب الحالة" -#: templates/dashboards/manager.html:72 +#: templates/dashboards/manager.html:72 templates/dashboards/sales.html:72 msgid "New Leads and Customers" msgstr "العملاء والفرص الجديدة." -#: templates/dashboards/manager.html:73 +#: templates/dashboards/manager.html:73 templates/dashboards/sales.html:73 msgid "Payment received across all channels" msgstr "تم استلام الدفع عبر جميع القنوات." -#: templates/dashboards/manager.html:78 +#: templates/dashboards/manager.html:78 templates/dashboards/sales.html:78 msgid "New Customers" msgstr "عملاء جدد." -#: templates/dashboards/manager.html:92 +#: templates/dashboards/manager.html:92 templates/dashboards/sales.html:92 msgid "New Leads" msgstr "فرص جديدة." -#: templates/dashboards/manager.html:120 +#: templates/dashboards/manager.html:120 templates/dashboards/sales.html:120 msgid "As of" msgstr "حتى" -#: templates/dashboards/manager.html:125 templates/index.html:94 +#: templates/dashboards/manager.html:125 templates/dashboards/sales.html:125 +#: templates/index.html:94 msgid "inventory value" msgstr "قيمة المخزون" -#: templates/dashboards/manager.html:140 templates/index.html:99 +#: templates/dashboards/manager.html:140 templates/dashboards/sales.html:140 +#: templates/index.html:99 msgid "Profits" msgstr "الأرباح" -#: templates/dashboards/manager.html:155 +#: templates/dashboards/manager.html:155 templates/dashboards/sales.html:155 msgid "Canceled Invoices" msgstr "الفواتير الملغاة." -#: templates/dashboards/manager.html:161 +#: templates/dashboards/manager.html:161 templates/dashboards/sales.html:161 msgid "From last month" msgstr "من الشهر الماضي." -#: templates/dashboards/manager.html:172 +#: templates/dashboards/manager.html:172 templates/dashboards/sales.html:172 #: templates/ledger/reports/tags/income_statement.html:114 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:148 msgid "Gross Profit" @@ -4141,7 +4163,7 @@ msgid "Active" msgstr "نشط" #: templates/dealers/dealer_detail.html:102 -#: templates/inventory/car_detail.html:318 templates/plans/current.html:23 +#: templates/inventory/car_detail.html:326 templates/plans/current.html:23 msgid "Expired" msgstr "منتهي الصلاحية" @@ -4271,7 +4293,7 @@ msgid "This is a reminder for your upcoming appointment." msgstr "هذه تذكرة بموعدك القادم." #: templates/email_sender/reminder_email.html:83 -#: templates/inventory/car_detail.html:154 +#: templates/inventory/car_detail.html:160 #: venv/lib/python3.11/site-packages/appointment/templates/email_sender/reminder_email.html:142 msgid "Location" msgstr "الموقع" @@ -4590,7 +4612,7 @@ msgstr "إجمالي الأذونات" msgid "actions" msgstr "الإجراءات" -#: templates/groups/group_list.html:40 templates/inventory/car_detail.html:107 +#: templates/groups/group_list.html:40 templates/inventory/car_detail.html:113 #: templates/inventory/car_inventory.html:114 #: templates/ledger/coa_accounts/account_detail.html:92 #: templates/representatives/representative_list.html:30 @@ -4755,8 +4777,12 @@ msgid "profile" msgstr "الملف الشخصي" #: templates/header.html:454 -msgid "Staff & Group" -msgstr "الموظفون والمجموعة" +msgid "Staff & Groups" +msgstr "الموظفون والمجموعات" + +#: templates/header.html:462 +msgid "Settings" +msgstr "الإعدادات" #: templates/index.html:19 msgid "Total Cars in Inventory" @@ -4778,12 +4804,12 @@ msgstr "إضافة لون" msgid "Select exterior and interior colors for" msgstr "اختر الألوان الخارجية والداخلية لـ" -#: templates/inventory/car_detail.html:3 templates/inventory/car_detail.html:49 +#: templates/inventory/car_detail.html:3 templates/inventory/car_detail.html:55 #: templates/inventory/car_history.html:4 msgid "Car Details" msgstr "تفاصيل السيارة" -#: templates/inventory/car_detail.html:18 +#: templates/inventory/car_detail.html:24 msgid "" "This car information is not complete , please add colors and finances before " "making it ready for sale ." @@ -4791,48 +4817,48 @@ msgstr "" "معلومات هذه السيارة غير مكتملة، يرجى إضافة الألوان والتمويل قبل تجهيزها " "للبيع." -#: templates/inventory/car_detail.html:25 +#: templates/inventory/car_detail.html:31 msgid "Action Required , Please Approved The Tranfer Request Of This Car ." msgstr "الإجراء مطلوب، يرجى الموافقة على طلب نقل هذه السيارة." -#: templates/inventory/car_detail.html:32 +#: templates/inventory/car_detail.html:38 msgid "" "Car Is In Transfer Process To Another Dealer, Please Wait For The " "Acceptance ." msgstr "السيارة قيد عملية النقل إلى تاجر آخر، يرجى انتظار القبول." -#: templates/inventory/car_detail.html:39 +#: templates/inventory/car_detail.html:45 msgid "This car is reserved until " msgstr "هذه السيارة محجوزة حتى " -#: templates/inventory/car_detail.html:58 templates/inventory/car_list.html:119 +#: templates/inventory/car_detail.html:64 templates/inventory/car_list.html:119 msgid "year" msgstr "السنة" -#: templates/inventory/car_detail.html:62 templates/inventory/car_form.html:75 +#: templates/inventory/car_detail.html:68 templates/inventory/car_form.html:75 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:82 #: templates/inventory/car_list.html:79 msgid "make" msgstr "الصانع" -#: templates/inventory/car_detail.html:66 templates/inventory/car_form.html:98 +#: templates/inventory/car_detail.html:72 templates/inventory/car_form.html:98 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:99 #: templates/inventory/car_list.html:97 msgid "model" msgstr "الموديل" -#: templates/inventory/car_detail.html:70 templates/inventory/car_list.html:130 +#: templates/inventory/car_detail.html:76 templates/inventory/car_list.html:130 msgid "series" msgstr "السلسلة" -#: templates/inventory/car_detail.html:74 templates/inventory/car_form.html:85 +#: templates/inventory/car_detail.html:80 templates/inventory/car_form.html:85 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:143 #: templates/inventory/car_list.html:141 msgid "trim" msgstr "الفئة" -#: templates/inventory/car_detail.html:104 -#: templates/inventory/car_detail.html:464 +#: templates/inventory/car_detail.html:110 +#: templates/inventory/car_detail.html:474 #: templates/inventory/car_form.html:109 templates/inventory/car_form.html:219 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:252 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:279 @@ -4841,61 +4867,61 @@ msgstr "الفئة" msgid "specifications" msgstr "المواصفات" -#: templates/inventory/car_detail.html:157 +#: templates/inventory/car_detail.html:163 #: templates/inventory/car_inventory.html:92 msgid "Our Showroom" msgstr "معرضنا" -#: templates/inventory/car_detail.html:161 +#: templates/inventory/car_detail.html:167 msgid "No location available." msgstr "لا يوجد موقع متاح." -#: templates/inventory/car_detail.html:175 -#: templates/inventory/car_detail.html:228 +#: templates/inventory/car_detail.html:181 +#: templates/inventory/car_detail.html:234 msgid "Cannot Edit, Car in Transfer." msgstr "لا يمكن التعديل، السيارة قيد النقل." -#: templates/inventory/car_detail.html:183 +#: templates/inventory/car_detail.html:189 msgid "Financial Details" msgstr "التفاصيل المالية" -#: templates/inventory/car_detail.html:202 +#: templates/inventory/car_detail.html:208 msgid "Additional Fee" msgstr "رسوم إضافية" -#: templates/inventory/car_detail.html:214 +#: templates/inventory/car_detail.html:220 msgid "VAT Amount" msgstr "مبلغ ضريبة القيمة المضافة" -#: templates/inventory/car_detail.html:231 +#: templates/inventory/car_detail.html:237 msgid "No finance details available." msgstr "لا توجد تفاصيل مالية متاحة." -#: templates/inventory/car_detail.html:243 +#: templates/inventory/car_detail.html:249 msgid "Colors Details" msgstr "تفاصيل الألوان" -#: templates/inventory/car_detail.html:250 +#: templates/inventory/car_detail.html:256 msgid "Exterior" msgstr "الخارجي" -#: templates/inventory/car_detail.html:259 +#: templates/inventory/car_detail.html:265 msgid "Interior" msgstr "الداخلي" -#: templates/inventory/car_detail.html:271 +#: templates/inventory/car_detail.html:277 msgid "No colors available for this car." msgstr "لا تتوفر ألوان لهذه السيارة." -#: templates/inventory/car_detail.html:288 +#: templates/inventory/car_detail.html:294 msgid "Reservations Details" msgstr "تفاصيل الحجز" -#: templates/inventory/car_detail.html:296 +#: templates/inventory/car_detail.html:302 msgid "Expires At" msgstr "ينتهي في" -#: templates/inventory/car_detail.html:297 +#: templates/inventory/car_detail.html:303 #: templates/ledger/coa_accounts/account_detail.html:69 #: templates/representatives/representative_list.html:20 #: templates/sales/estimates/estimate_list.html:19 @@ -4934,39 +4960,39 @@ msgstr "ينتهي في" msgid "Actions" msgstr "الإجراءات" -#: templates/inventory/car_detail.html:310 +#: templates/inventory/car_detail.html:317 msgid "Renew" msgstr "تجديد" -#: templates/inventory/car_detail.html:327 +#: templates/inventory/car_detail.html:335 #: templates/inventory/reserve_car.html:29 msgid "Reserve" msgstr "حجز" -#: templates/inventory/car_detail.html:342 +#: templates/inventory/car_detail.html:350 #: templates/inventory/transfer_details.html:57 msgid "Transfer Details" msgstr "تفاصيل النقل" -#: templates/inventory/car_detail.html:350 +#: templates/inventory/car_detail.html:358 msgid "From Showroom" msgstr "من صالة العرض" -#: templates/inventory/car_detail.html:351 +#: templates/inventory/car_detail.html:359 msgid "To Showroom" msgstr "إلى صالة العرض" -#: templates/inventory/car_detail.html:433 +#: templates/inventory/car_detail.html:444 msgid "Are you sure you want to reserve this car?" msgstr "هل أنت متأكد أنك تريد حجز هذه السيارة؟" -#: templates/inventory/car_detail.html:554 +#: templates/inventory/car_detail.html:563 #: templates/inventory/car_list.html:542 #: templates/partials/specifications_modal.html:11 msgid "No specifications available." msgstr "لا توجد مواصفات متاحة." -#: templates/inventory/car_detail.html:558 +#: templates/inventory/car_detail.html:567 #: templates/inventory/car_list.html:546 msgid "Error loading specifications." msgstr "حدث خطأ أثناء تحميل المواصفات." @@ -5182,7 +5208,7 @@ msgstr "تصفية" msgid "All" msgstr "الكل" -#: templates/inventory/car_list_view.html:157 +#: templates/inventory/car_list_view.html:168 #: templates/sales/sales_list.html:205 msgid "Export" msgstr "تصدير" @@ -5274,7 +5300,7 @@ msgstr "إلى" #: templates/plans/order_detail_table.html:10 #: templates/sales/estimates/estimate_preview.html:296 #: templates/sales/estimates/sale_order_preview.html:265 -#: templates/sales/invoices/invoice_detail.html:243 +#: templates/sales/invoices/invoice_detail.html:265 msgid "VAT" msgstr "ضريبة القيمة المضافة" @@ -5329,10 +5355,10 @@ msgstr "شكرًا لاختيارك لنا. نحن نقدر عملك معنا." #: templates/inventory/transfer_preview.html:231 #: templates/ledger/bills/bill_detail.html:215 -#: templates/sales/estimates/estimate_detail.html:160 +#: templates/sales/estimates/estimate_detail.html:175 #: templates/sales/estimates/estimate_preview.html:277 #: templates/sales/estimates/sale_order_preview.html:243 -#: templates/sales/invoices/invoice_detail.html:219 +#: templates/sales/invoices/invoice_detail.html:241 msgid "Unit Price" msgstr "سعر الوحدة" @@ -5477,12 +5503,12 @@ msgid "Mark as Approved" msgstr "وضع علامة معتمد" #: templates/ledger/bills/bill_detail.html:70 -#: templates/sales/invoices/invoice_detail.html:66 +#: templates/sales/invoices/invoice_detail.html:88 msgid "Record Payment" msgstr "تسجيل عملية دفع" #: templates/ledger/bills/bill_detail.html:73 -#: templates/sales/invoices/invoice_detail.html:69 +#: templates/sales/invoices/invoice_detail.html:91 #: 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 @@ -5491,28 +5517,28 @@ msgid "Mark as Paid" msgstr "وضع علامة مدفوعة" #: templates/ledger/bills/bill_detail.html:86 -#: templates/sales/invoices/invoice_detail.html:83 +#: templates/sales/invoices/invoice_detail.html:105 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:43 msgid "Paid Amount" msgstr "المبلغ المدفوع" #: templates/ledger/bills/bill_detail.html:108 -#: templates/sales/invoices/invoice_detail.html:105 +#: templates/sales/invoices/invoice_detail.html:127 msgid "Date Due" msgstr "تاريخ الاستحقاق" #: templates/ledger/bills/bill_detail.html:112 -#: templates/sales/invoices/invoice_detail.html:109 +#: templates/sales/invoices/invoice_detail.html:131 msgid "Due in Days" msgstr "الاستحقاق بالأيام" #: templates/ledger/bills/bill_detail.html:118 -#: templates/sales/invoices/invoice_detail.html:115 +#: templates/sales/invoices/invoice_detail.html:137 msgid "Is Past Due" msgstr "متأخر عن السداد" #: templates/ledger/bills/bill_detail.html:138 -#: templates/sales/invoices/invoice_detail.html:135 +#: templates/sales/invoices/invoice_detail.html:157 msgid "Due Amount" msgstr "المبلغ الكلي" @@ -5527,7 +5553,7 @@ msgid "Bill Date" msgstr "تاريخ الفاتورة" #: templates/ledger/bills/bill_detail.html:180 -#: templates/sales/invoices/invoice_detail.html:177 +#: templates/sales/invoices/invoice_detail.html:199 #: templates/sales/sales_list.html:109 msgid "Customer Name" msgstr "اسم العميل" @@ -5537,9 +5563,11 @@ msgid "bill Status" msgstr "حالة الفاتورة" #: templates/ledger/bills/bill_detail.html:193 -#: templates/sales/estimates/estimate_detail.html:135 +#: templates/sales/estimates/estimate_detail.html:67 +#: templates/sales/estimates/estimate_detail.html:150 #: templates/sales/estimates/estimate_list.html:31 -#: templates/sales/invoices/invoice_detail.html:194 +#: templates/sales/invoices/invoice_detail.html:73 +#: templates/sales/invoices/invoice_detail.html:216 #: templates/sales/invoices/invoice_list.html:38 #: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:344 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:224 @@ -5550,7 +5578,8 @@ msgstr "قيد المراجعة" #: templates/ledger/bills/bill_detail.html:197 #: templates/sales/estimates/estimate_list.html:35 -#: templates/sales/invoices/invoice_detail.html:198 +#: templates/sales/invoices/invoice_detail.html:77 +#: templates/sales/invoices/invoice_detail.html:220 msgid "Declined" msgstr "مرفوض" @@ -5559,8 +5588,8 @@ msgid "Vat Amount" msgstr "مبلغ ضريبة القيمة المضافة" #: templates/ledger/bills/bill_detail.html:236 -#: templates/sales/estimates/estimate_detail.html:199 -#: templates/sales/invoices/invoice_detail.html:257 +#: templates/sales/estimates/estimate_detail.html:214 +#: templates/sales/invoices/invoice_detail.html:279 msgid "Grand Total" msgstr "الإجمالي" @@ -6546,52 +6575,53 @@ msgid "Are you sure you want to Cancel this Estimate?" msgstr "هل أنت متأكد أنك تريد إلغاء هذا التقدير؟" #: templates/sales/estimates/estimate_detail.html:41 -#: templates/sales/invoices/invoice_detail.html:15 -#: templates/sales/invoices/invoice_detail.html:39 +#: templates/sales/invoices/invoice_detail.html:22 +#: templates/sales/invoices/invoice_detail.html:46 msgid "Are you sure ?" msgstr "هل أنت متأكد؟" -#: templates/sales/estimates/estimate_detail.html:68 -msgid "Send Quotation" -msgstr "إرسال عرض السعر" - -#: templates/sales/estimates/estimate_detail.html:69 -msgid "Mark As Sent" -msgstr "وضع كمدفوع" - #: templates/sales/estimates/estimate_detail.html:71 -msgid "Mark As Accept" -msgstr "وضع كنشط" - -#: templates/sales/estimates/estimate_detail.html:76 -msgid "Create Sale Order" -msgstr "إنشاء أمر بيع" - -#: templates/sales/estimates/estimate_detail.html:81 -#: templates/sales/invoices/invoice_detail.html:71 -msgid "Preview" -msgstr "عرض" - -#: templates/sales/estimates/estimate_detail.html:96 -#: templates/sales/estimates/estimate_list.html:14 -msgid "Quotation Number" -msgstr "رقم عرض السعر" - -#: templates/sales/estimates/estimate_detail.html:106 -msgid "Quotation Date" -msgstr "تاريخ عرض السعر" - -#: templates/sales/estimates/estimate_detail.html:130 -msgid "Quotation Status" -msgstr "حالة عرض السعر" - -#: templates/sales/estimates/estimate_detail.html:139 +#: templates/sales/estimates/estimate_detail.html:154 #: templates/sales/estimates/estimate_list.html:39 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:226 msgid "Completed" msgstr "مكتمل" -#: templates/sales/estimates/estimate_detail.html:179 +#: templates/sales/estimates/estimate_detail.html:83 +msgid "Send Quotation" +msgstr "إرسال عرض السعر" + +#: templates/sales/estimates/estimate_detail.html:84 +msgid "Mark As Sent" +msgstr "وضع كمدفوع" + +#: templates/sales/estimates/estimate_detail.html:86 +msgid "Mark As Accept" +msgstr "وضع كنشط" + +#: templates/sales/estimates/estimate_detail.html:91 +msgid "Create Sale Order" +msgstr "إنشاء أمر بيع" + +#: templates/sales/estimates/estimate_detail.html:96 +#: templates/sales/invoices/invoice_detail.html:93 +msgid "Preview" +msgstr "عرض" + +#: templates/sales/estimates/estimate_detail.html:111 +#: templates/sales/estimates/estimate_list.html:14 +msgid "Quotation Number" +msgstr "رقم عرض السعر" + +#: templates/sales/estimates/estimate_detail.html:121 +msgid "Quotation Date" +msgstr "تاريخ عرض السعر" + +#: templates/sales/estimates/estimate_detail.html:145 +msgid "Quotation Status" +msgstr "حالة عرض السعر" + +#: templates/sales/estimates/estimate_detail.html:194 msgid "Vat" msgstr "الضريبة" @@ -6623,11 +6653,7 @@ msgstr "تاريخ الحالة" msgid "Void" msgstr "باطل" -#: templates/sales/estimates/estimate_list.html:54 -msgid "pdf" -msgstr "بي دي إف" - -#: templates/sales/estimates/estimate_list.html:60 +#: templates/sales/estimates/estimate_list.html:56 #: templates/sales/journals/journal_list.html:40 #: templates/sales/orders/order_list.html:40 msgid "No Quotations Found" @@ -6652,7 +6678,7 @@ msgid "Are you sure you want to accept this estimate?" msgstr "هل أنت متأكد أنك تريد قبول هذا العرض؟" #: templates/sales/estimates/estimate_preview.html:226 -#: templates/sales/invoices/invoice_detail.html:63 +#: templates/sales/invoices/invoice_detail.html:85 msgid "Accept" msgstr "قبول" @@ -6692,26 +6718,26 @@ msgstr "إضافة فاتورة" msgid "View Estimate" msgstr "عرض التقدير" -#: templates/sales/invoices/invoice_detail.html:85 +#: templates/sales/invoices/invoice_detail.html:107 msgid "Owned" msgstr "مملوك" -#: templates/sales/invoices/invoice_detail.html:155 +#: templates/sales/invoices/invoice_detail.html:177 #: 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:314 msgid "Invoice Number" msgstr "رقم الفاتورة" -#: templates/sales/invoices/invoice_detail.html:165 +#: templates/sales/invoices/invoice_detail.html:187 msgid "Invoice Date" msgstr "تاريخ الفاتورة" -#: templates/sales/invoices/invoice_detail.html:181 +#: templates/sales/invoices/invoice_detail.html:203 msgid "Customer Email" msgstr "ايميل العميل" -#: templates/sales/invoices/invoice_detail.html:189 +#: templates/sales/invoices/invoice_detail.html:211 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:316 msgid "Invoice Status" msgstr "حالة الفاتورة" @@ -12702,3 +12728,4 @@ msgstr "س" #: venv/lib/python3.11/site-packages/sympy/solvers/simplex.py:565 msgid "y" msgstr "ص" + diff --git a/requirements.txt b/requirements.txt index 95b500d6..e2801725 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,6 +18,7 @@ beautifulsoup4==4.13.3 bleach==6.2.0 blinker==1.9.0 Brotli==1.1.0 +cattrs==24.1.2 certifi==2025.1.31 cffi==1.17.1 chardet==5.2.0 @@ -67,6 +68,7 @@ django-picklefield==3.2 django-plans==1.2.0 django-prometheus==2.3.1 django-q2==1.7.6 +django-schema-graph==3.1.0 django-sekizai==4.1.0 django-sequences==3.0 django-silk==5.3.2 diff --git a/static/images/images/Alamjdouie-Hyundai-logo_I8WTQve_NvbZyE9.png b/static/images/images/Alamjdouie-Hyundai-logo_I8WTQve_NvbZyE9.png new file mode 100644 index 0000000000000000000000000000000000000000..53525aa282755b77c0d19858a9e5724c582eafbf GIT binary patch literal 6262 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

@@ -451,15 +451,15 @@ {% endif %} {% if request.is_dealer %} {% endif %}