@@ -1,5 +1,10 @@
|
|||||||
package info.bukova.isspst.data;
|
package info.bukova.isspst.data;
|
||||||
|
|
||||||
|
import info.bukova.isspst.StringUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
@@ -10,126 +15,326 @@ import org.hibernate.validator.constraints.NotEmpty;
|
|||||||
import org.hibernate.validator.constraints.URL;
|
import org.hibernate.validator.constraints.URL;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="ADDRESS")
|
@Table(name = "ADDRESS")
|
||||||
public class Address extends BaseData {
|
public class Address extends BaseData
|
||||||
|
{
|
||||||
|
|
||||||
@Column(name="COMPANY")
|
@Column(name = "COMPANY")
|
||||||
private String company;
|
private String company;
|
||||||
@Column(name="DEPARTMENT")
|
@Column(name = "DEPARTMENT")
|
||||||
private String department;
|
private String department;
|
||||||
@Column(name="CONTACT_NAME")
|
@Column(name = "CONTACT_NAME")
|
||||||
private String contactName;
|
private String contactName;
|
||||||
@Column(name="STREET")
|
@Column(name = "STREET")
|
||||||
private String street;
|
private String street;
|
||||||
@Column(name="HOUSE_NUMBER")
|
@Column(name = "HOUSE_NUMBER")
|
||||||
private String houseNumber;
|
private String houseNumber;
|
||||||
@Column(name="ZIP_CODE")
|
@Column(name = "ZIP_CODE")
|
||||||
private String zipCode;
|
private String zipCode;
|
||||||
@Column(name="CITY")
|
@Column(name = "CITY")
|
||||||
private String city;
|
private String city;
|
||||||
@Column(name="STATE")
|
@Column(name = "STATE")
|
||||||
private String state;
|
private String state;
|
||||||
@Column(name="IC")
|
@Column(name = "IC")
|
||||||
private long ic;
|
private long ic;
|
||||||
@Column(name="DIC")
|
@Column(name = "DIC")
|
||||||
private String dic;
|
private String dic;
|
||||||
@Column(name="PHONE")
|
@Column(name = "PHONE")
|
||||||
private String phone;
|
private String phone;
|
||||||
@Column(name="EMAIL")
|
@Column(name = "EMAIL")
|
||||||
private String email;
|
private String email;
|
||||||
@Column(name="WEB")
|
@Column(name = "WEB")
|
||||||
private String web;
|
private String web;
|
||||||
@Column(name="DESCRIPTION")
|
@Column(name = "DESCRIPTION")
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
@NotNull(message = "Zadejte firmu")
|
@NotNull(message = "Zadejte firmu")
|
||||||
@NotEmpty(message = "Zadejte firmu")
|
@NotEmpty(message = "Zadejte firmu")
|
||||||
public String getCompany() {
|
public String getCompany()
|
||||||
|
{
|
||||||
return company;
|
return company;
|
||||||
}
|
}
|
||||||
public void setCompany(String company) {
|
|
||||||
|
public void setCompany(String company)
|
||||||
|
{
|
||||||
this.company = company;
|
this.company = company;
|
||||||
}
|
}
|
||||||
public String getDepartment() {
|
|
||||||
|
public String getDepartment()
|
||||||
|
{
|
||||||
return department;
|
return department;
|
||||||
}
|
}
|
||||||
public void setDepartment(String department) {
|
|
||||||
|
public void setDepartment(String department)
|
||||||
|
{
|
||||||
this.department = department;
|
this.department = department;
|
||||||
}
|
}
|
||||||
public String getContactName() {
|
|
||||||
|
public String getContactName()
|
||||||
|
{
|
||||||
return contactName;
|
return contactName;
|
||||||
}
|
}
|
||||||
public void setContactName(String contactName) {
|
|
||||||
|
public void setContactName(String contactName)
|
||||||
|
{
|
||||||
this.contactName = contactName;
|
this.contactName = contactName;
|
||||||
}
|
}
|
||||||
public String getStreet() {
|
|
||||||
|
public String getStreet()
|
||||||
|
{
|
||||||
return street;
|
return street;
|
||||||
}
|
}
|
||||||
public void setStreet(String street) {
|
|
||||||
|
public void setStreet(String street)
|
||||||
|
{
|
||||||
this.street = street;
|
this.street = street;
|
||||||
}
|
}
|
||||||
public String getHouseNumber() {
|
|
||||||
|
public String getHouseNumber()
|
||||||
|
{
|
||||||
return houseNumber;
|
return houseNumber;
|
||||||
}
|
}
|
||||||
public void setHouseNumber(String houseNumber) {
|
|
||||||
|
public void setHouseNumber(String houseNumber)
|
||||||
|
{
|
||||||
this.houseNumber = houseNumber;
|
this.houseNumber = houseNumber;
|
||||||
}
|
}
|
||||||
public String getZipCode() {
|
|
||||||
|
public String getZipCode()
|
||||||
|
{
|
||||||
return zipCode;
|
return zipCode;
|
||||||
}
|
}
|
||||||
public void setZipCode(String zipCode) {
|
|
||||||
|
public void setZipCode(String zipCode)
|
||||||
|
{
|
||||||
this.zipCode = zipCode;
|
this.zipCode = zipCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull(message = "Zadejte město")
|
@NotNull(message = "Zadejte město")
|
||||||
@NotEmpty(message = "Zadejte město")
|
@NotEmpty(message = "Zadejte město")
|
||||||
public String getCity() {
|
public String getCity()
|
||||||
|
{
|
||||||
return city;
|
return city;
|
||||||
}
|
}
|
||||||
public void setCity(String city) {
|
|
||||||
|
public void setCity(String city)
|
||||||
|
{
|
||||||
this.city = city;
|
this.city = city;
|
||||||
}
|
}
|
||||||
public String getState() {
|
|
||||||
|
public String getState()
|
||||||
|
{
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
public void setState(String state) {
|
|
||||||
|
public void setState(String state)
|
||||||
|
{
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
public long getIc() {
|
|
||||||
|
public long getIc()
|
||||||
|
{
|
||||||
return ic;
|
return ic;
|
||||||
}
|
}
|
||||||
public void setIc(long ic) {
|
|
||||||
|
public void setIc(long ic)
|
||||||
|
{
|
||||||
this.ic = ic;
|
this.ic = ic;
|
||||||
}
|
}
|
||||||
public String getDic() {
|
|
||||||
|
public String getDic()
|
||||||
|
{
|
||||||
return dic;
|
return dic;
|
||||||
}
|
}
|
||||||
public void setDic(String dic) {
|
|
||||||
|
public void setDic(String dic)
|
||||||
|
{
|
||||||
this.dic = dic;
|
this.dic = dic;
|
||||||
}
|
}
|
||||||
public String getPhone() {
|
|
||||||
|
public String getPhone()
|
||||||
|
{
|
||||||
return phone;
|
return phone;
|
||||||
}
|
}
|
||||||
public void setPhone(String phone) {
|
|
||||||
|
public void setPhone(String phone)
|
||||||
|
{
|
||||||
this.phone = phone;
|
this.phone = phone;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Email(message = "Špatný formát adresy")
|
@Email(message = "Špatný formát adresy")
|
||||||
public String getEmail() {
|
public String getEmail()
|
||||||
|
{
|
||||||
return email;
|
return email;
|
||||||
}
|
}
|
||||||
public void setEmail(String email) {
|
|
||||||
|
public void setEmail(String email)
|
||||||
|
{
|
||||||
this.email = email;
|
this.email = email;
|
||||||
}
|
}
|
||||||
|
|
||||||
@URL(message = "Špatný formát adresy")
|
@URL(message = "Špatný formát adresy")
|
||||||
public String getWeb() {
|
public String getWeb()
|
||||||
|
{
|
||||||
return web;
|
return web;
|
||||||
}
|
}
|
||||||
public void setWeb(String web) {
|
|
||||||
|
public void setWeb(String web)
|
||||||
|
{
|
||||||
this.web = web;
|
this.web = web;
|
||||||
}
|
}
|
||||||
public String getDescription() {
|
|
||||||
|
public String getDescription()
|
||||||
|
{
|
||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
public void setDescription(String description) {
|
|
||||||
|
public void setDescription(String description)
|
||||||
|
{
|
||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
String str, street;
|
||||||
|
|
||||||
|
List<String> listStreet = new ArrayList<String>();
|
||||||
|
if (this.street != null)
|
||||||
|
listStreet.add(this.street);
|
||||||
|
if (this.houseNumber != null)
|
||||||
|
listStreet.add(this.houseNumber);
|
||||||
|
street = StringUtils.join(listStreet, " ");
|
||||||
|
|
||||||
|
List<String> list = new ArrayList<String>();
|
||||||
|
if (this.company != null)
|
||||||
|
list.add(this.company);
|
||||||
|
if (street != null)
|
||||||
|
list.add(street);
|
||||||
|
if (this.city != null)
|
||||||
|
list.add(this.city);
|
||||||
|
list.add(Long.toString(this.ic));
|
||||||
|
str = StringUtils.join(list, ", ");
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj)
|
||||||
|
{
|
||||||
|
if (this == obj)
|
||||||
|
return true;
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
if (getClass() != obj.getClass())
|
||||||
|
return false;
|
||||||
|
Address other = (Address) obj;
|
||||||
|
|
||||||
|
if (other.getId() == this.getId())
|
||||||
|
{
|
||||||
|
if (other.getId() == 0)
|
||||||
|
{
|
||||||
|
// Protože globální nastavení je serializováno (není v DB), nemá
|
||||||
|
// vyplněno ID - musíme porovnávat jinak - obsahově
|
||||||
|
if (city == null)
|
||||||
|
{
|
||||||
|
if (other.city != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!city.equals(other.city))
|
||||||
|
return false;
|
||||||
|
if (company == null)
|
||||||
|
{
|
||||||
|
if (other.company != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!company.equals(other.company))
|
||||||
|
return false;
|
||||||
|
if (contactName == null)
|
||||||
|
{
|
||||||
|
if (other.contactName != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!contactName.equals(other.contactName))
|
||||||
|
return false;
|
||||||
|
if (department == null)
|
||||||
|
{
|
||||||
|
if (other.department != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!department.equals(other.department))
|
||||||
|
return false;
|
||||||
|
if (description == null)
|
||||||
|
{
|
||||||
|
if (other.description != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!description.equals(other.description))
|
||||||
|
return false;
|
||||||
|
if (dic == null)
|
||||||
|
{
|
||||||
|
if (other.dic != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!dic.equals(other.dic))
|
||||||
|
return false;
|
||||||
|
if (email == null)
|
||||||
|
{
|
||||||
|
if (other.email != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!email.equals(other.email))
|
||||||
|
return false;
|
||||||
|
if (houseNumber == null)
|
||||||
|
{
|
||||||
|
if (other.houseNumber != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!houseNumber.equals(other.houseNumber))
|
||||||
|
return false;
|
||||||
|
if (ic != other.ic)
|
||||||
|
return false;
|
||||||
|
if (phone == null)
|
||||||
|
{
|
||||||
|
if (other.phone != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!phone.equals(other.phone))
|
||||||
|
return false;
|
||||||
|
if (state == null)
|
||||||
|
{
|
||||||
|
if (other.state != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!state.equals(other.state))
|
||||||
|
return false;
|
||||||
|
if (street == null)
|
||||||
|
{
|
||||||
|
if (other.street != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!street.equals(other.street))
|
||||||
|
return false;
|
||||||
|
if (web == null)
|
||||||
|
{
|
||||||
|
if (other.web != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!web.equals(other.web))
|
||||||
|
return false;
|
||||||
|
if (zipCode == null)
|
||||||
|
{
|
||||||
|
if (other.zipCode != null)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (!zipCode.equals(other.zipCode))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import javax.persistence.Embeddable;
|
|||||||
@Embeddable
|
@Embeddable
|
||||||
public class AddressEmb {
|
public class AddressEmb {
|
||||||
|
|
||||||
|
private int id;
|
||||||
private String company;
|
private String company;
|
||||||
private String department;
|
private String department;
|
||||||
private String contactName;
|
private String contactName;
|
||||||
@@ -24,7 +25,14 @@ public class AddressEmb {
|
|||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
public AddressEmb(Address address) {
|
public AddressEmb(Address address)
|
||||||
|
{
|
||||||
|
if (address == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.id = address.getId();
|
||||||
this.company = address.getCompany();
|
this.company = address.getCompany();
|
||||||
this.department = address.getDepartment();
|
this.department = address.getDepartment();
|
||||||
this.contactName = address.getContactName();
|
this.contactName = address.getContactName();
|
||||||
@@ -41,6 +49,39 @@ public class AddressEmb {
|
|||||||
this.description = address.getDescription();
|
this.description = address.getDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Address getAddress()
|
||||||
|
{
|
||||||
|
Address address = new Address();
|
||||||
|
|
||||||
|
address.setId(this.id);
|
||||||
|
address.setCompany(this.company);
|
||||||
|
address.setDepartment(this.department);
|
||||||
|
address.setContactName(this.contactName);
|
||||||
|
address.setStreet(this.street);
|
||||||
|
address.setHouseNumber(this.houseNumber);
|
||||||
|
address.setZipCode(this.zipCode);
|
||||||
|
address.setCity(this.city);
|
||||||
|
address.setState(this.state);
|
||||||
|
address.setIc(this.ic);
|
||||||
|
address.setDic(this.dic);
|
||||||
|
address.setPhone(this.phone);
|
||||||
|
address.setEmail(this.email);
|
||||||
|
address.setWeb(this.web);
|
||||||
|
address.setDescription(this.description);
|
||||||
|
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
public String getCompany() {
|
public String getCompany() {
|
||||||
return company;
|
return company;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public class Order extends BaseData {
|
|||||||
|
|
||||||
@Embedded
|
@Embedded
|
||||||
@AttributeOverrides({
|
@AttributeOverrides({
|
||||||
|
@AttributeOverride(name = "id", column = @Column(name = "SUPPLIER_ID")),
|
||||||
@AttributeOverride(name = "city", column = @Column(name = "SUPPLIER_CITY")),
|
@AttributeOverride(name = "city", column = @Column(name = "SUPPLIER_CITY")),
|
||||||
@AttributeOverride(name = "company", column = @Column(name = "SUPPLIER_COMPANY")),
|
@AttributeOverride(name = "company", column = @Column(name = "SUPPLIER_COMPANY")),
|
||||||
@AttributeOverride(name = "contactName", column = @Column(name = "SUPPLIER_CONTACT_NAME")),
|
@AttributeOverride(name = "contactName", column = @Column(name = "SUPPLIER_CONTACT_NAME")),
|
||||||
@@ -48,6 +49,7 @@ public class Order extends BaseData {
|
|||||||
|
|
||||||
@Embedded
|
@Embedded
|
||||||
@AttributeOverrides({
|
@AttributeOverrides({
|
||||||
|
@AttributeOverride(name = "id", column = @Column(name = "INVOICE_ID")),
|
||||||
@AttributeOverride(name = "city", column = @Column(name = "INVOICE_CITY")),
|
@AttributeOverride(name = "city", column = @Column(name = "INVOICE_CITY")),
|
||||||
@AttributeOverride(name = "company", column = @Column(name = "INVOICE_COMPANY")),
|
@AttributeOverride(name = "company", column = @Column(name = "INVOICE_COMPANY")),
|
||||||
@AttributeOverride(name = "contactName", column = @Column(name = "INVOICE_CONTACT_NAME")),
|
@AttributeOverride(name = "contactName", column = @Column(name = "INVOICE_CONTACT_NAME")),
|
||||||
@@ -67,6 +69,7 @@ public class Order extends BaseData {
|
|||||||
|
|
||||||
@Embedded
|
@Embedded
|
||||||
@AttributeOverrides({
|
@AttributeOverrides({
|
||||||
|
@AttributeOverride(name = "id", column = @Column(name = "DELIVERY_ID")),
|
||||||
@AttributeOverride(name = "city", column = @Column(name = "DELIVERY_CITY")),
|
@AttributeOverride(name = "city", column = @Column(name = "DELIVERY_CITY")),
|
||||||
@AttributeOverride(name = "company", column = @Column(name = "DELIVERY_COMPANY")),
|
@AttributeOverride(name = "company", column = @Column(name = "DELIVERY_COMPANY")),
|
||||||
@AttributeOverride(name = "contactName", column = @Column(name = "DELIVERY_CONTACT_NAME")),
|
@AttributeOverride(name = "contactName", column = @Column(name = "DELIVERY_CONTACT_NAME")),
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
package info.bukova.isspst.data;
|
package info.bukova.isspst.data;
|
||||||
|
|
||||||
|
import info.bukova.isspst.mail.MailMessage;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import info.bukova.isspst.mail.MailMessage;
|
|
||||||
|
|
||||||
public class SettingsData {
|
public class SettingsData {
|
||||||
|
|
||||||
private boolean enableRequirements;
|
private boolean enableRequirements;
|
||||||
@@ -76,6 +76,17 @@ public class SettingsData {
|
|||||||
return shippingAddrs;
|
return shippingAddrs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Seznam všech doručovacích adres včetně hlavní fakturační adresy
|
||||||
|
*/
|
||||||
|
public List<Address> getAllShippingAddrs()
|
||||||
|
{
|
||||||
|
List<Address> list = new ArrayList<Address>();
|
||||||
|
list.add(this.mainAddress);
|
||||||
|
list.addAll(this.getShippingAddrs());
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
public void setShippingAddrs(List<Address> shippingAddrs) {
|
public void setShippingAddrs(List<Address> shippingAddrs) {
|
||||||
this.shippingAddrs = shippingAddrs;
|
this.shippingAddrs = shippingAddrs;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -205,18 +205,12 @@ public class User extends Member implements UserDetails, DataModel {
|
|||||||
|
|
||||||
public static boolean isEqualByUserForFilter(User value, User search)
|
public static boolean isEqualByUserForFilter(User value, User search)
|
||||||
{
|
{
|
||||||
if (search == null)
|
if ((search == null) || search.getFullName().isEmpty())
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (value != null)
|
else if (value != null)
|
||||||
{
|
{
|
||||||
if (search.getFullName().isEmpty())
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String valueS = value.getFullName();
|
String valueS = value.getFullName();
|
||||||
String searchS = search.getFullName();
|
String searchS = search.getFullName();
|
||||||
return (valueS.compareTo(searchS) == 0);
|
return (valueS.compareTo(searchS) == 0);
|
||||||
|
|||||||
@@ -154,18 +154,12 @@ public class Workgroup extends Member implements OwnedDataModel, Serializable {
|
|||||||
|
|
||||||
public static boolean isEqualByWorkgroupForFilter(Workgroup value, Workgroup search)
|
public static boolean isEqualByWorkgroupForFilter(Workgroup value, Workgroup search)
|
||||||
{
|
{
|
||||||
if (search == null)
|
if ((search == null) || search.getFullName().isEmpty())
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (value != null)
|
else if (value != null)
|
||||||
{
|
{
|
||||||
if (search.getFullName().isEmpty())
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String valueS = value.getFullName();
|
String valueS = value.getFullName();
|
||||||
String searchS = search.getFullName();
|
String searchS = search.getFullName();
|
||||||
return (valueS.compareTo(searchS) == 0);
|
return (valueS.compareTo(searchS) == 0);
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package info.bukova.isspst.ui;
|
||||||
|
|
||||||
|
import org.zkoss.bind.annotation.BindingParam;
|
||||||
|
import org.zkoss.bind.annotation.Command;
|
||||||
|
import org.zkoss.bind.annotation.Init;
|
||||||
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
import org.zkoss.zk.ui.event.KeyEvent;
|
||||||
|
import org.zkoss.zul.Combobox;
|
||||||
|
|
||||||
|
public class DocumentViewModel
|
||||||
|
{
|
||||||
|
protected BigDecimalConverter standardBigDecimalConverter;
|
||||||
|
|
||||||
|
public BigDecimalConverter getStandardBigDecimalConverter()
|
||||||
|
{
|
||||||
|
return standardBigDecimalConverter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStandardBigDecimalConverter(BigDecimalConverter standardBigDecimalConverter)
|
||||||
|
{
|
||||||
|
this.standardBigDecimalConverter = standardBigDecimalConverter;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Init
|
||||||
|
public void initDocumentViewModel()
|
||||||
|
{
|
||||||
|
this.standardBigDecimalConverter = new BigDecimalConverter();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Command
|
||||||
|
public void handleComboKeyFilter(@BindingParam("ctrl") Combobox cb, @BindingParam("keyEvent") KeyEvent keyEvent)
|
||||||
|
{
|
||||||
|
if (cb == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int keyCode = keyEvent.getKeyCode();
|
||||||
|
|
||||||
|
switch (keyCode)
|
||||||
|
{
|
||||||
|
case 46: // del
|
||||||
|
// Zrušit jakoukoli vybranou položku
|
||||||
|
cb.setSelectedIndex(-1);
|
||||||
|
// Zavřít listbox
|
||||||
|
cb.close();
|
||||||
|
// Vyvolat událost změny
|
||||||
|
Events.postEvent("onChange", cb, null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,7 +20,7 @@ import org.zkoss.bind.annotation.NotifyChange;
|
|||||||
import org.zkoss.zul.Messagebox;
|
import org.zkoss.zul.Messagebox;
|
||||||
import org.zkoss.zul.Window;
|
import org.zkoss.zul.Window;
|
||||||
|
|
||||||
public class FormViewModel<T extends DataModel>
|
public class FormViewModel<T extends DataModel> extends DocumentViewModel
|
||||||
{
|
{
|
||||||
|
|
||||||
private T dataBean;
|
private T dataBean;
|
||||||
@@ -32,6 +32,8 @@ public class FormViewModel<T extends DataModel>
|
|||||||
@Init
|
@Init
|
||||||
public void init(@ExecutionArgParam("selected") T selected, @ExecutionArgParam("service") Service<T> service)
|
public void init(@ExecutionArgParam("selected") T selected, @ExecutionArgParam("service") Service<T> service)
|
||||||
{
|
{
|
||||||
|
super.initDocumentViewModel();
|
||||||
|
|
||||||
this.dataBean = selected;
|
this.dataBean = selected;
|
||||||
this.service = service;
|
this.service = service;
|
||||||
constraint = new ServiceConstraint<T>();
|
constraint = new ServiceConstraint<T>();
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ import org.zkoss.zk.ui.event.EventListener;
|
|||||||
import org.zkoss.zul.Messagebox;
|
import org.zkoss.zul.Messagebox;
|
||||||
import org.zkoss.zul.Window;
|
import org.zkoss.zul.Window;
|
||||||
|
|
||||||
public class ListViewModel<T extends DataModel> {
|
public class ListViewModel<T extends DataModel> extends DocumentViewModel
|
||||||
|
{
|
||||||
|
|
||||||
private boolean confirmDelete = false;
|
private boolean confirmDelete = false;
|
||||||
private boolean filter = false;
|
private boolean filter = false;
|
||||||
|
|||||||
@@ -1,20 +1,27 @@
|
|||||||
package info.bukova.isspst.ui.main.approved;
|
package info.bukova.isspst.ui.main.approved;
|
||||||
|
|
||||||
import info.bukova.isspst.data.JoinedItem;
|
import info.bukova.isspst.data.JoinedItem;
|
||||||
|
import info.bukova.isspst.data.Order;
|
||||||
import info.bukova.isspst.data.User;
|
import info.bukova.isspst.data.User;
|
||||||
import info.bukova.isspst.data.Workgroup;
|
import info.bukova.isspst.data.Workgroup;
|
||||||
import info.bukova.isspst.filters.JoinedItemFilter;
|
import info.bukova.isspst.filters.JoinedItemFilter;
|
||||||
import info.bukova.isspst.services.approved.ApprovedService;
|
import info.bukova.isspst.services.approved.ApprovedService;
|
||||||
|
import info.bukova.isspst.services.approved.OrderService;
|
||||||
import info.bukova.isspst.services.users.UserService;
|
import info.bukova.isspst.services.users.UserService;
|
||||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
|
import info.bukova.isspst.services.workgroups.WorkgroupService;
|
||||||
import info.bukova.isspst.ui.BigDecimalConverter;
|
import info.bukova.isspst.ui.BigDecimalConverter;
|
||||||
import info.bukova.isspst.ui.ListViewModel;
|
import info.bukova.isspst.ui.ListViewModel;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.zkoss.bind.annotation.Command;
|
||||||
import org.zkoss.bind.annotation.Init;
|
import org.zkoss.bind.annotation.Init;
|
||||||
|
import org.zkoss.zk.ui.Executions;
|
||||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
|
import org.zkoss.zk.ui.select.annotation.WireVariable;
|
||||||
|
import org.zkoss.zul.Window;
|
||||||
|
|
||||||
public class ApprovedList extends ListViewModel<JoinedItem>
|
public class ApprovedList extends ListViewModel<JoinedItem>
|
||||||
{
|
{
|
||||||
@@ -27,8 +34,13 @@ public class ApprovedList extends ListViewModel<JoinedItem>
|
|||||||
@WireVariable
|
@WireVariable
|
||||||
protected UserService userService;
|
protected UserService userService;
|
||||||
|
|
||||||
|
@WireVariable
|
||||||
|
protected OrderService orderService;
|
||||||
|
|
||||||
private BigDecimalConverter bigDecimalConverter;
|
private BigDecimalConverter bigDecimalConverter;
|
||||||
|
|
||||||
|
protected List<JoinedItem> selectedItems;
|
||||||
|
|
||||||
@Init
|
@Init
|
||||||
public void initApprovedList()
|
public void initApprovedList()
|
||||||
{
|
{
|
||||||
@@ -37,6 +49,7 @@ public class ApprovedList extends ListViewModel<JoinedItem>
|
|||||||
// formZul = "form.zul";
|
// formZul = "form.zul";
|
||||||
dataFilter = new JoinedItemFilter(getFilterTemplate());
|
dataFilter = new JoinedItemFilter(getFilterTemplate());
|
||||||
bigDecimalConverter = new BigDecimalConverter();
|
bigDecimalConverter = new BigDecimalConverter();
|
||||||
|
selectedItems = new ArrayList<JoinedItem>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimalConverter getBigDecimalConverter()
|
public BigDecimalConverter getBigDecimalConverter()
|
||||||
@@ -49,15 +62,19 @@ public class ApprovedList extends ListViewModel<JoinedItem>
|
|||||||
return approvedService.getAll();
|
return approvedService.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<JoinedItem> getSelectedItems()
|
||||||
|
{
|
||||||
|
return this.selectedItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectedItems(List<JoinedItem> selectedItems)
|
||||||
|
{
|
||||||
|
this.selectedItems = selectedItems;
|
||||||
|
}
|
||||||
|
|
||||||
public List<Workgroup> getWorkgroups()
|
public List<Workgroup> getWorkgroups()
|
||||||
{
|
{
|
||||||
Workgroup empty = new Workgroup();
|
return this.workgroupService.getWorkgroups();
|
||||||
empty.setCode("");
|
|
||||||
empty.setName("");
|
|
||||||
List<Workgroup> list = new ArrayList<Workgroup>();
|
|
||||||
list.add(empty);
|
|
||||||
list.addAll(this.workgroupService.getWorkgroups());
|
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Workgroup> getCenters()
|
public List<Workgroup> getCenters()
|
||||||
@@ -69,4 +86,28 @@ public class ApprovedList extends ListViewModel<JoinedItem>
|
|||||||
{
|
{
|
||||||
return this.userService.getAll();
|
return this.userService.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Command
|
||||||
|
// @NotifyChange({ "selectedItems" })
|
||||||
|
public void onCreateOrder()
|
||||||
|
{
|
||||||
|
if (this.selectedItems == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.selectedItems.size() == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Order order = orderService.createOrder(this.selectedItems);
|
||||||
|
|
||||||
|
Map<String, Object> params = new HashMap<String, Object>();
|
||||||
|
params.put("selected", order);
|
||||||
|
params.put("service", orderService);
|
||||||
|
|
||||||
|
Window orderForm = (Window) Executions.createComponents("/main/orders/created/orderForm.zul", null, params);
|
||||||
|
orderForm.doModal();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,144 @@
|
|||||||
|
package info.bukova.isspst.ui.main.orders.created;
|
||||||
|
|
||||||
|
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.addressbook.AdbService;
|
||||||
|
import info.bukova.isspst.services.settings.GlobalSettingsService;
|
||||||
|
import info.bukova.isspst.ui.FormViewModel;
|
||||||
|
import info.bukova.isspst.validators.OrderFormValidator;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.zkoss.bind.annotation.Command;
|
||||||
|
import org.zkoss.bind.annotation.Init;
|
||||||
|
import org.zkoss.bind.annotation.NotifyChange;
|
||||||
|
import org.zkoss.zk.ui.select.annotation.WireVariable;
|
||||||
|
|
||||||
|
public class OrderForm extends FormViewModel<Order>
|
||||||
|
{
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private final static Logger log = LoggerFactory.getLogger(OrderForm.class.getName());
|
||||||
|
|
||||||
|
@WireVariable
|
||||||
|
protected AdbService adbService;
|
||||||
|
|
||||||
|
@WireVariable
|
||||||
|
protected GlobalSettingsService settingsService;
|
||||||
|
|
||||||
|
protected OrderFormValidator orderFormValidator;
|
||||||
|
|
||||||
|
protected OrderItem selectedItem;
|
||||||
|
|
||||||
|
protected Address selectedSuppAddrItem;
|
||||||
|
|
||||||
|
protected Address selectedDeliveryAddrItem;
|
||||||
|
|
||||||
|
@Init(superclass = true)
|
||||||
|
public void initOrderForm()
|
||||||
|
{
|
||||||
|
this.orderFormValidator = new OrderFormValidator();
|
||||||
|
this.selectedDeliveryAddrItem = this.getDataBean().getDeliveryAddress().getAddress();
|
||||||
|
|
||||||
|
if (this.getDataBean().getSuplier() == null)
|
||||||
|
{
|
||||||
|
this.getDataBean().setSuplier(new AddressEmb());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.getDataBean().getDeliveryAddress() == null)
|
||||||
|
{
|
||||||
|
this.getDataBean().setDeliveryAddress(new AddressEmb());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.getDataBean().getAddress() == null)
|
||||||
|
{
|
||||||
|
this.getDataBean().setAddress(new AddressEmb());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderFormValidator getOrderFormValidator()
|
||||||
|
{
|
||||||
|
return orderFormValidator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderFormValidator(OrderFormValidator orderFormValidator)
|
||||||
|
{
|
||||||
|
this.orderFormValidator = orderFormValidator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Address> getSuppAddresses()
|
||||||
|
{
|
||||||
|
return adbService.getAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Address> getDeliveryAddresses()
|
||||||
|
{
|
||||||
|
return settingsService.getSettings().getAllShippingAddrs();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Address getInvoiceAddress()
|
||||||
|
{
|
||||||
|
return settingsService.getSettings().getMainAddress();
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderItem getSelectedItem()
|
||||||
|
{
|
||||||
|
return this.selectedItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectedItem(OrderItem selectedItem)
|
||||||
|
{
|
||||||
|
this.selectedItem = selectedItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Address getSelectedSuppAddrItem()
|
||||||
|
{
|
||||||
|
return selectedSuppAddrItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectedSuppAddrItem(Address selectedSuppAddrItem)
|
||||||
|
{
|
||||||
|
this.selectedSuppAddrItem = selectedSuppAddrItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Address getSelectedDeliveryAddrItem()
|
||||||
|
{
|
||||||
|
return selectedDeliveryAddrItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectedDeliveryAddrItem(Address selectedDeliveryAddrItem)
|
||||||
|
{
|
||||||
|
this.selectedDeliveryAddrItem = selectedDeliveryAddrItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Command
|
||||||
|
@NotifyChange("dataBean")
|
||||||
|
public void doFillSuppAddress()
|
||||||
|
{
|
||||||
|
if (this.selectedSuppAddrItem == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Naplnit pole podle vybrané adresy z comba
|
||||||
|
AddressEmb supplier = new AddressEmb(this.selectedSuppAddrItem);
|
||||||
|
this.getDataBean().setSuplier(supplier);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Command
|
||||||
|
@NotifyChange("dataBean")
|
||||||
|
public void doFillDeliveryAddress()
|
||||||
|
{
|
||||||
|
if (this.selectedDeliveryAddrItem == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Naplnit pole podle vybrané adresy z comba
|
||||||
|
AddressEmb delivery = new AddressEmb(this.selectedDeliveryAddrItem);
|
||||||
|
this.getDataBean().setDeliveryAddress(delivery);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package info.bukova.isspst.validators;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.zkoss.bind.ValidationContext;
|
||||||
|
|
||||||
|
public class OrderFormValidator extends BaseValidator
|
||||||
|
{
|
||||||
|
private final static Logger log = LoggerFactory.getLogger(OrderFormValidator.class.getName());
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Logger getLogger()
|
||||||
|
{
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void validate(ValidationContext ctx)
|
||||||
|
{
|
||||||
|
// Property propertyCentre = ctx.getProperties("centre")[0];
|
||||||
|
// Workgroup workgroup = (Workgroup) propertyCentre.getValue();
|
||||||
|
//
|
||||||
|
// if (workgroup == null)
|
||||||
|
// {
|
||||||
|
// this.errorMsg(ctx, StringUtils.localize("RequirementCenterIsEmpty"),
|
||||||
|
// "idReqCenter");
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -269,6 +269,7 @@ false=Ne
|
|||||||
|
|
||||||
|
|
||||||
Information=Informace
|
Information=Informace
|
||||||
|
Order=Objednávka
|
||||||
Orders=Objednávky
|
Orders=Objednávky
|
||||||
|
|
||||||
MaterialRequirement=Požadavek na materiál
|
MaterialRequirement=Požadavek na materiál
|
||||||
@@ -303,6 +304,19 @@ RemoveItem=Smazat
|
|||||||
Amount=Částka
|
Amount=Částka
|
||||||
Owner=Vlastník
|
Owner=Vlastník
|
||||||
CreateOrder=Vytvořit objednávku
|
CreateOrder=Vytvořit objednávku
|
||||||
|
NotYetFilled=Zatím nevyplněno
|
||||||
|
DeliveryAddress=Dodací adresa
|
||||||
|
BillingAddress=Fakturační adresa
|
||||||
|
|
||||||
|
OrderFormNumber=Číslo objednávky
|
||||||
|
OrderFormOrderDate=Datum objednávky
|
||||||
|
OrderFormTotal=Celkem
|
||||||
|
OrderFormDescription=Popis
|
||||||
|
OrderFormOrdered=Objednáno
|
||||||
|
OrderFormDeliveredDate=Dodáno dne
|
||||||
|
OrderFormInvoiceNumber=Číslo faktury
|
||||||
|
|
||||||
|
HandleComboKeyFilter=#del
|
||||||
|
|
||||||
WorkgroupFormUserIsCenterMember=Uživatel je členem střediska, jehož je komise členem!
|
WorkgroupFormUserIsCenterMember=Uživatel je členem střediska, jehož je komise členem!
|
||||||
WorkgroupFormMemberIsCenterMember=Některý ze členů přidávané komise je členem tohoto střediska!
|
WorkgroupFormMemberIsCenterMember=Některý ze členů přidávané komise je členem tohoto střediska!
|
||||||
|
|||||||
@@ -1,9 +1,22 @@
|
|||||||
<?page title="buttons" contentType="text/html;charset=UTF-8"?>
|
<?page title="buttons" contentType="text/html;charset=UTF-8"?>
|
||||||
<zk>
|
<zk>
|
||||||
<vlayout>
|
<vlayout
|
||||||
<div hflex="max" align="right">
|
vflex="min"
|
||||||
<button image="~./zul/img/misc/drag-disallow.png" label="${labels.ButtonStorno}" onClick="editWin.detach()" sclass="nicebutton" />
|
hflex="max">
|
||||||
<button image="/img/save.png" label="${labels.ButtonSave}" onClick="@command('save', window=editWin) @global-command('refresh')" disabled="@load(not vm.canSave)" sclass="nicebutton" />
|
<div
|
||||||
|
hflex="max"
|
||||||
|
align="right">
|
||||||
|
<button
|
||||||
|
image="~./zul/img/misc/drag-disallow.png"
|
||||||
|
label="${labels.ButtonStorno}"
|
||||||
|
onClick="editWin.detach()"
|
||||||
|
sclass="nicebutton" />
|
||||||
|
<button
|
||||||
|
image="/img/save.png"
|
||||||
|
label="${labels.ButtonSave}"
|
||||||
|
onClick="@command('save', window=editWin) @global-command('refresh')"
|
||||||
|
disabled="@load(not vm.canSave)"
|
||||||
|
sclass="nicebutton" />
|
||||||
</div>
|
</div>
|
||||||
</vlayout>
|
</vlayout>
|
||||||
</zk>
|
</zk>
|
||||||
@@ -8,6 +8,12 @@
|
|||||||
text-shadow: 2px 2px 2px #000000;
|
text-shadow: 2px 2px 2px #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.addScrollbar {
|
||||||
|
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.find-grid-cell {
|
.find-grid-cell {
|
||||||
display: table;
|
display: table;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
multiple="true"
|
multiple="true"
|
||||||
checkmark="true"
|
checkmark="true"
|
||||||
vflex="1"
|
vflex="1"
|
||||||
context="popupMenu"
|
selectedItems="@bind(vm.selectedItems)"
|
||||||
model="@load(vm.dataList)">
|
model="@load(vm.dataList)">
|
||||||
<listhead menupopup="auto">
|
<listhead menupopup="auto">
|
||||||
<listheader width="27" />
|
<listheader width="27" />
|
||||||
@@ -182,11 +182,13 @@
|
|||||||
<div zclass="find-grid-cell">
|
<div zclass="find-grid-cell">
|
||||||
<div sclass="find-grid-divtextbox">
|
<div sclass="find-grid-divtextbox">
|
||||||
<combobox
|
<combobox
|
||||||
readonly="true"
|
ctrlKeys="${labels.HandleComboKeyFilter}"
|
||||||
|
onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)"
|
||||||
|
onChange="@command('doFilter')"
|
||||||
width="100%"
|
width="100%"
|
||||||
selectedItem="@bind(vm.filterTemplate.workgroup)"
|
selectedItem="@bind(vm.filterTemplate.workgroup)"
|
||||||
model="@load(vm.workgroups)"
|
model="@load(vm.workgroups)"
|
||||||
onChange="@command('doFilter')">
|
readonly="true">
|
||||||
<template name="model">
|
<template name="model">
|
||||||
<comboitem label="@load(each.fullName)" />
|
<comboitem label="@load(each.fullName)" />
|
||||||
</template>
|
</template>
|
||||||
@@ -201,11 +203,13 @@
|
|||||||
<div zclass="find-grid-cell">
|
<div zclass="find-grid-cell">
|
||||||
<div sclass="find-grid-divtextbox">
|
<div sclass="find-grid-divtextbox">
|
||||||
<combobox
|
<combobox
|
||||||
readonly="true"
|
ctrlKeys="${labels.HandleComboKeyFilter}"
|
||||||
|
onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)"
|
||||||
|
onChange="@command('doFilter')"
|
||||||
width="100%"
|
width="100%"
|
||||||
selectedItem="@bind(vm.filterTemplate.centre)"
|
selectedItem="@bind(vm.filterTemplate.centre)"
|
||||||
model="@load(vm.centers)"
|
model="@load(vm.centers)"
|
||||||
onChange="@command('doFilter')">
|
readonly="true">
|
||||||
<template name="model">
|
<template name="model">
|
||||||
<comboitem label="@load(each.fullName)" />
|
<comboitem label="@load(each.fullName)" />
|
||||||
</template>
|
</template>
|
||||||
@@ -220,11 +224,13 @@
|
|||||||
<div zclass="find-grid-cell">
|
<div zclass="find-grid-cell">
|
||||||
<div sclass="find-grid-divtextbox">
|
<div sclass="find-grid-divtextbox">
|
||||||
<combobox
|
<combobox
|
||||||
readonly="true"
|
ctrlKeys="${labels.HandleComboKeyFilter}"
|
||||||
|
onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)"
|
||||||
|
onChange="@command('doFilter')"
|
||||||
width="100%"
|
width="100%"
|
||||||
selectedItem="@bind(vm.filterTemplate.ownedBy)"
|
selectedItem="@bind(vm.filterTemplate.ownedBy)"
|
||||||
model="@load(vm.users)"
|
model="@load(vm.users)"
|
||||||
onChange="@command('doFilter')">
|
readonly="true">
|
||||||
<template name="model">
|
<template name="model">
|
||||||
<comboitem label="@load(each.fullName)" />
|
<comboitem label="@load(each.fullName)" />
|
||||||
</template>
|
</template>
|
||||||
@@ -251,7 +257,7 @@
|
|||||||
</auxheader>
|
</auxheader>
|
||||||
</auxhead>
|
</auxhead>
|
||||||
<template name="model">
|
<template name="model">
|
||||||
<listitem>
|
<listitem context="popupMenu">
|
||||||
<listcell />
|
<listcell />
|
||||||
<listcell label="@load(each.code)" />
|
<listcell label="@load(each.code)" />
|
||||||
<listcell label="@load(each.name)" />
|
<listcell label="@load(each.name)" />
|
||||||
@@ -267,11 +273,11 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</template>
|
</template>
|
||||||
</listbox>
|
</listbox>
|
||||||
|
<menupopup id="popupMenu">
|
||||||
|
<menuitem
|
||||||
|
image="/img/autotruck-016.png"
|
||||||
|
label="${labels.CreateOrder}..."
|
||||||
|
onClick="@command('onCreateOrder')" />
|
||||||
|
</menupopup>
|
||||||
</window>
|
</window>
|
||||||
<menupopup id="popupMenu">
|
|
||||||
<menuitem
|
|
||||||
image="/img/autotruck-016.png"
|
|
||||||
label="${labels.CreateOrder}..."
|
|
||||||
onClick="" />
|
|
||||||
</menupopup>
|
|
||||||
</zk>
|
</zk>
|
||||||
@@ -0,0 +1,537 @@
|
|||||||
|
<?page title="${labels.Order}" contentType="text/html;charset=UTF-8"?>
|
||||||
|
<zk>
|
||||||
|
<window
|
||||||
|
id="editWin"
|
||||||
|
width="95%"
|
||||||
|
height="95%"
|
||||||
|
closable="true"
|
||||||
|
border="normal"
|
||||||
|
position="center"
|
||||||
|
apply="org.zkoss.bind.BindComposer"
|
||||||
|
viewModel="@id('vm') @init('info.bukova.isspst.ui.main.orders.created.OrderForm')"
|
||||||
|
validationMessages="@id('vmsg')">
|
||||||
|
<caption
|
||||||
|
image="/img/autotruck-032.png"
|
||||||
|
zclass="form-caption"
|
||||||
|
label="${labels.Order}" />
|
||||||
|
<vlayout
|
||||||
|
sclass="addScrollbar"
|
||||||
|
form="@id('fx') @load(vm.dataBean) @save(vm.dataBean, before='save') @validator(vm.orderFormValidator)"
|
||||||
|
hflex="1"
|
||||||
|
vflex="1">
|
||||||
|
<hlayout
|
||||||
|
hflex="1"
|
||||||
|
vflex="min">
|
||||||
|
<tabbox
|
||||||
|
hflex="10"
|
||||||
|
vflex="1">
|
||||||
|
<tabs>
|
||||||
|
<tab label="${labels.Information}" />
|
||||||
|
</tabs>
|
||||||
|
<tabpanels>
|
||||||
|
<tabpanel>
|
||||||
|
<grid
|
||||||
|
hflex="max"
|
||||||
|
vflex="max">
|
||||||
|
<columns>
|
||||||
|
<column
|
||||||
|
align="right"
|
||||||
|
hflex="min" />
|
||||||
|
<column />
|
||||||
|
</columns>
|
||||||
|
<rows vflex="max">
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.OrderFormNumber} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idOrderNumber"
|
||||||
|
width="150px"
|
||||||
|
constraint="@load(vm.constriant)"
|
||||||
|
value="@bind(fx.numser)"
|
||||||
|
placeholder="${labels.NotYetFilled}..."
|
||||||
|
readonly="true" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.OrderFormOrderDate} :</cell>
|
||||||
|
<cell>
|
||||||
|
<datebox
|
||||||
|
id="idOrderDate"
|
||||||
|
width="150px"
|
||||||
|
value="@bind(fx.orderDate)"
|
||||||
|
format="${labels.DateFormat}" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.OrderFormTotal} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idOrderTotal"
|
||||||
|
readonly="true"
|
||||||
|
width="150px"
|
||||||
|
value="@bind(fx.total) @converter(vm.standardBigDecimalConverter)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.RequirementsFormDeliveryDate} :</cell>
|
||||||
|
<cell>
|
||||||
|
<datebox
|
||||||
|
id="idDeliveryDate"
|
||||||
|
width="150px"
|
||||||
|
value="@bind(fx.deliveryDate)"
|
||||||
|
format="${labels.DateFormat}" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.OrderFormDeliveredDate} :</cell>
|
||||||
|
<cell>
|
||||||
|
<datebox
|
||||||
|
id="idDeliveredDate"
|
||||||
|
width="150px"
|
||||||
|
value="@bind(fx.deliveredDate)"
|
||||||
|
format="${labels.DateFormat}" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.OrderFormInvoiceNumber} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceNumber"
|
||||||
|
width="150px"
|
||||||
|
value="@bind(fx.invoiceNumber)"
|
||||||
|
placeholder="${labels.NotYetFilled}..."
|
||||||
|
readonly="@load(empty fx.created)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.OrderFormDescription} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idOrderDescription"
|
||||||
|
width="100%"
|
||||||
|
rows="5"
|
||||||
|
value="@bind(fx.description)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
</tabpanel>
|
||||||
|
</tabpanels>
|
||||||
|
</tabbox>
|
||||||
|
<tabbox
|
||||||
|
hflex="15"
|
||||||
|
vflex="1">
|
||||||
|
<tabs>
|
||||||
|
<tab label="${labels.SuppliersFormTitle}" />
|
||||||
|
<tab label="${labels.DeliveryAddress}" />
|
||||||
|
<tab label="${labels.BillingAddress}" />
|
||||||
|
</tabs>
|
||||||
|
<tabpanels>
|
||||||
|
<tabpanel>
|
||||||
|
<grid
|
||||||
|
hflex="1"
|
||||||
|
vflex="1">
|
||||||
|
<columns>
|
||||||
|
<column
|
||||||
|
align="right"
|
||||||
|
hflex="min" />
|
||||||
|
<column />
|
||||||
|
<column
|
||||||
|
align="right"
|
||||||
|
hflex="min" />
|
||||||
|
<column />
|
||||||
|
</columns>
|
||||||
|
<rows vflex="max">
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormCompany} :</cell>
|
||||||
|
<cell colspan="3">
|
||||||
|
<combobox
|
||||||
|
onChange="@command('doFillSuppAddress')"
|
||||||
|
width="100%"
|
||||||
|
selectedItem="@bind(vm.selectedSuppAddrItem)"
|
||||||
|
model="@load(vm.suppAddresses)"
|
||||||
|
readonly="false">
|
||||||
|
<template name="model">
|
||||||
|
<comboitem label="@load(each)" />
|
||||||
|
</template>
|
||||||
|
</combobox>
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormIC} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppIC"
|
||||||
|
value="@bind(fx.suplier.ic)" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormDIC} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppDIC"
|
||||||
|
value="@bind(fx.suplier.dic)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormDepartment} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppDepartment"
|
||||||
|
value="@bind(fx.suplier.department)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormContact} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppContactName"
|
||||||
|
value="@bind(fx.suplier.contactName)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormStreet} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppStreet"
|
||||||
|
value="@bind(fx.suplier.street)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormNo} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppHouseNumber"
|
||||||
|
value="@bind(fx.suplier.houseNumber)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormCity} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppCity"
|
||||||
|
value="@bind(fx.suplier.city)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormZIP} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppZIP"
|
||||||
|
value="@bind(fx.suplier.zipCode)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormPhone} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppPhone"
|
||||||
|
value="@bind(fx.suplier.phone)" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormEmail} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idSuppEmail"
|
||||||
|
value="@bind(fx.suplier.email)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormWWW} :</cell>
|
||||||
|
<cell colspan="3">
|
||||||
|
<textbox
|
||||||
|
id="idSuppWWW"
|
||||||
|
value="@bind(fx.suplier.web)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
</tabpanel>
|
||||||
|
<tabpanel>
|
||||||
|
<grid
|
||||||
|
hflex="1"
|
||||||
|
vflex="1">
|
||||||
|
<columns>
|
||||||
|
<column
|
||||||
|
align="right"
|
||||||
|
hflex="min" />
|
||||||
|
<column />
|
||||||
|
<column
|
||||||
|
align="right"
|
||||||
|
hflex="min" />
|
||||||
|
<column />
|
||||||
|
</columns>
|
||||||
|
<rows vflex="max">
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormCompany} :</cell>
|
||||||
|
<cell colspan="3">
|
||||||
|
<combobox
|
||||||
|
onChange="@command('doFillDeliveryAddress')"
|
||||||
|
width="100%"
|
||||||
|
selectedItem="@bind(vm.selectedDeliveryAddrItem)"
|
||||||
|
model="@load(vm.deliveryAddresses)"
|
||||||
|
readonly="false">
|
||||||
|
<template name="model">
|
||||||
|
<comboitem label="@load(each)" />
|
||||||
|
</template>
|
||||||
|
</combobox>
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormIC} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryIC"
|
||||||
|
value="@bind(fx.deliveryAddress.ic)" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormDIC} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryDIC"
|
||||||
|
value="@bind(fx.deliveryAddress.dic)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormDepartment} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryDepartment"
|
||||||
|
value="@bind(fx.deliveryAddress.department)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormContact} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryContactName"
|
||||||
|
value="@bind(fx.deliveryAddress.contactName)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormStreet} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryStreet"
|
||||||
|
value="@bind(fx.deliveryAddress.street)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormNo} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryHouseNumber"
|
||||||
|
value="@bind(fx.deliveryAddress.houseNumber)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormCity} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryCity"
|
||||||
|
value="@bind(fx.deliveryAddress.city)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormZIP} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryZIP"
|
||||||
|
value="@bind(fx.deliveryAddress.zipCode)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormPhone} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryPhone"
|
||||||
|
value="@bind(fx.deliveryAddress.phone)" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormEmail} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryEmail"
|
||||||
|
value="@bind(fx.deliveryAddress.email)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormWWW} :</cell>
|
||||||
|
<cell colspan="3">
|
||||||
|
<textbox
|
||||||
|
id="idDeliveryWWW"
|
||||||
|
value="@bind(fx.deliveryAddress.web)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
</tabpanel>
|
||||||
|
<tabpanel>
|
||||||
|
<grid
|
||||||
|
hflex="1"
|
||||||
|
vflex="1">
|
||||||
|
<columns>
|
||||||
|
<column
|
||||||
|
align="right"
|
||||||
|
hflex="min" />
|
||||||
|
<column />
|
||||||
|
<column
|
||||||
|
align="right"
|
||||||
|
hflex="min" />
|
||||||
|
<column />
|
||||||
|
</columns>
|
||||||
|
<rows vflex="max">
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormCompany} :</cell>
|
||||||
|
<cell colspan="3">
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceCompany"
|
||||||
|
value="@bind(fx.address.company)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormIC} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceIC"
|
||||||
|
value="@bind(fx.address.ic)" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormDIC} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceDIC"
|
||||||
|
value="@bind(fx.address.dic)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormDepartment} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceDepartment"
|
||||||
|
value="@bind(fx.address.department)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormContact} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceContactName"
|
||||||
|
value="@bind(fx.address.contactName)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormStreet} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceStreet"
|
||||||
|
value="@bind(fx.address.street)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormNo} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceHouseNumber"
|
||||||
|
value="@bind(fx.address.houseNumber)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormCity} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceCity"
|
||||||
|
value="@bind(fx.address.city)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormZIP} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceZIP"
|
||||||
|
value="@bind(fx.address.zipCode)" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormPhone} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoicePhone"
|
||||||
|
value="@bind(fx.address.phone)" />
|
||||||
|
</cell>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormEmail} :</cell>
|
||||||
|
<cell>
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceEmail"
|
||||||
|
value="@bind(fx.address.email)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<cell sclass="row-title">${labels.SuppliersFormWWW} :</cell>
|
||||||
|
<cell colspan="3">
|
||||||
|
<textbox
|
||||||
|
id="idInvoiceWWW"
|
||||||
|
value="@bind(fx.address.web)"
|
||||||
|
width="100%" />
|
||||||
|
</cell>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
</tabpanel>
|
||||||
|
</tabpanels>
|
||||||
|
</tabbox>
|
||||||
|
</hlayout>
|
||||||
|
<listbox
|
||||||
|
vflex="1"
|
||||||
|
selectedItem="@bind(vm.selectedItem)"
|
||||||
|
model="@load(fx.items)">
|
||||||
|
<listhead menupopup="auto">
|
||||||
|
<listheader
|
||||||
|
hflex="7"
|
||||||
|
sort="czech(code)"
|
||||||
|
label="${labels.RequirementItemCode}" />
|
||||||
|
<listheader
|
||||||
|
hflex="15"
|
||||||
|
sort="czech(name)"
|
||||||
|
label="${labels.RequirementItemName}" />
|
||||||
|
<listheader
|
||||||
|
hflex="20"
|
||||||
|
sort="czech(textItem)"
|
||||||
|
label="${labels.RequirementItemText}" />
|
||||||
|
<listheader
|
||||||
|
hflex="5"
|
||||||
|
sort="auto(quantity)"
|
||||||
|
align="right"
|
||||||
|
label="${labels.RequirementItemQuantity}" />
|
||||||
|
<listheader
|
||||||
|
hflex="5"
|
||||||
|
sort="auto(munit.name)"
|
||||||
|
label="${labels.RequirementItemMUnit}" />
|
||||||
|
<listheader
|
||||||
|
hflex="7"
|
||||||
|
align="right"
|
||||||
|
sort="auto(unitPrice)"
|
||||||
|
label="${labels.RequirementItemUnitPrice}" />
|
||||||
|
<listheader
|
||||||
|
hflex="7"
|
||||||
|
align="right"
|
||||||
|
sort="auto(total)"
|
||||||
|
label="${labels.RequirementItemTotal}" />
|
||||||
|
<listheader
|
||||||
|
hflex="15"
|
||||||
|
sort="czech(description)"
|
||||||
|
label="${labels.RequirementItemDescription}" />
|
||||||
|
</listhead>
|
||||||
|
<template name="model">
|
||||||
|
<listitem>
|
||||||
|
<listcell label="@load(each.code)" />
|
||||||
|
<listcell label="@load(each.name)" />
|
||||||
|
<listcell label="@load(each.textItem)" />
|
||||||
|
<listcell label="@load(each.quantity) @converter(vm.standardBigDecimalConverter)" />
|
||||||
|
<listcell label="@load(each.munit.name)" />
|
||||||
|
<listcell label="@load(each.unitPrice) @converter(vm.standardBigDecimalConverter)" />
|
||||||
|
<listcell label="@load(each.total) @converter(vm.standardBigDecimalConverter)" />
|
||||||
|
<listcell label="@load(each.description)" />
|
||||||
|
</listitem>
|
||||||
|
</template>
|
||||||
|
</listbox>
|
||||||
|
<include
|
||||||
|
vflex="min"
|
||||||
|
src="/app/formButtons.zul" />
|
||||||
|
</vlayout>
|
||||||
|
</window>
|
||||||
|
</zk>
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
</cell>
|
</cell>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<cell sclass="row-title">${labels.RequirementsFormDescription} :</cell>
|
<cell sclass="row-title">${labels.Description} :</cell>
|
||||||
<cell>
|
<cell>
|
||||||
<textbox
|
<textbox
|
||||||
id="description"
|
id="description"
|
||||||
|
|||||||
Reference in New Issue
Block a user