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