Skip to content
Snippets Groups Projects
Commit 6256270a authored by Bouchaira Neirouz's avatar Bouchaira Neirouz
Browse files

changements de donnees

parent fe8c7c1a
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id: tags:
```
import sqlite3
# Connect to the database
conn = sqlite3.connect('company.db')
# Create a cursor object
cursor = conn.cursor()
print("Connected to company.db")
```
%% Cell type:markdown id: tags:
# Requêtes SQL 5 et 6
%% Cell type:code id: tags:
```
import pandas as pd
chrismas_day = datetime(2024, 12, 25)
cursor.execute("SELECT NUMERO_EMPLOYE, NOM, PRENOM, CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT FROM EMPLOYE")
employees = cursor.fetchall()
# Create a list to store the data
prime_totale = []
prime_partielle=[]
# Calculate the prime de noel for each employee
for employee in employees:
NUMERO_EMPLOYE, NOM, PRENOM,CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT = employee
start_date = datetime.strptime(DATE_DEBUT, '%Y-%m-%d')
delta = chrismas_day - start_date
if delta.days >= 365:
if CS_JOURNEE is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_HORAIRE WHERE CS_HORAIRE = {CS_JOURNEE}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base*4.5
prime_totale.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
if CS_PRODUCTION is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_PROD WHERE CS_PRODUCTION = {CS_PRODUCTION}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base*4.5
prime_totale.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
else:
if CS_JOURNEE is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_HORAIRE WHERE CS_HORAIRE = {CS_JOURNEE}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base * 100 * delta.days / 365
prime_partielle.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
if CS_PRODUCTION is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_PROD WHERE CS_PRODUCTION = {CS_PRODUCTION}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base*100 * delta.days / 365
prime_partielle.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
# Create the dataframe
prime_totale = pd.DataFrame(prime_totale, columns=['NUMERO_EMPLOYE','NOM', 'PRENOM' ,'DATE_DEBUT', 'PRIME_NOEL'])
prime_partielle = pd.DataFrame(prime_partielle, columns=['NUMERO_EMPLOYE','NOM', 'PRENOM' , 'DATE_DEBUT', 'PRIME_NOEL'])
prime_totale.head()
```
%% Cell type:code id: tags:
```
prime_partielle.head()
```
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
import sqlite3 import sqlite3
# Connect to the database # Connect to the database
conn = sqlite3.connect('company.db') conn = sqlite3.connect('company.db')
# Create a cursor object # Create a cursor object
cursor = conn.cursor() cursor = conn.cursor()
print("Connected to company.db") print("Connected to company.db")
``` ```
%% Output %% Output
Connected to company.db Connected to company.db
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
## Production ## Production
from datetime import datetime, timedelta from datetime import datetime, timedelta
# Fetch all employees # Fetch all employees
cursor.execute("SELECT NUMERO_EMPLOYE, CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT FROM EMPLOYE") cursor.execute("SELECT NUMERO_EMPLOYE, CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT FROM EMPLOYE")
employees = cursor.fetchall() employees = cursor.fetchall()
cursor.execute("SELECT MAX(NUM_LOG_JOUR_PROD) FROM LOG_JOURNEE_PROD") cursor.execute("SELECT MAX(NUM_LOG_JOUR_PROD) FROM LOG_JOURNEE_PROD")
last_log_num_prod = cursor.fetchone()[0] or 0 last_log_num_prod = cursor.fetchone()[0] or 0
cursor.execute("SELECT MAX(NUM_LOG_JOUR_JOUR) FROM LOG_JOURNEE_JOUR") cursor.execute("SELECT MAX(NUM_LOG_JOUR_JOUR) FROM LOG_JOURNEE_JOUR")
last_log_num_jour = cursor.fetchone()[0] or 0 last_log_num_jour = cursor.fetchone()[0] or 0
# Loop through each employee # Loop through each employee
for employee in employees: for employee in employees:
NUMERO_EMPLOYE, CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT = employee NUMERO_EMPLOYE, CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT = employee
start_date = datetime.strptime(DATE_DEBUT, '%Y-%m-%d') start_date = datetime.strptime(DATE_DEBUT, '%Y-%m-%d')
end_date = datetime.today() end_date = datetime.today()
delta = end_date - start_date delta = end_date - start_date
if CS_JOURNEE is not None: if CS_JOURNEE is not None:
cursor.execute(f"SELECT DEBUT_SAMEDI FROM GRILLE_SALAIRE_HORAIRE WHERE CS_HORAIRE = {CS_JOURNEE}") cursor.execute(f"SELECT DEBUT_SAMEDI FROM GRILLE_SALAIRE_HORAIRE WHERE CS_HORAIRE = {CS_JOURNEE}")
debut_samedi = cursor.fetchone()[0] debut_samedi = cursor.fetchone()[0]
for i in range(delta.days + 1): for i in range(delta.days + 1):
datei = start_date + timedelta(days=i) datei = start_date + timedelta(days=i)
week_day = datei.weekday() week_day = datei.weekday()
if week_day == 6: if week_day == 6:
continue continue
if week_day == 5: if week_day == 5:
last_log_num_jour += 1 last_log_num_jour += 1
cursor.execute(""" cursor.execute("""
INSERT INTO LOG_JOURNEE_JOUR (NUM_LOG_JOUR_JOUR, DATE,WEEK_DAY, NUMERO_EMPLOYE,HEURE_ARRIVEE, HEURE_FIN, NB_HEURES,NB_HEURES_SUP, RETARD) INSERT INTO LOG_JOURNEE_JOUR (NUM_LOG_JOUR_JOUR, DATE,WEEK_DAY, NUMERO_EMPLOYE,HEURE_ARRIVEE, HEURE_FIN, NB_HEURES,NB_HEURES_SUP, RETARD)
VALUES (?, ?, ?,?, ?, ?, ?,?,?)""",(last_log_num_jour, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,str(debut_samedi)+':00',str(debut_samedi+3)+':00',3,0, False ) ) VALUES (?, ?, ?,?, ?, ?, ?,?,?)""",(last_log_num_jour, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,str(debut_samedi)+':00',str(debut_samedi+3)+':00',3,0, False ) )
else: else:
last_log_num_jour += 1 last_log_num_jour += 1
cursor.execute(""" cursor.execute("""
INSERT INTO LOG_JOURNEE_JOUR (NUM_LOG_JOUR_JOUR, DATE,WEEK_DAY, NUMERO_EMPLOYE,HEURE_ARRIVEE, HEURE_FIN, NB_HEURES,NB_HEURES_SUP, RETARD) INSERT INTO LOG_JOURNEE_JOUR (NUM_LOG_JOUR_JOUR, DATE,WEEK_DAY, NUMERO_EMPLOYE,HEURE_ARRIVEE, HEURE_FIN, NB_HEURES,NB_HEURES_SUP, RETARD)
VALUES (?, ?, ?,?, ?, ?, ?,?,?)""",(last_log_num_jour, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,str(8)+':00',str(debut_samedi+9)+':00',9,0, False ) ) VALUES (?, ?, ?,?, ?, ?, ?,?,?)""",(last_log_num_jour, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,str(8)+':00',str(debut_samedi+9)+':00',9,0, False ) )
if CS_PRODUCTION is not None: if CS_PRODUCTION is not None:
cursor.execute(f"SELECT PIECE_JOUR , DEBUT_SAMEDI FROM GRILLE_SALAIRE_PROD WHERE CS_PRODUCTION = {CS_PRODUCTION}") cursor.execute(f"SELECT PIECE_JOUR , DEBUT_SAMEDI FROM GRILLE_SALAIRE_PROD WHERE CS_PRODUCTION = {CS_PRODUCTION}")
piece_jour,debut_samedi = cursor.fetchone() piece_jour,debut_samedi = cursor.fetchone()
for i in range(delta.days + 1): for i in range(delta.days + 1):
datei = start_date + timedelta(days=i) datei = start_date + timedelta(days=i)
week_day = datei.weekday() week_day = datei.weekday()
if week_day == 6: if week_day == 6:
continue continue
if week_day == 5: if week_day == 5:
last_log_num_prod += 1 last_log_num_prod += 1
cursor.execute(""" cursor.execute("""
INSERT INTO LOG_JOURNEE_PROD (NUM_LOG_JOUR_PROD, DATE,WEEK_DAY, NUMERO_EMPLOYE,NB_PIECES,NB_PIECES_SUP,HEURE_ARRIVEE,RETARD) INSERT INTO LOG_JOURNEE_PROD (NUM_LOG_JOUR_PROD, DATE,WEEK_DAY, NUMERO_EMPLOYE,NB_PIECES,NB_PIECES_SUP,HEURE_ARRIVEE,RETARD)
VALUES (?, ?, ?,?, ?, ?, ?,?) VALUES (?, ?, ?,?, ?, ?, ?,?)
""", (last_log_num_prod, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,piece_jour,0,str(debut_samedi)+':00',False )) """, (last_log_num_prod, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,piece_jour,0,str(debut_samedi)+':00',False ))
else: else:
last_log_num_prod += 1 last_log_num_prod += 1
cursor.execute(""" cursor.execute("""
INSERT INTO LOG_JOURNEE_PROD (NUM_LOG_JOUR_PROD, DATE,WEEK_DAY, NUMERO_EMPLOYE,NB_PIECES,NB_PIECES_SUP,HEURE_ARRIVEE,RETARD) INSERT INTO LOG_JOURNEE_PROD (NUM_LOG_JOUR_PROD, DATE,WEEK_DAY, NUMERO_EMPLOYE,NB_PIECES,NB_PIECES_SUP,HEURE_ARRIVEE,RETARD)
VALUES (?, ?, ?,?, ?, ?, ?,?) VALUES (?, ?, ?,?, ?, ?, ?,?)
""", (last_log_num_prod, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,piece_jour,0,'08:00',False )) """, (last_log_num_prod, datei.strftime('%Y-%m-%d'),week_day, NUMERO_EMPLOYE,piece_jour,0,'08:00',False ))
# Commit the changes # Commit the changes
conn.commit() conn.commit()
``` ```
%% Cell type:markdown id: tags:
# Requete SQL 5 et 6
%% Cell type:code id: tags:
``` python
import pandas as pd
chrismas_day = datetime(2024, 12, 25)
cursor.execute("SELECT NUMERO_EMPLOYE, NOM, PRENOM, CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT FROM EMPLOYE")
employees = cursor.fetchall()
# Create a list to store the data
prime_totale = []
prime_partielle=[]
# Calculate the prime de noel for each employee
for employee in employees:
NUMERO_EMPLOYE, NOM, PRENOM,CS_PRODUCTION,CS_JOURNEE, DATE_DEBUT = employee
start_date = datetime.strptime(DATE_DEBUT, '%Y-%m-%d')
delta = chrismas_day - start_date
if delta.days >= 365:
if CS_JOURNEE is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_HORAIRE WHERE CS_HORAIRE = {CS_JOURNEE}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base*4.5
prime_totale.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
if CS_PRODUCTION is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_PROD WHERE CS_PRODUCTION = {CS_PRODUCTION}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base*4.5
prime_totale.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
else:
if CS_JOURNEE is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_HORAIRE WHERE CS_HORAIRE = {CS_JOURNEE}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base * 100 * delta.days / 365
prime_partielle.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
if CS_PRODUCTION is not None:
cursor.execute(f"SELECT SALAIRE_SEMAINE_BASE FROM GRILLE_SALAIRE_PROD WHERE CS_PRODUCTION = {CS_PRODUCTION}")
salaire_base=cursor.fetchone()[0]
prime_noel= salaire_base*100 * delta.days / 365
prime_partielle.append((NUMERO_EMPLOYE, NOM, PRENOM, DATE_DEBUT, prime_noel))
# Create the dataframe
prime_totale = pd.DataFrame(prime_totale, columns=['NUMERO_EMPLOYE','NOM', 'PRENOM' ,'DATE_DEBUT', 'PRIME_NOEL'])
prime_partielle = pd.DataFrame(prime_partielle, columns=['NUMERO_EMPLOYE','NOM', 'PRENOM' , 'DATE_DEBUT', 'PRIME_NOEL'])
prime_totale.head()
```
%% Output
NUMERO_EMPLOYE NOM PRENOM DATE_DEBUT PRIME_NOEL
0 1 Dubois Michel 2020-11-13 2160.00
1 2 Bouchaira Neirouz 2021-11-13 2160.00
2 3 Caty Jeanne 2019-11-03 3712.50
3 5 Mourin Julie 2023-11-13 2126.25
4 7 Jura Charlie 2022-11-28 3712.50
%% Cell type:code id: tags:
``` python
prime_partielle.head()
```
%% Output
NUMERO_EMPLOYE NOM PRENOM DATE_DEBUT PRIME_NOEL
0 6 Bowers Matthew 2024-11-20 4602.739726
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment