From d6b6b46e3b5b8aec12269eb50423b30986a637c7 Mon Sep 17 00:00:00 2001 From: mostafa7171 Date: Sun, 1 Feb 2026 15:59:32 +0330 Subject: [PATCH] add get_ai_response --- .idea/RSI.iml | 2 +- RSI/__pycache__/__init__.cpython-312.pyc | Bin 119 -> 149 bytes RSI/__pycache__/settings.cpython-312.pyc | Bin 3479 -> 4326 bytes RSI/__pycache__/urls.cpython-312.pyc | Bin 1142 -> 1172 bytes RSI/__pycache__/wsgi.cpython-312.pyc | Bin 598 -> 628 bytes __pycache__/helpers.cpython-312.pyc | Bin 1372 -> 1402 bytes app/__pycache__/__init__.cpython-312.pyc | Bin 119 -> 149 bytes app/__pycache__/admin.cpython-312.pyc | Bin 163 -> 193 bytes app/__pycache__/apps.cpython-312.pyc | Bin 408 -> 438 bytes .../cityandprovince.cpython-312.pyc | Bin 35270 -> 35300 bytes .../excel_processing.cpython-312.pyc | Bin 95407 -> 104997 bytes app/__pycache__/filtersets.cpython-312.pyc | Bin 12371 -> 12961 bytes app/__pycache__/helper.cpython-312.pyc | Bin 6148 -> 8351 bytes app/__pycache__/helper_excel.cpython-312.pyc | Bin 14348 -> 14378 bytes app/__pycache__/models.cpython-312.pyc | Bin 33495 -> 46315 bytes app/__pycache__/scripts.cpython-312.pyc | Bin 1633 -> 1663 bytes app/__pycache__/serializers.cpython-312.pyc | Bin 28252 -> 34166 bytes app/__pycache__/urls.cpython-312.pyc | Bin 6827 -> 8838 bytes app/__pycache__/views.cpython-312.pyc | Bin 156589 -> 265328 bytes app/helper.py | 74 +++ .../__pycache__/0001_initial.cpython-312.pyc | Bin 11573 -> 11603 bytes ...ultry_allowinsert_and_more.cpython-312.pyc | Bin 836 -> 866 bytes ...ultry_allowupdate_and_more.cpython-312.pyc | Bin 1134 -> 1164 bytes ...oultryhatching_hatchingage.cpython-312.pyc | Bin 925 -> 955 bytes ...basehatchingcount_and_more.cpython-312.pyc | Bin 2803 -> 2833 bytes ...basehatchingcount_and_more.cpython-312.pyc | Bin 4198 -> 4228 bytes ..._transportingchickendetail.cpython-312.pyc | Bin 2515 -> 2545 bytes ...ckendetail_certid_and_more.cpython-312.pyc | Bin 3446 -> 3476 bytes ...lerflockrequestid_and_more.cpython-312.pyc | Bin 1364 -> 1394 bytes ...endetail_province_and_more.cpython-312.pyc | Bin 929 -> 959 bytes ...ultryhatching_pedigreename.cpython-312.pyc | Bin 768 -> 798 bytes ...nsportingchickendetail_age.cpython-312.pyc | Bin 743 -> 773 bytes ...3_poultryhatching_leftover.cpython-312.pyc | Bin 727 -> 757 bytes ..._locationnamecity_and_more.cpython-312.pyc | Bin 889 -> 919 bytes ...atching_transportingdetail.cpython-312.pyc | Bin 13690 -> 13720 bytes ...tingdetail_certid_and_more.cpython-312.pyc | Bin 1936 -> 1966 bytes .../0017_hatching_archivedate.cpython-312.pyc | Bin 733 -> 763 bytes ...ve_hatching_capacityfemale.cpython-312.pyc | Bin 622 -> 652 bytes ...19_hatching_capacityfemale.cpython-312.pyc | Bin 737 -> 767 bytes .../0020_killhouse.cpython-312.pyc | Bin 2440 -> 2470 bytes ...portingdetail_out_and_more.cpython-312.pyc | Bin 1837 -> 1867 bytes ..._alter_hatching_killingave.cpython-312.pyc | Bin 755 -> 785 bytes ...ityid_killhouse_provinceid.cpython-312.pyc | Bin 891 -> 921 bytes ...ltry_city_poultry_province.cpython-312.pyc | Bin 889 -> 919 bytes ..._delete_transportingdetail.cpython-312.pyc | Bin 603 -> 633 bytes .../0026_transportingdetail.cpython-312.pyc | Bin 4897 -> 4927 bytes ...charge_percentage_and_more.cpython-312.pyc | Bin 1712 -> 1742 bytes .../0028_hatching_goodsum.cpython-312.pyc | Bin 736 -> 766 bytes .../__pycache__/0029_apkinfo.cpython-312.pyc | Bin 2282 -> 2312 bytes ...030_transportcarcassdetail.cpython-312.pyc | Bin 3970 -> 4000 bytes .../0031_auto_20250921_1447.cpython-312.pyc | Bin 2363 -> 2393 bytes ...ete_transportcarcassdetail.cpython-312.pyc | Bin 600 -> 630 bytes ...033_transportcarcassdetail.cpython-312.pyc | Bin 5376 -> 5406 bytes .../__pycache__/0034_guilds.cpython-312.pyc | Bin 2423 -> 2453 bytes .../0035_guilds_is_steward.cpython-312.pyc | Bin 693 -> 723 bytes .../__pycache__/0036_driver.cpython-312.pyc | Bin 3031 -> 3061 bytes .../0037_driver_product.cpython-312.pyc | Bin 713 -> 743 bytes .../0038_auto_20250927_0848.cpython-312.pyc | Bin 869 -> 899 bytes ...portcarcassdetail_tracking.cpython-312.pyc | Bin 780 -> 810 bytes ...carcassdetail_product_date.cpython-312.pyc | Bin 765 -> 795 bytes ...assdetail_has_product_date.cpython-312.pyc | Bin 766 -> 796 bytes ...river_modified_by_and_more.cpython-312.pyc | Bin 4076 -> 4106 bytes .../0043_allproductstransport.cpython-312.pyc | Bin 0 -> 5264 bytes .../0044_evacuationdetail.cpython-312.pyc | Bin 0 -> 4674 bytes ...lerflockrequestid_and_more.cpython-312.pyc | Bin 0 -> 8599 bytes .../0046_rasadyarappinfo.cpython-312.pyc | Bin 0 -> 2365 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 130 -> 160 bytes app/urls.py | 6 +- app/views.py | 451 ++++++++++-------- .../__pycache__/__init__.cpython-312.pyc | Bin 130 -> 160 bytes .../__pycache__/admin.cpython-312.pyc | Bin 174 -> 204 bytes .../__pycache__/apps.cpython-312.pyc | Bin 452 -> 482 bytes .../__pycache__/models.cpython-312.pyc | Bin 4266 -> 4296 bytes .../__pycache__/serializers.cpython-312.pyc | Bin 1481 -> 1511 bytes .../__pycache__/urls.cpython-312.pyc | Bin 812 -> 842 bytes .../__pycache__/views.cpython-312.pyc | Bin 1497 -> 1527 bytes .../__pycache__/0001_initial.cpython-312.pyc | Bin 5106 -> 5136 bytes ..._province_lat_province_lng.cpython-312.pyc | Bin 1092 -> 1122 bytes .../0003_auto_20250809_1248.cpython-312.pyc | Bin 1392 -> 1422 bytes .../0004_province_tel_prefix.cpython-312.pyc | Bin 746 -> 776 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 141 -> 171 bytes 81 files changed, 331 insertions(+), 202 deletions(-) create mode 100644 app/migrations/__pycache__/0043_allproductstransport.cpython-312.pyc create mode 100644 app/migrations/__pycache__/0044_evacuationdetail.cpython-312.pyc create mode 100644 app/migrations/__pycache__/0045_remove_evacuationdetail_broilerflockrequestid_and_more.cpython-312.pyc create mode 100644 app/migrations/__pycache__/0046_rasadyarappinfo.cpython-312.pyc diff --git a/.idea/RSI.iml b/.idea/RSI.iml index cfcee21..a9f91e1 100644 --- a/.idea/RSI.iml +++ b/.idea/RSI.iml @@ -19,7 +19,7 @@ - + diff --git a/RSI/__pycache__/__init__.cpython-312.pyc b/RSI/__pycache__/__init__.cpython-312.pyc index de388e45c835c3aee9b25650688c901ca2afc969..611df2bf30c49c303d1c343ad7fbe7dc834b71b6 100644 GIT binary patch delta 56 zcmXS)%E*11mzRqH2yRZvnaFLdWa4ZUQ~EfOKhANt=&eT zDt1pPCvaTJL_$iGTg9akZEux0R_eu;BSE%`B7PPygM&f2UDsYR5IwDZ1s?|pCH zn|(8R+h2X@-&mFbWW4w;9{tP&z@N%O9nGiU#7_Z`2N)oLA=bnpf<$WLn!8%0g*6?8 zD59g{y1RO$hd={Ftw`^~T7+1e8nQ0;6*y16n7OW0Q6n8vqL5lfQt3kZ7RZg)hEe{45l{?03b8*){AD<0u}D*o@te+$cCFX zsWfz{PJ1h>S!Kl>XMJlJGpZG(J5~WUJcGzWWDAj2%pwjO$*L8b$lUe}MjC=8|oL$3>y3~!ZZBHMC$cDR7H|{|_ zxEI^WS@q(})w!=a_ebF>g?jM-9$bZZXitOeco<#ABd8CzqW(0Q2FN$~4hf86$G)ca zCu7QWcw(Wv>Iu)M7Ywhe$&_5yk>eq{Mq)$xMKs^7BDqp1&ox`9of>+dCt;y@Ja(HP8Du znJdKUN<0w>$7P+1zZsg5S*OS2TjE{9tS=A@yoTckUud6dVDLb%pM=+F*G<9eT;OE| zgaW)@HW0Ar3Zepgki@Ty?Z=MUx{(&M=v#!g2wmC0twcJLGZBh0NExE0-WIGz+` zDkXg>${kZae?aj0-7_S&rCE27_qYSWO*)whr=pRojxm`QNJ$YvkoCz#WKB%T^g1aw z9{pU>l4F!LiKMKr)hv-G736L+b05>BxTuu4Cu>*5l%!Mq^aLsAVyO8FN)U-wEV|@+ zJerc46!Nc3;F{URPdh`Npx_JzeZsVx_qb%6%NcYEp+%3+=@J&4p9%~7g3o_T2)GfS z>oP3mzBSlQx_IKgC`kh(kTk4B`^C^d_B}Wu5WN0qYI0c$C&PFnED7sUBBoTeCQ8eG zRhj$8&^x+7e3cuQoF@%j(LxAcX&6YIZ~z)#0`7Ov{1Wv3VQ9@cTWqkLyWP@*%WUg5 z+CtkaTPwSs66?q?W!jXH9&UWIQD_@{P7fWMyLOk0W=CfJ1=YG^cusYfo0x58i`h1A z8F%iNn(P@}*<{W$Stf7H8h6tr)72x>MA0nmxt*4|SlwfzWO5vzVN}=c zmi%0HF7M5HpI$GufAAms8~(3Y+N7^&8CH{Nu5iFIQ2^%S-jM>ZRg90=J74z=6+q81 z*Y$*X%seqZHWo&19MUCj_K5QqId6$uECf-JLj}-r-l@cWa>VgPjz5f)xH)1jTRZcc r+0Fce?1RGa^^*0*k=0eSx()*+tGfW&D-1ANGYk=yi6Ssd%7gJQ%!Y|J delta 1156 zcmZ`&%}*Ow5Pxs|y?D*W@h4!6fuOi4i;07XETNVU15Pa5;-x67sH?SSZLe9p$?hV8 z4~2gL?IBWysw%fCQl*Oi6{#YTo~-Sym3lUfddaEJrg4zk%+t)g-|x+gMl*VUrk;=T zzc37qh`e0!Ds&K`KYHN3c>le;tzm?oBR~QI43vuZDS^VhyF+yd4hqSX?0iXLdeR&^ zeKoS#^k1Rt_WwA+L$V!B_Iljaz0U_vUrim;;1q_yCHU(I+%K@e5bq&AK)jduVekno z&;+?)h*I7|!4BS-qy z`8UoiK2BrX`GsUQw%RMulv;IdR%sb>^+1UeV#ipV@yK_*xHzo0DS39a3N=2&f$t~b?$&lbkl5|ed-}&b6E^--i z=G*?k!z6hbK%HyJW_wst-Y52nbH@EWb^fC_hd11$wg?s5scV{P#~wU=dUW`uRMQ)k zUEWx%wl*>k=kt8K9aI~dX~>+aNV>#TRqX(DC)u3s%4V~R_pBKGDW!+coAl3Q0G@WZ zVVX~Jb91Uzl}M&x=I&?iX9o13?~l>hOy)!Mha!DC*{f}k;vX5yaXU1KxHhf-uvfG3 z7^Y+@)wy=!YFQjqxP1*|)!?FtZ1j@xu5g+P~p+J<>r%`0#4GQW@q_=+ny9hmU diff --git a/RSI/__pycache__/urls.cpython-312.pyc b/RSI/__pycache__/urls.cpython-312.pyc index a8bddf0928bbeab7ed85e434f8394ec63db0d38c..95590744b4d9a28df5ec6ab5c53f24e5f1e432db 100644 GIT binary patch delta 59 zcmeyyF@=-+G%qg~0}$MtlCzQf9kY^wvsFw{VsTf5KM6L HU*<{xOnnuN delta 29 jcmbQj`Hh47G%qg~0}!ls;@HUjj+sTs*(zqTG)pA_Z+iz) diff --git a/RSI/__pycache__/wsgi.cpython-312.pyc b/RSI/__pycache__/wsgi.cpython-312.pyc index e72caa24b3afbb81a03358c1de182513c69f169f..852a17393e5a60512e48bac35dec9ad4631f6bcf 100644 GIT binary patch delta 59 zcmcb{@`Z)_G%qg~0}$MtlCzQf4Wp8QvsFw{VsTf5KM6L HZ^mc6*IBN6aZMV29p2) diff --git a/app/__pycache__/apps.cpython-312.pyc b/app/__pycache__/apps.cpython-312.pyc index 71dcad53f7eed616e4e5da4f128e0f1f65221c07..d544cfbd229d3e47f4391b065a33ec42b24b92fb 100644 GIT binary patch delta 58 zcmbQiyp5UrG%qg~0}$Mtk~5L}w~~RgRZLN0abikkVo`iSQGQl@N`7*7YEeuOOmH$6 GV;=x7sT5EE delta 28 icmdnSJcF70G%qg~0}!ls;+V+&n?=akDrT|$nd!-7ChpU`yj%=GaC1t|M(#&ZO4iO+F-3{Ri7AzdMezki`C0KP`N`R-MKM7z L!Ob6|uId2*yula| delta 32 mcmaDdnd#VMChpU`yj%=Gu-b`ZBln{y7FlPjn9cmrSM>m+-U-$K diff --git a/app/__pycache__/excel_processing.cpython-312.pyc b/app/__pycache__/excel_processing.cpython-312.pyc index b8db9715ee9c0dea5363ef706e3cd8eece7fc0e1..b2bb30168dd1a79dce460c4b00b979a65de9ce37 100644 GIT binary patch delta 22739 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 YOK7^2zLi9Y(h!UY*&j+tF1gD80zpb4U;qFB delta 14538 zcmeHO3wTu3wVpjmCXdOJFnP`7LEaPcBoM+QKmd6^1hL{Mgn={U!AuhNOhD+wU_Vq^ zQP6$$P!-?3f3)ZT|I+so7Yuh7KA+u~gb zwglHO+b~z6EzvdHHeA+4I8Cl3Taqi;mh4KgrMOaUsjf6znyia-nq3x~#g%SLZ*XPU zGF+LqOjnjIOIAiXN4T&mm`x$iL3PM#ryheiK+;ht+yJ)Jt1$! zS((qcvaQjn)U9oE@C{v0g=Qv%E~cRplaf*%|Gh~cX6L1iTzr=NS?DsbA9^E6{3)e` zIfW%PEi_}=_#4I2)Ftc*@pS4;wm@7=eIsHM$yu%3C|*k|VJ2}gEk8GlSiaEt4v*bu zSl#GwDsG-8S&H3b=OIM$NHN)5orn4JMcSQ>_029vvxg5uRU#lBkN_Ai9yGghvq9zn zashdOd_V!93{WmgEVJ0dVx6VRa6cGAJZITt*i57^RcuO4jpj#)PNIMAmki?Y2~!tO zf7PJBDY|Q1?hA}f7hnD+y(>O{aY%RwpYDxp8YlLxOB7z~+E8x@zeS8FtP%GV9ZD|V z)4RCZP2R}qy6tS)bvj*plBgJ&9Fo*D2}&Vhoh9OrBdsCH-emFR?ZZ1f)2LT@DI@nV zjSA*@uIjDUDPf(Zeu>U9e^*zKjk~Pu%)Yjwd)o!)3Jrf>7_wJrSbSNW*ipX6pmorm z;!RO1QmN3MO4KM&H!-)KR&8Z_8gWKn!Z8zP%q1KPajK+#I#FXKmElcQD%VV>>C5xX z*80)uyy@Q5jYhh!>WyJj=_lSlF725?LZs>!xg%1rZ@Y0)0_Rh>CNt&-t3`H@03fX?tePHkxkdA`y9;N(SIHz+jBg@bC{!y zQ!W>7hBvzDTC}ImtY>i| zdUPzi4)&m+(*H^`o#%S3LsFjHImOR!&r@ofZh)+5s-Nf0Q>INMVQ*g3GPz`pO?9I7 z!!+^qXybKx*XXQQEzm4qpGowEdAQx(FhjG7O{A+C$u*#!C-6mF+uZ0`V0Sru`bLEp z63ZIH$Dn#FpjyO@$&bGpBu0y016U%i8dGe*bMYUD^v<9AkpxyfuK*2+-Au~R&%NUIu?y$(_fXRffQjd)0H*=( z0Ny3|Q~}ivxEXL80CtMs4%hfXnz&pK+bt+2(N9IUC&`ZXzjP zXiKwm1BZ7dKU`nW9rbpPgNLF4Sb2`O!xzR|+L{&q3K()xT`L#Va9OvC>OA~ssQXty z1mH=)F2HUAYd(Jp^d5lp)w!VZ0G)sWK)(3pxSWn>LGA_Y13U+iPum4*Kj7zp1Av1B zzL-`!_tZ5ib*owwhuarncRK4<+PT{owWg8ChL$$B!xt(!M*kx=wlvGh_9c2+Ja$c< zVj_F9I57UcoI_|fI!LyHzliQ$1{@}E=ZozVXeDhHhbNegpA+YGa90|-em`NGUR`ku zGpVk5Y@GORQi9>PX?YiPC1U>M((vD=WjtK^(^9c{@|>k+>jho7Id;q3^TTxJ{6}2f zX`{Ey?a40LRo|Umbt-$p!4W5;GkXdv_s;JwoO-Ho<`MhJ=)4~5=)KFktkv zrbKOtrY@6n9;xY0s@P)e$tc=2wmYNpR7UmQwI?IYJ-Ow3)4OvgpURznq~c`6h@QNP zy`|lGwWsoC99eWSBD=?2uq&q9Ty-)crN>gZE2G;|-PJm+oUx-_k4}F(ku4UjOJ6jO z!B8Csyw)}L`q9kr7to8vT3c;JK1fWtFT`H&@EI{pjm`CSR0xXhtdP=PTk$*F+TO_Y z`WtH4Y@y!pO~+-7(5G_U!bp6ISV9^JpJ7@#uHB*hMsyjrzESZsa74F!0VHP->}I}* z+ImM_os$-SC9356-wFz=-lwmvxM(Kg?8`k*zQ46+f7V$Mvn+WIjG0eAtzvhGFVx+* z(IH#p3!&D}EcICoUua|V>K1N?%u0ZKq1K4zWfqnr?pS6qG=RHSJiTmlG}gCvt2gS@ zk1|+YZZ-vv^5zzh)siOU7Lsw}cC)hhX2{?`t_S$wkmC)qiD;=Byx6@=5pp}JgF zAr?87t@Tu!Gt%6hw3ZYBpTeCEmH;){-F>Jl}0%@KgPKHM07Vy?&#;T z3V00af*cSPeFpAuwXAald9us7pvR$^3<$WmM^StXZA7o)4stei?god$!yg2Hr%ue(|@A9 zK7+;o3&pym@I>zU01Gzhs@`rd19nUrCd_wd>(E zt&wDh5 zG62HGj=Ks>lmw!v3P5Qe9ghLTig)hHXHnv>cYR_o62q5y&$c9yxjj;ZZ{IleGERrb zK@Coa$AglQX#%KWfa_2}*&-b`0V>6@?d2J>!AwRu1&|8p^(CXYStQ)Oqhkd``n-nb zP67+Zj@lsifg&6g&p=a|07^9VW=uwal8!@jEs&FrAr}?W*yn?i2D}iImBkWDt2`3r zVs%6%t22YVlEvJ6Pm$3^R)Uv93a(@js|kf0p)fk2Frejx!g45#4JZs~J)y7y3ga~e z7{viCC=^ygp#};=u%e_;q(GroDgc7q490mXc+&xOI`zwPwrpU(gFAQ*4bFhd5Jz!8 z6lMh!1|7wpLt#!pVbD=L2!(l?!jMMs5EK?bVQ8b6_97InmI?sPAJG7|O%QjynJUU3 z$nWo%3NPoF_#$ZEg^`!R(RNV%Hb#$wcO|dH7o!2cGYa-a9Z}GG1P~ACb4HZoY~e0@ zaQ3pFXBvW2D!QUm;@9Agmat+%x$_A)rz;y)vFX9&j%%U#1Hg5F7jf51K}p|wJt*m; zq$|3dkJ8)|)NByG0dON=8Gv>dw5kE{U3>*7JK!)C-9~P&v>YXwRaES|;L~Y6=q@Zx=t|sO8Dd<}sPpQdV0W=56H+9`cz=qdJxWwX zl!Zh!C5qa@MDfFj(W2p*VTn~2W6U|}&s}3tsUQ}O!rxVQ|N0O7GVkL?lCdJg5)R*u~@L+2t zFC|$??o9F5coXWdB;{4FQ&Jye?ZZ6d{2XsArL58vvtpsYbS0xRb5Dd;$8`0&_C(Kw zAjw1}i)7O~Mxc7)Po*Aix%~G|IGUvpl-i+yZv|!UG(wvmz1=JoDj_G&~m)W zM9Ivc%(z9V=@ppN`zsUp#EZgETpU^(ylBG7no1~b$CR&oUom2OO zlL%cjw#22;>!5QLssyQPH*IHIEup%ggnzRC$%A+)ex5hAK4hSEt##y?D|;kRrfrss z!@pe7j@a-EV@G~_wlZBAb>%-wlaHbY%emyia^xeRU6XQE=Zrv#czej!xXZi>(s1x}%q*`0Iz{PqH6Zqqf8 zO`PZFc?*>J*sXdC)Y^Jx3W;vI&VP0^zJSh-7A}xk|0|!VlSk}5)#=-r^J0;9tT?p- zHKl+uz$k(xGHWV+b9{b0It@M?5))p_pZf+eFCr@LdAg_b?5$b8-97tzp6YqBXWt;( z=e`}VH9TFb^zFB=j}B|2nDT-c^~N~kZIJ5C zTdsR!V>-VVO>YACKBB&_YdTN5T!qvQKyPmEwl`<=-$E60Bbpg_yJUh$Ab)osiYg!r zumkW@KpH^iw-CDb9#(;pTQa$=>bTs#s^7Ls=JT*pd?9X13nrokWcKK+Kv8^Q?p9}` z#~0#sH1j7=HE^o0Flbjr>AZSMgFp#efS{9xd=zmWp{?hqiSk8I_N`8SuCf;u`vA`Y zUV$It;Opb*(_x4Cr-!{q@fg>hQqh|wuS)`n(G02@#A*J<3 zhHGg(i}>5?mS~Qb_(K{-cUNTB;S)BNP_y^C?u42%2{XDAW*k|6I$@zWkx`zRbUJ>@ zg%EvO?3OuS8+7r-yXG8R@=n~;GjTJ!<7RG}C0cjpi6`G3rr#LS^^14!V{C+2e8x8U zgUswlM(;8_I`MR7`I*eB?#!ya?$enQ4%T*OPTD@}19Q$9b8)x1_>6f>w|UIoh9gm@ z&2!I~ukJQqecHTu`*d;O{YK&H@q|xfBVx>7&kzrMP~DYv_G8AfMacU%{sWpn7k(AX zrlx11X_0kyt?_(Y_{Na1>FoTvaIx^*iZFhZrlRZUxtk}Bg$eS7@)mj-y5z(#Kdotzv~*QK!$#$(_W0j%m{X{=Ztx6?;bp^ANjo4-XBzL=)Q2D{Q& z*TNg?8=Lu)G&6Ks6w=b>;U}nm2|o$-3V<{dZ;OgoQq_f}tTkzO$b!IOGMyG~gHX2m zjG0;J>n%!sMoe_tT`Lv)q>bfj_ZVgs&mIqF3sr-KRhQxkck6v2YaAPV;oL#_WVgc_ zqOIpcbQ8Xam2Dg9l*UyavLvHbyM-kV!?ui10n`#$=u<}Fw1h-Uw#)l)(kL;+fdvNxEp}?#TVVmTa>m{9=wDOX>|F|QK>+|0g3Ql z310+#^ss6TrQZ1q;?`e}R68=*4F=5s`%knmZQ8Nfl@ge0!WdSiKMuf`U!ptIDkhN!nd{k$mn`7p;rnZ1STTO)(@E)221tJPA!%N?E zcp97S9{Oa%%B0C6%Oy<#%$J`|rX_2Q(#-8C+|+5nJAiiq?*S6zB9$v#E}$=%8gFJ> zD)>QaiS7Xg+Gp(T7hjWD^*-k2Ft^$(ut_^%|Al(e%*N36=&qFtjo`DX_v}1ycgEe7%5l#GAHX%Fx%b*%BLF3zi#$N~3 zco`c18PNFKpc;pv@%MlR!$S>ZNsLFJp@*1u-Vr*e#!+a51vJ73)%YbeA_5vwgK8Xu zhB2TKGpNQZ(1;Ca#1E?RDl`%T8i|8xIFCbPxYWQ9Z=z*mog5UvM`Inyz^7ltz7yh? z3)@qmA!GdQpza3T0}$%N)vT<;7mAO?=<}8q?&0aExLl0?5Gn%E{lh5Y73Yrt;s6s051^uLOmN= z9o8D{B`pId5}Z0Ma8&n>W7Fe5f^;qbVIu!n4IR&}>6iriFosVamh44wA3$ygo`EPb!@%d!0x=zUU?Lkmb`G93C^AMnd?N9d1n<$Q zjA#*}#~|rjP=Ppe2AODBXD!ft z7VJt$A=>1>MllYs6vcQ@Hc$zmh5?qNSO-`^usRS}^0!bugm_YplN@jC-TQ@+`~+I* zix2rp6wB24Z7e(YH0XB#?*iTfoB{Lz`XbEbmI3X3%sN)XTGhGhSgz&(hZ0xfMn6C= zT4+hdHoP`H&-Co0@6Vpi>Uo~R%PnVbvBqlCCgaHOp!FMQ9S8LqKu(}Ptc>i7E7fn- zvDPsr%*(3~dj?v20dlUM2X%rftOhQfru3IGdU{WNa6NmmK+>d6uNxsbN|8{0ez_yPf)*YN8GAr-pr~xHemwC2Dt}HDFkO`9zyYoR=dAHfUxuy z{aj1HtHeQM2S8?oIx;}s59qV|yc82(1_+q^aukO{uFvid+3ZVWFU@`tS{VrlMNhz6uxFgtB+1( z$p?;XVy5U})(ZK_IQ<`h7VXQvN7aogn^+go(&}h#-Efmrrtf@l{$i=yv%%?bOPB78 zr7x{YS2yBQS<2A4wH%@hJYsN%axSnEeDM%$a5!5jl_tMZQy1)DX``dSc2RWgbZdc! zj8~GOE0-5$)E5V#z!z}p&K)ePBV23D&9fkU1n@avCEjv;P#_a$(*4ONm+=ul3X#nO zly9MK+nkO`yn)7rr{|exh@|t8;y*TmG(Y`8Rq!EBr=BK)ZdG^_8Jj&xU`sI&4Y^{md{d45c3>;%59z WjdJ718QElHmJ7CIZzxNVxAotsq?F2A=Ar|7eoUIKb)u1=i>(c%GhR<7#wvEE+LeN*%@rk8pB@wg@Xy z`;7*^c2URD9wH^A=#WIhgCyP;j>aRKWzzG|9g!X~Rq!r))>Q7VfrOGeKr@t&hT^TVydd<&SX}&WCse9zDh)#u$*c-o>mp*n2yfVe_3B zvwUkN3^FOkc}fsLfM#7klu+e?j(Aiib5Ugpz!Zf@8QWDX&^`3JeP*D2-8cfV5eq93 zEDYVukrBs}HgtrU&#XM1w+O9p*3HP9Pr}X!6$`k~^mG!N?zD49*#^`eL#zU5MhGdn zAFJzVSJB$(*)?Z(N-v!#%Ci6&$0DA?LUsW%vlw+n=Iikwx^2yRC$RTLLya>|ktJ(& z3-!BaS{37HEKWDLGy5|R)_keg+pOPXfQBsm;oaa|$Gx9uL z;w?{~^SV^G_Z%<2frIwbnzCbJEfz;o6J^JF{s7%x5xnOxDr1PZ0F44UisfU7cM$I) z4geAYpc;RK&9Vck!?WpikB|OdRzM5=J!>${2+(Yyw zDvMsA`cFeu2X;#$wj%V5vE4$3=(4(CU>IATMm&Rf7NH$UNUg zU4gE}yRmr>;w8k(h*uE0zgp2?JlU_3p>Q&$s4=+CLSz7aZeVBV6X^UKJo<63#S6xr zbKD`1AMy3%O`P=*;%)3M0$4&a85x24@O-+rp|LayQ47O+rB^ob(ET{HkP~#WUTI=k zHs#B5!jzdWo!@b~r=e$EI;G{)Qc6zYgr^bb5b0=O=~KjKhz}5-Bfda&XRcsi)T`M<_u?&d4?UlwM|#2pJi+IRDDA?1oND#3pm#WdN7zd zRTp5YcKUBH>DM=5p3_>GeFJDPK`q2lPml)_B)Dz)-g%eN8lnbA*r2eJn=}*%wwoLv zeQ#X`4-U4l^QDJQE9_G?Nl_&nfh#wUKep^TukLHkv&<`K_zG=n&Mfl^My%AI_e*2U zxN=)JhctVGGTXy6BcCMfV~NRSB>zC&C@e2=(<_ywT3 zBJlB|5-GA7UU6(ynlYYKHS?CF6jPNY>X7EnEIBGCR3#>VP0SM&_AI43ctsUIWQ3>VlD_|qKGJ~%+}aOU0+98_; z42*$(!R35Vf^U2<3K&UjKtsfdD1LzO#SdteXoALQh*6Zx=m&lN=ay@`l_vMM=lt(^ z&Uw!B+;h&3s$cdyFE%vTB>J6LYssvLPdR<^OH;9Kw=C634@qg`gp@X^hV4P#==XA$ zY;n1SZYI6HN_Pw0Lb|m|Zxp(XbbFQV5xRr)h6>$jb&}$$P%N${(bG+OW0l@4bPws? zD!oPMO{6zh>U>%@TU$t-SE;&uqPLH9rAk+X?k7D^rTc{*Bt4|-eRWQ2D=A@Jp-hE? zV{$z5Gjf}V%OxjM^M$?vmK;%^$+4&7R&F#*@+s4*;#EVPZ1i<6-^^uGP%} zFBXOCF(dP%5deZh=1Gs&?1bs$Ig?_JXyy{@1N^e-klf6-n%|GjgXjYm5)#MEvxhO^ zU5FpGhvvt~ROrcL&}8$VxCp#Pbwi=bRglvI(7m zZ7@~=5nvNPw`dK&=G^H(4BFRKUfDLj+tog2WlBH#0R#gBaFWb@1D{|evdKW=Y>iS>_n@^$l+;^ToSSw76K z1-n+ifmd$=ZxP}q_73c0z;WONaF~$CK@h=@iQ)EAbG!q?@qtjv8=+<*9$*87`=d9VCf2w)VtIwg;01wXAA^!v*t-Lq!D7_TpeM=ON~c zueM&4we{vjrY0kQ)rGM+nfQE0Vd>Qo-wWHtUu*9QkKxTY@GS5gFa#h$?0NoE`=nU} zyr1Xqc*0nYvAIClfgy=Ml@GCvlpP8rPM55B1mG5Ln zFxBh8+vtuXMx?f!TT!aJ`R}o~FHL#rW6A8GYLuz_d+<3);ERGSoW<66in1ANl`U^9 z533dIEWaMxydgqbA|9x$6DjNza2ogo(AE#@9Plad0dOAp4EP+l0Nlz@_(QbxG_fzx zi~=IFXGQhSpnaxzeg1g4dS}G0dbjiY+1nTYZj`soWj@_iW6NAZk4yaDuJV?-B!=3$ zU}seS>S}C7yFTvxugQ#3TJ?Ih;8-wu9JMaAEARu_;Nc(x7h1i^aYG_#N7WS(L2==h zrDF5wX)M{dXNHpLOkax5*BUWlwDM8)9hnPj#8m5&?YRm+U_o_EbQ#p&x(x6-9%4u7 zPsy3yPM=b)Z$Rw7JTt)m6hFCm<(`sN+kU-jf#H4^cel7P#U&=L9C6NzBU+q~Oq^L_ zKZ>%7dWbZMxWX7E0<;nSwyYe5Ng9yJjT9 RO@P0+f!-}FWoxNgY8A+?Tyz!J2lZiJ+=onst#o>@lv=m8d@_pGT5%utKRrx9#XS#S z|L4D*+kgK5^s%Pjx4S=bx$Fp9YB(iEN>91VGJm5GI)iw`Qxf6|Uy7rQKF!har6nf8 zax6t;jATlfIkQ2tk|kl~tOjk8YzaGOH)yluNH{sCL0cqO!p*r2+A4VxUe25FaXzDO zlS&ePF5@>kb}5huazTT3NTEb2SDGl}$`a*Vd7^@=F!)ZXGEv1ZHO;9hIqeVzQh#9;cEH7F~rsJLBOB=XoTHAo@40$3{lUQf}54bKxIE1XpD-K zt7oZO6r(;*SC#33c1hZUQ~c6O8n`^nVnbhY0G^Cok@oirjt z0a881RM2ro{lHb>RPJmpLUC5TBYUc{6X}*)%n6y<{mU#eGDoo^{*(jN&gErWxKeZNEgH zHdlDZStYo{XO)opJ5N<++Hr|4F!!Q}bJyo&$q`Ct`Pi7O+lNI-iVmelWudEgv;;)j zMeWb?$MPrUC&JpB+8gr|t4Egud;VA2746-yc6I(G!VEWR)AJMB#qj)#pmkAuO}i4Y z=q3fn6X+paRFjOHy;uuMZmf>g?Rx-pBcj;@P=Ik$f@a$?Y+HwqHCL)qPx2zCf$OC zXGdZFIs?0uGIs39%`vd2<&(*f(YFpoFzfs$kv$thCw36~Ot4^)TcHb-s zO+7bTvf|w1xsr#V>sU7DsLwg-=NzkZj@6g~s9Q%cUH>vH`3aU}E!R%l zdMPsz;yr3puuNqgZEOp4)h}!zwcqhn(@rAWO{~3QQdFWNsgwk#8ygfbegfDs3jn*E z#fFzY^`DMCREyf;?51|BS!bxWhuAW3JUWX7c?9qKu~EPJuCpDC{_AXT>;W zaAW(RkW?1cey>c`t25pSYO}iEx0>3nPWXo1_25LO64+R$bh=~*wN`zsq>`GtcBrI> zswHC#EaeyIkSlKFq7z0g5+S{)Z@KCjI!&vexE}VPV(Jm8aRzu%CfLrv)rVBUn?;JZ zK$;+-32mHBv-e9b<0c-Bn-xz%3lfl*q?4d6Z7Sx6aZB2QH>53bzag;~#~imR)8S(X$mrvYZn%P#)k+D0(9Xa zLW%&N2LK{0CcBE`2uc|q22!_>OApCrw2kyGXm9k(4Unj&=O?wRKpF(3DMDV!pU|%6 zPXKvf(--f(auA4>2bvl;<}WwquOECcf;WSUQ8G^ca{fyGYW`aO&HP*WzvSP}zmvbN z+nXL*+uX9Qb^V5o5oZP;0X;lM;3xqjdY&Uxn!q@L7YO_kKsOEI)aZzAOT>l+NRUYx zZVdTIB&*r+OGL*EK|Crcc!F3N%bX+>@uZta1e_2Re3EqRICeM_EpUu{o0MfzQ{b-L zX+}WnWrKneUCOEj{pdgnvff$HCc7tp1dv6V%aiT;%pIC@*W}zav+i(qo5ngOcD}H4 zs^M(>Rp|!%pyu@brg=(HH_kY!vyW=ljOV2DxKp#P(Of>w6Zq6wwt%S09%_MMeD(z^ z^7$8h$QHbfY&LVYeIbCHu9L0DTfx-j%XZy#x=-#nzGEiz)J)&OS?AN)&UuSd3s#&t zaO%K0pZfHq{ifG{#&yayQ`2%;n)P-}nlxYKoUbnDt2-ym`c_Rgo98Vqt!nwC`Gh>x z^6RmjwOn)fvODolU#l(Zr*tK$>`=%vOOZ*XDY;s?b8is50C`5F6p{js7GH|`A_t*q zwix+)kqs%1q9nca7=t3ecmNlqxXd)=)-3Q4m@t3|kJoVn|WrxjmOmS&0z zAd^-9%2a2TCN)6!!Si*Td7jyO=X;nsjE*pU=r9#A?Ya|eyr9HH>1Y*+hcFa4JQf~_ z;aDOp%3)IRL@e-yI%~)4U|2|g5V?1&WWcDBEl?%5wm%x}>C8N_uXAs&5m|T@(YJLT z84yND$;aec=rxAHIxyI=tGBafSNr49y`4QzcJ@R&dwO>Fz}0R9HDh*0^y`#RtN`Ic zJXgg=#OP1ObOxUXb8>g&7Xh*eg3#$dx%v3!lMf$%_~q7F$MWo>^A68VPwC5LGb`F> z%C`Q!b*}qRuKUmp&)|%8aDiq`9Cg!E|2jMCX`Ez_YZ5|cMA;BS(K|`BJb6;FGn9Nw{5Lt zK6tQhYl!*KO9B01$ONdq=WnJCs0;q`RYny`vO?j@lOzYTISLHRoX*lLQ( zBTpXL06#|6AEU^}sOw+q{?cm8wjA2_35uy>rIqDYYU6DN(JlgE0)YiH@V*SGe=6-T ol~W~OZUCx$jTL?fzpv;giX8P-h@s41J6Wn>s`48IA7knN17M$@vj6}9 delta 1819 zcmaJ>TWl0n7(Qoid!4qvt7^3DqY*O zk{TcE1NFr4CcYsq5lA02#s_^iQJa!brt)CIi!Y`I2$96gIcHlDAx<*?`TqMk-}z@Q zcF%T1zLVu3AWwC_-^|44BX!dy2*3rP107mGsjX0fMCUBd<`o`N8*d4=sE7;;mSp=B zAH$;Mw*yLmVaW>GAtl7H&kEbJA~Wo_B6d`X+A$@@^new&6H0>Npf#PeQ%Z^{A!~!3 zR?_xHWuslE)Yt3Ze|hb|3*x} z+{RyM_>mm`9eORCml#1>(J751*DMwe7_Meop43-1E#1jM?B}DR3^PA2rl7mFF#sn2VM>SfB#ih30PqJw1D^M#(mJQ}lTa6Q@rqOxYh})a z@TPRK&$mwT6z9t84JJwa6@Qgmi(EJVYn|fV=(;+|yD{9^keLpwXAFZ}@Q4>2Gc8LU z9WOgZ??@%Mt7F&h_KxS;cXj5t@&=N;{MquQmARF<<*Qi&Kfg7*GI#6!a)f$5UB0w@ z-MdPB*H`9pq9?jYb4ERWuc{Q38K2w!jqrRcs6j zo(~ysmJP?nbyD**VHRY`^Dx!3=hV<}|0%6hIyGuoB?Ij!O?csg;i{)KMEbljj&dY8 zMP6r$h#9cz2g!yDZS!q213x9w=igaMZ2si%Vxn_q;7%xWGqiOvwDo4FZ86k#ZTFY@ zkH@v;m-<%$XF_R}2jTX+fDijNKahYw_U_s9z9nDXst<^PdwvkxeQo3$;YRe}&FG=U z=%IzIZ;X?&q$S#f=L6}sofJ}PJ;Bl5GEfKA=?!}R9@CvTqS*$b*PoNn7Q7VbiEpRA zfJ@G-=1BnBi?;=ThOG;M&M6ZPVJ_&99EUxiCj4>cUb9dbI=N1(Gt(F|gdgIJM| zlE|t&@Zv#QH*%WJzlsdLaOl3WY+qhDj|@7q1(C$h47ei% z?*mShP%A#$)I~af(e&~3KH@_Asdx&}l$J_zc=&L)u9aLej&#^fS5+OFaF`0Zvz&;I zQGA?=*Qj88o}lO?5p0K#F-JYrA>$jFxXfy7L9FPRg$J2#c*2X4k6;Jk&D1QjVju_6 zp=Z;N_EN-d;2cHtl$UE8VI(~C@3qJEvSoCkkBE!1<9toTDi0yVms;9|&fB0Hue3DQ n2jB~LdBDk3WT{B4O2qbC9gb#uQUa9jMFiM-zVSXF3p?uHKq{~{ diff --git a/app/__pycache__/helper_excel.cpython-312.pyc b/app/__pycache__/helper_excel.cpython-312.pyc index b83ed7b7c9e27f9b92cce4ab0847b8d794290605..0242cd04169a7c5f03254e7de09dd98dae0f823e 100644 GIT binary patch delta 60 zcmeAvSXID%nwOW00SInR$=S%gfJ@23*(#`K5IJeO zp=sI@PtrI&+0;JCuI<=uNJv{}Pxmz5b~kRf?V^aT@C*I;oNl+-O*bT=o5bmU?wuzI zfw50J2d?hBb7$tx%$+-T?o9NHvj2QfX87mSR2>KD#xs83#zp_`=q3Tt4sCzXXnqF;(wpZ7oV|hxyzBi>K zh2biHYOkTgz;LzS*lX%AFrL-S=Q$a-jq`-Gk8>WK*Kk>mVsTuDnUVECO-Z6! z7&R5Bh9qhRqZ)x~N}^^mY8p_}lc-sYY6hw$iE0foat4qylgQbOngvvA5;ccWvw@nE zM9pQ?T%g*Ls5VB;18RN}HIGpXfNGCX+py31j9duhq9o=5MlA-aBZ+Ds;$6=7aHv{c zyr>m?yF16{(zv;603n;BSqb1=J?E<% z8U)d}I${S%jB#L?=uLf5t}0^R6KQELX-p_KF(F7pV43()_9dQo(LioC{~#UBUC!(1 zcXPK_q(ZJJ_XPw|(dZVuBpbQ+BS0BkDq=%C4?#Yyuw`d5Ayn{f$8=hfB!@m=%jQSu zfbI1%l)_a{im`|TffGRr08zKKk9d7Y0z14z#7KALWu}!NS=;ChHh789>>EB&{8N5)P>TM@J%*oB~KBER5y-hr}`y$JRJNFF2B6$JGY@7k9uq%qo0 z)6%jhN}c-*TRX6j1;8a4n`)AY1U7IPh{+HPkY?vjQw$;K9 z(`s{uVp!f|rN_6M>F&Lm`6`dvqrRfK9BXbwF{~KoI^&hm6@EKkN(&C;$a>891DQPz z`d&??>J*rsMLJjoHN<6kU)Y%r$` zD#O8J35YA>`1~(fjdWI7O`HmqIfd2nFP0C3##hjv9m_F6m8g&`LDm`=fs7VZMwWyP z32b8=8|J?981#$xal^8g`LFUkH^dclJoK~&HF;6$DZsG^X)nj-bwnu?##sc^V3vlJ z9vzAi=UR}XzGIF)Ip<1B+*Xe$4sc`qQ+rOz4{#@VS86K>xuNo{1K9HPl^dh*|AhVB zr^HM4>DS=vb@&or1>}wCSKfUJY){Hjx6pOe7dX<{>GOz60c_7vqJYBWIDq$Xr(()_ zNkzPfcOy6gKvW#<8z7>p*B2NNyrL@T?dl77$l(w&Fh%b|%mctxNRA?ok`b&?wAB0k z_eqvA*iPJmV1FMGM0MZc9&eWr6jj|mKbQ|u1|n(th{sDh4-bjTZXXE>OfFI50sDf6 zcd=Bu``f$$4_cqCZqkblqER9N1bx`FJkWPSRCwG&K~Y|R#4DzN9D}|@q(rf*nTVtx*_eUD3edjITR0$`N^Odb zJhRxiodo}Zrw`kzLbEcx)-Yo!i&|EMEi0my)nUu(x7y#n|JwbN?FVK#@DsMlCM~N! z=D3U|*(U&Z%RXcf^7hE~%P`{r%jjeoos8mUlx{}pmW^(iG3Q3jjYHFx$R=tjd3Ho4dNe0^n8u9x}2(}_PNzc}X_$R4#-G0@#k?Gr1M2P9u!}R;>_7|Y#A@?F!g#b;DsEbc*vxlx(ztT)LGwPN>ch`Vh z@bv}AYxLy$b*?wC#GN-Are+AfJTbHWezh@ESu@K4AVpa21-9!v(0Emm%XXa?k;rx$ zX^V!>t>mGJ%H~&PxwzSo#A@8?k`e41IS+u|+L5zy(F)P-@cI2seFH%+xrlt10Enru zt=GsrA2d5BgvXHV?DzeyHaIFl|T`2Yo3Xy!y68|qFpMFh?cptr;u^m)7z zWe!UmM}W(Ri~|tm?jtd0O%42an!)B^Sz-!Rdsvlsnm$_BQOrL?Jsp1xv3Xi{=Xqj2 z6i4$^W-4-nyKLl$g`VT%8n`AZ3 zAIP4_?JVTez(RBHp`7gmeI;U|ABMJ+r8R^ck{aa#7R0SMY2%>R4w?Cf=`Rl1 zy=-7pmmF9&h-{5BdpEDQY1k(f?rhK>T&PR?xl9HGLE7Q|hMF0iS&kMASZQ~toNhS0 zS8svb_r5QK8Zxj8q2w-PCB|r}Eu+hC2bMc~mpeVT=%wB~ zD|+&h3!(2Lz9YUsXBUh&I1s<;-O=zZ$P_i;#q=}h1=pdd+voNVc()MJM zf56UPnfOZJYkWpAw&g(JM391@gjV+-$YC{W+rdMM4H|0?wTWKrcUWE6L^%LaB?(EE zA*F);w*RKS8n{GxADFXBI(a3TcqA1I)>4Lvfgf-bsh_+Xj4oPmrn5b^4tXosy}!^NJ7^0d(>9 zVaol0o&Y<8u;U;%m9!xd_*Wf>hw&T;sxoJJ6CxenzZ(|GI zIW!Zn5QV&Z_Zta#J%n}tH^_ZI0=9y(mRdp5f>Cwl zL0rM-A&tN->R|PNZ=EzO^r4X)D{hmb>I59Fj|!ru3knEB5TIC1$41Iz3XcBWNYPz% zf{Bh`^7Tiy@zQ`Cq%EPB_!n=p6h4&suHDRP4jdowk)Z|xF_wVfb3@1jBOLET$sp>} zr>D6YP3n}ve$ElrR9y5-YBr2_M>HFxq0rto6zg$}bFlYt2oT(&Ixx_C*h_+Uu^miG z1iuH{VWoygOYF=fA_?89L_$X&)5q`7|LQ8GyPP)q>ux2lq~R47ijwX=Rm!WVA-!0uPVgPul3eOgy2B!sk{anS$vCgPr-)u#mZeu+22+fw zBb{E`lAYApSKAg9gE$@(vtqHd`C<^qi&N!5r8~`wib3!$&X82hx+E21cX7#*cp-MT zL=6zT1L_()I#bg=15L?eWy@G3eeuFp)Q&~p&V}Ff ziG4X~iHV4fY$+2YL8ZFP!mPwsjK{_5VS@|Pxj(b`wpx~9Ew@oCkQ!QC+wxJaoA>A* z*K|~lawqwYsy5E07ftgg3CSxK)4hqaMW=^3%E5Nn%pL%t$Uy{&ohvCA^&)1Vc>?nc zC`6;^Cn0nBe}E!A%Rga&fHeO&HzN1Q9_OAkj2b`?`Qw@qg+~EYrHmVvpE;354Lj7j z5!JAYWDcu(nD#Rztp8%D2V?9}td-=`8rfz)#&dnKX5W zMmM4v)&Rfec78d?$&!rwl7U{^ALG{!Yk^-2{2w|k$@SxQH_y+<`E|oO;MYm~*-7%? z=|90gd}e!wB#(Yr5Bz$G-LZ_02A@TW-f=OppR?F05#In2@XPK(q+ z>ToKQNM$XUd(}xra7$oGz&VsK^u1Vu_!Pv^7RIMsn$`t@MU)YXe*6)D=OAy|l~PksP6PH?d(m!kEQu?i1s2g}M1dX~8k zx~kYo$@hCu5SLbz5f+bfLtubZK|fjaM^qjmeFOdETO35FMALxK)lK?((JKlH?%sY< z4UD3;9X2}Vi9u)#oJ%3#6~G}NZ~zsRy%?_%Q+na>>XV{f!60fRxaY(UzhYXyn*`yQ zB^AT-*QphY*D7pYp+RrudVgORY-JlOZz}?~7F_TYRCk)YVYW|a<<81fsTniYoNsEM z*G?AIywP=ad1O^n#M(TjykWM^6qlSExbX1#hsUd5dL&Z3YHa6BZgDiXBAinlCxy@%<4Fc_0u^emr?MtcG6t_5yz)yOq(pz=B!yIptpkQ z(Ebop8JF3R*nvqnZ3^hZ5+7@X>?%9@zwLEHF5w@-vH%F}Zjwxr%nPUUA_FUST zO*5g=@+qzpsE{k<&*#7P@@DCgmV> z7w3Lh)}zFW2h|8ne2*FoPljF|R}d+yazqY0f@WA2*Dk!oAO{6JUa&N8mY@pUCd_$? zIB&cvrfbR()reY1rJpt1pb9YPV6S)u8fyGZXXZ;etQuB>BNwy&ZIbay7-a!Zh%7B> zyi~2X__ABPOXP0xwd5sWbfqL|pAxN2zo;hOe!siROG2o5EP9PcM^v*=QV^b5ElDx8 zqH++=k)lHIo)kna>R2c0rgT9WLl3*rKw)I)WvuRR5d1BI$Do}cju+Ef0Mccgm?;^k zm>Qn&2}eVnXf#jVyM$%CqxxbwR;&hfcp91kw;ik(GjHi&-m-Ge-b+u7DW=VtXB|(k zJ9p1T$N6>B%c@?jy;M8ib$L_RQa09nc4*q}x)3s+H%9E$W6kgpwO5Dj5Q82k5qoXa zUKh64MeLi$nr{Hn6|t`eEXzJqwepR7u4;c^eA9Sc9$B+9Qq>Z+R-9Fw?LOB%Q&1W$ zSP?E*F;7UD#(*OShhuF+O z2lb`1FW?_KRrzNrO@e`<_1Zn*M4-WJO)1v_5Qdj48&t&vwsb z6+Acc^vFfW_~2XJQ&}yOrj}1NuD#-r^~OU@c>Vy#REEaXH%`S zrPkR-N}>0sH1SVYim2P;?GM4FRU@n=7SQQNsYO*wA5usSR4kf+C&tpo_6#va%9g$s z-5W@8j{puco`_whMVCwDVa)m(f~Nt1dlHfy4KNjWd!~)~9ld>`E`}2Ck;HZt=ZdXl zdnVS#!~n z)!~xW5z88>K{Plk!}gWqwGsQq(ZYfTELvC-F02{vh!oag zW%)OAtH&MDl{>>LcSc~()mU%nbEjQvqprev`|Y>Zeo zNsYQzMqTT|u60+pM_k(&*KaZ2k$+AR3Tw(QHco2Rjc<);)=2@66}JUEV9KOBv=!7EfiiuxpykP z=Jbx~bmv$}G~F3acV4^`g+A@hqLmGgFaJdG0Iys>%OPaSL~uB|U=|W7egyp3@)rcS z7KU^580pZnU>JmXRF@U>=X;7U2BxOIEyYQJtGmX#)bYJB7VpA0F;Z|1;#~_Hw6L(v zeDv*CZHb@}1i9jYxXSiL#UO^WAddFPVuqYW3_oAYU|YnHzjskk3f`P0!esLuf;VSN zQ0?MN{gz)j5Td)&ej7ZNn;2}pp=nD%eNtau8{A6LK zBEVvoCbBx^#O|I~c=}0Cri|23h|0)F89g+ZNnOV>R~~~abfSTS0oNH`ccU&*XMu>4FJaKxh#6rK|2PYm2Kwpzi5bRY`4%9z?T1c+n_LtUg zTdIBs)IT5ID2U51*y9+4a<8KR7*M{x2S8IN-_RY0#^+fEuqxOAa`@V>M|5&K;+2&7YvI-#@l;)ha zL#*KI&9idA|1_(HdOn{^k5vgm%G0W5%2!6q*M-a1Mavt*<&AH(N4M+`Z`nWD;fa)c zqvbu}@}5Y!f2{ErmeP2wRnz5_V~zi6DaC55ShZERf_|9JA60GG1{Y)hq~6f9o_pJ> zZCWdTyJ$m`U3R^I2mHF-)O3&X`U)B1D|y84kt4o_<*wIm&y)XHwPCwL_7gb|_)iq3 z?ODp7SY(K2@`z{25w~HkYw6brA@e)$uGolR$@PdvsBiN2$ z2ZEglS`f4%U~8fYv1)9Xts-`rwiiG50SH27{DCi9HVB4r4P3!B0JoM#J9;Meu+dJx zx=X#R>glTKjLPZMv<03|S|Pe9_OQu*v0>cvmSf7a4P1@ZdMj-JccY(FOpJqUv|c!a z-jP$6H(CZ}*95YDj(*VPqHl&$Xw%`kJY)Qk zbA5k5J`ZS@b`L9d@%Cp16G&$Ly^|fVEUJ&0fS+OavtS&+1i;PVQ+;QJu*P+Ql- zzAB=rmHg->Um=i20-IDio9+ zPa3h-{Rr3*;(f%}Ll^c=1Rqrp_7I>AF?RinH>1pZl#Dg@?UHmk%_8NuH0$B@`hefN zk>vk9q_?$5t2wp061lnu9wFzGf~!{g1g<&2dV8 pN9;J*PMpMfwFEFFA+)>-O(+W_gp`nx0L2QpH@=tnhU;tR-0K9V zsZ2K}b=}rM&!nki40VN4tJ*r|{;^4u_WWbgv`VOxitaYCsZ1Sf*=P%E*J{(g@7z30 zmtzeRaERx)Z*n3h@(LHnUyH(} z`8dyG+p1X7*0?ooi`&xnxIOKNJJQa$la1LFSK1wSv$kFFq`h%3Yde&Rv@h;sZKvW- zSH>%O&cgL_qU$s#x+U+cR+NC_;sIa_oah1CTSiy0$rZr*%Gec*^#fa3#s(Q10Jf@( z4Ka2Fu)#7m%-9gH;RUu3uV!>L&@~HmyoRw6U~9|R2xIGjtuJG185;$*p^UA|^RdR8 zsOUh9H{80MmPAR>g_zw4X_7#asYI4!N;bL(b~;S2nY0=@i}Em!qf@PsUI4?>lOd8kruIvDu-zLC)m5!XyLU-iw?yj|&<&@k5W5s&&s;#@$q~hv>j_F8@Ib}@S!a;+<5aG zyYQ={>)12NlU5yF#2%bY6PLsE?CK!RZt?o&WrvYf^!mPV0Zqmp{ek(`y1CX2_qAgn zKQD7LmW%vzJkRAh@&t^=A|wSrL_lx@7@i?X6){?S1d>J;RVFGz2FG0@jA0@hRy8w4 z2y!-2pf5gLU1!5tb~dY9*7E~GS|S+D#7VC{9PMP`e;)fRXtL1K77cdaJyHG+&Ra|O zZR=QZEfT#@`9kGek+!RmwpWsGMjoUG8#-xZ`}a2x7X0F3!A~@NCrfA@TRDUR9ekwP zJB7`Y2(5JDk-zdCG~U_gco~VywAi^S%rc=H`_CfmM#$3}ody0YRP1`(@gfpM`irhr z&6qicV>X*GUJUP$E)adzm^0M1Sqfh6{gJJn zrQikJwyc^#w}%`pO+WUUWh-VLNg{|y$1H?tY1fIMrD8!N(5GoR2{jy)h$ai_Y|PNa z{z$=aW=6-Qq^=o`t zn6tcS0%6!?6u}Hc&j}gIc`B3BB+`hc)-c_%mfl-UYlexSYS|3Yp_J~DbU{{FL2aPT zga1ClA}O|XBr!u{BpI&MY&j-nfdm6&7s4b?anD*X|gDp%)7V(tAZ*2MVw$2#%2${ z|KPw9e(clM%sbL?fNg1>%Kz&_`t;HJ`9t*5(YpoatOu5M79K!^r9G1jOX`Am$a~mj zN-~r4Jam~WZ{fh-5&nU28{vI~4-h^?xP##QC*nsOZBDc*SF!yu0@{UGa5n*4tis&I z7P^RF2#`+!49_6ROv-9fnu`G|u0aDWex@?}A#{|kB))3#wBStaC(l-eOCzH#eANx; z-Ne@nlMs$p(jQ#e+f@V2nAJ=soMFDB4qBQG;4}H*?}t3vgK5OlLZj7UvxM)8`4+V_ zvno~w^X9M+%`Q*}Y9bs4py1MKF^LdP&~xIqOs%ksTG3&t;0;1Y{t4U&NC?#_l&j;P zH`!9^RP4;2=u?kp%u5qaZ-)KM6T`EZLWXmSL0p?q zWc9={3Ne`wrs&nUnEr5{-^qs_D*s>+U@ zURb?+ws?DUvLb3Mx_(AKm`<2QY3WokY${%j_TtWc0ETy5P6?u%NW!UTmV79(2~C%# z1hQP-Fxe1(41XFHu8&W1*Sz%2ABO0SCljVEaGaHg(V3j3V!;^X0<(pgOD-nJf*DNV zu=1K#7=%s!j}>+ic~ThkVUc;W*Z*JFNq||tV7S8 zs*9jvhGPo8UsAf^O2Ps?42FW1v9$5@qf_@S^BuxONBDKA^XXpRfg+JX`s^28 z;xAw^=`AlNM`7Obde-!*6FHgWy9s>Ds=6$|M<;$`-k?AIV#^S29&<0MZveK&tFkT_ zPBoVvg$vU%6@&?b@F%Ds5!!!x)q32UAQh`8nAyY%UVvE*Y>$gGUQ6-}qJZ`V&;kHBYnPLaCE7!1KbPJ0dDw$;t^{O`HSKXQ$<`t=UK b%JUna$=~7d_s%FCeqHd~^T diff --git a/app/__pycache__/scripts.cpython-312.pyc b/app/__pycache__/scripts.cpython-312.pyc index 8ddf3658c523ffdab192ba62c79c120a759b009d..3e18e901e7252bb67256bf92194aa15daf380eff 100644 GIT binary patch delta 60 zcmaFJ^Ph+NG%qg~0}$MtlCzPUmqp3g*(#c27mKaVF1VDf!cmfpf3p_s1>PE53q}jVg`hVCDg)H3Mc9!L$LUJp*Pn z!ORCtM+VFqg6Razf()3o1hWt@i!xx=5lk0g7H7b$CzvIGS(*W}fnb&aW_bq8MuJ%Z znC=XiO$5^en3WkYn+fJ7z^uxE*+MX@0kb9prk7yW0%lzX%vOR~510)ZFxv=bBVaaV zz-%X&&4AgG0keZ(dI7UF17;_|Yy-^p447R6vjZ?YGhl8em|cLmIRj=l!R!Xio(z~h z1hW?~w`9QVC74?Qb6W~88CMc z%)NlQF9YUIg1H|s4`jgHMKA{db1(yDAHh5bn1?c8_TSKZ4}XS38K9zG2bX&)G98LhH#n#8aKslIzZ{&J;402izNzTd z2o;03fy=@1D}kxOK+G2maTW=wNQorG<_!fyp(By$Xn@PzfAz}IsY?;ARKgqZQRBX7 zRKU#{q=MH26qj>&IvDatxuT;}*QSHijR7j)4@|`%qfxGSe<*Z{iuk9;V^N6=S8(vU zZ+zMp3r56TInVf_KK~6Lwg2i>{HWK!Ss>l@;M914GYte|H=y{17x6=5~dd;AL4KgN_{vZK-c<1whS!9aAJ3SLG2bNOci6NA23VC1qd91U{C$0Or} zwfK3d1`3p+SR0&0Ec@`o9L_Q}HU;QoW1MwtEDW_B!e{%~*tKb2h>xML1~@ZB20~oU zrCIFsn@4R}0GaUL$9@HXWdDL<2F-HXaF0ho?wYaSq?a1QnQoiXXc) zJvGib`;$_YiH(Lj{ygED)~R37}{aw8Wf1JK2> zW<#+6MPb{gki*b>OwmB-5@!icMPokb&XgBZ*a^uoAE8O@LUbe;%>htDE~*CuJpgW2 zt?eqx?pJ~d#{k^YExYQHu2#m?nsjwDuI|Ma+SSdv24*eGWi1OW^pW#VLy@OtS7+_Z z?zV+j=%EWw!&jfWugyA_T@CY>mySIhyZF>KK5O|rM_1XBDs4=a*F4WP6<9ylnewcp zF%5eyR2$~39YF^ItbMLT9vq-mUXJ(=VH+ofCGC%tgxZYwq)n32x$zZ2KHSkp0MLG& zn`hrjIyW=U%?nkmbKk8aUz&{O>-y(9gez97na>DGry6y8N6R`Fi>0|2TK0p8QENyJRMJ{I05HAV|DF0P-%_MLWZl;S2V z1GOiwn?Pm85I2nI9vX%}Lxy|JoW&0vIu?Y9!#EXrgEQePXTsqfpKnAT8mWDN$r+)) zaz?1ND3%1e8{gRu!OP9sb?drQsOqhN7Tp5?`kS*X>8xR#HA!a!<7{A^O-W}P<7{J{ z9Sg=ETRyS;IRBIUKXfwAy-CMG#&Ph8o^c$VHKv?Jvm16NY5>SnFCie+i8)KJ=YtrA zpat$|J%D$0pIX~y+mhBc#@aT2l(lZVHSnd$VD>!M0az(Am|cA5!&KvNOPADjY9L5% zutYAGKL1!`Dg=Tu zw%{uu;zEkAHE6YD@l8b)de;nHsMg6)g#kbrggYt@UEVcSs1jz3fQ$FazXEUvM3YJQ zn|^IHWI+nC-W16+hbsI|+9eKd*$h?G2}lg%l#L2RL3SO(@rgPOVf;LK2A@U{oCTmB zo3NSP?9GP#X?2Vvasc;bH}YCsiNKw+LA@ROi?er7^$FP6#4~F>(ljB&iQmuW6*fMol5WCPclC zfTX}6RgS+Z2jt}~3<@v61&^|A%5)T*SS!e256>_fTm=;D4bp&Kw`MfZX4n+cMnF20 z%rFdkA%<-dt9w9Rh|A?wkrr1|nbyK}8cf(DUsM5maTB+8wrcWzTzI^+Smuk)dKl zW;AEPfi4JPs%&J-ahI846!RU3se&Z znJ`zBR8ydQhz2MP$_V$$ zJTOBg%Zto`Nb%B=zTtu9$LN8m5diEE#E-V^$&4x~z2_2H-}XD1y!8#B(xm!vaqt@*2pX#+hTF4!g|d z6U{AA$ACH*Bv~_2no!>c3KTX@qB7yEvg!uZruNH%QgRH&2I^aY#aRzWB7Rb&K}Bx?A0LpEw_F(?f*50nGIljUjf3u&D^Ew2 zVoLZJQAQFI$s1Kj*XH@hOhx151aQisOlj)AXs+fZ=IKdO8_T=i`yZN_OiZ+SAE;4nN6dJf{+#bM)DBw55Ex zq&ZpA#gudf=SJz0ZEVT;S!=4iE?M5rlw&61Z0{gl-p-aET$*6YhZE%^ z^qG;_{M5?<`f@Pwa_|R@^HqzTjQ7Zs0jA|7efrGPx)C~Zm9|u;MlaJ>LW$AP54O^+ zyB1$(T8ExQ8SfeR{?q!GXevruYEow}(t%5fvzLBgo|{>Cn`u7y#Kklnf8u*ubBYdy zY0IY799?zYocDWEsj7DTU$Z&YyeHMNFV(m!wW)R4z3J}c_qtN<=4X9_ck}K$?m5`< zmSp*MrhNPJGCQjC?0MGDOLar~<9a!OOzguCHT8SELgF2$EncL@x=o+1-o!8jsEZU7 z5-D5zY+usW&e+=LM_JpBTZ3Pk%;u)&Ishww&_y z1B(TKs?23uC6fG|PMEKVeCiBP2IJub*n`lV2g{oMFgCw~p*aHqDt6S*+0F#OE)b2O zZHPi1ayh5KxE1kJzY8y9UZH*)pHRr=?56_$AeajRXcQWz&SQj@sP?ZR0>?~AR0HMH z7Y0L7hq6Ldq8f@-Mz~jA0k*EEyP)jaIt>sE^k94u`KHso2rO0< zia_`R<4;TyG~!ZojJd=_@f^QRESul{p$W`H`NKq9IP}oK>sh`9xYWM^fYu}5b)pKR z{s04K5nzwxg^c&`={o>Gg45Y@rBf*RG>!DZtsMro$H@ z0>h$QxiGm)62@342+~0`0FyUqW@Py*&EV9(z^`E!E<%yd5=NS4S zf*&GSK=AJXM6tGoc~~(A*RD4tO4IP~U}B^IN+NH2(%YBt_I=QsbTuYijZ1}KK1!Px zjZe0cY4J2ni#4sunk`JtmOma@D*2;Px@HSobL2?{Q!|pNd4+!Y6_~A3r8UXYR;IM| zv1{Q1+kJp8ZDmVwaxOidC?%7#E!EIIA5C`cW8i}>E34{Su=k< zb8KGR^3<{K*5NNrCUeJg9e@?PU7X1<{W#pxC5^eb7+0^0vr`F+GPE$_8bKj!5*zra z#cw7G;T&%+=Mk$JCc$%8QMV{hej4MgFpzI(q^j9~BpGgbRsH%y;=hMNV^5=S#*uYg zszDGrWQ2Q#0`RL?ud3|GMp#b@L!H(f2g8GT_z?AP;nQbfI535MQ#Zh@TMX|C;o2>) zG16xpVrBAqdCL-!qp9tXSf#z?icwdQPUGh0jkv3o;`fm-&OB)8txvkz7*|`;)x)@Y z76+E5X;%;HIsu*4>78#`EPm?TlXMO+&H>soz>9V;?zCaK+7V#;Cej+2<7E9UUv#2+ z_#;F~o9G^67=qt}Tj(Uu9QE`5r;grRhf`%cK6ooxwu33#!Itf!O~q=h?Vuo-V0!IN zQUfu{PO^^Lwq6j+(kla6KD2axrK0+P&;l~bdo5WI=H-kWY6kMkSx@;;q9B5Vq|PCl zAqvZ~f$;Y;h{lmyE&PorWd&{F?@u5Rg#ZVCh46Ql2!Ce<9wUN^1=2v&12IY-ueD79 z*VV&}nfL)Ui0ySFwrh+u*)rdo4Sk;bCTa;v!8hH9_=Kb62BO)2fapcIC1!(Y#uXk_ zG26SwT17Z5Pa0`m;ZO0q2!4cw%K?B1!_mDs_|&l-a#k2nkxXR(o(FE$MxezJp@VC6V@3gr(>K;DlzJH1XdJC zfdU(bscV?sv{pn$+W!O**gT|_16Vn}Fqk$_@`5zXPnzE)D~BLBL&PA6zp_?sYT8O= z*DftZrznnqOPA$qd{0Uvrq$`P{2r_^s1{H&+T@ht6RbW^mQK4MRAV*aH+(25H}$%> zXP%K`WvaF=_WrE@C;fEQR<`O$ zvTB&A8fL3b(H76LyXt=Xz4oNLgK>8(^!|9qCp&0&2kY)nx(_h!1FU;+*7?jbBoUI5%D~&yqYg1KFD~VTXY2_vvwj4sYFnz zHzlOrq`l^*QeS7iJqf%?zqEu=MNiOZ<%*sswf5}S{F-^t=pR|;LF|pvT3jw4^t&SY zO?-mTV)0r2tJxd1Xqq%>nlx#y>5bG=_#&vfz3?Z!bJC6o(jSk>e}_&|OH_ zpJCWCf?pu`ZvfK!&Jzf`*`0mg5oQGZTJ)y?gpQN4Io|L8PXBUUYqG9~sq0DB?PTh9 zE=GSA|4BT#_Z4RED|FpXw(iwr-566h#@6|0d-ZZv-TlzLP_n9TGx!IG?oOP*!k~{X>_Ei10Wc@CtewXwBeWa=g`ck0_`cgr) zh*#a2tnOi|ds5igL&#mhA)DVE?5*9fnud!srLbRp0Z zJN^nH{s!(998b_ov|^2Og=&~YG$Z0)x1hip*J%zah>>>5n+?#KOl{J3xr!UE>nJBt z1Bx}Gpo7Z7k+1SiX__Z0&Kw0P;Ze&eOtxhUwrd?xZf2WW61Jt(3P1Kqt41EMn$j+9 z?)c4*B(Z(cnU(}z{keXNKTqdi-lApz=Sc&))m&)R|ipzyb z92(OuX<9P9(AQ+ua&})cgB@Orcc37CBq@N2wH_Nz+7MShpR*kAIo&}YF{ z!9=ykEn2lBm!It7Fh434+iO~k<58Iya}y>Iv3x+=GP!Ym7KyluIx3Q>LoX^9F*NH_ ziR;kB)vhCLy4tuI=}I}2>oYH&t2tg(h`7RtT1g zjvX@v3LHqOiBmXb^1EjW;4TDzBOB1N#|z@lcz(RlU-zK}wDtAFoE1GsU?1f8W!R=k z@s?c9j0TTx{!b6O68%@m5ODzFt$H-Ro&j*v()emeW4NQy536q{DvZX6Blg(X1nd)0 z1;Ab|ub#q`@MkalIm;P>e$W$s8=g5^aO&!GY>c?)aQ4V_Onwuhcn2OaihtublkvVi zkb(Tk;ANjbI2NIT6QaWs>{;`{22$8&XauUnL7a0;PoY&29rv-Iuq!PO|MHm@9wED& zoevF0r=~+8z;db6@%U>3ansuWU*|04Jj0kMq^!xL;pFkM9F zBp2_fgwMG1kuL$%6|#jORPYFLh>RvUOevy7&nTO~SVF-ZgIa=YbH>95&k`>wg`LNQ+a#!y7;OQK3v3a^y+rWDd+8GkEsD1k&axD0 z4JeeMcnfV2wGW@qA^2+q{~N*oL4ZOwr3W#evx#n6xcStMJG?+wL-q%A<;piOF7q1{ z0gq=mI8uUn7y+DQq2me^yy9C{p|a>Ch=TJkbd&`^6j$U#*`opqBXOnH`T`X`*x9fZ zM0djke@pjiNyVKDw=X118kv&Dxe!~@J8OMrE4f>Lzw=(_{4vJ8E#=yDcl`d;y(z}k zLEAgPi0dl5(|)@>Syaaq)y?f>i#ld=!H@Nh?Y8ZX^R{y?mn~>X6l|U!gw=<3@LxD< zlTI(=^zs`6VMYA*Pu@n~Eazs{c|Pg<2IKq&?F-Y97=1m?I%j50&uj(6p{$W9ZcG+; zGR2*bq6=F;zPY%IEk2Yi9%71z*y0nj2eU#-K>_-1_svf)1wQCwUB_n!KP`3NnYul- zTvYNwh%KsLF8AC${Zu3a=eZhKm>XSsaSUH_x*g_1}8Ps?{K zS5)1NJ=(v}@M!31#SRkpJ=^E`y0XR$+BHc*{+m(6S6i{ zRQ9=9SKhaxGnQMw%+cAL?={Tcyt{R-3H-=dYv1R&y1bI-R-L^tSwdx9sQY{_$zqXMCJ-6i*7OfaqxjSEek|AMWBr2vvF&L^e|F_+*ahWku%a=)NLSnb!1=JumB5@!DzHv--c-Hp8Va8IKYU+Lv`6#jwW}5~RO-G;T>ETPs;YntA zlD_gLJA5NC{5C!FHq-bH;GbYDb*bi_2k(6J&cfSl^PxoZ(34vF)aB%<5OXR-hu>mP z#lO($PU{aCKG*5?8x9zr>vYWn21q*0Sn7X`KlN#8?OX>_x;at0bz%RkEmh^6Z)U1` z5>?w5e4s^5HFPcHGYxwZ4FgNHw52xH2>WK4#(jy#gG>8qV2Y<{Ziew}O?Y-K7J`do zs!BC2xr^yYLs0$jiA`_UcyF) zT}s&La}6KUhCk9L8=-h(a_LhAU$DR08Sib1MUNF1zz!elY(6$&Q`$*fV4%eKvxt|23~v^eC0_jAtoN8TXoMQ}Nt zx-twa);5f5N6>))4SyMo107J_Fx=8WNSxEVGdIUJWEp~xoEn>B4>rdhzByvFs`Ou# znR3rloyxQhZ{cg?+Ni%+P-!o9K?y5?82^#yg3&d=}_Y=j0yI@~XcUr)QVEn|vwxDny&q%+4&TIu{o+1Fao zubXfaf+nt612=aaTsU4$?WFYb2V`D*1@%C;9A$g&C|fO#m$;|(8{lU9bB#a z=C6aRm0!m?xLWyj!gdc6(Lnd&9#zzX3-4_TFL1CL@p1B25_yvd=%vv`fn2c5bt6pF zPMbhGZJH_c+vWYwacM8CB23!wq6m|A1}nm(?J$ZkyFZ`k&K(Fvn?SrkfngIv6=8WA zVfmVr3KgkT--@g7k((Mc9U5UyG0gA$&;eTdf?+O?D1!aL@fc^hIDKObp9D=N(B)Ok zEBKVAU6vHf(>Mfi4^xj*zn^-L`h@#o>cO*rGy!37nf3_}f3^3agELW)P=MF33Y&Dv zx8DfDJ{`&k107eoM)gc0IYFT;=u#n(;quy2AH2j8- z3J89o+MncAxa-g(k>Kc;hhw%C!4mL*Xq`D@a4Pmtse0ax@q6&wLJjz0KA{HSNlTYZ z6=4z=CUIg-@!TLq;|ef9C^#RYK;bj3MES~U=dLWLHBl4&ZOCPGFUZQ^GF4oD=lJd8 z{HEc#^9yxs@mAO?47%F>+x#mMJGNk8UA?oGPm4F*IdS{MT>XR2k2)nx4`R+4 zA2>d8h)Dm?>|F%a z9jM|O@1MALV!m^+maXhhRPJBWqe9MIhi;Lu^Vi3^cO=}PC!KYsJoWec@Ac0+)C96e z71Vrm%}%=iC8p*jdh~pv`aEd;QiZK_=VAJopXu~7g#kJkVhTd^RAj|yXmNmg54IY6 zJ5z;ibk`AjD8O_Dn8Hi+WSA)cZTnR~@;X2h2+m-r1ytw)o0p5r?%LSmhUJ=ix?wwL zd|_8IUDe6DyOx{0bn5`0WMbrP~gI zDtEc9lkVQXG{S5?@??ok~2DKv4or^3QnWnzQ7}GdFAAOa+Fvc7mqsJ$hBNI%+ zWws^=ADEA@t$UC{*Iu@5-}6mQ)I~Zs)J5*Z-hkk3Y-{z<(=zEIJ496^rW%I?(j_fx z(2Fgzuqpb|2uHH2Pb|v8O&M?`s|ik!Y8Z(HU`+9EC}^s30y!hsMoS=XHdGZ7=EF7X zO4R*iSO%SgoGijkZAXwn_6hOipN}gDZARi8riE+Lz=h*F zH0hc(aC6qdg+`DjI2vc*P!CPIxf-}|kccL(MFSU(5YfcV)4;W^gKO2mwXK6|)4;W_ zgKO8o%}1936k28+ao|4@3zcFZ9NiMn#dsnH3L=)s%^9ac49wjSvjD_E4us zN=XiLiZIEoO%bLg@@a{XlDHUGenm^n(-Jl%5m6;LY6)+WgPS6c`I10aKm@wNVTuSA z#P*M>s`Ul90qoZY5gbNv1c5Bnp%3JQ!#q|QW`r|RkvBFLW+<(U9KzfX$&Q%CalBGl#PLO874OJuL==USKL+B_zX7nW zaN;O?Km1-~_YThuFYIS4waQ zbVjSCRTL#KjcNjyM2TOy-m0EI!G1$o;_E4`TC$+5kSC~@pwOBcE3|Cnl4YC{o0_0NPpYj6^m@-#FeG^h^HFwTHz;Lla~))_&|Wb|89 zA-Ujx$4_dlp!MLN8Woe4DV{?nwmhOcki4j8ED9X(n%2b0BU2g(0W*1Uf_oltkzBG5 zxFSqzN|UB9)SoDDjeeW54C17s!mw*$_zCCm=nfq1r_tXk^`mFM{p_3MC=b{pw+~x` zJi_C+&Q+>b`QmC^^d#G)y;v8b6_b^kDnH3c6Bs9);6+xt!crO5$fAaU4;D2A(>Exz zXTrw&eNX^-_M(0Yufn+hy@*QyORGEkNY-dV$Bua5@YfHg<3hsacY18v8%MM^f|0`Uslx(mki`8eCwkBiD9-_K9A z?@e{=$4EcjdyMHEN_3uja*b_0jd(G7%W@-rnq>P4*?JHE!3loQ2g*qt^bAPY$1Lqtp)Xmj*{e7cco z18sF=q9}kl^#vx1?6*Jt#k@cv&PCklZLja;h@I84R7oQaKdH>fL zLdE$VelSoME&Gico!7(vdaBVu^IlS(g$|vlxYu9EqTXB3m!D*7wmgo~eM2nl5U)AD zRz2=EY(w?XOjRpd>6lM>P1`PtGMGwRl&JwSO7-|Uj-!=pe`8IS zL{yaFOXS)}-Ces8HHEaX*4qa=X9hL*HORq96hzWob2WWOBY;dH7{(N`^9ly3iX|xl zP~uTCEbBv@snyKD-R9k-UN$G`xbeocW^2SOjO0 zu@(461V#+fW^7FwW3^i%^%Fo-5debZ+Ni-*ryl_)^IgHAwau*7Xip6Czix3iQJ{xxuNmzc&emCf7y{-kVJ(6m>{lM;52G zP_nLj7b318+uuM8ZL1;f$1}pc@?F5Wqx;%tVxh7r?NXeIBPqvZ6wz!8XJVoHga39!k1TGw#!@ zdjx)E5q1rRZikYkUQlPvM}PRv!*}RXFI&1dS$dEuJ;;_Gp0z!*xy6&L#6x$Kr|&3E zyebp%JWcoa-rEZsz3|UhIqm8<{e<+0e;ECwSTPW5b(R8Ud{#ZCSn4r~q+9{%Hj0q+ zzVj{YJG;Mn-%*f!2RqOsMF*;GPF8m@)m{7%Z;J!T{C_ybCU6#WIbRgEq`XK7CT3EZ?bwjQ@uSUKFA#e zkBzGo@jPuwPZ#6qN{J6Lp8BY(HHYY;_bC6)6aPN>D@20o>yp7xok-M!a|O` z0>ICeNYA^Q-`QT^pY%;lL^}N!JIU`6M=6{%`IE=VmUf)~I0qah7#q7p!Kr9(M5rtL zue@5}SBS+#a0HZ&{QND2a~}V5Bsh~%cq$LS!Gvszz}`inot+}9CL-+DYH=RASGpeze8hoO0vDD=rv zn5^B%I)jMPL`Wocm{z&JwDj}8550%F0|el|E_w^9`E#RQum3Zh^MC5PSY6jIbWKo` z`rx8AiS%X^vf-c=pEtZsAaU30c%O&?R!x2l7e)dr*9gU6(8 zW!zigTsOUE)o#_h=G&632btD`t2%gDbt8@^S+Rww*dpLy$ob@^9n7X3Qpg4U+)%P% zFVnCWgD&V-?X~dzp=9ND*hajngO}AKdZT_wKkrF;2N~}mq74CBDWJWTtlq^`?^@Nt z%W98RKd7H;OV;gX>ULuu2KAVUvwAsS__k^{>yPQ@`;u*kn6^W!I(%C#XxEp_^(E`~ zF!g&@b?~zKy8gT#z91D6-&W%Wv)(g5lx#oDv>(Q#p49@Qe$SjIS=-Ol_G8xetlEwG zPGy-oF{DGz7`$K}JoD$19Y>gsBNCk+ne9e>52o_Wy_IY}z%(C_*yX_!uzQ%Y9wB6l z-YV09m(?kKHv~zggO}CI`gRDCDhFPmbiI1(Vq0?8IcC?nRUN#nhJec+nFsJfayfTC j*|-mOd`r3XC`$`Cm`Z9Kn9ACuFA+2Fw>o$sgT(&_NyJah delta 7616 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

W5X@v{WW0y<^>Qhpu+C_lH`U=}7S zQLot>yI-5H+)BYx367rLLgH?R+#-N#?5QhzzNMcON`4M&S7Rcg2df7(0Mraf>y6q7 z-nwP_@#$|*KQ;Y5wwQXUWR6)`u^$KwczuE1KD;u++6;Hvlfouf;h`IVohW)1Jo0Il zrEzoZqz>DOCpg$3n%QFiM^YShjaBu8{YSjaw=T%<-B%*tHTBHCPvlQYX^0UFa4Y|n zZ?Sq3t5pvV`b$Om+sI$>FOCGfwHU5?Ij+U?c+?ucZ2tvWF6WMcOjiZ^;u_WQ#(}jZ zaSLmDFi@ORr0%$XpdlAmonEvPY-oUc^1lw0$(ML?V0F~_wgl=-FVTchC4XVxf~ju? z(&bO_!Zxf2cvkhoe;#nCdbg>1A02Fp=>5mR6>(!WqE~Ld=TL6cB!!38 znl2L?%9<+N`H;*_p@~m1$@Q2IxEQ;bw#sN_bG-<&?(m`c!fYyblyEOM?;&aQ2ejGw zaIQ4G3+n^uFLBxk56aWbHu0S&PE0Bp-qG-Yec}5>?pZEm0JJ zqVN*+k*Hrp2_X`?NSz{CiQFNgow#4Z7Nv8CR<$A z%d-4i$$3Gl;s3tL;+Ez0^2bsfuZZ>qsg~#7{6eZx&OKf6o1#^(7p=M~(Zf|2zjX78 jw0hb0wTj>5G`*hFbXB5f{C6N0MGv|3dM9^haN6 diff --git a/app/__pycache__/urls.cpython-312.pyc b/app/__pycache__/urls.cpython-312.pyc index 928ccf6fa67d6ef82b10048bd04989c76e64a29f..48d8983e752ea60d32370ff90591e552d587eb8a 100644 GIT binary patch literal 8838 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 Ag#Z8m delta 2040 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

h)X7$PoQ(8UzX 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�q5OEp`r_x3+Nw` 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 BD}w+4 delta 42338 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 II@xx90Dt)w6aWAK delta 30 kcmcZ{wKaf5KM6M I0`_2L0AMH;DF6Tf delta 30 kcmbOz_F0tsG%qg~0}!ls;@HSNk)6fg*(zr9KK5W{0D0I4?EnA( diff --git a/app/migrations/__pycache__/0006_poultryhatching_basehatchingcount_and_more.cpython-312.pyc b/app/migrations/__pycache__/0006_poultryhatching_basehatchingcount_and_more.cpython-312.pyc index 8ddd8435aec10f2bbd214cfca8e70a85fcb25a09..48ded36c96688f11d52aebf2704e94dc736bd0d1 100644 GIT binary patch delta 60 zcmaE+(4xqFnwOW00SInR$=S%A#;ug*Y!y?KSe%$rnOGEGP?Vn)pOT-PomvzV1QXm` I%KecA09Z&BZvX%Q delta 30 kcmZose5SyCnwOW00SHz*actyH<7V-2wu;$2nfoIP0C&^~GXMYp diff --git a/app/migrations/__pycache__/0007_transportingchickendetail.cpython-312.pyc b/app/migrations/__pycache__/0007_transportingchickendetail.cpython-312.pyc index aa50d21a6c980d4e51a1d76a17ea19ef9775d7d8..53fdaf48e61d5be8b5532eabfb3eb953ea584ba1 100644 GIT binary patch delta 60 zcmcaC{85f5KM40 I7yC&j0C{Z{lmGw# delta 30 kcmew;d|8 Ih)JIj07iEdRsaA1 delta 30 kcmdnbzL1^!G%qg~0}!ls;@HTY%*5j9Y!$P40+T)?0B>;z8UO$Q diff --git a/app/migrations/__pycache__/0011_poultryhatching_pedigreename.cpython-312.pyc b/app/migrations/__pycache__/0011_poultryhatching_pedigreename.cpython-312.pyc index 25957567e67c1773a7e55eb44e021b0918b3574d..bab402161dbdc26526344ea47855e71eb9298cbe 100644 GIT binary patch delta 59 zcmZo*o5#j|nwOW00SInR$=S&LgHb8M*(#5ZA diff --git a/app/migrations/__pycache__/0013_poultryhatching_leftover.cpython-312.pyc b/app/migrations/__pycache__/0013_poultryhatching_leftover.cpython-312.pyc index 2cb2c8ad3aefdbd6421525b2fdf5bb22b8ca9765..dbc8cf83dcdf4e2699624629df53d59e43354507 100644 GIT binary patch delta 59 zcmcc4`jwUYG%qg~0}$MtlCzQf8lzH(vsFw{VsTf5KM6L HQ^rpKTEG@D delta 29 jcmey$dYzT~G%qg~0}!ls;@HT2jgiI7*(zo-Gt(ykcBTjR diff --git a/app/migrations/__pycache__/0014_poultry_locationnamecity_and_more.cpython-312.pyc b/app/migrations/__pycache__/0014_poultry_locationnamecity_and_more.cpython-312.pyc index ede32fdbfda87d65ec5109886210ef2f6e48664c..f7be85fbf40707140fe778da1bac2bd41aebcb1b 100644 GIT binary patch delta 60 zcmey#Hl3aOG%qg~0}$MtlCzQ9nMo IS?RkF0EbZ)dH?_b delta 30 kcmbP{{VR+6G%qg~0}!ls;@HStqQqk9Y!$P4q0)CD0FFTkJ^%m! diff --git a/app/migrations/__pycache__/0016_remove_transportingdetail_certid_and_more.cpython-312.pyc b/app/migrations/__pycache__/0016_remove_transportingdetail_certid_and_more.cpython-312.pyc index 9c0435b9111e91dff0a8d5124f6dfeec0da895d0..15ff979d5d1cb52cf603670a646d77ed7cd91e34 100644 GIT binary patch delta 60 zcmbQhzmA{#G%qg~0}$MtlCzOpm{lp&*(#f5KM6L HJI40_UTGFc delta 29 jcmey(dY6^^G%qg~0}!ls;@HT2pOMAL*(zo-57T=9cu@!q diff --git a/app/migrations/__pycache__/0018_remove_hatching_capacityfemale.cpython-312.pyc b/app/migrations/__pycache__/0018_remove_hatching_capacityfemale.cpython-312.pyc index be72a4fafc24b57d0c93181c2c4fd2bdddb31621..b8ca5ac817a6ef3babad66cbaf6e7ba2aa40aa9e 100644 GIT binary patch delta 59 zcmaFI(!APHY!y?KSe%$rnOGEGP?Vn)pOT-PomvzV1QVRx H&G;AqInNa# delta 29 jcmeBSeaFImnwOW00SHz*actzSVPvs!wu+g&lJPMBYexs= diff --git a/app/migrations/__pycache__/0019_hatching_capacityfemale.cpython-312.pyc b/app/migrations/__pycache__/0019_hatching_capacityfemale.cpython-312.pyc index a832a594c12863b82f1d372f73ede6f134d9a51b..a55f788dea5c008e7ffe4fbe035bfab62372d5ec 100644 GIT binary patch delta 59 zcmaFJ`k$5iG%qg~0}$MtlCzQfKBH2wvsFw{VsTf5KM6L HJI2odV6PTe delta 29 jcmey*`jD0TG%qg~0}!ls;@HT2pOMAX*(zo-57TD=c})l$ diff --git a/app/migrations/__pycache__/0020_killhouse.cpython-312.pyc b/app/migrations/__pycache__/0020_killhouse.cpython-312.pyc index 806a0f7f2776256b2d0dd524cefbc32b8621455f..0caf569d7b6b46037bacb6de692d40052181ab83 100644 GIT binary patch delta 60 zcmeAWUM9?anwOW00SInR$=S%gkxj|f*(#cbbp;G%qg~0}$MtlCzQf7K>88vsFw{VsTf5KM6M IOBNR<0A@%Pi~s-t delta 30 kcmX@jx0a9lG%qg~0}!ls;@HT2i-jf7*(zo;JF5#50C%$oQ2+n{ diff --git a/app/migrations/__pycache__/0022_alter_hatching_killingave.cpython-312.pyc b/app/migrations/__pycache__/0022_alter_hatching_killingave.cpython-312.pyc index 4dce39a19679a999cfa2a0b9b9461b88042ccff8..93e93fef224059f66db434528d9726938df0db3d 100644 GIT binary patch delta 59 zcmey&I+2b0G%qg~0}$MtlCzQf1EW%?vsFw{VsTf5KM6L Hf5tBWPskP_ delta 29 jcmbQp_L-IYG%qg~0}!ls;@HUjfsw`B*(zqTEYlYNZ`cRs diff --git a/app/migrations/__pycache__/0023_killhouse_cityid_killhouse_provinceid.cpython-312.pyc b/app/migrations/__pycache__/0023_killhouse_cityid_killhouse_provinceid.cpython-312.pyc index 9899198d9946c14a7828a2df0b0a97609cbca38e..eaa4f088d7022ae84f423bb98b98619aff664ec4 100644 GIT binary patch delta 60 zcmey(Hj|zEG%qg~0}$MtlCzQ9mPskm*(#uF8}}l delta 30 kcmbQv{*#USG%qg~0}!ls;@HUT%*0~tY!$P)fJvPZ0CBhm^8f$< diff --git a/app/migrations/__pycache__/0025_delete_transportingdetail.cpython-312.pyc b/app/migrations/__pycache__/0025_delete_transportingdetail.cpython-312.pyc index c88e24bcf8cb8443a0e4893cc9c8437f9712d140..6a3faba54dc961ca7c9225ff5c57533cdaeadccf 100644 GIT binary patch delta 59 zcmcc3@{@)8G%qg~0}$MtlCzP!kWner*(#f5KM40 IBd-D*0B8slqyPW_ delta 30 kcmdn5wor}xG%qg~0}!ls;@HUjiHF6&*(zqUJg)*90D8U$XaE2J diff --git a/app/migrations/__pycache__/0027_hatching_samasat_discharge_percentage_and_more.cpython-312.pyc b/app/migrations/__pycache__/0027_hatching_samasat_discharge_percentage_and_more.cpython-312.pyc index b75b06edd99cb8ff675ab947e070f03d80096c69..fb688a6405018531ca8cca2f2c64967f8e4315da 100644 GIT binary patch delta 60 zcmdnMdybd;G%qg~0}$MtlCzP!i$y8R*(#f5KM6L HSH{->U|kke delta 29 jcmeyz`hb=DG%qg~0}!ls;@HUjjFCmp*(zqTFw<)Qc{d0d diff --git a/app/migrations/__pycache__/0029_apkinfo.cpython-312.pyc b/app/migrations/__pycache__/0029_apkinfo.cpython-312.pyc index 13e1131c1802e1ec90955f7a41c2ce3e58491d4f..be52a523d022340744d4c4a5a484b0db309ce28a 100644 GIT binary patch delta 60 zcmaDQ*dfGynwOW00SInR$=S&5%ckV)Y!y?KSe%$rnOGEGP?Vn)pOT-PomvzV1QXmG I!`8h($ delta 30 kcmeAWdL_txnwOW00SHz*act!FWn)owwu;$Y#n#6J0CAfKSpWb4 diff --git a/app/migrations/__pycache__/0030_transportcarcassdetail.cpython-312.pyc b/app/migrations/__pycache__/0030_transportcarcassdetail.cpython-312.pyc index 262fa7ddf76a99951397b04759f60179f9d382c8..51ec3318dfe39be05b8f78e05b0c192f418c8bce 100644 GIT binary patch delta 60 zcmZpYUm(wYnwOW00SInR$=S%Q%B2+KY!y?KSe%$rnOGEGP?Vn)pOT-PomvzV1QXnB I!sW*b05(_?>Hq)$ delta 30 kcmZ1=-z3j{nwOW00SHz*actyP IlWh|d09knzK>z>% delta 30 kcmca9v|EV#G%qg~0}!ls;@HSt#l~XbY!$P4Iol>C0C|fD1poj5 diff --git a/app/migrations/__pycache__/0032_delete_transportcarcassdetail.cpython-312.pyc b/app/migrations/__pycache__/0032_delete_transportcarcassdetail.cpython-312.pyc index 667865e88e0c56b30c31fdb3f69c451c6f3116a0..03ddff4491fbfa776078cf6ebc05ff2f56945ec1 100644 GIT binary patch delta 59 zcmcb?@{NW2G%qg~0}$MtlCzOJi%}`k*(#`0Cvgf5KM6M ICbpwY0A30elK=n! delta 30 kcmbO#{9TCqG%qg~0}!ls;@HT&n2kln*(zr91-7G10D6iDR{#J2 diff --git a/app/migrations/__pycache__/0035_guilds_is_steward.cpython-312.pyc b/app/migrations/__pycache__/0035_guilds_is_steward.cpython-312.pyc index f2af498b90438930552087df1093a20c575b92b4..0a0305a2249307ad3940add3f797d2684602bc8f 100644 GIT binary patch delta 59 zcmdnWdYP5`G%qg~0}$MtlCzO}H=~lTvsFw{VsTf5KM6L HDaO|TMWYp| delta 29 jcmcc2x|NmtG%qg~0}!ls;@HT&n~_D|*(zr83&z&~aC-=C diff --git a/app/migrations/__pycache__/0036_driver.cpython-312.pyc b/app/migrations/__pycache__/0036_driver.cpython-312.pyc index 7aeeb525bb347ca162052bf231b5a8f05a9ea79b..0448474b8ac0ff7aa78c896d5328d4ca82375fd9 100644 GIT binary patch delta 60 zcmcaE{#Bg&G%qg~0}$MtlCzQ9k3-4H*(#;M1& delta 30 kcmew=eqEgVG%qg~0}!ls;@HUT$HAiFY!$P)nxl#t0DXK1umAu6 diff --git a/app/migrations/__pycache__/0037_driver_product.cpython-312.pyc b/app/migrations/__pycache__/0037_driver_product.cpython-312.pyc index 03d4cfd61a754f5134bde7abdc995d3f97b8ee25..1c3482267d80182f4bec2644f9c9962b481781a8 100644 GIT binary patch delta 59 zcmX@f`ka;fG%qg~0}$MtlCzQf9HWw#vsFw{VsTf5KM6L HUB)*6QHB-u delta 29 jcmaFPdXkmf6B&vnwOW00SHz*actzaVq!6Hwu;%D&LqPK0Bk1)qW}N^ diff --git a/app/migrations/__pycache__/0039_alter_transportcarcassdetail_tracking.cpython-312.pyc b/app/migrations/__pycache__/0039_alter_transportcarcassdetail_tracking.cpython-312.pyc index b026427d6ffcd51307fbc7542a5e1df820d831e3..334e790d221eab6efa3bcb2d4861739875dc43ad 100644 GIT binary patch delta 60 zcmeBSTgAqGnwOW00SInR$=S&Lolz;#*(#f5KM6L HKgRz6RjU?A delta 29 jcmbQu_Lr6WG%qg~0}!ls;@HUjo{`1T*(zqT4AXxAa#aWo diff --git a/app/migrations/__pycache__/0041_transportcarcassdetail_has_product_date.cpython-312.pyc b/app/migrations/__pycache__/0041_transportcarcassdetail_has_product_date.cpython-312.pyc index 15aa539f9059df5bde1511cfad6949bd082391db..774f2027bf5c3052b217020c2048c1035dba9dcf 100644 GIT binary patch delta 60 zcmeyzI){z>G%qg~0}$MtlCzQf9ivjRvsFw{VsTf5KM6M IUq(ho0Bd{|ZvX%Q delta 30 kcmbQk_K%hOG%qg~0}!ls;@HUjj*-RH*(zqUG!r8u0C`mhGynhq diff --git a/app/migrations/__pycache__/0042_alter_driver_created_by_alter_driver_modified_by_and_more.cpython-312.pyc b/app/migrations/__pycache__/0042_alter_driver_created_by_alter_driver_modified_by_and_more.cpython-312.pyc index 591592fc55c89449631c608623b205f2af888e6e..e798b9946bb31cd855e63a35d1537b4c4e1380a4 100644 GIT binary patch delta 60 zcmaDO-=)BPnwOW00SInR$=S$#gG;H@*(#3qe*gdg delta 30 kcmeBDcq7k!nwOW00SG#mb8h6m!Nn5pY!$Pam7A3n0DjsBhyVZp diff --git a/app/migrations/__pycache__/0043_allproductstransport.cpython-312.pyc b/app/migrations/__pycache__/0043_allproductstransport.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..60987723d9ee641f4648f741ec07d1b180327106 GIT binary patch literal 5264 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 Vo+}Q|H-3wW8cg&@3RQ@j{{d+{Drf)z literal 0 HcmV?d00001 diff --git a/app/migrations/__pycache__/0044_evacuationdetail.cpython-312.pyc b/app/migrations/__pycache__/0044_evacuationdetail.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f0f19469e210a7f0b210ebcfc0a2183ef8ad66c7 GIT binary patch literal 4674 zcmcgwOHdoh86J%uNJ8L2#=LBh#6w7|5#s51V>`yk5B!Q&5*TE><3ZDcfsuq~M&7WM zY?7)y5ReMTzj|A8zF6**TCH>vs z*Wds5-+wxcwQLwY_y*kTr))n{&$M5y{4BAt1Hj`-X^*!zvF#A@NM+G--{I- zd!Bk;sDhU&TsVd6*lVswPMN+BFk9YYwo+!_DVol`GjB0D$_$>u#Pi*2d&yb|_3x+L z{!_VUF}wY(d7W#B-O&)cld@0E*?UoUQSQghu)6_nPeT!(Z$SA%L(07kvHKcg2PpgF z@*HePIn)rlzajQOL+rtZ*h3Am!<7ATwKv?5a-<=4l(Ii=9Y-j4@YG%I0B1KM?;{)j zQ~E|u>AU!TpZLk?XZGI3m$jRTo;{;Ka#S&K?41bWKXL@)AC;F0(J9&XChI5fnl0P8 zJr$iso(J`d72mRUVQUL@$Kz9zydcY4N=Yo|G*wfCqPkU5G{oI}F67Ge8cqOBkYvP4 zV&)cN=Mzx}@(E?F#OD+sXh1~GTZ&W=lx=<1a#AdP!3!dGf}a9Xe!C93X#^NV zP8_tl9KW^ZQ=*V9DZMX zcZdf@?aFyF-dhlU!ONhyrmZVvb0E*Ws+K_lhlIEzGYJ$`5{k$x5s=1&ythjwakfw@ z7xCPPO|&iRA(?+`-Dg@8w6co2-)<*>np31L^6o*+8DVo>mMpLS6OFoGpJov(&+X|_ zS;>KgqNF7S1y7fHZawa${(V+^4iE<7tkwyBGmd~rP;v`yoWNS|072H)vHOBVMtf60 zl|(DPwqv^q{^%! zVzm--uM1jk9WNg8AIo7nsZ#YzA1>_J5yPq)2@l8K&mYrk-f2x?6oYPIm6U%@!!_!l z1?$R7Ko(WhRHCb*K8$uDH&5f>dF17JJi06cZ2NfrSy_~o zKv4w6+_pjLe4wnyCJR3;th9; z#DhEw3-bxfbd<}Ih@9ke3bl|L%}51cVZIxsk_?1mtudzI-3c2#qk7Ni zKB)Fwf!tNInSegVAB7`VUxba3tNO^*O5#wfj$|OWV73srmGK8*XneQB2#xEZaUA|x zn0{0ZEkSPCJVO{9zUXa#al%(H~i&iMOaU~=cV5t!5ilLv#9Of_&9a`()01n!{l1c4{?z{Ej& zB~cB`L+-BGN#HKVe*yN!cNUG_xZWGz*KlrnX>Pg++(Y3}0*~swqx*?U8qcwp&hb1U zTwwhDaA0P4#u%8<2WAd3hmPvN1IRrzdkNgf_(x&v+KapqyQaskRWfjK89o)OF#x%| z86cD(O@ExMO4g4~iBB8+~k ziO_jWl6g$(12~I^lW<|VI*^6jV>3z^BOhALPYC1Uht_J8Fk&B?>lk6g8Gi`&Pwa+` z{t3MwFW2D!spWoJ%j1MG@qaTuN#H5E-eY9F$MnG1zF1M=XA9N9BIF*K(}Xd@_=jM4 zW;btyXY?>xvK(AmsfM3G?sM}JVf^Hs9WhnGd*UAC?wgkh{3&%2CobZ8fYuC5Eg7lD zdg`%}TGdmlMru<}Z5k<6PpKxu%&|O+zeN0#!+*)wFWLWCUvC&D_$vaneZ`tTCE8bL z!No|y#q?gXBOEZfXe5{QAp9TGrFDk=FFIhGi10Km_t^kwltjzao*6 zFRUH#p{LW3&&Yo+1bK4g7cujl6@A~asWvPAuMm?z6I*envQZaAc z8=hK^xJs`W>u%^i>Wty*2>(_Rs~_A-im2VIODd0uMLjHI>j(E0>-xH;Ji$%!Ylu38 pKTNyLX8Yd7*h2qcBHuE>Z<*#dt}&bI8?V6)>fGS>3~o@F{{boonsxvH literal 0 HcmV?d00001 diff --git a/app/migrations/__pycache__/0045_remove_evacuationdetail_broilerflockrequestid_and_more.cpython-312.pyc b/app/migrations/__pycache__/0045_remove_evacuationdetail_broilerflockrequestid_and_more.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f28900c8e25dbee55bb71cc259cbf098eb1d7522 GIT binary patch literal 8599 zcmcgy%X1US86UkzvJ6HTcEJz)1dH9UWS32{EZHDivJu8$BzYIK4znXoTON5dBW6Z` zAkV5j!=_40#C>L}n7jh`aJCqAMl#4i&8*nHWbtpIJQ0|CBxuXu{ zh8)Trb0`;cD0keU+^|Er6AtB0I+T0Mq1@XJZG$_3>`* z5Z=Y9K6h$*-bG#SxE$xZF6;Y_%la-*eQx#edsN$K*B*ZJ9dWTwtcTeV-*s8v`>y8h z16Ol*$>mr-bXni`T+QA0`*?Sl)9D8;>-(sWzQc6#Wta7R?6STqF6;ZD%lbZXS>KOb z)_0ZabL&)2xTdDq3+XgYMUmVWuT|tw6341XZjc%TGTClgL;V zbqp_H$Qr=YHB~lm5{bx?rb&s4R#Q!jCu1r?M-)GD4T*}mxr+3Pj1^env|-dxQZ$h@ zv_HhCA&aUN$sj|P06lgvZo<*5R?~}U0TEZMA(*u|b_7=TeH%WQw@3}-#H~$51}m|a z$-bGKE*7`&B?}GZNOP7oMYCpDr`qQ@7e!sJl3N%nB9qtzi3B&G(@);U_kuERC8}!pKvi?OP`?>JY4HNx?t)-N z1OY=e1>td25boDRh3FCl-B0>q*m#H!8B%y`vWip*sl~cZZYr&#iM8A{VJ(}=2rIXe zsT)>wUqVKPHIP9S?EzY(UCk#XiH>w~BwNvWO;eDl0vJuJCMw~BiHe37HpS*JhaQ=* z8c8U)Q|Oxi5%7TQ?L!_@~nv0oidL0M7esJ5mj?dT+1)T=O9JN9L&eaWauIg~E z%90?e63(oSE>!D!2pgs!ieBzSM*;nqqVt|kcpBgZ55=!Dxb5~b z;28#=0e%+nJcFMB{Byty3~t*m0$yftJGd>tbp}5N`VGJzGq_!pCxGLZ#g3BB+VOiK zeg?PwUj{tG;I@BR!1E0Lt{p$%1qQeCTLiq!;I{u;fa?ry`)2_D7~`X)Wk(wP2yN)` z-Pr6`XLn+=jo9o{^dffYb;yq!{0Yb>eGcVQup@3V@}sT#lh4f;u`6KV7BKEGjIrI= z6!B=P5u18C{D45!V?L9QNx{8hihTqXR_ zON{(PZ=aTdlVdn%dUMu*bC2On_T~t{*pY5pDsqgQ5jC3`fI>> z#Bi{kgZ|`elN}na6V-?eKPPFaK2zT?LE`x zn+TjT!|9W?E#R08XRdcVHQ@a0O*lUX&b3fyuKVO59iq9;FdV$odgVF`oOOnScR}|q z_%Sdx7)H;&DFLI(F#7m)A2^R0PM^Mc0-Pk@nX^9qnc`{AZek97EgNg_WArJ8qnRep zjOj*f`svK`+}EG}>Fyuz?xfZlskNQdy+-QZPHLl(+Suc`2cBgw{#y0k@&1Q=ZF>I= zU#~gtxa_qbPGIN`V+cPkog2DA4BhtLC5CQ$WnzeY5kqC$&|PZim)G@;=1Xdvw+7&~ z`a)4tH{fkQY_CWK`ojR;<4^4`Ucf&h@V_HmXug8$Uo^Gph>WQ65*~faUxD8npXgh7 uO8(ctAQwV=K99%qO_1|U{*#;g2RHFLc*pMveihjnnrRHpe8Z6$)$%{qB0hcq literal 0 HcmV?d00001 diff --git a/app/migrations/__pycache__/0046_rasadyarappinfo.cpython-312.pyc b/app/migrations/__pycache__/0046_rasadyarappinfo.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a040b7c308becb8063d3a9645025320cac1c34d7 GIT binary patch literal 2365 zcmcguO-vhC5Z*s8Yhw}{2pE%q6OqP74FZW)Rhy(CKoaspS{tOqp<1o|o}D%8U1xU< zaZat2LytLBD#spM;R8LDLk}Dy^|GrXEq$rfN zGjC?RKlJoO7R~c##Ld{xK`{+`!D zc@g-$)|Kz#m}?9Yo-inc`AV!~aDUz813E7?_>A~F-DFrIS=hE!y=-MT5~-?XQ?XS; zw}@CZ5Z0{4;=Tcf>1%IZ{LE4BFq3Byljk@FPLvJ;0~&`a(Zk$LHsB$)%u%n8_7-u7 z2U)n%f7k*N;1@z-vujfbq$LhXK6>CV8b>S1!(7l8n&D1PKtJN^pF9F7G`l-K11|b6 zxSj*JV?J)=2z#OC@dLP+k4qhagD9KvO~^ET;N)H(c_!E&d_y++0NZ~cniD>D>>w(j zY3^`eC4E>@={@6jx3Bu#PQT zMY5tJxoVi09M3A2f*OiBQ>!iLC4+D(TDnTOg}IDCqDtL1@ zAYlues-mfnF^R5WvtU?Q)|DzIJV-M<=|Z@q)HRz(7^${W&@d6}x(er$?!cgoz$$cl zaENZK%L;-+pug2pqa&1j4?svlwy9VTGOS69^M5x@juGs~Xl3){703PET@tW_jtlyqufQ%D3;# z&EF!?HwYD5q=RGIABFN-gU*p+-bhQS>sD6el8H#NO8wwt=<#IFCHyNz~JvrcSoFP?Cc=QrN+ zlIPvz`7OMgyx_zx?!^b4q0GjBH{!ZUBkbLCCKHiI;az-aN z*1XY4cXV>g-WhYUcfIU=H+$d97Tj#X%dWcFRWEC~S*yh`v)o+{mQOg${YjTP_eZe2 zWSG<%6~)&%-{mP9$dsF!+7@=Eo!mVyx8mkjyj;=E6}_D1<}@#7yEz+F=D0l7l({lB zDs$`9C|$tl=|{fN2G{C~^dD;_nE3FIvuikX<;002;j1`+@O diff --git a/app/urls.py b/app/urls.py index abd0ebf..d41facc 100644 --- a/app/urls.py +++ b/app/urls.py @@ -11,9 +11,10 @@ from app.views import get_transport_to_kill, add_kill_house, update_hatching, ge dashboard_province_detail_for_map, TransportCarcassDashboardView, GuildsTransportCarcassDashboardView, \ AllProductsTransportDashboardView, AllProductsTransportProductsListView, update_product_date, \ send_transport_carcass_detail_for_rasadyaar, delete_free_bar_from_rasadyaar, fix_number, \ - get_evacuation_detail_by_request_code, get_evacuation_details_by_request_codes, evacuation_report_type_summary, get_all_products_transport_by_code, \ + get_evacuation_detail_by_request_code, get_evacuation_details_by_request_codes, evacuation_report_type_summary, \ + get_all_products_transport_by_code, \ get_all_products_transport_dashboard_by_code, get_all_products_transport_products_by_code, \ - get_all_products_transport_provinces_by_code + get_all_products_transport_provinces_by_code, get_ai_response router = DefaultRouter() @@ -236,6 +237,7 @@ urlpatterns = [ path('get-all-products-transport-products-by-code/', get_all_products_transport_products_by_code), path('get-all-products-transport-provinces-by-code/', get_all_products_transport_provinces_by_code), path('all_products_transport_excel/', all_products_transport_excel), + path('get_ai_response/', get_ai_response), ] diff --git a/app/views.py b/app/views.py index a1797e9..4e29fda 100644 --- a/app/views.py +++ b/app/views.py @@ -26,7 +26,7 @@ from app.filtersets import PoultryFilterSet, PoultryHatchingFilterSet, Transport PoultryInfoFilterSet, HatchingCalculationsFilterSet, HatchingsFilterSet, TransportingDetailFilterSet, \ KillHouseFilterSet, TransportingDetailCustomFilterSet, CustomHatchingsFilterSet, TransportCarcassDetailFilterSet, \ DriverFilterSet, GuildsFilterSet, AllProductsTransportFilterSet -from app.helper import SSLAdapter, get_hatching_permit_code, normalize_persian_arabic_text +from app.helper import SSLAdapter, get_hatching_permit_code, normalize_persian_arabic_text, apply_date_filter from app.models import Poultry, PoultryHatching, TransportingChickenDetail, Hatching, TransportingDetail, KillHouse, \ ApkInfo, TransportCarcassDetail, Guilds, Driver, InquiryCredentials, AllProductsTransport, EvacuationDetail, \ RasadyarAppInfo @@ -987,7 +987,7 @@ class HatchingsCustomViewSet(viewsets.ModelViewSet): if poultry: hatching.poultry = poultry hatching.save() - + allowed_evacuation_fields = { 'PartIdCode', 'RequestId', 'MoReportId', 'ReportType', 'ReportTypeString', 'ReportDate', 'ReportDateShamsi', 'MoReason', 'MoDate', 'MoDateShamsi', @@ -1308,7 +1308,7 @@ class TransportingDashboardViewSet(viewsets.ModelViewSet): date__gte=date1, date__lte=date2, date__isnull=False - + ) except ValueError: pass @@ -1443,31 +1443,31 @@ class TransportingDetailViewSet(viewsets.ModelViewSet): # Query برای AllProductsTransport با product='مرغ زنده -جهت كشتار' query_all_products = AllProductsTransport.objects.filter( - trash=False, + trash=False, product='مرغ زنده -جهت كشتار' ) - + # اعمال فیلترها روی AllProductsTransport if PartIdCode: query_all_products = query_all_products.filter(jihadi_destination=PartIdCode) - + if RequestCode: query_all_products = query_all_products.filter(hatching__RequestCode=RequestCode) - + if date1 and date2: query_all_products = query_all_products.filter( date__gte=date1, date__lte=date2, date__isnull=False - + ) - + if city: query_all_products = query_all_products.filter(destination_city__icontains=city) - + if province: query_all_products = query_all_products.filter(destination_province__icontains=province) - + if search: if search != 'undefined' and search.strip(): transports = transports.filter( @@ -1477,11 +1477,11 @@ class TransportingDetailViewSet(viewsets.ModelViewSet): query_all_products = query_all_products.filter( build_query(AllProductsTransportFilterSet.Meta.fields, search) ) - + # تبدیل به list و ترکیب transports_list = list(transports) all_products_list = list(query_all_products) - + # تبدیل AllProductsTransport به TransportingDetail-like objects برای sort def get_sort_date(obj): if hasattr(obj, 'Date') and obj.Date: @@ -1494,13 +1494,13 @@ class TransportingDetailViewSet(viewsets.ModelViewSet): elif hasattr(obj, 'unloading_date') and obj.unloading_date: return obj.unloading_date return datetime.date.min - + combined_list = [] for obj in transports_list: combined_list.append((get_sort_date(obj), 'transporting', obj)) for obj in all_products_list: combined_list.append((get_sort_date(obj), 'all_products', obj)) - + combined_list.sort(key=lambda x: x[0], reverse=True) sorted_objects = [obj for _, _, obj in combined_list] @@ -1510,7 +1510,7 @@ class TransportingDetailViewSet(viewsets.ModelViewSet): paginator = self.pagination_class() page = paginator.paginate_queryset(sorted_objects, request) - + if page is not None: serialized_data = [] for obj in page: @@ -1667,25 +1667,25 @@ class TotalKillHousesViewSet(viewsets.ModelViewSet): self.pagination_class.page_size = int(page_size) page = self.paginate_queryset(kill_houses) - + items_to_serialize = page if page is not None else kill_houses part_id_codes = list(kill_houses.values_list('PartIdCode', flat=True).distinct()) info_cache = {} - + if part_id_codes: date1 = request.GET.get('date1') or None date2 = request.GET.get('date2') or None - + bars_query = TransportingDetail.objects.filter( - DesPartIdCode__in=part_id_codes, + DesPartIdCode__in=part_id_codes, trash=False ).only('DesPartIdCode', 'GoodAmount', 'Out', 'Date') - + if date1: date1_obj = datetime.datetime.strptime(str(date1), '%Y-%m-%d').date() date2_obj = datetime.datetime.strptime(str(date2), '%Y-%m-%d').date() bars_query = bars_query.filter(Date__date__gte=date1_obj, Date__date__lte=date2_obj) - + bars_aggregations = bars_query.values('DesPartIdCode').annotate( total=Sum('GoodAmount'), input_total=Sum('GoodAmount', filter=Q(Out=False)), @@ -1694,21 +1694,21 @@ class TotalKillHousesViewSet(viewsets.ModelViewSet): output_count=Count('id', filter=Q(Out=True)), total_count=Count('id') ) - + all_products_query = AllProductsTransport.objects.filter( jihadi_destination__in=part_id_codes, trash=False, product='مرغ زنده -جهت كشتار' ).only('jihadi_destination', 'quantity', 'out', 'date', 'unloading_date') - + if date1: all_products_query = all_products_query.filter( date__gte=date1_obj, date__lte=date2_obj, date__isnull=False - + ) - + all_products_aggregations = all_products_query.values('jihadi_destination').annotate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -1717,28 +1717,28 @@ class TotalKillHousesViewSet(viewsets.ModelViewSet): output_count=Count('id', filter=Q(out=True)), total_count=Count('id') ) - + bars_dict = {item['DesPartIdCode']: item for item in bars_aggregations} all_products_dict = {item['jihadi_destination']: item for item in all_products_aggregations} - + for part_id_code in part_id_codes: bars_data = bars_dict.get(part_id_code, {}) all_products_data = all_products_dict.get(part_id_code, {}) - + total_count = (bars_data.get('total_count') or 0) + (all_products_data.get('total_count') or 0) total_bars_quantity = (bars_data.get('total') or 0) + (all_products_data.get('total') or 0) total_input_bars_quantity = (bars_data.get('input_total') or 0) + (all_products_data.get('input_total') or 0) total_output_bars_quantity = (bars_data.get('output_total') or 0) + (all_products_data.get('output_total') or 0) input_bars_count = (bars_data.get('input_count') or 0) + (all_products_data.get('input_count') or 0) output_bars_count = (bars_data.get('output_count') or 0) + (all_products_data.get('output_count') or 0) - + if total_count > 0: total_input_bars_percent = round((input_bars_count / total_count) * 100, 1) total_output_bars_percent = round((output_bars_count / total_count) * 100, 1) else: total_input_bars_percent = 0 total_output_bars_percent = 0 - + info_cache[part_id_code] = { "bars": total_count, "total_bars_quantity": total_bars_quantity, @@ -2259,7 +2259,7 @@ def dashboard_total_kill_house(request): build_query(filterset_class.Meta.fields, search) ) part_id_codes = list(kill_houses.values_list('PartIdCode', flat=True)) - + if not part_id_codes: return Response({ "killHouseCount": 0, @@ -2274,12 +2274,12 @@ def dashboard_total_kill_house(request): "low_kill_house_name": None, "low_kill_house_amount": None, }) - + # بهینه‌سازی: استفاده از only() برای کاهش داده‌های خوانده شده bars = TransportingDetail.objects.filter(DesPartIdCode__in=part_id_codes, trash=False).only('DesPartIdCode', 'GoodAmount', 'Out', 'Date') - + all_products_transport = AllProductsTransport.objects.filter( - jihadi_destination__in=part_id_codes, + jihadi_destination__in=part_id_codes, trash=False, product='مرغ زنده -جهت كشتار' ).only('jihadi_destination', 'quantity', 'out', 'date', 'unloading_date') @@ -2292,27 +2292,27 @@ def dashboard_total_kill_house(request): date__gte=date1, date__lte=date2, date__isnull=False - + ) # بهینه‌سازی: ترکیب aggregation ها در یک query kill_house_stats_bars = bars.values('DesPartIdCode').annotate( total_amount=Sum('GoodAmount') ) - + kill_house_stats_all_products = all_products_transport.values('jihadi_destination').annotate( total_amount=Sum('quantity') ) - + # بهینه‌سازی: استفاده از dictionary comprehension stats_dict = {stat['DesPartIdCode']: (stat['total_amount'] or 0) for stat in kill_house_stats_bars} - + for stat in kill_house_stats_all_products: part_id = stat['jihadi_destination'] stats_dict[part_id] = stats_dict.get(part_id, 0) + (stat['total_amount'] or 0) - + kill_house_stats = [ - {'DesPartIdCode': k, 'total_amount': v} + {'DesPartIdCode': k, 'total_amount': v} for k, v in sorted(stats_dict.items(), key=lambda x: x[1], reverse=True) ] @@ -2325,10 +2325,10 @@ def dashboard_total_kill_house(request): # بهینه‌سازی: یک query برای هر دو kill house kill_house_part_ids = [top_stat['DesPartIdCode'], low_stat['DesPartIdCode']] kill_houses_dict = {kh.PartIdCode: kh for kh in KillHouse.objects.filter(PartIdCode__in=kill_house_part_ids).only('PartIdCode', 'UnitName')} - + top_kill_house = kill_houses_dict.get(top_stat['DesPartIdCode']) low_kill_house = kill_houses_dict.get(low_stat['DesPartIdCode']) - + if top_kill_house: top_kill_house_info = { "name": top_kill_house.UnitName, @@ -2349,7 +2349,7 @@ def dashboard_total_kill_house(request): output_count=Count('id', filter=Q(Out=True)), total_count=Count('id') ) - + aggregation_all_products = all_products_transport.aggregate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -2732,7 +2732,7 @@ class RasadyarAppInfoViewSet(viewsets.ModelViewSet): uploaded_file = request.FILES['file'] file_extension = uploaded_file.name.split('.')[-1] if '.' in uploaded_file.name else '' unique_filename = f"rasadyar_app_info_{uuid.uuid4().hex}.{file_extension}" if file_extension else f"rasadyar_app_info_{uuid.uuid4().hex}" - + file_url = upload_to_liara(uploaded_file, unique_filename) instance.file = file_url @@ -2792,17 +2792,17 @@ class TransportCarcassDetailViewSet(viewsets.ModelViewSet): date1 = request.GET.get('date1') code = request.GET.get('code') filters={} - + # Query برای TransportCarcassDetail query_carcass = self.queryset.filter(jihadi_origin=code) - + # Query برای AllProductsTransport با product='گوشت مرغ تازه' query_all_products = AllProductsTransport.objects.filter( - trash=False, + trash=False, product='گوشت مرغ تازه', jihadi_origin=code ) - + if date1: date1 = datetime.datetime.strptime(str(request.GET['date1']), '%Y-%m-%d').date() @@ -2821,13 +2821,13 @@ class TransportCarcassDetailViewSet(viewsets.ModelViewSet): ) ) query_all_products = query_all_products.filter( - + date__gte=date1, date__lte=date2, date__isnull=False - + ) - + if search: if search != 'undefined' and search.strip(): query_carcass = query_carcass.filter( @@ -2837,11 +2837,11 @@ class TransportCarcassDetailViewSet(viewsets.ModelViewSet): query_all_products = query_all_products.filter( build_query(AllProductsTransportFilterSet.Meta.fields, search) ) - + # تبدیل به list و ترکیب carcass_list = list(query_carcass) all_products_list = list(query_all_products) - + # تبدیل AllProductsTransport به TransportCarcassDetail-like objects برای sort def get_sort_date(obj): if hasattr(obj, 'product_date') and obj.product_date: @@ -2851,17 +2851,17 @@ class TransportCarcassDetailViewSet(viewsets.ModelViewSet): elif hasattr(obj, 'unloading_date') and obj.unloading_date: return obj.unloading_date return datetime.date.min - + # ایجاد یک list ترکیبی با tuple (date, source_type, obj) combined_list = [] for obj in carcass_list: combined_list.append((get_sort_date(obj), 'carcass', obj)) for obj in all_products_list: combined_list.append((get_sort_date(obj), 'all_products', obj)) - + # sort بر اساس date (از جدید به قدیم) combined_list.sort(key=lambda x: x[0], reverse=True) - + # جدا کردن objects sorted_objects = [obj for _, _, obj in combined_list] @@ -2872,7 +2872,7 @@ class TransportCarcassDetailViewSet(viewsets.ModelViewSet): # Pagination روی list paginator = self.pagination_class() page = paginator.paginate_queryset(sorted_objects, request) - + if page is not None: # Serialize هر object با serializer مناسب serialized_data = [] @@ -3407,12 +3407,12 @@ class TransportCarcassDashboardView(APIView): TrackingStatusDescription__in=("تایید تخلیه",'بارگیری')).only( 'GoodAmount', 'Out') all_products_transport_carcass = AllProductsTransport.objects.filter( - trash=False, + trash=False, product='گوشت مرغ تازه', jihadi_origin__in=kill_house ) all_products_transport = AllProductsTransport.objects.filter( - trash=False, + trash=False, product='مرغ زنده -جهت كشتار', jihadi_destination__in=kill_house ) @@ -3635,21 +3635,21 @@ class TransportCarcassDashboardView(APIView): }) return Response('ok', status=status.HTTP_200_OK) - + def _get_last_update_date_for_dashboard(self, queryset1, queryset2): """تابع helper برای دریافت آخرین تاریخ به‌روزرسانی از دو queryset""" dates = [] - + if queryset1.exists(): first_obj = queryset1.first() if first_obj and hasattr(first_obj, 'modify_date') and first_obj.modify_date: dates.append(first_obj.modify_date) - + if queryset2.exists(): first_obj = queryset2.first() if first_obj and hasattr(first_obj, 'modify_date') and first_obj.modify_date: dates.append(first_obj.modify_date) - + return max(dates) if dates else None @@ -3671,18 +3671,18 @@ class GuildsTransportCarcassViewSet(viewsets.ModelViewSet): code = request.GET.get('code') date1 = request.GET.get('date1') filters={} - + query_carcass = TransportCarcassDetail.objects.filter( jihadi_destination=code, trash=False ) - + query_all_products = AllProductsTransport.objects.filter( - trash=False, + trash=False, product='گوشت مرغ تازه', jihadi_destination=code ) - + if date1: date1 = datetime.datetime.strptime(str(request.GET['date1']), '%Y-%m-%d').date() date2 = datetime.datetime.strptime(str(request.GET['date2']), '%Y-%m-%d').date() @@ -3702,9 +3702,9 @@ class GuildsTransportCarcassViewSet(viewsets.ModelViewSet): date__gte=date1, date__lte=date2, date__isnull=False - + ) - + if search and search != 'undefined' and search.strip(): query_carcass = query_carcass.filter( build_query(self.filterset_class.Meta.fields, search) @@ -3712,10 +3712,10 @@ class GuildsTransportCarcassViewSet(viewsets.ModelViewSet): query_all_products = query_all_products.filter( build_query(AllProductsTransportFilterSet.Meta.fields, search) ) - + carcass_list = list(query_carcass) all_products_list = list(query_all_products) - + def get_sort_date(obj): if hasattr(obj, 'product_date') and obj.product_date: return obj.product_date @@ -3724,13 +3724,13 @@ class GuildsTransportCarcassViewSet(viewsets.ModelViewSet): elif hasattr(obj, 'unloading_date') and obj.unloading_date: return obj.unloading_date return datetime.date.min - + combined_list = [] for obj in carcass_list: combined_list.append((get_sort_date(obj), 'carcass', obj)) for obj in all_products_list: combined_list.append((get_sort_date(obj), 'all_products', obj)) - + combined_list.sort(key=lambda x: x[0], reverse=True) sorted_objects = [obj for _, _, obj in combined_list] @@ -3740,7 +3740,7 @@ class GuildsTransportCarcassViewSet(viewsets.ModelViewSet): paginator = self.pagination_class() page = paginator.paginate_queryset(sorted_objects, request) - + if page is not None: serialized_data = [] for obj in page: @@ -3791,11 +3791,11 @@ class GuildsTransportCarcassViewSet(viewsets.ModelViewSet): jihadi_destination__in=steward_jihadi_codes ).order_by('-product_date') all_products_transport = AllProductsTransport.objects.filter( - trash=False, + trash=False, product='گوشت مرغ تازه', jihadi_destination__in=steward_jihadi_codes ) - + if date1: date1 = datetime.datetime.strptime(str(date1), '%Y-%m-%d').date() date2 = datetime.datetime.strptime(str(date2), '%Y-%m-%d').date() @@ -3866,7 +3866,7 @@ class GuildsTransportCarcassViewSet(viewsets.ModelViewSet): if st.jihadi_code and st.jihadi_code not in seen_jihadi_codes: seen_jihadi_codes.add(st.jihadi_code) unique_stewards.append(st) - + unique_stewards.sort( key=lambda st: (bars_dict.get(st.jihadi_code, {}) or {}).get('total_ware_house', 0) or 0, reverse=True @@ -3920,7 +3920,7 @@ class GuildsTransportCarcassDashboardView(APIView): product='گوشت مرغ تازه', jihadi_destination__in=steward ) - + if date1: date1 = datetime.datetime.strptime(str(date1), '%Y-%m-%d').date() date2 = datetime.datetime.strptime(str(date2), '%Y-%m-%d').date() @@ -4160,14 +4160,14 @@ def send_transport_carcass_detail_for_rasadyaar(request): quarantine_bars = list(bars.values_list('tracking',flat=True).distinct()) quarantine_buy = list(buy_bars.values_list('TrackingCode',flat=True).distinct()) all_track = quarantine_bars + quarantine_buy - + all_products_carcass = AllProductsTransport.objects.filter( - date__gte=date1, + date__gte=date1, date__lte=date2, trash=False, product='گوشت مرغ تازه' ).exclude(tracking__in=all_track).only('quantity','out','id','jihadi_origin', 'tracking') - + all_products_live = AllProductsTransport.objects.filter( date__gte=date_1_for_buy_bars, date__lte=date_2_for_buy_bars, date__isnull=False, trash=False, @@ -4182,7 +4182,7 @@ def send_transport_carcass_detail_for_rasadyaar(request): output_count=Count('id', filter=Q(out=True)), total_count=Count('id'), ) - + all_products_carcass_summary = all_products_carcass.values('jihadi_origin').annotate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -4200,7 +4200,7 @@ def send_transport_carcass_detail_for_rasadyaar(request): output_count=Count('id', filter=Q(Out=True)), total_count=Count('id'), ) - + all_products_live_summary = all_products_live.values('jihadi_destination').annotate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -4267,7 +4267,7 @@ def send_transport_carcass_detail_for_rasadyaar(request): buy_dict[key]['input_count'] += row['input_count'] or 0 buy_dict[key]['output_count'] += row['output_count'] or 0 buy_dict[key]['total_count'] += row['total_count'] or 0 - + for row in all_products_live_summary: key = row['jihadi_destination'] if key: @@ -4353,16 +4353,16 @@ def get_evacuation_details_by_request_codes(request): result = {} hatchings = Hatching.objects.filter(RequestCode__in=request_codes, trash=False) - + for hatching in hatchings: evacuations = EvacuationDetail.objects.filter(hatching=hatching, trash=False).order_by('-create_date') serializer = EvacuationDetailSerializer(evacuations, many=True) result[hatching.RequestCode] = serializer.data - + for code in request_codes: if code not in result: result[code] = [] - + return Response(result, status=status.HTTP_200_OK) @@ -4393,23 +4393,23 @@ class EvacuationDetailViewSet(viewsets.ModelViewSet): def create(self, request, *args, **kwargs): data_list = request.data if isinstance(request.data, list) else [request.data] - + total_created = 0 total_updated = 0 - + for item_data in data_list: evacuation_details = item_data.get('EvacuationDetail', []) if not evacuation_details or len(evacuation_details) == 0: continue - + request_code = item_data.get('RequestCode') if not request_code: continue - + hatching = Hatching.objects.filter(RequestCode=request_code, trash=False).first() if not hatching: continue - + for evacuation_data in evacuation_details: clean_data = evacuation_data.copy() external_id = clean_data.pop('Id', None) @@ -4421,7 +4421,7 @@ class EvacuationDetailViewSet(viewsets.ModelViewSet): ExternalId=external_id, trash=False ).first() - + if evacuation: for key, value in clean_data.items(): setattr(evacuation, key, value) @@ -4432,7 +4432,7 @@ class EvacuationDetailViewSet(viewsets.ModelViewSet): clean_data['hatching'] = hatching EvacuationDetail.objects.create(**clean_data) total_created += 1 - + return Response({ "result": "با موفقیت ثبت شد", "created": total_created, @@ -4441,14 +4441,14 @@ class EvacuationDetailViewSet(viewsets.ModelViewSet): def list(self, request, *args, **kwargs): evacuations = self.filter_queryset(self.get_queryset()) - + search = request.GET.get('search') if search: if search != 'undefined' and search.strip(): evacuations = evacuations.filter( build_query(['TrackingCode', 'SourceUnitName', 'DesUnitName'], search) ) - + page_size = request.query_params.get('page_size', None) if page_size: self.pagination_class.page_size = int(page_size) @@ -4557,7 +4557,7 @@ class AllProductsTransportViewSet(viewsets.ModelViewSet): location_cache = {} context = self.get_serializer_context() context['location_cache'] = location_cache - + if page is not None: serializer = self.get_serializer(page, many=True, context=context) return self.get_paginated_response(serializer.data) @@ -4635,7 +4635,7 @@ class AllProductsTransportViewSet(viewsets.ModelViewSet): continue row_data = dict(zip(headers, row)) - + tracking_val = row_data.get("کد رهگیری") or row_data.get("رهگیری") province_name = row_data.get("شهرستان مقصد") or row_data.get("شهرستان مقصد") jihadi_origin_code = row_data.get("ش جهادی مبدا") or row_data.get("ش جهادی مبدا") @@ -4654,7 +4654,7 @@ class AllProductsTransportViewSet(viewsets.ModelViewSet): for col_name, model_field in field_map.items(): if col_name in row_data: value = row_data[col_name] - + if model_field in ["date", "unloading_date"] and value: try: if isinstance(value, str): @@ -4669,7 +4669,7 @@ class AllProductsTransportViewSet(viewsets.ModelViewSet): value = convert_to_miladi(value.year, value.month, value.day) except (ValueError, AttributeError, IndexError): value = None - + if model_field == "quantity" and value: try: if isinstance(value, str): @@ -4678,7 +4678,7 @@ class AllProductsTransportViewSet(viewsets.ModelViewSet): value = float(value) except (ValueError, TypeError): value = None - + if model_field in ["gross_weight", "tare_weight", "net_weight"] and value: try: if isinstance(value, str): @@ -4687,7 +4687,7 @@ class AllProductsTransportViewSet(viewsets.ModelViewSet): value = float(value) except (ValueError, TypeError): value = None - + record_data[model_field] = value hatching_obj = None @@ -4718,12 +4718,12 @@ class AllProductsTransportViewSet(viewsets.ModelViewSet): if hatching_obj: new_record.hatching = hatching_obj new_record.save() - + if new_record.destination_province and new_record.origin_province: if new_record.destination_province != new_record.origin_province: new_record.out = True new_record.save() - + created_count += 1 return Response({ @@ -4978,7 +4978,7 @@ def _convert_transporting_detail_to_unified(obj): 'RequestCode': obj.hatching.RequestCode, 'PedigreeName': obj.hatching.PedigreeName, } - + return { 'id': obj.id, 'key': str(obj.key), @@ -5075,7 +5075,7 @@ def _convert_all_products_to_unified(obj): 'RequestCode': obj.hatching.RequestCode, 'PedigreeName': obj.hatching.PedigreeName, } - + return { 'id': obj.id, 'key': str(obj.key), @@ -5120,24 +5120,24 @@ def get_all_products_transport_by_code(request): code = request.GET.get('code') if not code: return Response( - {'detail': 'کد الزامی است'}, + {'detail': 'کد الزامی است'}, status=status.HTTP_400_BAD_REQUEST ) - + transport_type = request.GET.get('type') if transport_type not in ['in', 'out']: return Response( - {'detail': 'نوع باید in یا out باشد'}, + {'detail': 'نوع باید in یا out باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + from_source = request.GET.get('from') if from_source and from_source not in ['Poultry', 'KillHouse']: return Response( - {'detail': 'from باید Poultry یا KillHouse باشد'}, + {'detail': 'from باید Poultry یا KillHouse باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + date1 = request.GET.get('date1') date2 = request.GET.get('date2') start_date = None @@ -5148,14 +5148,14 @@ def get_all_products_transport_by_code(request): end_date = datetime.datetime.strptime(str(date2), '%Y-%m-%d') except ValueError: pass - + province = request.GET.get('province') product_type = request.GET.get('product') search = request.GET.get('search') - + unified_results = [] seen_tracking_codes = set() - + def add_if_not_duplicate(item): tracking = item.get('tracking') if tracking and tracking in seen_tracking_codes: @@ -5164,7 +5164,7 @@ def get_all_products_transport_by_code(request): seen_tracking_codes.add(tracking) unified_results.append(item) return True - + if from_source == 'Poultry': if transport_type == 'out': all_products = AllProductsTransport.objects.filter( @@ -5177,10 +5177,10 @@ def get_all_products_transport_by_code(request): all_products = all_products.filter(destination_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + for obj in all_products: add_if_not_duplicate(_convert_all_products_to_unified(obj)) - + transport_details = TransportingDetail.objects.filter( trash=False, hatching__poultry__PartIdCode=code, @@ -5190,7 +5190,7 @@ def get_all_products_transport_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(Province=province) - + for obj in transport_details: add_if_not_duplicate(_convert_transporting_detail_to_unified(obj)) else: @@ -5204,10 +5204,10 @@ def get_all_products_transport_by_code(request): all_products = all_products.filter(origin_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + for obj in all_products: add_if_not_duplicate(_convert_all_products_to_unified(obj)) - + elif from_source == 'KillHouse': if transport_type == 'out': carcass_details = TransportCarcassDetail.objects.filter( @@ -5220,7 +5220,7 @@ def get_all_products_transport_by_code(request): carcass_details = carcass_details.filter(destination_province=province) if product_type and product_type != 'undefined': carcass_details = carcass_details.filter(product=product_type) - + for obj in carcass_details: add_if_not_duplicate(_convert_transport_carcass_to_unified(obj)) else: @@ -5233,10 +5233,10 @@ def get_all_products_transport_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(hatching__ProvinceName=province) - + for obj in transport_details: add_if_not_duplicate(_convert_transporting_detail_to_unified(obj)) - + else: if transport_type == 'out': bars = AllProductsTransport.objects.filter( @@ -5248,7 +5248,7 @@ def get_all_products_transport_by_code(request): trash=False, jihadi_destination=code ) - + if start_date and end_date: bars = bars.filter(date__gte=start_date, date__lte=end_date) if province and province != 'undefined': @@ -5258,10 +5258,10 @@ def get_all_products_transport_by_code(request): bars = bars.filter(origin_province=province) if product_type and product_type != 'undefined': bars = bars.filter(product=product_type) - + for obj in bars: add_if_not_duplicate(_convert_all_products_to_unified(obj)) - + if search and search != 'undefined' and search.strip(): search_lower = search.lower() unified_results = [ @@ -5273,19 +5273,19 @@ def get_all_products_transport_by_code(request): (r.get('driver_name') and search_lower in str(r['driver_name']).lower()) or (r.get('owner') and search_lower in str(r['owner']).lower()) ] - + unified_results.sort(key=lambda x: x.get('date') or datetime.date.min, reverse=True) - + paginator = CustomPagination() page_size = request.query_params.get('page_size', None) if page_size: paginator.page_size = int(page_size) - + page_number = int(request.query_params.get('page', 1)) start_index = (page_number - 1) * paginator.page_size end_index = start_index + paginator.page_size paginated_results = unified_results[start_index:end_index] - + return Response({ 'count': len(unified_results), 'next': f"?page={page_number + 1}" if end_index < len(unified_results) else None, @@ -5301,24 +5301,24 @@ def get_all_products_transport_products_by_code(request): code = request.GET.get('code') if not code: return Response( - {'detail': 'کد الزامی است'}, + {'detail': 'کد الزامی است'}, status=status.HTTP_400_BAD_REQUEST ) - + transport_type = request.GET.get('type') if transport_type not in ['in', 'out']: return Response( - {'detail': 'نوع باید in یا out باشد'}, + {'detail': 'نوع باید in یا out باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + from_source = request.GET.get('from') if from_source and from_source not in ['Poultry', 'KillHouse']: return Response( - {'detail': 'from باید Poultry یا KillHouse باشد'}, + {'detail': 'from باید Poultry یا KillHouse باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + date1 = request.GET.get('date1') date2 = request.GET.get('date2') start_date = None @@ -5329,13 +5329,13 @@ def get_all_products_transport_products_by_code(request): end_date = datetime.datetime.strptime(str(date2), '%Y-%m-%d') except ValueError: pass - + province = request.GET.get('province') product_type = request.GET.get('product') search = request.GET.get('search') - - products_set = set() - + + products_set = set() + if from_source == 'Poultry': if transport_type == 'out': all_products = AllProductsTransport.objects.filter( @@ -5348,14 +5348,14 @@ def get_all_products_transport_products_by_code(request): all_products = all_products.filter(destination_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + products_set.update( all_products.filter(product__isnull=False) .exclude(product='') .values_list('product', flat=True) .distinct() ) - + transport_details = TransportingDetail.objects.filter( trash=False, hatching__poultry__PartIdCode=code, @@ -5365,7 +5365,7 @@ def get_all_products_transport_products_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(Province=province) - + products_set.update( transport_details.filter(GoodName__isnull=False) .exclude(GoodName='') @@ -5383,14 +5383,14 @@ def get_all_products_transport_products_by_code(request): all_products = all_products.filter(origin_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + products_set.update( all_products.filter(product__isnull=False) .exclude(product='') .values_list('product', flat=True) .distinct() ) - + elif from_source == 'KillHouse': if transport_type == 'out': carcass_details = TransportCarcassDetail.objects.filter( @@ -5403,7 +5403,7 @@ def get_all_products_transport_products_by_code(request): carcass_details = carcass_details.filter(destination_province=province) if product_type and product_type != 'undefined': carcass_details = carcass_details.filter(product=product_type) - + products_set.update( carcass_details.filter(product__isnull=False) .exclude(product='') @@ -5420,14 +5420,14 @@ def get_all_products_transport_products_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(hatching__ProvinceName=province) - + products_set.update( transport_details.filter(GoodName__isnull=False) .exclude(GoodName='') .values_list('GoodName', flat=True) .distinct() ) - + else: if transport_type == 'out': bars = AllProductsTransport.objects.filter( @@ -5439,7 +5439,7 @@ def get_all_products_transport_products_by_code(request): trash=False, jihadi_destination=code ) - + if start_date and end_date: bars = bars.filter(date__gte=start_date, date__lte=end_date) if province and province != 'undefined': @@ -5456,16 +5456,16 @@ def get_all_products_transport_products_by_code(request): .values_list('product', flat=True) .distinct() ) - + if search and search != 'undefined' and search.strip(): search_lower = search.lower() products_set = { p for p in products_set if p and search_lower in str(p).lower() } - + products = sorted([p for p in products_set if p], key=str) - + return Response({ "products": products }, status=status.HTTP_200_OK) @@ -5478,24 +5478,24 @@ def get_all_products_transport_provinces_by_code(request): code = request.GET.get('code') if not code: return Response( - {'detail': 'کد الزامی است'}, + {'detail': 'کد الزامی است'}, status=status.HTTP_400_BAD_REQUEST ) - + transport_type = request.GET.get('type') if transport_type not in ['in', 'out']: return Response( - {'detail': 'نوع باید in یا out باشد'}, + {'detail': 'نوع باید in یا out باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + from_source = request.GET.get('from') if from_source and from_source not in ['Poultry', 'KillHouse']: return Response( - {'detail': 'from باید Poultry یا KillHouse باشد'}, + {'detail': 'from باید Poultry یا KillHouse باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + date1 = request.GET.get('date1') date2 = request.GET.get('date2') start_date = None @@ -5506,12 +5506,12 @@ def get_all_products_transport_provinces_by_code(request): end_date = datetime.datetime.strptime(str(date2), '%Y-%m-%d') except ValueError: pass - + province = request.GET.get('province') product_type = request.GET.get('product') search = request.GET.get('search') - provinces_set = set() - + provinces_set = set() + if from_source == 'Poultry': if transport_type == 'out': all_products = AllProductsTransport.objects.filter( @@ -5524,14 +5524,14 @@ def get_all_products_transport_provinces_by_code(request): all_products = all_products.filter(destination_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + provinces_set.update( all_products.filter(destination_province__isnull=False) .exclude(destination_province='') .values_list('destination_province', flat=True) .distinct() ) - + transport_details = TransportingDetail.objects.filter( trash=False, hatching__poultry__PartIdCode=code, @@ -5541,7 +5541,7 @@ def get_all_products_transport_provinces_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(Province=province) - + provinces_set.update( transport_details.filter(Province__isnull=False) .exclude(Province='') @@ -5559,14 +5559,14 @@ def get_all_products_transport_provinces_by_code(request): all_products = all_products.filter(origin_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + provinces_set.update( all_products.filter(origin_province__isnull=False) .exclude(origin_province='') .values_list('origin_province', flat=True) .distinct() ) - + elif from_source == 'KillHouse': if transport_type == 'out': carcass_details = TransportCarcassDetail.objects.filter( @@ -5579,7 +5579,7 @@ def get_all_products_transport_provinces_by_code(request): carcass_details = carcass_details.filter(destination_province=province) if product_type and product_type != 'undefined': carcass_details = carcass_details.filter(product=product_type) - + provinces_set.update( carcass_details.filter(destination_province__isnull=False) .exclude(destination_province='') @@ -5596,14 +5596,14 @@ def get_all_products_transport_provinces_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(hatching__ProvinceName=province) - + provinces_set.update( transport_details.filter(hatching__ProvinceName__isnull=False) .exclude(hatching__ProvinceName='') .values_list('hatching__ProvinceName', flat=True) .distinct() ) - + else: if transport_type == 'out': bars = AllProductsTransport.objects.filter( @@ -5615,7 +5615,7 @@ def get_all_products_transport_provinces_by_code(request): trash=False, jihadi_destination=code ) - + if start_date and end_date: bars = bars.filter(date__gte=start_date, date__lte=end_date) if province and province != 'undefined': @@ -5625,7 +5625,7 @@ def get_all_products_transport_provinces_by_code(request): bars = bars.filter(origin_province=province) if product_type and product_type != 'undefined': bars = bars.filter(product=product_type) - + if transport_type == 'out': provinces_set.update( bars.filter(destination_province__isnull=False) @@ -5640,16 +5640,16 @@ def get_all_products_transport_provinces_by_code(request): .values_list('origin_province', flat=True) .distinct() ) - + if search and search != 'undefined' and search.strip(): search_lower = search.lower() provinces_set = { p for p in provinces_set if p and search_lower in str(p).lower() } - + provinces = sorted([p for p in provinces_set if p], key=str) - + return Response({ "provinces": provinces }, status=status.HTTP_200_OK) @@ -5662,24 +5662,24 @@ def get_all_products_transport_dashboard_by_code(request): code = request.GET.get('code') if not code: return Response( - {'detail': 'کد الزامی است'}, + {'detail': 'کد الزامی است'}, status=status.HTTP_400_BAD_REQUEST ) - + transport_type = request.GET.get('type') if transport_type not in ['in', 'out']: return Response( - {'detail': 'نوع باید in یا out باشد'}, + {'detail': 'نوع باید in یا out باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + from_source = request.GET.get('from') if from_source and from_source not in ['Poultry', 'KillHouse']: return Response( - {'detail': 'from باید Poultry یا KillHouse باشد'}, + {'detail': 'from باید Poultry یا KillHouse باشد'}, status=status.HTTP_400_BAD_REQUEST ) - + date1 = request.GET.get('date1') date2 = request.GET.get('date2') start_date = None @@ -5690,11 +5690,11 @@ def get_all_products_transport_dashboard_by_code(request): end_date = datetime.datetime.strptime(str(date2), '%Y-%m-%d') except ValueError: pass - + province = request.GET.get('province') product_type = request.GET.get('product') search = request.GET.get('search') - + total_count = 0 total_quantity = 0 input_quantity = 0 @@ -5702,7 +5702,7 @@ def get_all_products_transport_dashboard_by_code(request): input_count = 0 output_count = 0 last_update = None - + if from_source == 'Poultry': if transport_type == 'out': all_products = AllProductsTransport.objects.filter( @@ -5715,7 +5715,7 @@ def get_all_products_transport_dashboard_by_code(request): all_products = all_products.filter(destination_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + agg = all_products.aggregate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -5733,7 +5733,7 @@ def get_all_products_transport_dashboard_by_code(request): output_count += agg['output_cnt'] or 0 if agg['last_mod'] and (not last_update or agg['last_mod'] > last_update): last_update = agg['last_mod'] - + transport_details = TransportingDetail.objects.filter( trash=False, hatching__poultry__PartIdCode=code, @@ -5743,7 +5743,7 @@ def get_all_products_transport_dashboard_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(Province=province) - + agg = transport_details.aggregate( total=Sum('GoodAmount'), input_total=Sum('GoodAmount', filter=Q(Out=False)), @@ -5772,7 +5772,7 @@ def get_all_products_transport_dashboard_by_code(request): all_products = all_products.filter(origin_province=province) if product_type and product_type != 'undefined': all_products = all_products.filter(product=product_type) - + agg = all_products.aggregate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -5790,7 +5790,7 @@ def get_all_products_transport_dashboard_by_code(request): output_count += agg['output_cnt'] or 0 if agg['last_mod'] and (not last_update or agg['last_mod'] > last_update): last_update = agg['last_mod'] - + elif from_source == 'KillHouse': if transport_type == 'out': carcass_details = TransportCarcassDetail.objects.filter( @@ -5803,7 +5803,7 @@ def get_all_products_transport_dashboard_by_code(request): carcass_details = carcass_details.filter(destination_province=province) if product_type and product_type != 'undefined': carcass_details = carcass_details.filter(product=product_type) - + agg = carcass_details.aggregate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -5831,7 +5831,7 @@ def get_all_products_transport_dashboard_by_code(request): transport_details = transport_details.filter(Date__gte=start_date, Date__lte=end_date) if province and province != 'undefined': transport_details = transport_details.filter(hatching__ProvinceName=province) - + agg = transport_details.aggregate( total=Sum('GoodAmount'), input_total=Sum('GoodAmount', filter=Q(Out=False)), @@ -5849,7 +5849,7 @@ def get_all_products_transport_dashboard_by_code(request): output_count += agg['output_cnt'] or 0 if agg['last_mod'] and (not last_update or agg['last_mod'] > last_update): last_update = agg['last_mod'] - + else: if transport_type == 'out': all_bars = AllProductsTransport.objects.filter( @@ -5861,7 +5861,7 @@ def get_all_products_transport_dashboard_by_code(request): trash=False, jihadi_destination=code ) - + if start_date and end_date: all_bars = all_bars.filter(date__gte=start_date, date__lte=end_date) if province and province != 'undefined': @@ -5871,12 +5871,12 @@ def get_all_products_transport_dashboard_by_code(request): all_bars = all_bars.filter(origin_province=province) if product_type and product_type != 'undefined': all_bars = all_bars.filter(product=product_type) - + if search and search != 'undefined' and search.strip(): all_bars = all_bars.filter( build_query(AllProductsTransportFilterSet.Meta.fields, search) ) - + aggregation = all_bars.aggregate( total=Sum('quantity'), input_total=Sum('quantity', filter=Q(out=False)), @@ -5886,7 +5886,7 @@ def get_all_products_transport_dashboard_by_code(request): total_count=Count('id'), last_mod=Max('modify_date'), ) - + total_count = aggregation['total_count'] or 0 total_quantity = aggregation['total'] or 0 input_quantity = aggregation['input_total'] or 0 @@ -5894,14 +5894,14 @@ def get_all_products_transport_dashboard_by_code(request): input_count = aggregation['input_count'] or 0 output_count = aggregation['output_count'] or 0 last_update = aggregation['last_mod'] - + if total_count > 0 and (input_quantity + output_quantity) > 0: input_percent = round((input_quantity / (input_quantity + output_quantity)) * 100, 1) output_percent = round((output_quantity / (input_quantity + output_quantity)) * 100, 1) else: input_percent = 0 output_percent = 0 - + return Response({ "bars": int(total_count), "input_bars": int(input_count), @@ -5915,3 +5915,56 @@ def get_all_products_transport_dashboard_by_code(request): "total_output_bars_percent": output_percent, "total_output_bars_wight": int(output_quantity), }, status=status.HTTP_200_OK) + + + + + +@api_view(['POST']) +@permission_classes([AllowAny]) +@csrf_exempt +def get_ai_response(request): + result_data = {} + models_info = request.data.get('models_info') + + for model_info in models_info: + model_name = model_info.get("model") + filters = model_info.get("filters", {}) + aggregations = model_info.get("aggregations") or [] + fields_to_return = model_info.get("fields_to_return") or [] + date_filter = model_info.get("date_filter") + + if model_name == "Hatching": + queryset = Hatching.objects.filter(**filters) + + elif model_name == "Poultry": + queryset = Poultry.objects.filter(**filters) + + else: + continue + + queryset = apply_date_filter(queryset, date_filter) + + model_result = {} + + if "count" in aggregations: + model_result["count"] = queryset.count() + + if "sum" in aggregations: + model_result["sum"] = ( + queryset.aggregate(total=Sum("ChickCountSum"))["total"] or 0 + ) + + if fields_to_return: + descriptive_data = queryset.values(*fields_to_return).first() + if descriptive_data: + model_result.update(descriptive_data) + + result_data[model_name] = model_result + + return Response( + { + "data": result_data + }, + status=status.HTTP_200_OK + ) diff --git a/authentication/__pycache__/__init__.cpython-312.pyc b/authentication/__pycache__/__init__.cpython-312.pyc index 944ecb1dcfec7d57877206cf25429a90e55c984b..2adbf5869acd184cb0ebbddb74ee7f1064fca8dd 100644 GIT binary patch delta 57 zcmZo-T)@bEnwOW00SInR$(hJ)tYq(O6;qU0oS0IXSQKASl%Ex!lAoNNS`-rm6P)Pe F008wW6HWjC delta 27 hcmZ3$*u=IvuikX<;002;j1`+@O diff --git a/authentication/__pycache__/admin.cpython-312.pyc b/authentication/__pycache__/admin.cpython-312.pyc index 4d6d9eedb7fa286fb0de00b3d6cab4a5c91ff502..22ffd4d4758389c33d421972dbc481000e37aaa6 100644 GIT binary patch delta 57 zcmZ3-c!rVtG%qg~0}$Mtk~5JzUdhJUDyAs0I5DL%u_(TvC_gJcB|kYkwJ0VCCO9$A F0RRsc6Z-%F delta 27 hcmX@ZxQ>zgG%qg~0}!ls;+V)C&m!k+6*IBN0RUS@2EPCR diff --git a/authentication/__pycache__/apps.cpython-312.pyc b/authentication/__pycache__/apps.cpython-312.pyc index 2dd6a1cf6275f8453a3946186bc1d880abcfaa5e..a54dc8fe4516484aee9a322d7163263166369d6a 100644 GIT binary patch delta 59 zcmX@Y{D_(RG%qg~0}$MtlCzOpoKeZz*(#fDLX@Ume diff --git a/authentication/__pycache__/models.cpython-312.pyc b/authentication/__pycache__/models.cpython-312.pyc index be904102e144d8c7cec9b66486b1b45b90f713d8..65846a28e8aebd15be2031a1f68e7d140b4662ec 100644 GIT binary patch delta 60 zcmZ3bctVl;G%qg~0}$MtlCzQfEVGiWvsFw{VsTf5KM6M I9p-a90Azp_@&Et; delta 30 kcmX@1xJr@xG%qg~0}!ls;@HT2mYGG~*(zr9FXnSR0DY(kwg3PC diff --git a/authentication/__pycache__/serializers.cpython-312.pyc b/authentication/__pycache__/serializers.cpython-312.pyc index b84f5aad89499fb35db7f08d242790b3d1e2ce24..630a9b0b017c75789f7f539009fc7a963e05c4b5 100644 GIT binary patch delta 60 zcmX@f{hXWoG%qg~0}$MtlCzQfA)}I$vsFw{VsTf5KM6M I2gaMs0BqtGF8}}l delta 30 kcmaFPeUh8|G%qg~0}!ls;@HUjkdZ~j*(zo;AJa`{0DV6P^Z)<= diff --git a/authentication/__pycache__/urls.cpython-312.pyc b/authentication/__pycache__/urls.cpython-312.pyc index 1c74aa05f59d0f0b821c4e910ca69fd281a2c5e1..d09345c3d95dce7ab3039e6cc41a6154988804d2 100644 GIT binary patch delta 59 zcmZ3(c8ZPrG%qg~0}$MtlCzOJkV(nf*(#8n*(#f5KM6M I9;OaP0A{!qmH+?% delta 30 kcmaFFafE~WG%qg~0}!ls;@HT&mWd_A*(zr9Ev61e0DVjdS^xk5 diff --git a/authentication/migrations/__pycache__/0003_auto_20250809_1248.cpython-312.pyc b/authentication/migrations/__pycache__/0003_auto_20250809_1248.cpython-312.pyc index c80288b6511775b988e59966dbe276405c281e69..34ffaee702a5214b64d96dafdc062c0c80e0bd76 100644 GIT binary patch delta 60 zcmeys)yK_!nwOW00SInR$=S$V%B&RWY!y?KSe%$rnOGEGP?Vn)pOT-PomvzV1QXoc I!u*C208%y;Pyhe` delta 30 kcmeC<{=mh3nwOW00SHz*actx+WoEH