GestioneMagazzino.java
Created with JBuilder |
class GestioneMagazzino {
private Articolo[] elencoArticoli;
private int numeroArticoli;
private Ditta[] elencoDitte;
private int numeroDitte;
public GestioneMagazzino(int numeroMaxArticoli, int numeroMaxDitte) {
elencoArticoli = new Articolo[numeroMaxArticoli];
elencoDitte = new Ditta[numeroMaxDitte];
numeroArticoli = numeroDitte = 0;
}
public boolean aggiungiArticolo(Articolo a) {
if (numeroArticoli < elencoArticoli.length) {
elencoArticoli[numeroArticoli] = a;
++numeroArticoli;
return true;
}
return false;
}
public boolean aggiungiDitta(Ditta d) {
if (numeroDitte < elencoDitte.length) {
elencoDitte[numeroDitte] = d;
++numeroDitte;
return true;
}
return false;
}
public boolean cancellaArticolo(String codice) {
int posizione = ricercaArticoloInterno(codice);
if (posizione >= 0) {
elencoArticoli[posizione] = elencoArticoli[numeroArticoli - 1];
--numeroArticoli;
return true;
} else {
return false;
}
}
public boolean cancellaDitta(String codice) {
int posizione = ricercaDittaInterno(codice);
if (posizione >= 0) {
elencoDitte[posizione] = elencoDitte[numeroDitte - 1];
--numeroDitte;
return true;
} else {
return false;
}
}
public Articolo cercaArticolo(String codice) {
int posizione = ricercaArticoloInterno(codice);
if (posizione >= 0) {
return elencoArticoli[posizione];
} else {
return null;
}
}
public Ditta cercaDitta(String codice) {
int posizione = ricercaDittaInterno(codice);
if (posizione >= 0) {
return elencoDitte[posizione];
} else {
return null;
}
}
public boolean eseguiAcquisto(Ditta fornitore, Articolo a, int quantità) {
Ditta mioFornitore = controllaDitta(fornitore);
Articolo mioArticolo = controllaArticolo(a);
if ((mioFornitore != null) && (mioArticolo != null)) {
mioFornitore.eseguiAcquisto(a,quantità);
mioArticolo.aumentaQuantità(quantità);
return true;
} else {
return false;
}
}
public boolean eseguiVendita(Ditta cliente, Articolo a, int quantità) {
Ditta mioCliente = controllaDitta(cliente);
Articolo mioArticolo = cercaArticolo(a.restituisciCodice());
if ((mioCliente != null) && (mioArticolo != null) &&
(mioArticolo.restituisciQuantità() >= quantità)) {
mioCliente.eseguiVendita(a,quantità);
mioArticolo.diminuisciQuantità(quantità);
return true;
} else {
return false;
}
}
public boolean riscuotiImportoDa(Ditta cliente, double importo) {
int posizione = ricercaDittaInterno(cliente.restituisciCodice());
if (posizione >= 0) {
elencoDitte[posizione].eseguiPagamento(importo);
return true;
} else {
return false;
}
}
public boolean pagaImportoA(Ditta fornitore, double importo) {
int posizione = ricercaDittaInterno(fornitore.restituisciCodice());
if (posizione >= 0) {
elencoDitte[posizione].eseguiRiscossione(importo);
return true;
} else {
return false;
}
}
public double calcolaSituazioneFinanziaria() {
double totale = 0;
for( int i = 0; i < numeroDitte; ++i) {
totale += elencoDitte[i].restituisciCompravenditeSospese();
}
return totale;
}
public double calcolaCompravenditeComplessive(Articolo a) {
double totale = 0;
for( int i = 0; i < numeroDitte; ++i) {
totale += elencoDitte[i].numeroCompravendite(a);
}
return totale;
}
private Ditta controllaDitta(Ditta d) {
int posizione = ricercaDittaInterno(d.restituisciCodice());
if (posizione < 0) {
if (aggiungiDitta(d)) {
return elencoDitte[numeroDitte - 1];
} else {
return null;
}
} else {
return elencoDitte[posizione];
}
}
private Articolo controllaArticolo(Articolo a) {
int posizione = ricercaArticoloInterno(a.restituisciCodice());
if (posizione < 0) {
if (aggiungiArticolo(a)) {
return elencoArticoli[numeroArticoli - 1];
} else {
return null;
}
} else {
return elencoArticoli[posizione];
}
}
private int ricercaArticoloInterno( String codice ) {
for (int i = 0; i < numeroArticoli; ++i) {
if (codice.equals(elencoArticoli[i].restituisciCodice())) {
return i;
}
}
return -1;
}
private int ricercaDittaInterno( String codice ) {
for (int i = 0; i < numeroDitte; ++i) {
if (codice.equals(elencoDitte[i].restituisciCodice())) {
return i;
}
}
return -1;
}
}
GestioneMagazzino.java
Created with JBuilder |