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