|  |  |  | @ -4,14 +4,18 @@ import info.bukova.isspst.data.Address; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.data.AddressEmb; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.data.Order; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.data.OrderItem; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.services.IsspstException; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.services.addressbook.AdbService; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.services.addressbook.AddressFinder; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.services.orders.OrderService; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.services.settings.GlobalSettingsService; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.ui.FormViewModel; | 
		
	
		
			
				|  |  |  |  | import info.bukova.isspst.validators.OrderFormValidator; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import java.math.BigDecimal; | 
		
	
		
			
				|  |  |  |  | import java.util.HashMap; | 
		
	
		
			
				|  |  |  |  | import java.util.List; | 
		
	
		
			
				|  |  |  |  | import java.util.Map; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import org.slf4j.Logger; | 
		
	
		
			
				|  |  |  |  | import org.slf4j.LoggerFactory; | 
		
	
	
		
			
				
					|  |  |  | @ -19,9 +23,13 @@ import org.zkoss.bind.BindUtils; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.bind.SimpleForm; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.bind.annotation.BindingParam; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.bind.annotation.Command; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.bind.annotation.GlobalCommand; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.bind.annotation.Init; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.bind.annotation.NotifyChange; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.zk.ui.Executions; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.zk.ui.select.annotation.WireVariable; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.zul.Messagebox; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.zul.Window; | 
		
	
		
			
				|  |  |  |  | import org.zkoss.zul.impl.InputElement; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | public class OrderForm extends FormViewModel<Order> | 
		
	
	
		
			
				
					|  |  |  | @ -29,8 +37,12 @@ public class OrderForm extends FormViewModel<Order> | 
		
	
		
			
				|  |  |  |  | 	private final static Logger log = LoggerFactory.getLogger(OrderForm.class.getName()); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 	@WireVariable | 
		
	
		
			
				|  |  |  |  | 	protected AdbService adbService; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 	private AdbService adbService; | 
		
	
		
			
				|  |  |  |  | 	@WireVariable | 
		
	
		
			
				|  |  |  |  | 	private AddressFinder addressFinderAres; | 
		
	
		
			
				|  |  |  |  | 	@WireVariable | 
		
	
		
			
				|  |  |  |  | 	private AddressFinder addressFinderTaxID; | 
		
	
		
			
				|  |  |  |  | 	 | 
		
	
		
			
				|  |  |  |  | 	@WireVariable | 
		
	
		
			
				|  |  |  |  | 	protected GlobalSettingsService settingsService; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -61,14 +73,19 @@ public class OrderForm extends FormViewModel<Order> | 
		
	
		
			
				|  |  |  |  | 	{ | 
		
	
		
			
				|  |  |  |  | 		this.orderFormValidator = new OrderFormValidator(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 		if (this.getDataBean().getSuplier() == null) | 
		
	
		
			
				|  |  |  |  | 		if (getDataBean().getSuplier() != null)	 | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			if (getDataBean().getSuplier().getAddress().getId() != 0) | 
		
	
		
			
				|  |  |  |  | 			{ | 
		
	
		
			
				|  |  |  |  | 				this.selectedSuppAddrItem = this.getDataBean().getSuplier().getAddress(); | 
		
	
		
			
				|  |  |  |  | 			} | 
		
	
		
			
				|  |  |  |  | 			this.suppCompany = getDataBean().getSuplier().getCompany(); | 
		
	
		
			
				|  |  |  |  | 		} | 
		
	
		
			
				|  |  |  |  | 		else | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			this.getDataBean().setSuplier(new AddressEmb()); | 
		
	
		
			
				|  |  |  |  | 		} | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 		this.selectedSuppAddrItem = this.getDataBean().getSuplier().getAddress(); | 
		
	
		
			
				|  |  |  |  | 		this.suppCompany = this.selectedSuppAddrItem.getCompany(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 		if (this.getDataBean().getDeliveryAddress() == null) | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			this.getDataBean().setDeliveryAddress(new AddressEmb()); | 
		
	
	
		
			
				
					|  |  |  | @ -289,4 +306,60 @@ public class OrderForm extends FormViewModel<Order> | 
		
	
		
			
				|  |  |  |  | 		// jiných objednávek
 | 
		
	
		
			
				|  |  |  |  | 		orderService.updateApprovedItems(this.getDataBean(), orderedChanged); | 
		
	
		
			
				|  |  |  |  | 	} | 
		
	
		
			
				|  |  |  |  | 	 | 
		
	
		
			
				|  |  |  |  | 	@Command | 
		
	
		
			
				|  |  |  |  | 	@NotifyChange({"dataBean", "suppCompany"}) | 
		
	
		
			
				|  |  |  |  | 	public void searchAddress()  | 
		
	
		
			
				|  |  |  |  | 	{ | 
		
	
		
			
				|  |  |  |  | 		getDataForm().bind(); | 
		
	
		
			
				|  |  |  |  | 		 | 
		
	
		
			
				|  |  |  |  | 		Address adr = getDataBean().getSuplier().getAddress(); | 
		
	
		
			
				|  |  |  |  | 		 | 
		
	
		
			
				|  |  |  |  | 		if (adr.getIc() != 0) | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			try  | 
		
	
		
			
				|  |  |  |  | 			{ | 
		
	
		
			
				|  |  |  |  | 				adbService.fillFoundData(addressFinderTaxID, adr); | 
		
	
		
			
				|  |  |  |  | 				getDataBean().setSuplier(new AddressEmb(adr)); | 
		
	
		
			
				|  |  |  |  | 				suppCompany = adr.getCompany(); | 
		
	
		
			
				|  |  |  |  | 			} | 
		
	
		
			
				|  |  |  |  | 			catch (IsspstException e) | 
		
	
		
			
				|  |  |  |  | 			{ | 
		
	
		
			
				|  |  |  |  | 				Messagebox.show("Chyba při hledání adresy", "Chyba", Messagebox.OK, Messagebox.ERROR); | 
		
	
		
			
				|  |  |  |  | 				return; | 
		
	
		
			
				|  |  |  |  | 			} | 
		
	
		
			
				|  |  |  |  | 			 | 
		
	
		
			
				|  |  |  |  | 		} | 
		
	
		
			
				|  |  |  |  | 		else  | 
		
	
		
			
				|  |  |  |  | 		{ | 
		
	
		
			
				|  |  |  |  | 			Map<String, List<Address>> arg = new HashMap<String, List<Address>>(); | 
		
	
		
			
				|  |  |  |  | 			try { | 
		
	
		
			
				|  |  |  |  | 				arg.put("result", adbService.lookForAddr(addressFinderAres, adr)); | 
		
	
		
			
				|  |  |  |  | 			} catch (IsspstException e) { | 
		
	
		
			
				|  |  |  |  | 				Messagebox.show("Chyba při hledání adresy", "Chyba", Messagebox.OK, Messagebox.ERROR); | 
		
	
		
			
				|  |  |  |  | 				return; | 
		
	
		
			
				|  |  |  |  | 			} | 
		
	
		
			
				|  |  |  |  | 			 | 
		
	
		
			
				|  |  |  |  | 			Window resWin = (Window) Executions.createComponents("/lists/addressbook/addrFindResult.zul", null, arg); | 
		
	
		
			
				|  |  |  |  | 			resWin.doModal(); | 
		
	
		
			
				|  |  |  |  | 		} | 
		
	
		
			
				|  |  |  |  | 	} | 
		
	
		
			
				|  |  |  |  | 	 | 
		
	
		
			
				|  |  |  |  | 	@GlobalCommand | 
		
	
		
			
				|  |  |  |  | 	@NotifyChange({"dataBean", "suppCompany"}) | 
		
	
		
			
				|  |  |  |  | 	public void selectAddress(@BindingParam("selected") Address selected, @BindingParam("window") Window window) { | 
		
	
		
			
				|  |  |  |  | 		try { | 
		
	
		
			
				|  |  |  |  | 			adbService.fillFoundData(addressFinderTaxID, selected); | 
		
	
		
			
				|  |  |  |  | 		} catch (IsspstException e) { | 
		
	
		
			
				|  |  |  |  | 			e.printStackTrace(); | 
		
	
		
			
				|  |  |  |  | 		} | 
		
	
		
			
				|  |  |  |  | 		 | 
		
	
		
			
				|  |  |  |  | 		Address adr = getDataBean().getSuplier().getAddress(); | 
		
	
		
			
				|  |  |  |  | 		adbService.mergeAddress(adr, selected, true); | 
		
	
		
			
				|  |  |  |  | 		getDataBean().setSuplier(new AddressEmb(adr)); | 
		
	
		
			
				|  |  |  |  | 		suppCompany = adr.getCompany(); | 
		
	
		
			
				|  |  |  |  | 		 | 
		
	
		
			
				|  |  |  |  | 		if (window != null) | 
		
	
		
			
				|  |  |  |  | 			window.detach(); | 
		
	
		
			
				|  |  |  |  | 	} | 
		
	
		
			
				|  |  |  |  | } | 
		
	
	
		
			
				
					|  |  |  | 
 |