package sklep.klient;

import java.math.BigDecimal;
import java.util.Scanner;

import sklep.generated.Product;
import sklep.generated.RecordNotFound_Exception;
import sklep.generated.Sklep;
import sklep.generated.SklepService;

public class Klient3_EdycjaDanych {

	public static void main(String[] args) {
		System.out.println("Przygotowuję klienta...");
		SklepService service = new SklepService();
		Sklep sklep = service.getSklepPort(); // obiekt proxy
		System.out.println("Klient gotowy.");
		
		Scanner scanner = new Scanner(System.in);
		while(true) {
			System.out.print("Podaj id produktu (0 aby zakończyć): ");
			int id = scanner.nextInt();
			if(id == 0) break;
			
			try {
				Product product = sklep.odczytajJedenProdukt(id);
				System.out.println("Udało się pobrać produkt:");
				System.out.println(product);
				System.out.println(product.getName() + " " + product.getPrice());
				System.out.println(product.getDescription());
				
				boolean czyCosSieZmienilo = false;
				System.out.println("Podaj zmianę ceny: ");
				BigDecimal zmiana = scanner.nextBigDecimal();
				if(zmiana.compareTo(BigDecimal.ZERO) != 0) {
					product.setPrice(product.getPrice().add(zmiana));
					czyCosSieZmienilo = true;
				}
				
				scanner.nextLine();
				System.out.println("Podaj nową nazwę (enter, aby nie zmieniać): ");
				String nazwa = scanner.nextLine();
				if(!nazwa.isEmpty()) {
					product.setDescription(nazwa);
					czyCosSieZmienilo = true;
				}
				System.out.println("Podaj nowy opis (enter, aby nie zmieniać): ");
				String opis = scanner.nextLine();
				if(!opis.isEmpty()) {
					product.setDescription(opis);
					czyCosSieZmienilo = true;
				}				
				if(czyCosSieZmienilo) {
					sklep.zapiszProdukt(product);
					System.out.println("Zapisano zmiany");
				}
				System.out.println();
			} catch (RecordNotFound_Exception e) {
				System.out.println("Nie takiego produktu");
			} catch (Exception e) {
				System.out.println("Inny błąd: " + e);
			}
		}
		System.out.println("Koniec...");
	}

}
