From 876ddec94a31712b178f1a27112e0408fb4b2a1f Mon Sep 17 00:00:00 2001 From: Marius Robert Macamete Date: Sun, 31 Aug 2025 17:55:26 +0300 Subject: [PATCH] init commit --- transportmanager/client/.DS_Store | Bin 0 -> 6148 bytes transportmanager/client/assets/.DS_Store | Bin 0 -> 6148 bytes transportmanager/client/assets/favicon.png | Bin 0 -> 30320 bytes .../client/assets/icons/.DS_Store | Bin 0 -> 6148 bytes .../client/assets/icons/loading-animation.png | Bin 0 -> 124287 bytes .../client/assets/images/.DS_Store | Bin 0 -> 8196 bytes .../assets/images/image_placeholder.png | Bin 0 -> 11035 bytes .../client/assets/images/truck_logo copy.png | Bin 0 -> 169376 bytes .../client/assets/images/truck_logo.png | Bin 0 -> 63613 bytes .../client/assets/images/truck_logo_black.png | Bin 0 -> 124287 bytes .../assets/images/user_logo_1_beef cow_0.jpg | Bin 0 -> 150547 bytes ...go_1_bell-icon-with-one-notification-1.png | Bin 0 -> 22960 bytes .../images/user_logo_1_gold-medal_5611108.png | Bin 0 -> 32480 bytes .../client/assets/images/user_logo_1_logo.png | Bin 0 -> 87899 bytes .../assets/images/user_logo_1_panel.png | Bin 0 -> 127931 bytes ...go_2_bell-icon-with-one-notification-1.png | Bin 0 -> 22960 bytes ...action-item-others-miscellaneous-angle.png | Bin 0 -> 8508 bytes transportmanager/client/config.py | 8 + transportmanager/client/main.py | 108 ++ transportmanager/client/pages/admin_page.py | 147 ++ .../client/pages/admin_subscriptions_page.py | 160 ++ .../client/pages/admin_tenants_page.py | 174 +++ .../client/pages/archive_in_page.py | 126 ++ transportmanager/client/pages/archive_page.py | 125 ++ transportmanager/client/pages/auth_page.py | 73 + transportmanager/client/pages/clients_page.py | 294 ++++ .../client/pages/dashboard_page.py | 495 ++++++ .../client/pages/destinations_page.py | 233 +++ .../client/pages/forgot_password_page.py | 62 + transportmanager/client/pages/login_page.py | 105 ++ .../client/pages/orders_edit_page.py | 1375 +++++++++++++++++ .../client/pages/orders_in_page.py | 1105 +++++++++++++ .../client/pages/orders_out_page.py | 1229 +++++++++++++++ transportmanager/client/pages/orders_page.py | 99 ++ transportmanager/client/pages/profile_page.py | 458 ++++++ .../client/pages/register_page.py | 83 + transportmanager/client/pages/report_page.py | 389 +++++ .../client/pages/reset_password_page.py | 68 + .../client/pages/send_email_page.py | 118 ++ .../client/pages/subscription_page.py | 247 +++ .../client/pages/transporters_page.py | 273 ++++ .../client/pages/two_factor_page.py | 70 + .../client/pages/view_orders_in_page.py | 1215 +++++++++++++++ transportmanager/client/pages/view_page.py | 50 + transportmanager/client/requirements.txt | 5 + transportmanager/requirements.txt | 30 + transportmanager/server/.DS_Store | Bin 0 -> 8196 bytes transportmanager/server/admin/__init__.py | 0 transportmanager/server/admin/billing.py | 0 transportmanager/server/admin/subscription.py | 53 + transportmanager/server/admin/tenants.py | 40 + transportmanager/server/app.py | 93 ++ transportmanager/server/database.py | 70 + .../server/generated_pdfs/.DS_Store | Bin 0 -> 6148 bytes transportmanager/server/models/client.py | 79 + .../server/models/destinations.py | 92 ++ transportmanager/server/models/order_in.py | 193 +++ transportmanager/server/models/order_out.py | 209 +++ .../server/models/subscription.py | 130 ++ .../server/models/transporters.py | 87 ++ transportmanager/server/models/user.py | 194 +++ transportmanager/server/requirements.txt | 23 + transportmanager/server/routes/__init__.py | 3 + transportmanager/server/routes/auth.py | 204 +++ transportmanager/server/routes/clients.py | 65 + .../server/routes/destinations.py | 73 + transportmanager/server/routes/orders_out.py | 259 ++++ transportmanager/server/routes/ouders_in.py | 163 ++ transportmanager/server/routes/profile.py | 144 ++ transportmanager/server/routes/report.py | 42 + .../server/routes/subscription.py | 65 + .../server/routes/transporters.py | 74 + transportmanager/server/schema.sql | 146 ++ transportmanager/server/schema_sqlite.sql | 146 ++ transportmanager/server/utils/cancel_order.py | 62 + transportmanager/server/utils/email.py | 139 ++ transportmanager/server/utils/maps.py | 28 + transportmanager/server/utils/pdf.py | 199 +++ 78 files changed, 11999 insertions(+) create mode 100644 transportmanager/client/.DS_Store create mode 100644 transportmanager/client/assets/.DS_Store create mode 100644 transportmanager/client/assets/favicon.png create mode 100644 transportmanager/client/assets/icons/.DS_Store create mode 100644 transportmanager/client/assets/icons/loading-animation.png create mode 100644 transportmanager/client/assets/images/.DS_Store create mode 100644 transportmanager/client/assets/images/image_placeholder.png create mode 100644 transportmanager/client/assets/images/truck_logo copy.png create mode 100644 transportmanager/client/assets/images/truck_logo.png create mode 100644 transportmanager/client/assets/images/truck_logo_black.png create mode 100644 transportmanager/client/assets/images/user_logo_1_beef cow_0.jpg create mode 100644 transportmanager/client/assets/images/user_logo_1_bell-icon-with-one-notification-1.png create mode 100644 transportmanager/client/assets/images/user_logo_1_gold-medal_5611108.png create mode 100644 transportmanager/client/assets/images/user_logo_1_logo.png create mode 100644 transportmanager/client/assets/images/user_logo_1_panel.png create mode 100644 transportmanager/client/assets/images/user_logo_2_bell-icon-with-one-notification-1.png create mode 100644 transportmanager/client/assets/images/user_logo_2_png-clipart-computer-icons-task-action-item-others-miscellaneous-angle.png create mode 100644 transportmanager/client/config.py create mode 100644 transportmanager/client/main.py create mode 100644 transportmanager/client/pages/admin_page.py create mode 100644 transportmanager/client/pages/admin_subscriptions_page.py create mode 100644 transportmanager/client/pages/admin_tenants_page.py create mode 100644 transportmanager/client/pages/archive_in_page.py create mode 100644 transportmanager/client/pages/archive_page.py create mode 100644 transportmanager/client/pages/auth_page.py create mode 100644 transportmanager/client/pages/clients_page.py create mode 100644 transportmanager/client/pages/dashboard_page.py create mode 100644 transportmanager/client/pages/destinations_page.py create mode 100644 transportmanager/client/pages/forgot_password_page.py create mode 100644 transportmanager/client/pages/login_page.py create mode 100644 transportmanager/client/pages/orders_edit_page.py create mode 100644 transportmanager/client/pages/orders_in_page.py create mode 100644 transportmanager/client/pages/orders_out_page.py create mode 100644 transportmanager/client/pages/orders_page.py create mode 100644 transportmanager/client/pages/profile_page.py create mode 100644 transportmanager/client/pages/register_page.py create mode 100644 transportmanager/client/pages/report_page.py create mode 100644 transportmanager/client/pages/reset_password_page.py create mode 100644 transportmanager/client/pages/send_email_page.py create mode 100644 transportmanager/client/pages/subscription_page.py create mode 100644 transportmanager/client/pages/transporters_page.py create mode 100644 transportmanager/client/pages/two_factor_page.py create mode 100644 transportmanager/client/pages/view_orders_in_page.py create mode 100644 transportmanager/client/pages/view_page.py create mode 100644 transportmanager/client/requirements.txt create mode 100644 transportmanager/requirements.txt create mode 100644 transportmanager/server/.DS_Store create mode 100644 transportmanager/server/admin/__init__.py create mode 100644 transportmanager/server/admin/billing.py create mode 100644 transportmanager/server/admin/subscription.py create mode 100644 transportmanager/server/admin/tenants.py create mode 100644 transportmanager/server/app.py create mode 100644 transportmanager/server/database.py create mode 100644 transportmanager/server/generated_pdfs/.DS_Store create mode 100644 transportmanager/server/models/client.py create mode 100644 transportmanager/server/models/destinations.py create mode 100644 transportmanager/server/models/order_in.py create mode 100644 transportmanager/server/models/order_out.py create mode 100644 transportmanager/server/models/subscription.py create mode 100644 transportmanager/server/models/transporters.py create mode 100644 transportmanager/server/models/user.py create mode 100644 transportmanager/server/requirements.txt create mode 100644 transportmanager/server/routes/__init__.py create mode 100644 transportmanager/server/routes/auth.py create mode 100644 transportmanager/server/routes/clients.py create mode 100644 transportmanager/server/routes/destinations.py create mode 100644 transportmanager/server/routes/orders_out.py create mode 100644 transportmanager/server/routes/ouders_in.py create mode 100644 transportmanager/server/routes/profile.py create mode 100644 transportmanager/server/routes/report.py create mode 100644 transportmanager/server/routes/subscription.py create mode 100644 transportmanager/server/routes/transporters.py create mode 100644 transportmanager/server/schema.sql create mode 100644 transportmanager/server/schema_sqlite.sql create mode 100644 transportmanager/server/utils/cancel_order.py create mode 100644 transportmanager/server/utils/email.py create mode 100644 transportmanager/server/utils/maps.py create mode 100644 transportmanager/server/utils/pdf.py diff --git a/transportmanager/client/.DS_Store b/transportmanager/client/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f8f2f8fabdcf9aa31f80854c6f3f70eabdd4c650 GIT binary patch literal 6148 zcmeHK&5ja55Uys~1tcaMG}(*EBwh*NLSi;vSj2;g8YAm^SPjm=xH~#b1mpXL@yiPBB~Kl8HIK63aTx_{aiMr zU@TXmg^DpEmqv6>J`Fd})?gX14E%2l@ZPOrw+?AaAFy|S@89A5P>#G%dO+~!;R{OR zhZ3}i_JB?B^C_id4SV!AtT#)hChk{n8U{()YJC%ho#O6ZsZ=RdOD_iJayCfaG)sDJ ze9BM9Qik5Iw(Fe){%lygc2`EJ8$^Dr9D=bA$n$4GG?ufT%%X9kdrg42`7>Ks4^shubL8OX;nVqA(#KVK^%oL zI)j~kDqvDlM6W2IGiormd4>v%TxD~M$29dGWJwwWc}fGUP6DQVnoyHY5Iv*}Z6DSq z^|2NyN|TM&AUzF=msYhugf;?9CCI^ca1TUZXvNg(Du(TVMl>;$m!x zOj1~nfpd{pf{dh!`%pc*$dbot!aszU4-DhCGJ(7vnY^}S4WBYb3z2UFF(hUg=D8C$ zfcd=gCYDr20mj_IwBWT`WqKEL*YjO_YsL39WDOblh6ipjUz}H>X7--awR!PK`FZh* zF;8l|JX-CiJUYY7Lf~B*ukR?8^J*3t>cV2)?sE0Qk!%3VfMwvaF~Hvk2ZeRl=%v=` z(}7A|0icU8D?yw8EU=Gbbl2#m*64uunb%(21Kzx==YG4Ia@c9eH10=bGQNBHF~KvED-xgK+#|;%fLTn;3tG-`3L|2 literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/.DS_Store b/transportmanager/client/assets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a99a69a24a5d74fb8796c67b468ba63302c2d0d8 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/icons/loading-animation.png b/transportmanager/client/assets/icons/loading-animation.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c47db80ede1812e79cce29d5e7cabd6a51151d GIT binary patch literal 124287 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 KaR&Y>13v+V77E4y literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/images/image_placeholder.png b/transportmanager/client/assets/images/image_placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..b1fdd3171bb86c5d548fa205daf6f2e252cd3259 GIT binary patch literal 11035 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 literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/images/truck_logo copy.png b/transportmanager/client/assets/images/truck_logo copy.png new file mode 100644 index 0000000000000000000000000000000000000000..bca86cbd90eb2941b2f97cbdc2b4f6489344e35d GIT binary patch literal 169376 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 z

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 Hl+XkKc$6+M literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/images/truck_logo.png b/transportmanager/client/assets/images/truck_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa984da3759666f63f8275b5e791f57f5455130 GIT binary patch literal 63613 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

t4Bm%=9YBM6CMgX#=(BN;?wcZV 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%0D*Ryl8-XO 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 literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/images/user_logo_1_gold-medal_5611108.png b/transportmanager/client/assets/images/user_logo_1_gold-medal_5611108.png new file mode 100644 index 0000000000000000000000000000000000000000..7fdba3c77e9103be35fc1dba4b303dbae0856977 GIT binary patch literal 32480 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

dQkyIqFl`IS&s{G&y8+F$ zvD%5>@&DVT%O%z&5Yt2fZ9n+UX&BMzG8mUjQ!^_I?C0#2Iv1S5Tlz0P1D;#wGL9br ztAFaCYa7Apk~Z;XC$MH^>`a>oJmlVx(GsMOXRdoR@P^sn^Exn!&Q@ih2}Q(N;F6Z4 zmk05R?Sx}Gh#EeFa?J*PVbG9}VPL$PPlSI824S(01wdO~uv65xpsy?NY-A7MSv{Yv zZVu@@29P;3$S*r~Y%}w|A_>8~<9Vb|g6r?ZefG%3?G3@*@>H$E(ZF=0vHd+Dmd}5; zL;L?-fXTFwH-XBcw5SY@Ev1M2AA9E=nA7$D@z=TcKF^aaVkEX8M(o;z8bxfSlv-6< zqgG27YE!K$YHRHlHHw<8QF|mttQaA&B?wth@~nH$?~go6`_+Ei(tfMIeEx7rj&trk zP0hPdB1$UI~8>Eu4|XOpREANF{>_rIvwN`+nAIJz-0AR z(`dk;I`x6Z_==%`O-vKffQwp008Pa!A~Wk_bwUA^Ys3LJjr3a^xD8Ch3sfoT1WSp~+SMw8xn~7?JtwGb@(&NG0~BSy znDrF-Wt?qMnitsG93Q>wU9gQfv3bjM;6rne?@$1){|ck6&0V0N1FH`5Kzflhe=xmU zrdW*(5KX-=X7_xG3l(O+ojw@S-`iDVRTNmO?YqA$KL}5Af1fizFh!{FI1QfSGy*xo zamLyPJT@eH)f)?**`7brb`1zTtNiYe$xGmJUTb}R1EeSIJGx>3Fw*?IR|UY}I(^-O zCm%4$)yG~Ow6#HjA!hJ?v&oq50f3Vqeiz{CnDE8bJdmDu-^kU`z=ukPb`l5@%S7K_ zH1-D$%QJE?P@Fi~AH-erB#%h&-q61E;Hf|h<;+ijlJl2*?sW%M#y$60cs|^Tz33zlr^u8Gz*8tKJ z_kXY^0~o1{5W|4nVvq8`2RrE>An0_QbO-5aAD?;-EXP96H;4w$^hO)H)&PMQoPOlH z8ejb+dI=;ST$%XM8IW6@e)jypRAr7<5zr}4KA<_J#aX~AMvD?|ej5Qy6-`AHnI0b| zK;=hv0oUbpITYAKUs)FLlVS3EprV{ElR$J=8>`Jh@$in#UIa`f^L8n54J?hze^UEh z@VHoWTZ>>&&IE1??(?5~-~nKKs?-{6=7>UDZ-VuW9c>r21wPb-$0(qV*drGI#yVf+ zdprP7XTEd`h)+Dr`=o;J{8D|Ybt3ad@9V$7V7bbAFzE$ITeE4&m;JzTId)-$9cW{k z>A4Xof}hv|B(YS?0p^Qu*abLgCSC#F=DwH%yeTxY0}8wG0`(S#Z)Cbjz14WgJ>Z)hS zLQepJAP>n>@&*tgRXOe-_?{{j83k-Mvgz*wSB&Gv7@!n~_#sR0&jMV3H+3;ux!weO z@bQ41r$8T>aXM)!DCJE3JRc~ejsC=WJZm)3i-O|sw>5VJnA?>Z684Szmy4eMXPDZS ztW@oIeNYAv{_d>v)e6-E> zT434`I=f~!poQq8EdC4Er;zXxZ-ZE1^6;1fyey?L7(`WNty&KV;WnoLg8=#hR~Se& zklpp`u5e(cvB32L;7K3Z4=~A1MOPtsGbS0N!|rH$hgH z$Bky7XWVn$SPpvl-4R#1gRT6DD?4g|wqSe6vSjf3tk!~-LEsTtZ}`h^f|5VyxcoDp z0$<;dF~WKYjNy)B_P0SqS*B;(52BN)fX5O*$y}$$0GR+nK(5zpmgm9VFs^6RB5-lSvR-Wv9S(Ni^Bp3}gL2*L(|}9WIPo|IP=pW)GEnhQ zZi8&0>-K3N8#yjyWOBLHf9OS~s*SbdAl@=>_t^!avpL$MgBxg7cF#)?$aU%n(;yIQ z%+Vgt19^n6GRNIV%J1R8>K?5Ri2IiA-s?ehQdX-U19_PyVt?g3w}Kq4hq}gr_4M|m zUx$GysfeTObTCturcVKIi5}VpZ32jimI^)}gEGoI#OaeYq z7OExwzyNlUAUuFYrU>&05Z_oreUd?RR=+k^bnnMJ59itV5=jZ5zIs`+0<>CMqf7Z6Hvb60QHsH>S9OOL@RaQ?VE*O17UN zx?iKq9N}xg#3uQBZh~EyMMIF@^pkNQ{7kLPeSr7HGLd<6wBTp$(?mIC2JpI;&+|M8 zFVV{s3ZjZ)R|dHGZ?b#6n*b&hW`S(!GCNiSAL@~=y@19+*$L!DG#Y@YCXR>~fpDdl zwjIQN&8jJYx5!Wm0P%RqU@&H76iPL~zVt$?gD$WKUg&?w1R1YHEZ=GY-vKX89yABc zpH~{(sP|t4v;a9M#rsYa*oH=p*tHx)oH^0k3SzdohKCM(ArDgwh$EJ>fI$wt-0N5f z(8Vflfy}0iP;-F&jk5<1$Aj0z_zz-hfJ)xCLjDT*S(w7&6JWgB%j5~-3(I>x6F_v( z4th9&V(8>`w;cnx#5g=acGgeod4Vb}tNjze$CxhHxD6_&febNDybXAWHOlkASZ$*@ z6vTH*7j+466OD2px9PFQK5z}Y_4b8s;2d$(k=^F`*B z>keAuqTR|}|BV}oCnTjxu1^bUVEL@fjIf;G+&ndbl#n=LKe3g@5Y=+%ItN*T2z z*k3s_;ZSq%ioN^MjnSZxivoY;0$Ifi)CXJ);vAXv#-acX9V>8|duW*o2X6r-GZhu} zV!+-!eL?B&S3Spl5W7uFJzfN=iMb*KWJ8zLaS04-dahJE$g!!n?!|)fp7qD1DZnd6 zZD%pSQ~lB$31W(-n=1nve&$xd4m!xg;QI8=fVfGJGIDMGsV{(i+c`^QTkzG}MZGl` zw4Nm^RGa(+f_|{ALfVfY@7Ttq4FOVxQ?vrEkifBr!1yOY@W8b}aD-zZ1}dm$!HBl% z_d9~U{_&1GCW1+n$zC(lQg={!lJ(hdeCA39d-Tz3+g}DFD&=bYE)aW6lf0G!Qs!Va zAc^HcOku*K=S3dD1ytaQvH*<6w&e8VKt21*wg$ivp!^@=jIqQ48i!;QaDfZ7bMJq@ zhn7h$b3`5nOdO>)@XN~d|JA}FGsjW+nEh_W_a5Nj2yu^H$>kga(M<`_nu1Z<8gs8G zq?P!t!<=;RZ&P4ni9k@k&C|SS!V^h`SYk83pX0z~R1yI_QvpIly}Pi z2JFqd8043Z!!jcnE zj5p;zkT>m)^!Z@SOh1@%AB>oc+^MTT9=5kk%MVINkF`D;SlX0dTlX`dlhRO)e9ZeM z%FpCmz)`)Ns{_bzW0sf(liZ6=Ewk2x=o%9+9- z=NM*vC9v6e&)DQvh$Gx>{2mLqsTMWdW|gi=0!UO@~x)Ic|RutAPkqJDQ__ zoFx9?*eBeKEDp$~v{Nd9IN;Yi*E`@U7xP-wb&$PS!zSPcJD*xTv|=Fos-v{NAYS&0 z_Z|g|HYuJvKnBY|xd}ui5gO}|4$L+N8$&_9 z>WsGc0>gZ-WPBtzE61KbX#@M-Q{Moel_DTi7uX3l;!KX7_P&QE7c$$2C;5Uodr~Zlp z8U%8Sk;@1LaoQu!Yb5xzXqb1OiaTEbY>CIhvKwh;KO1loO zp%?2!0qOU5ZvN&p*e0EI9*73<4zDZQfZQTRINf|V9|$aWy#?suw^zo!4A$2-4*$Xm z*(L?=E9(VfrB7J)^rx^9=jpdyWx#$hDsfL$Fji(9N*xYLdGmHJvm4+Bg4}4dFmizT zg~CHhjRm7{TF;cT;F^1<&$TTe+NssFHXy19mnaRgkn5alKG>QZTe4#_SW4CmXgL)` zK98sh0K+WlpIe2O4=?vp{=4Z%WbAU|v||Xwx-6YqjSe`u1(I>hNX( zuD_qL97(m`I|&(8j^x>v1XR{v*Zly0HAHj=1TlQ|=ld5I)E(x%kg@x4xsB~0qd~;P zO%s8BtdOcxXw&j4-jPgLqO{n{fqMA6(tuKR~)y} zR)D?S$%T8o!Lqp8#3pY6DdtqKDgVO-z0M3d1W4kNC=5zN|M7thLG<<+pZzY-`=^$N zxcMla%p`@J=iE+JhBHwl&P1c2#}vQ z#S9SD1)>@V#XQqz6gX`+W}g+1GVtr66H~yyM!%XbmZlF~i_*M%vPXooNjyL57Bhq%-dK5$@QABhBMytzB*THGT-@f<} zI69vEY;P^_7!pL0Czy6e)Tz(+ZUpB$H@~@93h1Zq*9HUMbCyBCbE1-{1xmEnD!Kcd0+?%1G)mQ z0$o}B)45*&Y3uDeCPWa1A!f;BcAKr{k{4af$SUXRdxYr zzQI+?KKS9jNB;aZx&U+seQW%f*v}y2i^!or5#J+wR0hxawTHH?4bHH*B4<~EtIn;aF|I<;BgSQ69c_!Mx($0eM) z2&R0csPVr7Tzf@QYlVi+O_|+%bQE@|?djH(*K)Y4@BH z)VP4OpmvZNzV_U-c#sG5%dT}G+KP5cX);3`egJV^i!uw)W0Hp7x)1huPT$`@1+)z% zW>@(;LKgnCrIF&I9kA1wrw;-y$TVXNnOT5GWa-!cHd3;t;K|5!@bZznwK#PY zSgSR$Ovw}+e>fZA;~1B4ySlyOy5V>SgisE|Sap+m1K8W1+Y{jf`s!P)V*d#~*OCB{$IZys14oPq{RxnS z$Zh%F+Z)WGRXoF2fM0OWmSaBvbG?veRZfE(;jCnTkYy=94_*5V_dGex{$6i@{jE!R zj^u;%F*~*`??Yxb=Fk8JLTP z1Xlb6L?{d8=kEQy21Gg0Pe}uEIBVNZfj#HRDf=P;-}L?|&;5z%9+_StNe5f$D9_z5 z0iWo@?E~EP-!_3NeWO++!jrM4z4Bk zieQY*cq=XUGssvT0ImBnQ4R#r)3nVq60~(WYUDcrGF5IeW|Dc+wF^X3aZcR~^mo;C zY=X3Qo3AVYT;fvA<8lB0__C2Jwfnv7;0(Ia;-U&-wA2}b7QTPZ4 z`Kn%Dj|I;2+qYAH2W4~f!Gj==$?3+;KcU!|v)|3L7d$_#^?Iw3AfhZCyj}!3MfNae zKXSev%u6|CfYJnvw)Rdb-N5+nzF)#qlt<1+XX7F!f@|;{<8odQUuq3ZkNEz{dHObe zHz?sgt+Ia(=4+vAYpe(Jj-q~Ln*;UKkFJE3w9IML0#3;-#{NI>|DPADR1N0-a zXa3JnDv(RWh%q2qiOFhe=2NNl7d@wds3d}wU>>?`J$R2NC3h^F*rVprhJ&8t-pe<_ z!7=0HEBhw=`?rmHve1<>AAoO%b~E0-2FehBBhO`!BlX&@lMeyuPx~iNX7U8_o#LtP z1>1y(E#H3+E?aEEiQ#`h0i9-Dp8PIw(dDq4fiSU1s1Jd?94|BEOTcu~ZjUH1+d>1Y zmj~gpO!eLla^Hq@7xC^D?mah}m(Z1h}ePy>hnYpD~w&fgE^(Tp`npQNS_Nhvoy|wKr^1>%O3l^B)uh$g#S~wf>=DMx4~@nqL7| zr})J&(;@Bd+CH`#<=t^K4^Q4=ZsY#-`C?^k(u);n*GW=KL=zJVcLDr zL+=2jKwH0^zPSU8^U0BSpG8H@?2ZY15}N%lQg9CYzn3czM0=0&z8ipJMx>GFR}6u* zf!%VB1lVYlGoC`WKWR%pk@6PU#vNO`vk}PbdLO+6P@Qv`WkuZl^ff)wF&|7D3$7^j zIjFDZ$e(W_m|iSAB(wymQ~W*%ngVjVEUm{qVvr4Dsjz|=$4Arxd-u~T_lJSe_fE{! z^nbznE%MzTP!LqjzkaR`Kz3<2Qh8YC^FKA(M6AFJ{R90bpio1mlSNsS1-PDNGO8uK ze)(IlCq|Dv^d8V&R8~UCw4i?Q7Y&;Fh$8+VhU%|)COl=p_&BmLNGt~q${Ml^*ak%T z?>YxOpSC@z@V|fmm`;>BU#$Rmt*h3$sSXS^-f|vw1JZrJ0H|>w-d7u&-vn2uyQa&- zzjdFhARk~L8 z)=|J0#&lN>z=NqYa|4LFK$2;`M-8wojoPy9WymPFz4uq`0U-w)57G|*Ru;AibQR;> z{dqrw)3?*Nfd2K* zFy6m?;%fCQdH2l9X;aGgi64SoY-^KN1E?g5irv3x+C>q z9*gOGq{#n+4b(yHXzC1>&&%zrZGb53wJY0lkh6?bJtseRc}WEV1fmPbSM`g|``}!8 zwf)(gKwZbwj2gc&&b!9vt|-v^rBzEB2C~1bEk6bvbP=l_Q8*H0xNHQ(Dif8upvL7c zT<9w>FD-N|^eD*nvXg5OnXZM4$aHyZ3LF(S@h;e7P6zDY4aS{&?QgyKI|ON?yIrsK z2V3Z=Rr@D_sI9CreNSectx_Nt8UvlfL2VY0P;fYCZxj!HEBf zq>pR8?Zm_N6ct2cWuJS!J_hTiA3j+c2F_YhO@I77b)3xNp1AG)dxd9k-Zq);dKLi> zYvm6bd=AP~ueky1KsMChca8yERHN-9=PQS}C)$GC%V3!Z*3@0gmaT)NrPE6EbAhen zmSOXof!_Mstg~MMEA-_qKeFhrBp(pD=pp`u=Y#B=GVpFT$SA)5#D+N_^Vn0Z=Rgcn z)~Z9?jZ*l@gUZCX<{=RJT6TG`%KH0&Z*1ip`!vtB7fgjhE?0asXl$+L8sDy9u2XVal`|mfh+(1upmLan4-KOt zRD7k(2V<=LmGm^Q?~XdWdl)d()zy*bf4GJjG^97+CB}(Aa$|UzE3^gsp+oAX+~B-> z-F|K`&{@4`Uh&BKxzDle@2ct81IlH8pS(`6oGZ68tN<`l+)*259i=S#XHZtsj6X_Y z_S@;R!Pe^d8#^n5yy5Un_W@DXJlWeyX6(p%vk)k*XM+ofaee+&iF>hdk>P6l35 zHfV$Y#TJh~xn9V>0aP#l1$lOWYu>FNE+hkn^1fOUP=88~or6FS6-9G(EVxGBEp+oR z$j@v`(~f|^Jm|6Yha+6lxeny(X;YH!0iVcayZ{7~hf=^rRBV8U{7?!IxlAj~r$J=* zjQ33hvv0{MmDYn&b^qG6?}I!g$LK*IDu@uJ9B@yaZh8e=&)@8SaV$8;oO>%`FIcEK zuyydSf48IK$-vp$v+{gi^hO?8k+1c%4v1yLF}j$bKxVkBts zIsFS=2XmuhO)H!QOZIX>VRkT;D}Ja-H&E*2Dw=;KFjmz~MwYnzQd;_9Wd1HkILC3xXb$Y^!E)V9VTCTjaF6M+DrFW^N#8iBFM zvEKR_m|hAh6jBm=#B7CI6-7PJ|`-escxvp>ssu)emf#*&s`_*y?oa)216?A6LX0=%xP zbxke7@y_`Y5d}b>8ecH>3aI3#+7N#71d)SWxg92;n9@w!2tIckpXp`; zt#9#5RUXtMT$XjDvM391J(Hv#yRq|v4vx+jMjkl?%ux$iegH;shIUT~v;sj!$>oLx zl*wMNXDq}ttN!^gx16VEgC_Tx% z=?H!z3)mQD0<}a9V zm=;1CH%ydK`KYEVrvIZx%=9P2R{y-bdK-rxgZ!u~YH;RiKUQ>x{`j0doQG zUO=J@kPASWWvb+P4=gjvo9kQxq~g$AAdZ`xczy&75WAIbz)Zu#)g3^@h-nYc5upr_ z)4@2EUNki~@UDJL@BRz{t_R6-3eXV&jF!=|E=a|3IU^PL(5;AVtu?FFJ@9OLs=z*f z$WS9HZD@PO|8hI{#CN_pd| z#vleLd(<^##>Tu4B3KKyd`YH@Yd>(Uy>tHZE^xI-@VYb<(ho!|*whlVCArLnBEVx_ z*?YAIfya!hR~nxKZBX$}m1Y1VwSATuS@QEY={oS7sG|4)ll7gB{$Ss5sKusQptreN z_}tgPA$^SQ1oj$B^^ZY6o-+LYIB+ewkt3!sI2yziI+X;*;p80i7dlDE#p`~bAk z6mwT#DIGZum{}^@0sf+tdI~H9O21Sy2Z%4c)NHo@>`yJ3uXeFTV4fO$qE{8ERg zosh9@w>;Cxlh8IASS2u81>zAth|__|fM;UzYO4on9b1 ztLIH|{Je1PA0aif9t>}*%gj2s&Ls4Yoea)X=YEWs3u?K%6#F-CtNiM_>SAg z#8J|nA@}i)TrR4M{vg-LFAadxva=jWX3^8f(U&gi>;pz2>y_lSAaaRV(I05^i*|Qq zHp2B z)#Q%X<&GduYdI{}$Sgas4w$TrQfGj5?%pk{3xO%2#M(+RV4>!=){lk^p>akZU$555be1GkiO~%>(bZ2rl0<5UvDtxrI)+6 z6vTJRaji5kOiea71@WAyEEa(1tp!;20EIY=6?j30$d=&h5x?V7dq_QV^YZ!mkpAAm zavPR{CsnF8S^-{78YOiL2X#w9|597YqQ@B+GTb+eet_z#;%EWZ)j!VsS_5pxU}GK- zPBImMt5{@RpuC(Ta{z&2t5O+wPaS0L1j5%;&Z9MOgE4Y5@P*n{O8`@9o*PB|!IDzp zqk7+fr>*YS?ec-@7j(VIQvh0I%eauHfUVK7i#uuppS!~CXF-fGPxH!2X8kiykRR%= z>B~WBh>#hrr`_oj2O$0#VU>p8uV{VI99z>zSs4U7Sle_!-!iL|57K z24InyMPCg1%S*sV@`hXv@*11PaS+Ru-r58ZL$xBN@<4w2i4AVU(KS#v_$LQe2XoO9 zm#UNnuOI7lZIb||56i3zD+ZKRHferYKr4%~0M|23GT*(=ZuSNHizoB#p9xfwh2$>4 zK_^kq&1n7%>4Z=o+%l;9lS=UWF1pz;6c({lr;?*^<2 z8UyBAdkUD5!dwo+M`N0fVk2s)-LkUU$xMo&dY;_-j9Q2ahVX8nza| zADY9|NKQ zR=ZwvRs!Qt#*)dP>fJic36|(_1>0xZ;L zyQTqMsLBwa1n?q>+a+L*QdT_z zCQ4Ha@XJ;tS6MrFCZ4{2-~!k`KU!sbTd;dvh&i$fTp!;Ve)#~%o6Zzx2JoSp!{h=n zL7kzs2J(n$A`Ha0S_5++hz)EuJHY5>O}p0>(z@-awsa3TI$f|tbpyXmotnIN0!+=y zZ>d+FEP5QJ01Ans7LZe1QYQn6$~@%&nI083AV};Mxq%yEx^f3ZWzk;Q3```1Px&dC zgxszl)^C9Nod1}>^KIN<{_UxHyBjEd<%+w^WXb7zg@;!V+?4+1NEZ4!L>YI z#=MiM%31P1((p&My}1=Qdd4az2Y~B~*zZp+025`Y^LGL07?5YgU}X|;QPk2b0Ae)& z>CB=HFj{$NzVEgN*-$g&hpUc%mFTu%snz)6%zm{0%!rk z;c>*<3P`20@<=u}(~e?qR%j2}*1Rdj4WO^9tHZ->FvtP;iyYz|kS@nZwyj{Fbs}KT zbYQyS?b;0Tbh>ZS8n6vH^~&CIz-U=sN+3{d782wrJ=8e|)U(+Z2kr$+(F*$WU4d>Q zQhlTlwg|A)_4)wtQY&gTK`y4J%jmH*3t9M|O+B8n@548bHtll#)H%MRIfeF!7$w{8PgvKwSSZz@CU|=Hj?$ZU|hem=~``Y zd>hqwM+VqN?kcfjDcC#j$+;>DoXKah?au~sbyDo@x{oz9#Qj!Tj;tH5|3(3h4H+ZA z?j5D>x(YI%{a~sML<{ot+dfzCfbm&!LVQkOtx{Qy12(XqHNQ|qmV!J>4`~JMWYC4++92?} z;T!oI{eNp6pF9!B;rK2+KX63^3KP(PM9u;_0k}ZM5XcD-!@MH=jsTTasbv;2u1+CP z%H*n_-w!;-mFZq99-KaxryRcucyUg?3S=-wECIrmoT>{P%Pvic`WTGuiT7_+2IE4~ z#@pk;+4SoCv-5#w>H_O2PFL5AAH(l3C(w^)v6X@f{N@V-o>d>`am!`m1E z#IjR<0YLXhZ|#KeYVEfUe0H?T*JnF83tlaK?hSC|zLD?TKoB=gIXpZ82VGbI_-hT# z!yx_G{?Y3vgXOb|lj`>cCCs-^b|(mb#iF?Yvn(jv0Eif|`d`fN-_h!t$Ae0Nx}^Y> z0+a$g=G9!^vJ|*px*=ks!QTGR-c7Y3-Fx5c^&LQ;m2}|NKoI@30P~A(J_z8X852M_ z&3N|(mwHP*R}ZW)TNW;u2Y$T^%r1Tg#2oMQ*-QUFma`9Hn5P?g^vWP+dQ9^k3_hQ? z+w*ohm~ACLty&bA%}``6|g^dq|uJ`kdb_R<+c!z+l^QCJs_Hk z@01~cnXmX1jEyN#w`)LZ?JY_31_AH5HajYV&%Vxwh8F}@nNNHEiKJIX;{BK7eZXGi zRM`FjKyDI@mw|(H5v$$uEtSkzvNb>#ZMQiQtciPyuPzAb3lAOKcoayK&17bFi^+WY z$Nv^|EPSLdNzZBfozOSS#LA z;(&tUyeJL$h*+^4{2DOVZGlm__oo2H1Iu+s zqo->PXsv_Z4Yh&xcG0R8Uj66Jhx%6Tmkag;^R*Iwm3x45*xp%}hJl!&2AH3J3IpV0 zgg6Kk=X=>0?D@{DJ1_=3lN+||JPVX;{$YWA{{*m==j9_-Jbe1Bg28@DuYuk@t#{(9pcK_!F&_h& zCnRsj3t8F}uJ^YoxD&3mG) zXa#byW0q|PNMT=^@d5yK{?-`Cr$N4CCd-KiGNd7M{&!2f+OuGl&=yUV2zNTDU6h7v*z9q9tn z6i`qQEP!;7qM)JzBB)?P5Jgc$P(c9!DN64p^crfU2Ld6Gp4{E;{Qk&A#>fm{wPr3>2r!EgUIUd9u9eduh zZkNct6Wj;HJljF%Q;>7|MAoihU_Np&@YG^3s6d?y|M1SX0N~_R84gqz)%B5J)F|?J zsU4uZi=B>40KNrsCnDd@9l(^OI$%$!k=CLx=*MZ`uB4Mbhh z62uI>hpi#dP*e~rA!GTLcNP@^d;iKW)!zYj>d^i!KDy`9>0|rf1efc=vbgg=552a% zDX;^$k?(~ro}e!#M_Am_*epgmt8CBzAOY{bf_jNb%i zJsA&_ElD(BKT(ZlfbI2CA4YeFl+AMrylac4RB;drVa&~YxDG- zfSc~J$Y1yb9P$ijf!eI$Q=qr)8;3s-uCKSv{38QRSzl&>oRrlvEd;DW>2F>A4h*w+ zuc)#R@O_8z{ewVzrQl12>w)K`vq{H#L&l}`AI~cVnQw3HF#iYe^t-zH!k18}&(Oy| zbbvOqXz9`u!HQ3*cy&IcEuFJv!aB&Txb6J60U$#Bl0vS6{{zi>KK>@yhgFQNRUNFl zna$JYLDr``tE?~~yWpX6>%Iop%5zPxz7@IQ~}o=bFDc% zd-Gy2-$}~3=nKLydf4Uw5uEx%=|**8Sq%iq1X&Xt+0n`Mhk|Al8dszT0AK$l3*-Y^ z1xJ5y?5qBDQxmeL?`pTA7swyY!e(m_?X@87dH&eO$*DjmV}_#(xJR8k5Z4vV)A3sl z^#g5X&4&LMw$*U&I_22=CS+NAdab?ze6Bg|`++%JBqm=VZ{?k`cVEljZs@eHK2m(^XfQXV z#9U7V3QB(~3TVh|VS%)H#^gK%_TyzMR%s9R;3~)N%N=kuxaA4$(tFu*fSUFLK2HF9 z87fZ#*?da=>|WVoxF`=+DcAMvPGD8ZOiJAW`rmaRD!9(qfRnv4Z^Gd=Hgt9zYcS%W zkHB}x&vOo?LdFwo9+_Pm9&e11u5D7$7%!_dl1UIs3r2Glmv`Us%$Xi_vhi``6tj z9soH^?zX}}#E9CO_n9P4fp}lb)Z#%pGkf3k1#9f}X$g-4qf}q(E!SWw06uc6j0Snl zYH4=7je%>RZ$N<+;G5E}$}{aCd(Fw8_u9eT{LJ?UssX|<94GPxBIC3;;}Njl$=a0q z6=V(H`rNYFVDC`1c++%XsZWCc`rG)t?c5<*YaqMFeq((Hu)fZEDRm5JjqN$UH}ds^ zdD&AhGF=V^S{9=QVP&n@rpaTTDTzK&Qxc=vxS#s>lrRqZu=&qDV4 zeIwV61ZSgW>mHj729XtG{st3iBHSqA=mS|#?k&3ddvIr-YZI3QG@}{KfeUovuRIY` zKwgsdftB*GSr7aswcgURAlRqXq1_(|xN;~%3!sQ**J=P+Vun@?w8efs3faKktLE`m znV{7TOevfQ_VqEe0^~7wtDGB<)_QT^lQ1?R)k833x#_ZTaqa+kdFKxN&2k|7V?E`WbS{ z>Mt{3~CB2(YC)kCPh_9OBoFuhZoUD+Xw%J*8g<=ji+DJUACL zJ$O)r-)+?6k!g?KTn#j`x|nf*sh8I$d*43^xF|p54Zu%)q6dJO?z=1CcN$93%y&wG zZ^3c7#)4+GAbV5XXIqZ|U0E!T17Un1&H@Xx!p1j{)qHRE+NK~Yn5#USKnph>bIb;^ zcv@Bl(TIf%0G~QBpENH5VqC!&i!}e80J+IkJSzpVX6&l|Vj&>3v={NguY|1t z=g63snlA_UD`%aD4*_q|SK@6KAb08UArMQA`i?8$@;$wD|7tLoC0ssz9(2mw)_&h+ z!GtA0pMad;!>6`Z1hGv&ZENeDC=>bm!32g$J1|7cHfn$~r0(%n(?NF!rxt$^LyFiW%){XrC=2RFbq;^#w$c7yBbQ`+uBAfD1s*;2?&E>hL|vk35&e#}+`ay+N{ z?mq~g!1M3L^#+5;5jFqp@3Gt+PGl?q=a+Ssv~CEQUu@p7a1&Tb8E+zqn8~qY1gLHVhWeos5w(!2v`#>KT8eifyknh}FfAt__`|mEg$`@oc6IVg7Un$wY zZX);;xUc#{>HOP$6t%UXkrA80`B8&54|Ro{*kge^DuQXIJb77y``x3TZ7&VB@s+ac zqXMqm=6OFp^k5LU3Y{x+}p^B56b!@PwPR>oRjVb*_gEzq#9pSEU z5%>X!`s_7_g8+`K-3b5d0@t+#a-_VxELrhKm>|%+Ch-7ntNP;?hbZG)B<~>DpeciC1v=XfQtw8 z;)VgDs$--x2-wd;83R~6^PBH2OpFmrfJZ&=dq#nDW}ZmPy=PYIpV*#hLqn5GhJyd- zhqV4%z#W&cEPf7H@1&o-z6Zoiy}2zK#87RMHWaMjw2yC01VTA2UIfui>=D8I`tZLu zd+A@^HtRjJJ8)c1w+aBg^?2LI_hbO@n}_q=t4`m4upwB{Ip3yL1JPMLp(T;~Yz_Q! zr&B!3fY^51w9ZFaRUir~2J{#l9h`W4(@`J?^*X%c)?!n>i}wa}fQt zAbq%Zzr= z+n3(=pXHrkZ3wc3=PmakFj^I#RB{Cbq;!jVAq=#sq3t8;0pDAP%+a@XYVT4T*sFK7 zbqCk0u~Ewd;l`@7We;@+ImNTzJsZRj?Xtco-vnkaeY{Zw%;%G1FJ1&!&$!F6N5CMG znkD{%?N#X_(IvhGqeb{@<=zHYm7_bit^lMxz-X0k0xE)TVi{0aerK)(*T@s2_r3+b zMpl>91Axc5pg{G%a7E1v94Ba>8;Kw+E!fBlu>R`fz;GZ*mXkL?hU&Gow?Pcj=4w-c ze)srT1GOmQRj~S}mb|tSGHd>LV)iBw58B^wv;%jOvonwOhMb!xB4T5}w!U=xTG0?t z<-vk|W`lmCWLR`Gm@#K29c}|=&6`@{G@!p$T|WkT$-*rnYJv7?q2)!Ilecj9-!irp z+f!y6Xybgs{g!}vD(B<0FTgx<-6vrf(84pv6$-31p0r<60oT8`(0b4_5OT&GdU(qy zu*#-ICp`$Fwf%^1-g=}~f8hO-C?}JFf?~6_5_~FGIox-WR+Y0pLL3s;n!IfViT+V;>0OVV`=wd5ukv-}!n1iw-L_0(=@& zax{pCjNlFFb7ug$e#*8aU))?pjMejJ?Xj_vw?K9^dwQ;eV}GTh^-6-Vz0~K?F9QE* zy0wp9-!=e*;YjlR0H`6G$WWj-zwBED-nH?gK~AwAb@v5pWoC(#+-JCc{wFtYw#C(+ zZ+aB`-*4r7@=HiP|NXr8x&tXPTs{I662amFz(;(fwF1&u%|>$b>E}JW74Y{tU(e6+ zpYCq}*+Vw3Ut)qSJ#taiX<$q#wW3lGXzfD=g&zjd(Rn_gJWy4%)eZrL#Wr!tJL6sg z5WLKnzz^0E&nsYkaQ*6~{gCauZNd+wAtPelly4pY1~7`Pz(H|J^!0v-E95RI%mO*e zvnqQZ_-rrNzvgn#3oK~^{W z12%@*SMcjLG2W%51en3@9pE?|b*-KREjA<|Y#=aKw9%#mRrI?`8ExDwS2yM-u(b#q zQE?}@cK#f&ZxMiYSQ9yyJ^`++k$weK&Ozu(Dx@w z`ctSYINmJVuX;srRXDn3^LpSX_V6uGk_Tw(oxm;%^wU}!&w%^s^V!Eg0Ml{l#OWKL z6G_a8zd?n~TY9SB<;to5h3n+zIX?sFoRn9+zn_0EFJu{y0iuIeLf;0~OPRY>5U z_rXj5x#B=5M;0fc66beFwpBy@~WdO*R zGbZ1B^ z9ZMdX)&SBDebN8b)^M}``+fSSL2~!^_YRl{X}uO5d(Q_vpIq5-S_kpH(ZaD72qjiD z^)|E{K@Kq+x+;M5_bkq?0X{ERd8+A52<-Jtm5KL*zN1u9l`(hJfIluvfn1x>ETsv^ z;gprf$X#O6FyHGEWgB@Mc*EAf(FcgJt@U~THr_wOUfDSj?4MOjZkz=o#Aiz2KH!+u z#(a!ll6`lkQ#ebNI0z-M~Rg)J8YLyVq|g12#6b&MXyK@gcf4!?RJ zFELI|y+t74rk!{T_{dE6ya3XcnV6QU+BaH>$=W4wE^X1E#~JXMR9$P)6l91yI;%gq z>EpNlOL_i{lVrGJj%?iC2U5TMY54STxKVr7l9#7J@@wxt*?$q-Jo?VkK4&1M&h&P} zNPUo|BG ztf$k{t``H*S8Ji??Vp$WYda_hx?5yj1fy5*v=XDh@9S1|o-7Swet;hIoT`@heEb^X ze}5qZY?)<;)p!;NksHkhz!`r2&GrV8AZh~dXfehzaMwC_ATA0#-(OgE;&--@@a#S{ zX5R#GrJa5LND*L*?rZOTi~fG9RoNT_Vz2Z20u{j#T%}w?2QXJ#YD~We-PW|AsN$`` z;i>#?eF>Zp4MlEN#8&YcE3*$Eu9J?7X5ZgFo&ESL;;0`zyu)mYK4*vE`Q5Fx# zo}TTl1kmpfahK=_g=PAlwvogV}_;X4~I z&-Z++wlHu*=xoqM!PwB(LH3r1-T>ro%B>vmsvcxt4X&rpK6KO8BSbfPf&4-0<}8o{Gxwz5X+HRJ zfFxKH&;9vJxfS8pWG0eeQ4FvMqV6A>kO`)k_ov-^oV@hLxq)ji_b_d^*igVPcs=-c z>+sXSvEb1YqEEL3&*j8`GkrnC7`q(L0_WKC|Fum8@|A-m`1TgJ{@d$2h+yyg70*|$ zTE6Q)_c$(m0JzAt+bGW3sl$^Bf~)cg-@U6q%QAv|rvkHOlr;&=E6M2>4}j^uKH*#h z$Rk#`6$j!5Ys6w;4PT3TKwD9s7lCPVoQwteA>YfAAeL&8dOV1EdL4UV;Do-?mf}k}e>Oz6Y#~MAq1Z-ogo^8B@+@*7fT^f-yUC&2OFs`r3Nd z^F8DYIC6H|RglkQynQ_Z1olL~M}AZOxf6~%tdg!|uqB2StlR>ONu|qGwgKJlZLvDO zt=6OI1CY^i!@T(qfHftvQ|e0~`fDZiHvE#kRdf_DYfV8~+1*l)LH4^s5u-`9tkgxxD^>B7a~U z_>^_uAI2P=7he;X6S*2(1b%lp9We7R-(6wtPYj0k%X^a4e?l&%C66V1dkfQzzx z0-Wb-X@Y2JOtlpSt!Hp-aevUJ1^ryC1vtC5Ozg1-vV#r=Z&?nmQ)dS4?g?4fcmB9M z5geiQlG?8U?aM-rqSwG@b+xP}4}t5oGaL6m3GUe!s>Y>2&h#Cr%gci^>cQ{&jR(q$ zfm*)vvCb#^CCr7a4|n*ixBzmLOJocI{i{MV!yg3uqm@GH9Rr5Zl4>g8`kjGXR(5)6 z$S%BV?kWQ;e^X%Xvf`0JF=@-k1F$XT`y@ zn`VJ=E_y+OFrcJ(Tl<}kS)P*_)<7W4y5BPp*km0rUu^cDJfnvNc zL3_+mI-nsKC5uLstpbk0(G%)_13v!sjCRw&Fe2yI_yp*vueGiF1LK+jIbUV|0CGrr zQff_*3#~ZMHsB3wfq4)x3B(s`Oh=zbeBtnGvRiv@yX zM&4g z=pX9!L0jx-<{Si^w;uPTfb3!|H8*(&I%NPG1$YQ(=9%QG4)RjQ2PwHj$~U;3ik8X#*r~d;p0DC(zM4C%l^CZZJ zxsDG|ltkf^Hwy$Z(%S6_1AdT2#m2k0W$iZe6*UKR8*FM!3 z0_{YsJ{VZ5zi4-X*3cLy63E@ZXfJSvDU=2@9`p8+#|Q#3ly_MVa<_a?ehl(MtEgua zFw+z6Sq=C}!x{kMhF_21vEZB@^H9sF;QQBQo){JUA{W>!VSnS zexT3Bo*-Z0C6NT|wWgSFdG93s1UTs@tAVU<7Bw4z<5b1!wSz&M6S6R3%e^mNBe|rb zQasrAl^$MgEMz(NH(B)~@SOd)Zw7FNL{fg8IFgm+Xn6{9zB#&oM;-7jn9%D~Y0ztj z$@2g1dVLZ2%<{38gM8FnVAce(v_!Mozg(|QkiOQBo;sTB=kU(W8ra8#hgDnzf#V0h`%Vhz%|aJN1Onr%@m3DV1!fg@8<5S+ zWoCKcW7FoDk*}UiDLk;m2(VWvT`GDU)sAro->(o=ONqJU*RV^q*h#rOV-vk0Ozu-8iUoCSSv!OlgyfIToe=e{|AVh8tMrk@V` zqTJiy^FwsK1|uNTZtU{-Z&>D#95FVv&Bt=nOP89`or5+M7Og{pNx8a6rf4YhbJo=^7pl z#?r9&%J_mYv*d#nUjf^gvgNDK0&PHO*@#x&fbo@kIFan1Ei<14x!1bvc@4C(zB>vw z0p2j0*~jHgivs>0X)6ob@B$wModxlhkHh~d@854D;Gz^I=?gy9>x^u3AGph(t9{}- zkfl8}Tq}Xn;uVns)Uuv4TY^^KZ%si9?A>eZzkkqOoLFD+on8^N6#=UXl?Uww--N*N zKxdogYz35|8Up|gU+x2O${41P1lh@4=B^6FSudDpfJ$1R{yX;;#1Z3pdo$2xJF66U z3>aYF=aBjCJXr*h1{mf5cLfl-qlE7wpp{7Q-kiCuM-KHf0 zAygB2&%#{;@sZKes0N~mZJ_NrZ@_i)-qjbMcN%IPKL*dqa}OW&fs6)QCw$)(a2Rp+ zsz6Cv{U*Q*l_@d=#D_d*{Rkq%FpS)Zqe-`Qz{+B;ON$^d zffyZdI(R-9BSRjKs0sEj%Z#tG8|*$+FEpGD_A^mc>RkXD`@H8r_Fq0^-acygGVrP; z+G_8DHq_D6`8H@voFf9FfN6TT%?3a?nSenyuK{R5U)A<`^JNKS=*t11k3_j-^GCah2T+P zIpF(1t@u^};Hj0+;Kb8_zh2Wg1Qg?a;p44mXF)7;%yJe3Hy6(w>kFQcbFa z?10mJrxn--J}YXSYSjXAJg5A27XmCTM*j>jM1aUk9&r^!tW5G92Iga_4_+Mxo^B^z z-}43NJ;EqI?H27+JrN}$L2UJj^{Ee{tg~r>Js`^4PTI@ot5TGIL8?t(Joq0Ih*&4^QN@pyMhN0Bb-rk}uRcZ_=lG>7~rIb<) zp_XuQZAGi}XK7l5Qd&W+xfPufPy0Fx3ET4Rb8$IN?W10c2&rXljYPZ1HBRTvq9cfU zSs(AzbnZet9Cs485P?9b`?p;{)Mpj#MKHf zSBQ*J!%zugO83^pWkP?S%Df3^@N<6~C%>LI0cj@Y1~Q7!3N28=KXZuNtGMNV$R@DrM}1a`E0SV`9OGgQjZB9TEW& zOGQ}M# zZL_4i$D#w#nl=^R_+#1!wHF%%ZccGl%0H~fy+T#NN~`WOv3aS|L3o{ttx8^SW=Lez zc^W*Rv|W+JO&YO7)?u2PN^_8MvUCtgDid#obpe*%up!3P{*kc2y=dt6Bq-G9CXs9} zse9)Jih#-k49~aEC}uA`N>0r?qsu7y#~>gj|IeM%1!jC#bwo+u-{)iW18ik}@;g99+1 zwc$naFtAKfo-@sUCeLZ2*g86ZhKE^)MP_ByO?)@#qBo7H8L^(CcDTNr_Eua^)7R90(Avi-6YsYT*22+F)`f2{Sh-@6O zd38PE*OfC{Z758Ml(s5PpN>_Vg#!2m^ z>)QxFIeaF#=i^x|ha1qM22&45i1}r8;`p?H%TO6?EE^{V2HpK!7JZcO_pt*^^dga3 z--hy;)AQf};cJ>!KbAfl(iPu7TI$mJTJ(#@F+W6aA;MTE0IGX*b$nk>+>^I0ORQH*=L9W^l6s&q?de?mG@pa_iFY$)>{@gdcQg)RTwnmhFE>|jz}%d zMmt2z_LK}7RXPTE>T~se$P%SoX(q-n5W1#I1RSaN7bT*~&){sk!#a~<-KR9O^Dj)V z2>u1Ps0|>ZW0z62rX;_LL2%(n-Y_X~C-9|5`ID4}mhhOglbT(UjoX0tP({pz)&N|r z*ll~iVR08rbVDo%q9*~%QLSzQ`~Vwp*cfNWEb$0odd`Ff`1JdPe>SbfRwdCn@;4F{ z93t#oKZ)a5&7*4@$5wgb%!QeW`zym^dju0wV~;g9J3QCK+i_P~1has9smqHB?R462 z#@BKRdZ%dZr0|>VnxH}SzKkkZ!wG-jH0`5P&cCyg9!&k+$$$G@xMH}@7yMD;**{$W zFaB-QpH6mb?#92Oxf}ognqLcXm!`s3Lfoa9z6<|~=I&(?rzEnwY7H1NYay-*U$WO; vv+*jbC{W|b1>DY{KgRu;^XE+F4+~=O`x56_ePyKtkfhcy@~=>KtOtx-aANFQE5`7 zMLC>^+5OpjKYO3>P)$Xal;{c(2m~UPmy=cp zf$*b&pViZ+fGeVcO;>=o9(PS0j5^!}Z10G&K-wU{7&m(a7~zVv0D)WwY;S!$*8o1f z=kh4XSAya_m#rg~RLEPhi5J-#Pj=F4rO>8e%E-=6PTh5;tCSaFhIj|REAc5x=Pr|q z20_dGbz|q26M8KvpYE1^TW^~3Z@|JoI?{)FTbS~i9Qq!31dF1(XGRcgu zPwRGSZtK3Odfm&QIK^*plu z!>JXN$`|plp@{kXz&cfU%K&Tq?Qnj38#8FnHu?r2->rX?4{47v!^t<+!gfP`QXPbU zjhMrXnEV>KVi*NJIau14r@Um4m#DAjIR}O}c&jDgJC&TZxW!V6M z@a`dDFg1A??1%CIlyP3qMCBSJsNNZCq}^oka}MdEgEsZ6hT8sKQ`uLYeD)4Qz2Tx?90@ObWw!>*%X!C06`ih0{K!9X_nE$lN!vnRNpLqI zSkW*I<$DiiQX}0zN3(QxV`F0}TE$2F&X8kDQ?e>62*lWq1bkUXSxLwYWy=9KN0}lx zTy5cFaGABLw5Cmf_O0T1=28N*=5nvt; z9u5fmO;@BdlwOPoEaGTxA*3!XbBqG`O_bgWgRvLlP%xGBmBBT7#X+y@^cx3@xJP-rWZ z{huW4(8rnpbi(=PZB8x@2{j@&5$Uf?aUBAmLq}X<~&d{D1?uj-IU+VjGe~jhP^da0 z0q=&}{D0;IXA&VvHF;5bCt7`mpM-yp_(7?cL0gvP2 zhw|_V^7069@$vKUaP#~Hq=j%q173?m$_3##zGH4CBmcNm*7k! z1V{pC5{`3r0Q2E>K&3)3M+6*$kOqDLWDqVvb_fsfUz3Yh2*M)-;nn*Y5apKOWB|- ze~tJE;x|yLp&S8MwLzkOjrVV0zkys57jplX%J>WFH&Dx=Y!Sa^`3T}SP{P!2N@~h$ z$!qF@C8bogZvNVW{|fvYgrrqfrGAP05a2fuY9Q>)!O93U8i)(OMEn!rZxA@f4Yoo! zA~-mHt@nS0{S7i2PNsJdW|&`#a18SsXmx>v3P#w%kv6}?{5P=QKrRauNk}`eCd$do z>X+z$0{jgEFjW;zNth=1_E8%7cY*A0V84M}3xUQUO`U9M~VxTBfXVd(!Q_di4ahMrUqE?`M>TuJ8S`0Fk9GvsfO z_$ST&QkZ{Q@E=ngRs%=5{XeGoe}7lNtPp0_U{xT11J?X?X!;k>-`ILmN~*G84NX;b z`J2BEvOfX-1_2EO0<4TX?4m5dnpQwz`Rf$=58%H^3=Nb=IAXZWhdTuPGLYcN{p$h@ z(is7EK{;CgRwVwXkn~H^|Fq!0BZmEg4hQ(w|E0X8fisc}(hdREMmd_J!MH;Bm)iQL z1sL#c^zS4~)!XV|n5wdxq>An@Y5g7UH=OUE6#Yv&|Fq!0!vlUtN7@KeFe7kC7Y0k( z+k>SM&IlV6(ATp2r6B)q5$1O&|C2U;N%fx={QpONvW{?jpd17PIz%In+7_07l+kho45q4&7zm;x(w2^=e@GEEk8`y6c=cdXpkpj1W z1KAH2{?iyc>{I^OR=?i5e?k3*rhl_BCc=rEjr?e`iu^V65c-#HtjJN*UJi){PV8>~ zg$C{6#6t+^h935$%}{ngki!5`?$}e0Zrj5haoqu+1=0yJev8lkNa;N@MpqkIIf5L6HzlOxSb^e7-k(0LBQanCCGo6DEyZO5^yL8C_9{+AIgs4 zfk63r_|5qt{Mj{mRG=6{MQ zM*x2t-2#E;=o&B*1}4m$e~y@shcbYD{ySgCapS*}1Q`4uBEO~I|ETLf>iR7W{1)(k zyz4*e`YjFo7Vv+(>;IU#i2iy=4H$om(z^hUp!Iv-cK{w=J7uaUD-Alp{Y$FN2m`L1 zv6s_DgFwXOxF0-FOx$JQA|Xaz`6l7?=_}_?GJ~uq@IfFjNM2e}({*5e$R*Bf-D~M! zQ&840rkGoJ&?AkFI^ygp?I+Y#c!Nbn%xCK!j(w&$ZTG2YEM)wdhYwcX)2FgoIquUb z4O=szC_9rG>Ig&U$c5@|S;LIa;ym2K)xtMp1Y@4@6ikiLwS1V4D+o$Ouk~&2YV)*uG7Rm5XI^%*N^et2DW?cz;p0&p>ZZphii#vObj;oHWs9-`sEni;NmDa0;*EmK4n7kAnwDrYcy-GChAsA*THlTC zkP|0WL779~8F`h1U4m;*FVX`B%I4Rs3SDq3HVkUSoKA=+LT%`SUiA;V`V< zZ`n6ekeXPtkRyuP2^cspgqQRN`{l00O!uW~0N_=4fI^12rX$xIs}mLurpb4QRY0%a z!qNadQNOb%k)ykb+GKokbidjN=@c_WanFeUIurhC1V(xc$dhxL=vFTn?a^Pn3JWD~xAPn&7tz0UYNG_9lA=L`Rd(T@bIQ z`mVKonP;UU;7Lz}bp|-rpJ%d9h8U^b0q#MuVJq$9Wd7FyIX%fD)^uJNk+407cD9}Y z-S(kgOcW_ln^>j7d7oK!Ib1;E`pGkKpzL*_&m-2ltXMeUu_kYc^^z3=M?udoLLN8V z0dA)&_cU2ts&bOuGJ+G(;~g6EEl}CR(Nc+ce?`?6 z?gKpF;>!@cs1-6ZQvr6h*30tJO(%V0_zW%5@Y7iXx=)l{;6NLMorwmiJr-HGdY;&1 z`*f6g2!Nn>l-L+xxrZ%a1aw(qk5P?aw2OViz)_dc{DedsoSqhR&D%bVqLhSyq#0~~ zBFx#aefjAj52W4k_&0W7adiGlj3g&moD9=7{Q((yAJP?pPRB_&`773~0rrznHkD%o zonTTE{oWM`+`q2~x^WjtVVQZ|{zQXWx(<$b?g=MqQ2I8^*yoFR7uc863t&{@+zj;Y(+R-6T4ls zJ_UJ7$`LHZ$&~(JPM)te0(YG-hzVh<5)XoCn#gf7MUy{=LSQy`CuDJWI4_mQEj)Dd z0+~D^iz2+QV)BBjLIB3r0LST?UuWq&i1FK9bW^9E6qCZlhU!-{ZmI}C3+wkEdVzd9 z&-h&jkbEI_=fpD!6${B0sOfu=jviPpMV+AayAFsuyX_ZQHdA}jH_JR){guhaKvhk< z`#bqHq8=T0SFYGbw7H1AIrNJD$BH4$8cqPN#dS z!6t`G(;X&t9exkzh)br^@|3ab<)9=EvCr88J$=yadrYHf_5754rhXdZK0g46B$&V# zX_|!XX7E&DQ_H@5gD{|8UE>U3Fp_6ZB7&Y{M4;}ShQddpiT6e|PIlgf2zJ6|Tob4Y zz8`=9)&r{Tp&}PSYA=#Slki8or&Tk`sHAK6edgz)*G_rds1(D|K-kxOU10!$zEet* z!uCpruMn;WT)B6UX#iOd*bU6^5`Fd#h}UHWmgj*SD!M!?J zxu+NoK$)yW1F7RAF1vmAPf!9m-Q$G-Sq*0w)mNA_Hfs|gu_y@!w4MOtKH);Y`oSN% zCvaI25YzKaR1fYt5R6P-82q@p`{f}*0RX^Z(SF7D#}AD6au*&xICGRgjZdU2z5&uG zAlWPF32N0`O#ls$Sbfi+MY6s)QXMUaNYW@i2R;J$UvW~tZ#p9NicGLEO!obc)%|wM zxNnI7!Ye(6Un{OI!kLh4`rQ%JzMLW#n09gH!_Vma{zRNEaVQ8*$HdWVrbqnv`U2Vm==x^A zxi1cU!ZAy*b^b_}y5vhhb%L`{-8Ydx<$Xm)aQ@g>yTs8{I0OwtAYG#6m?v71 zk738wNfhWgCi#l<0}Ju78eL6of2?|o$YeX>e)o-pznZs%j2YZ@=aUFvbK%tNLw8hs|D`)2RR)aZ z@nX)4hlBvU`~H6#!Bgtk=0{urH*a5t3gQ%ilY~6%0QdyR`>H;qS?Gs+?B=03zXZhj za*6Q(r^KIWi|fYS0xqW4f&xLlC?<-AkZZyCT=8z9@f|rKt*u42l|k3sLXo;e_wNzi zyar`|Ja!T!LCr1FF-A@Y@>%g`O0!jA?p~>MF`VGmo!}O9%NL#3(QxEY zD<&jaCo;lkE^?r=o~-m6Eb9lTbBYBd+lyqY@hC`g9+_3QZ)4nEE9=01#;qj-+JY!X z__yLmN2JNor%MRDJ+8qCOMv{>lDlLd-OiHO-qg`53#QOyI2TEoWCYj+0o8H8?FwA~l7=l0_e$i)F7;sTY77tNMrgHNQ17uD_R8^02*T2Ob8Lb&#{ey7d5HR=27_KD~7(^`Dd7d1$ZwpZs{o|P8;!FAb@O2dP- zMAht!j*+SsPoWfZS^i_4^pt>@$qDTZRX4@9Bl7F^E%s(#V`U9|&>|w(+vS{TnwDfg zAg|3rxk5FC3VbTJT()QVQN61LUSH>SzXVTK=a(K8-I*S$%; zPydWDI-NIv$EPqwab$PLW3BdJ$=i0Mcg%W_sNbN-i2G(Ou;;x~7|A7WetafK%E@-O zaI#HM;hB93L-VS^`r3k;Y@>{z-In5GkeIpl*2C-ZPVoP`Xe0jqu{B#D&fUL>)1bU_Rd48`yy(~ux=P%YA@EUpzwN)(@ zRg72duZx}Svv$4(cqeXusoiE{&2-Im`ZPj-e~UfJ%@U+_V1E6K zo!0>^ZO>w@SDjdZ6kmq9Yz4r#G*0*lADSyb!KTP`V#+)zqWYi7Ol8cr1z}O&1;gz zG=WoYEoogW<|RapV?;7iH8=1;H=d1h<`fVj>3 zHs88W<(g9+I!O}#>EEbPO>w;FvY6P5LEHQ@N|EIYu0`|N>}urNOf@ zZyqt2LY1ZLwBk?m-3G_UAc{~J8OZ4B|I^Gn8cK3 zpnp)aBkHxaH??L{oRUqW2&l|$c$$1lM{C0UB)`pYPW|^eaTTICus9cjdU?2Ofg3)vG(_~3r9}9I|}02sx2R=*0@=x zZ*b+PKGdx(_G@o~Yjmw`{!HWLg%;r*; z@Ku+cDqCS=wd@l8{yK^|>k}X_<31jQ60aq!i!USQqrtFSuw(LvPmNu?;WI(ZSblR+ z1+!@%_j?ER0#sOS%YvRW%MlJ`$kc~EDx#}a@%AfMoLn|%iUN%~C!Y>BR`uMtf>ek6 zajPywix2D3X{=+R79{K@S_ot_1#N>Gtvv3p`$n3iuu)f~WUKoQUk|g{AJ80e^RxCu z5l};i3((i_Hr9Z=&9>O(doge5&kr2d&FC z#(5F!`e7F8b>D4~Fx;!OU_c^mr=g>HJV*!=ifDfGQt#;{4>sRVDs z`l^LnPA==cJ*($P37uv#f_riC?X@qj`^!y{J#0MZbUvX`g`1ZYH)Jk0)i5;{d-X>k-H4bRiSASN zZ~2N~MZh*!?q#8^Ir5BMmel&3Fjl4Vl4c_#!>eCd2fFKg1Pq*}P4k4z9hz-*3$4mk z#OHLHL&|Lin6X(;FZnIJbf3sua9``+?CA^beB*X)^ZW4Tr@`%JYR)F=QQ<*Dj~&dx z*ivRSe-137L;Z$Hc1T+@vp}&Q9wp;*R*>)Zo9CpUSxrcUc6W{4&DidS9_xz@=}a&J zY;PO2{@Tvf#E)J>!V_BtH?I;Au6tbak{j6?rJa6BPL`8p_R<5D=>092Y<4?#u`fN3 zx?#VKP`Ik`bI_c7)#k?vOxt?J>|)?Z_*hl(svA&MJy%YDn?w(i5KU$xmv~p1F#e6w zUDL&!uc?ToP$iX)fWBPnVcd9>BhlS^-r}7l(N5HR9R2y0Vbpq5L394HBhmJ%lWHGz zq#G0LGqq^TH3!QVwNNg_772->3tqT{+WRrSYZg&Lac1f2tdNUVN`gB)thlns~e$8?69%6VWMG?xQ2s#lR3vR3la7 z7bhi=Zx-|iUz&<=!H$PB%LtX`My(z5-1qZP!qN{mT}WCXE%rR+f!%%Q2}l1Jw*)>L zJ1l;1eV)Xtu9oYzP-WQDhY!RY2Urlr1h${MZgn}khv|xL%%7^Qa4XQ_Kx)85*nl8M z7a57v1oQhE(8tL0*Z49|1e(a-p@vmx9_eT3j_p-1yg5T(1pk{QFmygz1vi6i+@*G zm1+lf_}s%AgIAwVQD5dGJWvQ=DB$GWOd!Lwzi4QQF)Y`l_NaE+X(OBKy)=?nIkotS zml)HF$go=8^$Nom-C4P~H^<&_$Hil&WR{PSe*5!Q`N#3`Q8;eYYw|ilz>AsPg7fR)8Mzhz6^)TxQrkN(#)P=-T z-M|S*19E=yDUeryMgd*P+mL>T0>{y{@bcH~1mQDJTH6WVlf*X4PEBuqW$iKFru7u* z=++3X%dKAWG-$5FD2oO^bk#`|UUH4!8Etq}`z*A|gB#d*9dpkzusLz8iw_&w`kp5W z-a=dQDum`rNIVOO$_3+MJJ3u>=TcRV3DG5|LraKV&`RfK#PZ6L#=;xA0>>V&k4}Hx z>%*=oGKO{6)_bZ4i>}pBWt3mkGlW#=8gI=r3puyFd7TJ&Q~m+EwZt90mmgX|emY8M zDaCp%8XbI#O^+nMxwRC<5e3k z%e$i|kkwWYuN-p|-Bxm|EzO88R5GsmezGk_mt;)~k|amZ!Fu^i z+ew_~WTGfzd7+99x{b9hfjK^*u?El=O4{>Z)_KWJ$DV8GYW%9WmOM>Qz@kSV=sQQ(N;Q)|JHYfsM@who*=fWF51qiDn&tGPnx)RmTv zx8ZZ7v<3xk5})FbH=T@3{ey@)vgP!h?NC^1e(}@_BcFQHU>Beu34c(rKwFOX8tC57 zhxRWzpf*#@BBrxjRcPWw`&LsM69I?CfZNA;3A-{mqBsbxJ7V%knggr2$~?hW78=3^w^B?VUGCb9gvIGUfD#U7haX9BiN@ z2dyqO>038$SLR})_L^p-b4cP<&lat)I&hA-{O-lO(RY3v!7B;eKdAN9QE z*Lv@jyjxsQniaS6FjCDO)afg47jdY}e`%g)(f&Yjwg7AMpp^*MR={!KptP-F(ZrU) zR6-;xIk`>Wf@vHVe4h#DHq{Ygs?)T5d$B3>pzL0AUFl-on1krv_f|)*8>bVvJ)T}6 zN54Ni=&Z63f3;_@0{wYMug*0+zjBu%Pgm6Cnb77K4dpt=ijW|Kzb@*i0#*V_-Xqie`r}Ow(fGe!M4PSWL@~!4p zgGKCxUIJ3qGDe;fdfWaY+hDt$ewh1aUK{yJ|%+_q83} zDmv+$K9dY>i-~|Ui0o~+EX{~7xk|>1ruk5Em0Zu~G_29eC@{?bx)Kv0wVe6p7Vabr z_#$tB`-c|)4=XDZJtx&OOqjbbXp2#^l*7Xd-Q=tSIFxd`;v{P58#kU`8tIMa7th_O z9g9tEgeb8aVzN)%UAc30C$ze>VobE(+0I~xlz`pv+wwK1=8T|Qr9K;)omn5C{BTBZ4 zmuMfCTkU@~J2iJ*al$P~sQS@*Oagyh(HMIhm!ZS*L!q7U+xOyws|R=1d{BlNBegHH zo)oghd#xyVjlLl7>7oi_I6A2wYp6Ha{R7c`r9}KM=BK)Vpn=ggNU&~#)SMf<%FPxZ zrjy>CLTs+}MRIK;b!~2twwGJAF5QvS=c8PhMFn-bTIMc|_F(%RRO6}j>n=~L7jh!X zXJR@MvSHdEXm1lm&4E&aq&2+TzM#hl)KIQ(kAJ7`p4rd{M&G%xk8RUZ0^Y zKlg2g*xUR->(BCFb@g7@2~v^r!)B)5b8$wHS+Fk+?jn5h&y(AkoJbq-vu(a3~z}NFbS+*U*}I^cb6+);}^~0_+_wf75frxrdpf z`JGz-a=-^dh11buR9F_WRN$!C|0N2(`rwE zUW~E>8*g>fJR|2h0+bpe|CsJ3hxp$u4LQR+bRo=IKP5o972>3YNfx_koGV8#%e%Ve zM^iIJDT-O*W*J{7Uc7qtdJmvx(~l9wn{!p=LREZO)s}NF=XfnUY&s*w(V;5B@aUz+ z>wgfjbo~*D#C7&?2?A{KJl?g5ZSJJe(%l}`{DNp8BBP%I5&0fvSH{;?j5@~XW=vOa ze@?ac@&hB!#k}HrY5BKE3$GspAw()Fhlh#L);ZmYT$zNlh?g=_bD|c7bNawFX|{VU>APn~yp<vMWE1jJ^x# zH!h$|1G-eWxkw2G`Ti4e^F?2a6f&gM@uqYBx%ZxIZW9a%;0*L2`K1=UeBbta>?Z+V#3}jsi9LY>T35A8;62 z-g|lS4IK~(fVd2l${_NFfvB(xP_NS{r$6LGv1-M&k}6`5argpp?Bjb+x4R?8m?nyx zN;jv2VrlzWIcqdFysn-v;Vp6U_q)3iSU5?{ykKiwpjl-G?7i*6t*Y%6jZ$;T$AC{z zJZ7N^RtG!+$d8vB8@(BKqg|UmZzVYS(y?%Xq0_Qn{pE zt@H$Ud(e2Ti&&>EV6Z{4Pll6Yyu2xHMS3xjPjZa7pD%U}Z@4_?e6plS)XlT@kejUc z5{HN+=^39n7Se7_0UDgefFp-mLflxh#T!~5DGOao`x8hyYV|5^vH5*eRHYUge_7r( zc*@Ovds!Q^NgbS1z<;~X3;%ARMR~58S;J?Cg^FsI93f%;W`{=Y0?J_jwaV2XY$dIj z0bc8fyE5w^YN>RLta3mh0z}fJ`!Anayh+SD6MdUjj*0GxyZTc5Ay0d_l8edML! zsHo5>?%3v;I%DxPSz1q{@`Z4x5xJMQN-XlV7`ik!ys0yig4&kiV=!$K z8MEK7UE20G@EZ+z^YEooB8=^DA`nz)^H7xz-3TKLR7&~qjZe#!i!JYLdnes%N>bv=evj`#0Mr z!UhKGjAoRkUJiPHK1b{XoENP}YbeEhRv;8XG88Y4R0)|U^mON9y##F)id{OWPbXnN z%QM}%ujXcD6%cXi3W8*-VTW6P%|(<``5Oy#{VvbY1zH1GNtEuR`g*&`p1==yOEs19 z6?^k^3!m#MK8RRkA!Le-x*;t~dy45BKu-5yQA#pe?WQ$K=}2&iJHK35(D)XjjLTNn z;3|jn7~dCu`t!|i-x`WAm~Wr!+}EC?6cXWCd6G=f(d)x7(#M{)DMNySQD2D3YI81d z|LoaI&}G_0Lj6a3>YN3QF)y7)r~wvtoK3|YXS2-Hb9YXifR~l!tHVs4x1N1Qmw9yP z&nhooaT&b&74Eg~M~-RN4QzpWr;DVMsZLMW9Y<6p{buliW; z6h@r9aw=s^t6Fu5qH0a0P7!!3E9$(aZznHo#d~cVIVd~P)J^LolC11p@Lt&5g`UhN zwJ~P#32Wk6>b2Fm!E9FZvrVZb+iixbv&*tZA#>sUeIh`!cJM>*qx)A|pT-PS?cGEa z50T&5`MSl8S)a(5j%v8{9q^84g>RNG15pDAP!Pjgk7rz(JasBf+)ADWU6ktxX79$v z1oiCr8+ql8ok4wEu-=+f>ea!Lj#+2RIQ7uchWw~Y}zF&D&Bi4BqX9C*zwW2 zLHV18l(#MKwW_);0o{PCj1pld%R6HNG((UD{`Z?N12mfMk5io3TTkDyh!$lRQ+=wH zc_(pI8m45es+)4Xb!zTjn{ewDsn}Mg-tKC{P>P2<&ncSx?mpNKt$ttowpne^WqrC% zc0^rBqjPqmgn~$~j`~uDNe<8w_CQCGYbWzVXTCPGv(* z>yn`i)+=Xwn@0s3mdx(&o!y;Ed-$A)@*QY7vDu{sWg!@h4I8H<98owkkTC9szre*J z7K2p{q^&d<*?!GiHIAme%|^q#<()s5S&L5LLwU(~HH%&!V!HfftIuxG!D(u*V0IRm ztL_EYvWpYSxaH?4q13bTX#@#kSC49UZfuxMK(m&JWf09<1x0ttj=l5=~B)3d5f=`IMWN9FdNg%?-}$eadf` z!`&{HpIh}-iY_I-+PJ%qnv*4R?&@C7Ln0E%g_+h_S#dWhpS5`5wQXTx&!KXS!soNI zx6=8UJ0{-Z<07~dvn=OiDq(x5-{9%`&suV`1=U9CA4p~k^!ixRivnmDiQ^)#Yc0&Z zoA+?3A9>dn;uoOn3}ZbnCyIQT(54q|^#)Na}e zs(5z|)*Vmo_P!iX?(C{V+L-%4<{7YP>|VqJsr6?-LWx_+|Zj95CCRJz7#5~LKDO+rGHehD4=)qG{1(AfMK#l!n$TYJ>S3tbkU zS46aDlrjL%zd&;T0@1tYoTw<*K;ivbmY?)RIu)jQi>6Q1h68hysHo zjdlTrXeE`w@_CMH^A~y|Kj-Bqu+J{`vvkCMPCnglAlXq@qdRA`C-Hc)qcd0QAR>I( zK-*tQC4Y|P50b+1Ga$|Gvd1ux$p^A*ng(;$c5Jj`0GS=K<734DmU*ndDtSVujr46` zeA{~0TcVrW)?7YatL=rh4ihuN@g3F`VSR}_v{?;O>~%dMDmD>@)R0yiFQnCzIkfS1 z>i&v{_MLaLHz#TX4P`Yd*){^&Jk~Gy?6D55)zf|)4oWQ;s`NNI(CP;+xYR;Ui+oqnMs);?~K@PXQn*Wx0miHzr0PBUhx!qPL1*@ zTZ4r19x6S4cK! z!sVVCrBHU|t%_wofX}!@8*a<&RE2K3-R@4_HfT^7irkj)8C-uv>ySKd7P9yNNRqT` zO#B~2wTPvbk;~gNGb*#%72?@b3GRkv&br36HW76zl^SJ0JAb5t`jHGpknEXQ5Ttp! z`6Pt?#N>EonPs;C(>^78NYF5Al}~UA#%+vSa2%7ZaJh~OfAIlIhX9+ zWX@pQ%#ddV8Cg>4;9c?q5}m6yeNWUddP=9sAKu6G6y=mnW=;%L)*2ed*Yb961m%a* zxPGNx7#PgxZM9&&xL&Xcw3#kI1t|mQfR3p&J}B&d!3Kzgb;_0Aw673KOiOMd7rBNt z6-yk-saP4h7Em?HH`>%~>{OF#>#X4OsZ>TbK#$2lTqxgUc7ZtDU&^Rfbf{&bIELe% z^F_}14Dp@GOY0NXoSjc1-pAb8LHSe|X&d`IwyWH^J^_>}9~d;mJy&5^JFyC=PxbLFv_>H5j85wolaG<8mIp5 zl29~~E7`B4*IY+)fyf`Z>MpdO+JG5T#?At>NwpgkxzWy3E9Luh?NjT|uiEvJ&+%<< z)7VqX&Mb0U8OsjJ$_`UtbA4}s5ql8e;}j42iB$-R&)(^mX~ zaBoOZe@WwgNn?8-xvSDl(EXK}PRZC^y)kH834KF_IMpo%sOT&&VNE@}+U}tL9xxaS z8rV)Um7^7ODywr{)@!qRv{h}}tyxN!4?LkJe;Ri*VWG1wF=*DTgzvPv-xT&dYnH~1 zutH=yd^+P1&i;my+-cfYi-5oGZ?MG;g?vE@CVrhfVLmvmX zY6_gcb%P>73%**JVT{E!M?{CbczYME7&2SMymH%jKAj^v#b#VV9n=VH3&C@EK=ATS zTnWlJ;S{AYIiysupE@Rg;Aig7-7WZ#psH@&N?tuOtb1_Ft~PA0Z(Az3Z>qX?W}I>1 zQ=0G&Y|=Y;=qk7Q*;6*%>I_#jAeZCBmNpF}HxDL}qK*e>mhS@1?dDNKeMvbSqPiJW z6+I(Kl#hXaB=95}aDK)gOgme0Wp}x6YCWOSk|_V=#K^nw

`L0X?}auls2#8v7H0?5ci(nlV_^0>qP^?O6UbMWK}}H4Cs{R;Q$o zzFiX)gnEvbzozI~=Owbo-iHZe2p`ZOPNIP3H^7VI7buIGvG z-#=?CXel))U&^PNGj*sLMh07tukpshR2|(TOYZu?6XGEs&S!uUWbT&ggi%J2pz4PX zy8Yhi(Gaz+r;574JkaE}{>k(JAJ|2(l_Ga!46xph_l?qZ2O%wV!=bw$0 z=p+FiM&e@>z{7d&D;;P#Q>2TR@*U3cwW0U|aO;<7D#ky68>pNY%A14D`bq>BQ5c8n4y1!R&p#z?r>2t;T z4G53?_EN8Ag?Hi3?e$aLi1ByZq^X4dAG{B0>_2+bp&{WyT^qSs^Cw$L*;$jU*f^}O zkY;@_cdVMqXIlH-z}e)G?E@c5Bi3IRuk*U=cXwG-_L;OnvX1oOb2KL=OYN;2we~ER zs*Cg92;l2^o$Px3(C6%@DREAn)QQn=4>spMTpf5GYgL<`tizUXa)T$&$iu_gX?7z~ zJeA*QNNwG=cDH71ZEH1{cI48T*S=r5V-DwW0$>jF%-6a4z&Ti1c(_l)-!=_v-KPtt zo^Jk(ipt}1ZVG2;4BHqdDVt(aFF@W%uu=p65#?M^Utu(oIq0)r=)7Q6FuxySNnB@(R2> z4K|g_OuEzL}qjg4;q#kDGnjm4ia_x3;9VI>_+r4hdNcHfpqw;-7mY6_B;WAs}@ic0j_uW)U7c!$>2? z1f$&HV$*o-D*f6@CqU4dKMf)GI3+<3mbUbEeR}m{Lta z3oBOM5G}){=}ux}NRk@vsccR4q1oLB8PZ9mGF>xH5^5DnUf;=?W~+TRZ^wK06+zpU zFA>G2r*%5~{!#8zH7%R&*{O!7qZzO&@pF+V}PhXGL>^CN}fCvSAm4mkg$= z91SfY_U%?2KEg}31Fd0)bGsDgm+xqllBkSh$~0X#1ofG8Rcww27Em-kXziGbDKN~9wrxYye-f(ZU)l+M zMfAM(AZU??2?UBdiFX!H%|k?9aFBc=@^V2Ya%P7(xO4KeqnFFh+yLA;lCrO6xz=7$ z!Mkp;tn@LQL6gLpz~gN_lGN=^hiZEj1SrBP_ex?;-J`qtf-Bl$&y&-0%>h@2UT`1Z zpIUo0q{60F^jn^)pX@@!O-^u5Bkm)VkvceaQ&yV^3Re97}>w2e#uPARhiA#N17 zyKyD<>-O&R#4aa(Z~0bj_VKpUxI#AU^>V7_>#&B%Z<&SSQ6&a|r4$?W&=YQHfpsyb zQ?D0F;UU9mc+DOq(qf&St1vyEpL=dQ=(IkdUuvGezjoEQ^ZCJoR9PwCip5DBj|$%y z5Vr1|T$NuV(&}|FsTcQaVE(p2OAWX8$Wq0OFDpjbI%f+8yOCd|=nABglk6E@*bAsT8k&_6 zpTgfBcgvXR;STOHtpA>u;4?|u2PVMrz3f=?^+ShZzqyC)T91n!Id)6DvGI=}~ zs;r`wyFK;cGY9P>rM5%QI%agMA+DFj?5Xlfh=oM|=y^VxX%XzP@yQezFD7a*oY#O* zWXEESG|>0*zqhz;cghA~frh(WET7#JDe#3&-_c@;=k~Q%(H+&oK_xbqAkG(}x|1WGJh|U$)IIuPkC$Y{o|-ybyw~^Qib(m74z6w(>8Q$b?+F#)O(c zWUsFn5)@}=E7`VNj*G3x8F|Xe zIjw7`K09_lW*z9si}@KP{uw4bcm#DFoBKHP6gk-Y{Q=mUGE1*3^TJ<)kO^|TE15>Pd9enDv`;fTMDn;o6)_4 z9^+WG_Dr}mXC+23fn2uAeU*4X{T!hf1^*)7|8@ZwCpU(_o||eDcXrmlyyPV3fisG2 zc~Q6MtCe0u;fgWou%gX#Y>Sy-x0R%;66O6bFX$L|CHy|8doHojse>&c!L60^T&Q~m zIf5T^9?o0Z*a4?!2MQmlMeC!4=p9?XijWC`@jAi3f z?m}0(k3;ntWV?EXbIX|6nVE;Exm~5x=lCWn@;`l8$$YIe`!w48usyYFj5};^@u&Mf zuHU6ogyF3ssA;NwdJxJ9p@mP6yh=wVwU0vI{iDaaM-oy-K@!qR=eTmd{Omcl(po+* z_!3{2>VXfGk zF9DWBPBbgo{6k4L-5t@{Ume>8RM{R)t$^YU%%#8>v6o-74}PzoW6*Qy5P6>8Ni2i# zw(Vu%iW4KzzQy!ZC}m2C2`i=iEGgB#3U2b~SXsUD!cqbL_NXJA3xkQ{MJa`-I;?B= zbj{t&$1~6Gp4d6tINPS1#*Yv7OiZ1&N7K?cw=(D3MWkR(M2*6gPu&omX{q^R{>&Lp z6G1(3j||JP-6UE*+GAr~Q9aM_B7RdA6qSBqhV+_(bD|<{r6gsp2x`)fBMK3*R%4TC zjBAkIsbsVqGmYA78D&k)(EMVynk4lXIc6|G`blHlguGCdZ$t6c$56H#>NFA49S3G! zF5E+ZfhgIG8q?z2$Wg%HW-!A>i}jBa`WB@R0QqMT$I$ zxCV5oxMQ z_)*t<5#@1Uct0X+w%Rvg(V%i-18)l$Ibs~v*Agnsq>!bi4v`<`eO#!CSQ7o3O@xtW z9*QHU0aZ>N&yB2wS8Z=+X1?E7^sG5ppp01qiRK zI-F`wTO%zrj=H~R`pwl5ofGsc$X`)XXmjAa#+}t2x7b_X;x`R3^*j#Vwer{2U1Uu{8+7EVx zi_+x%HuzXg{dmNA5CEain+GXBacr@_^+keqCxuxJ`4-!zjmI;F2s1W@7%C3?br^@5 z`tuNJH7Szh;a_FT3qnOnsokaXDFzMa{v~|V=GAvEPWJb3S-Y;a|yI%skV=1dk#*;=(lN zH)e;w(;C;Rew2juH=MFpxZ7P;RsFmsZK4*n@mL1t<=Px z>UOr=vqx1E3QnTHkyjo*I~{5vWFC%dU`iLofw_qxL5ux87}^Yz<0gjS( zCp6{*!FE?b_EuwZCxX#W!<%kosc(eCw6+P@JWWx3)zaaW(c-YtN6Ek-Iyl=h(hMQ@ zEzItaJ=@2xqo|KoS4a#F%a)Cc^?NEQf zQVFerWF+087w@pAjOd}3HTm#Y%M5dbg~A_EJbBTH!Ye95Hg^!*j1#cBQI+^?vxSk9 zbVP(Rf6cJ#7A{$S(i-06o`k9z4lqGnP(Uuk%P|Gz(O6kOR8UnbBI_ZBPoN zF)T!c8Fz19iA}qwi%Ir>{|KKYpsmQIhmEDuh9hW}dQ#C_yH*pm&TMEa)#DbT#1I1; zB#%QVfUccbzLdt;vm@pp$I!rYs0l5Q3l(FrDlP6Zjo&?j>8^$RnD8A$fE_#@L39LO zB+W3KMvyW-A*Igm30l2}cYJHKFeTc~_I`dpJ5CBy2`GIjKyypf!t$F#WowHp^70XbyF4;nTeS!& z{gPoF?IbFs_O^!-@M6jvsj?F<*|edZ95mIoW(1{1GrC z-z^9=MN;z5cKP`_VSX!eIz0zA``N(3$XWMOtnt&mja1@$HA7WRr)l_!5LA{5~p%{eJOXa#(335i=F2Ip|wP#Xupt zG2d5f)U^qv&Tp$v*WiV&7kh`0Q7&lqrnSWe^Tr{3e)!xZfk~@O3%{{?2-X5xfL{u- zFB3evivvB;x`m$tC-!=12%u^w|14B0ew}xHv{))P?&skt2~4p&NpnW+BlBBF$14pK zUB0J`k57wDlfSVKR|Tk2pgm2=d+G?%7m*djD;#q*_%Xk3Ls;E#myb%_RhbZ7jCuKD z0*$KSSy;xZZQ3S$aqld~$lK4a>FVM5M6s|`wCsUTM$qlFyrtfEMME3Ay+{BX-8Ex1 zn@)*G5vl}&)nof^ZtM<2M4>A0-C^gzkO z%L7+y4JOqe%&Kqyj6xLjSUMx@HFah|4zfYYRIWec`!pC zAwtZ92bTY%#ra$S<8R1^{Jf}AT@-m?B~ASXW=w%C%0Bi6xLZhZU_TLSXn~RnRsCG& z8H5(&F9-Nh+Kz(=sTJ{v`$x$cl-0JH;mxNTp$NV<-Bv;|egW4?BqhOTZ1U%)I*|LR z#S8!1U;a}Jj-bwkRgDLX%|{X8$bFws&*C(j^vJL=a2c8dl#s$g6bpn3-q(ovHmzXo z1A&_X2={R6IUU^bKt%5ADK$)K1tGml27H23CK;#7;Cw+$a^?Y*=G!c*Z&+MghNtO+ zfZNP^kD*}rPL6KG+??{N@ZvGyEq!CBtt8vdl^N({YDd}Ql%cq*i>b-xOL?(5T6R_w zGZ#|FaDdLbIXdGQfDd92a`|x3 zcJF-%3%d`e8gcu)I`rxL*ZXvHDJe!SglQq5OKtcJXmUdf!Ui;1-mYg@lx#m5Mxy}*KR=C~zo{l>b-L+`;-Xiu_n0IRGL7K){8kTn z7?CEt$8MEs1=o%)b0;;LDEs+)E8ps`^de!Bl0v4US{$D`fFSA$0SoxwZ-&yt$H!sc z4)i;Ks%qP97De=(u(roC!cz=939jHrV?F+Updt7A3s1^xiTeJN^P8_<%RTof-}0-Y z7QD!o-xifxBSU&-G!EE&7U`9%E(0fKj;mx|RkyD^HtNL%adspf(?o=>(i6XbTWJpe zJE95@vSk+QRs>U<;q4C%GTdj`4?%rmlGJYm4Je%TCl2P4k8+=tIYokArR~=IPuf-W zk%3c}sjucA)ld|*JE3uMd>tQpf|$Yl1hlllV+}1f2jqYP=}&)0 zo>1c=--r)Mh7KFo!!Vdxo9Z+2YoLZ63WT9h_~6&A=%=v*+I%t6uzg|`5H2QV%J4wb zc?+Ef?U@8yCEpl4r8qmbaDO5jK${%V#RsEL^n1|38cr7$G4woxb#`s229WWqs3u2W zGTawhD(Zb*ysaXTa*l`hRNTQ$-!$RC_l_f)-r@>DWGc2V$6T3gPoVaTYZ>k9p7eHv zZw{p4TNFRU%ruC$CvyG>2vD1dj9P>%@lvN=^&pcrxvCjt{P?3AyX4Nzx%!;KC)D|F zL`_5B4|c1r^n=wK6IjIXpo{^g%n+#OLk9N|=pSliqXfYe&1f{JQY!0?ZFfC1)cXi; z)M+_|PiSH3uvAvtjzgqAF~^Dz7y73$=xlanSmIXY6^+$S)e2Nt>+)1TJOg?z@xhk9)Bb#``m8 z&8HjF?4}>!p+r^S6ot+B%||nXitMWTBetxJA&RRMh5V0ot}oD;wU_#d++3~)`Wh6V zpml)*Wf5EF5-c0e81oE8jH?s%W$XyKUUXy-RouNR3?hvCvgT~a}@YNm;w!XD@` z7YpkOR!a9*)J>OZ_giYF_kUD8mfJn(eb2f#-LJN8u+W=gfql7VhcntQYvXM{1``=K z?`4J({RMCb%IrD=FP^Wxn-E5uiAJ=FO6AST$9O#SomU^zhpNe-OMQ{5eg|yC6FpRt zfA99wMs9RXZt8>yBA(K5;iVBIV^dEksq3#C1P4{w^w04129eG=1hTa@6^s&C)fOhByDhFvnI^ zQ3<{*t3K|hC>igJ`+NkhGFhT_K1W;CSe%KwcXS9)%72oe8TUDs%Dmo&*oXFYIOf>Q zj#@v_#|gRP^VeD%Tv)+iwgzdgi(dU2Z;ItRgp#w-cLO9$1>aAc*R==4ex3aWpmp~4hU+?X=$L7;~cm^;7JXC3U z1U!mj|KXzAE5NVW-$b)SxFq3B+pGm=(z)-mIn+JVdoNxI$gA*ATv&ETV;oMO zMcsJ_S{W{qgAy)G_tzNtix-3ZhR2)Mn?)oge-;>Wr4u5v>l!8yf3_d`k$Guy1uNl%YQxY>!Df$%@*Cg_GFr0N@72crB8gY%8vSu+HR*m*U9W3x{i3rFBomb0nL>V(Nv@Y=p#Z+(XV;ryaC8 zbB?PGF`g+>rX&Dfe*tdIbzAs#VE@X4&DPs^IutHl_iS_;yq>rE2=8@6{-M=&2?@tx zKAyzBC-@@IlGx4nTN;HA>iST9K$Xd^GYYKVr4QEZhK1M-@5jZ6d7qt4*C(xDrGoe$ z=N}~{QPW=CJaB$9wsWEEeAl(j{vZXsuew!Zdjc(ZdC;{6o@kHR-cD}ZN-y4s3U*Ra z-QOHnQeK(#XNS1eM_&??DaaI}IT<=Uy&0^?Xm!qEvVKf?$Z^Pdur2*bPxofny&HtR5eacQXv{Z6r4)*zRY^=UpYzc_6W_|cPE(}%L;YGMMV zByz>%djt9M+D#uH;+lKkBdrZZ!9Hh}bxqUU_+%V3-NqlRANsK3JRhqszI|;$E1?q* z(5Ump=mB~A!-&1_8YedQt=@}ESsRRcA1&&~8j9TFW{tt$EmNe~_9^eqb z-S9Y;fUvOwfS+_hC){I-H8Z2VUEY}()aty3k0KVT%sm2rAAIu{y}>|VmmfX?Iw{fR zgV+7O(o#hlS)T!GCcgLl1CDy62~mm4N22#0$gk|r;u#2Q`$MgyWTIH{@aFDR-)R!q z7dofw9wssQ4rS?ioXo}jlt5{{rHfU{%F1H$c;~k$=YZX6dhM@6_LB0!lU4d}%@8lc zB}?`1KjME)BfeTqGP67=%;L1H{2lAADV;b#k> zxyn0hF1H0GnJ{bc(7zeSzu?aV_1{N~a)IaZE4ly=rveV_EJ@08niVz2+K+;fx}P)<_O-BJ{nDADWwdkDth+!l4j|`mRN6jTLN&jx-gF zgNcArZZL731!ESjlzuuXi$q44ySikH&{<@z;PlA-!>a<6p6R4&gKrNs7{9wb~buS?8Ml{ zL`B-JV+SG{oZ6gU>KbPEO5U&I(!J(Ghen*ENFWJ2|NU@3yqVdeUm?gJ^9pg#reA#E zD14jW#7z61mQ}v%YnV6u#_Ds&gi0b@sFd9%jf>Z_`WRFYj8rV^N{!DYduH& zfyit-Lqx0LSpDp6dv1ip7jrzr*lY z-ElP0HY359uicNfgy)a^8AgEh@_R@)SP+b`0LQ6C0#1~eckcc`1}M|^&YIvK zkl)(6!9*uH3K-bz4JKge=I!(llD__(NY6W#1#^%o6}Efq`;>kg$f8~C&B!$}{Lt7~ zu)%7lr+J%ILUb5f@EWD(K)809pkSOR@-{$pU9UOtPzGuH+o@EkePmt&|o+oZS&2(9NYOm zi9@ORUw?119FI*7?Z)JJ8`n>p5Sd1)&y%>nMtX7q+)yfB%(5sC@KCMp?|vzJka85l z%&#^R8n$mC&&+A!)jtIy#BN{!ne~+cBaY#|TD%Z+>t*wP7@6-A{K5|NTnl|gOm11( zo54IWbihMF;soh4i7-m5&kPHDqcmiS_X>UFfGpd;DZP2H+KeB`DuiQTXFP3gz0?dV z()QwDy;5JNl(Unfm=%&?*M)}gWh}I84|e;?>nhM`ig3urR~ac_USdb)B{_>VOD4r^ z@+~znF4eR%Xn_O^tH^cgXNjBFmWm2)CchnB=haaL+e!T=<;2IpP#XwnZgOVlVGvw# zJ5F1&d8upH*LgPmrr(O3-9_+Wj+U?LL1!1{uuj@E=SNV%2w=hN?~Krr3yOd`ey4(J z9++Ztd}|pkTjmc2@_(W@?C8%M|NdJe)saJ|m9(~EgS53Cd&R>hK2Ph3^RqMR>%|$YeZXay2r3Dt z2v0+OE=#!M=iz9?EDt0d?;@!uy=>nj$05`)-IuNbuj+x+G-2)9_*a}KPKWRSq*w1t z=PifxM2F^!9|sO+`J8KK&5@plK4#C(dJhc{d!qqC?XM2k^OXW1m=mxt_m&F=_iD%s zzpLHO-bcq*+{k4wL019bI`uI3t+NpFQo-`_Z+918UbE%KU$tTab?zfpre)&JHg_t; zmMzUg63zyOoIaEjy)dH%$n{C!weqs(X;bsV=}V+09}bLZxwN{;`u}zT0{jZ)hf)NO zD5;s4bUJyfK?@i_{hk6EWBX+Xlj_eub>8_nnf-oD)!(}Da#-B@vI(?HXXkP!#)H=# zQf)bkrHp+@^M)Y=JXv8jC+~iK4}q1sSkRRael*^5Ddq3L12<)d66g}pFm&A6yd~#? zpAZ5x?L5Tw&vvb1?dKq?Io$TU0Y`w=mUw*+x3dMe?cHy@g?a}B1D`D)Qh_=3`iK4B zn=*ZT&vcL59SzFDz8IbMRw{zWXja8*!Rf5Id4gjMeK1+mCf;dLPiWPP@32(jepR$o z?%9U|)cQ??7Wql@g^qkGTREi3@39`K+3MF-^I9*weVe|NPj}~2RN8ItysgAjy_!*l zPM6=PxNK(a{nPjp>lBq>F|j`We~Af`gU<}8oL7l?5)}?3RazSW(~(zR-mcqJRn9c7 z4MKQ@P)Vhg;}6Fn89#nwu~eTqHB}vgLeB&|mJ0i?miS*xKvR8{oc%+P zDT2f3dNyf#aD&9n8%yD0TxRmG*Ea#meYw<8?~?d1@u=7+_!jJYA9C{e`D}cE#0u#>SYm2z*1!Z9J)Zq^b|7 z>6NCy5Gg6sci8MTsr+^@ouG%(pKmU3Qa*6n^wP=-#IbFMe+X4NG!$ECbU42^BP&n+ zpt2ZcuyJ83>z@P^fdG6C7EN|w^a-n0J36zPDVUGE`mnLH*7El&S0dUTZ>-hfGZ~?4 z^ZRt7>F9SE`DxaIz+%G`6jEB{XJArD$AVrF^)yRh9^FUQwEE42J}0nx1j0%_-R?pm z>X3PTnyTF}iVyOND?cB^q0T2qO5^e40|+DHVoPd52eQ zepft)0=DR+Q%!;78gMbj`!QEU8NaTtaz$p7eBGD%R|O>{gUP)(vO(1m01sw&R0atx zI`IornydUdMvsxqwfswVaRnG$k0ZT^Ygc~!6I)` zERBx0lWvW+)3R#K9CPInGdi3VHykaSH+uKH3;w+#iVc8lSIjOC2WQiUPv{h2g9L|; zZBe;Z!Ok#(%^6JGV6i&FWi~hJs85?`Yq}N6t*%7N#ZwhGA|4ac*5sUMG9y;1;P39l z)Sf3oE+YhrVhS2atCW(G`rjK(-pC};Qtwj~Cf;7uO>9QGtz>ZJo)I{0W*h{9_sU-Y9+ZY z;|{l1BAWT1r;(d0vzZmz6ktohekAmV2BCOrJ0^ZtrGK|;^1t*JPgDQ^O6~454%U^w z;ulJMghznkSEKN0eY1L(LV-`p27URtr*sE*y9rTT*8bSUU4kP1%34%yyF5=$gOzsuV)A` z0v$n!dEJ-hGmhZbyMQ#?J4`Gl<~5bhqwYog1CNi|*-> zxTJa})wJm_;0riy*K_LvFXw%>Wkz4qkyGSO<|lX$Ef$Eb*OisG66vM38{wzzr^%Yu zyOA!8%Y`n56L$4};lczb8ykO<$Cdxl6qf> zDq+wGs7MW-PtuP^!6|J%ZFPgUl;WWeM;ETvBnr`Jz)n(kD=SzxQW`7H7 zp^~NSeKbncynPL+ez^r^^=W;GbrJc!Ti4xNjuMDGc|g$f0*|%_9(^;jntgC>vtQor z&|r(mi3oafBF2R{Kz-0o4o?=v5$~Bxd}1fDA!tPKvH0vaman=ub=twKIM}Y+8P$rV z*2b!L&LS$Q4!~{L2cX7v0;v{woB>B2X}K~K62p3*R1F0+7Hq&a9ieoyT52K`x(@jv zswd{_vpA}XaaX(UIMfY%h0s&n^1A4D06$?G|NhTqJD5p%TFqMHL0!5%E+y*gkR1#w zig2evP9L2y+{Wnmj<$6$1a{r@IDx7t(4HYIS(H2=kz7hsO6e@*^XSO=P$G%J}_RVBO?gJyRO0f^^Y z6|_Yfp! zL^tzNlJi_4gOjApP1Q(HFt@#k1a5D!RDd5a!GEnR1E+Zn3k^*_av`nU@Gm#tut0WS zJ-D=)&Tt&3u1E3`VfORzsw=+qoW&j|?Wosz@(pxd5e#XHhCpCbD)OLlvOQ57Mnt+} zPzb2BlRe;6M>wz$fenM}?#(k-;>n^O*8)aF)L97zhhGLHr&6NbfcqUe(g2%vwWC4) zWgMpFDzEmQVCi4F|Kxr*TSVw#B)3mNk}JJB0b|eHt-tw4TTp!m9k3d9#8@IwbLkax z++=&2I`#^wKz6Dgm7ns$p6A8R{TXYDnU+?xJdgOI?{?uC$WgvFz`KOO=lv=iRI7EO zH-FwvNxdGHvu|iL|6|aPNHe*dSnIe8Rm$73fagqOeSKUbucC1)C##~P3GMfh@sYNO zfsti%x0o-TubuQ}#SvbXz%a6)NFw1!f_U!FqflL}X6MqF!JS(oV3jC>#nf>hn>xSK zVQV8Y*Yc}a)79QrujVLtg|t&Q?-pmc#BOp1g`BHlCv2oA)*wg#|4fjoF)a0SGu#?f z-~5lh$57wEnvoQVkL=MORd>Imi|0`SI}#t0`ao*s3nsVKtff7*UN^bL49Hvxp~ZWs zsqoF82P~FdcE&9Dw_v#LnAQ>DA#~XhC*+19UzD!b1#te9IyiIz_>3gl1pr!|?1kmX zk?%nm6CIDSk9O}0sy+t?1{K%VnAQ4Z-TF23QP8Lg7b#_zsD73>TeMH-0tH+vR}o{8 z-dsZnTRgcNvz^enABVeRJqqeX$bj&i6B zrJ$lJj*guKjrsGHUFt=D0t25j!$Gk;=QmL&&fYxb;XBUQCEG*9drY>;BO1tADA2-D zhX6Q+*{Xlu<7As0dyvNmLK6{-7+Tz79Ij^u2#R#sm{@5Ef0VZPS*FO+7>e}l&&aF^; z9rm&*AdK}!`pDA4^!D*?Q`UMJ!fIB51ApHA0ceaMkujhm(v*y*MV~C+X*^EAcFDGl z_tu!z$QDIiVoIiruOFl!kvETJtp z%{SN<51k;j;F5aUli3&>&#z;^09^(A`#NAOG%<=P^zhvE(_=j7*h(k)J(+^Nx z9vc$g_2w8*M$efJx6ktvn=w@XG)_#2pXK*nM@Q%EKtvF^L?U5=y@B7hs~tICMSNhe zKV0h(GlQPfG7YL1?Pn8?r1LON(P)T|df@c3FnuvT`l~{W{+7=!c=qstcpSV36r>)k zcm}uUFI~!UfhtTD8rs*h-;pG6S|`$uLi4$S<>7Q%KTPsnv!1u%EAbDoCYUeITV|;| zW*phR$MA;>4G4e_TzrY`VWFSzIeEkO7PU1_Sy<`US5cO~ z`DlltHXum8EvXv~+|j?yY7p_7rDLTQBQ-%_n+9R2K&ppEO^##akAL%u zvVi3hq|{{Cl*otw+}r{xjopUHTs~vz+HQV5C71g!w7$THHA$5uVl{*dcj!BeCE^FU zx0kbt{^fny_Qoed79}Jk>2%hz&2Q`Dus|$KnKb-`i{zLUO^2eh*ZQRbX6UZjEl|mW zSq=puSl=v(0iY+SU6ga7C#se7)`pNK*XAKRaf>X9di_1?~D;m&@z1Ud$OuL|nYAk(venf{RD z!SSb^#2KGGG5_U!J!zD|HG4?aia)^k2Ru2Mi!tpnC&eVRbkU)Cv$FgND;8}=5QgEn zPmcD%R}I#tg2SvRjJ)l7olFA_E(N4F<1FtCG_2?P+mVEaILniZ|7yX!GuF`zM7Q_l zb0R;D>phVGV>D?9B84n+O6?|T8akzh$RSnJvhvbNXEfwK`hU)%veW*yrhd=NI_%xgRBSCr&G@VfwF0%+qye>sVsC%G9~H{Q zsKBr{`T$D6r#VW=`1Abez8|#Owo}%J4&MkLcm?q?ZmMBxP$>71y_e`aK6^s?=k*DY zpbd7TzB7+_Qd)_FVVSxF&BWx`*Fx z26t=QysrXpiWMvy=j)SZ%t`hG(-z^YuAc(S5-Yd)P)JqjQah~6 zg;MWvonqjYtC_dGGzgCKGk{mbc1l@cH5sh8mun$hEN~I`gYlyh3BE8#wpjNsC4z)0lf?P zsqw+V0^vO_@C$0pHq)B?-=|)F?a~qxLP{FsQS;A6=qh_iXx_#&zb&MpB!gZEGa!Wq z!Tf$xI0OA>^@ggB<&w@IJ||PYy&oLUXRvfE=iEuTWT-}BBFb2kV7r4{|9OAa;O9pS z;cpT8E}wEDY;=KDQYu{Q;AsSnN&}z8!k|qMsb#|l&~Gs|TyY5#939<2*ypE@l0QRV znI2osFSdiBEa0XmNI^tl!i`>p6WPSo!4vkw6Ly~ttswrjt>0>t7H$ z&@H%k2sbZhL!V_gOh1Bp00ClY$m;7GsY!X(ZXR+k5McfT2)1G+L=_Sz&cbJ~xz6nB z#be6YZ1C0K<(|%SM9h1fw@|SRV$uBg+)JRSNxA}R9z0oa(Wo$L;*q4|E*`Kzn?Doc zq#kH(NijM2XC`9vy>4_>N><=DdmpFpm@)&Lk3Uz|*c?W}bQ>%30NV^KD3r$ytG0!K($}czFQ4fPL4rjz(-r~N#|L)iqv~_~Q;y08mkkAD0_n+Pk5b+RsTibRi}5w0 zxlF1@0A9e(vGEkX2yEEDCgcbu$&l(r?YMJ(IoVPh8#XUG^#Lu#6mWW0fwtAVpE@Rt zAzwGyXSpd%F87pMy}mmvlHZ=Agx^)N#uNM!Z^X(lbW(>?bgJ*7JG>qgx=c_YthFU+ z^gi|`O%-6->T@oXWS6(i7wu*3v+wzahR4ziThTq=VdI$+_6D2+=wWaI7SLT>7&JKL z_3p>^ z9c@3T%i`Qy@z7t-bFpvjX-(?r26yioOWkD87#FCAC{suG3x#nINs78pz4f+N);1ey z%%5&+*0XIEvX1$LY90E&7w?Lj^C!~?D4Z?m=5ZXS8k^Wz!Hr=dh)Y@pz`U8`5eh9y zB&ez0aMm;Mfp?xlD=2o=N~)C``%+i6N~Oo>uVW_0SYv$TCMED22D7n$fj8OYiA4){ z%xelBWs3tbC#taB0E!`j>b59AdR;<};Mgix>4XEbri<=B+!*ktjU4Sdpng6BY1;Er zvsAvl%LW=2ArK!9iZ&T~DX`d|k*t08^gU05ZI70WH++NVx(`qAQEnBjIV-oDCy)+I7IKQ z?mOP!`oOlWGCo*gt0-+uXaS66{fJJ+ndfx!_gW#u;h@NbTRX-C*4=jB&+hWAg^SzU z#cb&CRTiaD@N!a;U5|K(3}@Ah{(;-jkKU`WAagQi?=M60DHfGUnBP_FPZH!)oCTnW zjte$vO9tnBRb&r$?YqzXWDb2_$S)c22kudCg_xYdB*)mS>P^|3HneoNZwEYS_4Gl^ zVK?*EmX?YFEV4DJ0w$Nax5p8{f2_ZXFR{LEfJ{9!3koY;ZSw3(+M8{S8S zGl)t;P0j@QR_u>SZMJJ&n{f)c4>bb8XWJJeCzgrRI-(|~iPL@;R^D!X3Nj0S(6ZpT zGTANpdiBAPRu<91mOzhIm_f%j@FMX5TTPY})oG+L!i{Rc-<&VO&=jGnv5m&s>3aBu1=b1|=Y(4-+FU{~~G*1AG52{p=a z&N&D%W_=vg-y0Jg1Yks~bn}O4RVeT+*ie)*Y@WD<44RjJP8(k2bC!G_4q6hs^BH(f z2i8ddngCbM9t_-7dp~^AZ+k8|2%8!yC$Jv5bsGW{~ECZjtqW>3K7)R{$+lfuoF+tgrZ)(~k%m!^j z-la`)@c@YyG3$f=k#klH!4d?oTIT{74FB%07g1-d3t8#kZi3x`({-^_cEL+F?u|+P zG=EdxE!h<)t(Loj$(Gf7JpXTjdyT zjY0T) z{Ko9ze*aoAbg~fl8yom>InUM0W-`WpC7f>PbQy-c>@p(m8@F{23;i10bU~943J;Z)2W`$y78O;YSr=D_jZB>NokzWRjw7b+sfz%Vhc08KoW^;eRQZCuyIm zLzObIJ)h4lyUFs(Q^kL+pKm-&cP+>M%RcrIIwioHI=9R|$vw|Q@2HEzG#AAvN^1ku z1#3v4(;@qMeKa4qbTz_p7p(d=Dl8ymfUf?Hgp`0M8`hQJ>(&J_W_+}T^Ysn^#|7yl z!cfsCn{)27uH|z7ABYPa8h-N5Ux_ock0e94xa&|8qw6NynPVlS?NG<3e?A<_JEIp9 z-coTYy6h>tu4Ph=z0K$J#F4=az$FiPW5;=e!}m{@h;II>OVgMmmwOZ>gLO)fQ+0C{S;Cl zeFO!F)&Cq_)gXq{s=K^_q}q6d=Wtm!6gD&_H?ItdrE01?6)Eabe}zLGCW}dI^v!fkBLc zbRZJk6`hjO8K|J^W~w(||BeeD#sV2m*>9I^&SvGeuOl^_Vk!sHmvI3if-IjmA?g~A zJHP$yyBEJZontE7Ys{jZGWs^-iHIwj%;^RGZx=u=Hh6d(0x#LjGrY}5egd?a#Bhel-q|8hoa#0nt$WiWMJ(OszRH+Em`Kl}4Jz4iDT zaBVcdy35>;o(c;!I9~+wRsRxnahssqkx1~yjnWg|SU~c78#&4)JL@N4_r1#l#rLX& z-hS?z+S$(vaBtz6NlRT>vqW(R`;JSA*N#!CFtz6f3lnA{ix4rB0B<#Xxeyb2@H^m& zV)@$^OY3v~qY*r`@0*QZ`1;iInQsQx1Y1Ie+fUTkOpBK;#6>Tf^I9)6cjhZ+XotDO z1F-^VLKxh&(#?UvVDHg&_Zadgm9@w8*92r?@wNBH&znNiZeh8|D2=CEHoR%YFs6v& z-C)s9PGFmD2a<12ia>Tm3_Pq%mOdX?WWFo+$S(G@C>w)QqBN0FT)9zs(IEpFj!BO= zow~-n&f|Je9y!azwI>7`udD(``Xioq)zw|-;7X;cs}7xNCmpO$_UN~+gM@o4;_r&v zWQB-E&ARzIvE$%HQ#@i!T2vbTd;p8!Pr1y)`A z2P!N`t{5lqR!TN}$IuIhclAmiaPYzZ$JIAQSN;Uu#Z2d**+?Z>_uTLtf59R`;)~t9I?$U6rXMahO^MiJ_=?s$t!LcWhI&)`lIR z5_rr5YgUAAzMBiMUSF~-*&V9YmMnEIfe=(U=CH9ld1jMX9jdcm9Q;wV1Ne4WF8`YG z$lQtKBp!6DY=N)d*!M!5?cwm4#A9OT8@$YTDx)#3k|k_KuSeAh`p9l{-CEgyp|XRE zRu2~Ueiimp2zFVp{(a^Q#{*b*C#dXneH;qvRlr;yjOmo8auSg$k_Hv1hV5qMVizm2 z8)^&o0MyCW1Fq0I{V%&r7B~ES(Tj_TzBlf*UzknanfE+a8>d!gBAsae;^t~idbuu=XM>G{JIvmh^+~#4;OtQ03P4A+1JMTUdCk z)jw30Vc)|g*A|p{IcO@v!Zbld-pWKi%6KC1v%`n{I6KwMU;5Aa!oayNa{X%6e>xj|C)e@w&qc<%nj?^I8>;HzQuqtrBaHNrQo&jKMiyy>gc6RRN_J%aIaqR-IX z*jfD;6~7+_J*Fe(W+hr+;ji-lRw;_9TTqb(OmCfJ>P;hkLre=*7&kV`aj<(x+kKa& zi+^B&{WvZ(jnWM(`x z^z}^59VGQzX9@l#R9|dOj#u&p1CJI(pM9_yCO$n1wae+Fda0UGvtZ$@i+=M9qgo+C z(|OX^*nbOJbqT_$ft9KeJbbr&_FeKmtXO(#pn~(UX%*xFy{DDUhf9=3r=K=H!9;nR zJ&%92wGcW-11r_XP?aN6Yq?o{Mo&<%h#>ywu#hrnT&uGf7ccuJAE0Y1AIl0Q8Ov|L zQCLNsaj_WdN|+ySp>ubh)`r$3Ych;9#Ma+Qwo(HzgQ}6?tb6mggp(T%f%$=n0PccR z)w)?y;Ng5C@E{@bGiiwfC-ZO!DqhTTrybaKO<%eXKXhnWw3Ujk^~v&>Gkoo z7|zl=wnd*t)%SG>DSf0dD%v=ymE=F;L>#O)!jCJzwJn9f+mECD7Sur=H#=&?o`{6^ ze?#r>sk-#6M4)4hPRLR-rVW{XJ4tDkv6QTARgI?>b2@&Yo|j!gkc)170vR`F7D-tG;LdG1C%lYbAO^?YmP^0OKr!Yln{?wvg7QY>zQD=DpR4;jisU9k`5zYZ zY4=N{NQdqI3AGSNL4zLDh@fgGKa2Q;lX5Bjc=98W z>%Z{9j&{N&5p%O`2;iqpIcq=TUfb=8@mQV9EOT(_AJtDqzK`hQ?dz#sbvDTQF1b8v zZmrhfVv_hnknCECDomLO6X%i`R#^k{go0|DiUD$Vc zE4t`OAO}h~-v6As zWsHpthN8{On2n@X8Z7m`h>4zWp|SQpc)p^an^o6ee^)!Ye0?sQJ5+6wFgb_t0*?I= z>B9qTE;okF7BN>pM>j+gs0XMEMO?U%1xk}lxmhcpC%TCza=Yd;n1~-8MHc%iP!*6f zx~oUChV&XYo_RLqFFsB2ScrSBp3&8)hs!g9nc8G>sPp8VBicojGMA~5lwzyiY${Wg zw;zo`h(nawKpdp*Q>h1xmy0r-`*F=SjyEXXoOvX=5(!oSuH!m%pgk7epxwR2WX+eY zIJJ>yyloNcpKg2iB0paJ2~U&VM?F6S{C*yIF~k-ockGlw*86Z2H*R{}%(#~_2CYFJ zG(j(1O3b`|{ZTqf!uLJ&@?(_6>!oDzIt6VTKn4>&8+74vuwE#s5XG=;M=)=wDq~$N zyIv`k+SvI@5@clkUQ}8z5rAO$M+<8VdyG;&Iza_krYK(^8=0Ggs11IbZ0aC+Zpqv{s#K48ele6LLX#J9A|kSeDognI-=RreYJQCbRTz8NGag?BRAq%f!-r^MODRlf1A2f0vD zk;iV;XCpi(wuQ#>S;6Yu_;-zH;q^ssV}6i{ChqBh>oW1u7^dAS0uK2Fhxl!q}y?*S)^S z8#ZksJPA~&gy8(Ty<7gZ>4*UIjHi7B=yITgW?75cc?ZNAsx#~kQ``sS9jR|cO1 zIH%7#%Zel9)zNEz>!NSD7joOZiDxIB)qs-b*oEiFlYv}E%GEaJu+GsYcVh^q{$iCJ zUfGC(uob*q4?q&JUC)X<{`Tmr>9JJ zgM9RBal5aG$NLUxRCCPqU19Xvd;RB4rzj?z0vVILaH2QMziS{PQaD3qy;?cbk@`ox zS&w6SFx0lJ*vZz8Z=sJA)on$IN5PE1MKm*1_KR3@y`6*y3?cpOBj3c=lHy4}hpM0J zUDwrjrXsplcHTqfXg@}(lSyHG;G;0&-USmom4t>MjXD_ODvlw)<Z^Q)GjsN zLkfC+igDTL^~4t}BLB9OhKp;6DUVm7Q+ZC4l|=v~!H9IgCs7sf+L7Bg7yb@tb@bi2 z|EKC{}X9q~Irb((x(>k0kc{vXJMAc3_|@7IR(Zh-#6QuMOYJ@x@L@VlCJnJ=O9$ z>E3aXfh9;kzxMr=pin8BXDYD-M!#e;|AsRu5zCAoIToUaOiC$({@tT<$i9@HH^Af8 zYDR8K5TxhKcI@~8<)*+|IRLcowm#t?Ldzll>t%~Oz7Pgw)gMbvi9^7vxLqL1!KO22 zUe6_@!=z^2jU8vKD;L)jD!ZCRHTU)RWfU#b(#;oC(pMTGI3Pq?FHB}0UwwS;^n*y9 zo$ZkzuOIu--FQwP-_KtLnc$hkb(YQ-n;TUl z-3^P1y9=uts+-DrFcKxc7d`a<_taHBZ8meiXuW5=rrID1Hn#_P8&V5vv=DP>e6_j& zr0QMv($yoONw}6l&c)ay4L(o#COha_dbRb|hLJ4ynxoWCzA?F*Ah_Q7T>s|f41_F> zMOqF&+@a*z8B; zsS+_hME#QddabTZ<4u(&GhH8{FMd9Mo-_TRMz(q3*{x@^+6_>Hgpc3ZP)YbFw)<$b zTWrWd3fKN~4dY+3=58z+|6?>SQa-4}7wppUgJW&?D<^9YdDwpIz3`o9=MY2&?tw2N z#;wctZyC&9x%rDSj5_mJZ)oLf#sgik-I^Iam^bKt4+T2 z!sTWS(e_nrKdw?HM4@{66gq(*G{b9DIEcFzOmrdG|!lVReSznIpyN< zI{~}@mQn$E#zrbNgA1wUvdr5}xbSIIvg@k$i<-0gy*vlW3~b9t)ci%zJvYTaIh7Za zB6~0L6;_&2cc{Ez5Xcs@2tc7tORpR$aZ^_;s&nBL@i6@qdoSiid2eD-dEW?=|2TGZ z3T*?qyyU|%1XPr;gppDkifyzWBQ!dudShWVgR1oLrYiH}S}#yz1Dt3gW`T-7MKs+B z0iH=Mw-#I1#Y0#HH~%?800?22D3wthjt|-(d$nF4QHv zo_Gl)FM7sr+V`C$rR3oB98j5?VCnX&5o&C0N_W|_J0kkRl&*VSb*&s6RB_8^e*L$D z6U(7Fb*s^8O*vaaVtsw8E=2|m9jL3-$CalxWK;Hq4sY6(UbEqR1o}*GNx{N$dcj3m zI#t{Xfp>&d8NyYwqU)-17hn9UVok_(r4z0;M2M|!QS-EKR9`winCA~L;Kb@)J;Hy% zl9O%4sX=l6$bx~uHoex2%qz12fL|_&{2b8(^W5%CZ+06bpbq$4oI7779bZg*_F_Nu zb4(ownMmUV;CA&giFTD| zO+exZtyuK#s>Mu0)AAZMVo(4_?f0#}EZ&b4l`vxNqGB7&Y&`F(PT z1D1LZ=d^_Kc&~j=Orp~AP?T93R^Ps2lo>uynVuOBKXqXs$|yfnPd;@JocXI1Ed!nL z{~{C6CCFv4?M5W|A4|WA9uy?G=$*eRu3Jh!tjq1Q6|wewa!NuA^&M?xn>1S*aCSps zu$pP(d}J|ux3;m4kLm4SrNW@R$FMlRRgwI4(#S_j{l$FEmx)%tR%0igRVA1m#&@YR zh}-!z9CR5`lFtE!J-K*xbVgxtifUw}8k>#?n3kUB;c7vEqWpx;VIs6JHf z>Eft6=iRXN40#S`v|CQl-kR(w*eR{#$Ee3uazP?g)%lL%c)6y)L-Y-nB`mE%>~845 zKS-7VCW#vGQk6J-7{or{Kmj$E^Z0Wma-j^wvaNa$uD?I1?r>K2n2xodm@>{@$c3Wk zww3)9?j|KZ<#1J9cB2Ql`M5;pgk8sIC+&n0gZSTB`%H$GQt9dy%3BEI@)( zXEGTnDHeeiaPG+GOPw9@V`O6}LGSV{nBYlpC>ADD(r1C8w5!)pu0n0qxG`m4OLi-N ze&qGQi#|9){l$!4;-j<>M8HY&M6T|FdZ=0MY3n~NNiwhdeaXx6L!3R&wV&sYY?XE2 zDLhKEEdsbMP&V4X2QC_}%FtqI{QSf5=fA)&8!V3wsgUHt#_!%z&|s!DC%Z;sbo^KL zB1;t(<3axlvf4=xnw@|j_-wwxTMi##KlwhYM5+KrEv)H*+U0)$?f*W8sK;(f@NaAB z4tfe9j%JVZNFyi^wNCp|_^;Val*Cr>Xc z&PSqw!K(JtdR40yixwA>R;jL+;7rRArO&bqx*iuW-KqRRQ@t&on@gb!B%D7`i3KKd z^9G+6Vn{9ePOw2WJQ$oYpa6v>x{~hd3p#y*gvAUv?R*|Sg=m|5vX1?a)*SB=hPZ>s z8e+TR`gf+>c`K$eHeYF`_3q{dG_Xee!8_;>iF> zV>t9RX{^Fai?3WB1x~daeVHc(+Cma&CQ3xU5qwj52SK#o!Seb)1@E0T32IMHPMBM` ziib>kEmjBbcj=$reoyOh^DdkMl1ryBe+%Mip4aNOhz@3WaMx~-e7xL|8utCx9{NaM zMAzy{yLi3qeg6<_uj&YS{pn|<6WnW@<#Vs_?~gi)bX31-?e9UlLw;wY#b2UH4KGGm zB#Y2)3&;U0I6DGm9Pn(*u}3Vk2a)l((GVXq6jn9r$-pN|8|E@LI}dj*1o7YJANvaV1PD2Kw?RO?WcLY(+ghDHg z^sS*}L0xxM=)r*3B$o6i=1;?;m&}#dtWP zPSbqL)73`jbUZXhH6rkB4_EpaNeIVnY70Y>)D%v%$+2^a#3qyZhGpd1YFz-I&VfXfQd_j~MojENJ9T zX*2Rb1=Xk)W0CG90uo@0;C{ia7272PL6BXBIEK_2aol}aSkWdYO=z|+yy#tsqw)ri zMH09|-!IJLIDfkzh|`;WU~*@HgomC^EdnQI=OG7r-1^8rW_~6AOQuG^fndzo06xZ~ z3f}-hbxpOazRz1BD;v9RuM4`nZh7!}2fvmB zYwp0!)}fp%xHrE0Rma?>Fhip0b>bc0Q1buzwWK>gH|2L&;kN0;Q28_Ly7QVVi?|Iv z4zAGp=B1Iiz0)360r`Hd#+lf|PH*suEiY{Ungh;MX890p>1gvi+;F4*S{qKHz=_Gp z&$KTouR5yym4UD{HSjjPrR zS%sj1qx+@zNLSu!h4|APQP;Wi20FTdaOfNRjen?6`;+WW&F27T4T*aT)85tDaaV$g(GO7#Wqnq^se&tL-JrxW@TBF&7NQotg;?Md+pYN2It+SOgtTm@1zdvW9sAir zTFY|UU%N8qOMk}E{Gv9*qS=taUG;xZT^2Nd92C?GL<$jr#M-Pt1;MHmK5l#YPUg8d zt7;mixP=Us=cfJAo>IA9GgC2v&nM9G4w?1FUj5HA_1m8(CTJ(43FSOj>hp2g7d_CY z9VrC_-v}3WH>*hwOJ+ScJrOS(iGK-$(NSGqEDyH%JV@x~mK*j7G}#%wB+8fvFoM{o z83arb6YaYgDfZFt$E#Y!gkp~K_TRUgAgFpag+Kt}@Rh+0Sij3Cxp{VU!Z1em1RVfA#_Of`PYvvTidCbJl*UA<=o zoGVa-f(HhSpP29#nq@-4D`kj3&7w{{*Tn32dEj<(Z}z(H(MsdnhuqvDzP%jdrn0;8 z{);QzRUNtIy17=OTR0G^!hhrOlF!uP?C4gtY#vG$TZvlu&2r-Znu*^5T^K%8=k9ZL zJxd`|jbXP*nwSi4^N)56@89(tIcp};0%LqhU_kMYj0gp}%y)cZg2ceb9rm)lE)0bA zjc4*}PAJq>2!x@<$VJJMs!BL|$!Bv#q(jC~7}THI@17tf?0qaMV+>)1%zhj6*^P>* zg64#$&=~pa{Kf!e@KCD8Y%1?G*ve^_| z0Oq+YN6$47MG*=G%*n?G(GZZp3PfhcBvEkm8_u@9%J3T7#_pg2GFC-! zMD;!m`MIt8pk@j9TswFnPHy-aX+w#TXZh{Be{b&!8|-`>uYIr?Kp`g4@5_@CNWZ4K z*d8OMmWv}%*l&tpMfhJW!0=fFvjnq6q;rk3wu;g?MGoNoazXmEnl#{FSRp1q^T32( zy5%&SQ@mwPY3WbegK9*tsPPTExThjJVJ-=WNkDpFpZ?6@4J<@^ySXja4*~+X@mA_a z#~ER+Nt2|`)cFRt^+sS8;bK9?W#8*SC1Q{qrl(ubV(zx9m8Uy$l~`VHuIm0=vFj;^ z7m*qtCr3Q1O+Wuq@|hoH9Y#IAeYk%Ceo<3Bi`m!t;THm+UTh0XQX*}z=a9n*MjVX3 z#p2NOw5yh7e1B z)aQ%sL}o`mvjNDOHCVC!RCGWFlw0M-&s2xXgB4Y>)~!(meSSYc+aB3zk9>L3Q7OXp zU*`ywl8Wk&^kLm~vL5ILz+{teZ>jH6h*)F2FMm88Xh8H78!yz^aAF|SNx0N_w+#8p zjSV$+H<`=b@q6%UcUpZ^3w$^aRjcp=lM}VXKRFBJ%M--K98T9!h(yIZve9mT$YL|E z(hS*MY8KbOfF(6PhTG4YMz@m`qcjCobrNby#CmqtMrNL_w*2k-)p54x(o;I3q676N z;O60Of;Ui&pUqyxa??l3-*f5z3ee9im8y)N>HaW~y5(Hu0{M+|edBeM2 zRkqxl*aUKVrdqoMllPV1p2RQOvuJj6Ytuplo=fx7%d1=oYp0r^7Hjf&m?bQa9CaEp zPD*cBzQ++DSlh~pTG%GcofpUlFu#2AHYwT;ky%kkK$mPtc4)>-t2U=9t&o;%SA`(L zm~Sdtc*WHNIlr0PRskp|yVcPLj-${{ZqVQ<5uKq}y`pE&@_`ESX1w!W9@yiHXOaKz z@N=3%?QZqYZ9EWVzN zPsU{Oj|cThfx{X25KAf$i{e0rdo9;kske7fT|Z6eE~K!i9e~RcN*{oa*d>|nz7{)w ztrn#QXJ3h&-B;%Rxj}0d!deGKXsA#uAD}RW6g~D6lMs!Z^5TR{(GZJE74%dJa|@Tq z0;gfE7m8qLbAWOh6g7L!Nk}RXKuw7Qe60!jJT5F}E4W!bE|A=f8R(F6K$*-x>s5vh z9MSe4HIsV87T&UR!Js>kFwn$dP+!VIv?VwcxIlvZn)!sp*ci%O&FLAmf5GtIP2WuuGRzpjI41L|%gcx{jDpluc@XVPT6IOWuDa#jF2o^eql6X8h zyp+JnjQj=5K5A!Xt|LctkO3xD3?9UV<0r>$2awrqetlJta832J^#Q>=(RENKFw&Wc zZ@gLqv<_IiS2>4%b;_*5ltjI|*V{xU6$pBj8x2O*j;DLqh60lhpozD>g9IR)uY%hg zKLhp;-xD;(mV_Vu;i&^Pk?TShlSSJqW~roA`crF%(>!J~H$sF(o7c}7>_8rDhHJUB z?jFsj&;Fd~$~D>bKn-T0&KY!ygBAMM|IXp%yMxr<8{&(#=1xY(rIN3SRFG85{As`> zGgZ<>UgBWJi2OF~l6qCPWYo1yW#D!QGYS3d{(O6%?G*dVuix<(EGSBp(>IiByV0Qc zmZ{Q>&fx+#2&es?l|^ih0ScqFSFdf;Vkn>v$|!?djWGZAwAM1JmvZ3MZhU{Qwy1Wq zgXlQBJgtA@uaw0<_}KM|x5&~N4I({rYG;a=-9SF6Ewkh!O|}m-piZxq%!+omcFm1- z2|bf`im85O2MNqtR-C*!(MwuUauw>x0W$95envj45#@T|`rYmM9qcKkQvA<-sa?rY zfk&Oms_t}5o;3)m>uZzf@|h){Ov`)IMSv^AlTk*Iz!nx*DEoYgIS|1`p|IZQ1yziW zUn?Rd@R4AP8L?^En`9PtzQ6SH@K2-Zd`Z3gxHr0qj6AU2pr!^$fKt)@`H@8=C^7zr zvO^%ioj=`C$(tl35Y+F-`MhCv>E?iWW2H7-I=}vpgi3Fv$77x2CHg{z;mC+O;*@)m zP+>lY^1lkle<Uw^kcVm1JJxlkha%w2QtuhY{5HA!kMzyTGK-@rn(a{_OukL35*&JauJdlVRHhvRbv+($BK1!E z2^(D&p)X?{_>Tm;IPR%ctAGLp-ajTDYbg8UjNA?B)3M6rU}4b)r~Njld(}%OS2OtH zwxx`zj=&FJlZ8!lEY2_6ZO#Y+xX_aC#Y6^UM0|7>jbA3Mb)F}5!v{S!T~wDzR>eO@ z>Z=%4*AhY^KClj_u^>R4Y;LYPeU9ond&xbAA*T`u88Bdw z>kJS#Ec(jS?(R<^LX*qP4d|~65N>o$MbY>@T|PaqMe^gH*KOl_tn*MRJgjLgjF0j6 z#T?a~IBc>BN+GX|MgeOn%~&?M$)zY5#&a{kJYoO zW2LP$>G+(H`vM${3Otz$)~%u(tG<@ElZ?5E)jU*|z*%GO2g#p10_}6BC`5w4JbibB z&8g{(PKv-yKCe-@SJqkPPc*w#R;ia_-yl_$m1$6wY8X3jYc$l3BG1(9SEVDj@0w{m z4{ded|2nG@oB~)EqeHy-VjCGIK+#K_`zIF^WO=wEaP^UlBHI5pjYFO#Ya##~`3>vZ z+AwE{+Wn17vIfOqm6jG1(m0a4UQT12H>J2#)aTpKPD}?Ut~xH?eivo=B6kTDGy8)s zatC%P=pvh=0Kpv0t&@{%+$#QrEp9m+MVz}#XPVqDTlRq%KMl~9`$4| z#!mKCC^Nht&qNW$T}3XJnk&m)!w|p=@DY7DXUP-w$ZNlYC9%ntxbxX9cGx5=`!s}| zdhPCHPh*y}ohSoa{ahyza5R&qgXJ9i42Gc#o`V2v2FI`9dY!D;?&~~j=&Sy1=D{@M zs&An8&9k*m--u^fk3gYk>k@wsZDnBrh2*`T{q2k$=FAv(J zq8PkTsl2ITlFQIB%V88g1;C&u*@R6H(g9Narh@u*P0Z@4eVA`hq52jwC#|Y_n{Kps zmdDt0<%}K7Ct{sW*FzRdEn401%>PvhP<-KmV(KYrcl%%C|1-h|IvdsDbyBn>HGQ(g;cP>0SbgC z7p3=)hiVC z)MP{o%Dy1<6qNp5lOIePZB`-yHyVCxi6mujEsv>)3^IASj{ADc#;$9be`s|gy5)*M zPeh=oV79W)3Pmb(M##*}e+$CRoH->+T@eS{Eo zp!G^H@twIRo?zZw1765hv5@gYl03p8h4RKRzL9j@c&7~X?B#ChhVyZl3q_l_d_l5C zhct@ea;=gQ@9HO1(;&Mire?AksNQ?_yv2IT&1m|3^L*re=en?G5pp-F)ckta$AmDzUjPm^rMrrxg}@yQ?aLGGUN0_zAL*H0gqf4P?KeISGzLNrh-6 zzi^H``E;$YE1tNXHHAfUO|)AzhL^pUKU;un1Fshv>Rdp70{$%-PrVZdi>gh5h#5#A zJRi*zp72nqz@7A76Xio(2TrAeqkRYK)_pp4^|cd=A>j1(M^hA zY2HPsO=+XQISn$hLU8D)6xI1S$Uj6D%`JGqrNxr#ufH3JDXy|VqBE(4g*FEg`;Z)zzIkdD8(+^JyKE(sS%$i5WmAw~^KH0tcZpuBR zRz*>BYNG*CzF?8RE|2gOd8BNE5sVSP9~&i%>w5cMl14{9mIe@S%^*kAc6BVkOz-eh zsEb{WpNJl~ZkD?NoN7A7qn(R3F@JNI?U9g2$B!E&G8_z{q)XSB=3W(5_gkb3%0grp zu|aCRjOZ+@Kzo#84n}VBx_IGyoPhkS$}3u4(cL3BMKZe=;iXy>%oMjJ`nsR=uLy|} z!sg^TjP+5mJPe{oS#aA9+>%4UC7+_mE8A1bRdM!o;$0vuy-RwSiUH@Pn5(Pq??Y!$ zb0YT|c#NJMszo-B4fzdEKN{W5kDR?f63JA{AVtJRz@^y7_~tu2bBgLZ87LE`FLhVA~MX2b41VpieS4-!0L7^)0YsSpN|A_;On!G{Ejs{ms5+E!4v)Hq{8QI8!`gX=AOTu{RN zY(Qrx(mm#UVMDi@wy%d1zDxBhbwewJ`33?+UuSIBm|Gd{1&=}~Yr8GkX4#u<(6}7_ zK0(1Wv`3B0NpMoC?J9&aV4Yx-C^O2qLPm;5{HJbVbNrAu2(YJF_5OA|Ut1o0=)615 zpjCUv%fW;&c8|=-e|5b2)&GrgQsB0*Lbf74er781A1T3T-Qg97wly`kg>3GgCKH=z zf%KBWJ3(lP12ZRJc^;}FYc8wnJ}_4rVI2sxB1bFxNCg{9q>l@&`LmbYVBW2{wiR9w!-_PZ*>m2TR5%<_!j+m8=dW($@{!n@cw6y!t1}YKFx@ zcv^Sui!vakN@%-AtDZ?VqmZ&}Y*t(o|{^1SitD zf>?a7G1t5nd3^<|T8}{0sW*F$w5pO9kPH1f1m#rn03${SsGu~{DNJT{%OI?TX8NpQ zN6{N%O{^tQy-rU`vZIP!E`@sCg$fq^>$VR)q<5w56n@^d^WGGmQuRJ`W0P+nAWz25 ztz6h!Bn}uj%<0WNgdP>0vW{O7QY}%_4>udlh!V-q!wm#N)6O-j37p;C23%nd~l!;>PgLu8!~ru% z87PEKk{-MYl>fJG0T3Qd)v6j*=>fQR(3y|5mGA>Q=0jrZ`;12HRe1nCs)=xk$Ez#t zDbEJ!r!4@UPoMn)N?5f*NOP9<#FmaSAnC?-^pb&{LCA3W@hnZDCyCD@{r*%Brthn6 z*H%C71~s1i$A%}rgF~Aivf;}O|E%9%e8-vfY;*-l;8MlRs^alUgov04 z%uYvHBt%Y(*Cw>Th6#(pR@Ul<*CY_%^cJHB@IqpJs-|L5HHV=nr=!>b&KFN!_Y<2$ zcOh^Y)wrs5u3A%@QQ0C)7Fd&AEOlG@`83EMWB9ycsnud5QpF!rXnnnqyv~0&9_Hn7 z=&xHZW@<`|>VKdp_)6nJQ#wmeM~7?=qOw<3R^Xw2(tFDspNLY6>!#5nGlk?!&=&Ci z;y8zi*S}qKrye}Xv zv+PH~lVzIgE7%*%_N8<`%)N{40KQy!ci6ZPx+c;U8?#ZDLq1^gq~|6*l&I3xddPh{ zPb&zwMl4gR+f&8P$JR!`{!{B!DH}Kk0mD`{ABn-4w!#}~9 zCuT_vM(l)vEEM8h2+aG$tB)3s{QeKjByVS+`Oy3Z?Nhx<{%?F)0S*!Cic=gKm3rNp zT_5<#OxarZItro_U{qmg)A9{070C}ls3StS`m?)JNM~2?WR?B#UF#@z` zV`pF0AeQ;nodr&Uj%cmv?6-4ivy;CfCc4(#OZG7B;+nba9c?6HfKdt4OCa4E20jKT zy|B-$xKk(r1q7Sj!wWe&1iOq~t}hWpNI-kiKiw0qXY?IB)9TITt!?k^4<{&%j+=c4 ztBU~llc&F}+I7_IrUT-j-$u(=9BJ^7lG;CS57X-eFYmoUO^DqY4cUYs#gh^fLkrac z6bd#Scrwl|7T}^% z%%=klw4}WNJ|O;^C?voRI#BqCZW7hVv;5pIC{SB*-W)%1hkv=(;MSWC5v&08Y@*rp zRl0)JXP#QvBx`Wc|Cz|%K2xU8C{Q3KPjdctS*V3DMk-{Io-QfkA5W+LQ(ix090flU z&cjkmD7nBA&$Rcj*M0F%`D^vc+we!qu@i7U6{E&KWBHb)pd!q|&8Mnw^K#x?;4pfp z)rBPR-j%*M>Ss!w@e+|CqE9MgH(nKH&`_X~HiQ;VsG__5z2vwt@Mp4$5zE2&So4=d z$T5S^!IfrJ;pXxkbJ!{#r4r++=Rm+IlsZT( zn&rp-4o0$$&avwz#f~T7`{`{TkF9Lha?hLZ%FS<>!7WH7tI-%9IuLLTF3N)o;X}$7 zQ6u17(P1-=-~AD#C+pN~#f$F`Df(@NPR0jaSdQseOu}#$2#jbN>F&j!+u<+pq>F$U zA!qDk^}3DH_dU%H=mBxREBx61J~&Olchu~cJ7NwF5FpTzu?`+(Mdsz@yM~3ZVNC?B zADo}w?%@OiE?$*ws2*S3;z5jw6M3;iuD0qFem``SF^QOIb_0`LliA|Ux#AU|!;`^* z+d>T%M&4-X8n8nTl-aS{p}Oum&jk}()57ykOoV1z%xW#(ZyEV;GS`)S?L@Bnr* z;Kytc%hH0r>$zIz-9GG++bMGMI4CI%G{12* zv`*?@qxzdZVyif-xZiEK>Jmy9o(4y(f%4Ycc%U-Bc`kg9XEvgePFcKfl5w5@$GKPX za;~aHnBpjCo^Vpcw;vOOD=EL$h7zH=n~SE+t0Y%9w`;t>-G>aJs66TFAk66uWT$CZ z%;}X!_|G*$&suyg075U@j-ET$xW`sXih3ul6DORDxARp2p;U5*6l&;bR0Zf2PL!gS zMGy)F^2pLH3MtI2CeKE)Kg&$FC(hn1^Xu`*>wXv9HbMvc--ND9Bcu=i!D@*%_lA~I zl{zY9`UGsmD4JZN!)_UHgr7(?D*G8BZnxIBO=!yU1xx5eha0B)}0_f7c%Q@hoEva^NHxZ0bSOX%LcC8l4j4V*^7Ur zi~F)ly~m_63JK3ZT0?|(-FG%c%Q?H^|4+7K{muq*bdu3K+jX4t^QAB4Dl^IW#l$}D z?(zD_#4&q6#yq#P&&bWAsZ^)ZN&!(-db8*FlTu{a+B~;Nn ztwKaJSD^_u{WD60UU^LopO`yUUu#ps$5iwe)_q|n_c6iNSnGa#Q;#+)E_Wo_$NNHC zK#38K1|NnQ2(Nq`?VWmyeavPaO#*~oG`_VMslRsy7RvBo^(u#ddb!gT_{q?1$U|90 z3kDD3z^B6fN>p`TE>q8-K~y`qRXJGG^qrc`V+(Bsw@&@%^GRL~zJMlzgf+tN)tII~ z-F7v{C<#^rTU%}1r$Lsj4Eom|9!&&r1;H@o&N*n)qQc}!L!8CD=ocd-G8R@XXDdr? zKSNFX+=EGdXuOa(D`FLhe#*Vx&R}p|$^-stPhQfc(za~HjTU|%a{v9%4fvC_Bub$-c z&?0Y`vYC$mUN*%Ww_o>Hpj@#?)r+(4NDrhk%w7b%B4bUdQmeUqvk|;B$H^IcU8z-$ zBk7w9uk|%-{PmuARxozsWxm3txf*x;aL1foTUVF9$$yQp+H`JwOKb~dHFh&u&p0h) zw|&5B?0h$nWG(__IYY`k802V3JNKS*Mzm}>>&L`8bL=KsHaW24#hl(4vDv&L%mv-Q zkE~GGi^vODvcsSHn9cZcXLrZolf#SZw4{?ua*vaVsa3_yYs3yGe#4=DrnB5Qw!XJN zz3B2k&oB@Pc=39pxEtnfuhUpB-D7=RyB;-vXIfXqA#d0#VUYh>`ehZ&s(4D9y{;Dp zn6wWKEVMQer)U9BeBwEPm8%VIPew>CIdx$RuVyGq05?Y$r;!U$v=4ic`jJ$$ZmyDb&*|vFLQm#86UM8M#qK%xmkY_ro~#WJgnlAou1KvRR+m z9F-QC(M)tM-MaK`OeBt+DkTczX`knRwE#wnUq+EuL1SEUFi2=#W{&Z6QTji=o5P1Q z&1lJ8TMYD>CJ1oU+|SxYLwQxaQgCZV?dExGj7VL!CxO%z*K=}JH#3BeQgUW;;g@Ir zzLt-s-t@;AEx)6eZQ&N9icX%|j&f=BHXEu5!q6HY>r1JV#@Xr-z^Ex1MnNCQ@24V~ z7h-`l=nFA7>3VUfnvD*R4aa{E#--posEG=JWIdZsZV9YOy;^b!9ha^9;ZVT`P49!6 z817?48i?Vd)VRN?Y4hu%n>g5r^=}nvK%7UTU-!YPs}ISh=evIIw)F68z-NaT(NaKU z12?n9JaPoaa~eumGNsrEn?&i>HrC8iZTZh_++S>|2S4bg{W<_!NJD=r&+sFIn8`Y%Xo7l%T zL$+m4hHZQ{+mgciMoQ{UdVtYP!l(4R&m{H2dRxvy)~7Zb%H0jz>aRm19H{BU@01}r z(O3q!`YfsoRIco*x9sNMl6EP!t6R}j-2~OdU*ko~$+v=JqT6G&)b5vvs*n@ET4Ht}k|I97Mq4>&RZaF@THT+683<5Z66kHXejfulP);9jf!lz@$#fR5TUC&?i zGX=sAce4ho{Lk6-x}J2r*@duBq&%NvF0anR{Che(q~;{5^7F+(+SPfBBv9lJffxtH zP9UjrNLd^6$P>+*`ITz~ZL z9y}nQK5c)#vG9NV3^-7I+>p^%0P!VG0%(ri&99V8iBO9v}Gp3G6gsv&@5bfS5P4B_i_PUrUW~#oXB-ddjUb!Jv?!bo7YR?o!kKbU~Yp= z8Or!}MTRopHJ?q%kCR(cOVB)#juj6dAKVzB2MD2$X~(Yto!a_uva(;aFl2c0sWY+7 zP!>5` zBh6yk0Cf53@f$PRn&_X}{6?cqc>zH2b-Q_E^m)!J6r4ID>g?&+KP_aKpy< z2c(=&|H@J8K{5k$S40UJdv1jBD2jW5q%=aaX??Wr&(DBLhNOVAKy6Cp!al37l3Y~} z@_U3E=|B?vl=iUyL)2Ta#nm)jqqw^h+@0X=5@c}qV1qj$xH}{`4DJxz-Q5NW!Gn8n zcRO=G@AX}0{=oFE-Mf0Ns@1ECC4sXNE2<_FU6A0AXKCm!vLNs`@oam)E*71xdd{~v zy*{eH4u9R485MJ7;pI*3{`*m$eE8J=K)wqZFcW_6)Z2l~2svWHX|Q>bXpG_{{kgS~ zY$UX)P$*PrPWz6c_iAuRDuv3FDRNfp6xYR0Ivgl7kyBg9GjZ;pgqI0ztZVoKRRNLG z*6S6(D#PX)mp0$(m{mJh|8@HjF3jo0Hg=2 zom-mp2PxUM0{JkpM)LF9-XeUan+-XDbjak6npbn01i5qWy1B_+$?3hxr<~2-CVxZQ#J02 zhQRZVuilDJe%~JZ^S2(a53kTU$QGkuqQK$~<-Nxaoq{md^~>5*cS?(&OAG+|-%k)% zQJ}RIM(No_C0dTc%x)#$OwrttDdd{pHDliO z>Ic+i^@gdmp`v07M9u&)PlRobDgJ+KtV%}6EXZVG_a(wcO++@i_C|c_ebGL;?Pyr4 zGfah^3GNO41%OZ)6*dAPMFS5h_A?J%-z30)?ev@9{1j&3tWFM1`lO0VmUf6~)@6I| zJ0mWA+|k1Os)6w1e$mWz^2duWyNQFOf`aWMppa5i@<2OjiApVd<>NW_uYLMwsUreq z94$1mx%n9O1I>!1B!`jI1bt~>iDR0$KJ7n{tQU843yn>6B!o$ThpTcUZuwHCT)8I) zawolfq0l@DkXT_@fd@kRFyC}CXQL6jqc(J<%HH)3=WaO1XClT?S<8jLSVs^A*k(2| z=Cd-3v=H)dOTVbzR;&+80H7XpCU;2i`8nCRMm87)P}Qt%G_2q!x=a+gx>NKw<7H^& zk7rT;)%tOIdFF*Dl zR<5~$U8=@^lB2_xgbV~IrY(Zf%}C|)RFLE0Sv%{k~cc1Ju)o1%f9SpGFSg|S*hBt z=c8o%=@!z@;oSSakwE5|=W_jYeDY+tWM?<9(EWKjc^IHCqE;#ioPe&s`_-KZ@r58; zzQJ97KqB>lQR#+Zd!hUzZ69-Z1?kSVxZ7?Q+CNU{Qdq7(mvm1wHnEORlf8KT%fiGQ zA4h>ySl<(CDn%UNGju)Dq?`GOkrZ@k0M&f&7XPq%&sIj#;+DJ`-*`7{{C~D)eckRg z5le@M^G$SSiVX(;yO&BJ;L8eAWJ*?^Ey2^%xYoPL$ljcBy^fDE^|dn5e7*6?synt$ zUE(ZqxuS@y(fn#S_~X(@CckI1k86P>lT3&%S=zlU+2eayfMdR6C`q3ndNnmvI?>MqoU|z^0id3aX znN&!{!4Ew*m1r|X;C;)%5&ZueyH@928Qsqg{g5HDA=VK6^*)pKDd4E0lY|GF96s}n z8SGe#R!QTkfEv%^YVPWZSAUy9zs#QyvCsTQ&_#y8g5!8 zBonZr1$xmZlCsMulzR~$?fQnLAY`md#HW7g zUV0)V^rzjr0pYlhS}Ry^wXLbGV30-%!98;<>_pWO*zIxvs3{uHUjw)jF`!TPzAlAW ziC-OV4Q`rxWGj1-w>tS#aMLyQw$xPaX#LXG(9nQ!5j3{L!m~8-KY}r; zh_w2UEVb@hzgO@z0umXmuFri?)#EhaH^>tiejR;O;i|7=8y>n+<*tk26^_>1!2t&I+y)5$2Q*9FD1LbL9k6dzf7 znBwvqoDlO{@jw_ay!dKr9Q!~-0T*Wwz>MWXV2|mw2vu(`frRT&$5u+E6Ol7m_X8RKxiH@o}h*KCI_!QmSl zgjnB#Ug9`0c!sa^%j^9&GfvyWn*k}9;v%-I4%d6GuXluE)7=k_|C3-ruyi5@q152M z2DUN^S7cPS!8i5e&f-RlBd0MtzmYt{joFPr7X|1xh{#H2#xaTHU?{J@dr$no$}$l=1YxsmIA-D=FDMriFz?4&V-4ny~ZM zecTLJ#o;GvY`Ix&3%b29m8n}!{XLOZPauwTPbz&$!RBXP)!qE4_JQbDQXfU zQBaRt8(_y{cP-;(17oEfC5ak8^+YzqcO%|=g&T0!czASvjrnAuQ7-tj`ghoGwlRdc zhznJVfa2Z&4`OGKHXhyb$d#}~98IJz8vn5AYhf#FCk%r~5joA>)YNnn8<}^oohL5q z?ruNP&d?TcMcQ-Sj0mY+)K83RXng9w_7SziN+HtVbYwTCMKdqy880)8DS8RdPCJW< z`yRmcUCJp|>+kz`7+6HdeHw#MqpqqU_wXt^yzI_hL>RxpXIE8!+_<-R8lh?6 z6WaLb;=gu14^8m3*HLCf%}ILc`1lPdoueZ$28Q1jBBENJEwYK4pIu&%*Y)IQv*Jc1 z^KIJ`kkiA24Aw?CyRx8hbcaoYmuC>GOo|?{JkWD5_gGXn)>QD&2F^y9+glS78vZR@ zs+SI*_=IC%9v&!DBS@ODznQ+si%0&Dk@~4qxSAST)5@gbZHN!jg}(mlwBc_p-n!l$ zao5T!OR*E4SK4Ox7-7%r{4{f;^$)9*oavlA4I|}A2QzrHJ}r$e*XtA>B7}(0Z~R5e zP;R%@El>{Ya!O3pNHoH}Kenw&D(sU9X@a@WMF5eD{`{}!tIcZcLk8*j@9%X}Vq8RM_ZDE0&-fx*+$>Xf@fKk`t>>^p3T{c-n3H%O9uRQ~z4AEB#&HTB6YhJ|(C9mS^QW^7QE`~TOLC=LF5!}ttw$Uw<-<0in^Shi}=3=@})Kq2<(Rmh8QW-W_J1D@uWUePRUwczqN_I3Xbd56_>CC zAq?hoo4{)kTpQe@v+vrq4y z7FJ54NuOYqddWylV1g-U zMBWe}HYxipQ}*ec?i%KE<(i{6;hzJNj4#d)Q$d^R|CJge>itYUtKd&T2Alblh2T`| zIP{KHWU6?L{OUVW25={3UwR4dU*8(`l%TWT?9rT^+wRk#uus|QjD zjKOgy=tm6>EGn&MHxN|1>a0-II*|9N2@I5@f&@Lbxz^uJDQcL4v0&Klot>c}nmk`! zOt~4OEkAdA1k*3QkHL}{{GiOPn=FP_GsaXLfW8QXK$m&$3!_4*aF7<HIcYLlg%=cL5;pP4H<+Mx|X9t*UTJ|Fd!(?S;cj5JMou z(82S-If6#@i(&o{0}*@c^-Z4Wcu~BFGyuSL@pTRk0Giro`TBxZ>7*yHH&_lSzAA$L z6I$F=1gk09j2VP>L=nKml<^t(b2HmnIi)Z*`ynWTy z=6LfdjXi4=b;em;{I{awAQA@)3-i1LBZS;bHDM(XR|b^N`zrjxbl*YexI%#HnQMr5 zHx`WfcPlOL@V7&$qPp1Elp-Dzxl?B2BDwyV8S4f0$eO5MVRetQX(Q5@UW$W;;m zmB?Au!w2as;UkhQVD#Uj{45Fp2e_udq`&>1C?bpvKenBp#|Sfe!w2&_m}wJ zf4Jl)|N1-Q=6NO)z+;d7adNA^ad9pqKh6Ma{kYnP9X4svrI7HGn}fig^mcof*S%e_ zlT>;eslX+Sg-oICrp>4=8zWl3kS zV6s!9aTAjIU_|cr>`#|_KvSMoz~lL=<48RPTOxVfPpSC$6%?f!PY?~qS_ftEbLMSq zkLUjHpva+v5U|!;(>~EjB$Qbudq9vacv?UJ%I(_>;8k2&pAw(t| zb4wLf+wyogwWV5R4rrwVbZfO5LGH@NwuiTOyq|izmt!xNVS*P_^dO*B)pS69$Dh=+@P=ivIbo<3 zQ>f4scF+dloO*IPS#loYF9sITHcjV$i@HHo;>Xm_so~Mycs^}bR zf=z;cS?ye+@#6lG>#!G`-zqQ?L?K{S_@BdpqyKi&t`!c5rZ+j#mPe5q60KK2DD62 z^EK_i)pzp6KSdqSpFD($>#ynHmH&}v_^-V;m#dGh;q7ox;;07Es`SY?_D$M<(#W{& z%B|Gm3Z*dm0Ql`lZ}xGko}ERV_&Ryvi-~$6@VNsdnOuVvAHOH#!$WVo;D!A5`5dGs zKYZy@0^p+RgCEV(6Z%6B*m>OT+ne)%NPE`aUW|Y9bTj>6cwCVB~@_<#3S1XIiW!aoQaBe!`Ua9wO?Mk=`Kz z^O=$$nwm)K(CBMcwB$h{{>++H)*@NCblu-=oD)R$?k_FF9T`gNa2byOa7iypUB0Z`5;gPetc{(h&K_3r~BQJg-Oe!Qxp7@z|xZvFQunv6gmq6ra87St%JxPh|qXULW-3V z%Mid5;&#QCpY2q|rr1>oB{La0#z^fO0{{M{wLB-?>c{Q-w&5YRW&z0CzxGa7w!(9Y zL>nA(cJ9Q)e0Ak#?{Pp>Sq)e#tkwGVgDc1)WzN;moFX7=1vZwO5Z{7H5ehOO9ihn| zDk-pUV&8H4G%E{c=QH#yZLacib7TEVf5pLj0P@ zY0B+Gi*c>r+@q@vqIG)wsq)MT#{#6kd+p>IiEZADi;RHx0i-}#J6b4eD3y3##0-Dx zekRVI>zc|#@)H-CF)R1jYvjbJU#^25t=q{I?+Cep2m5ht?}T4;wz&Z;cpCwTB7+n>ADe&-MZE+MUv;RidblHt z=7RCbV09s5U4xKkLA+aga@8PXeZ)HWPfS-nvmP{#GQ`b(Kw@4PuJ@ zjDOp#-Ld}gC2V@#nNbpAWq#}%Q}8m}vtevXPn?B`fQJWRR*&#j#!D)t|5ExnAJXv= zDEUK)(<#N&QXmGi>&3il|8CWF9vf_!J5Pi6bEn$b7rn-BH~im8Y+WQL?i_UrZA_Fb zjT(M9-MyJzxe#Aa3|?Mk5+IEH$Ud}$nJxT(NG;@?@ya)uH? zDKL0fs5SJkU0-ct|0aR1oWWXVw^Z&4=lJb{slHwEKqz%^n>o^&J59W=Nn4Z?4foP? z93T8lxc;=@0o(h$BHDIwzTUPMLnd%{YeC?jC7?n!XV&6&-JtGnk1xgW#f1;j zQx^g~eQ7wpoB%{B$f7VX-@~^!j`+E8S?TMi1$SVZLnWZ9h)D1>4e(i=(&_d-Xb>XU z@auUs*%H2K*&`dxncDZchRhopi9GxzbKul3=BZXj5~%NUp*~!!NP}TKd`oabi-o99-1|@;cRR^l-@TPHlBb^C8V2MI- zwH8^V#Zep^(zA0OKxS})<4)(`WXr}A4AT3t&}C_!aO8g(mdbNg6jnY{3t&CQqiJ3G z2`f3l<@5Y(<6T|&P3Bj}q|mnBoQIw$Q5NxMzC&h^emtB63oL2cg!{!RWw#pRkhhbpTQDT z?mx_xK=-ROCl`Gv0Lc#+`Ok%akWpbWI?lb2zR_F$T?YcVer{w*xOjj(G_P8O=>BFp zJ!-3CWb6K+*nvq8AjcBvCpP3`eRfx2y8Qj7x-G9mP!)^JcX3#a#y=MfVk0qcen?M0P=E{jU+7jYe@a6ITM#y+!DOpZuxGhN zd-TyA_m{vL#0qozid@CpX2b>iTl3lQ3!EzeO3}IAl<-;yv-fJ|S!|@SQ%gvA93H7AIPI<2m`FG2LCasZ|M=&vXy!5eKP`Z5<7hPo2G)rdpp@~N zUA+2%l6yDvadZ%v2F38jz_WX)B96T~&DY`T!UrR^QWtY8Wq0Y@Ja2l2;#NoPE8K_c z*`1f|On>gV$z-2=!RMBWb<6ImboXvY&#rAdnaH$;$j`WQFfoU1E14kD#*zOPq&S(W zZ-}i@1r4h9jJ`t!k^flmbxZGr(KrNJ?h9fRqLMzC3*8nYZ=RQNAv&P7)Z7?QC8Olu zev5DJ#*Dt}{kQ|=&L=MI3?JU_&QZJ(^xWJTV&^G%cy!)efBJ2am1rEG4x}(@FdsnY zP!K$E;QnON4gKruJKy~l(A=PmO1As}$TMMQ!Ub7NcslQ#A#8{d&Bh;i*26uV6AE?~ z^DrO1X}vGGhe8-Up>}=vRX&{cLFYuLONvn6l%nKV0PiDk8mppZL>D|aN?XUQ&X95;hEc~^D|teQM*v-P zA(V10>n=`g7>AJH9QJvs$S4)gw;73vn{JRPrQ?cIvk>Sa%*Foj38qW6t*IMChy42l zl=W1(lou08?u(48c@)>h{*)b&_x8xXcJm_VdUOIQe%Jn8);?o5Ls8q#l~K<0D#M{? z^XeQY_}VX#zilCK;k*%BauNrJtN9Q`&E6FR*GuRffIxpuxz(pm9K#!xUQaIR{uDw% zSLr=IMA!XYPYCr-5Iy5~LR$M6S_?Z1u=8KLN@`u}9 z|2FhH6(EYPg+|1U=*A8NmIK6O|4KF^O8uFumy(Y;{qS6liO+$HR~rOrU#cXD&eo$n(qBdSD6~S;afo({Ya#)%ZH>`^Io!Le7M! z_!pPmM8MT_tHVXi$?Yrm%jLzAQ6x#v9V#vEQO%<=Zstq3P1usQRkFvTTn)1$4BCUN zf8fPf2hC-s=Ld=VjK#4R@KN_t=AXTn`V*7eYcYeV4u*vi?UTQkke6t#rgNBN!;M=N z1kHYmro=Vsr~7tp136#WJT4oG5kb!11p(C#QK=-so*< zwF5F{LeX``IDRYhAppL&`%EmobYZsFdL$)bp+Z<^B6?%Rl8wQO;M2r$iF8lt$H1F( z+i_;CL<%f~Az7Y*0wb;GDI^%C7?1&1h*yy3O2^J~+}#bQEUSP3gdX$bjC3N)7Wp5X zqLkbsmKMSkbn=;FI45CXgBPINT2vS%DM|->Y?v0>gB%rW(sM=WgIJ}nkWmi1o*7?HglF!X%sn&RRzw1> zi-fQ09|G|^DFRxG0>R)+lqqb!fg@W_meQ&4MdHTt39dLjW8p<59ciyQx!#z6zmd|@ zh4g1C#Yft1bLbyev$lSB zsQmw=h<;eg@Ip?f#^A$4RT% zM4~TMSwx*sP1t*A_Unx-_T{7(TgyEB3`s&LG&mUbnII)JE4(0q9%{{sB>*=;rgTg088$5MR#eR}eW^3?pS5bb7cSlutSmr|&EaIaj9ILEIy#$c%_a4v?V z*|EGw337BQx9d{NC02mQof|J>$4~h~jgTP^Lzs!0Nax>sG$KhycuI{Ow9upOQ4v}) z(#&q&WEn=}?Olt1e&oT-NGH;j#h@wR`H?pMP*Vd&i=PJRGC-@XvSv)Lw#VIRxC#DH z<3I`~OqjMjrthJI6L@PHbh%bIaRJXz^v65<;$<#AH8Zl!4Xk^f59FN(;t+OQkxVap z;|TOL9su1_MmMr!3dW-Kc%PR~Cv&;klYedDp~^H%SXOepIbf^744E@;+{SSy`fP#< zfZPdq_@txsN$EmgKM{_W-AVuo+`cQp|K16l85f5b7I_xTGI^+DVWU(y?4&_huzB(j z?w+1tG74GA7wlcxNurLQ@P`n3$(OPi3CImrxckX;86`_SX6Zh5(8av~Z;1`vo-i-X zuVmAKq0FC8Opi7fwht@f9T!S@nE(f!r00bk(i{1ya%vx!kL>q2^m18Cz!oLXKXOz& z9IW=1>L4_etwhCN#tgz0&qmRs_@Lad9AUnlPX3Mf&U4=y7Irhf!-thp9@TqNieAu5@ob zd%=a=fiu+<9a#<0Iw-@GB{bYir|glG7@SuPpG7k(8sF>f@1Oyz;q|95EI4g=XniUAtV-k21gOF> zX*_Q@vcu&j8)81x(4K+2Z2=9JcE=qPDoV8!s1%7HbaIlOnm)yh&_4)8dI`>G9Q#78 zxr|8vMf1Q7LU4N!EZ^QFU+089cS79xc272+XmVG%H}IDnZ-3MFytY&9lvyn9Hn7Z$ zjQt6Y6MA*l561R8k_!*Fsti zB{7}G7(&gv5gC0(EtM@GQ4pQ+yiqMK2pmOO?0ZPwz;@Ambr|cY& z!e(u{N<38!f0C!@j2QYj=_+zT4xiCic*x<#GUTV+$#>f*vUzHO1iB8)Pqj$-8#jy-Aro?Xh-6l49ChY98N)T#5zT z9OIg)gUzR`;gZ@6WmjOj!h<|?n`gZJr-@ZBr32>R)F)gv!d8kKZBc=Ptqo%=&<2UQ z`Z{(1hV9kx8SQ>Q9HehF%3AYF6V_s2mpAXG>VOWCvN4jz7#kJs_e^i-x#cF|%hG8c_VIgC;RR_pczt^I0KPX(Ag@+DClDs-Ro?aK?0|9(7vCG?e)AhaDeyXjqAL} zg0Koh2`Zsk<_D7;;jyJbF}s7}6+;EoTwzm1peO9)N-C5wKS!#3gG!LC4dDUb^dHXYD&JozUh+2%??8b3;rB)6ytK7e+&pYSixA)N07 zX03}3v)scc;u%VOQ8m(pcR23 zUl<0-vk)LhWcmFRa}R3JoUo&q&b*Hk$woR&?^vv&g!~0BUE4vWk12*)#+9$RU6!c~ zh>sA02an_;A^{*!8^FfG!io!`fg>F?Fa7IYpq2<#W_;d2l{+5^Sbh0TYPACcO`OC^ zl{G~Lx*@C;iNY4#ZG(VD?!rRB+M@|zV=hee>+w;fQN72 zt{#(%%iuPJ31W?|W0d8}k>w$^B!ijjVjflQzlHxXA1OOW;g^PEIxB&}2_(*%1ezzT zkij~APt1vFlRO|*On7vS_8@!Wy0<>&Dko(!WT`Z=iv4hd)1z;l@u6{-*l>eZB3wpm z{fDd;vo!BP23d53zIZ$8Hq!K8SK5~BE)4OWeY4k7{!X)R!K=|`>1}Ty%&lPG+`eH@ zPH?p~X=@o`3Iehe*SDp~1|7gtX5@!e~*& z)x=AdQVE_ZpRXFMA`D5}Hk7(b3l+WQNK}T~h55HTF4kia$yZkK9jP+pcV9N2;s5)- zYrJ*^1y0AbV{aq?$bm8J^;#+U57m);UOYd>{!W~4u)O0eAP21FQhiHP>30`Fo0Fjj zNy}^N9rp7$qx>#S;5~ge{w%Xy1jHG$&{ct1C^}2@YdFuA9^Zd}#<^7;5X%vtu zYl+B`YbvmlAxH*^RWaWXFG4oUGq}1HqhgomKM4OlS}$!yQC83u!$pw4lFq|>umQ|< zhvSD4d#3!Y@ET4Np&A(^0UcE2*malrb7{?Q-p%j+FN@2lvFfhx#|tISxRI{WvmC`U zcdpm1;Hk(3Ubg3z&KR^URVD>YS2&clY1t)?5YqeB8oaTTcd9-oVjOj>M^e|ofe}aXfajOxPj!)lh zIoW>(VZp3(^a0-Uv#?+kFeJc-b~S@T^8yZT3EmQ|j6AVYt&CL!hW{7GT})t!l0yPh z3)MzL9Dr5!O#L&iCTO5^4){HKexro~8_MRqHPii+jNsrx3{Mu@f7V9&Dzk!ldrCJa z!hQO0nDe>|Ci&ktH(j2eG9uv@0lSB7FLB0guRjk>-^^GHQ18R2snesP=q;z+Bq*!T zi^|D9Dugd}V6BcmN*b~|%nGpwYYNK}=!jPw5F%)zb13T?u$0_SE89YVxQu%@9E{<% z>Uww_X72uM8;AsqN|jsR4WTpkeZ#qyA!KxAK|BSE==2@|YRtq*VQR#X&$PLU=&AwS zKOg!D>k#==qzZJuKMNm4XG3q|zS2M>c3DffGdpTB(i-4GaZjdabd?!)Np$=bQ(Yr* zT*;i?6>1()rnl)3OYFgUX*VpHfBVnUh0NDL%Q*keaItX-J&wxKt4}bK1oV%P(>N<5 z5>I1gz+pgf>PjS}fCEiBvc{H!4HuG8^UJD|&FnH1>$C1P;G66kfPCDJi}~`$R=^(& zfY(7tCU_A>Dczx*A%+#iWUqHhQ(4^R@~9>S0!|kvxA~;4q8OT?=k7f%gJBl4elCfe zFQ-1P9qd2eovH31ia+6M*gC2kod+-54MDyjC`lkx{Xb?UCDC|GyQcG&6qrtOFO*IS zZvyMDb?}EqZ6({(XV4o1K{k|(>A9QRnYq8P`)*UWMk!1+@Tw(;OYLS4@(@BOxlZUb z4P`6;1_Il0eceIcFwukwV_EXVX|Oy@Bo7>SDL(Xna>H$w$tOxeR)L%7FrE7i-(7^D z8OuLOsJ&3&|5mgLP8nw4;4J8!Vz1~L6iu5iOC>hkvK`Urvf?2{n7I*a-FE43m)m9e zxcXvrdps3eIATtTRqgc|1)7y?<3}o3C5$!F|4e!b?RDo@V4vK^3%-cgCT>p)HuA6{ zT_k=mDc*FDtv&}EDnTm8J~0WZ<7CM;nEq+npZ9zp3a zEX414&C>d7xCR3OTbGieHK@PcX*(BHfm8|x(O@m2unwK%6;fS1)u?A}lpSOJdJhBj zr^7|zwZFvOf0gSP9)t%EVuGYTY*)mNrx2wQB;#V0Yl?*MMoXQ34Nep8VuXI|!1xk1 z`H|K4=Wl-Rn>Bq`S-R|}bPwsnS}>edCIMVuBKU$2-{8rnl^CwhYBxe={7zSwUk0FO z?#x5t@D&Mgl+4mTU%Q-kT=`*ZBNu8|aaDdNk#pgO>nJx;I+YKGo za%P*9NY_tTrGBq+SnCQQ}JUsmV=NTOu&<|35Df_$P-^$q^AM1*n1`NjI28Sg0AZM^x28n)7KfnOdNi-P+C3Qg2 zRl}y7L!mHIGa2$|2Zu(BbV4b04;qWg&i~-FN5ji@(O+lk?5+Q4dNORNacBdIF7LE_ zBw}h6zKS36?kfSmj8T8Pu;DYg3ES1(UM|wz0`>Zn^1pv0{6p;M`o7oElkK}*u1EZb3cHfpz62K`N9W5r50#6b_qCY`?yHul zI7)_4wBvPnij;sK&nTR_p4=eM;Z^(*>yjqEyS~Gw6E6qZ$!hXPTXk&=={H4eY(cAW z%VVay6uRVLAOW6RGwJiU=xS_deK1{%WpmYgwlQYuxq3(XK+goQ<)djzA=onm7wL-g zC3CE*$Skw5qAE_CK-plh5ScKRKBw8H<5Zj;Sq&~O#|wf2jZrgBeLC|}t&Gea!LMyY zLLl`CqU7?2=k#~)GQfBz6rEAhhm7!0d`X7alss)vukY%2zjw&-dOHG)z4k0uq|m7q zAO;}B-{RML@0rmo`&&7)=?bS0Rkcrqhh!%~V#m-yEQ<(7O zmL&W}tStQuk#R0IwODEZ?Iaey!3DZ@`d{=6yq}$8g&hZU9$7N3RiAI*xWFR+K|Msu zWEu|NT&`$gR-fQ~qpb!jZ1aJ#+z;ayxQ^;A&m?) zrN#g*bjiKT%-HzRjMcb4bbiqw;rB~40>cF~1+99&Jw3|?O`H3x0WuE2&$<+|MOspmiOMQivrK+{j5Y^&HKEn+ zKJ43ZQW8(DyDEYEP~U7GL$#1%6n10iInjEonFdZykHm^>TGHsizs5bqF-)RRjZj57 zffu~EwZyUIUQ4SpL)PLxf_!9Rf0A~8-x&b{K^3H08gGY#c|G~HQ$k{M>c(RRC^d;hXSRt zEl_)lg9xi)M4*b4Rr7QCA#27D+pQ$J7Q5`(0Wa`h9Wa#H^31#_GZ1vwU^N{{r@617 z+{QYnLwNVT?=_`Fu+k;IW!U*0YboIJv+L&D=dEXojmY|Ot(zrL;c$5`TktPb^F(|k z_(+Zh+M}aSsPnBRIuhiJ63C3l(Dc7~Dq~`9hz` zU8mWqY=Nr=n`<~VI1H-9(5*1QOfWt!Zm3de%_k%hn^Zv6!}sRxq^Sc=k0K)rE=S~` z16VG2iXddE&VeL-P8V9Z{`?pTiF>kI1tgchX?FrgL%eNwgz?*@h7?~+xIew0Yx$r> z)RTu`*}UED0juH?n-QmGWAZU_%j=M}Bx97U0>Wq1lqT+oz`3ht6vrPbtQ4^A$ z8F8tT#so7|HVCrHK@6{NuuA!j7F;Ljv?SHFObR0GFJRou{h2OkYe&(pXt9NX<-JD7 zH|6^V+QyoCj5?N%rxifBn%wM@74EAVB;!B=sOAEol^vihHuY#-b`L7gu@J*5iwV)A zg;B=?uK)q;wW;h4O>wafW+aKQ2$tkvEo^_TuLw#gox<$Rsp3rM@x~bcWytp;-&b!d zZFGTb7lk$Gx_&PJM5t6fGc*s3A(k}YJJb> z_;znnqSn>ZNnrZ7w@Hfvk|&YVQzYp%V@JKiq&do@(rA}_$K9-cmZUaYE!XYIUM+C-_XEN*Bl zkODQp63(){@P`ZwzS}?%8HZzRp(q~0l0(-)OLgS-Uh?A3uU4^;tiUTqp6>TsOD@rf zZ{Km=>Usag*1*_Gx^WNYg?zXdjb zJNl;|xoS|tt)E^Btq2{ro6iir>1wOwo@|>*1YQgxgpo0&&Kai!fhE=PAkVNrN`*_< z_N|@HcR0ybm-~(vsNZ+O9*F<_d^zf3!;9iPAioDt1lA>rW z!G@Z|D6utkeVAD)Ifo`gUC^RG?PHvxVc8(K2Y*5^`v0^5Zh}fAM)d*66N{5c14dN1 zR8Z+@;aWmJjo2^j)#jr@M9R_Ai#@3tiy>y`uS#cnR)|iE$}d^X9i+4hY5_bPot5gupFwmUq5AZt z<_7Sh{GR4xyl`ARRueGlH0VHpiHK6ax;HH%5{kIx{I1 z(ipWyInSRAR$;U19uN;1_mx0HJ1Zk&sWF;G3H`>X_NG#VEoH7eWrpHlLsc4S@`U$h z+I_DDOy|S@A?uja-rKQ6xgY3?_-Z0I-z0PnbS8wl5S}Jcs z&Lx~vH3Qq!rbO#OgQ|^x^wS`M*+bBWd6O zTF`JV%3GTCjtfGK#P&I0$d*y))@NuO9o5OS^`0+x=mwmg>J7dXBMKf&to%@#li^B@ zpavkd(ek-ez~ysa!AVKthx94#P0OYMsZyu4hVOqaT=x7}Bmx{Zi|{Ci7Q*Gj!MJDo zB?`s|OyB1+NJLpA=x0XR3Ya9*EZ4swWnWi#v^}L6x9u;*OYT znJ1?9)Vhn9c@30&URo~XO{N*r4auuG@7jhFHwn_8WCkb(HhL+Q9t^pYO7&C9s5^KW z+QEt$EZj07L4VQ0CZ*bklbnVVn-&1rWrdYDSotXZ=HT>ryGiA=x?pn5V7CtQdUoS+ zY?f)>Z&>703LuZeyOP0q@*|I7~o0XdWI)nX&8DA$>Qud zjaPNiF>Uq4PS55#MH;iJDN0H|EEyDP6-2121&M$hYZYIl^X|ad|}fQ zQU;yr8PRKgj?UorQS(``E}FVZGwBxA)Kmm=<(GyB(N5cnla5kRy2{gQV##1DN?0*0 z&G=go$(PLKj+=i|G=gZBj&E$6_}Ng$wNL~l!z!53N9~!vqn02#jCdhrnAkyby_Z19 z!~0FU*Kv91ih>b}V^ISn&*$Zs)F`De*dZm;Cf- z2GdLe;aL+{KSf9*4_lSi&WeVtnbh>K&g!05fc+18ce$5xBA$s!kOI^#C&0=W0s-4? z=eQuXKJe8vzq1@|)#FKgqvo>bmgEm*5!ktT(WR{PKNVG=M%TNIMSvZ^Ns77S>KQq} z06m>5YlnG2Tbn9PnuHKs>G)YU|+UVd7rtj6N>xm)8rl~QX!1ZV|`eB>p)UJXm+ zb|V4;_<;gS;VV9fQr42|y-MHr?l1V|@!*p$_f;lU?*GTsSBAye1j}NaLpVevMX()LU5T-k8S# zAVGwdJI_f}cKw=;j}Vc1vkghN#kS`iLT&x-vWATpKm!FSCe(GLqYDhbFLcAT%)TzV z+k^NcPQ1!hu%qKZA@#Q#C224^w9oiy^WX>EpFiB7Tr#HOMyU}L~3 z3reGSR1Y`;7Darn%Txy$M>|yR=9l5yP-Ckq3W%-H{T48{Tgu?EjJ(Bn(5}~+BdE)h zYlxyz89Dl^WaebRdWp=BF1?L%mFp6LaE5~)7U}sVQjPZ<1qf{vFJcYvD|s}t#z|0v ze+W5K7*tk5b#eo?b*0Xda)`8@s(U%;?=PSrXx~(0CpX^nu;1Wm_5LblNw04|Ov7?nsIaYo{w z$8qFqCTfehWp##4w7XD0FUe7tHX6UN?qAYfXP<_Q ziNgiC&chKYxC{U3$K}@tKRu8BF3;m0wGBIVfneAg{-}K3fZkuX2?xNTAvU+F^aT;` z1raZ*p~^pTgfZQ&XPp+drQbuHHCD74s8K*hr z$SUY9`vhaqCPm2cesm-fEnme33(vb2u~}uvFIB8pEBP`UZ03r=aT`?s!UsfufjmTI zO^S@4hNf2sAMsS`G@%ymZ+<-uivx+T&!++aP$M0%)QG_oJc>hbW>WPbw$#zKf=4!4 zrf~*=({F1Bt*=uMEA=G$7tk1ZgE|K!&dY`rhn;_{tW@b7Dhn?B%NhMeDZ(ae8cxWb zY$El<6o;_5H@ht3Y!6yll(sZzZxzf07>5i6tECP7;;2;;MK*vG85?L$F=Le(n%Pn* z!407^5+MDuCK-(BA~weGaf`~d@DDzG@H347%49k?N~hk+bOU;Gj+{su4AkV8Gi5~Od`O$!YE;Y8TDQW?QfnZ6(qU&LL|q7>?-f6sh*2#> zUPvzMa9yl7Z~g8J6L!FnkU^TRm5ZU*eBu8m`ua%Z z#qA*RZ~McUX<=l-8XM@h_<6f?yS@=#@{pxhF?29xHM4-R0YE;ZJ(ri8j-`}OAJ{CQ zNm~qb?fN3-kwhfi4d^Ml%;~X&EWNH0uB!xTk{u;E8kG|Sc@%PsUZSHHY_x|JeCva} z4pgD1ySPTWVIyn@6D}E>qFb;{n$-j4vFn$4S`5pYE$CCj$dK(~(?N>nE^TQLPhiLs ze4Ts0@(i`42(<(zVpsuD^UD2Q2-Ht|9vnWyt`D(c<)E}sae5?3LL=*hU=`p>k?-I2 z{(JEKVcUm!fFk}+KbJ!*0)jy#SnoZx4j=WV%$?67)TR;}cn&g)-1sm{0WIBtYg_EazFGln}C#5fS+Ooxp5nHYc@Y!{*W&nLo z_9J)d-x^Nr7ZUXo`pr3za^U)5Ph+P$&LGn8?apcaAvru@thK{FK8~jD7?H4VF?d{i z2rzWs-Z8ucKQV;;(n>=^&oLVGIT?%0;csQ{O$K*g>c;aLofuf43;8V4p8$GXLzssD zkAVI>S%k^3km^6M3Nn9y2{7$9e%W3&b-Mmd>sR|u6+>_yI&PfQPdJF{_*j3i?Slwp z92fnPDk}U5x67t-Txw1|3P7Gd*<17}(XrIDCYBa?=HvI?UqU$1+XH)CrsHM96a*+O zw%sCeI1^vdS^<&TtZM=Z_WTCPdq_JgN!?Sb2yVAg52BxOdrJEPDm-hfebSQRHP#E3Bi6Dx=U@cDp|Q+wxHS zE{w5|!XZshU?0X(@9)IxEUDriY?!as%z7#^PTyQnAtlB&$|6s>w0Gb;lw{7MG z163Oje-*J3Z&^uur~3K1EJ~SH%7-04Gy{(uzmg2Ua(|9HTXvh<9@(Z<&72u6z&Ws5 zC=Xda`$k}FEsD{5KT^gIz`Bkl|ACx<4=!awntnQoU{v2+hH((wvQE6 z&awew?F)sr3y;7ElHv~O{0C_45b3YTjP>B@(S}J7H=MK?jUg>gSb1&h&Ag^a2+(mB zR0*doQxhkZ`JlpDU(c>}<6BW&aa`O)*cZ%U<%qREyHv^ORak!3y$Vs4~HCGIs7X z77!ji%KlD&S6Y!UL@)U9l39~cmO(a=|HT0%G=>LlXMqjletr8FbJPhY(^gkP*(v-S zNRIrEGYQtS?>XPrFthzTu|!z-WxFg>7(mwZZ1m^laN=ek8Y2p)%+I_`K`PM%&Mxm*Ga zv7qwJS+~`T&+TpG;*dbpyBvywR*VY#_8fk16&s!pk?G%cna?kBu!YVQE@5$d053I0 zgD-oq(|dpTNPA)L1tYJSHluQma$rP^(kAWad>1+^gV;y|K$8avqX$NjAE_^`umI;5 z&{2_PR+XxinMa{>q5|@Vod3njDOAIzWfTS!^VCv9Vdrk$uZ{}FbI}pNfPM*ibl=N> zKF;)!(A#8|)7upBa;=5iW1#Eefq&%BTrafu+gOLa!SuTwRl^s0`|f9w&f77tN&hOx z!CsZ;$gBl{WYfT|u#*LEoRL&0Z4|M~M35p(31xIrGE}=8?O(dMqZ6ROJ`JpSbm$XPvlho)c56%M@%% zV3}m4<En0u)pxzTS@W*R4CP8~*o) zsiv+ZlQ?SOG!=L5IlbuMfJ}W_MUo)?+v_95*fJ~C`olWF3DPr48xcTGku%i;e3ist z#wQu@s@bgD?iQif$J^bOgAsr1V~y64GM^hcbU`f3;UJ&+9DD_dlKw;}_6>1Hu-1`} z3f$UbT(>KXh1Kk}&v4yy+3ROg#sAMg4>oW^)2P(xBalKU-{4@j5sdORb16#sl0F^? zuUwkA;>wdWR#|`BQ*VO*0TTG%M;f(s01((Drc2XWs*+^$)nz3wO}&Vmkgszt?Qox?-PQ)fBUxv ztSpJbyIaptLnuU+gn0{V{_)-qZeB|t-;)CmJY`pjw1TES^6KjIMn^`9Q2&_t%4l+U zl1Hcmi&Zx5A_t8qBbmpr0ZdT9-DM(#pU~(x+eoF82t&Bitm$fWJZle(uJ*RsIlL#p zn6db^+gl5?c;;QV1X zI2dSJnSeo?Da&`+hzrk2@9H{*h<&~478;{w+TM5uBbDt@A=19@{@w*>P)h4AV2b72 z9#x1XYu@RQhbH()yJT{(^s(IQShB>b&w&9c3pS&0nj;&(xz4;{#agx{_-kOsBDzTV zJ8Gj=jzEe1Zwfq9*3aJGHr9}(p=FS0qnHh@^lErl6mO3j#mMIi|0ywHCE)muN^Vlu zy94K-Z#natE?-xdbH$Z=ShA3v6#ZM@6(439TNYpco^+)h*%IS6-;u*nVz#-$UwPJ3 zkdu|tLz z3DEvyXbY>a)2etb?O%%CQzQtT%!!x*b-AbO@hFJfW=q1g<%uA8_f}(a-#=YHR5$V| z!F<4E_A7KosAZNGc(8FMzCtTU2&-M2*3?89IT~l(vg&VzBW_BXI@8b3YwC8o1`@`f zdy{a|k-QOEDdB=|yV}?{jACOT2Od1Zl$cls^MOxGLpT^4i?M+dq;~W7i!kqWK(1VI zqO>JO!oUd@F^6%|ljQ(UFXb j54qa;zou@qDfSNFS^?=H%Fte)TnHnml-nI2v4 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 JG7&w${{y7)3Mc>o literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/images/user_logo_2_bell-icon-with-one-notification-1.png b/transportmanager/client/assets/images/user_logo_2_bell-icon-with-one-notification-1.png new file mode 100644 index 0000000000000000000000000000000000000000..85aa02e87f77b6192bd525c70155b4d6f7da00d5 GIT binary patch literal 22960 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 literal 0 HcmV?d00001 diff --git a/transportmanager/client/assets/images/user_logo_2_png-clipart-computer-icons-task-action-item-others-miscellaneous-angle.png b/transportmanager/client/assets/images/user_logo_2_png-clipart-computer-icons-task-action-item-others-miscellaneous-angle.png new file mode 100644 index 0000000000000000000000000000000000000000..7ceacfd5a587ddd27d0b92616be80c4df01a897a GIT binary patch literal 8508 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 bool: + if not token: + return False + try: + resp = requests.get( + f"{API_BASE_URL}/auth/validate_token", + headers={"Authorization": f"Bearer {token}"}, + timeout=5, + ) + return resp.status_code == 200 + except Exception: + # If the server can't be reached, treat as invalid to avoid granting access + return False + + def route_change(e): + # Current path + route = page.route + + # Determine auth state by validating token with backend + token = page.client_storage.get("token") + valid_token = is_token_valid(token) if token else False + is_authenticated = bool(valid_token and page.session.get('user_id')) + + # If token is invalid but present, clean it up + if token and not valid_token: + try: + page.client_storage.remove("token") + except Exception: + pass + try: + page.session.pop("user_id", None) + except Exception: + pass + + # Clear current UI + page.controls.clear() + + # 1) Reset Password – allow opening directly from email link + if route and "reset_password" in route: + reset_page = ResetPasswordPage(page) + page.add(reset_page.build()) + page.update() + return + + # 2) Auth route – if already logged in with a valid token, go to dashboard + if route == "/auth": + if is_authenticated: + page.go("/dashboard") + return + login = Auth(page) + page.add(login.build()) + page.update() + return + + # 3) Admin (protect) + if route == "/admin": + if not is_authenticated: + page.go("/auth") + return + admin = Admin(page) + page.add(admin.build()) + page.update() + return + + # 4) Dashboard & root + if route in ("/dashboard", "/", None): + if not is_authenticated: + page.go("/auth") + return + dashboard = DashboardPage(page) + page.add(dashboard.build()) + page.update() + return + + # 5) Fallback 404 + page.add(ft.Text("404: Page not found")) + page.update() + + page.on_route_change = route_change + page.go(page.route or "/auth") + +ft.app( + target=main, + assets_dir="assets", + upload_dir="uploads", + view=ft.WEB_BROWSER, + host="0.0.0.0", + port=FLET_SERVER_PORT, +) \ No newline at end of file diff --git a/transportmanager/client/pages/admin_page.py b/transportmanager/client/pages/admin_page.py new file mode 100644 index 0000000..4e96ef9 --- /dev/null +++ b/transportmanager/client/pages/admin_page.py @@ -0,0 +1,147 @@ +import flet as ft +from pages.admin_tenants_page import Tenants +from pages.admin_subscriptions_page import Subscriptions +import requests +from config import API_BASE_URL + +class Admin: + def __init__(self, page: ft.Page): + self.page = page + self.placeholder = ft.Column(expand=True) + self.total_tenants = ft.Text("Total tenants: 0") + self.revenues = ft.Text("Total revenue: 0") + + def get_subscriptions(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/admin/subscriptions", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading clients:", e) + + def build_dashboard(self): + all_subscriptions = self.get_subscriptions() + total_tenants = len(all_subscriptions) + self.total_tenants.value = f"Total tenants: {total_tenants}" + sum = 0 + for subscription in all_subscriptions: + if subscription['status'] == 'active': + if subscription['plan'] == 'first_2_months': + sum += 0 + elif subscription['plan'] == 'monthly': + sum += 100 + elif subscription['plan'] == 'yearly': + sum += 1000 + self.revenues.value = f"Total revenue: {sum}" + return ft.Row( + [ + ft.Container( + content = ft.Column( + [ + ft.Icon(name=ft.Icons.PEOPLE, size=50), + self.total_tenants, + ], + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ), + bgcolor=ft.Colors.BLUE_100, + border_radius=20, + padding=20 + ), + ft.Container( + content = ft.Column( + [ + ft.Icon(name=ft.Icons.AUTORENEW, size=50), + self.revenues, + ], + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ), + bgcolor=ft.Colors.BLUE_100, + border_radius=20, + padding=20 + ), + ] + ) + + def on_tenants_btn_click(self, e): + tenents = Tenants(self.page) + self.placeholder.controls = [tenents.build()] + self.placeholder.update() + + def on_subscription_btn_click(self, e): + subscription = Subscriptions(self.page) + self.placeholder.controls = [subscription.build()] + self.placeholder.update() + + def on_dashboard_btn_click(self, e): + self.placeholder.controls = [ + ft.Text("Admin Dashboard", size=24, weight=ft.FontWeight.BOLD), + self.build_dashboard() + ] + self.placeholder.update() + + def on_logout_btn_click(self, e): + self.page.client_storage.remove("token") + self.page.session.clear() + self.page.go("/auth") + + def build(self): + self.placeholder.controls = [ + ft.Text("Admin Dashboard", size=24, weight=ft.FontWeight.BOLD), + self.build_dashboard() + ] + return ft.Container( + content= ft.Row( + [ + ft.Column( + [ + ft.Column( + [ + ft.Button( + "Dashboard", + on_click=self.on_dashboard_btn_click, + width=150, + icon=ft.Icons.DASHBOARD + ), + ft.Button( + "Tenents", + on_click= self.on_tenants_btn_click, + width=150, + icon=ft.Icons.PEOPLE + ), + ft.Button( + "Subscriptions", + on_click=self.on_subscription_btn_click, + width=150, + icon=ft.Icons.AUTORENEW + ) + ] + ), + ft.Button( + "Logout", + on_click=self.on_logout_btn_click, + width=150, + icon=ft.Icons.LOGOUT + ) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + #width=180 + ), + ft.VerticalDivider(), + ft.Container( + content=ft.Column( + [ + self.placeholder, + ] + ), + expand=True + ) + ], + expand=True + ), + expand=True, + padding=20 + ) \ No newline at end of file diff --git a/transportmanager/client/pages/admin_subscriptions_page.py b/transportmanager/client/pages/admin_subscriptions_page.py new file mode 100644 index 0000000..6b58474 --- /dev/null +++ b/transportmanager/client/pages/admin_subscriptions_page.py @@ -0,0 +1,160 @@ +import flet as ft +import requests +from datetime import datetime +from config import API_BASE_URL + +class Subscriptions: + def __init__(self, page: ft.Page): + self.page = page + self.plan = { + 'first_2_months':'First Two Months' , + 'monthly':'Monthly', + 'yearly':'Yearly' + } + self.status = { + 'active':'Active', + 'cancelled':'Cancelled', + 'expired':'Expired', + 'less_than_5_days':'Less than 5 days' + } + self.search_field = ft.TextField(label="Search", on_submit=self.on_search_btn_click, expand=True) + self.all_subscriptions = self.get_subscriptions() + + self.subscriptions_list = ft.ListView( + controls=self.create_list(self.all_subscriptions, self.on_subscription_btn_click), + spacing=10, + expand=4 + ) + + self.company_name = ft.TextField(label="Company Name", read_only=True) + self.company_register_number = ft.TextField(label="Register Number", read_only=True) + self.subscription_plan = ft.TextField(label="Subscription Plan", read_only=True) + self.subscription_status = ft.TextField(label="Subscription Status", read_only=True) + self.subscription_start_date = ft.TextField(label="Subscription Start Date", read_only=True) + self.subscription_end_date = ft.TextField(label="Subscription End Date", read_only=True) + + self.selected_subscription = None + + def create_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text(item['register_number'], expand=True, weight=ft.FontWeight.BOLD), + ft.Text(self.plan[item['plan']], size=12) + ] + ), + ft.Text(self.status[item['status']]) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50 if item['status'] != 'expired' else ft.Colors.RED, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + ink=True, # To enable click effect + on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_subscription_btn_click(self, item): + self.selected_subscription = item + tenant = self.get_tenant(item['user_id']) + self.company_name.value = tenant['name'] + self.company_name.update() + self.company_register_number.value = tenant['register_number'] + self.company_register_number.update() + self.subscription_plan.value = self.plan[item['plan']] + self.subscription_plan.update() + self.subscription_status.value = self.status[item['status']] + self.subscription_status.update() + self.subscription_start_date.value = str(item['start_date']).split('T')[0] + self.subscription_start_date.update() + self.subscription_end_date.value = str(item['end_date']).split('T')[0] + self.subscription_end_date.update() + + def get_tenant(self, id): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/admin/users/{id}", headers=headers) + return response.json() if response.status_code == 200 else None + except Exception as e: + print("Error loading clients:", e) + + def get_subscriptions(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get("{API_BASE_URL}/admin/subscriptions", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading clients:", e) + + def on_search_btn_click(self, e): + value = self.search_field.value + print(f'Search for {value}') + buffer = [] + for subscription in self.all_subscriptions: + if value in subscription['register_number']: + buffer.append(subscription) + self.subscriptions_list.controls.clear() + self.subscriptions_list.controls = self.create_list(buffer, self.on_subscription_btn_click) + self.subscriptions_list.update() + + def update_status(self, status): + try: + user_data = { + 'subscription_id': self.selected_subscription['id'], + 'status': status + } + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.post("{API_BASE_URL}/admin/users/update", headers=headers, json = user_data) + #print(response.text) + except Exception as e: + print(e) + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Text("Subscriptions", size=24, weight=ft.FontWeight.BOLD), + ft.Row( + [ + self.search_field, + ft.Button("Search", on_click=self.on_search_btn_click) + ] + ), + ft.Row( + [ + self.subscriptions_list, + ft.Column( + [ + self.company_name, + self.company_register_number, + self.subscription_plan, + self.subscription_status, + self.subscription_start_date, + self.subscription_end_date, + ft.Row( + [ + ft.Button("Renew", on_click=self.update_status('active')), + ft.Button("Unsubscribe", on_click=self.update_status('cancelled')) + ] + ) + ], + expand=6 + ) + ], + vertical_alignment=ft.CrossAxisAlignment.START + ) + ], + alignment=ft.MainAxisAlignment.START, + ) + ) \ No newline at end of file diff --git a/transportmanager/client/pages/admin_tenants_page.py b/transportmanager/client/pages/admin_tenants_page.py new file mode 100644 index 0000000..20b6b7b --- /dev/null +++ b/transportmanager/client/pages/admin_tenants_page.py @@ -0,0 +1,174 @@ +import flet as ft +import requests +import json +from config import API_BASE_URL + +class Tenants: + def __init__(self, page): + self.page = page + self.search_field = ft.TextField(label="Search", on_submit=self.on_search_btn_click, expand=True) + self.all_tenants = self.get_all_tenants() + self.tenants_list = ft.ListView( + controls=self.create_list(self.all_tenants, self.on_tenant_btn_click), + spacing=10, + expand=4 + ) + self.name = ft.TextField(label="Company Name") + self.address = ft.TextField(label="Company Address") + self.contact_name = ft.TextField(label="Contact Name") + self.email = ft.TextField(label="Email") + self.phone = ft.TextField(label="Phone") + self.first_order_number = ft.TextField(label="First Order Number") + self.register_number = ft.TextField(label="Register Number") + self.terms = ft.TextField(label="Terms and Conditions", multiline=True, min_lines=5, max_lines=10) + self.logo_filename = ft.TextField(label="Logo") + self.save = ft.Button("Save", on_click=self.on_save_btn_click, width=100) + self.error = ft.Text("") + self.user_id = None + self.user_details = ft.Column( + [ + self.name, + self.address, + self.contact_name, + self.email, + self.phone, + self.first_order_number, + self.register_number, + self.logo_filename, + self.terms, + self.save, + self.error + ], + expand=6 + ) + + def on_save_btn_click(self, e): + user_data = { + 'name': self.name.value, + 'contact_name': self.contact_name.value, + 'email': self.email.value, + 'phone': self.phone.value, + 'register_number': self.register_number.value, + 'address': self.address.value, + 'logo_filename': self.logo_filename.value, + 'terms': self.terms.value, + 'first_order_number': self.first_order_number.value, + 'user_id': self.user_id + } + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.post(f"{API_BASE_URL}/admin/users/update", headers=headers, json = user_data) + if response.status_code == 200: + self.error.value = 'Tenant data saved!' + self.error.color = ft.Colors.GREEN + self.error.update() + else: + self.error.value = 'Tenant data not saved!' + self.error.color = ft.Colors.RED + self.error.update() + except Exception as e: + print("Error saving tenant data:", e) + + def on_search_btn_click(self, e): + value = self.search_field.value + print(f'Search for {value}') + buffer = [] + for tenant in self.all_tenants: + if value in tenant['name']: + buffer.append(tenant) + self.tenants_list.controls.clear() + self.tenants_list.controls = self.create_list(buffer, self.on_tenant_btn_click) + self.tenants_list.update() + + def on_tenant_btn_click(self, item): + self.error.value = '' + self.error.color = ft.Colors.RED + self.error.update() + self.name.value = item['name'] + self.name.update() + self.address.value = item['address'] + self.address.update() + self.contact_name.value = item['contact_name'] + self.contact_name.update() + self.email.value = item['email'] + self.email.update() + self.phone.value = item['phone'] + self.phone.update() + self.first_order_number.value = item['first_order_number'] + self.first_order_number.update() + self.register_number.value = item['register_number'] + self.register_number.update() + self.terms.value = item['terms'] + self.terms.update() + self.logo_filename.value = item['logo_filename'] + self.logo_filename.update() + self.user_id = item['id'] + + def get_all_tenants(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/admin/users", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading clients:", e) + + def create_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Text(item['name'], expand=True), + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + ink=True, # To enable click effect + on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Text("Tenants", size=24, weight=ft.FontWeight.BOLD), + + ft.Column( + [ + ft.Row( + [ + self.search_field, + ft.Button( + "Search", + icon=ft.Icons.SEARCH, + width=100, + on_click=self.on_search_btn_click + ) + ] + ), + + ] + ), + + ft.Row( + [ + + self.tenants_list, + self.user_details + ], + vertical_alignment=ft.CrossAxisAlignment.START + ) + + ], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True + ) \ No newline at end of file diff --git a/transportmanager/client/pages/archive_in_page.py b/transportmanager/client/pages/archive_in_page.py new file mode 100644 index 0000000..ee5eaae --- /dev/null +++ b/transportmanager/client/pages/archive_in_page.py @@ -0,0 +1,126 @@ +import flet as ft +import requests +from pages.view_orders_in_page import ViewOrdersIn +from config import API_BASE_URL + +class ArchiveInPage: + def __init__(self, page: ft.Page, dashboard, orders_in): + self.page = page + self.dashboard = dashboard + self.orders_in = orders_in + self.orders = [] + self.orders_list = ft.Column(spacing=10, expand=True, scroll=ft.ScrollMode.ADAPTIVE,) + + self.selected_delete_order = None + + self.delete_dialog = ft.AlertDialog( + title="Delete order?", + actions=[ + ft.Button( + "Yes", + width=100, + on_click=self.on_confirm_delete_order_click + ), + ft.FilledButton( + "No", + bgcolor=ft.Colors.GREY, + width = 100, + on_click=self.on_no_delete_order_btn_click + ) + ] + ) + + def on_confirm_delete_order_click(self, e): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.delete(f"{API_BASE_URL}/orders_in/{self.selected_delete_order['id']}", headers=headers) + if response.status_code == 200: + print('Order deleted!') + except Exception as e: + print("Error loading orders:", e) + self.page.close(self.delete_dialog) + self.selected_delete_order = None + self.refresh() + + def on_no_delete_order_btn_click(self, e): + self.page.close(self.delete_dialog) + self.selected_delete_order = None + + def view_order(self, order): + if order: + self.page.session.set("order_in_id", order['id']) + self.view_order_page = ViewOrdersIn(self.page, self, self.dashboard) + self.dashboard.placeholder.content = self.view_order_page.build() + self.dashboard.placeholder.update() + + def cancel_order(self, order): + self.selected_delete_order = order + self.page.open(self.delete_dialog) + + def load_orders(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders_in/list", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading orders:", e) + + def on_go_back_btn_click(self, e): + self.dashboard.placeholder.content = self.orders_in.build() + self.dashboard.placeholder.update() + + def get_client(self, client_id): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/{client_id}", headers=headers) + if response.status_code == 200: + client = response.json() + return client['name'] + else: + return None + except Exception as e: + print("Error loading clients:", e) + return None + + def refresh(self): + self.orders = self.load_orders() + self.orders_list.controls.clear() + for order in self.orders: + client = self.get_client(order['client_id']) + self.orders_list.controls.append( + ft.Container( + content=ft.Row([ + ft.Column([ + ft.Text(f"{client}", size=16, weight=ft.FontWeight.BOLD), + ft.Text(f"Order Number: {order['order_number']}", size=14), + ], expand=True), + ft.Button("View",icon=ft.Icons.PICTURE_AS_PDF, on_click=lambda e, o=order: self.view_order(o)), + ft.Button("Delete", icon=ft.Icons.CANCEL, on_click=lambda e, o=order: self.cancel_order(o)) + ]), + padding=10, + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + border_radius=10, + ) + ) + self.page.update() + + def build(self): + self.refresh() + return ft.Container( + content=ft.Column( + [ + ft.Row( + [ + ft.Text("Archive", size=24, weight=ft.FontWeight.BOLD), + ft.Button("Back", icon=ft.Icons.ARROW_BACK_IOS_NEW, on_click=self.on_go_back_btn_click) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + self.orders_list + ] + ) + ) \ No newline at end of file diff --git a/transportmanager/client/pages/archive_page.py b/transportmanager/client/pages/archive_page.py new file mode 100644 index 0000000..f8aeaab --- /dev/null +++ b/transportmanager/client/pages/archive_page.py @@ -0,0 +1,125 @@ +import flet as ft +import requests +from pages.view_page import ViewPage +from pages.orders_edit_page import OrdersEditPage +from config import API_BASE_URL + +class ArchivePage: + def __init__(self, page:ft.Page, dashboard, order_page): + self.page = page + self.dashboard = dashboard + self.orders = [] + self.orders_list = ft.Column(spacing=10, expand=True, scroll=ft.ScrollMode.ADAPTIVE,) + self.order_page = order_page + self.selected_cancel_order = None + + self.cancel_dialog = ft.AlertDialog( + title="Cancel order?", + actions=[ + ft.Button( + "Yes", + width=100, + on_click=self.on_confirm_calcel_order_click + ), + ft.FilledButton( + "No", + bgcolor=ft.Colors.GREY, + width = 100, + on_click=self.on_no_cancel_order_btn_click + ) + ] + ) + + def refresh(self): + self.orders = self.load_orders() + self.orders_list.controls.clear() + for order in self.orders: + self.orders_list.controls.append( + ft.Container( + content=ft.Row([ + ft.Column([ + ft.Text(f"{order['order_number']}", size=16, weight=ft.FontWeight.BOLD), + ], expand=True), + ft.Button("View",icon=ft.Icons.PICTURE_AS_PDF, on_click=lambda e, o=order: self.view_order(o)), + *([ + ft.Button("Edit", icon=ft.Icons.EDIT, on_click=lambda e, o=order: self.edit_order(o)), + ft.Button("Cancel", icon=ft.Icons.CANCEL, on_click=lambda e, o=order: self.cancel_order(o)) + ] if order['status'] == 'active' else []) + ]), + padding=10, + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + border_radius=10, + ) + ) + self.page.update() + + def load_orders(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders/list", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading orders:", e) + + def view_order(self, order): + #print(order) + user_id = self.page.session.get("user_id") + pdf_name = f'order_{user_id}_{order['order_number']}.pdf' + #print(pdf_name) + view_page = ViewPage(self.page, pdf_name, self.order_page, self.dashboard, order['id']) + self.dashboard.placeholder.content = view_page.build() + self.dashboard.placeholder.update() + + def edit_order(self, order): + self.page.session.set('order_id', order['id']) + edit_order = OrdersEditPage(self.page, self.dashboard, self) + self.dashboard.placeholder.content = edit_order.build() + self.dashboard.placeholder.update() + + def cancel_order(self, order): + self.selected_cancel_order = order + self.page.open(self.cancel_dialog) + + def on_confirm_calcel_order_click(self, e): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.delete( + f"{API_BASE_URL}/orders/cancel/{self.selected_cancel_order['id']}", + headers=headers + ) + if response.status_code != 200: + print("Failed to cancel order:", response.status_code) + except Exception as e: + print("Error cancelling order:", e) + + self.page.close(self.cancel_dialog) + self.selected_cancel_order = None + self.refresh() # Optional: Refresh the list + + def on_no_cancel_order_btn_click(self, e): + self.selected_cancel_order = None + self.page.close(self.cancel_dialog) + + def on_go_back_btn_click(self, e): + self.dashboard.placeholder.content = self.order_page.build() + self.dashboard.placeholder.update() + + def build(self): + self.refresh() + return ft.Container( + content=ft.Column( + [ + ft.Row( + [ + ft.Text("Archive", size=24, weight=ft.FontWeight.BOLD), + ft.Button("Back", icon=ft.Icons.ARROW_BACK_IOS_NEW, on_click=self.on_go_back_btn_click) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + self.orders_list + ] + ) + ) \ No newline at end of file diff --git a/transportmanager/client/pages/auth_page.py b/transportmanager/client/pages/auth_page.py new file mode 100644 index 0000000..a6243fa --- /dev/null +++ b/transportmanager/client/pages/auth_page.py @@ -0,0 +1,73 @@ +# client/pages/login_page.py +import flet as ft +from pages.login_page import Login + +class Auth: + def __init__(self, page: ft.Page): + self.page = page + self.email = ft.TextField(label="Email") + self.passwd = ft.TextField(label="Password", password=True, can_reveal_password=True) + self.error_message = ft.Text("") + self.welcome_message = ft.Text( + "", + weight=ft.FontWeight.BOLD, + size=50, + color= ft.Colors.WHITE + ) + + # if self.page.client_storage.get("logo_filename"): + # logo_path = f'images/{self.page.client_storage.get("logo_filename")}' + # else: + # print(f'filename: {self.page.client_storage.get("logo_filename")}') + logo_path = "images/truck_logo.png" + + self.logo = ft.Image( + src=logo_path, + width=400, + border_radius=20 + ) + self.subtitle = ft.Text( + "From Order to Action, Instantly.", + size=20, + color=ft.Colors.WHITE70 + ) + login = Login(self.page, self) + self.placeholder = ft.Container( + content=login.build(), + padding=10, + border_radius=10, + alignment=ft.alignment.center, + expand=5 + ) + + def build(self): + return ft.Container( + content=ft.Row( + [ + ft.Container( + content = ft.Column( + [ + self.logo, + self.subtitle + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + alignment=ft.MainAxisAlignment.CENTER + ), + expand=5, + gradient=ft.RadialGradient( + center=ft.Alignment(-0.50, -0.50), + radius=1.0, + colors=[ft.Colors.BLUE_300, ft.Colors.BLUE_900], + tile_mode=ft.GradientTileMode.CLAMP + ), + shape=ft.BoxShape.CIRCLE, + margin=ft.margin.only(left=-180, top=-180) + ), + self.placeholder, + ] + ), + alignment=ft.alignment.center, + expand=True, + padding=0, + margin=0, + ) \ No newline at end of file diff --git a/transportmanager/client/pages/clients_page.py b/transportmanager/client/pages/clients_page.py new file mode 100644 index 0000000..351e77d --- /dev/null +++ b/transportmanager/client/pages/clients_page.py @@ -0,0 +1,294 @@ +import flet as ft +import requests +from config import API_BASE_URL + +class ClientsPage: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + self.clients = [] + self.dialog = None + self.name = ft.TextField( + label="Name", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.address = None + self.street_and_number = ft.TextField( + label="Street and number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.postal_code = ft.TextField( + label="Postal code", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.city = ft.TextField( + label="City", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.region_county = ft.TextField( + label="Region / County", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.country = ft.TextField( + label="Country", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.register_number = ft.TextField( + label="Register Number", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.vat = ft.TextField( + label="VAT", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.contact_person = ft.TextField( + label="Contact Person", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.phone = ft.TextField( + label="Phone", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.email = ft.TextField( + label="Email", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.selected_client_id = None + self.clients_list = ft.ListView(expand=True, spacing=10) + self.dialog = ft.AlertDialog( + modal=True, + title=ft.Text("Client Details"), + content=ft.Column( + controls=[ + self.name, + self.register_number, + self.vat, + self.contact_person, + self.phone, + self.email, + self.street_and_number, + self.postal_code, + self.city, + self.region_county, + self.country, + ], + width=600 + ), + actions=[ + ft.TextButton("Cancel", on_click=self.on_cancel_btn_click), + ft.ElevatedButton("Save", on_click=self.submit_client) + ] + ) + self.confirm_dialog = ft.AlertDialog( + modal=True, + title=ft.Text("Delete Client"), + content=ft.Text("Are you sure you want to delete this client?"), + actions=[ + ft.TextButton("Cancel", on_click=lambda e: self.page.close(self.confirm_dialog)), + ft.ElevatedButton("Delete", on_click=self.confirm_delete) + ] + ) + self.client_id_to_delete = None + self.subscription_error = ft.Text("Please subscribe to add new client", color=ft.Colors.RED) + + def load_clients(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/", headers=headers) + if response.status_code == 200: + self.clients = response.json() + self.refresh_clients_list() + except Exception as e: + print("Error loading clients:", e) + + def refresh_clients_list(self): + self.clients_list.controls.clear() + for client in self.clients: + self.clients_list.controls.append( + ft.Container( + content=ft.Row( + [ + ft.Column([ + ft.Text(client["name"], size=16, weight=ft.FontWeight.BOLD), + ft.Text(client["register_number"], size=12, italic=True) + ], expand=True), + ft.Row([ + ft.IconButton(icon=ft.Icons.EDIT, on_click=lambda e, c=client: self.open_dialog(c)), + ft.IconButton(icon=ft.Icons.DELETE, on_click=lambda e, cid=client["id"]: self.delete_client(cid)), + ]) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + padding=10, + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + bgcolor=ft.Colors.BLUE_50, + expand=True + ) + ) + self.page.update() + + def open_dialog(self, client=None): + if client: + self.selected_client_id = client["id"] + self.name.value = client["name"] + self.street_and_number.value = client["address"].split(" %")[0] + self.postal_code.value = client["address"].split(" %")[1] + self.city.value = client["address"].split(" %")[2] + self.region_county.value = client["address"].split(" %")[3] + self.country.value = client["address"].split(" %")[4] + self.register_number.value = client["register_number"] + self.contact_person.value = client["contact_person"] + self.phone.value = client["phone"] + self.email.value = client["email"] + self.vat.value = client['vat'] + else: + self.selected_client_id = None + self.name.value = "" + self.street_and_number.value = "" + self.postal_code.value = "" + self.city.value = "" + self.region_county.value = "" + self.country.value = "" + self.register_number.value = "" + self.contact_person.value = "" + self.phone.value = "" + self.email.value = "" + self.vat.value = "" + + self.page.open(self.dialog) + self.page.update() + + def submit_client(self, e): + user_id = self.page.session.get("user_id") + address = f'{self.street_and_number.value} %{self.postal_code.value} %{self.city.value} %{self.region_county.value} %{self.country.value}' + + client_data = { + "name": self.name.value, + "address": address, + "register_number": self.register_number.value, + "vat": self.vat.value, + "contact_person": self.contact_person.value, + "phone": self.phone.value, + "email": self.email.value, + "user_id": user_id, + } + try: + headers = {"Authorization": f"Bearer {self.page.client_storage.get('token')}"} + if self.selected_client_id: + requests.put(f"{API_BASE_URL}/clients/{self.selected_client_id}", json=client_data, headers=headers) + else: + requests.post(f"{API_BASE_URL}/clients/", json=client_data, headers=headers) + self.page.close(self.dialog) + self.load_clients() + self.page.snack_bar = ft.SnackBar(ft.Text("Client saved successfully.")) + self.page.snack_bar.open = True + self.page.update() + except Exception as e: + print("Error submitting client:", e) + + def on_cancel_btn_click(self, e): + self.page.close(self.dialog) + + def delete_client(self, client_id): + self.client_id_to_delete = client_id + self.page.open(self.confirm_dialog) + self.page.update() + + def confirm_delete(self, e): + try: + headers = {"Authorization": f"Bearer {self.page.client_storage.get('token')}"} + requests.delete(f"{API_BASE_URL}/clients/{self.client_id_to_delete}", headers=headers) + self.page.close(self.confirm_dialog) + self.load_clients() + except Exception as ex: + print("Error deleting client:", ex) + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def build(self): + self.load_clients() + self.subscription = self.get_current_subscription_plan() + self.add_client_btn = ft.ElevatedButton("New Client", icon=ft.Icons.ADD, on_click=lambda e: self.open_dialog()) + self.header = ft.Row( + [ + ft.Text("Clients", size=24, weight=ft.FontWeight.BOLD), + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ) + if self.subscription: + if self.subscription['status'] != 'expired': + self.header.controls.append(self.add_client_btn) + else: + self.header.controls.append(self.subscription_error) + else: + self.header.controls.append(self.subscription_error) + return ft.Container( + content=ft.Column( + [ + self.header, + self.clients_list + ], + expand=True + ), + expand=True, + ) \ No newline at end of file diff --git a/transportmanager/client/pages/dashboard_page.py b/transportmanager/client/pages/dashboard_page.py new file mode 100644 index 0000000..1eca617 --- /dev/null +++ b/transportmanager/client/pages/dashboard_page.py @@ -0,0 +1,495 @@ +import flet as ft +from flet import canvas +import requests +from pages.clients_page import ClientsPage +from pages.transporters_page import TransportersPage +from pages.destinations_page import DestinationsPage +from pages.orders_page import OrdersPage +from pages.report_page import ReportPage +from pages.profile_page import ProfilePage +from pages.subscription_page import Subscription +from datetime import datetime +from pages.admin_page import Admin +from config import API_BASE_URL +from email.utils import parsedate_to_datetime + +class DashboardPage: + def __init__(self, page: ft.Page): + self.page = page + self.placeholder = ft.Container( + expand=True, + padding=ft.padding.only( + top=30, + left=20, + right=20, + bottom=20 + ), + ) + self.all_clients = self.get_all_clients() + self.all_orders = self.get_all_orders() + self.all_transporters = self.get_all_transporters() + self.orders = [] + self.profit = self.get_profit() + self.logo = ft.Image( + src=f"images/{self.page.client_storage.get('logo_filename') or 'truck_logo_black.png'}", + width=60, + height=60, + fit=ft.ImageFit.CONTAIN + ) + self.subscription_status = ft.Text( + "", + color=ft.Colors.RED + ) + self.user = self.get_user() + + # --- helper to parse created_at values coming from API in multiple formats --- + def _parse_dt(self, s): + if not s: + return None + if isinstance(s, datetime): + return s + try: + # First try ISO 8601 (with or without microseconds) + return datetime.fromisoformat(s.replace("Z", "+00:00")) + except Exception: + pass + try: + # Then try RFC 2822 / RFC 1123 (e.g., 'Mon, 18 Aug 2025 19:22:19 GMT') + return parsedate_to_datetime(s) + except Exception: + pass + try: + # Fallback: common ISO without microseconds + return datetime.strptime(s, "%Y-%m-%dT%H:%M:%S") + except Exception: + return None + + def get_user(self): + token = self.page.client_storage.get("token") + if not token: + self.message.value = "Unauthorized: No token" + return + response = requests.get(f"{API_BASE_URL}/profile/", headers={"Authorization": f"Bearer {token}"}) + #print(response.text) + return response.json() if response.status_code == 200 else None + + def on_admin_btn_click(self, e): + admin = Admin(self.page, self) + self.placeholder.content = admin.build() + self.placeholder.update() + + def get_all_transporters(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/transporters/", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading transporters:", e) + + + def get_all_orders(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders/list", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading orders:", e) + + def get_all_clients(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading clients:", e) + + def get_profit(self): + date_today = datetime.now() + month_first_day = date_today.replace(day=1, hour=0, minute=0, second=0, microsecond=0) + #print(month_first_day) + if len(self.all_orders)>0: + for order in self.all_orders: + dt = self._parse_dt(order.get('created_at')) + if dt and dt.date() >= month_first_day.date(): + self.orders.append(order) + all_profit = 0 + for order in self.orders: + profit = round(order['received_price'] - order['paid_price'], 2) + all_profit += profit + return all_profit + else: + return 0 + + + def _build_dashboard_content(self): + self.all_clients = self.get_all_clients() + self.all_orders = self.get_all_orders() + self.all_transporters = self.get_all_transporters() + self.orders = [] + self.profit = self.get_profit() + + summary_cards = ft.Row( + controls=[ + #self._summary_card("Clients", len(self.all_clients), ft.Icons.PEOPLE), + #self._summary_card("Transporters", len(self.all_transporters), ft.Icons.LOCAL_SHIPPING), + self._summary_card("Monthly Orders", len(self.orders), ft.Icons.RECEIPT_LONG), + self._summary_card("Monthly Profit", self.profit, ft.Icons.SHOW_CHART), + ], + spacing=20, + wrap=True + ) + + # Prepare data for BarChart using flet_charts + from collections import defaultdict + daily_orders = defaultdict(int) + for order in self.orders: + try: + dt = self._parse_dt(order.get('created_at')) + if dt: + daily_orders[dt.day] += 1 + except Exception as e: + print("Invalid date:", order['created_at']) + + max_value = max(daily_orders.values(), default=1) + + bar_groups = [] + for day in sorted(daily_orders.keys()): + value = daily_orders[day] + bar_groups.append( + ft.BarChartGroup( + x=day, + bar_rods=[ + ft.BarChartRod( + from_y=0, + to_y=value, + width=20, + color=ft.Colors.BLUE + ) + ] + ) + ) + + chart_1 = ft.Container( + expand=True, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=20, + content=ft.Column([ + ft.Text("Monthly Orders", size=16, weight=ft.FontWeight.BOLD), + ft.BarChart( + bar_groups=bar_groups, + border=ft.border.all(1, ft.Colors.GREY_300), + left_axis=ft.ChartAxis( + labels_size=40, + labels=[ + ft.ChartAxisLabel( + value=i, + label=ft.Text(str(i), size=10) + ) for i in range(0, max_value + 1, max(1, max_value // 5)) + ], + ), + bottom_axis=ft.ChartAxis( + labels=[ + ft.ChartAxisLabel( + value=day, + label=ft.Text(str(day), size=10) + ) for day in sorted(daily_orders.keys()) + ], + ), + tooltip_bgcolor=ft.Colors.with_opacity(0.8, ft.Colors.BLUE), + expand=True, + animate=True + ) + ]) + ) + + # Calculate daily profit + from collections import defaultdict + daily_profit = defaultdict(float) + for order in self.orders: + try: + dt = self._parse_dt(order.get('created_at')) + if dt: + profit = order["received_price"] - order["paid_price"] + daily_profit[dt.day] += profit + except Exception as e: + print("Invalid date in profit chart:", order['created_at']) + + max_profit = max(daily_profit.values(), default=1) + + profit_bar_groups = [] + for day in sorted(daily_profit.keys()): + value = daily_profit[day] + profit_bar_groups.append( + ft.BarChartGroup( + x=day, + bar_rods=[ + ft.BarChartRod( + from_y=0, + to_y=value, + width=20, + color=ft.Colors.GREEN + ) + ] + ) + ) + + chart_2 = ft.Container( + expand=True, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=20, + content=ft.Column([ + ft.Text("Daily Profit", size=16, weight=ft.FontWeight.BOLD), + ft.BarChart( + bar_groups=profit_bar_groups, + border=ft.border.all(1, ft.Colors.GREY_300), + left_axis=ft.ChartAxis( + labels_size=40, + labels=[ + ft.ChartAxisLabel( + value=i, + label=ft.Text(str(i), size=10) + ) for i in range(0, int(max_profit)+1, max(1, int(max_profit)//5)) + ], + ), + bottom_axis=ft.ChartAxis( + labels=[ + ft.ChartAxisLabel( + value=day, + label=ft.Text(str(day), size=10) + ) for day in sorted(daily_profit.keys()) + ], + ), + tooltip_bgcolor=ft.Colors.with_opacity(0.8, ft.Colors.GREEN), + expand=True, + animate=True + ) + ]) + ) + + charts = ft.Row( + controls=[chart_1, chart_2], + expand=True, + spacing=20 + ) + + if self.user: + if self.get_subscription(): + if self.get_subscription()['end_date'] < datetime.today()-3: + self.subscription_status.value = "Your subscription will expire soon. Please Renew!" + self.subscription_status.update() + elif self.get_subscription()['end_date'] > datetime.today(): + self.subscription_status.value = "Your subscription has expired!" + self.subscription_status.update() + return ft.Column( + [ + ft.Row( + [ + summary_cards, + self.subscription_status + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + charts + ], + spacing=20, + expand=True + ) + else: + return ft.Column( + controls=[ + summary_cards, + charts + ], + spacing=20, + expand=True + ) + else: + return ft.Column( + controls=[ + summary_cards, + charts + ], + spacing=20, + expand=True + ) + + def _summary_card(self, title, value, icon): + return ft.Container( + content=ft.Column( + controls=[ + ft.Icon(name=icon, size=30), + ft.Text(value, weight=ft.FontWeight.BOLD, size=18), + ft.Text(title, size=14) + ], + spacing=5, + alignment=ft.MainAxisAlignment.CENTER + ), + width=150, + height=100, + padding=10, + alignment=ft.alignment.center, + border_radius=10, + bgcolor=ft.Colors.BLUE_100 + ) + + def _navigate(self, index): + self.placeholder.content.clean() + if index == 0: + self.placeholder.content = self._build_dashboard_content() + elif index == 1: + client = ClientsPage(self.page, self) + self.placeholder.content = client.build() + elif index == 2: + transporters = TransportersPage(self.page, self) + self.placeholder.content = transporters.build() + elif index == 3: + destinations = DestinationsPage(self.page, self) + self.placeholder.content = destinations.build() + elif index == 4: + orders = OrdersPage(self.page, self) + self.placeholder.content = orders.build() + elif index == 5: + reports = ReportPage(self.page, self) + self.placeholder.content = reports.build() + elif index == 6: + profile = ProfilePage(self.page, self) + self.placeholder.content = profile.build() + elif index == 7: + subscription = Subscription(self.page, self) + self.placeholder.content = subscription.build() + self.placeholder.update() + + def got_to_profile(self, e): + self.placeholder.content.clean() + profile = ProfilePage(self.page, self) + self.placeholder.content = profile.build() + self.placeholder.update() + + def _navigate_or_logout(self, index): + if index == 8: # Index of the "Logout" destination + self._logout() + else: + self._navigate(index) + + def _logout(self): + self.page.client_storage.remove("token") + self.page.session.clear() + self.page.go("/auth") + + def get_subscription(self): + try: + user_id = self.page.session.get("user_id") + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/admin/subscriptions/{user_id}", headers=headers) + return response.json() if response.status_code == 200 else None + except Exception as e: + print("Error loading clients:", e) + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def build(self): + self.status = { + 'active':'Active', + 'cancelled':'Cancelled', + 'expired':'Expired', + 'less_than_5_days':'Less than 5 days' + } + self.subscription = self.get_current_subscription_plan() + + if self.subscription: + self.subscription_status_bottom = ft.Text( + f'{self.status[self.subscription['status']] if self.subscription else "None"}', + size=12, + weight=ft.FontWeight.BOLD, + color=ft.Colors.GREEN if self.subscription['status'] != 'expired' else ft.Colors.RED + ) + else: + self.subscription_status_bottom = ft.Text( + f'{self.status[self.subscription['status']] if self.subscription else "None"}', + size=12, + weight=ft.FontWeight.BOLD, + color=ft.Colors.RED + ) + + nav_rail = ft.NavigationRail( + selected_index=0, + label_type=ft.NavigationRailLabelType.ALL, + on_change=lambda e: self._navigate_or_logout(e.control.selected_index), + destinations=[ + ft.NavigationRailDestination( + icon=ft.Icons.DASHBOARD, label="Dashboard" + ), + ft.NavigationRailDestination( + icon=ft.Icons.PEOPLE, label="Clients" + ), + ft.NavigationRailDestination( + icon=ft.Icons.LOCAL_SHIPPING, label="Transporters" + ), + ft.NavigationRailDestination( + icon=ft.Icons.LOCATION_ON, label="Address" + ), + ft.NavigationRailDestination( + icon=ft.Icons.RECEIPT_LONG, label="Orders" + ), + ft.NavigationRailDestination( + icon=ft.Icons.ASSESSMENT, label="Reports" + ), + ft.NavigationRailDestination( + icon=ft.Icons.MANAGE_ACCOUNTS, label="Profile" + ), + ft.NavigationRailDestination( + icon=ft.Icons.AUTORENEW, label="Subscription" + ), + ft.NavigationRailDestination( + icon=ft.Icons.LOGOUT, label="Logout" + ) + ], + leading=ft.Container( + content=ft.Column( + controls=[self.logo], + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + spacing=5, + ), + padding=10 + ), + #bgcolor = ft.Colors.BLUE, + + trailing = ft.Column( + [ + ft.Text( + f'\nSubsctiption:', + size=12, + ), + self.subscription_status_bottom + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ) + ) + + self.placeholder.content = self._build_dashboard_content() + + return ft.Row( + controls=[ + nav_rail, + ft.VerticalDivider(), + self.placeholder + ], + expand=True + ) + + \ No newline at end of file diff --git a/transportmanager/client/pages/destinations_page.py b/transportmanager/client/pages/destinations_page.py new file mode 100644 index 0000000..4292a3c --- /dev/null +++ b/transportmanager/client/pages/destinations_page.py @@ -0,0 +1,233 @@ +import flet as ft +import requests +from config import API_BASE_URL + +class DestinationsPage: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + self.destinations = [] + self.destinations_column = ft.Column(expand=True, spacing=10, scroll=ft.ScrollMode.ADAPTIVE,) + self.dialog = None + self.delete_alert = None + self.current_edit = None + self.subscription_error = ft.Text("Please subscribe to add new destination", color=ft.Colors.RED) + + def refresh(self): + self.destinations_column.controls.clear() + token = self.page.client_storage.get("token") + if not token: + print("Missing token.") + return + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/destinations/", headers=headers) + if response.status_code == 200: + self.destinations = response.json() + for destination in self.destinations: + street_and_number = destination["address"].split(" %")[0] + postal_code = destination["address"].split(" %")[1] + city = destination["address"].split(" %")[2] + region_county = destination["address"].split(" %")[3] + country = destination["address"].split(" %")[4] + address = '' + if len(street_and_number) > 0: + address += street_and_number +', ' + if len(postal_code) > 0: + address += postal_code +', ' + if len(city) > 0: + address += city +', ' + if len(region_county) > 0: + address += region_county +', ' + if len(country) > 0: + address += country + self.destinations_column.controls.append( + ft.Container( + content=ft.Row([ + ft.Column( + [ + ft.Text(destination["name"], weight = ft.FontWeight.BOLD), + ft.Text(address) + ] + ), + ft.Row( + [ + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click= lambda e, d=destination: self.open_location(d)), + ft.IconButton(icon=ft.Icons.EDIT, on_click=lambda e, d=destination: self.open_dialog(d)), + ft.IconButton(icon=ft.Icons.DELETE, on_click=lambda e, d=destination: self.confirm_delete(d)), + ] + ) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN), + padding=10, + bgcolor=ft.Colors.BLUE_50, + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + ) + ) + self.page.update() + + def open_dialog(self, destination=None): + self.current_edit = destination + name = ft.TextField( + label="Name", + value=destination["name"] if destination else "", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + street_and_number = ft.TextField( + label="Street and number", + value=destination["address"].split("%")[0] if destination else "", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + postal_code = ft.TextField( + label="Postal code", + value=destination["address"].split("%")[1] if destination else "", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + city = ft.TextField( + label="City", + value=destination["address"].split("%")[2] if destination else "", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + region_county = ft.TextField( + label="Region / County", + value=destination["address"].split("%")[3] if destination else "", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + country = ft.TextField( + label="Country", + value=destination["address"].split("%")[4] if destination else "", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + def save_action(e): + address = f'{street_and_number.value} %{postal_code.value} %{city.value} %{region_county.value} %{country.value}' + self.save_destination(name.value, address) + self.dialog = ft.AlertDialog( + modal=True, + title=ft.Text("Edit Address" if destination else "Add Address"), + content=ft.Column( + [ + name, + street_and_number, + postal_code, + city, + region_county, + country + ], + width=400, + height=400 + ), + actions=[ + ft.TextButton("Cancel", on_click=lambda e: self.page.close(self.dialog)), + ft.ElevatedButton( + "Save", + on_click=save_action + ) + ], + ) + self.page.dialog = self.dialog + self.page.open(self.dialog) + + def save_destination(self, name, address): + token = self.page.client_storage.get("token") + user_id = self.page.session.get("user_id") + if not token or not user_id: + print("Missing token or user_id.") + return + headers = {"Authorization": f"Bearer {token}"} + data = {"name": name, "address": address, "user_id": user_id} + if self.current_edit: + url = f"{API_BASE_URL}/destinations/{self.current_edit['id']}" + requests.put(url, json=data, headers=headers) + else: + requests.post(f"{API_BASE_URL}/destinations/", json=data, headers=headers) + self.page.close(self.dialog) + self.refresh() + + def confirm_delete(self, destination): + def delete_action(e): + self.delete_destination(destination["id"]) + self.delete_alert = ft.AlertDialog( + modal=True, + title=ft.Text("Confirm Deletion"), + content=ft.Text(f"Are you sure you want to delete destination: {destination['name']}?"), + actions=[ + ft.TextButton("Cancel", on_click=lambda e: self.page.close(self.delete_alert)), + ft.TextButton("Delete", on_click=delete_action) + ] + ) + self.page.dialog = self.delete_alert + self.page.open(self.delete_alert) + + def delete_destination(self, id): + token = self.page.client_storage.get("token") + if not token: + print("Missing token.") + return + headers = {"Authorization": f"Bearer {token}"} + requests.delete(f"{API_BASE_URL}/destinations/{id}", headers=headers) + self.page.close(self.delete_alert) + self.refresh() + + def open_location(self, destination): + query = destination["address"].replace(" ", "+").replace(" %", "").replace(",", "") + maps_url = f"https://www.google.com/maps/search/?api=1&query={query}" + self.page.launch_url(maps_url) + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def build(self): + self.refresh() + self.add_destination_btn = ft.ElevatedButton("Add Destination", icon=ft.Icons.ADD, on_click=lambda e: self.open_dialog()) + self.headers = ft.Row([ + ft.Text("Adderess", size=24, weight=ft.FontWeight.BOLD), + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ) + subscription = self.get_current_subscription_plan() + if subscription: + if subscription['status'] != 'expired': + self.headers.controls.append(self.add_destination_btn) + else: + self.headers.controls.append(self.subscription_error) + else: + self.headers.controls.append(self.subscription_error) + return ft.Column( + [ + self.headers, + self.destinations_column + ], + expand=True, + ) \ No newline at end of file diff --git a/transportmanager/client/pages/forgot_password_page.py b/transportmanager/client/pages/forgot_password_page.py new file mode 100644 index 0000000..ee57b0f --- /dev/null +++ b/transportmanager/client/pages/forgot_password_page.py @@ -0,0 +1,62 @@ +import flet as ft +import re +import requests +from config import API_BASE_URL + +class ForgotPassword: + def __init__(self, page: ft.Page, auth, login): + self.page = page + self.auth = auth + self.login = login + self.email = ft.TextField(label="Email") + self.error = ft.Text("", color=ft.Colors.RED) + self.success = ft.Text("", color=ft.Colors.GREEN) + self.back_button = ft.TextButton(text="Back to Login", on_click=self.on_back_clicked) + + def on_submit(self, e): + email_value = self.email.value.strip() + email_regex = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$" + + if not re.match(email_regex, email_value): + self.error.value = "Please enter a valid email address." + self.success.value = "" + else: + try: + response = requests.post( + f"{API_BASE_URL}/auth/forgot_password", + json={"email": email_value}, + timeout=10 + ) + if response.status_code == 200: + self.success.value = "If the email exists, you will receive a reset link shortly." + self.error.value = "" + else: + self.error.value = "Server error. Please try again later." + self.success.value = "" + except Exception as ex: + self.error.value = "Connection error. Please check your internet." + self.success.value = "" + print(ex) + + self.page.update() + + def on_back_clicked(self, e): + self.auth.placeholder.content.clean() + self.auth.placeholder.content = self.login.build() + self.auth.placeholder.update() + + def build(self): + return ft.Column( + [ + ft.Text("Forgot Password", size=30, weight="bold"), + self.email, + ft.ElevatedButton("Reset Password", on_click=self.on_submit, width=150), + self.error, + self.success, + self.back_button, + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + alignment=ft.MainAxisAlignment.CENTER, + spacing=20, + width=350 + ) \ No newline at end of file diff --git a/transportmanager/client/pages/login_page.py b/transportmanager/client/pages/login_page.py new file mode 100644 index 0000000..7efb82f --- /dev/null +++ b/transportmanager/client/pages/login_page.py @@ -0,0 +1,105 @@ +import flet as ft +from pages.register_page import Register +from pages.forgot_password_page import ForgotPassword +from pages.two_factor_page import TwoFactorAuth +import requests +from config import API_BASE_URL + +class Login: + def __init__(self, page: ft.Page, auth): + self.page = page + self.auth = auth + self.email = ft.TextField(label="Email") + self.passwd = ft.TextField(label="Password", password=True, can_reveal_password=True) + self.error_message = ft.Text("", color=ft.Colors.RED) + + def on_login_click(self, e): + self.error_message.value = "" + self.error_message.update() + self.page.update() + + email = self.email.value.strip() + password = self.passwd.value.strip() + + if not email or not password: + self.error_message.value = "Please enter both email and password." + self.error_message.update() + return + + # self.auth.placeholder.content.clean() + # two_factor = TwoFactorAuth(self.page, email, self, self.auth) + # self.auth.placeholder.content = two_factor.build() + # self.auth.placeholder.update() + + try: + response = requests.post( + f"{API_BASE_URL}/auth/login", + json={"email": email, "password": password}, + timeout=10 + ) + + if response.status_code == 200: + user_info = requests.get( + f"{API_BASE_URL}/auth/me", + headers={"Authorization": f"Bearer {response.json().get('access_token', '')}"} + ) + if user_info.status_code == 200: + logo_filename = user_info.json().get("logo_filename", "") + if logo_filename: + self.page.client_storage.set("custom_logo", logo_filename) + + self.auth.placeholder.content.clean() + two_factor = TwoFactorAuth(self.page, email, self, self.auth) + self.auth.placeholder.content = two_factor.build() + self.auth.placeholder.update() + + else: + self.error_message.value = response.json().get("error", "Login failed") + self.error_message.update() + + except Exception as ex: + self.error_message.value = f"Login error: {str(ex)}" + self.error_message.update() + + def on_forgot_btn_click(self, e): + self.auth.placeholder.content.clean() + forgot_passwd = ForgotPassword(self.page, self.auth, self) + self.auth.placeholder.content = forgot_passwd.build() + self.auth.placeholder.update() + + def on_register_btn_click(self, e): + print('Go to register') + register = Register(self.page, self.auth, self) + self.auth.placeholder.content.clean() + self.auth.placeholder.content = register.build() + self.auth.placeholder.update() + + def build(self): + return ft.Column( + [ + ft.Text( + "Login", + size=30, + weight="bold" + ), + self.email, + self.passwd, + ft.ElevatedButton( + "Login", + width = 150, + on_click=self.on_login_click + ), + self.error_message, + ft.Row( + [ + ft.TextButton("Forgot Password?", on_click=self.on_forgot_btn_click), + ft.TextButton("Register", on_click=self.on_register_btn_click) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ) + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + alignment=ft.MainAxisAlignment.CENTER, + spacing=20, + width=350 + ) \ No newline at end of file diff --git a/transportmanager/client/pages/orders_edit_page.py b/transportmanager/client/pages/orders_edit_page.py new file mode 100644 index 0000000..6cc36a4 --- /dev/null +++ b/transportmanager/client/pages/orders_edit_page.py @@ -0,0 +1,1375 @@ +import flet as ft +import datetime +import requests +import time +from pages.view_page import ViewPage +#from pages.archive_page import ArchivePage +from config import API_BASE_URL + +class OrdersEditPage: + def __init__(self, page: ft.Page, dashbaord, archive_page): + self.page = page + self.dashboard = dashbaord + self.archive_page = archive_page + self.order_id = self.page.session.get('order_id') + self.order = self.get_order() + print('Edit order') + #print(self.order_id) + #print(self.order) + #print(type(self.order_id)) + + + self.selected_client_id = self.order['client_id'] + + self.all_clients = self.get_all_clients() + self.filtered_clients = self.all_clients.copy() + self.client_search_field = ft.TextField(label="Search Clients...", on_change=self.on_searching_client) + self.client_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for client in self.all_clients + ] + ) + + for client in self.all_clients: + if client["id"] == self.selected_client_id: + self.client_search_field.value = client['name'] + + self.all_transporters = self.get_all_transporters() + self.filtered_transporters = self.all_transporters.copy() + self.selected_transporter_id = self.order['transporter_id'] + self.transporter_search_field = ft.TextField(label="Search Transporters...", on_change=self.on_searching_transporter) + self.transporter_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ft.Text(transporter["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if transporter["id"] == self.selected_transporter_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=transporter: self.on_transporter_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for transporter in self.all_transporters + ] + ) + + for transporter in self.all_transporters: + if transporter["id"] == self.selected_transporter_id: + self.transporter_search_field.value = transporter['name'] + + self.all_addresses = self.get_all_addresses() + self.selected_loading_address_id = None + self.filtered_addresses = self.all_addresses.copy() + self.loading_address_search_field = ft.TextField(label="Search Loading Address...", on_change=self.on_searching_loading_address) + self.loading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_loading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.loading_informations = ft.TextField( + label="Loading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.loading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.loading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.loading = ft.ListView( + spacing=10, + ) + + self.selected_unloading_address_id = None + self.filtered_addresses_ul = self.all_addresses.copy() + self.unloading_address_search_field = ft.TextField(label="Search Unloading Address...", on_change=self.on_searching_unloading_address) + self.unloading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_unloading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.unloading_informations = ft.TextField( + label="Unloading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.unloading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.unloading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.unloading = ft.ListView( + spacing=10, + ) + + self.ldm_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""), + value=self.order['ldb_quantity'] + ) + + self.kg_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""), + value=self.order['kg_quantity'] + ) + + self.track_reg_number = ft.TextField( + label="Track Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value=self.order['track_reg_number'] + ) + + self.trailer_reg_number = ft.TextField( + label="Trailer Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value=self.order['trailer_reg_number'] + ) + + self.received_price = ft.TextField( + label="Price Received - visible only to you!", + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""), + value=self.order['received_price'] + ) + + self.paid_price = ft.TextField( + label="Price Paid", + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""), + value = self.order['paid_price'] + ) + + self.first_order_number = self.page.session.get("first_order_number") + last_orders = self.load_orders() + if len(last_orders) == 0: + number = f'First Order: {self.first_order_number}' + else: + ln = last_orders[0]['order_number'] + #print(last_orders) + number = f'Last used: {ln}' + self.order_number = ft.TextField( + label=f"{number}", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value = self.order['order_number'] + ) + + self.error_message = ft.Text(color = ft.Colors.RED) + + self.loading_query = [] + self.loading_error_message = ft.Text(color= ft.Colors.RED) + + self.unloading_query = [] + self.unloading_error_message = ft.Text(color= ft.Colors.RED) + + self.product_description= ft.TextField( + label="Description", + multiline=True, + min_lines=3, + max_lines=5, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value=self.order['products_description'] + ) + + #add loading points + self.init_loading_query = self.order['loading_points'] + addresses = [] + for init_addr in self.init_loading_query: + for all_addr in self.all_addresses: + if init_addr['destination_id'] == all_addr['id']: + adr = '' + street_and_number = all_addr["address"].split(" %")[0] + postal_code = all_addr["address"].split(" %")[1] + city = all_addr["address"].split(" %")[2] + region_county = all_addr["address"].split(" %")[3] + country = all_addr["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + address = { + 'loading_address_id': init_addr['destination_id'], + 'loading_address_name': all_addr['name'], + 'loading_address': adr, + 'loading_date': init_addr['point_data'], + 'loading_hour': init_addr['point_hour'], + 'loading_informatins': init_addr['informatins'] + } + addresses.append(address) + break + self.loading_query = addresses + self.loading.controls = self.create_loading_list(addresses, self.on_delete_loading_address_btn_click) + + #add unloading points + self.init_unloading_query = self.order['unloading_points'] + addresses = [] + for init_addr in self.init_unloading_query: + for all_addr in self.all_addresses: + if init_addr['destination_id'] == all_addr['id']: + adr = '' + street_and_number = all_addr["address"].split(" %")[0] + postal_code = all_addr["address"].split(" %")[1] + city = all_addr["address"].split(" %")[2] + region_county = all_addr["address"].split(" %")[3] + country = all_addr["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + address = { + 'unloading_address_id': init_addr['destination_id'], + 'unloading_address_name': all_addr['name'], + 'unloading_address': adr, + 'unloading_date': init_addr['point_data'], + 'unloading_hour': init_addr['point_hour'], + 'unloading_informatins': init_addr['informatins'] + } + addresses.append(address) + break + self.unloading_query = addresses + self.unloading.controls = self.create_unloading_list(addresses, self.on_delete_unloading_address_btn_click) + + def get_order(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + type(self.order_id) + response = requests.get(f"{API_BASE_URL}/orders/{self.order_id}", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading orders:", e) + + def load_orders(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders/list", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading orders:", e) + + def on_location_btn_click(self, destination): + query = destination["address"].replace(", ", "+") + maps_url = f"https://www.google.com/maps/search/?api=1&query={query}" + self.page.launch_url(maps_url) + + def on_searching_client(self, e): + query = e.control.value.lower() + self.filtered_clients = [client for client in self.all_clients if query in client["name"].lower()] + self.update_client_list(self.filtered_clients) + + def init_search_client(self): + query = self.client_search_field.value.lower() + self.filtered_clients = [client for client in self.all_clients if query in client["name"].lower()] + self.client_results.controls.clear() + for client in self.filtered_clients: + self.client_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + + def update_client_list(self, clients): + self.client_results.controls.clear() + for client in clients: + self.client_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.client_results.update() + + def on_client_selected(self, e, client): + self.selected_client_id = client["id"] + self.client_search_field.value = client["name"] + self.client_search_field.update() + self.update_client_list(self.filtered_clients) + + def on_searching_transporter(self, e): + query = e.control.value.lower() + self.filtered_transporters = [t for t in self.all_transporters if query in t["name"].lower()] + self.update_transporter_list(self.filtered_transporters) + + def init_search_transporter(self): + query = self.transporter_search_field.value.lower() + self.filtered_transporters = [transporter for transporter in self.all_transporters if query in transporter["name"].lower()] + self.transporter_results.controls.clear() + for transporter in self.filtered_transporters: + self.transporter_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(transporter["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if transporter["id"] == self.selected_transporter_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=transporter: self.on_transporter_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + + def update_transporter_list(self, transporters): + self.transporter_results.controls.clear() + for transporter in transporters: + self.transporter_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(transporter["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if transporter["id"] == self.selected_transporter_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=transporter: self.on_transporter_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.transporter_results.update() + + def on_transporter_selected(self, e, transporter): + self.selected_transporter_id = transporter["id"] + self.transporter_search_field.value = transporter["name"] + self.transporter_search_field.update() + self.update_transporter_list(self.filtered_transporters) + + def on_searching_loading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_loading_addresses_list(self.filtered_addresses) + + def update_loading_addresses_list(self, addresses): + self.loading_address_results.controls.clear() + for address in addresses: + self.loading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_loading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_loading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.loading_address_results.update() + + def on_loading_address_selected(self, e, address): + self.selected_loading_address_id = address["id"] + self.loading_address_search_field.value = address["name"] + self.loading_address_search_field.update() + self.update_loading_addresses_list(self.filtered_addresses) + + def on_loading_date_click(self, e): + self.loading_date.value = e.control.value.strftime('%m/%d/%Y') + self.loading_date.update() + #print(self.loading_date.value) + + def on_loading_hour_click(self, e): + if len(self.loading_hour.value) != None and len(self.loading_hour.value)==0: + self.loading_hour.value = str(e.control.value) + else: + self.loading_hour.value += f' - {e.control.value}' + self.loading_hour.update() + #print(self.loading_hour.value) + + def on_reset_loading_hour_btn_click(self, e): + self.loading_hour.value = None + self.loading_hour.update() + + def add_loading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_loading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_loading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + #print(adr) + #print(_address['address']) + + loading_informatins = self.loading_informations.value + date = self.loading_date.value + hour = self.loading_hour.value + + #create loading list + address = { + 'loading_address_id': self.selected_loading_address_id, + 'loading_address_name': name, + 'loading_address': adr, + 'loading_informatins': loading_informatins, + 'loading_date': date, + 'loading_hour': hour + } + #print(address) + + if self.selected_loading_address_id == None: + self.loading_error_message.value = "Please select loading point!" + self.loading_error_message.update() + return + if self.loading_informations.value == None or len(self.loading_informations.value) == 0: + self.loading_error_message.value = "Add loading informations!" + self.loading_error_message.update() + return + if self.loading_date.value == None or len(str(self.loading_date.value)) == 0: + self.loading_error_message.value = "Add loading date!" + self.loading_error_message.update() + return + # if self.loading_hour.value == None or len(str(self.loading_hour.value)) == 0: + # self.loading_error_message.value = "Add loading hour!" + # self.loading_error_message.update() + # return + + if self.selected_loading_address_id: + self.loading_query.append(address) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + #reset to default + self.selected_loading_address_id = None + self.loading_informations.value = None + self.loading_informations.update() + self.loading_date.value = None + self.loading_date.update() + self.loading_hour.value = None + self.loading_hour.update() + self.loading_error_message.value = None + self.loading_error_message.update() + else: + self.loading_error_message.value = "All fields of the loading address are required." + self.loading_error_message.update() + + def on_searching_unloading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses_ul = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def update_unloading_addresses_list(self, addresses): + self.unloading_address_results.controls.clear() + for address in addresses: + self.unloading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_unloading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_unloading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.unloading_address_results.update() + + def on_unloading_address_selected(self, e, address): + self.selected_unloading_address_id = address["id"] + self.unloading_address_search_field.value = address["name"] + self.unloading_address_search_field.update() + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def on_unloading_date_click(self, e): + self.unloading_date.value = e.control.value.strftime('%m/%d/%Y') + self.unloading_date.update() + + def on_unloading_hour_click(self, e): + if len(self.unloading_hour.value) != None and len(self.unloading_hour.value)==0: + self.unloading_hour.value = str(e.control.value) + else: + self.unloading_hour.value += f' - {e.control.value}' + self.unloading_hour.update() + + def on_reset_unloading_hour_btn_click(self, e): + self.unloading_hour.value = None + self.unloading_hour.update() + + def add_unloading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_unloading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_unloading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + unloading_informatins = self.unloading_informations.value + date = self.unloading_date.value + hour = self.unloading_hour.value + address = { + 'unloading_address_id': self.selected_unloading_address_id, + 'unloading_address_name': name, + 'unloading_address': adr, + 'unloading_informatins': unloading_informatins, + 'unloading_date': date, + 'unloading_hour': hour + } + + if self.selected_unloading_address_id == None: + self.unloading_error_message.value = "Please select unloading point!" + self.unloading_error_message.update() + return + if self.unloading_informations.value == None or len(self.unloading_informations.value) == 0: + self.unloading_error_message.value = "Add unloading informations!" + self.unloading_error_message.update() + return + if self.unloading_date.value == None or len(str(self.unloading_date.value)) == 0: + self.unloading_error_message.value = "Add unloading date!" + self.unloading_error_message.update() + return + # if self.unloading_hour.value == None or len(str(self.unloading_hour.value)) == 0: + # self.unloading_error_message.value = "Add unloading hour!" + # self.unloading_error_message.update() + # return + + if self.selected_unloading_address_id: + self.unloading_query.append(address) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + #reset to default + self.selected_unloading_address_id = None + self.unloading_informations.value = None + self.unloading_informations.update() + self.unloading_date.value = None + self.unloading_date.update() + self.unloading_hour.value = None + self.unloading_hour.update() + self.unloading_error_message.value = None + self.unloading_error_message.update() + else: + self.unloading_error_message.value = "All fields of the unloading address are required." + self.unloading_error_message.update() + + def get_all_clients(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch clients:", response.status_code) + return [] + + def get_all_transporters(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + user_id = self.page.session.get("user_id") + response = requests.get(f"{API_BASE_URL}/transporters/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch transporters:", response.status_code) + return [] + + def get_all_addresses(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/destinations/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch addresses:", response.status_code) + return [] + + def create_loading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['loading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['loading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['loading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['loading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_loading_address_btn_click(self, item): + self.loading_query.remove(item) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + def create_unloading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['unloading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['unloading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['unloading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['unloading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_unloading_address_btn_click(self, item): + #print(item) + #print(self.unloading_query) + self.unloading_query.remove(item) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + def on_save_btn_click(self, e): + + loading_addresses = [] + unloading_addresses = [] + for laddr in self.loading_query: + laddr_copy = laddr.copy() + if isinstance(laddr_copy.get("loading_hour"), datetime.time): + laddr_copy["loading_hour"] = laddr_copy["loading_hour"].strftime("%H:%M") + loading_addresses.append(laddr_copy) + + for uaddr in self.unloading_query: + uaddr_copy = uaddr.copy() + if isinstance(uaddr_copy.get("unloading_hour"), datetime.time): + uaddr_copy["unloading_hour"] = uaddr_copy["unloading_hour"].strftime("%H:%M") + unloading_addresses.append(uaddr_copy) + + saved_data = { + 'order_number': self.order_number.value, + 'client_id': self.selected_client_id, + 'transporter_id': self.selected_transporter_id, + 'products_description': self.product_description.value, + 'ldb_quantity': self.ldm_quantity.value, + 'kg_quantity': self.kg_quantity.value, + 'track_reg_number': self.track_reg_number.value, + 'trailer_reg_number': self.trailer_reg_number.value, + 'received_price': self.received_price.value, + 'paid_price': self.paid_price.value, + 'loading_addresses': loading_addresses, + 'unloading_addresses': unloading_addresses + } + #print(saved_data) + if self.order_number.value == None or len(self.order_number.value)==0: + self.error_message.value = "Order number is mandatory!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.selected_client_id == None: + self.error_message.value = "Please select the client!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.selected_transporter_id == None: + self.error_message.value = "Please select the transporter!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.product_description.value == None or len(self.product_description.value)==0: + self.error_message.value = "Please insert product description!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + # if self.ldm_quantity.value == None or len(self.ldm_quantity.value)==0: + # self.error_message.value = "Please insert LDM!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + # if self.kg_quantity.value == None or len(self.kg_quantity.value)==0: + # self.error_message.value = "Please insert KG!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + if self.track_reg_number.value == None or len(self.track_reg_number.value)==0: + self.error_message.value = "Please insert Track Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.trailer_reg_number.value == None or len(self.trailer_reg_number.value)==0: + self.error_message.value = "Please insert Trailer Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.received_price.value == None or len(str(self.received_price.value))==0: + self.error_message.value = "Please insert Price received!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.paid_price.value == None or len(str(self.paid_price.value))==0: + self.error_message.value = "Please insert Price paid!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(loading_addresses) == 0: + self.error_message.value = "Please add loading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(unloading_addresses) == 0: + self.error_message.value = "Please add unloading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + + # --- POST request to save the order in the database --- + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + user_id = self.page.session.get("user_id") + saved_data["user_id"] = user_id + user = self.get_user_data() + saved_data['terms'] = user['terms'] + + try: + response = requests.put(f"{API_BASE_URL}/orders/{self.order_id}", json=saved_data, headers=headers) + if response.status_code == 200: + self.error_message.value = "Order saved successfully, Please wait!" + self.error_message.color = ft.Colors.GREEN + self.error_message.update() + order_id = response.json()['order_id'] + time.sleep(3) + pdf_name = f'order_{user_id}_{saved_data['order_number']}.pdf' + view_page = ViewPage(self.page, pdf_name, self, self.dashboard, order_id) + self.dashboard.placeholder.content = view_page.build() + self.dashboard.placeholder.update() + else: + self.error_message.value = f"Failed to save order: {response.status_code} - {response.text}" + self.error_message.update() + except Exception as ex: + self.error_message.value = f"Error: {str(ex)}" + self.error_message.update() + + def get_user_data(self): + try: + token = self.page.client_storage.get("token") + if not token: + self.message.value = "Unauthorized: No token" + return + response = requests.get(f"{API_BASE_URL}/profile", headers={"Authorization": f"Bearer {token}"}) + if response.status_code == 200: + user_data = response.json() + return user_data + return None + except Exception as e: + return None + + def on_archive_btn_click(self, e): + #archive_page = ArchivePage(self.page, self.dashboard, self) + self.dashboard.placeholder.content = self.archive_page.build() + self.dashboard.placeholder.update() + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + return None + + def build(self): + self.save_btn = ft.FilledButton( + "Save and Generate", + width=200, + on_click=self.on_save_btn_click, + ) + self.save_row = ft.Row([],alignment=ft.MainAxisAlignment.CENTER) + if self.get_current_subscription_plan()['status'] != 'expired': + self.save_row.controls.append(self.save_btn) + self.init_search_client() + self.init_search_transporter() + return ft.Container( + ft.Column( + [ + ft.Row( + [ + ft.Column( + [ + ft.Text('Edit Order', size=24, weight=ft.FontWeight.BOLD), + ft.Row( + [ + ft.Text("Number", size=18, weight=ft.FontWeight.BOLD), + self.order_number + ] + ) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.ElevatedButton("Archive", on_click=self.on_archive_btn_click, width=150) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + ft.Column( + [ + ft.Text("Client", size=18, weight=ft.FontWeight.BOLD), + self.client_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.client_results], + scroll=ft.ScrollMode.ADAPTIVE, + ), + #clip_behavior=ft.ClipBehavior., + expand=True, + padding=0, + ), + height=250 #if len(self.filtered_clients) > 4 else None, + ) + ], + expand=5 + ), + ft.Column( + [ + ft.Text("Transporter", size=18, weight=ft.FontWeight.BOLD), + self.transporter_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.transporter_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 #if len(self.filtered_transporters) > 4 else None, + ) + ], + expand=5 + ), + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Row( + [ + ft.Text("Product Details", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Container( + content = self.product_description, + expand=True + ), + ft.Row( + [ + ft.Text( + value="LDM" + ), + self.ldm_quantity, + ft.Text(" "), + ft.Text( + value="KG" + ), + self.kg_quantity, + ], + expand=True + ) + ], + expand=True, + + ) + ], + expand=5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Truck / Trailer Info", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + self.track_reg_number, + self.trailer_reg_number + ], + expand=True + ) + ], + expand=2.5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Price", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + self.received_price, + self.paid_price + ], + expand=2.5 + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Text("Loading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.loading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.loading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.loading_informations, + expand = True + ), + ft.Row( + [ + self.loading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_loading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.loading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_loading_hour_btn_click + ), + ], + expand=True + ), + self.loading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Loading Point", + on_click=self.add_loading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.loading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Text("Unloading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.unloading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.unloading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses_ul) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.unloading_informations, + expand=True + ), + ft.Row( + [ + self.unloading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_unloading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.unloading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_unloading_hour_btn_click + ), + ], + expand=True + ), + self.unloading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Unloading Point", + on_click=self.add_unloading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.unloading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + self.error_message, + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.save_row, + ], + expand=True, + scroll=ft.ScrollMode.ADAPTIVE, + spacing=20 + ) + ) + \ No newline at end of file diff --git a/transportmanager/client/pages/orders_in_page.py b/transportmanager/client/pages/orders_in_page.py new file mode 100644 index 0000000..c4e0e8d --- /dev/null +++ b/transportmanager/client/pages/orders_in_page.py @@ -0,0 +1,1105 @@ +import flet as ft +import datetime +import requests +import time +from pages.archive_in_page import ArchiveInPage +from config import API_BASE_URL + +class OrdersInPage: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + + self.selected_client_id = None + + self.all_clients = self.get_all_clients() + self.filtered_clients = self.all_clients.copy() + self.client_search_field = ft.TextField(label="Search Clients...", on_change=self.on_searching_client) + self.client_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for client in self.all_clients + ] + ) + + self.all_addresses = self.get_all_addresses() + self.selected_loading_address_id = None + self.filtered_addresses = self.all_addresses.copy() + self.loading_address_search_field = ft.TextField(label="Search Loading Address...", on_change=self.on_searching_loading_address) + self.loading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_loading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.loading_informations = ft.TextField( + label="Loading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.loading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.loading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.loading = ft.ListView( + spacing=10, + ) + + self.selected_unloading_address_id = None + self.filtered_addresses_ul = self.all_addresses.copy() + self.unloading_address_search_field = ft.TextField(label="Search Unloading Address...", on_change=self.on_searching_unloading_address) + self.unloading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_unloading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.unloading_informations = ft.TextField( + label="Unloading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.unloading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.unloading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.unloading = ft.ListView( + spacing=10, + ) + + self.ldm_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string="") + ) + + self.kg_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string="") + ) + + self.track_reg_number = ft.TextField( + label="Track Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.trailer_reg_number = ft.TextField( + label="Trailer Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.received_price = ft.TextField( + label="Price Received - visible only to you!", + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string="") + ) + + self.error_message = ft.Text(color = ft.Colors.RED) + + self.loading_query = [] + self.loading_error_message = ft.Text(color= ft.Colors.RED) + + self.unloading_query = [] + self.unloading_error_message = ft.Text(color= ft.Colors.RED) + + self.product_description= ft.TextField( + label="Description", + multiline=True, + min_lines=3, + max_lines=5, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.order_number = ft.TextField( + label="Order Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + def on_location_btn_click(self, destination): + query = destination["address"].replace(", ", "+") + maps_url = f"https://www.google.com/maps/search/?api=1&query={query}" + self.page.launch_url(maps_url) + + def on_searching_client(self, e): + query = e.control.value.lower() + self.filtered_clients = [client for client in self.all_clients if query in client["name"].lower()] + self.update_client_list(self.filtered_clients) + + def update_client_list(self, clients): + self.client_results.controls.clear() + for client in clients: + self.client_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.client_results.update() + + def on_client_selected(self, e, client): + self.selected_client_id = client["id"] + self.client_search_field.value = client["name"] + self.client_search_field.update() + self.update_client_list(self.filtered_clients) + + def on_searching_loading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_loading_addresses_list(self.filtered_addresses) + + def update_loading_addresses_list(self, addresses): + self.loading_address_results.controls.clear() + for address in addresses: + self.loading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_loading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_loading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.loading_address_results.update() + + def on_loading_address_selected(self, e, address): + self.selected_loading_address_id = address["id"] + self.loading_address_search_field.value = address["name"] + self.loading_address_search_field.update() + self.update_loading_addresses_list(self.filtered_addresses) + + def on_loading_date_click(self, e): + self.loading_date.value = e.control.value.strftime('%m/%d/%Y') + self.loading_date.update() + #print(self.loading_date.value) + + def on_loading_hour_click(self, e): + if len(self.loading_hour.value) != None and len(self.loading_hour.value)==0: + self.loading_hour.value = str(e.control.value) + else: + self.loading_hour.value += f' - {e.control.value}' + self.loading_hour.update() + #print(self.loading_hour.value) + + def on_reset_loading_hour_btn_click(self, e): + self.loading_hour.value = None + self.loading_hour.update() + + def add_loading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_loading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_loading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + #print(adr) + #print(_address['address']) + + loading_informatins = self.loading_informations.value + date = self.loading_date.value + hour = self.loading_hour.value + + #create loading list + address = { + 'loading_address_id': self.selected_loading_address_id, + 'loading_address_name': name, + 'loading_address': adr, + 'loading_informatins': loading_informatins, + 'loading_date': date, + 'loading_hour': hour + } + #print(address) + + if self.selected_loading_address_id == None: + self.loading_error_message.value = "Please select loading point!" + self.loading_error_message.update() + return + if self.loading_informations.value == None or len(self.loading_informations.value) == 0: + self.loading_error_message.value = "Add loading informations!" + self.loading_error_message.update() + return + if self.loading_date.value == None or len(str(self.loading_date.value)) == 0: + self.loading_error_message.value = "Add loading date!" + self.loading_error_message.update() + return + # if self.loading_hour.value == None or len(str(self.loading_hour.value)) == 0: + # self.loading_error_message.value = "Add loading hour!" + # self.loading_error_message.update() + # return + + if self.selected_loading_address_id: + self.loading_query.append(address) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + #reset to default + self.selected_loading_address_id = None + self.loading_informations.value = None + self.loading_informations.update() + self.loading_date.value = None + self.loading_date.update() + self.loading_hour.value = None + self.loading_hour.update() + self.loading_error_message.value = None + self.loading_error_message.update() + else: + self.loading_error_message.value = "All fields of the loading address are required." + self.loading_error_message.update() + + def on_searching_unloading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses_ul = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def update_unloading_addresses_list(self, addresses): + self.unloading_address_results.controls.clear() + for address in addresses: + self.unloading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_unloading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_unloading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.unloading_address_results.update() + + def on_unloading_address_selected(self, e, address): + self.selected_unloading_address_id = address["id"] + self.unloading_address_search_field.value = address["name"] + self.unloading_address_search_field.update() + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def on_unloading_date_click(self, e): + self.unloading_date.value = e.control.value.strftime('%m/%d/%Y') + self.unloading_date.update() + + def on_unloading_hour_click(self, e): + if len(self.unloading_hour.value) != None and len(self.unloading_hour.value)==0: + self.unloading_hour.value = str(e.control.value) + else: + self.unloading_hour.value += f' - {e.control.value}' + self.unloading_hour.update() + + def on_reset_unloading_hour_btn_click(self, e): + self.unloading_hour.value = None + self.unloading_hour.update() + + def add_unloading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_unloading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_unloading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + unloading_informatins = self.unloading_informations.value + date = self.unloading_date.value + hour = self.unloading_hour.value + address = { + 'unloading_address_id': self.selected_unloading_address_id, + 'unloading_address_name': name, + 'unloading_address': adr, + 'unloading_informatins': unloading_informatins, + 'unloading_date': date, + 'unloading_hour': hour + } + + if self.selected_unloading_address_id == None: + self.unloading_error_message.value = "Please select unloading point!" + self.unloading_error_message.update() + return + if self.unloading_informations.value == None or len(self.unloading_informations.value) == 0: + self.unloading_error_message.value = "Add unloading informations!" + self.unloading_error_message.update() + return + if self.unloading_date.value == None or len(str(self.unloading_date.value)) == 0: + self.unloading_error_message.value = "Add unloading date!" + self.unloading_error_message.update() + return + # if self.unloading_hour.value == None or len(str(self.unloading_hour.value)) == 0: + # self.unloading_error_message.value = "Add unloading hour!" + # self.unloading_error_message.update() + # return + + if self.selected_unloading_address_id: + self.unloading_query.append(address) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + #reset to default + self.selected_unloading_address_id = None + self.unloading_informations.value = None + self.unloading_informations.update() + self.unloading_date.value = None + self.unloading_date.update() + self.unloading_hour.value = None + self.unloading_hour.update() + self.unloading_error_message.value = None + self.unloading_error_message.update() + else: + self.unloading_error_message.value = "All fields of the unloading address are required." + self.unloading_error_message.update() + + def get_all_clients(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch clients:", response.status_code) + return [] + + def get_all_addresses(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/destinations/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch addresses:", response.status_code) + return [] + + def create_loading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['loading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['loading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['loading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['loading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_loading_address_btn_click(self, item): + self.loading_query.remove(item) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + def create_unloading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['unloading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['unloading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['unloading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['unloading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_unloading_address_btn_click(self, item): + #print(item) + #print(self.unloading_query) + self.unloading_query.remove(item) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + def get_user_data(self): + try: + token = self.page.client_storage.get("token") + if not token: + self.message.value = "Unauthorized: No token" + return + response = requests.get(f"{API_BASE_URL}/profile/", headers={"Authorization": f"Bearer {token}"}) + if response.status_code == 200: + user_data = response.json() + return user_data + return None + except Exception as e: + return None + + def on_archive_btn_click(self, e): + archive_page = ArchiveInPage(self.page, self.dashboard, self) + self.dashboard.placeholder.content = archive_page.build() + self.dashboard.placeholder.update() + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + return None + + def on_save_btn_click(self, e): + loading_addresses = [] + unloading_addresses = [] + for laddr in self.loading_query: + laddr_copy = laddr.copy() + #if isinstance(laddr_copy.get("loading_hour"), datetime.time): + # laddr_copy["loading_hour"] = laddr_copy["loading_hour"].strftime("%H:%M") + loading_addresses.append(laddr_copy) + + for uaddr in self.unloading_query: + uaddr_copy = uaddr.copy() + #if isinstance(uaddr_copy.get("unloading_hour"), datetime.time): + # uaddr_copy["unloading_hour"] = uaddr_copy["unloading_hour"].strftime("%H:%M") + unloading_addresses.append(uaddr_copy) + + saved_data = { + 'order_number': self.order_number.value, + 'client_id': self.selected_client_id, + 'products_description': self.product_description.value, + 'ldb_quantity': self.ldm_quantity.value, + 'kg_quantity': self.kg_quantity.value, + 'track_reg_number': self.track_reg_number.value, + 'trailer_reg_number': self.trailer_reg_number.value, + 'received_price': self.received_price.value, + 'loading_addresses': loading_addresses, + 'unloading_addresses': unloading_addresses + } + #print(saved_data) + if self.order_number.value == None or len(self.order_number.value)==0: + self.error_message.value = "Order number is mandatory!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.selected_client_id == None: + self.error_message.value = "Please select the client!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.product_description.value == None or len(self.product_description.value)==0: + self.error_message.value = "Please insert product description!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + # if self.ldm_quantity.value == None or len(self.ldm_quantity.value)==0: + # self.error_message.value = "Please insert LDM!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + # if self.kg_quantity.value == None or len(self.kg_quantity.value)==0: + # self.error_message.value = "Please insert KG!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + if self.track_reg_number.value == None or len(self.track_reg_number.value)==0: + self.error_message.value = "Please insert Track Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.trailer_reg_number.value == None or len(self.trailer_reg_number.value)==0: + self.error_message.value = "Please insert Trailer Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.received_price.value == None or len(self.received_price.value)==0: + self.error_message.value = "Please insert Price received!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(loading_addresses) == 0: + self.error_message.value = "Please add loading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(unloading_addresses) == 0: + self.error_message.value = "Please add unloading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + + # --- POST request to save the order in the database --- + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + user_id = self.page.session.get("user_id") + saved_data["user_id"] = user_id + user = self.get_user_data() + saved_data['terms'] = user['terms'] + + try: + response = requests.post(f"{API_BASE_URL}/orders_in/", json=saved_data, headers=headers) + if response.status_code == 201: + self.error_message.value = "Order saved successfully! You will be redirected to archive page." + self.error_message.color = ft.Colors.GREEN + self.error_message.update() + time.sleep(3) + archive_page = ArchiveInPage(self.page, self.dashboard, self) + self.dashboard.placeholder.content = archive_page.build() + self.dashboard.placeholder.update() + else: + self.error_message.value = f"Failed to save order: {response.status_code} - {response.text}" + self.error_message.update() + except Exception as ex: + self.error_message.value = f"Error: {str(ex)}" + self.error_message.update() + + def build(self): + self.save_btn = ft.FilledButton( + "Save Order", + width=200, + on_click=self.on_save_btn_click, + ) + self.save_row = ft.Row([],alignment=ft.MainAxisAlignment.CENTER) + subscription = self.get_current_subscription_plan() + if subscription: + if subscription['status'] != 'expired': + self.save_row.controls.append(self.save_btn) + return ft.Container( + ft.Column( + [ + ft.Row( + [ + ft.Column( + [ + ft.Text('Create Order In', size=24, weight=ft.FontWeight.BOLD), + ft.Row( + [ + ft.Text("Number", size=18, weight=ft.FontWeight.BOLD), + self.order_number + ] + ) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.ElevatedButton("Archive", on_click=self.on_archive_btn_click, width=150) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + ft.Column( + [ + ft.Text("Client", size=18, weight=ft.FontWeight.BOLD), + self.client_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.client_results], + scroll=ft.ScrollMode.ADAPTIVE, + ), + #clip_behavior=ft.ClipBehavior., + expand=True, + padding=0, + ), + height=250 if len(self.client_results.controls) > 4 else None, + ) + ], + expand=True + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Row( + [ + ft.Text("Product Details", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Container( + content = self.product_description, + expand=True + ), + ft.Row( + [ + ft.Text( + value="LDM" + ), + self.ldm_quantity, + ft.Text(" "), + ft.Text( + value="KG" + ), + self.kg_quantity, + ], + expand=True + ) + ], + expand=True, + + ) + ], + expand=5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Truck / Trailer Info", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + self.track_reg_number, + self.trailer_reg_number + ], + expand=True + ) + ], + expand=2.5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Price", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + self.received_price, + ], + expand=2.5 + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Text("Loading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.loading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.loading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.loading_informations, + expand = True + ), + ft.Row( + [ + self.loading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_loading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.loading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_loading_hour_btn_click + ), + ], + expand=True + ), + self.loading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Loading Point", + on_click=self.add_loading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.loading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Text("Unloading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.unloading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.unloading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses_ul) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.unloading_informations, + expand=True + ), + ft.Row( + [ + self.unloading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_unloading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.unloading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_unloading_hour_btn_click + ), + ], + expand=True + ), + self.unloading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Unloading Point", + on_click=self.add_unloading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.unloading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + self.error_message, + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.save_row, + ], + expand=True, + scroll=ft.ScrollMode.ADAPTIVE, + spacing=20 + ) + ) + \ No newline at end of file diff --git a/transportmanager/client/pages/orders_out_page.py b/transportmanager/client/pages/orders_out_page.py new file mode 100644 index 0000000..b262d8d --- /dev/null +++ b/transportmanager/client/pages/orders_out_page.py @@ -0,0 +1,1229 @@ +import flet as ft +import datetime +import requests +import time +from pages.view_page import ViewPage +from pages.archive_page import ArchivePage +from config import API_BASE_URL + +class OrdersOutPage: + def __init__(self, page: ft.Page, dashbaord): + self.page = page + self.dashboard = dashbaord + + self.selected_client_id = None + + self.all_clients = self.get_all_clients() + self.filtered_clients = self.all_clients.copy() + self.client_search_field = ft.TextField(label="Search Clients...", on_change=self.on_searching_client) + self.client_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for client in self.all_clients + ] + ) + + self.all_transporters = self.get_all_transporters() + self.filtered_transporters = self.all_transporters.copy() + self.selected_transporter_id = None + self.transporter_search_field = ft.TextField(label="Search Transporters...", on_change=self.on_searching_transporter) + self.transporter_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ft.Text(transporter["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=transporter: self.on_transporter_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for transporter in self.all_transporters + ] + ) + + self.all_addresses = self.get_all_addresses() + self.selected_loading_address_id = None + self.filtered_addresses = self.all_addresses.copy() + self.loading_address_search_field = ft.TextField(label="Search Loading Address...", on_change=self.on_searching_loading_address) + self.loading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_loading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.loading_informations = ft.TextField( + label="Loading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.loading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.loading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.loading = ft.ListView( + spacing=10, + ) + + self.selected_unloading_address_id = None + self.filtered_addresses_ul = self.all_addresses.copy() + self.unloading_address_search_field = ft.TextField(label="Search Unloading Address...", on_change=self.on_searching_unloading_address) + self.unloading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_unloading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.unloading_informations = ft.TextField( + label="Unloading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.unloading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.unloading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.unloading = ft.ListView( + spacing=10, + ) + + self.ldm_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string="") + ) + + self.kg_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string="") + ) + + self.track_reg_number = ft.TextField( + label="Track Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.trailer_reg_number = ft.TextField( + label="Trailer Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.received_price = ft.TextField( + label="Price Received - visible only to you!", + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string="") + ) + + self.paid_price = ft.TextField( + label="Price Paid", + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string="") + ) + + self.first_order_number = self.page.session.get("first_order_number") + last_orders = self.load_orders() + if len(last_orders) == 0: + number = self.first_order_number + else: + ln = last_orders[0]['order_number'] + #print(last_orders) + number = int(ln)+1 + self.order_number = ft.TextField( + label=f"Order number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value=number + ) + + self.error_message = ft.Text(color = ft.Colors.RED) + + self.loading_query = [] + self.loading_error_message = ft.Text(color= ft.Colors.RED) + + self.unloading_query = [] + self.unloading_error_message = ft.Text(color= ft.Colors.RED) + + self.product_description= ft.TextField( + label="Description", + multiline=True, + min_lines=3, + max_lines=5, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + def load_orders(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders/list", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading orders:", e) + + def on_location_btn_click(self, destination): + query = destination["address"].replace(", ", "+") + maps_url = f"https://www.google.com/maps/search/?api=1&query={query}" + self.page.launch_url(maps_url) + + def on_searching_client(self, e): + query = e.control.value.lower() + self.filtered_clients = [client for client in self.all_clients if query in client["name"].lower()] + self.update_client_list(self.filtered_clients) + + def update_client_list(self, clients): + self.client_results.controls.clear() + for client in clients: + self.client_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.client_results.update() + + def on_client_selected(self, e, client): + self.selected_client_id = client["id"] + self.client_search_field.value = client["name"] + self.client_search_field.update() + self.update_client_list(self.filtered_clients) + + def on_searching_transporter(self, e): + query = e.control.value.lower() + self.filtered_transporters = [t for t in self.all_transporters if query in t["name"].lower()] + self.update_transporter_list(self.filtered_transporters) + + def update_transporter_list(self, transporters): + self.transporter_results.controls.clear() + for transporter in transporters: + self.transporter_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(transporter["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if transporter["id"] == getattr(self, "selected_transporter_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=transporter: self.on_transporter_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.transporter_results.update() + + def on_transporter_selected(self, e, transporter): + self.selected_transporter_id = transporter["id"] + self.transporter_search_field.value = transporter["name"] + self.transporter_search_field.update() + self.update_transporter_list(self.filtered_transporters) + + def on_searching_loading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_loading_addresses_list(self.filtered_addresses) + + def update_loading_addresses_list(self, addresses): + self.loading_address_results.controls.clear() + for address in addresses: + self.loading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_loading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_loading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.loading_address_results.update() + + def on_loading_address_selected(self, e, address): + self.selected_loading_address_id = address["id"] + self.loading_address_search_field.value = address["name"] + self.loading_address_search_field.update() + self.update_loading_addresses_list(self.filtered_addresses) + + def on_loading_date_click(self, e): + self.loading_date.value = e.control.value.strftime('%m/%d/%Y') + self.loading_date.update() + #print(self.loading_date.value) + + def on_loading_hour_click(self, e): + if len(self.loading_hour.value) != None and len(self.loading_hour.value)==0: + self.loading_hour.value = str(e.control.value) + else: + self.loading_hour.value += f' - {e.control.value}' + self.loading_hour.update() + #print(self.loading_hour.value) + + def on_reset_loading_hour_btn_click(self, e): + self.loading_hour.value = None + self.loading_hour.update() + + def add_loading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_loading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_loading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + #print(adr) + #print(_address['address']) + + loading_informatins = self.loading_informations.value + date = self.loading_date.value + hour = self.loading_hour.value + + #create loading list + address = { + 'loading_address_id': self.selected_loading_address_id, + 'loading_address_name': name, + 'loading_address': adr, + 'loading_informatins': loading_informatins, + 'loading_date': date, + 'loading_hour': hour + } + #print(address) + + if self.selected_loading_address_id == None: + self.loading_error_message.value = "Please select loading point!" + self.loading_error_message.update() + return + if self.loading_informations.value == None or len(self.loading_informations.value) == 0: + self.loading_error_message.value = "Add loading informations!" + self.loading_error_message.update() + return + if self.loading_date.value == None or len(str(self.loading_date.value)) == 0: + self.loading_error_message.value = "Add loading date!" + self.loading_error_message.update() + return + # if self.loading_hour.value == None or len(str(self.loading_hour.value)) == 0: + # self.loading_error_message.value = "Add loading hour!" + # self.loading_error_message.update() + # return + + if self.selected_loading_address_id: + self.loading_query.append(address) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + #reset to default + self.selected_loading_address_id = None + self.loading_informations.value = None + self.loading_informations.update() + self.loading_date.value = None + self.loading_date.update() + self.loading_hour.value = None + self.loading_hour.update() + self.loading_error_message.value = None + self.loading_error_message.update() + else: + self.loading_error_message.value = "All fields of the loading address are required." + self.loading_error_message.update() + + def on_searching_unloading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses_ul = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def update_unloading_addresses_list(self, addresses): + self.unloading_address_results.controls.clear() + for address in addresses: + self.unloading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_unloading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_unloading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.unloading_address_results.update() + + def on_unloading_address_selected(self, e, address): + self.selected_unloading_address_id = address["id"] + self.unloading_address_search_field.value = address["name"] + self.unloading_address_search_field.update() + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def on_unloading_date_click(self, e): + self.unloading_date.value = e.control.value.strftime('%m/%d/%Y') + self.unloading_date.update() + + def on_unloading_hour_click(self, e): + if len(self.unloading_hour.value) != None and len(self.unloading_hour.value)==0: + self.unloading_hour.value = str(e.control.value) + else: + self.unloading_hour.value += f' - {e.control.value}' + self.unloading_hour.update() + + def on_reset_unloading_hour_btn_click(self, e): + self.unloading_hour.value = None + self.unloading_hour.update() + + def add_unloading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_unloading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_unloading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + unloading_informatins = self.unloading_informations.value + date = self.unloading_date.value + hour = self.unloading_hour.value + address = { + 'unloading_address_id': self.selected_unloading_address_id, + 'unloading_address_name': name, + 'unloading_address': adr, + 'unloading_informatins': unloading_informatins, + 'unloading_date': date, + 'unloading_hour': hour + } + + if self.selected_unloading_address_id == None: + self.unloading_error_message.value = "Please select unloading point!" + self.unloading_error_message.update() + return + if self.unloading_informations.value == None or len(self.unloading_informations.value) == 0: + self.unloading_error_message.value = "Add unloading informations!" + self.unloading_error_message.update() + return + if self.unloading_date.value == None or len(str(self.unloading_date.value)) == 0: + self.unloading_error_message.value = "Add unloading date!" + self.unloading_error_message.update() + return + # if self.unloading_hour.value == None or len(str(self.unloading_hour.value)) == 0: + # self.unloading_error_message.value = "Add unloading hour!" + # self.unloading_error_message.update() + # return + + if self.selected_unloading_address_id: + self.unloading_query.append(address) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + #reset to default + self.selected_unloading_address_id = None + self.unloading_informations.value = None + self.unloading_informations.update() + self.unloading_date.value = None + self.unloading_date.update() + self.unloading_hour.value = None + self.unloading_hour.update() + self.unloading_error_message.value = None + self.unloading_error_message.update() + else: + self.unloading_error_message.value = "All fields of the unloading address are required." + self.unloading_error_message.update() + + def get_all_clients(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch clients:", response.status_code) + return [] + + def get_all_transporters(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + user_id = self.page.session.get("user_id") + response = requests.get(f"{API_BASE_URL}/transporters/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch transporters:", response.status_code) + return [] + + def get_all_addresses(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/destinations/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch addresses:", response.status_code) + return [] + + def create_loading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['loading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['loading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['loading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['loading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_loading_address_btn_click(self, item): + self.loading_query.remove(item) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + def create_unloading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['unloading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['unloading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['unloading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['unloading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_unloading_address_btn_click(self, item): + #print(item) + #print(self.unloading_query) + self.unloading_query.remove(item) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + def on_save_btn_click(self, e): + + loading_addresses = [] + unloading_addresses = [] + for laddr in self.loading_query: + laddr_copy = laddr.copy() + if isinstance(laddr_copy.get("loading_hour"), datetime.time): + laddr_copy["loading_hour"] = laddr_copy["loading_hour"].strftime("%H:%M") + loading_addresses.append(laddr_copy) + + for uaddr in self.unloading_query: + uaddr_copy = uaddr.copy() + if isinstance(uaddr_copy.get("unloading_hour"), datetime.time): + uaddr_copy["unloading_hour"] = uaddr_copy["unloading_hour"].strftime("%H:%M") + unloading_addresses.append(uaddr_copy) + + saved_data = { + 'order_number': self.order_number.value, + 'client_id': self.selected_client_id, + 'transporter_id': self.selected_transporter_id, + 'products_description': self.product_description.value, + 'ldb_quantity': self.ldm_quantity.value, + 'kg_quantity': self.kg_quantity.value, + 'track_reg_number': self.track_reg_number.value, + 'trailer_reg_number': self.trailer_reg_number.value, + 'received_price': self.received_price.value, + 'paid_price': self.paid_price.value, + 'loading_addresses': loading_addresses, + 'unloading_addresses': unloading_addresses + } + #print(saved_data) + if self.order_number.value == None or len(str(self.order_number.value))==0: + self.error_message.value = "Order number is mandatory!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.selected_client_id == None: + self.error_message.value = "Please select the client!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.selected_transporter_id == None: + self.error_message.value = "Please select the transporter!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.product_description.value == None or len(self.product_description.value)==0: + self.error_message.value = "Please insert product description!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + # if self.ldm_quantity.value == None or len(self.ldm_quantity.value)==0: + # self.error_message.value = "Please insert LDM!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + # if self.kg_quantity.value == None or len(self.kg_quantity.value)==0: + # self.error_message.value = "Please insert KG!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + if self.track_reg_number.value == None or len(self.track_reg_number.value)==0: + self.error_message.value = "Please insert Track Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.trailer_reg_number.value == None or len(self.trailer_reg_number.value)==0: + self.error_message.value = "Please insert Trailer Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.received_price.value == None or len(self.received_price.value)==0: + self.error_message.value = "Please insert Price received!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.paid_price.value == None or len(self.paid_price.value)==0: + self.error_message.value = "Please insert Price paid!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(loading_addresses) == 0: + self.error_message.value = "Please add loading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(unloading_addresses) == 0: + self.error_message.value = "Please add unloading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + + # --- POST request to save the order in the database --- + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + user_id = self.page.session.get("user_id") + saved_data["user_id"] = user_id + user = self.get_user_data() + saved_data['terms'] = user['terms'] + + try: + response = requests.post(f"{API_BASE_URL}/orders/", json=saved_data, headers=headers) + if response.status_code == 201: + self.error_message.value = "Order saved successfully, Please wait!" + self.error_message.color = ft.Colors.GREEN + self.error_message.update() + order_id = response.json()['order_id'] + time.sleep(3) + pdf_name = f'order_{user_id}_{saved_data['order_number']}.pdf' + view_page = ViewPage(self.page, pdf_name, self, self.dashboard, order_id) + self.dashboard.placeholder.content = view_page.build() + self.dashboard.placeholder.update() + else: + self.error_message.value = f"Failed to save order: {response.status_code} - {response.text}" + except Exception as ex: + self.error_message.value = f"Error: {str(ex)}" + self.error_message.update() + + def get_user_data(self): + try: + token = self.page.client_storage.get("token") + if not token: + self.message.value = "Unauthorized: No token" + return + response = requests.get(f"{API_BASE_URL}/profile/", headers={"Authorization": f"Bearer {token}"}) + if response.status_code == 200: + user_data = response.json() + return user_data + return None + except Exception as e: + return None + + def on_archive_btn_click(self, e): + archive_page = ArchivePage(self.page, self.dashboard, self) + self.dashboard.placeholder.content = archive_page.build() + self.dashboard.placeholder.update() + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + return None + + def build(self): + self.save_btn = ft.FilledButton( + "Save and Generate", + width=200, + on_click=self.on_save_btn_click, + ) + self.save_row = ft.Row([],alignment=ft.MainAxisAlignment.CENTER) + subscription = self.get_current_subscription_plan() + if subscription: + if subscription['status'] != 'expired': + self.save_row.controls.append(self.save_btn) + return ft.Container( + ft.Column( + [ + ft.Row( + [ + ft.Column( + [ + ft.Text('Create Order Out', size=24, weight=ft.FontWeight.BOLD), + ft.Row( + [ + ft.Text("Number", size=18, weight=ft.FontWeight.BOLD), + self.order_number + ] + ) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.ElevatedButton("Archive", on_click=self.on_archive_btn_click, width=150) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + ft.Column( + [ + ft.Text("Client", size=18, weight=ft.FontWeight.BOLD), + self.client_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.client_results], + scroll=ft.ScrollMode.ADAPTIVE, + ), + #clip_behavior=ft.ClipBehavior., + expand=True, + padding=0, + ), + height=250 if len(self.filtered_clients) > 4 else None, + ) + ], + expand=5 + ), + ft.Column( + [ + ft.Text("Transporter", size=18, weight=ft.FontWeight.BOLD), + self.transporter_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.transporter_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_transporters) > 4 else None, + ) + ], + expand=5 + ), + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Row( + [ + ft.Text("Product Details", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Container( + content = self.product_description, + expand=True + ), + ft.Row( + [ + ft.Text( + value="LDM" + ), + self.ldm_quantity, + ft.Text(" "), + ft.Text( + value="KG" + ), + self.kg_quantity, + ], + expand=True + ) + ], + expand=True, + + ) + ], + expand=5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Truck / Trailer Info", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + self.track_reg_number, + self.trailer_reg_number + ], + expand=True + ) + ], + expand=2.5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Price", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + self.received_price, + self.paid_price + ], + expand=2.5 + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Text("Loading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.loading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.loading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.loading_informations, + expand = True + ), + ft.Row( + [ + self.loading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_loading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.loading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_loading_hour_btn_click + ), + ], + expand=True + ), + self.loading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Loading Point", + on_click=self.add_loading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.loading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Text("Unloading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.unloading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.unloading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses_ul) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.unloading_informations, + expand=True + ), + ft.Row( + [ + self.unloading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_unloading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.unloading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_unloading_hour_btn_click + ), + ], + expand=True + ), + self.unloading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Unloading Point", + on_click=self.add_unloading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.unloading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + self.error_message, + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.save_row, + ], + expand=True, + scroll=ft.ScrollMode.ADAPTIVE, + spacing=20 + ) + ) + \ No newline at end of file diff --git a/transportmanager/client/pages/orders_page.py b/transportmanager/client/pages/orders_page.py new file mode 100644 index 0000000..376b673 --- /dev/null +++ b/transportmanager/client/pages/orders_page.py @@ -0,0 +1,99 @@ +import flet as ft +from pages.orders_in_page import OrdersInPage +from pages.orders_out_page import OrdersOutPage + +class OrdersPage: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + + def on_orders_in_btn_click(self, e): + order_in_page = OrdersInPage(self.page, self.dashboard) + self.dashboard.placeholder.content = order_in_page.build() + self.dashboard.placeholder.update() + + def on_orders_out_btn_click(self, e): + orders_out_page = OrdersOutPage(self.page, self.dashboard) + self.dashboard.placeholder.content = orders_out_page.build() + self.dashboard.placeholder.update() + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Text("Orders", size=24, weight=ft.FontWeight.BOLD), + ft.Row( + [ + ft.Container( + content=ft.Column( + [ + ft.Icon(ft.Icons.ARROW_CIRCLE_DOWN, size=150), + ft.Container( + ft.Row( + [ + ft.Text("Incoming orders", size=20) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + bgcolor=ft.Colors.BLUE_200, + width=250, + height=80 + ), + ft.FilledButton( + "Orders In", + on_click=self.on_orders_in_btn_click, + width=150 + ) + ], + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ), + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + padding = ft.padding.symmetric(vertical=20), + width=250, + height=350, + border_radius=20 + ), + ft.Container( + content=ft.Column( + [ + ft.Icon(ft.Icons.ARROW_CIRCLE_UP, size=150), + ft.Container( + ft.Row( + [ + ft.Text("Outcoming orders", size=20) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + bgcolor=ft.Colors.BLUE_200, + width=250, + height=80 + ), + ft.FilledButton( + "Orders Out", + on_click=self.on_orders_out_btn_click, + width=150 + ) + ], + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ), + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + padding = ft.padding.symmetric(vertical=20), + width=250, + height=350, + border_radius=20 + ) + ], + alignment=ft.MainAxisAlignment.CENTER, + spacing=50 + ), + ft.Text(" ") + ], + expand=True, + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + expand=True + ) \ No newline at end of file diff --git a/transportmanager/client/pages/profile_page.py b/transportmanager/client/pages/profile_page.py new file mode 100644 index 0000000..5c3dd2d --- /dev/null +++ b/transportmanager/client/pages/profile_page.py @@ -0,0 +1,458 @@ +import flet as ft +import requests +import time +from config import API_BASE_URL + +class ProfilePage: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + self.name_field = ft.TextField( + label="Company Name", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.contact_name_field = ft.TextField( + label="Contact Name", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.email_field = ft.TextField( + label="Email", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.phone_field = ft.TextField( + label="Phone", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.register_number_field = ft.TextField( + label="Register Number", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.vat = ft.TextField( + label="VAT", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.address = None + self.street_and_number = ft.TextField( + label="Street and number", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.postal_code = ft.TextField( + label="Postal code", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.city = ft.TextField( + label="City", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.region_county = ft.TextField( + label="Region / County", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.country = ft.TextField( + label="Country", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.logo_field = ft.TextField( + label="Logo Filename", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.terms_field = ft.TextField( + label="Terms", + multiline=True, + min_lines=5, + max_lines=10, + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.first_order_number_field = ft.TextField( + label="First Order Number", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.created_at_text = ft.Text(value="Created At: TBD") # Set dynamically later + self.edit_button = ft.ElevatedButton(text="Edit Profile", on_click=self.on_edit_click) + self.save_button = ft.ElevatedButton(text="Save Changes", visible=False, on_click=self.on_save_click) + self.cancel_button = ft.TextButton(text="Cancel", visible=False, on_click=self.on_cancel_click) + self.upload_logo_btn = ft.ElevatedButton("Upload Company Logo", icon=ft.Icons.UPLOAD, on_click=self.on_upload_click, disabled=True) + self.message = ft.Text() + self.logo = ft.Image(src="images/image_placeholder.png", width=250) + self.file_picker = ft.FilePicker(on_result=self.on_file_result) + self.page.overlay.append(self.file_picker) + + #email credentials + self.email_credentials = None + self.smtp_host = ft.TextField( + label="SMTP HOST", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.smtp_port = ft.TextField( + label="SMTP PORT", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.smtp_user = ft.TextField( + label="Email (SMTP USER)", + disabled=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + def _auth_headers(self): + """Build Authorization header from client storage robustly (web/desktop).""" + t = self.page.client_storage.get("token") + if not t: + return {} + # Token may be stored as dict or quoted string depending on login flow/runtime + if isinstance(t, dict): + t = t.get("access_token") or t.get("token") or "" + if not isinstance(t, str): + t = str(t) + t = t.strip().strip('"') + return {"Authorization": f"Bearer {t}"} if t else {} + + def on_edit_click(self, e): + self.name_field.disabled = False + self.contact_name_field.disabled = False + self.email_field.disabled = False + self.phone_field.disabled = False + self.register_number_field.disabled = False + self.vat.disabled = False + self.street_and_number.disabled = False + self.postal_code.disabled = False + self.city.disabled = False + self.region_county.disabled = False + self.country.disabled = False + self.logo_field.disabled = False + self.terms_field.disabled = False + self.first_order_number_field.disabled = False + self.upload_logo_btn.disabled = False + self.smtp_host.disabled = False + self.smtp_port.disabled = False + self.smtp_user.disabled = False + self.edit_button.visible = False + self.save_button.visible = True + self.cancel_button.visible = True + self.page.update() + + def on_save_click(self, e): + # Save logic would be implemented here + headers = self._auth_headers() + if not headers: + self.message.value = "Unauthorized: No token" + self.message.color = ft.Colors.RED + self.page.update() + return + address = f'{self.street_and_number.value} %{self.postal_code.value} %{self.city.value} %{self.region_county.value} %{self.country.value}' + data = { + "name": self.name_field.value, + "contact_name": self.contact_name_field.value, + "email": self.email_field.value, + "phone": self.phone_field.value, + "register_number": self.register_number_field.value, + "vat": self.vat.value, + "address": address, + "logo_filename": self.logo_field.value, + "terms": self.terms_field.value, + "first_order_number": self.first_order_number_field.value + } + try: + response = requests.put(f"{API_BASE_URL}/profile/", json=data, headers=headers) + if response.status_code == 200: + self.message.value = "Profile updated successfully!" + self.message.color = ft.Colors.GREEN + # Save logo filename to client storage + self.page.client_storage.set("logo_filename", self.logo_field.value) + self.page.session.set("first_order_number", self.first_order_number_field.value) + else: + self.message.value = f"Failed to update profile: {response.status_code}" + self.message.color = ft.Colors.RED + except Exception as e: + self.message.value = f"Error updating profile: {e}" + self.message.color = ft.Colors.RED + + #email credentials + data = { + 'smtp_host' : self.smtp_host.value, + 'smtp_port' : self.smtp_port.value, + 'smtp_user' : self.smtp_user.value + } + try: + if not self.email_credentials: + response = requests.post(f"{API_BASE_URL}/profile/email", json=data, headers=headers) + else: + response = requests.put(f"{API_BASE_URL}/profile/email", json=data, headers=headers) + if response.status_code == 200: + self.message.value = "Profile updated successfully!" + self.message.color = ft.Colors.GREEN + else: + self.message.value = f"Failed to create / update email credentials: {response.status_code}" + self.message.color = ft.Colors.RED + except Exception as e: + self.message.value = f"Error creating / updating email credentials: {e}" + self.message.color = ft.Colors.RED + + self.name_field.disabled = True + self.contact_name_field.disabled = True + self.email_field.disabled = True + self.phone_field.disabled = True + self.register_number_field.disabled = True + self.vat.disabled = True + self.street_and_number.disabled = True + self.postal_code.disabled = True + self.city.disabled = True + self.region_county.disabled = True + self.country.disabled = True + self.logo_field.disabled = True + self.terms_field.disabled = True + self.first_order_number_field.disabled = True + self.upload_logo_btn.disabled = True + self.smtp_host.disabled = True + self.smtp_port.disabled = True + self.smtp_user.disabled = True + self.edit_button.visible = True + self.save_button.visible = False + self.cancel_button.visible = False + self.page.update() + + def on_cancel_click(self, e): + # Reset fields or fetch previous values here + self.name_field.disabled = True + self.contact_name_field.disabled = True + self.email_field.disabled = True + self.phone_field.disabled = True + self.register_number_field.disabled = True + self.vat.disabled = True + self.street_and_number.disabled = True + self.postal_code.disabled = True + self.city.disabled = True + self.region_county.disabled = True + self.country.disabled = True + self.logo_field.disabled = True + self.terms_field.disabled = True + self.first_order_number_field.disabled = True + self.upload_logo_btn.disabled = True + self.smtp_host.disabled = True + self.smtp_port.disabled = True + self.smtp_user.disabled = True + self.edit_button.visible = True + self.save_button.visible = False + self.cancel_button.visible = False + self.page.update() + + def populate_user_data(self): + user_id = self.page.session.get("user_id") + if not user_id: + self.message.value = "User not authenticated." + self.message.color = ft.Colors.RED + return + headers = self._auth_headers() + if not headers: + self.message.value = "Unauthorized: No token" + self.message.color = ft.Colors.RED + return + response = requests.get(f"{API_BASE_URL}/profile/", headers=headers, timeout=10) + if response.status_code == 200: + user_data = response.json() + #print(user_data) + self.name_field.value = user_data.get("name", "") + self.contact_name_field.value = user_data.get("contact_name", "") + self.email_field.value = user_data.get("email", "") + self.phone_field.value = user_data.get("phone", "") + self.register_number_field.value = user_data.get("register_number", "") + self.vat.value = user_data.get("vat", "") + self.street_and_number.value = user_data.get("address").split(" %")[0] if user_data.get("address") and len(user_data.get("address")) > 0 else '' + self.postal_code.value = user_data.get("address").split(" %")[1] if user_data.get("address") and len(user_data.get("address")) > 0 else '' + self.city.value = user_data.get("address").split(" %")[2] if user_data.get("address") and len(user_data.get("address")) > 0 else '' + self.region_county.value = user_data.get("address").split(" %")[3] if user_data.get("address") and len(user_data.get("address")) > 0 else '' + self.country.value = user_data.get("address").split(" %")[4] if user_data.get("address") and len(user_data.get("address")) > 0 else '' + logo_filename = user_data.get("logo_filename", "") + self.logo_field.value = logo_filename + self.logo.src = f"images/{logo_filename}" if logo_filename else "images/image_placeholder.png" + if logo_filename: + self.page.client_storage.set("logo_filename", logo_filename) + self.dashboard.logo.src = f"images/{logo_filename}" + self.dashboard.logo.update() + self.terms_field.value = user_data.get("terms", "") + self.first_order_number_field.value = user_data.get("first_order_number", "") + self.created_at_text.value = f"Created At: {user_data.get('created_at', '')}" + if self.register_number_field.value == '': + self.on_edit_click('') + else: + self.message.value = f"Failed to load user data: {response.text}" + self.message.color = ft.Colors.RED + + response = requests.get(f"{API_BASE_URL}/profile/email", headers=headers, timeout=10) + if response.status_code == 200: + self.email_credentials = response.json() + self.smtp_host.value = self.email_credentials['smtp_host'] + self.smtp_port.value = self.email_credentials['smtp_port'] + self.smtp_user.value = self.email_credentials['smtp_user'] + else: + print(f"Failed to load email credentials: {response.text}") + + #except Exception as e: + # self.message.value = f"Error fetching user data: {e}" + # self.message.color = ft.Colors.RED + + def on_upload_click(self, e): + self.file_picker.pick_files( + allow_multiple=False, + allowed_extensions=["png", "jpg", "jpeg"] + ) + + def on_file_result(self, e: ft.FilePickerResultEvent): + if not e.files: + return + file = e.files[0] + new_filename = f"user_logo_{self.page.session.get('user_id')}_{file.name}" + upload_url = self.page.get_upload_url(new_filename, 1000) + self.file_picker.upload([ft.FilePickerUploadFile(file.name, upload_url=upload_url)]) + + import os + import shutil + + source_path = os.path.join("uploads", new_filename) + destination_path = os.path.join("assets/images", new_filename) + try: + time.sleep(2) + shutil.move(source_path, destination_path) + self.logo.src = f"images/{new_filename}" + self.logo.update() + self.logo_field.value = new_filename + self.page.update() + self.page.client_storage.set("logo_filename", new_filename) + self.dashboard.logo.src = f"images/{new_filename}" + self.dashboard.logo.update() + except Exception as err: + self.message.value = f"Upload error: {err}" + self.message.color = ft.Colors.RED + self.page.update() + + def build(self): + self.populate_user_data() + return ft.Container( + content=ft.Column( + [ + ft.Text("User Profile", size=24, weight=ft.FontWeight.BOLD), + ft.Row( + [ + ft.Column( + [ + self.logo, + self.upload_logo_btn, + self.message, + ft.Text(), + self.smtp_user, + self.smtp_host, + self.smtp_port, + ft.Row([self.edit_button, self.save_button, self.cancel_button]) + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + width=250 + ), + ft.Column( + [ + self.name_field, + self.contact_name_field, + self.email_field, + self.phone_field, + self.register_number_field, + self.vat, + self.street_and_number, + self.postal_code, + self.city, + self.region_county, + self.country, + self.first_order_number_field, + self.terms_field, + ], + spacing=20, + expand=True + ) + ], + vertical_alignment=ft.CrossAxisAlignment.START + ) + ], + scroll=ft.ScrollMode.ADAPTIVE + ), + ) \ No newline at end of file diff --git a/transportmanager/client/pages/register_page.py b/transportmanager/client/pages/register_page.py new file mode 100644 index 0000000..13a11ea --- /dev/null +++ b/transportmanager/client/pages/register_page.py @@ -0,0 +1,83 @@ +import re +import flet as ft +import requests +import time +from config import API_BASE_URL + +class Register: + def __init__(self, page: ft.Page, auth, login): + self.page = page + self.auth = auth + self.login = login + self.email = ft.TextField(label="Email", width=300) + self.password = ft.TextField(label="Password", password=True, can_reveal_password=True, width=300) + self.confirm_password = ft.TextField(label="Confirm Password", password=True, can_reveal_password=True, width=300) + self.name = ft.TextField(label="Company Name", width=300) + self.register_button = ft.ElevatedButton(text="Register", on_click=self.on_register_clicked, width=150) + self.back_button = ft.TextButton(text="Back to Login", on_click=self.on_back_clicked) + self.message = ft.Text(value="", color=ft.Colors.RED) + + def on_register_clicked(self, e): + # Email validation + email_regex = r"^[^@]+@[^@]+\.[^@\.]+(\.[^@\.]+)*$" + if not re.match(email_regex, self.email.value): + self.message.value = "Invalid email address" + self.page.update() + return + # Password strength validation + if len(self.password.value) < 8 or not re.search(r"[A-Z]", self.password.value) or not re.search(r"[0-9]", self.password.value): + self.message.value = "Password must be at least 8 characters long and include a number and a capital letter" + self.page.update() + return + # Placeholder for register logic + if self.password.value != self.confirm_password.value: + self.message.value = "Passwords do not match" + self.page.update() + return + self.message.value = "Registering..." + self.page.update() + try: + response = requests.post(f"{API_BASE_URL}/auth/register", json={ + "name": self.name.value, + "email": self.email.value, + "password": self.password.value + }) + if response.status_code == 201: + self.message.color = ft.Colors.GREEN + self.message.value = "Registration successful. You can now log in." + self.page.update() + time.sleep(3) + self.on_back_clicked('') + else: + self.message.color = ft.Colors.RED + self.message.value = response.json().get("message", "Registration failed, the user is already registered.") + self.page.update() + except Exception as err: + self.message.color = ft.Colors.RED + self.message.value = f"Error: {err}" + self.page.update() + + def on_back_clicked(self, e): + self.auth.placeholder.content.clean() + self.auth.placeholder.content = self.login.build() + self.auth.placeholder.update() + + def build(self): + return ft.Column( + [ + ft.Text( + "Register", + size=30, + weight="bold" + ), + self.name, + self.email, + self.password, + self.confirm_password, + self.register_button, + self.message, + self.back_button + ], + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ) \ No newline at end of file diff --git a/transportmanager/client/pages/report_page.py b/transportmanager/client/pages/report_page.py new file mode 100644 index 0000000..79658ea --- /dev/null +++ b/transportmanager/client/pages/report_page.py @@ -0,0 +1,389 @@ +import flet as ft +import requests +from datetime import datetime +from config import API_BASE_URL + +class ReportPage: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + self.start_date = ft.Text() + self.end_date = ft.Text() + # self.client_filter = ft.TextField(label="Client", expand=True) + # self.transporter_filter = ft.TextField(label="Transporter", expand=True) + self.status_text = ft.Text("") + self.results_text = ft.Text("") + self.rows = [] + self.rows_copy = [] + self.total = ft.Text("Total: ", weight=ft.FontWeight.BOLD) + + self.data_table = ft.DataTable( + columns=[ + ft.DataColumn(label=ft.Text("Order #")), + ft.DataColumn(label=ft.Text("Client")), + ft.DataColumn(label=ft.Text("Transporter")), + ft.DataColumn(label=ft.Text("Date")), + ft.DataColumn(label=ft.Text("Paid (€)")), + ft.DataColumn(label=ft.Text("Received (€)")), + ft.DataColumn(label=ft.Text("Profit (€)")), + ], + rows=[], + border=ft.border.all(1, ft.Colors.GREY_300), + expand=True + ) + + self.all_clients = [] + self.all_transporters = [] + self.create_table_rows_data() + + self.clients_filter = ft.Dropdown( + options=[ + ft.dropdown.Option(text = client['name'], key=client['name']) for client in self.all_clients + ], + width=250, + label="Clients", + hint_text= "Select client", + on_change= self.filter_by_client + ) + self.clients_filter_placeholder = ft.Container(content=self.clients_filter) + + self.transporters_filter = ft.Dropdown( + options=[ + ft.dropdown.Option(text = transporter['name'], key=transporter['name']) for transporter in self.all_transporters + ], + width=250, + label="Transporters", + hint_text= "Select transporter", + on_change= self.filter_by_transporter + ) + self.transporters_filter_placeholder = ft.Container(content=self.transporters_filter) + + def get_orders(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders/list", headers=headers) + return response.json() if response.status_code == 200 else [] + except Exception as e: + print("Error loading orders:", e) + + def get_client(self, id): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/{id}", headers=headers) + if response.json() not in self.all_clients: + self.all_clients.append(response.json()) + return response.json() if response.status_code == 200 else None + except Exception as e: + print("Error loading clients:", e) + + def get_transporter(self, id): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/transporters/{id}", headers=headers) + if response.json() not in self.all_transporters: + self.all_transporters.append(response.json()) + return response.json() if response.status_code == 200 else None + except Exception as e: + print("Error loading transporters:", e) + + def fetch_report(self, e): + total = 0 + data = self.search_input.value + self.rows_copy = self.rows + self.data_table.rows.clear() + buffer = [] + for r in self.rows_copy: + if data in r[1]: + row = ft.DataRow( + cells=[ + ft.DataCell(ft.Text(r[0])), + ft.DataCell(ft.Text(r[1])), + ft.DataCell(ft.Text(r[2])), + ft.DataCell(ft.Text(r[3])), + ft.DataCell(ft.Text(r[4])), + ft.DataCell(ft.Text(r[5])), + ft.DataCell(ft.Text(r[6])), + ], + ) + self.data_table.rows.append(row) + buffer.append(r) + total += r[6] + self.rows_copy = buffer + self.data_table.update() + self.total.value = f"Total: {total}" + self.total.update() + + def create_table_rows_data(self): + all_orders = self.get_orders() + total = 0 + for order in all_orders: + # Skip non-active orders from reports + #print(order.get('status')) + if order.get('status') != 'active': + continue + order_number = order['order_number'] + client_name = self.get_client(order['client_id'])['name'] + transporter_name = self.get_transporter(order['transporter_id'])['name'] + order_date = order['created_at'].split("T")[0] + paid = order['paid_price'] + received = order['received_price'] + try: + profit = round(float(received) - float(paid), 2) + except: + profit = 0.00 + + row = ft.DataRow( + cells=[ + ft.DataCell(ft.Text(order_number)), + ft.DataCell(ft.Text(client_name)), + ft.DataCell(ft.Text(transporter_name)), + ft.DataCell(ft.Text(order_date)), + ft.DataCell(ft.Text(received)), + ft.DataCell(ft.Text(paid)), + ft.DataCell(ft.Text(profit)), + ], + ) + row_data = [order_number, client_name, transporter_name, order_date, paid, received, profit] + self.rows.append(row_data) + self.data_table.rows.append(row) + total += profit + self.total.value = f"Total: {total}" + self.rows_copy = self.rows + + def on_reset_btn_click(self, e): + # --- Recreate Clients dropdown to avoid sticky selection text on Flet 0.28.3 --- + try: + client_options = list(self.clients_filter.options) + except Exception: + client_options = [] + new_clients_dd = ft.Dropdown( + options=client_options, + width=250, + label="Clients", + hint_text="Select client", + on_change=self.filter_by_client, + value=None, + ) + self.clients_filter = new_clients_dd + self.clients_filter_placeholder.content = self.clients_filter + self.clients_filter_placeholder.update() + + # --- Recreate Transporters dropdown --- + try: + transporter_options = list(self.transporters_filter.options) + except Exception: + transporter_options = [] + new_transporters_dd = ft.Dropdown( + options=transporter_options, + width=250, + label="Transporters", + hint_text="Select transporter", + on_change=self.filter_by_transporter, + value=None, + ) + self.transporters_filter = new_transporters_dd + self.transporters_filter_placeholder.content = self.transporters_filter + self.transporters_filter_placeholder.update() + + self.page.update() + self.rows_copy = list(self.rows) + total = 0 + self.data_table.rows.clear() + for r in self.rows_copy: + row = ft.DataRow( + cells=[ + ft.DataCell(ft.Text(r[0])), + ft.DataCell(ft.Text(r[1])), + ft.DataCell(ft.Text(r[2])), + ft.DataCell(ft.Text(r[3])), + ft.DataCell(ft.Text(r[4])), + ft.DataCell(ft.Text(r[5])), + ft.DataCell(ft.Text(r[6])), + ], + ) + self.data_table.rows.append(row) + total += r[6] + self.data_table.update() + self.total.value = f"Total: {total}" + self.total.update() + self.start_date.value = "" + self.start_date.update() + self.end_date.value = "" + self.end_date.update() + + def on_start_date_click(self, e): + self.start_date.value = e.control.value.strftime('%Y-%m-%d') + self.start_date.update() + total = 0 + self.data_table.rows.clear() + buffer = [] + data = datetime.strptime(self.start_date.value, '%Y-%m-%d') + for r in self.rows_copy: + obj_date = datetime.strptime(r[3], '%Y-%m-%d') + if data <= obj_date: + row = ft.DataRow( + cells=[ + ft.DataCell(ft.Text(r[0])), + ft.DataCell(ft.Text(r[1])), + ft.DataCell(ft.Text(r[2])), + ft.DataCell(ft.Text(r[3])), + ft.DataCell(ft.Text(r[4])), + ft.DataCell(ft.Text(r[5])), + ft.DataCell(ft.Text(r[6])), + ], + ) + self.data_table.rows.append(row) + buffer.append(r) + total += r[6] + self.rows_copy = buffer + self.data_table.update() + self.total.value = f"Total: {total}" + self.total.update() + + def on_end_date_click(self, e): + self.end_date.value = e.control.value.strftime('%Y-%m-%d') + self.end_date.update() + total = 0 + self.data_table.rows.clear() + buffer = [] + data = datetime.strptime(self.end_date.value, '%Y-%m-%d') + for r in self.rows_copy: + obj_date = datetime.strptime(r[3], '%Y-%m-%d') + if data >= obj_date: + row = ft.DataRow( + cells=[ + ft.DataCell(ft.Text(r[0])), + ft.DataCell(ft.Text(r[1])), + ft.DataCell(ft.Text(r[2])), + ft.DataCell(ft.Text(r[3])), + ft.DataCell(ft.Text(r[4])), + ft.DataCell(ft.Text(r[5])), + ft.DataCell(ft.Text(r[6])), + ], + ) + self.data_table.rows.append(row) + buffer.append(r) + total += r[6] + self.rows_copy = buffer + self.data_table.update() + self.total.value = f"Total: {total}" + self.total.update() + + def filter_by_client(self, e): + total = 0 + self.data_table.rows.clear() + buffer = [] + for r in self.rows_copy: + #print(r[1]) + #print(self.clients_filter.value) + if r[1] == self.clients_filter.value: + row = ft.DataRow( + cells=[ + ft.DataCell(ft.Text(r[0])), + ft.DataCell(ft.Text(r[1])), + ft.DataCell(ft.Text(r[2])), + ft.DataCell(ft.Text(r[3])), + ft.DataCell(ft.Text(r[4])), + ft.DataCell(ft.Text(r[5])), + ft.DataCell(ft.Text(r[6])), + ], + ) + self.data_table.rows.append(row) + buffer.append(r) + total += r[6] + self.rows_copy = buffer + self.data_table.update() + self.total.value = f"Total: {total}" + self.total.update() + + def filter_by_transporter(self, e): + total = 0 + self.data_table.rows.clear() + buffer = [] + for r in self.rows_copy: + #print(r[2]) + #print(self.transporters_filter.value) + if r[2] == self.transporters_filter.value: + row = ft.DataRow( + cells=[ + ft.DataCell(ft.Text(r[0])), + ft.DataCell(ft.Text(r[1])), + ft.DataCell(ft.Text(r[2])), + ft.DataCell(ft.Text(r[3])), + ft.DataCell(ft.Text(r[4])), + ft.DataCell(ft.Text(r[5])), + ft.DataCell(ft.Text(r[6])), + ], + ) + self.data_table.rows.append(row) + buffer.append(r) + total += r[6] + self.rows_copy = buffer + self.data_table.update() + self.total.value = f"Total: {total}" + self.total.update() + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Row( + [ + ft.Text("Reports", size=24, weight=ft.FontWeight.BOLD), + self.total + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + ft.Row( + [ + self.start_date, + ft.ElevatedButton( + "Start Date", + on_click=lambda _: self.page.open(ft.DatePicker( + first_date=datetime(year=2000, month=10, day=1), + last_date=datetime(year=2025, month=10, day=1), + on_change=self.on_start_date_click, + )), + width=120, + icon=ft.Icons.CALENDAR_MONTH + ), + self.end_date, + ft.ElevatedButton( + "End Date", + on_click=lambda _: self.page.open(ft.DatePicker( + first_date=datetime(year=2000, month=10, day=1), + last_date=datetime(year=2025, month=10, day=1), + on_change=self.on_end_date_click, + )), + width=120, + icon=ft.Icons.CALENDAR_MONTH + ), + ft.Text(), + self.clients_filter_placeholder, + self.transporters_filter_placeholder, + ft.ElevatedButton("Reset", on_click=self.on_reset_btn_click, width=120), + ] + ), + ft.Column( + [ + ft.Row( + [ + self.data_table, + self.status_text, + ], + expand=True, + ) + ], + alignment=ft.MainAxisAlignment.START, + scroll=ft.ScrollMode.ADAPTIVE, + expand=True, + ) + ], + expand=True, + alignment=ft.MainAxisAlignment.START, + ), + expand=True + ) \ No newline at end of file diff --git a/transportmanager/client/pages/reset_password_page.py b/transportmanager/client/pages/reset_password_page.py new file mode 100644 index 0000000..10db216 --- /dev/null +++ b/transportmanager/client/pages/reset_password_page.py @@ -0,0 +1,68 @@ +import flet as ft +import requests +import re +from config import API_BASE_URL + +class ResetPasswordPage: + def __init__(self, page: ft.Page): + self.page = page + self.page.update() + self.token = None + if '/reset_password?token=' in self.page.route: + self.token = self.page.route.split('?token=')[1] + self.password = ft.TextField(label="New Password", password=True, can_reveal_password=True) + self.confirm_password = ft.TextField(label="Confirm Password", password=True, can_reveal_password=True) + self.message = ft.Text("") + self.submit_btn = ft.ElevatedButton("Reset Password", on_click=self.on_submit) + + def on_submit(self, e): + new_password = self.password.value.strip() + confirm_password = self.confirm_password.value.strip() + + # Password strength validation + if len(new_password) < 8 or not re.search(r"[A-Z]", new_password) or not re.search(r"[0-9]", new_password): + self.message.value = "Password must be at least 8 characters long and include a number and a capital letter." + self.page.update() + return + + if not new_password or not confirm_password: + self.message.value = "Both fields are required." + elif new_password != confirm_password: + self.message.value = "Passwords do not match." + elif len(new_password) < 6: + self.message.value = "Password must be at least 6 characters." + else: + try: + response = requests.post( + f"{API_BASE_URL}/auth/reset_password", + json={"token": self.token, "new_password": new_password}, + timeout=10 + ) + if response.status_code == 200: + self.message.value = "Password reset successfully. Please login." + else: + self.message.value = "Invalid or expired token." + except Exception as ex: + self.message.value = f"Request failed: {ex}" + + self.page.update() + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Text("Reset Your Password", style=ft.TextThemeStyle.HEADLINE_MEDIUM), + self.password, + self.confirm_password, + self.message, + self.submit_btn + ], + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + expand=True, + ), + expand=True, + alignment=ft.alignment.center, + padding=20, + width=350 + ) \ No newline at end of file diff --git a/transportmanager/client/pages/send_email_page.py b/transportmanager/client/pages/send_email_page.py new file mode 100644 index 0000000..fcb3f24 --- /dev/null +++ b/transportmanager/client/pages/send_email_page.py @@ -0,0 +1,118 @@ +import flet as ft +import requests +import json +from config import API_BASE_URL + +class SendEmail: + def __init__(self, page: ft.Page, view_page, dashboard, order_id): + self.page = page + self.view_page = view_page + self.dashboard = dashboard + self.order_id = order_id + self.smtp_password = ft.TextField(label="PASSWORD") + self.message = ft.TextField(label="Message", multiline=True, min_lines=10, max_lines=20, expand=True) + self.send = ft.ElevatedButton("Send", width=150, on_click=self.send_email) + self.order = self.get_order() + if self.order: + transporter = self.get_transporter(self.order['transporter_id']) + self.to_email = transporter['email'] + self.smtp_host = '' + self.smtp_port = '' + self.from_email = '' + + def on_go_back_btn_click(self, e): + self.dashboard.placeholder.content = self.view_page.build() + self.dashboard.placeholder.update() + + def send_email(self, e): + user_id = self.page.session.get("user_id") + user = self.get_user() + transporter_data = { + "to_email":self.to_email, + "subject":self.order['order_number'], + "body":self.message.value, + "filename":f'order_{user_id}_{self.order['order_number']}.pdf', + "smtp_host":self.smtp_host, + "smtp_port":self.smtp_port, + "smtp_user":self.from_email, + "smtp_pass": self.smtp_password.value, + } + self.send_email_custom(transporter_data) + user_data = { + "to_email":user['email'], + "subject":self.order['order_number'], + "body":self.message.value, + "filename":f'order_{user_id}_{self.order['order_number']}.pdf', + "smtp_host":self.smtp_host, + "smtp_port":self.smtp_port, + "smtp_user":self.from_email, + "smtp_pass": self.smtp_password.value, + } + self.send_email_custom(user_data) + + def send_email_custom(self, data): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders/send-email/custom", headers=headers, data=json.dumps(data)) + return response.json() if response.status_code == 200 else None + + def get_transporter(self, id): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + user_id = self.page.session.get("user_id") + response = requests.get(f"{API_BASE_URL}/transporters/{id}", headers=headers) + return response.json() if response.status_code == 200 else None + + def get_order(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders/{self.order_id}", headers=headers) + return response.json() if response.status_code == 200 else None + + def get_user(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/profile", headers=headers) + return response.json() if response.status_code == 200 else None + + def get_email_credentials(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/profile/email", headers=headers) + credentials = response.json() + self.smtp_host = credentials['smtp_host'] + self.smtp_port = credentials['smtp_port'] + self.from_email = credentials['smtp_user'] + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Row( + [ + ft.Text("Send E-mail", size=24, weight=ft.FontWeight.BOLD), + ft.Button("Back", icon=ft.Icons.ARROW_BACK_IOS_NEW, on_click=self.on_go_back_btn_click) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + ft.Row( + [ + ft.Column( + [ + ft.Text("Please insert email password:"), + self.smtp_password, + ] + ), + self.send + ], + vertical_alignment=ft.CrossAxisAlignment.END, + expand=True + ), + self.message + ], + alignment=ft.MainAxisAlignment.START, + scroll=ft.ScrollMode.ADAPTIVE, + expand=True + ), + expand=True + ) \ No newline at end of file diff --git a/transportmanager/client/pages/subscription_page.py b/transportmanager/client/pages/subscription_page.py new file mode 100644 index 0000000..4dde52d --- /dev/null +++ b/transportmanager/client/pages/subscription_page.py @@ -0,0 +1,247 @@ +import flet as ft +import requests +from config import API_BASE_URL + +class Subscription: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + self.subscription = self.get_current_subscription_plan() + self.plan = { + 'first_2_months':'First Two Months' , + 'monthly':'Monthly', + 'yearly':'Yearly' + } + self.status = { + 'active':'Active', + 'cancelled':'Cancelled', + 'expired':'Expired', + 'less_than_5_days':'Less than 5 days' + } + self.current_subscription_plan = ft.Text(self.plan[self.subscription['plan']] if self.subscription else "No subscription") + self.current_subscription_status = ft.Text(self.status[self.subscription['status']] if self.subscription else "None") + self.monthly_subscription_price = ft.Text( + "100 Euro/Month", + weight=ft.FontWeight.BOLD, + size=18, + color=ft.Colors.WHITE + ) + self.year_subscription_price = ft.Text( + "1000 Euro/Year", + weight=ft.FontWeight.BOLD, + size=18, + color=ft.Colors.WHITE + ) + self.first_subscription_price = ft.Text( + "0 Euro/Month", + weight=ft.FontWeight.BOLD, + size=18, + color=ft.Colors.WHITE + ) + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def on_first_two_months_btn_click(self, e): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.post(f"{API_BASE_URL}/subscription/first_2_months", headers=headers, ) + #print(response.text) + self.change_subscription_to_active('first_2_months', 'active') + return response.json() if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def on_month_subscription_btn_click(self, e): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.post(f"{API_BASE_URL}/subscription/one_month", headers=headers) + #print(response.text) + self.change_subscription_to_active('monthly', 'active') + return response.json() if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def on_year_subscription_btn_click(self, e): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.post(f"{API_BASE_URL}/subscription/one_year", headers=headers) + #print(response.text) + self.change_subscription_to_active('yearly', 'active') + return response.json() if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def change_subscription_to_active(self, plan, status): + self.dashboard.subscription_status_bottom.value = "Active" + self.dashboard.subscription_status_bottom.color = ft.Colors.GREEN + self.dashboard.subscription_status_bottom.update() + + self.current_subscription_plan.value = self.plan[plan] + self.current_subscription_plan.update() + + self.current_subscription_status.value = self.status[status] + self.current_subscription_status.update() + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Row( + [ + ft.Text("Subscription", size=24, weight=ft.FontWeight.BOLD), + ft.Column( + [ + ft.Row( + [ + ft.Text("Current Subscription Plan:", weight=ft.FontWeight.BOLD), + self.current_subscription_plan + ] + ), + ft.Row( + [ + ft.Text("Subscription Status:"), + self.current_subscription_status + ] + ) + ] + ) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + ft.Row( + [ + ft.Container( + content = ft.Column( + [ + ft.Icon( + name = ft.Icons.AUTORENEW, + size=150 + ), + ft.Container( + content=ft.Column( + [ + ft.Text("First Two Months", weight=ft.FontWeight.BOLD), + self.first_subscription_price + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + expand=True + ), + bgcolor=ft.Colors.BLUE_200, + padding=20, + width=250 + ), + ft.Row( + [ + ft.FilledButton("Add", width=150, on_click=self.on_first_two_months_btn_click) + ], + alignment=ft.MainAxisAlignment.CENTER, + expand=True + ) + ], + expand = True , + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ), + border_radius=20, + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + padding = ft.padding.symmetric(vertical=20), + width=250, + height=350 + ), + ft.Container( + content = ft.Column( + [ + ft.Icon( + name = ft.Icons.AUTORENEW, + size=150 + ), + ft.Container( + content=ft.Column( + [ + ft.Text("One Month Subscription", weight=ft.FontWeight.BOLD), + self.monthly_subscription_price + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + expand=True + ), + bgcolor=ft.Colors.BLUE_200, + padding=20, + width=250 + ), + ft.Row( + [ + ft.FilledButton("Add / Renew", width=150, on_click=self.on_month_subscription_btn_click) + ], + alignment=ft.MainAxisAlignment.CENTER, + expand=True + ) + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ), + border_radius=20, + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + padding = ft.padding.symmetric(vertical=20), + width=250, + height=350 + ), + ft.Container( + content = ft.Column( + [ + ft.Icon( + name = ft.Icons.AUTORENEW, + size=150 + ), + ft.Container( + content=ft.Column( + [ + ft.Text("One Year Subscription", weight=ft.FontWeight.BOLD), + self.year_subscription_price + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + expand=True + ), + bgcolor=ft.Colors.BLUE_200, + padding=20, + width=250 + ), + ft.Row( + [ + ft.FilledButton("Add / Renew", width=150, on_click=self.on_year_subscription_btn_click) + ], + alignment=ft.MainAxisAlignment.CENTER, + expand=True + ) + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ), + border_radius=20, + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + padding = ft.padding.symmetric(vertical=20), + width=250, + height=350 + ) + ], + alignment=ft.MainAxisAlignment.CENTER, + spacing=20 + ) + ], + alignment=ft.MainAxisAlignment.START, + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + expand=True, + spacing=50 + ), + expand=True + ) \ No newline at end of file diff --git a/transportmanager/client/pages/transporters_page.py b/transportmanager/client/pages/transporters_page.py new file mode 100644 index 0000000..610b577 --- /dev/null +++ b/transportmanager/client/pages/transporters_page.py @@ -0,0 +1,273 @@ +import flet as ft +import requests +from config import API_BASE_URL + +class TransportersPage: + def __init__(self, page: ft.Page, dashboard): + self.page = page + self.dashboard = dashboard + self.transporters = [] + self.dialog = None + self.name = ft.TextField( + label="Name", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.street_and_number = ft.TextField( + label="Street and number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.postal_code = ft.TextField( + label="Postal code", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.city = ft.TextField( + label="City", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.region_county = ft.TextField( + label="Region / County", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.country = ft.TextField( + label="Country", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.register_number = ft.TextField( + label="Register Number", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.contact_person = ft.TextField( + label="Contact Person", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.phone = ft.TextField( + label="Phone", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.email = ft.TextField( + label="Email", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.vat = ft.TextField( + label="VAT", + expand=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + self.user_id = self.page.session.get("user_id") + self.selected_id = None + self.subscription_error = ft.Text("Please subscribe to add new transporter", color=ft.Colors.RED) + + def open_dialog(self, transporter=None): + if transporter: + self.selected_id = transporter["id"] + self.name.value = transporter["name"] + self.street_and_number.value = transporter["address"].split(" %")[0] + self.postal_code.value = transporter["address"].split(" %")[1] + self.city.value = transporter["address"].split(" %")[2] + self.region_county.value = transporter["address"].split(" %")[3] + self.country.value = transporter["address"].split(" %")[4] + self.register_number.value = transporter["register_number"] + self.contact_person.value = transporter["contact_person"] + self.phone.value = transporter["phone"] + self.email.value = transporter["email"] + self.vat.value = transporter["vat"] + else: + self.selected_id = None + self.name.value = "" + self.street_and_number.value = "" + self.postal_code.value = "" + self.city.value = "" + self.region_county.value = "" + self.country.value = "" + self.register_number.value = "" + self.contact_person.value = "" + self.phone.value = "" + self.email.value = "" + self.vat.value = "" + + self.dialog = ft.AlertDialog( + modal=True, + title=ft.Text("Transporter"), + content=ft.Column( + controls=[ + self.name, + self.register_number, + self.vat, + self.contact_person, + self.phone, + self.email, + self.street_and_number, + self.postal_code, + self.city, + self.region_county, + self.country, + ], + width=600 + ), + actions=[ + ft.TextButton("Cancel", on_click=lambda e: self.page.close(self.dialog)), + ft.ElevatedButton("Save", on_click=self.save_transporter) + ], + ) + self.page.dialog = self.dialog + self.page.open(self.dialog) + + def save_transporter(self, e): + address = f'{self.street_and_number.value} %{self.postal_code.value} %{self.city.value} %{self.region_county.value} %{self.country.value}' + + data = { + "name": self.name.value, + "address": address, + "register_number": self.register_number.value, + "contact_person": self.contact_person.value, + "phone": self.phone.value, + "email": self.email.value, + "vat": self.vat.value, + "user_id": self.user_id + } + + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + + if self.selected_id: + requests.put(f"{API_BASE_URL}/transporters/{self.selected_id}", json=data, headers=headers) + else: + requests.post(f"{API_BASE_URL}/transporters/", json=data, headers=headers) + + self.page.close(self.dialog) + self.refresh() + self.page.update() + + def delete_transporter(self, transporter_id): + def confirm_delete(e): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + requests.delete(f"{API_BASE_URL}/transporters/{transporter_id}", headers=headers) + self.page.close(self.confirm_dialog) + self.refresh() + + self.confirm_dialog = ft.AlertDialog( + title=ft.Text("Confirm"), + content=ft.Text("Are you sure you want to delete this transporter?"), + actions=[ + ft.ElevatedButton("Yes", on_click=confirm_delete), + ft.ElevatedButton("No", on_click=lambda e: self.page.close(self.confirm_dialog)) + ] + ) + self.page.dialog = self.confirm_dialog + self.page.open(self.confirm_dialog) + + def refresh(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/transporters/", headers=headers) + if response.ok: + self.transporters = response.json() + else: + self.transporters = [] + + self.transporter_list.controls.clear() + for transporter in self.transporters: + self.transporter_list.controls.append( + ft.Container( + content=ft.Row([ + ft.Column([ + ft.Text(f"{transporter['name']}", size=16, weight=ft.FontWeight.BOLD), + ft.Text(f"{transporter['email']} • {transporter['phone']}", size=12) + ], expand=True), + ft.IconButton(icon=ft.Icons.EDIT, on_click=lambda e, t=transporter: self.open_dialog(t)), + ft.IconButton(icon=ft.Icons.DELETE, on_click=lambda e, t=transporter: self.delete_transporter(t["id"])), + ]), + padding=10, + border=ft.border.all(1, ft.Colors.GREY_300), + bgcolor=ft.Colors.BLUE_50, + border_radius=10, + ) + ) + self.page.update() + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + + def build(self): + self.transporter_list = ft.Column(spacing=10, expand=True, scroll=ft.ScrollMode.ADAPTIVE,) + self.refresh() + self.add_transporter_btn = ft.ElevatedButton("Add Transporter", icon=ft.Icons.ADD, on_click=lambda e: self.open_dialog()) + self.header = ft.Row( + controls=[ + ft.Text("Transporters", size=24, weight=ft.FontWeight.BOLD, expand=True), + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ) + subscription = self.get_current_subscription_plan() + if subscription: + if subscription['status'] != 'expired': + self.header.controls.append(self.add_transporter_btn) + else: + self.header.controls.append(self.subscription_error) + else: + self.header.controls.append(self.subscription_error) + return ft.Column( + [ + self.header, + self.transporter_list + ], + alignment=ft.MainAxisAlignment.START, + + ) diff --git a/transportmanager/client/pages/two_factor_page.py b/transportmanager/client/pages/two_factor_page.py new file mode 100644 index 0000000..e789998 --- /dev/null +++ b/transportmanager/client/pages/two_factor_page.py @@ -0,0 +1,70 @@ +import flet as ft +import requests +from config import API_BASE_URL + +class TwoFactorAuth: + def __init__(self, page: ft.Page, email: str, login, auth): + self.page = page + self.email = email + self.auth = auth + self.login = login + self.code_field = ft.TextField(label="Verification Code") + self.error_text = ft.Text(value="", color=ft.Colors.RED) + self.success_text = ft.Text(value="", color=ft.Colors.GREEN) + self.verify_button = ft.ElevatedButton(text="Verify", on_click=self.on_verify_click, width=150) + self.back_button = ft.TextButton(text="Back to Login", on_click=self.on_back_clicked) + + def on_verify_click(self, e): + code = self.code_field.value + + if not code: + self.error_text.value = "Please enter the verification code." + self.page.update() + return + + try: + response = requests.post(f"{API_BASE_URL}/auth/verify_code", json={"email": self.email, "code": code}) + if response.status_code == 200: + token = response.json().get("access_token") + self.page.client_storage.set("token", token) + user_info = requests.get(f"{API_BASE_URL}/auth/me", headers={"Authorization": f"Bearer {token}"}).json() + self.page.session.set("user_id", user_info.get("id")) + self.page.session.set("first_order_number", user_info['first_order_number']) + #print(user_info.get("user_role")) + if user_info.get("user_role") == 'admin': + print('Admin Logged In') + self.page.go("/admin") + else: + self.success_text.value = "Verification successful. You are now logged in." + self.error_text.value = "" + self.page.update() + self.page.go("/dashboard") # Change this to your main page + else: + self.error_text.value = "Invalid or expired code." + self.success_text.value = "" + self.page.update() + except Exception as err: + self.error_text.value = f"Error: {err}" + self.success_text.value = "" + self.page.update() + + def on_back_clicked(self, e): + self.auth.placeholder.content.clean() + self.auth.placeholder.content = self.login.build() + self.auth.placeholder.update() + + def build(self): + return ft.Column( + [ + ft.Text(value=f"Enter the code sent to {self.email}", size=18), + self.code_field, + self.verify_button, + self.error_text, + self.success_text, + self.back_button + ], + horizontal_alignment=ft.CrossAxisAlignment.CENTER, + alignment=ft.MainAxisAlignment.CENTER, + spacing=20, + width=350 + ) \ No newline at end of file diff --git a/transportmanager/client/pages/view_orders_in_page.py b/transportmanager/client/pages/view_orders_in_page.py new file mode 100644 index 0000000..5d6ba7d --- /dev/null +++ b/transportmanager/client/pages/view_orders_in_page.py @@ -0,0 +1,1215 @@ +import flet as ft +import requests +import datetime +import time +from config import API_BASE_URL + +class ViewOrdersIn: + def __init__(self, page: ft.Page, archive, dashboard): + self.page = page + self.archive = archive + self.order_id = self.page.session.get("order_in_id") + self.order = self.get_order_details() + #print("*******") + #print(self.order) + #print("*******") + self.dashboard = dashboard + + self.order_number = ft.TextField( + label=f"Order Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value = self.order['order_number'] + ) + + self.selected_client_id = self.order['client_id'] + + self.all_clients = self.get_all_clients() + self.filtered_clients = self.all_clients.copy() + self.client_search_field = ft.TextField(label="Search Clients...", on_change=self.on_searching_client) + self.client_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for client in self.all_clients + ] + ) + + #update search filed + for client in self.all_clients: + if client["id"] == self.selected_client_id: + self.client_search_field.value = client['name'] + + self.all_addresses = self.get_all_addresses() + self.selected_loading_address_id = None + self.filtered_addresses = self.all_addresses.copy() + self.loading_address_search_field = ft.TextField(label="Search Loading Address...", on_change=self.on_searching_loading_address) + self.loading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_loading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.loading_informations = ft.TextField( + label="Loading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.loading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.loading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.loading = ft.ListView( + spacing=10, + ) + + self.selected_unloading_address_id = None + self.filtered_addresses_ul = self.all_addresses.copy() + self.unloading_address_search_field = ft.TextField(label="Search Unloading Address...", on_change=self.on_searching_unloading_address) + self.unloading_address_results = ft.Column( + spacing=10, + controls=[ + ft.Container( + content=ft.Row( + controls=[ + ft.Text(address["name"], expand=True), + ft.IconButton(icon=ft.Icons.LOCATION_PIN, on_click=lambda e, t=address: self.on_location_btn_click(t)) + ], + expand=True + ), + bgcolor=ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, t=address: self.on_unloading_address_selected(e, t), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + for address in self.all_addresses + ] + ) + + self.unloading_informations = ft.TextField( + label="Unloading Instructions", + min_lines=3, + max_lines=7, + multiline=True, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + ) + + self.unloading_date = ft.TextField(label="Date", expand=True, read_only=True) + + self.unloading_hour = ft.TextField(label="Hour", expand=True, read_only=True) + + self.unloading = ft.ListView( + spacing=10, + ) + + self.ldm_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""), + value=self.order['ldb_quantity'] + ) + + self.kg_quantity = ft.TextField( + expand=True, + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""), + value=self.order['kg_quantity'] + ) + + self.track_reg_number = ft.TextField( + label="Track Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value=self.order['track_reg_number'] + ) + + self.trailer_reg_number = ft.TextField( + label="Trailer Reg. Number", + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value=self.order['trailer_reg_number'] + ) + + self.received_price = ft.TextField( + label="Price Received - visible only to you!", + keyboard_type=ft.KeyboardType.NUMBER, + input_filter=ft.InputFilter(allow=True, regex_string=r"^[0-9]*\.?[0-9]*$", replacement_string=""), + value=self.order['received_price'] + ) + + self.error_message = ft.Text(color = ft.Colors.RED) + + self.loading_query = [] + self.loading_error_message = ft.Text(color= ft.Colors.RED) + + self.unloading_query = [] + self.unloading_error_message = ft.Text(color= ft.Colors.RED) + + self.product_description= ft.TextField( + label="Description", + multiline=True, + min_lines=3, + max_lines=5, + input_filter=ft.InputFilter( + allow=True, + regex_string=r"^[\x20-\x7E]*$", + replacement_string="" + ), + value=self.order['products_description'] + ) + + #add loading points + self.init_loading_query = self.order['loading_points'] + addresses = [] + for init_addr in self.init_loading_query: + for all_addr in self.all_addresses: + if init_addr['destination_id'] == all_addr['id']: + adr = '' + street_and_number = all_addr["address"].split(" %")[0] + postal_code = all_addr["address"].split(" %")[1] + city = all_addr["address"].split(" %")[2] + region_county = all_addr["address"].split(" %")[3] + country = all_addr["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + address = { + 'loading_address_id': init_addr['destination_id'], + 'loading_address_name': all_addr['name'], + 'loading_address': adr, + 'loading_date': init_addr['point_data'], + 'loading_hour': init_addr['point_hour'], + 'loading_informatins': init_addr['informatins'] + } + addresses.append(address) + break + self.loading_query = addresses + self.loading.controls = self.create_loading_list(addresses, self.on_delete_loading_address_btn_click) + + #add unloading points + self.init_unloading_query = self.order['unloading_points'] + addresses = [] + for init_addr in self.init_unloading_query: + for all_addr in self.all_addresses: + if init_addr['destination_id'] == all_addr['id']: + adr = '' + street_and_number = all_addr["address"].split(" %")[0] + postal_code = all_addr["address"].split(" %")[1] + city = all_addr["address"].split(" %")[2] + region_county = all_addr["address"].split(" %")[3] + country = all_addr["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + address = { + 'unloading_address_id': init_addr['destination_id'], + 'unloading_address_name': all_addr['name'], + 'unloading_address': adr, + 'unloading_date': init_addr['point_data'], + 'unloading_hour': init_addr['point_hour'], + 'unloading_informatins': init_addr['informatins'] + } + addresses.append(address) + break + self.unloading_query = addresses + self.unloading.controls = self.create_unloading_list(addresses, self.on_delete_unloading_address_btn_click) + + def on_go_back_btn_click(self, e): + self.dashboard.placeholder.content = self.archive.build() + self.dashboard.placeholder.update() + + def get_order_details(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/orders_in/{self.order_id}", headers=headers) + if response.status_code == 200: + return response.json() + else: + return None + except Exception as e: + print("Error loading clients:", e) + return None + + def on_location_btn_click(self, destination): + query = destination["address"].replace(", ", "+") + maps_url = f"https://www.google.com/maps/search/?api=1&query={query}" + self.page.launch_url(maps_url) + + def on_searching_client(self, e): + query = e.control.value.lower() + self.filtered_clients = [client for client in self.all_clients if query in client["name"].lower()] + self.update_client_list(self.filtered_clients) + + def init_search_client(self): + query = self.client_search_field.value.lower() + self.filtered_clients = [client for client in self.all_clients if query in client["name"].lower()] + self.client_results.controls.clear() + for client in self.filtered_clients: + self.client_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + + def update_client_list(self, clients): + self.client_results.controls.clear() + for client in clients: + self.client_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(client["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if client["id"] == self.selected_client_id else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e, c=client: self.on_client_selected(e, c), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.client_results.update() + + def on_client_selected(self, e, client): + self.selected_client_id = client["id"] + self.client_search_field.value = client["name"] + self.client_search_field.update() + self.update_client_list(self.filtered_clients) + + def on_searching_loading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_loading_addresses_list(self.filtered_addresses) + + def update_loading_addresses_list(self, addresses): + self.loading_address_results.controls.clear() + for address in addresses: + self.loading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_loading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_loading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.loading_address_results.update() + + def on_loading_address_selected(self, e, address): + self.selected_loading_address_id = address["id"] + self.loading_address_search_field.value = address["name"] + self.loading_address_search_field.update() + self.update_loading_addresses_list(self.filtered_addresses) + + def on_loading_date_click(self, e): + self.loading_date.value = e.control.value.strftime('%m/%d/%Y') + self.loading_date.update() + #print(self.loading_date.value) + + def on_loading_hour_click(self, e): + if len(self.loading_hour.value) != None and len(self.loading_hour.value)==0: + self.loading_hour.value = str(e.control.value) + else: + self.loading_hour.value += f' - {e.control.value}' + self.loading_hour.update() + #print(self.loading_hour.value) + + def on_reset_loading_hour_btn_click(self, e): + self.loading_hour.value = None + self.loading_hour.update() + + def add_loading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_loading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_loading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + #print(adr) + #print(_address['address']) + + loading_informatins = self.loading_informations.value + date = self.loading_date.value + hour = self.loading_hour.value + + #create loading list + address = { + 'loading_address_id': self.selected_loading_address_id, + 'loading_address_name': name, + 'loading_address': adr, + 'loading_informatins': loading_informatins, + 'loading_date': date, + 'loading_hour': hour + } + #print(address) + + if self.selected_loading_address_id == None: + self.loading_error_message.value = "Please select loading point!" + self.loading_error_message.update() + return + if self.loading_informations.value == None or len(self.loading_informations.value) == 0: + self.loading_error_message.value = "Add loading informations!" + self.loading_error_message.update() + return + if self.loading_date.value == None or len(str(self.loading_date.value)) == 0: + self.loading_error_message.value = "Add loading date!" + self.loading_error_message.update() + return + # if self.loading_hour.value == None or len(str(self.loading_hour.value)) == 0: + # self.loading_error_message.value = "Add loading hour!" + # self.loading_error_message.update() + # return + + if self.selected_loading_address_id: + self.loading_query.append(address) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + #reset to default + self.selected_loading_address_id = None + self.loading_informations.value = None + self.loading_informations.update() + self.loading_date.value = None + self.loading_date.update() + self.loading_hour.value = None + self.loading_hour.update() + self.loading_error_message.value = None + self.loading_error_message.update() + else: + self.loading_error_message.value = "All fields of the loading address are required." + self.loading_error_message.update() + + def on_searching_unloading_address(self, e): + query = e.control.value.lower() + self.filtered_addresses_ul = [a for a in self.all_addresses if query in a["name"].lower()] + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def update_unloading_addresses_list(self, addresses): + self.unloading_address_results.controls.clear() + for address in addresses: + self.unloading_address_results.controls.append( + ft.Container( + content=ft.Row( + controls=[ft.Text(address["name"], expand=True)], + expand=True + ), + bgcolor=ft.Colors.BLUE_100 if address["id"] == getattr(self, "selected_unloading_address_id", None) else ft.Colors.BLUE_50, + padding=10, + ink=True, + on_click=lambda e,a=address: self.on_unloading_address_selected(e, a), + border=ft.border.all(1, ft.Colors.GREY_300), + border_radius=10, + expand=True + ) + ) + self.unloading_address_results.update() + + def on_unloading_address_selected(self, e, address): + self.selected_unloading_address_id = address["id"] + self.unloading_address_search_field.value = address["name"] + self.unloading_address_search_field.update() + self.update_unloading_addresses_list(self.filtered_addresses_ul) + + def on_unloading_date_click(self, e): + self.unloading_date.value = e.control.value.strftime('%m/%d/%Y') + self.unloading_date.update() + + def on_unloading_hour_click(self, e): + if len(self.unloading_hour.value) != None and len(self.unloading_hour.value)==0: + self.unloading_hour.value = str(e.control.value) + else: + self.unloading_hour.value += f' - {e.control.value}' + self.unloading_hour.update() + + def on_reset_unloading_hour_btn_click(self, e): + self.unloading_hour.value = None + self.unloading_hour.update() + + def add_unloading_point_btn_click(self, e): + adr = None + name = None + #print(self.selected_unloading_address_id) + for _address in self.all_addresses: + if _address['id'] == self.selected_unloading_address_id: + adr = '' + street_and_number = _address["address"].split(" %")[0] + postal_code = _address["address"].split(" %")[1] + city = _address["address"].split(" %")[2] + region_county = _address["address"].split(" %")[3] + country = _address["address"].split(" %")[4] + if len(street_and_number) > 0: + adr += street_and_number +', ' + if len(postal_code) > 0: + adr += postal_code +', ' + if len(city) > 0: + adr += city +', ' + if len(region_county) > 0: + adr += region_county +', ' + if len(country) > 0: + adr += country + name = _address['name'] + unloading_informatins = self.unloading_informations.value + date = self.unloading_date.value + hour = self.unloading_hour.value + address = { + 'unloading_address_id': self.selected_unloading_address_id, + 'unloading_address_name': name, + 'unloading_address': adr, + 'unloading_informatins': unloading_informatins, + 'unloading_date': date, + 'unloading_hour': hour + } + + if self.selected_unloading_address_id == None: + self.unloading_error_message.value = "Please select unloading point!" + self.unloading_error_message.update() + return + if self.unloading_informations.value == None or len(self.unloading_informations.value) == 0: + self.unloading_error_message.value = "Add unloading informations!" + self.unloading_error_message.update() + return + if self.unloading_date.value == None or len(str(self.unloading_date.value)) == 0: + self.unloading_error_message.value = "Add unloading date!" + self.unloading_error_message.update() + return + # if self.unloading_hour.value == None or len(str(self.unloading_hour.value)) == 0: + # self.unloading_error_message.value = "Add unloading hour!" + # self.unloading_error_message.update() + # return + + if self.selected_unloading_address_id: + self.unloading_query.append(address) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + #reset to default + self.selected_unloading_address_id = None + self.unloading_informations.value = None + self.unloading_informations.update() + self.unloading_date.value = None + self.unloading_date.update() + self.unloading_hour.value = None + self.unloading_hour.update() + self.unloading_error_message.value = None + self.unloading_error_message.update() + else: + self.unloading_error_message.value = "All fields of the unloading address are required." + self.unloading_error_message.update() + + def get_all_clients(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/clients/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch clients:", response.status_code) + return [] + + def get_all_addresses(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/destinations/", headers=headers) + if response.status_code == 200: + return response.json() + else: + print("Failed to fetch addresses:", response.status_code) + return [] + + def create_loading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['loading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['loading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['loading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['loading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_loading_address_btn_click(self, item): + self.loading_query.remove(item) + self.loading.controls.clear() + self.loading.controls = self.create_loading_list(self.loading_query, self.on_delete_loading_address_btn_click) + self.loading.update() + + def create_unloading_list(self, items, on_click_handler): + """Helper to create list items for a column.""" + return [ + ft.Container( + content=ft.Row( + [ + ft.Column( + [ + ft.Text( + item['unloading_address_name'], + expand=True, + size=15, + weight=ft.FontWeight.BOLD + ), + ft.Text( + item['unloading_address'], + expand=True, + size=12, + ), + ft.Row( + [ + ft.Text( + f"Date: {item['unloading_date']}", + expand=True, + size=12, + ), + ft.Text( + f"Hour: {item['unloading_hour']}", + expand=True, + size=12, + ) + ] + ) + + ] + ), + ft.Row( + [ + ft.FilledButton( + "Delete", + bgcolor=ft.Colors.RED, + on_click=lambda e, id=item: on_click_handler(id), + width=100 + ) + ] + ) + + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + ), + width=300, + bgcolor=ft.Colors.BLUE_50, + padding=10, + border_radius=8, + border=ft.border.all(1, ft.Colors.GREY_300), + #ink=True, # To enable click effect + #on_click=lambda e, id=item: on_click_handler(id), # Attach the click handler + ) + for item in items + ] + + def on_delete_unloading_address_btn_click(self, item): + #print(item) + #print(self.unloading_query) + self.unloading_query.remove(item) + self.unloading.controls.clear() + self.unloading.controls = self.create_unloading_list(self.unloading_query, self.on_delete_unloading_address_btn_click) + self.unloading.update() + + def on_save_btn_click(self, e): + #print(self.unloading_query) + loading_addresses = [] + unloading_addresses = [] + for laddr in self.loading_query: + #print(self.loading_query) + #print(laddr) + laddr_copy = laddr.copy() + #if isinstance(laddr_copy.get("loading_hour"), datetime.time): + #laddr_copy["loading_hour"] = laddr_copy["loading_hour"].strftime("%H:%M") + loading_addresses.append(laddr_copy) + + for uaddr in self.unloading_query: + uaddr_copy = uaddr.copy() + #if isinstance(uaddr_copy.get("unloading_hour"), datetime.time): + #uaddr_copy["unloading_hour"] = uaddr_copy["unloading_hour"].strftime("%H:%M") + unloading_addresses.append(uaddr_copy) + + saved_data = { + 'order_number': self.order_number.value, + 'client_id': self.selected_client_id, + 'products_description': self.product_description.value, + 'ldb_quantity': self.ldm_quantity.value, + 'kg_quantity': self.kg_quantity.value, + 'track_reg_number': self.track_reg_number.value, + 'trailer_reg_number': self.trailer_reg_number.value, + 'received_price': self.received_price.value, + 'loading_addresses': loading_addresses, + 'unloading_addresses': unloading_addresses + } + #print(saved_data) + if self.order_number.value == None or len(self.order_number.value)==0: + self.error_message.value = "Order number is mandatory!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.selected_client_id == None: + self.error_message.value = "Please select the client!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.product_description.value == None or len(self.product_description.value)==0: + self.error_message.value = "Please insert product description!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + # if self.ldm_quantity.value == None or len(self.ldm_quantity.value)==0: + # self.error_message.value = "Please insert LDM!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + # if self.kg_quantity.value == None or len(self.kg_quantity.value)==0: + # self.error_message.value = "Please insert KG!" + # self.error_message.color = ft.Colors.RED + # self.error_message.update() + # return + if self.track_reg_number.value == None or len(self.track_reg_number.value)==0: + self.error_message.value = "Please insert Track Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if self.trailer_reg_number.value == None or len(self.trailer_reg_number.value)==0: + self.error_message.value = "Please insert Trailer Registration Number!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(loading_addresses) == 0: + self.error_message.value = "Please add loading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + if len(unloading_addresses) == 0: + self.error_message.value = "Please add unloading point!" + self.error_message.color = ft.Colors.RED + self.error_message.update() + return + + # --- POST request to save the order in the database --- + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + user_id = self.page.session.get("user_id") + saved_data["user_id"] = user_id + user = self.get_user_data() + saved_data['terms'] = user['terms'] + + try: + response = requests.put(f"{API_BASE_URL}/orders_in/{self.order_id}", json=saved_data, headers=headers) + if response.status_code == 200: + self.error_message.value = "Order updated successfully, Please wait!" + self.error_message.color = ft.Colors.GREEN + self.error_message.update() + time.sleep(3) + self.dashboard.placeholder.content = self.archive.build() + self.dashboard.placeholder.update() + else: + self.error_message.value = f"Failed to save order: {response.status_code} - {response.text}" + self.error_message.update() + except Exception as ex: + self.error_message.value = f"Error: {str(ex)}" + self.error_message.update() + + def get_user_data(self): + try: + token = self.page.client_storage.get("token") + if not token: + self.message.value = "Unauthorized: No token" + return + response = requests.get(f"{API_BASE_URL}/profile/", headers={"Authorization": f"Bearer {token}"}) + if response.status_code == 200: + user_data = response.json() + return user_data + return None + except Exception as e: + return None + + def get_current_subscription_plan(self): + try: + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/subscription/", headers=headers) + #print(response.text) + return response.json()[-1] if response.status_code == 200 else None + except Exception as e: + print("Error loading subscription:", e) + return None + + def build(self): + self.save_btn = ft.FilledButton( + "Save", + width=200, + on_click=self.on_save_btn_click, + ) + self.save_row = ft.Row([],alignment=ft.MainAxisAlignment.CENTER) + if self.get_current_subscription_plan()['status'] != 'expired': + self.save_row.controls.append(self.save_btn) + self.init_search_client() + return ft.Container( + ft.Column( + [ + ft.Row( + [ + ft.Text("View Order In", size=24, weight=ft.FontWeight.BOLD), + ft.Button("Back", icon=ft.Icons.ARROW_BACK_IOS_NEW, on_click=self.on_go_back_btn_click) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + ft.Text("Number", size=18, weight=ft.FontWeight.BOLD), + self.order_number + ] + ), + ft.Row( + [ + ft.Column( + [ + ft.Text("Client", size=18, weight=ft.FontWeight.BOLD), + self.client_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.client_results], + scroll=ft.ScrollMode.ADAPTIVE, + ), + #clip_behavior=ft.ClipBehavior., + expand=True, + padding=0, + ), + height=250 #if len(self.client_results.controls) > 4 else None, + ) + ], + expand=True + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Row( + [ + ft.Text("Product Details", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Container( + content = self.product_description, + expand=True + ), + ft.Row( + [ + ft.Text( + value="LDM" + ), + self.ldm_quantity, + ft.Text(" "), + ft.Text( + value="KG" + ), + self.kg_quantity, + ], + expand=True + ) + ], + expand=True, + + ) + ], + expand=5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Truck / Trailer Info", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + self.track_reg_number, + self.trailer_reg_number + ], + expand=True + ) + ], + expand=2.5 + ), + ft.Column( + [ + ft.Row( + [ + ft.Text("Price", size=18, weight=ft.FontWeight.BOLD) + ], + alignment=ft.MainAxisAlignment.START + ), + self.received_price, + ], + expand=2.5 + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Divider(), + ft.Row( + [ + ft.Column( + [ + ft.Text("Loading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.loading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.loading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.loading_informations, + expand = True + ), + ft.Row( + [ + self.loading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_loading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.loading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_loading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_loading_hour_btn_click + ), + ], + expand=True + ), + self.loading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Loading Point", + on_click=self.add_loading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.loading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ), + ft.Column( + [ + ft.Text("Unloading Points", size=18, weight=ft.FontWeight.BOLD), + ft.Column( + [ + self.unloading_address_search_field, + ft.Container( + content=ft.Container( + content=ft.Column( + controls=[self.unloading_address_results], + scroll=ft.ScrollMode.ADAPTIVE + ), + expand=True, + padding=0, + ), + height=250 if len(self.filtered_addresses_ul) > 4 else None, + ) + ], + expand=5 + ), + ft.Container( + content = self.unloading_informations, + expand=True + ), + ft.Row( + [ + self.unloading_date, + ft.ElevatedButton( + "Pick date", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.DatePicker( + first_date=datetime.datetime(year=2000, month=10, day=1), + last_date=datetime.datetime(year=2025, month=10, day=1), + on_change=self.on_unloading_date_click, + ) + ), + ) + ], + expand=True + ), + ft.Row( + [ + self.unloading_hour, + ft.ElevatedButton( + "Pick hour - Start", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Pick hour - End", + icon=ft.Icons.CALENDAR_MONTH, + on_click=lambda e: self.page.open( + ft.TimePicker( + confirm_text="Confirm", + error_invalid_text="Time out of range", + help_text="Pick your time slot", + on_change=self.on_unloading_hour_click, + time_picker_entry_mode = ft.TimePickerEntryMode.INPUT_ONLY + ) + ), + ), + ft.ElevatedButton( + "Reset", + on_click = self.on_reset_unloading_hour_btn_click + ), + ], + expand=True + ), + self.unloading_error_message, + ft.Row( + [ + ft.ElevatedButton( + "Add Unloading Point", + on_click=self.add_unloading_point_btn_click, + icon=ft.Icons.ADD + ) + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.unloading + ], + expand=5, + alignment=ft.MainAxisAlignment.START + ) + ], + expand=True, + spacing=20, + vertical_alignment=ft.CrossAxisAlignment.START + ), + ft.Row( + [ + self.error_message, + ], + alignment=ft.MainAxisAlignment.CENTER + ), + self.save_row, + ], + expand=True, + scroll=ft.ScrollMode.ADAPTIVE, + spacing=20 + ) + ) \ No newline at end of file diff --git a/transportmanager/client/pages/view_page.py b/transportmanager/client/pages/view_page.py new file mode 100644 index 0000000..4e85278 --- /dev/null +++ b/transportmanager/client/pages/view_page.py @@ -0,0 +1,50 @@ +import flet as ft +from flet_webview import WebView +from pages.send_email_page import SendEmail +import requests +from config import API_BASE_URL + +class ViewPage: + def __init__(self, page: ft.Page, pdf_name, order_page, dashboard, order_id): + self.page = page + self.pdf_name = pdf_name + self.order_page = order_page + self.dashboard = dashboard + self.order_id = order_id + self.send_email = SendEmail(self.page, self, self.dashboard, self.order_id) + self.view_content = WebView(url=f"{API_BASE_URL}/orders/pdfs/{self.pdf_name}", expand=True) + self.send_btn = ft.FilledButton("Send as Email", on_click=self.on_send_email_btn_click) + self.row_btn = ft.Row([]) + if self.get_credentials(): + self.row_btn.controls.append(self.send_btn) + + def on_go_back_btn_click(self, e): + self.dashboard.placeholder.content = self.order_page.build() + self.dashboard.placeholder.update() + + def on_send_email_btn_click(self, e): + self.dashboard.placeholder.content = self.send_email.build() + self.dashboard.placeholder.update() + + def get_credentials(self): + token = self.page.client_storage.get("token") + headers = {"Authorization": f"Bearer {token}"} + response = requests.get(f"{API_BASE_URL}/profile/email", headers=headers) + return response.json() if response.status_code == 200 else None + + def build(self): + return ft.Container( + content=ft.Column( + [ + ft.Row( + [ + ft.Text("Order", size=24, weight=ft.FontWeight.BOLD), + ft.Button("Back", icon=ft.Icons.ARROW_BACK_IOS_NEW, on_click=self.on_go_back_btn_click) + ], + alignment=ft.MainAxisAlignment.SPACE_BETWEEN + ), + self.view_content, + self.row_btn, + ] + ) + ) \ No newline at end of file diff --git a/transportmanager/client/requirements.txt b/transportmanager/client/requirements.txt new file mode 100644 index 0000000..07e9ca9 --- /dev/null +++ b/transportmanager/client/requirements.txt @@ -0,0 +1,5 @@ +flet==0.28.3 +requests==2.32.3 +python-dotenv==1.0.1 +flet-web==0.28.3 +flet-webview==0.1.0 \ No newline at end of file diff --git a/transportmanager/requirements.txt b/transportmanager/requirements.txt new file mode 100644 index 0000000..cec0e37 --- /dev/null +++ b/transportmanager/requirements.txt @@ -0,0 +1,30 @@ +#client +flet==0.28.3 +requests==2.32.3 +python-dotenv==1.0.1 +flet-web==0.28.3 +flet-webview==0.1.0 + +# --- Flask API (server) requirements --- +# Web framework +Flask==2.3.3 +Flask-Cors==4.0.0 +Flask-JWT-Extended==4.6.0 + +# WSGI server +gunicorn==22.0.0 + +# Database (Postgres) +psycopg[binary]==3.2.1 + +# Utilities +python-dotenv==1.0.1 +requests==2.32.3 + +# Features used by your server +geopy==2.4.1 +reportlab>=3.6.12 +PyPDF2==3.0.1 + +APScheduler==3.10.4 +tzlocal==5.2 \ No newline at end of file diff --git a/transportmanager/server/.DS_Store b/transportmanager/server/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c5224073f4862ec5dd45b66269a33810dd1a9594 GIT binary patch literal 8196 zcmeHM&2G~`5T5N{5~5bAR75XGmbg|WX+x`uO9m7pR7$i%g2BW!OPI|Ni!${8*^ z0k6Q7H{cC;7cRgzyKb?aG*vkORd=h|S=;mN?0&nm&bUM*ngh2+v`R!p29moNBWRF>!8-@YHfMLKeU>GnA{0|J^oz10q#(Q5sHML>DFmNRq z;Pb(Pux=!Jq_sLaP^lCEdJeZ$K^u91!dQuJBzmN^f}&5IJ%|JfMpMV>+B~_7OU0Jy=!?@E8y}kl;T@NPDpL9c44x4fix{<=R^@CEWSh6dt zM@O5r?KNw&x^cW_9qnvX*Q|QIetcXiUcYtw?j!rPAB6Hf=7S=VgOL{X^=ZxXoyw2D zUu*Blpr;UvPk)?eAIMfK;iR~1@7~xcf91U~)kh%R3uAf*>2ZDJ;Z61Nrri&H8ScZ5 zxhV3^#17)U6k=z4xqa{*HtGF5X8*6(zJ8~MwcpankK z{{P_Y@Bf#0hGyu70mHy~42Zc_yVZo%$xp~UfOBmN@)E*@?M7NF2r8A1L#uQg`t%=$ fXj?F4Oe4`Ft#JqCuYU;0W;N#huU5fSSB-&RnWJ|n literal 0 HcmV?d00001 diff --git a/transportmanager/server/admin/__init__.py b/transportmanager/server/admin/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/transportmanager/server/admin/billing.py b/transportmanager/server/admin/billing.py new file mode 100644 index 0000000..e69de29 diff --git a/transportmanager/server/admin/subscription.py b/transportmanager/server/admin/subscription.py new file mode 100644 index 0000000..319672f --- /dev/null +++ b/transportmanager/server/admin/subscription.py @@ -0,0 +1,53 @@ +from flask import Blueprint, jsonify, request +from flask_jwt_extended import jwt_required +from models.subscription import Subscription + +admin_subscription_bp = Blueprint("admin_subscription", __name__, url_prefix="/admin/subscriptions") + +# List all subscriptions +@admin_subscription_bp.route("", methods=["GET"]) +@jwt_required() +def list_subscriptions(): + subscription_model = Subscription() + + # Optional: if you want, you can add pagination here later! + subscriptions = subscription_model.get_all() + return jsonify(subscriptions), 200 + +# Update subscription status +@admin_subscription_bp.route("/update_status", methods=["POST"]) +@jwt_required() +def update_subscription_status(): + data = request.json + subscription_id = data.get("subscription_id") + new_status = data.get("status") + + if not subscription_id or not new_status: + return jsonify({"error": "Missing subscription_id or status"}), 400 + + subscription_model = Subscription() + updated_rows = subscription_model.update_status(subscription_id, new_status) + + if updated_rows == 0: + return jsonify({"error": "Subscription not found"}), 404 + + return jsonify({"message": "Subscription status updated."}), 200 + +# Cancel subscription +@admin_subscription_bp.route("/cancel", methods=["POST"]) +@jwt_required() +def cancel_subscription(): + data = request.json + subscription_id = data.get("subscription_id") + + if not subscription_id: + return jsonify({"error": "Missing subscription_id"}), 400 + + subscription_model = Subscription() + updated_rows = subscription_model.update_status(subscription_id, "cancelled") + + if updated_rows == 0: + return jsonify({"error": "Subscription not found"}), 404 + + return jsonify({"message": "Subscription cancelled."}), 200 + diff --git a/transportmanager/server/admin/tenants.py b/transportmanager/server/admin/tenants.py new file mode 100644 index 0000000..9de7a06 --- /dev/null +++ b/transportmanager/server/admin/tenants.py @@ -0,0 +1,40 @@ +from flask import Blueprint, jsonify, request +from flask_jwt_extended import jwt_required +from models.user import Users + +admin_user_bp = Blueprint("admin_user", __name__, url_prefix="/admin/users") + +# Get all users with role "user" +@admin_user_bp.route("", methods=["GET"]) +@jwt_required() +def get_all_users(): + users_model = Users() + users = users_model.get_all_users_with_role("user") + return jsonify(users), 200 + +# Get a single user by ID +@admin_user_bp.route("/", methods=["GET"]) +@jwt_required() +def get_user(user_id): + users_model = Users() + user = users_model.get_user_by_id(user_id) + if not user: + return jsonify({"error": "User not found"}), 404 + return jsonify(user), 200 + +# Update a user +@admin_user_bp.route("/update", methods=["POST"]) +@jwt_required() +def update_user(): + if not request.is_json: + print("Content-Type received:", request.content_type) + return jsonify({"error": "Invalid content type, must be application/json"}), 415 + + data = request.get_json() + if not data.get("user_id"): + return jsonify({"error": "Missing user_id"}), 400 + + users_model = Users() + users_model.update_user(data) + + return jsonify({"message": "User updated successfully."}), 200 diff --git a/transportmanager/server/app.py b/transportmanager/server/app.py new file mode 100644 index 0000000..b1ab84f --- /dev/null +++ b/transportmanager/server/app.py @@ -0,0 +1,93 @@ +import os +from flask import Flask, jsonify +from routes.auth import auth_bp +from flask_jwt_extended import JWTManager +from routes.profile import profile_bp +from routes.clients import clients_bp +from routes.transporters import transporters_bp +from routes.destinations import destinations_bp +from routes.orders_out import orders_bp +from routes.ouders_in import orders_in_bp +from routes.report import report_bp +from admin.subscription import admin_subscription_bp +from routes.subscription import subscription_bp +from admin.tenants import admin_user_bp + +from apscheduler.schedulers.background import BackgroundScheduler +from models.subscription import Subscription + +from flask_cors import CORS + +app = Flask(__name__) +CORS( + app, + resources={r"/*": {"origins": [os.getenv("WEB_ORIGIN", "*")]}}, + allow_headers=["Authorization", "Content-Type"], + expose_headers=["Content-Type"], +) + +@app.get("/db/check") +def db_check(): + try: + import psycopg # psycopg3 client + except Exception as e: + return {"ok": False, "error": f"psycopg not available: {e}"}, 500 + + dsn = os.getenv("DATABASE_URL") + if not dsn: + return {"ok": False, "error": "DATABASE_URL not set"}, 500 + + try: + with psycopg.connect(dsn, connect_timeout=5) as conn: + with conn.cursor() as cur: + cur.execute("SELECT version();") + ver = cur.fetchone()[0] + return {"ok": True, "version": ver}, 200 + except Exception as e: + return {"ok": False, "error": str(e)}, 500 + +@app.get("/health") +def health(): + return {"ok": True}, 200 + +app.config["JWT_SECRET_KEY"] = os.environ.get("JWT_SECRET_KEY", "your-jwt-secret") +app.config["JWT_TOKEN_LOCATION"] = ["headers", "query_string"] +app.config["JWT_QUERY_STRING_NAME"] = "token" +jwt = JWTManager(app) + +env = os.environ.get("FLASK_ENV", "development") + +# Register blueprints +app.register_blueprint(auth_bp, url_prefix="/auth") +app.register_blueprint(profile_bp, url_prefix="/profile") +app.register_blueprint(clients_bp) +app.register_blueprint(transporters_bp, url_prefix="/transporters") +app.register_blueprint(destinations_bp, url_prefix="/destinations") +app.register_blueprint(orders_bp, url_prefix="/orders") +app.register_blueprint(orders_in_bp, url_prefix="/orders_in") +app.register_blueprint(report_bp, url_prefix="/report") +app.register_blueprint(admin_subscription_bp) +app.register_blueprint(subscription_bp) +app.register_blueprint(admin_user_bp) + + +def update_subscription_statuses_job(): + print("[Scheduler] Running daily subscription status check...") + subscription_model = Subscription() + subscription_model.update_subscription_statuses() + +RUN_SCHEDULER = os.getenv("RUN_SCHEDULER", "1") == "1" + +if RUN_SCHEDULER: + scheduler = BackgroundScheduler(daemon=True) + scheduler.add_job(func=update_subscription_statuses_job, trigger="interval", days=1) + scheduler.start() + + +if __name__ == "__main__": + if env != "production": + # Avoid running the scheduler twice in development mode + import logging + logging.getLogger("apscheduler").setLevel(logging.DEBUG) + + app.run(debug=(env == "development"), use_reloader=False) \ No newline at end of file diff --git a/transportmanager/server/database.py b/transportmanager/server/database.py new file mode 100644 index 0000000..f5d2815 --- /dev/null +++ b/transportmanager/server/database.py @@ -0,0 +1,70 @@ +import os +import sqlite3 +from pathlib import Path + +try: + import psycopg +except ImportError: + psycopg = None + +DB_TYPE = 'sqlite3' + +BASE_DIR = Path(__file__).resolve().parent +SCHEMA_PATH = BASE_DIR / "schema.sql" if DB_TYPE != 'sqlite3' else BASE_DIR / "schema_sqlite.sql" +DATABASE_URL = os.getenv("DATABASE_URL") +SQLITE_PATH = BASE_DIR / "instance" / "dev.db" + + +def is_postgres(): + return DATABASE_URL and DATABASE_URL.lower().startswith("postgres") + + +def get_connection(): + if is_postgres(): + if psycopg is None: + raise RuntimeError("psycopg is required for PostgreSQL but not installed.") + return psycopg.connect(DATABASE_URL, autocommit=True) + else: + SQLITE_PATH.parent.mkdir(parents=True, exist_ok=True) + conn = sqlite3.connect(str(SQLITE_PATH)) + conn.execute("PRAGMA foreign_keys = ON;") + return conn + + +def _iter_sql_statements(script: str): + buffer = [] + for line in script.splitlines(): + buffer.append(line) + if line.strip().endswith(";"): + stmt = "\n".join(buffer).strip() + buffer = [] + if stmt: + yield stmt + tail = "\n".join(buffer).strip() + if tail: + yield tail + + +def db_init(): + if not SCHEMA_PATH.is_file(): + raise FileNotFoundError(f"Schema file not found: {SCHEMA_PATH}") + + with open(SCHEMA_PATH, "r", encoding="utf-8") as f: + sql_script = f.read() + + conn = get_connection() + try: + if is_postgres(): + with conn.cursor() as cur: + for stmt in _iter_sql_statements(sql_script): + cur.execute(stmt) + else: + conn.executescript(sql_script) + conn.commit() + print("Database initialized successfully.") + finally: + conn.close() + + +if __name__ == "__main__": + db_init() \ No newline at end of file diff --git a/transportmanager/server/generated_pdfs/.DS_Store b/transportmanager/server/generated_pdfs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0=3.6.12 +PyPDF2==3.0.1 + +APScheduler==3.10.4 +tzlocal==5.2 \ No newline at end of file diff --git a/transportmanager/server/routes/__init__.py b/transportmanager/server/routes/__init__.py new file mode 100644 index 0000000..d01f08f --- /dev/null +++ b/transportmanager/server/routes/__init__.py @@ -0,0 +1,3 @@ +from flask import Blueprint + +# Placeholder for blueprint registration if needed dynamically \ No newline at end of file diff --git a/transportmanager/server/routes/auth.py b/transportmanager/server/routes/auth.py new file mode 100644 index 0000000..f76e9bf --- /dev/null +++ b/transportmanager/server/routes/auth.py @@ -0,0 +1,204 @@ +from flask import Blueprint, request, jsonify +from werkzeug.security import generate_password_hash, check_password_hash +from utils.email import send_email, send_gmail +from flask_jwt_extended import create_access_token, jwt_required, get_jwt_identity +from flask_jwt_extended import decode_token +import datetime +import random +import os +from datetime import timezone + +from models.user import Users + +auth_bp = Blueprint("auth", __name__) + +@auth_bp.route("/register", methods=["POST"]) +def register(): + users = Users() + data = request.get_json() + name = data.get("name") + email = data.get("email") + password = data.get("password") + + if not name or not email or not password: + return jsonify({"error": "Missing required fields"}), 400 + + existing_user = users.get_user_by_email(email) + if existing_user: + return jsonify({"error": "User already exists"}), 409 + + password_hash = generate_password_hash(password) + users.insert_user(name, email, password_hash) + + return jsonify({"message": "User registered successfully!"}), 201 + + +@auth_bp.route("/login", methods=["POST"]) +def login(): + users = Users() + data = request.get_json() + email = data.get("email", "").strip().lower() + password = data.get("password", "") + + if not email or not password: + return jsonify({"error": "Missing email or password"}), 400 + + user = users.get_user_by_email(email) + if not user or not check_password_hash(user["password_hash"], password): + return jsonify({"error": "Invalid credentials"}), 401 + + otp_code = str(random.randint(100000, 999999)) + expiration = datetime.datetime.now(timezone.utc) + datetime.timedelta(minutes=10) + users.update_user_otp(user["id"], otp_code, expiration) + + send_gmail( + to_email=user["email"], + subject="Your Login Verification Code", + body=f"Your login verification code is: {otp_code}" + ) + + return jsonify({"message": "Verification code sent to your email."}), 200 + + +@auth_bp.route("/verify_code", methods=["POST"]) +def verify_code(): + users = Users() + data = request.get_json() + email = data.get("email", "").strip().lower() + code = data.get("code", "") + + if not email or not code: + return jsonify({"error": "Missing email or verification code"}), 400 + + user = users.get_user_by_email(email) + #-----------------------------------------------> for testing only remove in prod + #if email != 'test@test.com': + #-----------------------------------------------> for testing only remove in prod + if not user or user.get("otp_code") != code: + return jsonify({"error": "Invalid code"}), 401 + + exp = user.get("otp_expiration") + # Normalize to aware UTC datetime for safe comparison across SQLite (string) and Postgres (datetime) + now_utc = datetime.datetime.now(timezone.utc) + if isinstance(exp, str): + try: + exp_dt = datetime.datetime.fromisoformat(exp) + except Exception: + return jsonify({"error": "Invalid expiration format"}), 500 + if exp_dt.tzinfo is None: + exp_dt = exp_dt.replace(tzinfo=timezone.utc) + else: + # Assume a datetime object from DB driver + exp_dt = exp + if exp_dt is None: + return jsonify({"error": "Missing expiration"}), 500 + if exp_dt.tzinfo is None: + exp_dt = exp_dt.replace(tzinfo=timezone.utc) + if now_utc > exp_dt: + return jsonify({"error": "Verification code has expired"}), 403 + + users.clear_user_otp(user["id"]) + + access_token = create_access_token( + identity=str(user["id"]), + expires_delta=datetime.timedelta(hours=12) + ) + return jsonify({ + "message": "Login successful", + "access_token": access_token + }), 200 + + +@auth_bp.route("/forgot_password", methods=["POST"]) +def forgot_password(): + users = Users() + data = request.get_json() + email = data.get("email", "").strip().lower() + + if not email: + return jsonify({"error": "Email is required"}), 400 + + user = users.get_user_by_email(email) + if user: + reset_token = create_access_token( + identity=user["id"], + expires_delta=datetime.timedelta(minutes=15), + additional_claims={"purpose": "password_reset"} + ) + + send_gmail( + to_email=user["email"], + subject="Password Reset Request", + body=( + "Click the link to reset your password: " + f"{os.getenv('FRONTEND_BASE_URL', 'http://127.0.0.1:5100')}/reset_password?token={reset_token}" + ) + ) + + return jsonify({"message": "If this email is registered, a reset link has been sent."}), 200 + + +@auth_bp.route("/reset_password", methods=["POST"]) +def reset_password(): + users = Users() + data = request.get_json() + token = data.get("token", "") + new_password = data.get("new_password", "") + + if not token or not new_password: + return jsonify({"error": "Missing token or new password"}), 400 + + try: + decoded_token = decode_token(token) + if decoded_token.get("purpose") != "password_reset": + return jsonify({"error": "Invalid token purpose"}), 403 + except Exception: + return jsonify({"error": "Invalid or expired token"}), 403 + + user_id = decoded_token["sub"] + user = users.get_user_by_id(user_id) + if not user: + return jsonify({"error": "User not found"}), 404 + + password_hash = generate_password_hash(new_password) + users.update_user_password(user_id, password_hash) + + return jsonify({"message": "Password has been reset successfully."}), 200 + + +@auth_bp.route("/me", methods=["GET"]) +@jwt_required() +def me(): + users = Users() + user_id = get_jwt_identity() + user = users.get_user_by_id(user_id) + if not user: + return jsonify({"error": "User not found"}), 404 + + return jsonify({ + "id": user["id"], + "name": user["name"], + "contact_name": user['contact_name'], + "email": user["email"], + "phone": user["phone"], + "register_number": user["register_number"], + "vat":user["vat"], + "address": user["address"], + "logo_filename": user["logo_filename"], + "terms": user["terms"], + "first_order_number": user["first_order_number"], + "created_at": user["created_at"], + "user_role": user["user_role"] + }), 200 + + +# Validate token endpoint +@auth_bp.route("/validate_token", methods=["GET"]) +@jwt_required() +def validate_token(): + users = Users() + user_id = get_jwt_identity() + user = users.get_user_by_id(user_id) + if not user: + return jsonify({"error": "User not found"}), 404 + return jsonify({"message": "Token is valid"}), 200 \ No newline at end of file diff --git a/transportmanager/server/routes/clients.py b/transportmanager/server/routes/clients.py new file mode 100644 index 0000000..dec313a --- /dev/null +++ b/transportmanager/server/routes/clients.py @@ -0,0 +1,65 @@ +from flask import Blueprint, request, jsonify +from models.client import Clients + +from flask_jwt_extended import jwt_required, get_jwt_identity + +clients_bp = Blueprint("clients", __name__, url_prefix="/clients") + +@clients_bp.route("/", methods=["GET"]) +@jwt_required() +def list_clients(): + clients_db = Clients() + user_id = get_jwt_identity() + clients = clients_db.get_all_by_user(user_id) + return jsonify(clients), 200 + +@clients_bp.route("/", methods=["POST"]) +@jwt_required() +def create_client(): + clients_db = Clients() + user_id = get_jwt_identity() + data = request.get_json() + client_id = clients_db.create( + user_id=user_id, + name=data["name"], + address=data["address"], + register_number=data["register_number"], + contact_person=data["contact_person"], + phone=data["phone"], + email=data["email"], + vat = data["vat"] + ) + return jsonify({"message": "Client created", "id": client_id}), 201 + +@clients_bp.route("/", methods=["PUT"]) +@jwt_required() +def update_client(client_id): + clients_db = Clients() + data = request.get_json() + name=data["name"] + address=data["address"] + register_number=data["register_number"] + contact_person=data["contact_person"] + phone=data["phone"] + email=data["email"] + vat = data["vat"] + clients_db.update(client_id, name, address, register_number, contact_person, phone, email, vat) + return jsonify({"message": "Client updated"}), 200 + +@clients_bp.route("/", methods=["DELETE"]) +@jwt_required() +def delete_client(client_id): + clients_db = Clients() + success = clients_db.delete(client_id) + if not success: + return jsonify({"message": "Client not found or unauthorized"}), 404 + return jsonify({"message": "Client deleted"}), 200 + +@clients_bp.route("/", methods=["GET"]) +@jwt_required() +def get_client(client_id): + clients_db = Clients() + client = clients_db.get_by_id(client_id) + if not client: + return jsonify({"message": "Client not found"}), 404 + return jsonify(client), 200 \ No newline at end of file diff --git a/transportmanager/server/routes/destinations.py b/transportmanager/server/routes/destinations.py new file mode 100644 index 0000000..512750e --- /dev/null +++ b/transportmanager/server/routes/destinations.py @@ -0,0 +1,73 @@ +from flask import Blueprint, request, jsonify +from models.destinations import Destinations +from flask_jwt_extended import jwt_required, get_jwt_identity +from utils.maps import AdressCoordinates + +destinations_bp = Blueprint("destinations", __name__, url_prefix="/destinations") + +@destinations_bp.route("/", methods=["GET"]) +@jwt_required() +def list_destinations(): + destinations_db = Destinations() + user_id = get_jwt_identity() + destinations = destinations_db.get_all_by_user(user_id) + return jsonify([dict(d) for d in destinations]), 200 + +@destinations_bp.route("/", methods=["POST"]) +@jwt_required() +def create_destination(): + destinations_db = Destinations() + user_id = get_jwt_identity() + data = request.get_json() + destination_id = destinations_db.create(user_id, data.get("name"), data.get("address")) + # coordinates = AdressCoordinates(data.get("address")) + # lat_log = coordinates.open_Maps_by_address() + # if lat_log: + # latitude = lat_log['latitude'] + # longitude = lat_log['longitude'] + # destinations_db.add_gps_coordinates(destination_id, latitude, longitude) + return jsonify({"id": destination_id, "message": "Destination created"}), 201 + +@destinations_bp.route("/", methods=["PUT"]) +@jwt_required() +def update_destination(id): + destinations_db = Destinations() + user_id = get_jwt_identity() + data = request.get_json() + destinations_db.update(id, user_id, data.get("name"), data.get("address")) + coordinates = AdressCoordinates(data.get("address")) + lat_log = coordinates.open_Maps_by_address() + if lat_log: + latitude = lat_log['latitude'] + longitude = lat_log['longitude'] + destinations_db.add_gps_coordinates(id, latitude, longitude) + + return jsonify({"message": "Destination updated"}), 200 + +@destinations_bp.route("/", methods=["DELETE"]) +@jwt_required() +def delete_destination(id): + destinations_db = Destinations() + success = destinations_db.delete(id) + if not success: + return jsonify({"message": "Destination not found or unauthorized"}), 404 + return "", 204 + + +# New route to update GPS coordinates of a destination +@destinations_bp.route("//coordinates", methods=["PUT"]) +@jwt_required() +def update_coordinates(id): + destinations_db = Destinations() + data = request.get_json() + latitude = data.get("latitude") + longitude = data.get("longitude") + + if latitude is None or longitude is None: + return jsonify({"message": "Latitude and longitude are required"}), 400 + + success = destinations_db.add_gps_coordinates(id, latitude, longitude) + if not success: + return jsonify({"message": "Failed to update coordinates"}), 404 + + return jsonify({"message": "Coordinates updated"}), 200 \ No newline at end of file diff --git a/transportmanager/server/routes/orders_out.py b/transportmanager/server/routes/orders_out.py new file mode 100644 index 0000000..a94c510 --- /dev/null +++ b/transportmanager/server/routes/orders_out.py @@ -0,0 +1,259 @@ +from flask import Blueprint, request, jsonify +from flask_jwt_extended import jwt_required, get_jwt_identity +from models.order_out import OrdersOut +from models.user import Users +from models.transporters import Transporters +from datetime import datetime +from utils.pdf import generate_order_pdf +from utils.cancel_order import cancel_order_pdf +import os + +from flask import send_from_directory +from utils.email import send_gmail_with_attachment, send_custom_email_with_attachment + +orders_bp = Blueprint("orders", __name__, url_prefix="/orders") + +@orders_bp.route("/", methods=["POST"]) +@jwt_required() +def create_order_route(): + user_id = get_jwt_identity() + orders = OrdersOut() + incoming_data = request.json + #here we need to first implement the order pdf + users = Users() + user = users.get_user_by_id(user_id) + logo_filename = user.get('logo_filename') + logo_path = None + if logo_filename: + logo_path = os.path.abspath( + os.path.join(os.path.dirname(__file__), "..", "..", "client", "assets", "images", logo_filename) + ) + transporters = Transporters() + transporter = transporters.get_transporter_by_id(incoming_data["transporter_id"]) + generate_order_pdf(order=incoming_data, user_data=user, transporter_data=transporter, logo_path=logo_path) + # + #try: + order_data = { + 'user_id': user_id, + 'client_id': incoming_data["client_id"], + 'transporter_id': incoming_data["transporter_id"], + 'received_price': incoming_data["received_price"], + 'paid_price': incoming_data["paid_price"], + 'order_number': incoming_data["order_number"], + 'created_at': datetime.now(), + 'ldb_quantity': incoming_data["ldb_quantity"], + 'kg_quantity': incoming_data["kg_quantity"], + 'track_reg_number': incoming_data["track_reg_number"], + 'trailer_reg_number': incoming_data["trailer_reg_number"], + 'products_description': incoming_data["products_description"], + } + order_id = orders.create_order(order_data) + + for address in incoming_data["loading_addresses"]: + data = { + "order_id": order_id, + "destination_id": address['loading_address_id'], + "informatins": address['loading_informatins'], + "point_data": address['loading_date'], + "point_hour": address['loading_hour'], + "point_type": "loading" + } + orders.create_order_point(data) + + for address in incoming_data["unloading_addresses"]: + data = { + "order_id": order_id, + "destination_id": address['unloading_address_id'], + "informatins": address['unloading_informatins'], + "point_data": address['unloading_date'], + "point_hour": address['unloading_hour'], + "point_type": "unloading" + } + orders.create_order_point(data) + + + + return jsonify({"message": "Order created", "order_id": order_id}), 201 + #except Exception as e: + # return jsonify({"error": str(e)}), 400 + +@orders_bp.route("/", methods=["PUT"]) +@jwt_required() +def update_order_route(order_id): + orders = OrdersOut() + data = request.json + user_id = get_jwt_identity() + order = orders.get_order_by_id(order_id) + if not order: + return jsonify({"error": "Order not found"}), 404 + if str(order["user_id"]) != str(user_id): + return jsonify({"error": "Unauthorized"}), 403 + + try: + orders.update_order({ + "id":data.get("id", order['id']), + "client_id": data.get("client_id", order["client_id"]), + "transporter_id": data.get("transporter_id", order["transporter_id"]), + "received_price": data.get("received_price", order["received_price"]), + "paid_price": data.get("paid_price", order["paid_price"]), + "order_number": data.get("order_number", order["order_number"]), + "ldb_quantity": data.get("ldb_quantity", order["ldb_quantity"]), + "kg_quantity": data.get("kg_quantity", order["kg_quantity"]), + "track_reg_number": data.get("track_reg_number", order["track_reg_number"]), + "trailer_reg_number": data.get("trailer_reg_number", order["trailer_reg_number"]), + "products_description": data.get("products_description", order["products_description"]), + }) + + orders.delete_points_by_order_id(order_id) + for address in data["loading_addresses"]: + loading_data = { + "order_id": order_id, + "destination_id": address['loading_address_id'], + "informatins": address['loading_informatins'], + "point_data": address['loading_date'], + "point_hour": address['loading_hour'], + "point_type": "loading" + } + orders.create_order_point(loading_data) + + for address in data["unloading_addresses"]: + unloading_data = { + "order_id": order_id, + "destination_id": address['unloading_address_id'], + "informatins": address['unloading_informatins'], + "point_data": address['unloading_date'], + "point_hour": address['unloading_hour'], + "point_type": "unloading" + } + orders.create_order_point(unloading_data) + + #regenerate pdf: + incoming_data = data + users = Users() + user = users.get_user_by_id(user_id) + transporters = Transporters() + transporter = transporters.get_transporter_by_id(incoming_data["transporter_id"]) + logo_filename = user.get('logo_filename') + logo_path = None + if logo_filename: + logo_path = os.path.abspath( + os.path.join(os.path.dirname(__file__), "..", "..", "client", "assets", "images", logo_filename) + ) + generate_order_pdf(order=incoming_data, user_data=user, transporter_data=transporter, logo_path=logo_path) + + return jsonify({"message": "Order updated", "order_id": order_id}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_bp.route("/", methods=["DELETE"]) +@jwt_required() +def delete_order_route(order_id): + orders = OrdersOut() + user_id = get_jwt_identity() + order = orders.get_order_by_id(order_id) + if not order: + return jsonify({"error": "Order not found"}), 404 + if order["user_id"] != user_id: + return jsonify({"error": "Unauthorized"}), 403 + + try: + orders.delete_points_by_order_id(order_id) + orders.delete_order(order_id) + return jsonify({"message": "Order deleted"}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_bp.route("/list", methods=["GET"]) +@jwt_required() +def list_orders(): + orders = OrdersOut() + user_id = get_jwt_identity() + try: + user_orders = orders.get_orders_by_user(user_id) + #result = [{"id": order["id"], "order_number": order["order_number"]} for order in user_orders] + return jsonify(user_orders), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_bp.route("/", methods=["GET"]) +@jwt_required() +def get_order(order_id): + orders = OrdersOut() + user_id = get_jwt_identity() + order = orders.get_order_by_id(order_id) + points = orders.get_order_points_by_order(order['id']) + loading_points = [] + unloading_points = [] + for point in points: + if point['point_type'] == 'loading': + loading_points.append(point) + else: + unloading_points.append(point) + order['loading_points'] = loading_points + order['unloading_points'] = unloading_points + if not order: + return jsonify({"error": "Order not found"}), 404 + print(f'{order["user_id"]} {user_id}') + print(f'{type(order["user_id"])} {type(user_id)}') + if order["user_id"] != int(user_id): + return jsonify({"error": "Unauthorized"}), 403 + return jsonify(order), 200 + +@orders_bp.route("/pdfs/", methods=["GET"]) +#@jwt_required() +def serve_order_pdf(filename): + pdf_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "generated_pdfs")) + print(pdf_folder) + print(filename) + return send_from_directory(pdf_folder, filename, mimetype="application/pdf") + +@orders_bp.route("/send-email/gmail", methods=["POST"]) +@jwt_required() +def send_email_with_gmail(): + data = request.json + try: + to_email = data["to_email"] + subject = data["subject"] + body = data["body"] + filename = data["filename"] + attachment_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "uploads", filename)) + + send_gmail_with_attachment(to_email, subject, body, attachment_path) + return jsonify({"message": "Email sent successfully using Gmail"}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_bp.route("/send-email/custom", methods=["POST"]) +@jwt_required() +def send_email_with_custom_smtp(): + data = request.json + try: + to_email = data["to_email"] + subject = data["subject"] + body = data["body"] + filename = data["filename"] + smtp_host = data["smtp_host"] + smtp_port = data["smtp_port"] + smtp_user = data["smtp_user"] + smtp_pass = data["smtp_pass"] + + attachment_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "uploads", filename)) + + send_custom_email_with_attachment(to_email, subject, body, attachment_path, smtp_host, smtp_port, smtp_user, smtp_pass) + return jsonify({"message": "Email sent successfully using custom SMTP"}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_bp.route("/cancel/", methods=["DELETE"]) +@jwt_required() +def cancel_order(order_id): + try: + orders = OrdersOut() + order = orders.get_order_by_id(order_id) + user_id = get_jwt_identity() + pdf_name = f'order_{user_id}_{order['order_number']}.pdf' + cancel_order_pdf(pdf_name) + orders.cancel_order(order_id) + return jsonify({"message": "The order was successfully canceled!"}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 500 \ No newline at end of file diff --git a/transportmanager/server/routes/ouders_in.py b/transportmanager/server/routes/ouders_in.py new file mode 100644 index 0000000..9324845 --- /dev/null +++ b/transportmanager/server/routes/ouders_in.py @@ -0,0 +1,163 @@ +from flask import Blueprint, request, jsonify +from flask_jwt_extended import jwt_required, get_jwt_identity +from models.order_in import OrdersIn +from models.transporters import Transporters +from models.user import Users +from datetime import datetime + +orders_in_bp = Blueprint("orders_in", __name__, url_prefix="/orders_in") + +@orders_in_bp.route("/", methods=["POST"]) +@jwt_required() +def create_order_in_route(): + user_id = get_jwt_identity() + orders = OrdersIn() + incoming_data = request.json + try: + order_data = { + 'user_id': user_id, + 'client_id': incoming_data["client_id"], + 'received_price': incoming_data["received_price"], + 'order_number': incoming_data["order_number"], + 'created_at': datetime.now(), + 'ldb_quantity': incoming_data["ldb_quantity"], + 'kg_quantity': incoming_data["kg_quantity"], + 'track_reg_number': incoming_data["track_reg_number"], + 'trailer_reg_number': incoming_data["trailer_reg_number"], + 'products_description': incoming_data["products_description"], + } + order_id = orders.create_order(order_data) + + for address in incoming_data["loading_addresses"]: + data = { + "order_id": order_id, + "destination_id": address['loading_address_id'], + "informatins": address['loading_informatins'], + "point_data": address['loading_date'], + "point_hour": address['loading_hour'], + "point_type": "loading" + } + orders.create_order_point(data) + + for address in incoming_data["unloading_addresses"]: + data = { + "order_id": order_id, + "destination_id": address['unloading_address_id'], + "informatins": address['unloading_informatins'], + "point_data": address['unloading_date'], + "point_hour": address['unloading_hour'], + "point_type": "unloading" + } + orders.create_order_point(data) + + return jsonify({"message": "Order in created", "order_id": order_id}), 201 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_in_bp.route("/", methods=["PUT"]) +@jwt_required() +def update_order_route(order_id): + orders = OrdersIn() + data = request.json + user_id = get_jwt_identity() + order = orders.get_order_by_id(order_id) + if not order: + return jsonify({"error": "Order in not found"}), 404 + if str(order["user_id"]) != str(user_id): + return jsonify({"error": "Unauthorized"}), 403 + + try: + orders.update_order({ + "id":data.get("id", order['id']), + "client_id": data.get("client_id", order["client_id"]), + "received_price": data.get("received_price", order["received_price"]), + "order_number": data.get("order_number", order["order_number"]), + "ldb_quantity": data.get("ldb_quantity", order["ldb_quantity"]), + "kg_quantity": data.get("kg_quantity", order["kg_quantity"]), + "track_reg_number": data.get("track_reg_number", order["track_reg_number"]), + "trailer_reg_number": data.get("trailer_reg_number", order["trailer_reg_number"]), + "products_description": data.get("products_description", order["products_description"]), + "user_id":user_id + }) + + orders.delete_points_by_order_id(order_id) + + for address in data["loading_addresses"]: + loading_data = { + "order_id": order_id, + "destination_id": address['loading_address_id'], + "informatins": address['loading_informatins'], + "point_data": address['loading_date'], + "point_hour": address['loading_hour'], + "point_type": "loading" + } + orders.create_order_point(loading_data) + + for address in data["unloading_addresses"]: + unloading_data = { + "order_id": order_id, + "destination_id": address['unloading_address_id'], + "informatins": address['unloading_informatins'], + "point_data": address['unloading_date'], + "point_hour": address['unloading_hour'], + "point_type": "unloading" + } + orders.create_order_point(unloading_data) + + return jsonify({"message": "Order updated"}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_in_bp.route("/", methods=["DELETE"]) +@jwt_required() +def delete_order_route(order_id): + orders = OrdersIn() + user_id = get_jwt_identity() + order = orders.get_order_by_id(order_id) + if not order: + return jsonify({"error": "Order in not found"}), 404 + if str(order["user_id"]) != str(user_id): + return jsonify({"error": "Unauthorized"}), 403 + + try: + orders.delete_points_by_order_id(order_id) + orders.delete_order(order_id) + return jsonify({"message": "Order in deleted"}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_in_bp.route("/list", methods=["GET"]) +@jwt_required() +def list_orders(): + orders = OrdersIn() + user_id = get_jwt_identity() + try: + user_orders = orders.get_orders_by_user(user_id) + #result = [{"id": order["id"], "order_number": order["order_number"]} for order in user_orders] + return jsonify(user_orders), 200 + except Exception as e: + return jsonify({"error": str(e)}), 400 + +@orders_in_bp.route("/", methods=["GET"]) +@jwt_required() +def get_order(order_id): + orders = OrdersIn() + user_id = get_jwt_identity() + order = orders.get_order_by_id(order_id) + points = orders.get_order_points_by_order(order['id']) + loading_points = [] + unloading_points = [] + for point in points: + if point['point_type'] == 'loading': + loading_points.append(point) + else: + unloading_points.append(point) + order['loading_points'] = loading_points + order['unloading_points'] = unloading_points + if not order: + return jsonify({"error": "Order not found"}), 404 + print(f'{order["user_id"]} {user_id}') + print(f'{type(order["user_id"])} {type(user_id)}') + if order["user_id"] != int(user_id): + return jsonify({"error": "Unauthorized"}), 403 + return jsonify(order), 200 \ No newline at end of file diff --git a/transportmanager/server/routes/profile.py b/transportmanager/server/routes/profile.py new file mode 100644 index 0000000..fbe44bb --- /dev/null +++ b/transportmanager/server/routes/profile.py @@ -0,0 +1,144 @@ +import os +from werkzeug.utils import secure_filename +from flask import current_app +from flask import Blueprint, request, jsonify +from flask_jwt_extended import jwt_required, get_jwt_identity +from models.user import Users + +profile_bp = Blueprint("profile", __name__) + + +@profile_bp.route("/", methods=["GET"]) +@jwt_required() +def get_profile(): + user_id = get_jwt_identity() + users = Users() + user = users.get_user_by_id(user_id) # Plain SQL method returning dict or None + + if not user: + return jsonify({"error": "User not found"}), 404 + + return jsonify({ + "id": user["id"], + "name": user["name"], + "contact_name": user["contact_name"], + "email": user["email"], + "address": user["address"], + "register_number": user["register_number"], + "phone": user["phone"], + "logo_filename": user["logo_filename"], + "terms": user["terms"], + "first_order_number": user["first_order_number"], + "user_role": user["user_role"], + "vat":user["vat"] + }) + + +@profile_bp.route("/", methods=["PUT"]) +@jwt_required() +def update_profile(): + users = Users() + user_id = get_jwt_identity() + user = users.get_user_by_id(user_id) + if not user: + return jsonify({"error": "User not found"}), 404 + + data = request.get_json() + update_data = { + "name": data.get("name", user["name"]), + "contact_name": data.get("contact_name", user["contact_name"]), + "email": data.get("email", user["email"]), + "address": data.get("address", user["address"]), + "register_number": data.get("register_number", user["register_number"]), + "phone": data.get("phone", user["phone"]), + "logo_filename": data.get("logo_filename", user["logo_filename"]), + "terms": data.get("terms", user["terms"]), + "first_order_number": data.get("first_order_number", user["first_order_number"]), + "user_id": user_id, + "vat":data.get("vat", user["vat"]), + } + users.update_user(update_data) + + return jsonify({"message": "Profile updated successfully"}) + + +@profile_bp.route("/logo", methods=["POST"]) +@jwt_required() +def upload_logo(): + users = Users() + if 'logo' not in request.files: + return jsonify({"error": "Logo file is required"}), 400 + + file = request.files['logo'] + if file.filename == '': + return jsonify({"error": "No selected file"}), 400 + + filename = secure_filename(file.filename) + upload_dir = os.path.join(current_app.root_path, '..', 'instance', 'logos') + os.makedirs(upload_dir, exist_ok=True) + + filepath = os.path.join(upload_dir, filename) + file.save(filepath) + + user_id = get_jwt_identity() + user = users.get_user_by_id(user_id) + if not user: + return jsonify({"error": "User not found"}), 404 + + # Update the logo filename in DB + users.update_user_logo(user_id, {"logo_filename": filename}) + + return jsonify({"message": "Logo uploaded", "filename": filename}), 200 + +@profile_bp.route('/email') +@jwt_required() +def get_email_credentials(): + user_id = get_jwt_identity() + users = Users() + + credentials = users.get_email_credentials(user_id) + if not credentials: + return jsonify({"error": "Credentials not found"}), 404 + + return jsonify({ + 'id': credentials['id'], + 'user_id': credentials['user_id'], + 'smtp_host': credentials['smtp_host'], + 'smtp_port': credentials['smtp_port'], + 'smtp_user': credentials['smtp_user'], + 'created_at': credentials['created_at'] + }), 200 + +@profile_bp.route('/email', methods=["POST"]) +@jwt_required() +def insert_email_credentials(): + users = Users() + user_id = get_jwt_identity() + + data = request.get_json() + if not data: + return jsonify({"error": "Credentials not found"}), 404 + smtp_host = data['smtp_host'] + smtp_port = data['smtp_port'] + smtp_user = data['smtp_user'] + + users.insert_email_credentials(user_id, smtp_host, smtp_port, smtp_user) + + return jsonify({"message": "Credentials inserted successfully"}), 200 + +@profile_bp.route('/email', methods=["PUT"]) +@jwt_required() +def update_email_credentials(): + users = Users() + user_id = get_jwt_identity() + + data = request.get_json() + if not data: + return jsonify({"error": "Credentials not found"}), 404 + smtp_host = data['smtp_host'] + smtp_port = data['smtp_port'] + smtp_user = data['smtp_user'] + + users.update_email_credentials(user_id, smtp_host, smtp_port, smtp_user) + + return jsonify({"message": "Credentials updated successfully"}), 200 \ No newline at end of file diff --git a/transportmanager/server/routes/report.py b/transportmanager/server/routes/report.py new file mode 100644 index 0000000..f445875 --- /dev/null +++ b/transportmanager/server/routes/report.py @@ -0,0 +1,42 @@ +from flask import Blueprint, request, jsonify +from flask_jwt_extended import jwt_required, get_jwt_identity +from models.order_out import OrdersOut # Your plain SQL model +from datetime import datetime + +report_bp = Blueprint("report", __name__, url_prefix="/report") + +@report_bp.route("/profit", methods=["GET"]) +@jwt_required() +def get_profit_report(): + try: + user_id = get_jwt_identity() + # Get filters from query params + date_from = request.args.get("date_from") + date_to = request.args.get("date_to") + client_id = request.args.get("client_id") + transporter_id = request.args.get("transporter_id") + + # Use the plain SQL method that returns filtered orders list + filters = { + "user_id": user_id, + "date_from": date_from, + "date_to": date_to, + "client_id": client_id, + "transporter_id": transporter_id + } + + orders = OrdersOut.get_filtered_orders(filters) # Implement this method in your model + + total_received = sum(float(o.get("price_received", 0) or 0) for o in orders) + total_paid = sum(float(o.get("price_paid", 0) or 0) for o in orders) + profit = total_received - total_paid + + return jsonify({ + "total_received": total_received, + "total_paid": total_paid, + "profit": profit, + "orders_count": len(orders) + }) + + except Exception as e: + return jsonify({"error": str(e)}), 500 \ No newline at end of file diff --git a/transportmanager/server/routes/subscription.py b/transportmanager/server/routes/subscription.py new file mode 100644 index 0000000..f34d0fb --- /dev/null +++ b/transportmanager/server/routes/subscription.py @@ -0,0 +1,65 @@ +from flask import Blueprint, jsonify, request +from flask_jwt_extended import jwt_required, get_jwt_identity +from datetime import datetime, timedelta +from models.subscription import Subscription +from models.user import Users +from datetime import datetime, timedelta + +subscription_bp = Blueprint("subscription", __name__, url_prefix="/subscription") + +@subscription_bp.route("/", methods=["GET"]) +@jwt_required() +def get_subscription(): + user_id = get_jwt_identity() + subscription_model = Subscription() + subscriptions = subscription_model.get_by_user_id(user_id) + return jsonify(subscriptions), 200 + +@subscription_bp.route("/first_2_months", methods=["POST"]) +@jwt_required() +def first_2_months_subscription(): + user_id = get_jwt_identity() + users_model = Users() + user = users_model.get_user_by_id(user_id) + + subscription_model = Subscription() + existing_sub = subscription_model.get_first_2_months_subscription_for_register_number(user["register_number"]) + + if existing_sub: + return jsonify({"error": "First 2 months subscription already used for this company."}), 400 + + start_date = datetime.now() + end_date = start_date + timedelta(days=60) + subscription_model.create(user_id, "first_2_months", start_date.isoformat(), end_date.isoformat(), user["register_number"]) + + return jsonify({"message": "First 2 months subscription created."}), 201 + +@subscription_bp.route("/one_month", methods=["POST"]) +@jwt_required() +def one_month_subscription(): + user_id = get_jwt_identity() + start_date = datetime.now() + end_date = start_date + timedelta(days=30) + + users_model = Users() + user = users_model.get_user_by_id(user_id) + + subscription_model = Subscription() + subscription_model.create(user_id, "monthly", start_date.isoformat(), end_date.isoformat(), user["register_number"]) + + return jsonify({"message": "1 month subscription created."}), 201 + +@subscription_bp.route("/one_year", methods=["POST"]) +@jwt_required() +def one_year_subscription(): + user_id = get_jwt_identity() + start_date = datetime.now() + end_date = start_date + timedelta(days=365) + + users_model = Users() + user = users_model.get_user_by_id(user_id) + + subscription_model = Subscription() + subscription_model.create(user_id, "yearly", start_date.isoformat(), end_date.isoformat(), user["register_number"]) + + return jsonify({"message": "1 year subscription created."}), 201 \ No newline at end of file diff --git a/transportmanager/server/routes/transporters.py b/transportmanager/server/routes/transporters.py new file mode 100644 index 0000000..97993db --- /dev/null +++ b/transportmanager/server/routes/transporters.py @@ -0,0 +1,74 @@ +from flask import Blueprint, request, jsonify +from flask_jwt_extended import jwt_required, get_jwt_identity +from models.transporters import Transporters + +transporters_bp = Blueprint("transporters", __name__, url_prefix="/transporters") + +@transporters_bp.route("/", methods=["GET"]) +@jwt_required() +def list_transporters(): + user_id = get_jwt_identity() + transporters_db = Transporters() + transporters = transporters_db.get_all_transporters_by_user(user_id) + return jsonify(transporters), 200 + +@transporters_bp.route("/", methods=["POST"]) +@jwt_required() +def create_transporter(): + transporters_db = Transporters() + data = request.get_json() + user_id = get_jwt_identity() + transporter_id = transporters_db.create_transporter( + user_id=user_id, + name=data.get("name"), + address=data.get("address"), + register_number=data.get("register_number"), + contact_person=data.get("contact_person"), + phone=data.get("phone"), + email=data.get("email"), + vat = data.get("vat") + ) + transporter = transporters_db.get_transporter_by_id(transporter_id) + return jsonify(transporter), 201 + +@transporters_bp.route("/", methods=["PUT"]) +@jwt_required() +def update_transporter(transporter_id): + transporters_db = Transporters() + user_id = get_jwt_identity() + data = request.get_json() + transporter = transporters_db.get_transporter_by_id(transporter_id) + if not transporter: + return jsonify({"error": "Transporter not found"}), 404 + transporters_db.update_transporter( + transporter_id=transporter_id, + name=data.get("name"), + address=data.get("address"), + register_number=data.get("register_number"), + contact_person=data.get("contact_person"), + phone=data.get("phone"), + email=data.get("email"), + vat=data.get("vat") + ) + updated_transporter = transporters_db.get_transporter_by_id(transporter_id) + return jsonify(updated_transporter), 200 + +@transporters_bp.route("/", methods=["DELETE"]) +@jwt_required() +def delete_transporter(transporter_id): + transporters_db = Transporters() + user_id = get_jwt_identity() + transporter = transporters_db.get_transporter_by_id(transporter_id) + if not transporter: + return jsonify({"error": "Transporter not found"}), 404 + transporters_db.delete_transporter(transporter_id) + return jsonify({"message": "Transporter deleted"}), 200 + +@transporters_bp.route("/", methods=["GET"]) +@jwt_required() +def get_transporter(transporter_id): + transporters_db = Transporters() + transporter = transporters_db.get_transporter_by_id(transporter_id) + if not transporter: + return jsonify({"error": "Transporter not found"}), 404 + return jsonify(transporter), 200 \ No newline at end of file diff --git a/transportmanager/server/schema.sql b/transportmanager/server/schema.sql new file mode 100644 index 0000000..7caf4e9 --- /dev/null +++ b/transportmanager/server/schema.sql @@ -0,0 +1,146 @@ +-- Users table +CREATE TABLE IF NOT EXISTS users ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL, + contact_name TEXT, + email TEXT UNIQUE NOT NULL, + password_hash TEXT NOT NULL, + phone TEXT, + register_number TEXT, + vat TEXT, + address TEXT, + logo_filename TEXT, + terms TEXT, + first_order_number INTEGER DEFAULT 1, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + otp_code TEXT, + otp_expiration TIMESTAMPTZ, + user_role TEXT NOT NULL DEFAULT 'user' CHECK (user_role IN ('user', 'admin')) +); + +-- Clients table +CREATE TABLE IF NOT EXISTS clients ( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + address TEXT, + register_number TEXT, + contact_person TEXT, + phone TEXT, + email TEXT, + vat TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +-- Transporters table +CREATE TABLE IF NOT EXISTS transporters ( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + address TEXT, + register_number TEXT, + contact_person TEXT, + phone TEXT, + email TEXT, + vat TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +-- Destinations table +CREATE TABLE IF NOT EXISTS destinations ( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + address TEXT, + latitude TEXT, + longitude TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +-- Orders out table +CREATE TABLE IF NOT EXISTS orders_out ( + id SERIAL PRIMARY KEY, + order_number TEXT NOT NULL, + user_id INTEGER NOT NULL, + client_id INTEGER NOT NULL, + transporter_id INTEGER NOT NULL, + products_description TEXT, + ldb_quantity DOUBLE PRECISION, + kg_quantity DOUBLE PRECISION, + track_reg_number TEXT, + trailer_reg_number TEXT, + received_price DOUBLE PRECISION, + paid_price DOUBLE PRECISION, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + order_status TEXT NOT NULL DEFAULT 'active' CHECK (order_status IN ('active', 'inactive', 'cancelled')), + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE, + FOREIGN KEY(client_id) REFERENCES clients(id) ON DELETE CASCADE, + FOREIGN KEY(transporter_id) REFERENCES transporters(id) ON DELETE CASCADE +); + +-- Orders in table +CREATE TABLE IF NOT EXISTS orders_in ( + id SERIAL PRIMARY KEY, + order_number TEXT NOT NULL, + user_id INTEGER NOT NULL, + client_id INTEGER NOT NULL, + products_description TEXT, + ldb_quantity DOUBLE PRECISION, + kg_quantity DOUBLE PRECISION, + track_reg_number TEXT, + trailer_reg_number TEXT, + received_price DOUBLE PRECISION, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE, + FOREIGN KEY(client_id) REFERENCES clients(id) ON DELETE CASCADE +); + +-- Order In Points (loading/unloading) table +CREATE TABLE IF NOT EXISTS order_in_points ( + id SERIAL PRIMARY KEY, + order_id INTEGER NOT NULL, + destination_id INTEGER NOT NULL, + informatins TEXT, + point_data TEXT, + point_hour TEXT, + point_type TEXT NOT NULL CHECK (point_type IN ('loading', 'unloading')), + FOREIGN KEY(order_id) REFERENCES orders_in(id) ON DELETE CASCADE +); + +-- Order In Points (loading/unloading) table +CREATE TABLE IF NOT EXISTS order_out_points ( + id SERIAL PRIMARY KEY, + order_id INTEGER NOT NULL, + destination_id INTEGER NOT NULL, + informatins TEXT, + point_data TEXT, + point_hour TEXT, + point_type TEXT NOT NULL CHECK (point_type IN ('loading', 'unloading')), + FOREIGN KEY(order_id) REFERENCES orders_out(id) ON DELETE CASCADE +); + +-- Subscriptions table +CREATE TABLE IF NOT EXISTS subscriptions ( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + plan TEXT NOT NULL CHECK (plan IN ('first_2_months', 'monthly', 'yearly')), + start_date TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + end_date TIMESTAMPTZ NOT NULL, + status TEXT NOT NULL CHECK (status IN ('active', 'expired', 'cancelled')), + register_number TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS email ( + id SERIAL PRIMARY KEY, + user_id INTEGER NOT NULL, + smtp_host TEXT, + smtp_port TEXT, + smtp_user TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); \ No newline at end of file diff --git a/transportmanager/server/schema_sqlite.sql b/transportmanager/server/schema_sqlite.sql new file mode 100644 index 0000000..cb5ab7f --- /dev/null +++ b/transportmanager/server/schema_sqlite.sql @@ -0,0 +1,146 @@ +-- Users table +CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + contact_name TEXT, + email TEXT UNIQUE NOT NULL, + password_hash TEXT NOT NULL, + phone TEXT, + register_number TEXT, + vat TEXT, + address TEXT, + logo_filename TEXT, + terms TEXT, + first_order_number INTEGER DEFAULT 1, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + otp_code TEXT, + otp_expiration TIMESTAMPTZ, + user_role TEXT NOT NULL DEFAULT 'user' CHECK (user_role IN ('user', 'admin')) +); + +-- Clients table +CREATE TABLE IF NOT EXISTS clients ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + address TEXT, + register_number TEXT, + contact_person TEXT, + phone TEXT, + email TEXT, + vat TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +-- Transporters table +CREATE TABLE IF NOT EXISTS transporters ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + address TEXT, + register_number TEXT, + contact_person TEXT, + phone TEXT, + email TEXT, + vat TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +-- Destinations table +CREATE TABLE IF NOT EXISTS destinations ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + name TEXT NOT NULL, + address TEXT, + latitude TEXT, + longitude TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +-- Orders out table +CREATE TABLE IF NOT EXISTS orders_out ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + order_number TEXT NOT NULL, + user_id INTEGER NOT NULL, + client_id INTEGER NOT NULL, + transporter_id INTEGER NOT NULL, + products_description TEXT, + ldb_quantity DOUBLE PRECISION, + kg_quantity DOUBLE PRECISION, + track_reg_number TEXT, + trailer_reg_number TEXT, + received_price DOUBLE PRECISION, + paid_price DOUBLE PRECISION, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + order_status TEXT NOT NULL DEFAULT 'active' CHECK (order_status IN ('active', 'inactive', 'cancelled')), + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE, + FOREIGN KEY(client_id) REFERENCES clients(id) ON DELETE CASCADE, + FOREIGN KEY(transporter_id) REFERENCES transporters(id) ON DELETE CASCADE +); + +-- Orders in table +CREATE TABLE IF NOT EXISTS orders_in ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + order_number TEXT NOT NULL, + user_id INTEGER NOT NULL, + client_id INTEGER NOT NULL, + products_description TEXT, + ldb_quantity DOUBLE PRECISION, + kg_quantity DOUBLE PRECISION, + track_reg_number TEXT, + trailer_reg_number TEXT, + received_price DOUBLE PRECISION, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE, + FOREIGN KEY(client_id) REFERENCES clients(id) ON DELETE CASCADE +); + +-- Order In Points (loading/unloading) table +CREATE TABLE IF NOT EXISTS order_in_points ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + order_id INTEGER NOT NULL, + destination_id INTEGER NOT NULL, + informatins TEXT, + point_data TEXT, + point_hour TEXT, + point_type TEXT NOT NULL CHECK (point_type IN ('loading', 'unloading')), + FOREIGN KEY(order_id) REFERENCES orders_in(id) ON DELETE CASCADE +); + +-- Order In Points (loading/unloading) table +CREATE TABLE IF NOT EXISTS order_out_points ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + order_id INTEGER NOT NULL, + destination_id INTEGER NOT NULL, + informatins TEXT, + point_data TEXT, + point_hour TEXT, + point_type TEXT NOT NULL CHECK (point_type IN ('loading', 'unloading')), + FOREIGN KEY(order_id) REFERENCES orders_out(id) ON DELETE CASCADE +); + +-- Subscriptions table +CREATE TABLE IF NOT EXISTS subscriptions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + plan TEXT NOT NULL CHECK (plan IN ('first_2_months', 'monthly', 'yearly')), + start_date TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, + end_date TIMESTAMPTZ NOT NULL, + status TEXT NOT NULL CHECK (status IN ('active', 'expired', 'cancelled')), + register_number TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS email ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + smtp_host TEXT, + smtp_port TEXT, + smtp_user TEXT, + created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE +); \ No newline at end of file diff --git a/transportmanager/server/utils/cancel_order.py b/transportmanager/server/utils/cancel_order.py new file mode 100644 index 0000000..b1e0519 --- /dev/null +++ b/transportmanager/server/utils/cancel_order.py @@ -0,0 +1,62 @@ +import os +from PyPDF2 import PdfReader, PdfWriter +from reportlab.pdfgen import canvas +from reportlab.lib.pagesizes import A4 + +GENERATED_FOLDER = os.path.abspath( + os.path.join(os.path.dirname(__file__), "..", "generated_pdfs") +) + +def create_watermark_pdf(watermark_path, text="CANCELLED"): + c = canvas.Canvas(watermark_path, pagesize=A4) + c.setFont("Helvetica-Bold", 80) + c.setFillGray(0.6) # Light gray text + c.saveState() + c.translate(300, 400) + c.rotate(45) + c.drawCentredString(0, 0, text) + c.restoreState() + c.save() + +def apply_watermark(input_pdf_path, output_pdf_path, watermark_pdf_path): + reader = PdfReader(input_pdf_path) + watermark = PdfReader(watermark_pdf_path).pages[0] + writer = PdfWriter() + + for page in reader.pages: + page.merge_page(watermark) + writer.add_page(page) + + with open(output_pdf_path, "wb") as f: + writer.write(f) + +def cancel_order_pdf(order_filename): + # File paths + input_pdf_path = os.path.join(GENERATED_FOLDER, order_filename) + output_pdf_path = input_pdf_path + watermark_pdf_path = os.path.join(GENERATED_FOLDER, "temp_watermark.pdf") + print(watermark_pdf_path) + # Check if file exists + if not os.path.isfile(input_pdf_path): + raise FileNotFoundError(f"Original order PDF not found: {input_pdf_path}") + + # Create watermark and apply it + create_watermark_pdf(watermark_pdf_path, text="CANCELLED") + apply_watermark(input_pdf_path, output_pdf_path, watermark_pdf_path) + + # Optionally remove temp watermark + os.remove(watermark_pdf_path) + + return output_pdf_path + +# Example usage: +if __name__ == "__main__": + import sys + if len(sys.argv) < 2: + print("Usage: python cancel_order.py ") + else: + try: + result_path = cancel_order_pdf(sys.argv[1]) + print(f"Cancelled PDF created: {result_path}") + except Exception as e: + print(f"Error: {e}") \ No newline at end of file diff --git a/transportmanager/server/utils/email.py b/transportmanager/server/utils/email.py new file mode 100644 index 0000000..164170d --- /dev/null +++ b/transportmanager/server/utils/email.py @@ -0,0 +1,139 @@ +import smtplib +from email.message import EmailMessage +import os + +def send_email(to_email, subject, body): + smtp_host = os.environ.get("SMTP_HOST") + smtp_port = int(os.environ.get("SMTP_PORT", 587)) + smtp_user = os.environ.get("SMTP_USER") + smtp_pass = os.environ.get("SMTP_PASS") + sender_email = os.environ.get("SMTP_FROM", smtp_user) + + if not all([smtp_host, smtp_port, smtp_user, smtp_pass]): + raise ValueError("SMTP config incomplete in environment variables.") + + msg = EmailMessage() + msg["Subject"] = subject + msg["From"] = sender_email + msg["To"] = to_email + msg.set_content(body) + + with smtplib.SMTP(smtp_host, smtp_port) as server: + server.starttls() + server.login(smtp_user, smtp_pass) + server.send_message(msg) + + +# Send email with attachment +def send_email_with_attachment(to_email, subject, body, attachment_path): + smtp_host = os.environ.get("SMTP_HOST") + smtp_port = int(os.environ.get("SMTP_PORT", 587)) + smtp_user = os.environ.get("SMTP_USER") + smtp_pass = os.environ.get("SMTP_PASS") + sender_email = os.environ.get("SMTP_FROM", smtp_user) + + if not all([smtp_host, smtp_port, smtp_user, smtp_pass]): + raise ValueError("SMTP config incomplete in environment variables.") + + msg = EmailMessage() + msg["Subject"] = subject + msg["From"] = sender_email + msg["To"] = to_email + msg.set_content(body) + + if attachment_path and os.path.isfile(attachment_path): + with open(attachment_path, "rb") as f: + file_data = f.read() + file_name = os.path.basename(attachment_path) + msg.add_attachment(file_data, maintype="application", subtype="pdf", filename=file_name) + else: + raise FileNotFoundError(f"Attachment file not found: {attachment_path}") + + with smtplib.SMTP(smtp_host, smtp_port) as server: + server.starttls() + server.login(smtp_user, smtp_pass) + server.send_message(msg) + + +# Send email using Gmail directly +def send_gmail(to_email, subject, body): + smtp_host = "smtp.gmail.com" + smtp_port = 587 + smtp_user = 'macamete.robert@gmail.com' + smtp_pass = 'advx yqlv jkaa czvr' + sender_email = 'macamete.robert@gmail.com' + + if not all([smtp_user, smtp_pass]): + raise ValueError("GMAIL_USER and GMAIL_PASS must be set in environment variables.") + + msg = EmailMessage() + msg["Subject"] = subject + msg["From"] = sender_email + msg["To"] = to_email + msg.set_content(body) + + with smtplib.SMTP(smtp_host, smtp_port) as server: + server.starttls() + server.login(smtp_user, smtp_pass) + server.send_message(msg) + + +# Send email with attachment using Gmail directly +def send_gmail_with_attachment(to_email, subject, body, attachment_path): + smtp_host = "smtp.gmail.com" + smtp_port = 587 + smtp_user = os.environ.get("GMAIL_USER") + smtp_pass = os.environ.get("GMAIL_PASS") + sender_email = smtp_user + + if not all([smtp_user, smtp_pass]): + raise ValueError("GMAIL_USER and GMAIL_PASS must be set in environment variables.") + + msg = EmailMessage() + msg["Subject"] = subject + msg["From"] = sender_email + msg["To"] = to_email + msg.set_content(body) + + if attachment_path and os.path.isfile(attachment_path): + with open(attachment_path, "rb") as f: + file_data = f.read() + file_name = os.path.basename(attachment_path) + msg.add_attachment(file_data, maintype="application", subtype="pdf", filename=file_name) + else: + raise FileNotFoundError(f"Attachment file not found: {attachment_path}") + + with smtplib.SMTP(smtp_host, smtp_port) as server: + server.starttls() + server.login(smtp_user, smtp_pass) + server.send_message(msg) + +# Send email with attachment +def send_custom_email_with_attachment(to_email, subject, body, attachment_path, SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS): + smtp_host = SMTP_HOST + smtp_port = int(SMTP_PORT) + smtp_user = SMTP_USER + smtp_pass = SMTP_PASS + sender_email = smtp_user + + if not all([smtp_host, smtp_port, smtp_user, smtp_pass]): + raise ValueError("SMTP config incomplete in environment variables.") + + msg = EmailMessage() + msg["Subject"] = subject + msg["From"] = sender_email + msg["To"] = to_email + msg.set_content(body) + + if attachment_path and os.path.isfile(attachment_path): + with open(attachment_path, "rb") as f: + file_data = f.read() + file_name = os.path.basename(attachment_path) + msg.add_attachment(file_data, maintype="application", subtype="pdf", filename=file_name) + else: + raise FileNotFoundError(f"Attachment file not found: {attachment_path}") + + with smtplib.SMTP(smtp_host, smtp_port) as server: + server.starttls() + server.login(smtp_user, smtp_pass) + server.send_message(msg) \ No newline at end of file diff --git a/transportmanager/server/utils/maps.py b/transportmanager/server/utils/maps.py new file mode 100644 index 0000000..b8d629e --- /dev/null +++ b/transportmanager/server/utils/maps.py @@ -0,0 +1,28 @@ +from geopy.geocoders import Nominatim + +class AdressCoordinates: + def __init__(self, address): + self.addess = address + + def open_Maps_by_address(self): + address = self.addess + if not address: + return + + #try: + geolocator = Nominatim(user_agent="flet_Maps_app") + location = geolocator.geocode(address) + print(location) + if location: + latitude = location.latitude + longitude = location.longitude + Maps_url = f"https://www.google.com/maps/search/?api=1&query={latitude},{longitude}" + + return { + 'latitude' : latitude, + 'longitude' : longitude, + 'Maps_url': Maps_url + } + + #except Exception as ex: + # print(ex) \ No newline at end of file diff --git a/transportmanager/server/utils/pdf.py b/transportmanager/server/utils/pdf.py new file mode 100644 index 0000000..84f3c46 --- /dev/null +++ b/transportmanager/server/utils/pdf.py @@ -0,0 +1,199 @@ +from reportlab.lib.pagesizes import A4 +from reportlab.pdfgen import canvas +from reportlab.platypus import Table, TableStyle, Paragraph, SimpleDocTemplate, Spacer, Image +from reportlab.lib import colors +from reportlab.lib.styles import getSampleStyleSheet +import io +import os +import logging + +# --- helpers --------------------------------------------------------------- + +def _resolve_logo_path(logo_path: str | None) -> str | None: + """Return a readable logo path or None. Tries multiple fallbacks. + This avoids crashes when a caller passes a path that exists only in the + client container (e.g., '/client/assets/...') while we're running in the + server container on Fly. + """ + here = os.path.dirname(__file__) + project_root = os.path.abspath(os.path.join(here, "..", "..")) + + candidates = [] + + # 1) if caller provided a path, try it as-is + if logo_path: + candidates.append(logo_path) + # also try without a leading slash inside our image tree + stripped = logo_path.lstrip("/\\") + candidates.append(os.path.join(project_root, stripped)) + + # 2) Known locations in this repo layout + candidates.append(os.path.join(project_root, "client", "assets", "images", "truck_logo_black.png")) + candidates.append(os.path.join(project_root, "assets", "images", "truck_logo_black.png")) + + # 3) Allow override via env + env_path = os.getenv("DEFAULT_LOGO_PATH") + if env_path: + candidates.insert(0, env_path) + + for p in candidates: + try: + if p and os.path.isfile(p): + return p + except Exception: + # some paths may be malformed on certain platforms + continue + return None + +def generate_order_pdf(order, user_data, transporter_data, logo_path, save_to_disk=True): + #print(order) + #print(f'user data: {user_data}') + if 'address' in user_data: + address = user_data.get("address") + if address: + address = address.replace(" %",", ") + else: + address = '' + else: + address='' + buffer = io.BytesIO() + doc = SimpleDocTemplate(buffer, pagesize=A4) + elements = [] + styles = getSampleStyleSheet() + + # Resolve logo path robustly across local/dev and Fly + logo_path = _resolve_logo_path(logo_path) + + # Prepare texts + user_text = f"""{user_data.get("name", "")}
+{user_data.get("register_number", "")}
+{user_data.get("vat", "")}
+{address}
+{""}
+{user_data.get("contact_name", "")}
+{user_data.get("phone", "")}
+{user_data.get("email", "")} +""" + transporter_text = f"""{transporter_data.get("name", "")}
+{transporter_data.get("contact_person", "")}
+{transporter_data.get("phone", "")}
+{transporter_data.get("email", "")} +""" + + # Logo (centered), tolerate missing file + logo = None + if logo_path: + try: + logo = Image(logo_path, width=120, mask='auto', height=60) + logo.hAlign = 'CENTER' + except Exception as e: + logging.warning("PDF: failed to load logo at %s: %s", logo_path, e) + logo = None + + # Top section: transporter - logo - user + top_section = Table([ + [ + Paragraph(transporter_text, styles['Normal']), + logo, + Paragraph(user_text, styles['Normal']) + ] + ], colWidths=[200, 150, 200]) + top_section.setStyle(TableStyle([ + ("VALIGN", (0, 0), (-1, -1), "MIDDLE"), + ("ALIGN", (0, 0), (0, 0), "LEFT"), + ("ALIGN", (1, 0), (1, 0), "CENTER"), + ("ALIGN", (2, 0), (2, 0), "RIGHT"), + ("LEFTPADDING", (0, 0), (0, 0), 20), + ])) + elements.append(top_section) + elements.append(Spacer(1, 12)) + + # Order number and current date (centered, vertically stacked) + from datetime import datetime + header_info = Table([ + [Paragraph(f"Loading Order: {order['order_number']}", styles["Normal"])], + [Paragraph(f"Date: {datetime.now().strftime('%d/%m/%Y')}", styles["Normal"])] + ], colWidths=[450]) + header_info.setStyle(TableStyle([ + ("ALIGN", (0, 0), (-1, -1), "CENTER") + ])) + elements.append(header_info) + elements.append(Spacer(1, 12)) + + # Order Summary Table + elements.append(Paragraph("Summary", styles['Heading3'])) + summary_data = [ + ["Details", Paragraph("Values", styles["Normal"])], + ["Truck Reg. No.", Paragraph(str(order["track_reg_number"]), styles["Normal"])], + ["Trailer Reg. No.", Paragraph(str(order["trailer_reg_number"]), styles["Normal"])], + ["Product Description", Paragraph(str(order["products_description"]), styles["Normal"])], + ["LDM", Paragraph(str(order["ldb_quantity"]), styles["Normal"])], + ["KG", Paragraph(str(order["kg_quantity"]), styles["Normal"])], + ["Price", Paragraph(str(order["paid_price"]), styles["Normal"])], + ] + summary_table = Table(summary_data, colWidths=[150, 350]) + summary_table.setStyle(TableStyle([ + ("GRID", (0, 0), (-1, -1), 0.5, colors.black), + ("BACKGROUND", (0, 0), (-1, 0), colors.lightgrey), + ("VALIGN", (0, 0), (-1, -1), "MIDDLE"), + ("WORDWRAP", (0, 0), (-1, -1), "CJK"), + ("ALIGN", (0, 0), (-1, -1), "LEFT"), + ])) + elements.append(summary_table) + elements.append(Spacer(1, 24)) + + # Loading Points + elements.append(Paragraph("Loading Sequence", styles['Heading3'])) + loading_data = [[Paragraph("Address", styles["Normal"]), Paragraph("Date & Hour", styles["Normal"]), Paragraph("Instructions", styles["Normal"])]] + for l in order["loading_addresses"]: + loading_data.append([ + Paragraph(f"{l["loading_address_name"]}: {l["loading_address"]}", styles["Normal"]), + Paragraph(f"{l['loading_date']} {l['loading_hour']}", styles["Normal"]), + Paragraph(str(l["loading_informatins"]), styles["Normal"]) + ]) + loading_table = Table(loading_data, colWidths=[200, 100, 200]) + loading_table.setStyle(TableStyle([ + ("GRID", (0, 0), (-1, -1), 0.5, colors.black), + ("BACKGROUND", (0, 0), (-1, 0), colors.lightgrey), + ("VALIGN", (0, 0), (-1, -1), "TOP"), + ("WORDWRAP", (0, 0), (-1, -1), "CJK"), + ("ALIGN", (0, 0), (-1, -1), "LEFT"), + ])) + elements.append(loading_table) + elements.append(Spacer(1, 24)) + + # Unloading Points + elements.append(Paragraph("Unloading Sequence", styles['Heading3'])) + unloading_data = [[Paragraph("Address", styles["Normal"]), Paragraph("Date & Hour", styles["Normal"]), Paragraph("Instructions", styles["Normal"])]] + for u in order["unloading_addresses"]: + unloading_data.append([ + Paragraph(f"{u["unloading_address_name"]}: {u["unloading_address"]}", styles["Normal"]), + Paragraph(f"{u['unloading_date']} {u['unloading_hour']}", styles["Normal"]), + Paragraph(str(u["unloading_informatins"]), styles["Normal"]) + ]) + unloading_table = Table(unloading_data, colWidths=[200, 100, 200]) + unloading_table.setStyle(TableStyle([ + ("GRID", (0, 0), (-1, -1), 0.5, colors.black), + ("BACKGROUND", (0, 0), (-1, 0), colors.lightgrey), + ("VALIGN", (0, 0), (-1, -1), "TOP"), + ("WORDWRAP", (0, 0), (-1, -1), "CJK"), + ("ALIGN", (0, 0), (-1, -1), "LEFT"), + ])) + elements.append(unloading_table) + + elements.append(Spacer(1, 24)) + + elements.append(Paragraph("Terms and Conditions", styles["Heading3"]),) + + elements.append( + Paragraph(str(order["terms"]), styles["Normal"]) + ) + + doc.build(elements) + buffer.seek(0) + if save_to_disk: + save_path=f"generated_pdfs/order_{order['user_id']}_{order['order_number']}.pdf" + with open(save_path, "wb") as f: + f.write(buffer.getvalue()) + + return buffer \ No newline at end of file