java.lang.Object
com.ogc.pharmagcode.Utils.DBMSDaemon
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanaggiornaQuantitaConsegnataOrdine(int id_ordine, int id_lotto, int qty) Carica la quantità consegnata nel DB Aziendastatic voidconnect()Metodo che permette di connettersi ad entrambi i Databases.static voidMetodo utilizzato per connettersi al DBMS Azienda.static voidMetodo utilizzato per connettersi al DBMS Farmacie.static intqueryAggiornaData(Ordine ordine, LocalDate nuova_data) Modifica la data di consegna di un ordine da parte di un farmacistastatic intqueryAggiornaOrdinePeriodico(int quantita, OrdinePeriodico ordinePeriodico) Aggiorna la quantita di un ordine periodicostatic booleanqueryAggiornaPassword(String mail, String new_pwd) Aggiorna la password dimailsenza sapere la password vecchia, usato nel caso d'uso recupera credenziali.static intqueryAggiornaQuantitaOrdine(Ordine ordine, int nuova_qty) Aggiorna la quantità di un ordine, se la quantità è settata a 0 elimina l'ordinestatic voidqueryAggiornaScorte(LocalDate today) Aggiorna le scorte di un determinato giorno della settimana, nell'effettivo quindi viene utilizzato per effettuare produzione periodicastatic intqueryAggiornaStatoOrdine(Ordine ordine) Aggiornare lo stato di un ordinestatic voidqueryCaricaFarmaco(int id_lotto, int id_farmacia, int qty, int id_farmaco) Consente di effettuare il caricamento merci, carica la merce nel DB Farmaciestatic Farmaco[]queryCercaFarmaco(String nome, String principio_attivo) Cerca un farmaco avendo o il nome, o il principio attivo o entrambistatic ColloqueryCollo(Ordine ordine) Query utilizzata per poterstampare la ricevutadel Collo avendo un ordinestatic UtentequeryControllaCredenziali(String mail, String password) Query per controllare le credenziali di un utente in base alla variabilesistemadiMain
SeMain.sistema == 0alloraControllaCredenzialiFarmacista()
SeMain.sistema == 1alloraControllaCredenzialiImpiegato()
SeMain.sistema == 2alloraControllaCredenzialiCorriere()static intqueryControllaQuantita(Ordine ordine) Recupera la quantità effettivamente consegnata di un ordinestatic intqueryControlloEsistenzaFarmaco(String nome_farmaco) Controlla se un farmaco esiste nel db per poterne modificare la produzionestatic booleanqueryCorreggiOrdine(int qty_da_integrare, int qta_consegnata, Ordine ordine) Query che consente a un impiegato di correggere un ordine Nel particolare questo metodo fa: Modifica lo stato diordinein"Corretto"Modifica la quantità diordineinqta_consegnataModifica la quantità di ogni lotto che componeordine, reintegrando la quantità non consegnata Seqty_da_integrareè maggiore di 0, viene creato un ordine integrativo con suddetta quantità, con consegna prevista per il giorno successivostatic intqueryCreaOrdine(Ordine ordine, boolean accettaScadenza) Prova a creare un ordine, se l'ordine è da contrassegnare in lavorazione e non sono disponibili le quantità richieste l'ordine non viene effettuato e viene ritornata la quantita che non è stato possbile ordinarestatic intqueryCreaOrdine(Ordine ordine, String statoOrdine, boolean accettaInScadenza) Crea l'ordine componendo, se necessario, i lotti per l'ordine, settando lo stato passato come argomentostatic booleanqueryCreaOrdini(OrdinePeriodico[] ordini) Crea gli ordini relativi alle ordinazioni periodiche di una farmaciastatic booleanqueryFirmaCollo(String firma, Collo collo) Firma un collo e aggiorna anche i relativi ordini contrassegnandoli con lo stato "Consegnato"queryMerceCaricata(int id_farmacia, LocalDate data_caricamento) Query per chiedere la merce caricata in data odierna per l'avviso delle 20:00static intqueryModificaOrdinePeriodico(Ordine ordine, int nuova_qty) query per modificare la quantità di un ordine periodico da parte di un farmacistastatic booleanqueryModificaPassword(String mail, String password, String vecchiaPassword) Query per modificare la password di un utente conoscendo quella vecchia in base alla variabilesistemadiMain.static booleanqueryModificaProduzione(int id_farmaco, int quantita) Modifica la produzione di un farmaco in Aziendastatic Ordine[]queryOrdini(int id_farmacia, LocalDate data) Recupera tutti gli ordini di una farmacia consegnati in una particolare datastatic Ordine[]Recupera tutti gli ordini con stato in attesa da parte dell'aziendastatic OrdinePeriodico[]Recupera tutti gli ordini periodici di tutte le farmacie di tutte le giornatestatic OrdinePeriodico[]queryOrdiniPeriodici(int id_farmacia) Recupera tutti gli ordini periodici di una determinata farmacia di tutti i giornistatic OrdinePeriodico[]queryOrdiniPeriodici(int id_farmacia, int giornoDellaSettimana) Recupera tutti gli ordini periodici di una determinata farmacia in un determinato giornostatic booleanqueryQuantitaFarmaci(Farmaco[] listaFarmaci, int id_farmacia) Per ogni farmaco viene recuperata la quantità presente nel magazzino della singola farmacia identificata daid_farmaciastatic intqueryQuantitaFarmaco(int id_farmaco) Recupera la quantità disponibile nel magazzino azienda, avendo l'identificativo del farmacostatic booleanqueryRegistraUtente(String nome, String cognome, String email, String password) Query per registare un utente in base alla variabilesistemadiMain.static intqueryScaricaMerci(int id_lotto, int id_farmacia, int qty) Consente di effettuare lo scarico di un farmaco appena venduto All'effettivo, decrementa la quantità del lotto in farmacia.static booleanQuery per verificare 'esistenza di una mail in base alla variabilesistemadiMain.static Collo[]Recupera le consegne da effettuaretodayda parte del corriere Utilizzato inCorriere - Visualizza Consegnestatic Ordine[]Recupera tutti gli ordini effettuati da tutte le farmacie.static Ordine[]queryVisualizzaOrdiniFarmacia(int id_farmacia) Recupera tutti gli ordini effettuati da una farmacia, ordinati per data di consegna
-
Constructor Details
-
DBMSDaemon
public DBMSDaemon()
-
-
Method Details
-
connect
public static void connect()Metodo che permette di connettersi ad entrambi i Databases. -
connectFarmacia
public static void connectFarmacia()Metodo utilizzato per connettersi al DBMS Farmacie. Se la connessione è già stata stabilita in precedenza, viene utilizzata quest'ultima. -
connectAzienda
public static void connectAzienda()Metodo utilizzato per connettersi al DBMS Azienda. Se la connessione è già stata stabilita in precedenza, viene utilizzata quest'ultima. -
queryControllaCredenziali
Query per controllare le credenziali di un utente in base alla variabilesistemadiMain
SeMain.sistema == 0alloraControllaCredenzialiFarmacista()
SeMain.sistema == 1alloraControllaCredenzialiImpiegato()
SeMain.sistema == 2alloraControllaCredenzialiCorriere()- Parameters:
mail- mail da controllarepassword- password da controllare- Returns:
- Oggetto di tipo
Utente. Fai il cast aFarmacista,ImpiegatooCorrierea seconda del sistema in cui ti trovi
-
queryRegistraUtente
public static boolean queryRegistraUtente(String nome, String cognome, String email, String password) Query per registare un utente in base alla variabilesistemadiMain.
SeMain.sistema == 0alloraqueryRegistraFarmacista(Main.idFarmacia)
SeMain.sistema == 1alloraqueryRegistraCorriere()
SeMain.sistema == 2alloraqueryRegistraImpiegato()- Parameters:
nome- nome utentecognome- cognome utenteemail- email utentepassword- password utente hashata- Returns:
truese la registrazione ha avuto successo,falsese non ha avuto successo
-
queryVerificaEsistenzaMail
Query per verificare 'esistenza di una mail in base alla variabilesistemadiMain.
SeMain.sistema == 0alloraqueryVerificaEsistenzaMailFarmacista()
SeMain.sistema == 1alloraqueryVerificaEsistenzaMailCorriere()
SeMain.sistema == 2alloraqueryVerificaEsistenzaMailImpiegato()- Parameters:
mail- mail da verificare- Returns:
- true o false se esiste o meno
-
queryModificaPassword
Query per modificare la password di un utente conoscendo quella vecchia in base alla variabilesistemadiMain.
SeMain.sistema == 0alloraqueryModificaPasswordFarmacista()
SeMain.sistema == 1alloraqueryModificaPasswordCorriere()
SeMain.sistema == 2alloraqueryModificaPasswordImpiegato()- Parameters:
mail- mail dell'utentepassword- nuova passwordvecchiaPassword- vecchia password- Returns:
- True se la password è stata modificata con successo
-
queryAggiornaPassword
Aggiorna la password dimailsenza sapere la password vecchia, usato nel caso d'uso recupera credenziali.
SeMain.sistema == 0alloraqueryAggiornaPasswordFarmacista()
SeMain.sistema == 1alloraqueryAggiornaPasswordCorriere()
SeMain.sistema == 2alloraqueryAggiornaPasswordImpiegato()- Parameters:
mail- mail dell'accountnew_pwd- nuova password generata dal sistema- Returns:
- True se la password è stata aggiornata con successo
-
queryCaricaFarmaco
public static void queryCaricaFarmaco(int id_lotto, int id_farmacia, int qty, int id_farmaco) Consente di effettuare il caricamento merci, carica la merce nel DB Farmacie- Parameters:
id_lotto- id del lottoid_farmacia- id della farmaciaqty- quantita
-
aggiornaQuantitaConsegnataOrdine
public static boolean aggiornaQuantitaConsegnataOrdine(int id_ordine, int id_lotto, int qty) Carica la quantità consegnata nel DB Azienda- Parameters:
id_ordine- id dell'ordine appena caricatoid_lotto- id del lotto appena caricatoqty- quantità caricata- Returns:
- true se aggiorna almeno un record
-
queryScaricaMerci
public static int queryScaricaMerci(int id_lotto, int id_farmacia, int qty) Consente di effettuare lo scarico di un farmaco appena venduto All'effettivo, decrementa la quantità del lotto in farmacia. Ritorna la quantità rimasta in magazzino- Parameters:
id_lotto- id del lotto che viene scaricatoid_farmacia- id della farmacia che effettua lo scaricoqty- quantità di farmaco che viene scaricato- Returns:
- quantità di farmaco ancora disponibile in quella farmacia, -1 se ha errorato
-
queryMerceCaricata
public static HashMap<Integer,Integer> queryMerceCaricata(int id_farmacia, LocalDate data_caricamento) Query per chiedere la merce caricata in data odierna per l'avviso delle 20:00 -
queryQuantitaFarmaci
Per ogni farmaco viene recuperata la quantità presente nel magazzino della singola farmacia identificata daid_farmacia- Parameters:
listaFarmaci- lista di farmaci di cui aggiornare la quantitàid_farmacia- id della farmacia che fa la richiesta
-
queryControlloEsistenzaFarmaco
Controlla se un farmaco esiste nel db per poterne modificare la produzione- Parameters:
nome_farmaco- nome del farmaco- Returns:
- id del farmaco corrispondente. -1 se non è stato trovato
-
queryModificaProduzione
public static boolean queryModificaProduzione(int id_farmaco, int quantita) Modifica la produzione di un farmaco in Azienda- Parameters:
id_farmaco- id del farmaco di cui modificare la produzionequantita- nuova quantita da impostare- Returns:
- true o false se con successo o meno
-
queryOrdiniInAttesa
Recupera tutti gli ordini con stato in attesa da parte dell'azienda- Returns:
Ordine[] tutti gli ordini in attesa.nullse non sono stati trovati risultati o erroreComunicazioneDBMS
-
queryAggiornaQuantitaOrdine
Aggiorna la quantità di un ordine, se la quantità è settata a 0 elimina l'ordine- Parameters:
ordine-Ordineordine di cui modificare la quantità- Returns:
- 1 if success, -1 if error
-
queryAggiornaStatoOrdine
Aggiornare lo stato di un ordine- Parameters:
ordine- ordine da aggiornare, con il nuovo stato- Returns:
- 1 if update success, -1 if update failed
-
queryVisualizzaOrdiniAzienda
Recupera tutti gli ordini effettuati da tutte le farmacie. Utilizzato esclusivamente dall'Impiegato per effettuareVisualizzaOrdiniAzienda- Returns:
Ordine[] lista contenente tutti gli ordini
-
queryQuantitaFarmaco
public static int queryQuantitaFarmaco(int id_farmaco) Recupera la quantità disponibile nel magazzino azienda, avendo l'identificativo del farmaco- Parameters:
id_farmaco- identificativo del farmaco- Returns:
- quantità presente nel magazzino dell'azienda, -1 se qualcosa va male
-
queryCreaOrdine
Prova a creare un ordine, se l'ordine è da contrassegnare in lavorazione e non sono disponibili le quantità richieste l'ordine non viene effettuato e viene ritornata la quantita che non è stato possbile ordinare- Parameters:
ordine- ordine da creare (o meglio, provarci)accettaScadenza- se si accettano farmaci in scadenza- Returns:
- Quantita eccedente
-
queryCreaOrdine
Crea l'ordine componendo, se necessario, i lotti per l'ordine, settando lo stato passato come argomento- Parameters:
ordine- ordine da crearestatoOrdine- stato dell'ordineaccettaInScadenza- se l'ordine può accettare farmaci in scadenza- Returns:
-
queryCorreggiOrdine
Query che consente a un impiegato di correggere un ordine Nel particolare questo metodo fa:- Modifica lo stato di
ordinein"Corretto" - Modifica la quantità di
ordineinqta_consegnata - Modifica la quantità di ogni lotto che compone
ordine, reintegrando la quantità non consegnata - Se
qty_da_integrareè maggiore di 0, viene creato un ordine integrativo con suddetta quantità, con consegna prevista per il giorno successivo
- Parameters:
qty_da_integrare- quantità che il farmacista vuole inviata per integrareqta_consegnata- quantità che il farmacista vuole inviata per integrareordine- ordine da correggere- Returns:
- true if success, false if error
- Modifica lo stato di
-
queryVisualizzaOrdiniFarmacia
Recupera tutti gli ordini effettuati da una farmacia, ordinati per data di consegna- Parameters:
id_farmacia- id della farmacia che fa la richiesta- Returns:
Ordine[] contenente gli ordini effettuati,nullse non sono stati trovati risultati o errore
-
queryAggiornaData
Modifica la data di consegna di un ordine da parte di un farmacista- Parameters:
ordine- ordine di cui modificare la data di consegnanuova_data- nuova data di consegna scelta dal farmacista- Returns:
- 1 if success, -1 if error
-
queryOrdiniPeriodici
Recupera tutti gli ordini periodici di tutte le farmacie di tutte le giornate- Returns:
OrdinePeriodico[] contenente tutti gli ordini periodici. Ritorna null se ci sono stati errori o non sono stati trovati risultati.
-
queryOrdiniPeriodici
Recupera tutti gli ordini periodici di una determinata farmacia di tutti i giorni- Parameters:
id_farmacia- id della farmacia da cui parte la richiesta- Returns:
OrdinePeriodico[] gli ordini periodici,nullse non sono presenti o c'è stato errore
-
queryOrdiniPeriodici
Recupera tutti gli ordini periodici di una determinata farmacia in un determinato giorno- Parameters:
id_farmacia- id della farmacia da cui parte la richiestagiornoDellaSettimana- intero rappresentante il giorno della settimana 1 LUN, ..., 7 DOM- Returns:
OrdinePeriodico[] gli ordini periodici,nullse non sono presenti o c'è stato errore
-
queryCercaFarmaco
Cerca un farmaco avendo o il nome, o il principio attivo o entrambi- Parameters:
nome- nome farmacoprincipio_attivo- principio attivo farmaco- Returns:
Farmaco[] array di farmaci trovati, null se nessun risultato oppure è avvenuto erroreComunicazioneDBMS;
-
queryModificaOrdinePeriodico
query per modificare la quantità di un ordine periodico da parte di un farmacista- Parameters:
ordine- ordine periodico da modificarenuova_qty- nuova quantità da settare- Returns:
- 1 if success, -1 if error
-
queryVisualizzaConsegne
Recupera le consegne da effettuaretodayda parte del corriere Utilizzato inCorriere - Visualizza Consegne -
queryFirmaCollo
Firma un collo e aggiorna anche i relativi ordini contrassegnandoli con lo stato "Consegnato"- Parameters:
firma- concatenazione di nome e cognome del firmantecollo- collo da firmare- Returns:
- true if success, false if error
-
queryAggiornaScorte
Aggiorna le scorte di un determinato giorno della settimana, nell'effettivo quindi viene utilizzato per effettuare produzione periodica- Parameters:
today-LocalDate, serve per il giorno di produzione (1 LUN, ..., 7 DOM) e per capire quando scadrà il lotto prodotto
-
queryAggiornaOrdinePeriodico
Aggiorna la quantita di un ordine periodico- Parameters:
quantita- nuova quantitaordinePeriodico- ordine periodico da modificare- Returns:
- 1 if success, -1 if error
-
queryOrdini
Recupera tutti gli ordini di una farmacia consegnati in una particolare data- Parameters:
id_farmacia- id della farmacia che fa la richiestadata- data di consegna- Returns:
Ordine[]
-
queryCreaOrdini
Crea gli ordini relativi alle ordinazioni periodiche di una farmacia- Parameters:
ordini- Ordini Periodici da evadere- Returns:
- se la funzione va a buon fine o meno (tecnicamente non dovrebbe mai andare male)
-
queryControllaQuantita
Recupera la quantità effettivamente consegnata di un ordine- Parameters:
ordine- Ordine di cui si vuole recuperare la quantità consegnata- Returns:
- la quantità consegnata
-
queryCollo
Query utilizzata per poterstampare la ricevutadel Collo avendo un ordine- Parameters:
ordine- ordine di cui recuperare il collo associato- Returns:
- Collo a cui appartiene l'ordine consegnato
-