Skip to content

Commit

Permalink
Merge pull request #21 from expl0r3rgu1/dev
Browse files Browse the repository at this point in the history
Release v1.0
  • Loading branch information
expl0r3rgu1 authored Jul 19, 2022
2 parents 1fe273c + 9269cca commit 92d657f
Show file tree
Hide file tree
Showing 34 changed files with 3,280 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -348,3 +348,5 @@ MigrationBackup/

# Ionide (cross platform F# VS Code tools) working folder
.ionide/

credentials.py
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
# mikasa
A database project for an Ikea like shop.

## Installation
Run the following command to install the dependencies:

* On Ubuntu: run: `sudo apt install python3 && sudo apt install python3-pip && pip3 install pysimplegui && sudo apt install python3-tk && pip3 install mysql-connector-python`

* On Windows: First install python3, then run: `pip3 install pysimplegui && pip3 install tk && pip3 install mysql-connector-python`
1,037 changes: 1,037 additions & 0 deletions mikasa.py

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions queries.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
QUERIES = {
'Visualizza clienti': 'SELECT * FROM clienti',
'Aggiungi cliente': 'INSERT INTO clienti(cf_cliente, nome, cognome, telefono, email, via, civico, cap, città, socio) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, 0)',
'Aggiungi acquirente' : 'INSERT INTO acquirenti(cf_acquirente, nome, cognome, telefono, email, via, civico, cap, città) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)',
'Aggiungi manager': 'INSERT INTO manager(cf_manager, nome, cognome, telefono, email, via, civico, cap, città, salario, cod_negozio, cod_orario) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
'Aggiungi amministratore': 'INSERT INTO amministratori(cf_amministratore, nome, cognome, telefono, email, via, civico, cap, città, salario, cod_orario, cod_negozio, cod_zona) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
'Aggiungi tecnico': 'INSERT INTO tecnici(cf_tecnico, nome, cognome, telefono, email, via, civico, cap, città, salario, cod_orario, cod_negozio) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
'Aggiungi tecnico commerciale': 'INSERT INTO tecnici_commerciali(cf_tecnico_commerciale, nome, cognome, telefono, email, via, civico, cap, città, salario, cod_orario, cod_negozio) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
'Aggiungi negozio': 'INSERT INTO negozi(via, civico, cap, città, data_inaugurazione, cf_acquirente, cod_orario, num_posti_ristoro) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)',
'Rendi socio un cliente': 'UPDATE clienti SET socio = 1 WHERE cf_cliente = %s',
'Rendi non socio un cliente': 'UPDATE clienti SET socio = 0 WHERE cf_cliente = %s',
'Effettua ordine' : 'INSERT INTO ordini(data_effettuazione, costo_totale, peso_totale, data_arrivo, cf_cliente, cf_tecnico_commerciale) VALUES (%s, %s, %s, %s, %s, %s)',
'Aggiungi spedizione': 'INSERT INTO spedizioni(cod_ordine, indirizzo, cf_tecnico) VALUES (%s, %s, %s)',
'Aggiungi ritiro': 'INSERT INTO ritiri(cod_ordine, cod_negozio) VALUES (%s, %s)',
'Aggiungi montaggio': 'INSERT INTO montaggi(cod_ordine) VALUES (%s)',
'Aggiungi dettaglio montaggio' : 'INSERT INTO dettagli_montaggio(cf_tecnico, cod_ordine) VALUES (%s, %s)',
'Aggiungi dettaglio prodotto' : 'INSERT INTO dettagli_prodotto (cod_ordine, cod_prodotto, quantità, prezzo_totale, peso_totale) VALUES ',
'Aggiungi dettaglio composizione' : 'INSERT INTO dettagli_composizione (cod_ordine, cod_composizione, quantità, prezzo_totale, peso_totale) VALUES ',
'Aggiungi prodotto': 'INSERT INTO prodotti(nome, prezzo, altezza, larghezza, profondità, peso, cod_sconto, tipo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)',
'Aggiungi alimento': 'INSERT INTO alimenti(nome, provenienza, scadenza, ingredienti, allergeni, prezzo_porzionato, prezzo_confezionato) VALUES (%s, %s, %s, %s, %s, %s, %s)',
'Aggiungi composizione' : 'INSERT INTO composizioni(nome, num_prodotti, peso) VALUES (%s, %s, %s)',
'Aggiungi composta' : 'INSERT INTO composte(cod_composizione, cod_prodotto, quantità) VALUES (%s, %s, %s)',
'Aggiungi sconto' : 'INSERT INTO sconti(percentuale, cod_storico) VALUES (%s, %s)',
'Aggiungi storico sconti' : 'INSERT INTO storico_sconti(inizio, fine) VALUES (%s, %s)',
'Visualizza se cliente è socio' : 'SELECT c.socio FROM clienti c WHERE c.cf_cliente = %s',
'Visualizza ordini in un mese': 'SELECT * FROM ordini WHERE YEAR(data_effettuazione) = %s AND MONTH(data_effettuazione) = %s',
'Visualizza ordini di un cliente': 'SELECT * FROM ordini WHERE cf_cliente = %s',
'Visualizza ritiri in un mese' : 'SELECT o.cod_ordine, r.cod_negozio, o.data_effettuazione, o.data_arrivo FROM ordini o, ritiri r WHERE YEAR(o.data_effettuazione) = %s AND MONTH(o.data_effettuazione) = %s AND o.cod_ordine=r.cod_ordine',
'Visualizza spedizioni in un mese': 'SELECT s.cod_ordine, s.indirizzo, s.cf_tecnico, o.data_effettuazione, o.data_arrivo FROM spedizioni s, ordini o WHERE YEAR(o.data_effettuazione) = %s AND MONTH(o.data_effettuazione) = %s AND o.cod_ordine = s.cod_ordine',
'Visualizza montaggi in un mese': 'SELECT m.cod_ordine, o.data_arrivo FROM montaggi m, ordini o, spedizioni s WHERE YEAR(o.data_arrivo) = %s AND MONTH(o.data_arrivo) = %s AND o.cod_ordine = s.cod_ordine AND s.cod_ordine = m.cod_ordine',
'Visualizza 10 prodotti più acquistati' : 'SELECT p.*, SUM(CASE WHEN p.cod_prodotto = d.cod_prodotto THEN d.quantità ELSE 0 END) AS quantità FROM prodotti p, dettagli_prodotto d WHERE p.cod_prodotto = d.cod_prodotto GROUP BY p.cod_prodotto ORDER BY quantità DESC LIMIT 10',
'Visualizza 10 prodotti meno acquistati' : 'SELECT p.*, SUM(CASE WHEN p.cod_prodotto = d.cod_prodotto THEN d.quantità ELSE 0 END) AS quantità FROM prodotti p, dettagli_prodotto d WHERE p.cod_prodotto = d.cod_prodotto GROUP BY p.cod_prodotto ORDER BY quantità ASC LIMIT 10',
'Visualizza 10 prodotti più costosi' : 'SELECT p.* FROM prodotti p ORDER BY prezzo DESC LIMIT 10',
'Visualizza 10 prodotti meno costosi' : 'SELECT p.* FROM prodotti p ORDER BY prezzo ASC LIMIT 10',
'Visualizza 10 alimenti porzionati più costosi' : 'SELECT a.* FROM alimenti a ORDER BY prezzo_porzionato DESC LIMIT 10',
'Visualizza 10 alimenti confezionati più costosi' : 'SELECT a.* FROM alimenti a ORDER BY prezzo_confezionato DESC LIMIT 10',
'Visualizza 10 alimenti porzionati meno costosi' : 'SELECT a.* FROM alimenti a ORDER BY prezzo_porzionato ASC LIMIT 10',
'Visualizza 10 alimenti confezionati meno costosi' : 'SELECT a.* FROM alimenti a ORDER BY prezzo_confezionato ASC LIMIT 10',
'Visualizza quantità magazzini prodotto': 'SELECT q.cod_negozio, p.cod_prodotto, p.tipo, q.quantità FROM quantità q, prodotti p WHERE q.cod_prodotto = %s AND q.cod_prodotto = p.cod_prodotto',
'Visualizza prodotti terminati' : 'SELECT q.cod_negozio, q.cod_prodotto, p.nome, p.tipo FROM quantità q, prodotti p WHERE q.cod_prodotto = p.cod_prodotto AND q.quantità = 0',
'Visualizza personale' : 'SELECT cf_manager AS cf, nome, cognome FROM manager UNION ALL SELECT cf_amministratore, nome, cognome FROM amministratori UNION ALL SELECT cf_tecnico, nome, cognome FROM tecnici UNION ALL SELECT cf_tecnico_commerciale, nome, cognome FROM tecnici_commerciali',
'Visualizza 10 prodotti con sconto maggiore' : 'SELECT p.cod_prodotto, p.tipo, p.nome, s.cod_sconto, s.percentuale FROM sconti s, prodotti p WHERE p.cod_sconto = s.cod_sconto GROUP BY p.cod_sconto ORDER BY s.percentuale DESC LIMIT 10',
'Visualizza ordini dopo data': 'SELECT * FROM ordini WHERE data_effettuazione >= %s',
'Visualizza 10 ordini più costosi': 'SELECT * FROM ordini ORDER BY costo_totale DESC LIMIT 10',
'Visualizza 10 ordini più costosi cliente': 'SELECT * FROM ordini o WHERE cf_cliente = %s ORDER BY costo_totale DESC LIMIT 10',
'Visualizza sconti' : 'SELECT * FROM sconti',
'Visualizza storico sconti' : 'SELECT * FROM storico_sconti',
'Visualizza negozi' : 'SELECT * FROM negozi',
'Visualizza acquirenti' : 'SELECT * FROM acquirenti',
'Visualizza manager' : 'SELECT * FROM manager',
'Visualizza amministratori' : 'SELECT * FROM amministratori',
'Visualizza tecnici' : 'SELECT * FROM tecnici',
'Visualizza tecnici commerciali' : 'SELECT * FROM tecnici_commerciali',
'Visualizza percentuale sconto di uno sconto' : 'SELECT s.percentuale FROM sconti s WHERE s.cod_sconto = %s',
'Visualizza prodotti in composizione' : 'SELECT p.* FROM prodotti p WHERE EXISTS (SELECT * FROM composte WHERE cod_composizione = %s AND p.cod_prodotto = cod_prodotto)',
'Visualizza prodotti' : 'SELECT * FROM prodotti',
'Visualizza composizioni' : 'SELECT * FROM composizioni',
'Visualizza colori': 'SELECT * FROM colori',
'Visualizza alimenti' : 'SELECT * FROM alimenti',
'Visualizza storico sconto prodotto': 'SELECT s.inizio, s.fine FROM storico_sconti s WHERE cod_storico = (SELECT sc.cod_storico FROM sconti sc WHERE cod_sconto = %s LIMIT 1)',
'Aggiungi orario': 'INSERT INTO orari(giorni, oreinizio, orefine) VALUES (%s, %s, %s)',
'Aggiungi colorazione': 'INSERT INTO colorazioni(cod_colore, cod_prodotto) VALUES (%s, %s)',
'Aggiungi colore' : 'INSERT INTO colori(nome) VALUES (%s)',
'Restock prodotto': 'UPDATE quantità q1 SET quantità = (SELECT quantità FROM quantità q2 WHERE q2.cod_prodotto = q1.cod_negozio AND q2.cod_negozio = q1.cod_negozio LIMIT 1)+%s WHERE cod_prodotto = %s AND cod_negozio = %s',
'Aggiungi confezione': 'INSERT INTO confezioni(cod_negozio, cod_alimento, quantità) VALUES (%s, %s, %s)',
'Aggiungi porzione': 'INSERT INTO porzioni(cod_negozio, cod_alimento)VALUES (%s, %s)',
'Aggiungi esposta': 'INSERT INTO esposte(cod_composizione, cod_negozio) VALUES (%s, %s)',
'Aggiungi quantità': 'INSERT INTO quantità(prodotto, negozio, quantità) VALUES (%s, %s, %s)',
'Licenzia manager': 'DELETE FROM manager WHERE cf_manager = %s',
'Licenzia amministratore': 'DELETE FROM amministratore WHERE cf_amministratore = %s',
'Licenzia tecnico': 'DELETE FROM tecnici WHERE cf_tecnico = %s',
'Licenzia tecnico commerciale': 'DELETE FROM tecnici_commerciali WHERE cf_tecnico_commerciale = %s',
}
Loading

0 comments on commit 92d657f

Please sign in to comment.