|
|
|
@ -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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|