Na formulář objednávky k adrese dodavatele bylo přidáno tlačítko "Hledat
v ARESu". Tlačítko je aktivní, pokud není vybraná adresa z comba. closes #171
This commit is contained in:
@@ -44,7 +44,15 @@ public class BindingForm<T> extends SimpleForm {
|
||||
// }
|
||||
try
|
||||
{
|
||||
PropertyUtils.setProperty(object, key, getField(key));
|
||||
if (PropertyUtils.getPropertyType(object, key).isPrimitive()
|
||||
&& (getField(key) == null))
|
||||
{
|
||||
PropertyUtils.setProperty(object, key, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
PropertyUtils.setProperty(object, key, getField(key));
|
||||
}
|
||||
}
|
||||
catch (NoSuchMethodException e)
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user