package sklep.logika;

import java.math.BigDecimal;
import java.util.LinkedList;
import java.util.List;

import sklep.baza.Baza;
import sklep.exn.BladBazyDanych;
import sklep.exn.BrakTowaru;
import sklep.model.Magazyn;
import sklep.model.PotwierdzenieZakupu;
import sklep.model.Towar;

public class Magazyny {
	private Baza baza;
	
	public Magazyny(Baza aBaza) {
		baza = aBaza;
	}
	
	public PotwierdzenieZakupu realizacjaZakupu(Towar towar, int ile) throws BrakTowaru, BladBazyDanych {
		String nazwaTowaru = towar.getNazwa();
		String magazyn = baza.znajdzMagazynZTowarem(nazwaTowaru, ile);
		
		if(magazyn == null) {
			throw BrakTowaru.oNazwie(nazwaTowaru);
		} else {		
			baza.zmienStanMagazynu(magazyn, nazwaTowaru, -ile);
			BigDecimal doZaplaty = BigDecimal.valueOf(ile).multiply(towar.getCenaBrutto());
			return new PotwierdzenieZakupu(nazwaTowaru, ile, doZaplaty, magazyn);
		}
	}
}
