parent
							
								
									f1ca2d11c8
								
							
						
					
					
						commit
						b2d141e52b
					
				@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Invoicing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface InvoicingDao extends BaseDao<Invoicing> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.dao.jpa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.dao.InvoicingDao;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Invoicing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class InvoicingDaoJPA extends BaseDaoJPA<Invoicing> implements InvoicingDao {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.persistence.CascadeType;
 | 
				
			||||||
 | 
					import javax.persistence.Column;
 | 
				
			||||||
 | 
					import javax.persistence.Entity;
 | 
				
			||||||
 | 
					import javax.persistence.FetchType;
 | 
				
			||||||
 | 
					import javax.persistence.JoinColumn;
 | 
				
			||||||
 | 
					import javax.persistence.OneToMany;
 | 
				
			||||||
 | 
					import javax.persistence.OneToOne;
 | 
				
			||||||
 | 
					import javax.persistence.Table;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.hibernate.annotations.LazyCollection;
 | 
				
			||||||
 | 
					import org.hibernate.annotations.LazyCollectionOption;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Entity
 | 
				
			||||||
 | 
					@Table(name = "INVOICING")
 | 
				
			||||||
 | 
					public class Invoicing extends BaseData {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@OneToOne(fetch = FetchType.EAGER)
 | 
				
			||||||
 | 
						@JoinColumn(name = "REQUIREMENT_ID")
 | 
				
			||||||
 | 
						private Requirement requirement;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
 | 
				
			||||||
 | 
						@LazyCollection(LazyCollectionOption.TRUE)
 | 
				
			||||||
 | 
						@JoinColumn(name = "INVOICING_ID")
 | 
				
			||||||
 | 
						private List<InvoicingItem> items; 
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Column(name = "TOTAL_INVOICED", precision = 15, scale = 4)
 | 
				
			||||||
 | 
						private BigDecimal totalInvoiced;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public Requirement getRequirement() {
 | 
				
			||||||
 | 
							return requirement;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setRequirement(Requirement requirement) {
 | 
				
			||||||
 | 
							this.requirement = requirement;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public List<InvoicingItem> getItems() {
 | 
				
			||||||
 | 
							return items;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setItems(List<InvoicingItem> items) {
 | 
				
			||||||
 | 
							this.items = items;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public BigDecimal getTotalInvoiced() {
 | 
				
			||||||
 | 
							return totalInvoiced;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setTotalInvoiced(BigDecimal totalInvoiced) {
 | 
				
			||||||
 | 
							this.totalInvoiced = totalInvoiced;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,87 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.persistence.Column;
 | 
				
			||||||
 | 
					import javax.persistence.Entity;
 | 
				
			||||||
 | 
					import javax.persistence.GeneratedValue;
 | 
				
			||||||
 | 
					import javax.persistence.Id;
 | 
				
			||||||
 | 
					import javax.persistence.Table;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Entity
 | 
				
			||||||
 | 
					@Table(name = "INVOICING_ITEM")
 | 
				
			||||||
 | 
					public class InvoicingItem {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Id
 | 
				
			||||||
 | 
						@Column(name = "ID")
 | 
				
			||||||
 | 
						@GeneratedValue
 | 
				
			||||||
 | 
						private int id;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Column(name = "INVOICE_DATE")
 | 
				
			||||||
 | 
						private Date invoiceDate;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Column(name = "INVOICE_NUMBER")
 | 
				
			||||||
 | 
						private String invoiceNumber;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Column(name = "AMOUNT", precision = 15, scale = 4)
 | 
				
			||||||
 | 
						private BigDecimal amount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public int getId() {
 | 
				
			||||||
 | 
							return id;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setId(int id) {
 | 
				
			||||||
 | 
							this.id = id;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public Date getInvoiceDate() {
 | 
				
			||||||
 | 
							return invoiceDate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setInvoiceDate(Date invoiceDate) {
 | 
				
			||||||
 | 
							this.invoiceDate = invoiceDate;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public String getInvoiceNumber() {
 | 
				
			||||||
 | 
							return invoiceNumber;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setInvoiceNumber(String invoiceNumber) {
 | 
				
			||||||
 | 
							this.invoiceNumber = invoiceNumber;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public BigDecimal getAmount() {
 | 
				
			||||||
 | 
							return amount;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setAmount(BigDecimal amount) {
 | 
				
			||||||
 | 
							this.amount = amount;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public boolean equals(Object obj)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (obj != null)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (obj instanceof InvoicingItem)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									InvoicingItem item = (InvoicingItem)obj;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									int thisId = this.getId();
 | 
				
			||||||
 | 
									int itemId = item.getId();
 | 
				
			||||||
 | 
									boolean equalsId = (thisId == itemId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									if (equalsId && (thisId == 0))
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										return super.equals(obj);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									return equalsId;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							return false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.services.invoicing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Invoicing;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Workgroup;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface InvoicingService extends Service<Invoicing> {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public BigDecimal totalInvoicedForWorkgroup(Workgroup workgroup);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public void loadReqItems(Invoicing invoicing);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public void loadItems(Invoicing invoicing);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						public void calculate(Invoicing invoicing);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.services.invoicing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Invoicing;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.InvoicingItem;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Workgroup;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.AbstractOwnedService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.LazyLoader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.hibernate.Hibernate;
 | 
				
			||||||
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class InvoicingServiceImpl extends AbstractOwnedService<Invoicing> implements
 | 
				
			||||||
 | 
							InvoicingService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public BigDecimal totalInvoicedForWorkgroup(Workgroup workgroup) {
 | 
				
			||||||
 | 
							// TODO Auto-generated method stub
 | 
				
			||||||
 | 
							return null;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						@Transactional
 | 
				
			||||||
 | 
						@LazyLoader("form")
 | 
				
			||||||
 | 
						public void loadReqItems(Invoicing invoicing) {
 | 
				
			||||||
 | 
							Invoicing inv = getById(invoicing.getId());
 | 
				
			||||||
 | 
							Hibernate.initialize(inv.getRequirement().getItems());
 | 
				
			||||||
 | 
							invoicing.getRequirement().setItems(inv.getRequirement().getItems());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						@Transactional
 | 
				
			||||||
 | 
						@LazyLoader({"form", "grid"})
 | 
				
			||||||
 | 
						public void loadItems(Invoicing invoicing) {
 | 
				
			||||||
 | 
							Invoicing inv = getById(invoicing.getId());
 | 
				
			||||||
 | 
							Hibernate.initialize(inv.getItems());
 | 
				
			||||||
 | 
							invoicing.setItems(inv.getItems());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public void calculate(Invoicing invoicing) {
 | 
				
			||||||
 | 
							BigDecimal total = BigDecimal.ZERO;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							for (InvoicingItem item : invoicing.getItems()) {
 | 
				
			||||||
 | 
								total = total.add(item.getAmount());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							invoicing.setTotalInvoiced(total);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
package info.bukova.isspst.services.approved;
 | 
					package info.bukova.isspst.services.orders;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import info.bukova.isspst.data.JoinedItem;
 | 
					import info.bukova.isspst.data.JoinedItem;
 | 
				
			||||||
import info.bukova.isspst.services.Service;
 | 
					import info.bukova.isspst.services.Service;
 | 
				
			||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
package info.bukova.isspst.services.approved;
 | 
					package info.bukova.isspst.services.orders;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import info.bukova.isspst.data.JoinedItem;
 | 
					import info.bukova.isspst.data.JoinedItem;
 | 
				
			||||||
import info.bukova.isspst.data.RequirementItem;
 | 
					import info.bukova.isspst.data.RequirementItem;
 | 
				
			||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
package info.bukova.isspst.services.approved;
 | 
					package info.bukova.isspst.services.orders;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import info.bukova.isspst.data.JoinedItem;
 | 
					import info.bukova.isspst.data.JoinedItem;
 | 
				
			||||||
import info.bukova.isspst.data.Order;
 | 
					import info.bukova.isspst.data.Order;
 | 
				
			||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
package info.bukova.isspst.services.approved;
 | 
					package info.bukova.isspst.services.orders;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import info.bukova.isspst.dao.RequirementItemDao;
 | 
					import info.bukova.isspst.dao.RequirementItemDao;
 | 
				
			||||||
import info.bukova.isspst.data.AddressEmb;
 | 
					import info.bukova.isspst.data.AddressEmb;
 | 
				
			||||||
@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.ui.main.invoicing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Invoicing;
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.InvoicingItem;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.invoicing.InvoicingService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.ui.FormViewModel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.BindingParam;
 | 
				
			||||||
 | 
					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 InvoicingForm extends FormViewModel<Invoicing> {
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private InvoicingItem selectedItem;
 | 
				
			||||||
 | 
						private int selectedIndex;
 | 
				
			||||||
 | 
						@WireVariable
 | 
				
			||||||
 | 
						private InvoicingService invoicingService;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Init(superclass = true)
 | 
				
			||||||
 | 
						public void init() {
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						private void selectItem(InvoicingItem item) {
 | 
				
			||||||
 | 
							if (item != null) {
 | 
				
			||||||
 | 
								selectedItem = item;
 | 
				
			||||||
 | 
								selectedIndex = getDataBean().getItems().indexOf(item);
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								selectedItem = null;
 | 
				
			||||||
 | 
								selectedIndex = -1;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Command
 | 
				
			||||||
 | 
						@NotifyChange({"dataBean", "selectedItem", "selectedIndex"})
 | 
				
			||||||
 | 
						public void addItem() {
 | 
				
			||||||
 | 
							InvoicingItem item = new InvoicingItem();
 | 
				
			||||||
 | 
							getDataBean().getItems().add(item);
 | 
				
			||||||
 | 
							selectItem(item);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Command
 | 
				
			||||||
 | 
						@NotifyChange({"dataBean", "selectedItem", "selectedIndex"})
 | 
				
			||||||
 | 
						public void removeItem(@BindingParam("item") InvoicingItem item) {
 | 
				
			||||||
 | 
							getDataBean().getItems().remove(item);
 | 
				
			||||||
 | 
							selectItem(null);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Command
 | 
				
			||||||
 | 
						@NotifyChange({"selectedItem", "selectedIndex"})
 | 
				
			||||||
 | 
						public void onFocus(@BindingParam("item") InvoicingItem item) {
 | 
				
			||||||
 | 
							selectItem(item);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Command
 | 
				
			||||||
 | 
						@NotifyChange("dataBean")
 | 
				
			||||||
 | 
						public void calculate() {
 | 
				
			||||||
 | 
							invoicingService.calculate(getDataBean());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public InvoicingItem getSelectedItem() {
 | 
				
			||||||
 | 
							return selectedItem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setSelectedItem(InvoicingItem selectedItem) {
 | 
				
			||||||
 | 
							this.selectedItem = selectedItem;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public int getSelectedIndex() {
 | 
				
			||||||
 | 
							return selectedIndex;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setSelectedIndex(int selectedIndex) {
 | 
				
			||||||
 | 
							this.selectedIndex = selectedIndex;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					package info.bukova.isspst.ui.main.invoicing;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import info.bukova.isspst.data.Invoicing;
 | 
				
			||||||
 | 
					import info.bukova.isspst.services.invoicing.InvoicingService;
 | 
				
			||||||
 | 
					import info.bukova.isspst.ui.ListViewModel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.zkoss.bind.annotation.Init;
 | 
				
			||||||
 | 
					import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class InvoicingList extends ListViewModel<Invoicing> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@WireVariable
 | 
				
			||||||
 | 
						private InvoicingService invoicingService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Init(superclass = true)
 | 
				
			||||||
 | 
						public void initInvoicing() {
 | 
				
			||||||
 | 
							service = invoicingService;
 | 
				
			||||||
 | 
							dataClass = Invoicing.class;
 | 
				
			||||||
 | 
							formZul = "invoicingForm.zul";
 | 
				
			||||||
 | 
							//dataFilter = new BuildingFilter(getFilterTemplate());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public boolean isAbleToAdd() {
 | 
				
			||||||
 | 
							return false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public boolean isAbleToDelete() {
 | 
				
			||||||
 | 
							return false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
											
												Binary file not shown.
											
										
									
								| 
		 After Width: | Height: | Size: 774 B  | 
											
												Binary file not shown.
											
										
									
								| 
		 After Width: | Height: | Size: 2.1 KiB  | 
@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					<?page title="${labels.Invoicing}" contentType="text/html;charset=UTF-8"?>
 | 
				
			||||||
 | 
					<zk>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<zscript>
 | 
				
			||||||
 | 
						String gridZul = "invoicingGrid.zul";
 | 
				
			||||||
 | 
					</zscript>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<include src="/app/template.zhtml"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</zk>
 | 
				
			||||||
@ -0,0 +1,191 @@
 | 
				
			|||||||
 | 
					<?page title="${labels.Invoicing}" contentType="text/html;charset=UTF-8"?>
 | 
				
			||||||
 | 
					<zk>
 | 
				
			||||||
 | 
						<window
 | 
				
			||||||
 | 
							id="editWin"
 | 
				
			||||||
 | 
							closable="true"
 | 
				
			||||||
 | 
							width="95%"
 | 
				
			||||||
 | 
							height="95%"
 | 
				
			||||||
 | 
							border="normal"
 | 
				
			||||||
 | 
							position="center"
 | 
				
			||||||
 | 
							apply="org.zkoss.bind.BindComposer"
 | 
				
			||||||
 | 
							viewModel="@id('vm') @init('info.bukova.isspst.ui.main.invoicing.InvoicingForm')">
 | 
				
			||||||
 | 
							<caption
 | 
				
			||||||
 | 
								src="/img/invoicing-032.png"
 | 
				
			||||||
 | 
								zclass="form-caption"
 | 
				
			||||||
 | 
								label="${labels.InvoicingFormTitle}" />
 | 
				
			||||||
 | 
							<vlayout vflex="1">
 | 
				
			||||||
 | 
								<hbox>
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								<vbox height="300px">
 | 
				
			||||||
 | 
									<button
 | 
				
			||||||
 | 
										image="/img/item-add.png" 
 | 
				
			||||||
 | 
										label="${labels.InvoicingAdd}" 
 | 
				
			||||||
 | 
										sclass="nicebutton"
 | 
				
			||||||
 | 
										onClick="@command('addItem')"/>
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									<listbox 
 | 
				
			||||||
 | 
										model="@load(vm.dataBean.items)" 
 | 
				
			||||||
 | 
										vflex="1"
 | 
				
			||||||
 | 
										selectedItem="@bind(vm.selectedItem)"
 | 
				
			||||||
 | 
										selectedIndex="@bind(vm.selectedIndex)">
 | 
				
			||||||
 | 
										<listhead>
 | 
				
			||||||
 | 
											<listheader 
 | 
				
			||||||
 | 
												label="${labels.InvoicingDate}" 
 | 
				
			||||||
 | 
												width="150px"/>
 | 
				
			||||||
 | 
											<listheader label="${labels.InvoicingInvoiceNumber}" />
 | 
				
			||||||
 | 
											<listheader 
 | 
				
			||||||
 | 
												label="${labels.InvoicingAmount}"
 | 
				
			||||||
 | 
												align="right" 
 | 
				
			||||||
 | 
												width="90px"/>
 | 
				
			||||||
 | 
											<listheader/>
 | 
				
			||||||
 | 
										</listhead>
 | 
				
			||||||
 | 
										<template name="model">
 | 
				
			||||||
 | 
											<listitem>
 | 
				
			||||||
 | 
												<listcell>
 | 
				
			||||||
 | 
													<datebox 
 | 
				
			||||||
 | 
														value="@bind(each.invoiceDate)" 
 | 
				
			||||||
 | 
														inplace="true"
 | 
				
			||||||
 | 
														onFocus="@command('onFocus', item=each)"/>
 | 
				
			||||||
 | 
												</listcell>
 | 
				
			||||||
 | 
												<listcell>
 | 
				
			||||||
 | 
													<textbox 
 | 
				
			||||||
 | 
														value="@bind(each.invoiceNumber)" 
 | 
				
			||||||
 | 
														sclass="grid-textbox-max" 
 | 
				
			||||||
 | 
														inplace="true"
 | 
				
			||||||
 | 
														onFocus="@command('onFocus', item=each)"/>
 | 
				
			||||||
 | 
												</listcell>
 | 
				
			||||||
 | 
												<listcell>
 | 
				
			||||||
 | 
													<textbox 
 | 
				
			||||||
 | 
														value="@bind(each.amount) @converter(vm.standardBigDecimalConverter)" 
 | 
				
			||||||
 | 
														sclass="grid-textbox-max" 
 | 
				
			||||||
 | 
														inplace="true"
 | 
				
			||||||
 | 
														onFocus="@command('onFocus', item=each)"
 | 
				
			||||||
 | 
														onChange="@command('calculate')"/>
 | 
				
			||||||
 | 
												</listcell>
 | 
				
			||||||
 | 
												<listcell>
 | 
				
			||||||
 | 
													<button label="${labels.RemoveItem}" sclass="nicebutton" onClick="@command('removeItem', item=each)"/>
 | 
				
			||||||
 | 
												</listcell>
 | 
				
			||||||
 | 
											</listitem>
 | 
				
			||||||
 | 
										</template>
 | 
				
			||||||
 | 
									</listbox>
 | 
				
			||||||
 | 
								</vbox>
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								<grid hflex="min">
 | 
				
			||||||
 | 
									<columns>
 | 
				
			||||||
 | 
										<column
 | 
				
			||||||
 | 
											align="right"
 | 
				
			||||||
 | 
											hflex="min" />
 | 
				
			||||||
 | 
										<column />
 | 
				
			||||||
 | 
									</columns>
 | 
				
			||||||
 | 
									<rows>
 | 
				
			||||||
 | 
										<row>
 | 
				
			||||||
 | 
											<cell sclass="row-title">${labels.InvoicingRequirementNumber} :</cell>
 | 
				
			||||||
 | 
											<cell>
 | 
				
			||||||
 | 
												<textbox
 | 
				
			||||||
 | 
													width="200px"
 | 
				
			||||||
 | 
													value="@bind(vm.dataBean.requirement.numser)"
 | 
				
			||||||
 | 
													style="font-weight: bold;" 
 | 
				
			||||||
 | 
													readonly="true"/>
 | 
				
			||||||
 | 
											</cell>
 | 
				
			||||||
 | 
										</row>
 | 
				
			||||||
 | 
										<row>
 | 
				
			||||||
 | 
											<cell sclass="row-title">${labels.InvoicingDescription} :</cell>
 | 
				
			||||||
 | 
											<cell>
 | 
				
			||||||
 | 
												<textbox
 | 
				
			||||||
 | 
													width="350px"
 | 
				
			||||||
 | 
													rows="5"
 | 
				
			||||||
 | 
													value="@bind(vm.dataBean.requirement.description)"
 | 
				
			||||||
 | 
													readonly="true" />
 | 
				
			||||||
 | 
											</cell>
 | 
				
			||||||
 | 
										</row>
 | 
				
			||||||
 | 
										<row>
 | 
				
			||||||
 | 
											<cell sclass="row-title">${labels.InvoicingRequirementPrice} :</cell>
 | 
				
			||||||
 | 
											<cell>
 | 
				
			||||||
 | 
												<textbox
 | 
				
			||||||
 | 
													width="150px"
 | 
				
			||||||
 | 
													value="@bind(vm.dataBean.requirement.sumTotal) @converter(vm.standardBigDecimalConverter)" 
 | 
				
			||||||
 | 
													readonly="true"/>
 | 
				
			||||||
 | 
											</cell>
 | 
				
			||||||
 | 
										</row>
 | 
				
			||||||
 | 
										<row>
 | 
				
			||||||
 | 
											<cell sclass="row-title">${labels.InvoicingInvoicedPrice} :</cell>
 | 
				
			||||||
 | 
											<cell>
 | 
				
			||||||
 | 
												<textbox
 | 
				
			||||||
 | 
													width="150px"
 | 
				
			||||||
 | 
													value="@bind(vm.dataBean.totalInvoiced) @converter(vm.standardBigDecimalConverter)" 
 | 
				
			||||||
 | 
													readonly="true"/>
 | 
				
			||||||
 | 
											</cell>
 | 
				
			||||||
 | 
										</row>
 | 
				
			||||||
 | 
									</rows>
 | 
				
			||||||
 | 
								</grid>
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								</hbox>
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								<listbox
 | 
				
			||||||
 | 
									vflex="1"
 | 
				
			||||||
 | 
									model="@load(vm.dataBean.requirement.items)">
 | 
				
			||||||
 | 
									<listhead>
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="10"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemCode}" />
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="15"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemName}" />
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="30"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemText}" />
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="10"
 | 
				
			||||||
 | 
											align="right"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemQuantity}" />
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="10"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemMUnit}" />
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="10"
 | 
				
			||||||
 | 
											align="right"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemUnitPrice}" />
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="10"
 | 
				
			||||||
 | 
											align="right"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemTotal}" />
 | 
				
			||||||
 | 
										<listheader
 | 
				
			||||||
 | 
											hflex="15"
 | 
				
			||||||
 | 
											label="${labels.RequirementItemDescription}" />
 | 
				
			||||||
 | 
									</listhead>
 | 
				
			||||||
 | 
									<template name="model">
 | 
				
			||||||
 | 
										<listitem>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@load(each.code)"/>
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@load(each.name)" />
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@load(each.textItem)" />
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@bind(each.quantity) @converter(vm.standardBigDecimalConverter)" />
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@bind(each.munit.name)" />
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@bind(each.unitPrice) @converter(vm.standardBigDecimalConverter)" />
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@bind(each.total) @converter(vm.standardBigDecimalConverter)" />
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
											<listcell>
 | 
				
			||||||
 | 
												<label value="@bind(each.description)" />
 | 
				
			||||||
 | 
											</listcell>
 | 
				
			||||||
 | 
										</listitem>
 | 
				
			||||||
 | 
									</template>
 | 
				
			||||||
 | 
								</listbox>
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								<include src="/app/formButtons.zul" />
 | 
				
			||||||
 | 
							</vlayout>
 | 
				
			||||||
 | 
						</window>
 | 
				
			||||||
 | 
					</zk>
 | 
				
			||||||
@ -0,0 +1,76 @@
 | 
				
			|||||||
 | 
					<?page title="${labels.Invoicing}" contentType="text/html;charset=UTF-8"?>
 | 
				
			||||||
 | 
					<zk>
 | 
				
			||||||
 | 
						<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
 | 
				
			||||||
 | 
						<window
 | 
				
			||||||
 | 
							vflex="1"
 | 
				
			||||||
 | 
							border="normal"
 | 
				
			||||||
 | 
							apply="org.zkoss.bind.BindComposer"
 | 
				
			||||||
 | 
							viewModel="@id('vm') @init('info.bukova.isspst.ui.main.invoicing.InvoicingList')">
 | 
				
			||||||
 | 
							<caption
 | 
				
			||||||
 | 
								src="/img/invoicing-032.png"
 | 
				
			||||||
 | 
								zclass="form-caption"
 | 
				
			||||||
 | 
								label="${labels.Invoicing}" />
 | 
				
			||||||
 | 
							<include src="/app/toolbar.zul" />
 | 
				
			||||||
 | 
							<listbox
 | 
				
			||||||
 | 
								vflex="1"
 | 
				
			||||||
 | 
								model="@load(vm.dataList)"
 | 
				
			||||||
 | 
								selectedItem="@bind(vm.dataBean)">
 | 
				
			||||||
 | 
								<listhead menupopup="auto">
 | 
				
			||||||
 | 
									<listheader
 | 
				
			||||||
 | 
										label="${labels.InvoicingRequirementNumber}"
 | 
				
			||||||
 | 
										width="130px" />
 | 
				
			||||||
 | 
									<listheader
 | 
				
			||||||
 | 
										label="Popis" 
 | 
				
			||||||
 | 
										width=""/>
 | 
				
			||||||
 | 
									<listheader
 | 
				
			||||||
 | 
										label="${labels.InvoicingRequirementPrice}"
 | 
				
			||||||
 | 
										align="right"
 | 
				
			||||||
 | 
										width="130px" />
 | 
				
			||||||
 | 
									<listheader
 | 
				
			||||||
 | 
										label="${labels.InvoicingInvoicedPrice}"
 | 
				
			||||||
 | 
										align="right"
 | 
				
			||||||
 | 
										width="130px" />
 | 
				
			||||||
 | 
								</listhead>
 | 
				
			||||||
 | 
								<!--  auxhead
 | 
				
			||||||
 | 
									sclass="category-center"
 | 
				
			||||||
 | 
									visible="@load(vm.filter)">
 | 
				
			||||||
 | 
									<auxheader>
 | 
				
			||||||
 | 
										<div sclass="find-grid-cell">
 | 
				
			||||||
 | 
											<div sclass="find-grid-divtextbox">
 | 
				
			||||||
 | 
												<textbox
 | 
				
			||||||
 | 
													value="@bind(vm.filterTemplate.name)"
 | 
				
			||||||
 | 
													instant="true"
 | 
				
			||||||
 | 
													onChange="@command('doFilter')"
 | 
				
			||||||
 | 
													sclass="find-grid-textbox" />
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
											<div sclass="find-grid-img">
 | 
				
			||||||
 | 
												<image src="/img/funnel.png" />
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
									</auxheader>
 | 
				
			||||||
 | 
									<auxheader>
 | 
				
			||||||
 | 
										<div sclass="find-grid-cell">
 | 
				
			||||||
 | 
											<div sclass="find-grid-divtextbox">
 | 
				
			||||||
 | 
												<textbox
 | 
				
			||||||
 | 
													value="@bind(vm.filterTemplate.description)"
 | 
				
			||||||
 | 
													instant="true"
 | 
				
			||||||
 | 
													onChange="@command('doFilter')"
 | 
				
			||||||
 | 
													sclass="find-grid-textbox" />
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
											<div sclass="find-grid-img">
 | 
				
			||||||
 | 
												<image src="/img/funnel.png" />
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
									</auxheader>
 | 
				
			||||||
 | 
								</auxhead-->
 | 
				
			||||||
 | 
								<template name="model">
 | 
				
			||||||
 | 
									<listitem>
 | 
				
			||||||
 | 
										<listcell label="@load(each.requirement.numser)" />
 | 
				
			||||||
 | 
										<listcell label="@load(each.requirement.description)" />
 | 
				
			||||||
 | 
										<listcell label="@load(each.requirement.sumTotal) @converter(vm.standardBigDecimalConverter)" />
 | 
				
			||||||
 | 
										<listcell label="@load(each.totalInvoiced) @converter(vm.standardBigDecimalConverter)" />
 | 
				
			||||||
 | 
									</listitem>
 | 
				
			||||||
 | 
								</template>
 | 
				
			||||||
 | 
							</listbox>
 | 
				
			||||||
 | 
						</window>
 | 
				
			||||||
 | 
					</zk>
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue