From 9e457e94884bb1c7018d5717b22a5ef175984abc Mon Sep 17 00:00:00 2001 From: NeirouzB <neirouz.bouchaira@ecl21.ec-lyon.fr> Date: Sat, 7 Dec 2024 18:01:55 +0100 Subject: [PATCH] ddd --- code_interface/streamlit_app.py | 79 ++++++++++++++++++-------------- donnees/company.db | Bin 618496 -> 671744 bytes 2 files changed, 45 insertions(+), 34 deletions(-) diff --git a/code_interface/streamlit_app.py b/code_interface/streamlit_app.py index 07c6682..402af52 100644 --- a/code_interface/streamlit_app.py +++ b/code_interface/streamlit_app.py @@ -11,41 +11,51 @@ tab1, tab2, tab3,tab4 = st.tabs(["Suivi des employés","Employés avec 3 ans d'a with tab1: st.title("Suivi Employés") + popover = st.popover("Filtre employés à afficher") + total = popover.checkbox("Salaires des employés par semaine", True) + dimin = popover.checkbox("Salaires des employés ayant eu une diminution par semaine", True) conn= sqlite3.connect(r'C:\Users\neiro\Documents\+\GitHub\sgbd-usine\donnees\company.db') cursor = conn.cursor() - tab11,tab12 = st.tabs(["Totalité des employés","Employés avec une diminution de salaire"]) cursor.execute("SELECT DATE_LUNDI,SALAIRE_SEMAINE.NUMERO_EMPLOYE,NOM,PRENOM,SALAIRE_BASE,SALAIRE_AVANT, SALAIRE_APRES,NB_HEURES, NB_PRODUCTION,RETARD,ANCIENNETE,NOEL, DATE_DEBUT FROM SALAIRE_SEMAINE JOIN EMPLOYE ON EMPLOYE.NUMERO_EMPLOYE = SALAIRE_SEMAINE.NUMERO_EMPLOYE") employees = cursor.fetchall() # Convert the employee records to a DataFrame df = pd.DataFrame(employees, columns=[desc[0] for desc in cursor.description]) df.columns = ['Date du lundi', 'Numéro employé', 'Nom', 'Prénom', 'Salaire base', 'Salaire avant primes','Salaire réel', 'Nombre d\'heures', 'Nombre de production', 'Retard','Ancienneté', 'Bonus de Noël', 'Date de début'] - with tab11: + if total: # Add code for "Suivi Employés" page here - st.write("Page de suivi des salaires des employés par semaine (question 1)") + st.write("Salaires des employés par semaine (question 1)") st.dataframe(df) - with tab12: - st.write("Page de suivi des salaires des employés ayant eu une diminution par semaine (question 3)") + if dimin: + st.write("Salaires des employés ayant eu une diminution par semaine (question 3)") st.dataframe(df[df['Salaire avant primes']<df['Salaire base']]) conn.close() with tab2: conn= sqlite3.connect(r'C:\Users\neiro\Documents\+\GitHub\sgbd-usine\donnees\company.db') cursor = conn.cursor() - st.write("Page des employés avec 3 ans d'anciénneté (question 2)") - - # Fetch all employee records + on = st.toggle("Employés avec 3 ans d'anciénneté") cursor.execute("SELECT NUMERO_EMPLOYE,NOM,PRENOM,TYPE,DATE_DEBUT FROM EMPLOYE") employees = cursor.fetchall() df=pd.DataFrame(employees, columns=[desc[0] for desc in cursor.description]) from datetime import datetime today = datetime.today() df['DATE_DEBUT'] = pd.to_datetime(df['DATE_DEBUT']) - df = df[(today - df['DATE_DEBUT']).dt.days > 3 * 365] - df.columns = ['Numéro employé', 'Nom', 'Prénom', 'Type du contrat', 'Date de début'] - st.write("Liste des employés journaliers") - st.dataframe(df[df['Type du contrat']==1]) - st.write("Liste des employés par production") - st.dataframe(df[df['Type du contrat'] == 2]) + if on: + st.header("Liste des employés avec 3 ans d'anciénneté (question 2)") + df = df[(today - df['DATE_DEBUT']).dt.days > 3 * 365] + df.columns = ['Numéro employé', 'Nom', 'Prénom', 'Type du contrat', 'Date de début'] + st.write("Liste des employés journaliers") + st.dataframe(df[df['Type du contrat']==1]) + st.write("Liste des employés par production") + st.dataframe(df[df['Type du contrat'] == 2]) + else: + + df.columns = ['Numéro employé', 'Nom', 'Prénom', 'Type du contrat', 'Date de début'] + st.header("Liste de la totalité des employés") + st.write("Liste des employés journaliers") + st.dataframe(df[df['Type du contrat']==1]) + st.write("Liste des employés par production") + st.dataframe(df[df['Type du contrat'] == 2]) @@ -83,33 +93,34 @@ with tab3: if st.button("Create Account"): # Connect to the database conn=sqlite3.connect(r'C:\Users\neiro\Documents\+\GitHub\sgbd-usine\donnees\company.db') - # Check if the employee already exists + cursor = conn.cursor() cursor.execute(""" - SELECT NUMERO_EMPLOYE FROM EMPLOYE + SELECT NUMERO_EMPLOYE FROM EMPLOYE WHERE NOM = ? AND PRENOM = ? AND DATE_DEBUT = ? """, (NOM, PRENOM, date_debut)) existing_employee = cursor.fetchone() if existing_employee: st.write(f"Cet employé est déjà enregistré avec le numéro employé: {existing_employee[0]}") - st.stop() + conn.close() - # Insert the new employee record - cursor.execute(""" - INSERT INTO EMPLOYE (NUMERO_EMPLOYE, TYPE, NOM, PRENOM, CS_PRODUCTION, CS_JOURNEE, DATE_DEBUT) - VALUES (?, ?, ?, ?, ?, ?, ?) - """, (NUMERO_EMPLOYE, TYPE, NOM, PRENOM, CS_PRODUCTION if CS_PRODUCTION is not None else None, CS_JOURNEE if CS_JOURNEE is not None else None, date_debut)) - # Commit the transaction - conn.commit() - - st.write("Nouvel employé enregistré!") - st.write(f"Numéro employé: {NUMERO_EMPLOYE}") - st.write(f"Type de contrat: {'Journalier' if TYPE == 1 else 'Production'}") - st.write(f"Nom: {NOM}") - st.write(f"Prénom: {PRENOM}") - if TYPE == 2: - st.write(f"Code salarial de production: {CS_PRODUCTION}") else: - st.write(f"code salarial journalier: {CS_JOURNEE}") - st.write(f"Date du début du contrat: {date_debut}") + cursor.execute(""" + INSERT INTO EMPLOYE (NUMERO_EMPLOYE, TYPE, NOM, PRENOM, CS_PRODUCTION, CS_JOURNEE, DATE_DEBUT) + VALUES (?, ?, ?, ?, ?, ?, ?) + """, (NUMERO_EMPLOYE, TYPE, NOM, PRENOM, CS_PRODUCTION if CS_PRODUCTION is not None else None, CS_JOURNEE if CS_JOURNEE is not None else None, date_debut)) + # Commit the transaction + conn.commit() + + st.write("Nouvel employé enregistré!") + st.write(f"Numéro employé: {NUMERO_EMPLOYE}") + st.write(f"Type de contrat: {'Journalier' if TYPE == 1 else 'Production'}") + st.write(f"Nom: {NOM}") + st.write(f"Prénom: {PRENOM}") + if TYPE == 2: + st.write(f"Code salarial de production: {CS_PRODUCTION}") + else: + st.write(f"code salarial journalier: {CS_JOURNEE}") + st.write(f"Date du début du contrat: {date_debut}") + conn.close() st.stop() \ No newline at end of file diff --git a/donnees/company.db b/donnees/company.db index 27d769d25a7de4c5753fa5564fe8082977e29e0f..3629c371985555f794f3b20268c90aff8b0e4b45 100644 GIT binary patch delta 1147 zcmZp8pxV%&IYC<R76Svr5(Wl_nG6gJybKHsHz(>Cv)*FROMA63WgZg?>tjZP$?qAh z8D~t^W?I7H<QVKa`7o0k8<%ENZlmyIdFCCH-?40G6=4$()Smo-TVnAc)>U4U+KL$% z7<${385kHQwgxjWFidD=W?*2L)?&=Sz|hy6%)r1fxmlQjfnjQsGXn!de<MhJTO&w) zOAr$S0|Pt1Is*d(!<5ZD8|3&Id#3+8#38}W&YZx&z|bwlV$3-G;Vuplb{3`|3=9md z)BhE5NU*arRWdLzbWK0Mh(mhv;{8gj9bknYLpVex-`mf|+79LhPUjG5{=2{Z?|#Pi zzx$cm|L$jQ|GS^1{qKI(_P_htw*TGF&fc({rGUeLk&VxSfr0VFbj5ufBHR56If^-1 zr6gI5Ij0K>bBb)gRmGvkI&A{Ss_Cl&I24%m8kMIPW^)K{e=vbVg?~GX1BVu)1e1}0 zk&&(;2q_pCSb-4(1LM)@g25aj+Z}>A<}yx?n9jkwoyD0$jgOUqfr0V(bjM~6k?mH^ z9CH}A-w)zY<lWZ5p~483J28EtA*aZ8+eVJVeA^aqC^ND!y<%K5y`h#v1T4R9dSM-h z$o7zh9QXNIxVjlnO%Hs;Au`>2BZnM_J7s#qSq>3)4rWoVZpKP5XZoCt93db%-sy_x zI7Fs%Y~onL!qv?XxP8MWjz!#z4AVF6<&fB(y^mu%lX$ZruQ4Md2L}fSI}-;7$Zy6> zj~ORVFXZDCXJLBGSTViv6Nkw3YkZv2(--h@%7MhxA!0iZas;z5J!aT5J@F8S$n;74 zoYK?n4{?B$Fl28}Jj5}LgPDPWb$a7z4$<kGI60-K*Kl&mu`n>O?3iwNnnPrI!fB3R z5Z8BlVkW1^^gJ$3>FE|+oO0V)&Tw$EOy_^VF;k4SnKgsem*o$u5vw@MLzd$#YgqK! zl&3dd<Pe_z{UHbM_InRFH29~pDR6FO)oTsrHQs(efzyqDI$Hqe*6F(+aBwo~H5P*- zaXL36C-3w%BAoo&zXfpe@o#4l;A9e*&US%gkr;a;yC{1ayEnT5+b^~UY)9EvvFWu2 zPha?+Lt*>93t$UAaBO1LZPjZlp1v@jQ(^nv4;;$;%M3ULrf?qFe#C(zo^^UZ8>hr} zYc|f)oYUD7IJU7E=ruV{|Cqp`u>C;-hXVh!1WuOaEDoFk+gTDg|M2sG@+E@+C_^wT znas0b!S*!<9K!td3=9m5!8vUaIHxTH=d=ajoHiev)8>J5+FWo>n*+{iv%xuS7C5KP z3<8_Tz`(=6z%Yw}fnhcS1H&8!28Ou|3=H!a7#QX=Ffc4&U|?9tz`(EwWEr%mn8EGI zEy?w2yPW~YA^v3(I0Uu@aI%2h%JB#6^zAGLoJ<1C*%UYhma{p42mwxk?Q9n~e(5hu H;1mD=|D;4( delta 738 zcmZo@&}?|1Izd|SCIbV*bOr>tI#I`%^(KQ}S@*`2c}%jd!3sgHjy^hE3JSrFK8~J2 zuJKNe!LD4ItdAMRC!4YCnEZ#uMj2U3M<F1{)7LR5Qo-9bQbEJTF~qegw^3lT8B0DR zt00?rp!Vbs+!Biqv99u(&{oXAz|h~O%)r3V*BZ>gz%Z$mnSp^}YKt)g1H<IzWCjL? zDb2zR3=Hi}&I}9;(;7kQyBb02TY{Jv7#P_3)j>|5xS3~z96w|4^naT;B)Hj`6Brm6 zdZbv48K*y7#UaAZ!t{fIfuUpiKPL_ec6O#p1_p-i>E|bLNKan8Ux~F1tngzAhsfl6 z``K7q!Q8-b4w2@+``iESXKeqwpQ-)te&+VS`&rum?q_ZPyPs|Q-~H_D4cl1~IJ6kI z>lt!>W!bKr#=*|bC^<c`kV9g-RWrvN#_jiuI23u8ZQvBx=D=aX$Rx$GJ#QVyB*yJ0 zoH%~6voc7s7;{b+{LCS;{gxMp8tb+O4i!d5sp$@l91`1Y8#xa1Et|k8FfD<DWjo6R z4tYivu=)mH4iQGF>A8L!65B&2a@^;iuCR+kV!HQ24!P-xdpRVgf7-(#J$=qXj*#h& zi#Q~vb1dRmGQDFT2jBGE{Ty7=WA<~nOs`tQ!Mj~_F^4TTqtx_`YdIvgXRqVf&NR_c zc=|p&PKoKQcAV1eEX?^#j~Qd9HwtlzOkZHfX*PZ5Mvma=F7})f>@3U~Oph5BPEXv# zAu`>56NlXNDtk_e>1*vdgSVg9#G%hIJ;f5NYykrU%e(1@yE#Or*I06zO;6a(5j<VN zic?~Go)xF`bPFp^x$P`_IJjB1@^gLE2l;h6ivi~WX1&JZ>4mR3gr{>q<lvpY<_ib^ z_HPe3bXlkOn{i5Pw>INE&AFWI1BbwJwhNpB%h?WqhzFbk+u0Uy{^Q@ylEC?g9{^7$ B;syW! -- GitLab