Agenda Vytvořené objednávky

Přidány záložky Doklady a Položky.

closes #148
multitenant
František Přibyl 10 years ago
parent cfcecc2e1b
commit 49f921847d

@ -124,10 +124,29 @@ public class StringUtils
for (int i = 0; i < list.size(); i++) for (int i = 0; i < list.size(); i++)
{ {
String item = StringUtils.nullStr(list.get(i));
result = StringUtils.addSeparator(result, separator); result = StringUtils.addSeparator(result, separator);
result += list.get(i); result += item;
} }
return result; return result;
} }
public static String joinNotEmpty(List<String> list, String separator)
{
String result = "";
for (int i = 0; i < list.size(); i++)
{
String item = StringUtils.nullStr(list.get(i));
if (!item.isEmpty())
{
result = StringUtils.addSeparator(result, separator);
result += item;
}
}
return result;
}
} }

@ -1,11 +1,17 @@
package info.bukova.isspst.ui; package info.bukova.isspst.ui;
import info.bukova.isspst.StringUtils;
import java.util.ArrayList;
import java.util.List;
import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.event.KeyEvent; import org.zkoss.zk.ui.event.KeyEvent;
import org.zkoss.zul.Combobox; import org.zkoss.zul.Combobox;
import org.zkoss.zul.Messagebox;
public class DocumentViewModel public class DocumentViewModel
{ {
@ -77,4 +83,22 @@ public class DocumentViewModel
break; break;
} }
} }
@Command
public void testPressKey(@BindingParam("keyEvent") KeyEvent keyEvent)
{
int keyCode = keyEvent.getKeyCode();
boolean isCtrlKey = keyEvent.isCtrlKey();
boolean isAltKey = keyEvent.isAltKey();
boolean isShiftKey = keyEvent.isShiftKey();
List<String> list = new ArrayList<String>();
list.add(isCtrlKey ? "Ctrl" : "");
list.add(isAltKey ? "Alt" : "");
list.add(isShiftKey ? "Shift" : "");
list.add(Integer.toString(keyCode));
String sMsg = StringUtils.joinNotEmpty(list, "+");
Messagebox.show(sMsg + " is pressed", "testPressKey", Messagebox.OK, Messagebox.EXCLAMATION);
}
} }

@ -4,6 +4,7 @@ import info.bukova.isspst.AddressUtils;
import info.bukova.isspst.data.Address; import info.bukova.isspst.data.Address;
import info.bukova.isspst.data.AddressEmb; import info.bukova.isspst.data.AddressEmb;
import info.bukova.isspst.data.Order; import info.bukova.isspst.data.Order;
import info.bukova.isspst.data.OrderItem;
import info.bukova.isspst.data.SettingsData; import info.bukova.isspst.data.SettingsData;
import info.bukova.isspst.data.User; import info.bukova.isspst.data.User;
import info.bukova.isspst.filters.OrderFilter; import info.bukova.isspst.filters.OrderFilter;
@ -13,12 +14,17 @@ import info.bukova.isspst.services.settings.GlobalSettingsService;
import info.bukova.isspst.services.users.UserService; import info.bukova.isspst.services.users.UserService;
import info.bukova.isspst.ui.ListViewModel; import info.bukova.isspst.ui.ListViewModel;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Listbox;
public class OrderList extends ListViewModel<Order> public class OrderList extends ListViewModel<Order>
{ {
@ -37,6 +43,10 @@ public class OrderList extends ListViewModel<Order>
@WireVariable @WireVariable
protected UserService userService; protected UserService userService;
protected OrderItem selectedOrderItem;
protected List<OrderItem> orderItems;
@Init(superclass = true) @Init(superclass = true)
public void initOrderList() public void initOrderList()
{ {
@ -44,6 +54,7 @@ public class OrderList extends ListViewModel<Order>
dataClass = Order.class; dataClass = Order.class;
formZul = "orderForm.zul"; formZul = "orderForm.zul";
dataFilter = new OrderFilter(getFilterTemplate()); dataFilter = new OrderFilter(getFilterTemplate());
this.orderItems = new ArrayList<OrderItem>();
} }
public List<AddressEmb> getSuppAddresses() public List<AddressEmb> getSuppAddresses()
@ -85,4 +96,43 @@ public class OrderList extends ListViewModel<Order>
{ {
return userService.getAll(); return userService.getAll();
} }
public OrderItem getSelectedOrderItem()
{
return selectedOrderItem;
}
public void setSelectedOrderItem(OrderItem selectedOrderItem)
{
this.selectedOrderItem = selectedOrderItem;
}
public List<OrderItem> getOrderItems()
{
return orderItems;
}
public void setOrderItems(List<OrderItem> orderItems)
{
this.orderItems = orderItems;
}
@Command
@NotifyChange("orderItems")
public void onChangeSelectOrder(@BindingParam("ctrl") Listbox lb)
{
if (lb == null)
{
return;
}
if (lb.getSelectedIndex() > -1)
{
this.orderItems = this.getDataBean().getItems();
}
else
{
this.orderItems = new ArrayList<OrderItem>();
}
}
} }

@ -316,6 +316,8 @@ CreateOrder=Vytvořit objednávku
NotYetFilled=Zatím nevyplněno NotYetFilled=Zatím nevyplněno
DeliveryAddress=Dodací adresa DeliveryAddress=Dodací adresa
BillingAddress=Fakturační adresa BillingAddress=Fakturační adresa
AccountDocuments=Doklady
Items=Položky
OrderFormNumber=Číslo objednávky OrderFormNumber=Číslo objednávky
OrderFormOrderDate=Datum objednávky OrderFormOrderDate=Datum objednávky

@ -2,6 +2,7 @@
<zk> <zk>
<window <window
vflex="1" vflex="1"
hflex="1"
border="normal" border="normal"
apply="org.zkoss.bind.BindComposer" apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('info.bukova.isspst.ui.dashboard.DashBoardVM')"> viewModel="@id('vm') @init('info.bukova.isspst.ui.dashboard.DashBoardVM')">
@ -23,9 +24,15 @@
<caption <caption
image="/img/commission-small.png" image="/img/commission-small.png"
label="${labels.CentresForRequirements}" /> label="${labels.CentresForRequirements}" />
<hbox children="@load(vm.centres)"> <hbox
children="@load(vm.centres)"
vflex="1"
hflex="1">
<template name="children"> <template name="children">
<listbox model="@load(vm.groupRoles[each])"> <listbox
model="@load(vm.groupRoles[each])"
vflex="1"
hflex="1">
<listhead> <listhead>
<listheader label="@load(each.fullName)" /> <listheader label="@load(each.fullName)" />
</listhead> </listhead>
@ -40,7 +47,9 @@
</template> </template>
</hbox> </hbox>
</groupbox> </groupbox>
<hbox vflex="1" hflex="1"> <hbox
vflex="1"
hflex="1">
<groupbox <groupbox
vflex="1" vflex="1"
hflex="1" hflex="1"
@ -49,10 +58,15 @@
image="/img/commission-small.png" image="/img/commission-small.png"
label="${labels.WorkgroupMembership}" /> label="${labels.WorkgroupMembership}" />
<vbox <vbox
sclass="addScrollbar" vflex="1"
hflex="1"
sclass="addScrollbar"
children="@load(vm.workgroups)"> children="@load(vm.workgroups)">
<template name="children"> <template name="children">
<listbox model="@load(vm.groupRoles[each])"> <listbox
model="@load(vm.groupRoles[each])"
vflex="1"
hflex="1">
<listhead> <listhead>
<listheader label="@load(each.fullName)" /> <listheader label="@load(each.fullName)" />
</listhead> </listhead>
@ -75,21 +89,25 @@
image="/img/money-small.png" image="/img/money-small.png"
label="${labels.WorkgroupLimits}" /> label="${labels.WorkgroupLimits}" />
<vbox <vbox
sclass="addScrollbar" vflex="1"
hflex="1"
sclass="addScrollbar"
children="@load(vm.workgroups)"> children="@load(vm.workgroups)">
<template name="children"> <template name="children">
<listbox> <listbox
vflex="1"
hflex="1">
<listhead> <listhead>
<listheader label="@load(each.fullName)"/> <listheader label="@load(each.fullName)" />
<listheader/> <listheader />
</listhead> </listhead>
<listitem> <listitem>
<listcell label="${labels.Limit}"/> <listcell label="${labels.Limit}" />
<listcell label="@load(each.limit) @converter(vm.standardBigDecimalConverter)"/> <listcell label="@load(each.limit) @converter(vm.standardBigDecimalConverter)" />
</listitem> </listitem>
<listitem> <listitem>
<listcell label="${labels.Spent}"/> <listcell label="${labels.Spent}" />
<listcell label="@load(vm.workgroupSpent[each]) @converter(vm.standardBigDecimalConverter)"/> <listcell label="@load(vm.workgroupSpent[each]) @converter(vm.standardBigDecimalConverter)" />
</listitem> </listitem>
</listbox> </listbox>
</template> </template>

@ -2,7 +2,7 @@
<zk> <zk>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> <?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<window <window
vflex="1" vflex=" 1"
border="normal" border="normal"
apply="org.zkoss.bind.BindComposer" apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('info.bukova.isspst.ui.main.orders.created.OrderList')"> viewModel="@id('vm') @init('info.bukova.isspst.ui.main.orders.created.OrderList')">
@ -10,243 +10,313 @@
image="/img/autotruck-032.png" image="/img/autotruck-032.png"
zclass="form-caption" zclass="form-caption"
label="${labels.CreatedOrders}" /> label="${labels.CreatedOrders}" />
<include src="/app/toolbar.zul" /> <tabbox
<listbox
vflex="1" vflex="1"
selectedItem="@bind(vm.dataBean)" orient="top">
model="@load(vm.dataList)"> <tabs width="500px">
<listhead menupopup="auto"> <tab label="${labels.AccountDocuments}" />
<listheader <tab label="${labels.Items}" />
hflex="10" </tabs>
sort="czech(numser)" <tabpanels>
label="${labels.OrderFormNumber}" /> <tabpanel>
<listheader <include src="/main/toolbar.zul" />
hflex="10" <listbox
sort="auto(orderDate)" vflex="1"
label="${labels.OrderFormOrderDate}" /> onSelect="@command('onChangeSelectOrder', ctrl=self)"
<listheader selectedItem="@bind(vm.dataBean)"
hflex="7" model="@load(vm.dataList)">
align="right" <listhead menupopup="auto">
sort="auto(total)" <listheader
label="${labels.OrderFormTotal}" /> hflex="10"
<listheader sort="czech(numser)"
hflex="10" label="${labels.OrderFormNumber}" />
sort="auto(deliveryDate)" <listheader
label="${labels.RequirementsFormDeliveryDate}" /> hflex="10"
<listheader sort="auto(orderDate)"
hflex="10" label="${labels.OrderFormOrderDate}" />
sort="auto(deliveredDate))" <listheader
label="${labels.OrderFormDeliveredDate}" /> hflex="7"
<listheader align="right"
hflex="10" sort="auto(total)"
sort="auto(invoiceNumber)" label="${labels.OrderFormTotal}" />
label="${labels.OrderFormInvoiceNumber}" /> <listheader
<listheader hflex="10"
hflex="15" sort="auto(deliveryDate)"
sort="auto(suplier.company)" label="${labels.RequirementsFormDeliveryDate}" />
label="${labels.SuppliersFormTitle}" /> <listheader
<listheader hflex="10"
hflex="15" sort="auto(deliveredDate))"
sort="auto(deliveryAddress.company)" label="${labels.OrderFormDeliveredDate}" />
label="${labels.DeliveryAddress}" /> <listheader
<listheader hflex="10"
hflex="15" sort="auto(invoiceNumber)"
sort="auto(address.company)" label="${labels.OrderFormInvoiceNumber}" />
visible="false" <listheader
label="${labels.BillingAddress}" /> hflex="15"
<listheader sort="auto(suplier.company)"
hflex="10" label="${labels.SuppliersFormTitle}" />
sort="auto(ownedBy.fullName)" <listheader
label="${labels.Owner}" /> hflex="15"
<listheader sort="auto(deliveryAddress.company)"
hflex="10" label="${labels.DeliveryAddress}" />
sort="czech(description)" <listheader
label="${labels.OrderFormDescription}" /> hflex="15"
</listhead> sort="auto(address.company)"
<auxhead visible="@load(vm.filter)"> visible="false"
<auxheader> label="${labels.BillingAddress}" />
<div sclass="find-grid-cell"> <listheader
<div sclass="find-grid-divtextbox"> hflex="10"
<textbox sort="auto(ownedBy.fullName)"
value="@bind(vm.filterTemplate.numser)" label="${labels.Owner}" />
instant="true" <listheader
onChange="@command('doFilter')" hflex="10"
sclass="find-grid-textbox" /> sort="czech(description)"
</div> label="${labels.OrderFormDescription}" />
<div sclass="find-grid-img"> </listhead>
<image src="/img/funnel.png" /> <auxhead visible="@load(vm.filter)">
</div> <auxheader>
</div> <div sclass="find-grid-cell">
</auxheader> <div sclass="find-grid-divtextbox">
<auxheader> <textbox
<div sclass="find-grid-cell"> value="@bind(vm.filterTemplate.numser)"
<div sclass="find-grid-divtextbox"> instant="true"
<datebox onChange="@command('doFilter')"
value="@bind(vm.filterTemplate.orderDate)" sclass="find-grid-textbox" />
format="${labels.DateFormat}" </div>
instant="true" <div sclass="find-grid-img">
onChange="@command('doFilter')" <image src="/img/funnel.png" />
sclass="find-grid-textbox" </div>
width="100%" /> </div>
</div> </auxheader>
<div sclass="find-grid-img"> <auxheader>
<image src="/img/funnel.png" /> <div sclass="find-grid-cell">
</div> <div sclass="find-grid-divtextbox">
</div> <datebox
</auxheader> value="@bind(vm.filterTemplate.orderDate)"
<auxheader></auxheader> format="${labels.DateFormat}"
<auxheader> instant="true"
<div sclass="find-grid-cell"> onChange="@command('doFilter')"
<div sclass="find-grid-divtextbox"> sclass="find-grid-textbox"
<datebox width="100%" />
value="@bind(vm.filterTemplate.deliveryDate)" </div>
format="${labels.DateFormat}" <div sclass="find-grid-img">
instant="true" <image src="/img/funnel.png" />
onChange="@command('doFilter')" </div>
sclass="find-grid-textbox" </div>
width="100%" /> </auxheader>
</div> <auxheader></auxheader>
<div sclass="find-grid-img"> <auxheader>
<image src="/img/funnel.png" /> <div sclass="find-grid-cell">
</div> <div sclass="find-grid-divtextbox">
</div> <datebox
</auxheader> value="@bind(vm.filterTemplate.deliveryDate)"
<auxheader> format="${labels.DateFormat}"
<div sclass="find-grid-cell"> instant="true"
<div sclass="find-grid-divtextbox"> onChange="@command('doFilter')"
<datebox sclass="find-grid-textbox"
value="@bind(vm.filterTemplate.deliveredDate)" width="100%" />
format="${labels.DateFormat}" </div>
instant="true" <div sclass="find-grid-img">
onChange="@command('doFilter')" <image src="/img/funnel.png" />
sclass="find-grid-textbox" </div>
width="100%" /> </div>
</div> </auxheader>
<div sclass="find-grid-img"> <auxheader>
<image src="/img/funnel.png" /> <div sclass="find-grid-cell">
</div> <div sclass="find-grid-divtextbox">
</div> <datebox
</auxheader> value="@bind(vm.filterTemplate.deliveredDate)"
<auxheader> format="${labels.DateFormat}"
<div sclass="find-grid-cell"> instant="true"
<div sclass="find-grid-divtextbox"> onChange="@command('doFilter')"
<textbox sclass="find-grid-textbox"
value="@bind(vm.filterTemplate.invoiceNumber)" width="100%" />
instant="true" </div>
onChange="@command('doFilter')" <div sclass="find-grid-img">
sclass="find-grid-textbox" /> <image src="/img/funnel.png" />
</div> </div>
<div sclass="find-grid-img"> </div>
<image src="/img/funnel.png" /> </auxheader>
</div> <auxheader>
</div> <div sclass="find-grid-cell">
</auxheader> <div sclass="find-grid-divtextbox">
<auxheader> <textbox
<div zclass="find-grid-cell"> value="@bind(vm.filterTemplate.invoiceNumber)"
<div sclass="find-grid-divtextbox"> instant="true"
<combobox onChange="@command('doFilter')"
ctrlKeys="${labels.HandleComboKeyFilter}" sclass="find-grid-textbox" />
onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)" </div>
onChange="@command('doFilter')" <div sclass="find-grid-img">
width="100%" <image src="/img/funnel.png" />
selectedItem="@bind(vm.filterTemplate.suplier)" </div>
model="@load(vm.suppAddresses)"> </div>
<template name="model"> </auxheader>
<comboitem label="@load(each)" /> <auxheader>
</template> <div zclass="find-grid-cell">
</combobox> <div sclass="find-grid-divtextbox">
</div> <combobox
<div sclass="find-grid-img"> ctrlKeys="${labels.HandleComboKeyFilter}"
<image src="/img/funnel.png" /> onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)"
</div> onChange="@command('doFilter')"
</div> width="100%"
</auxheader> selectedItem="@bind(vm.filterTemplate.suplier)"
<auxheader> model="@load(vm.suppAddresses)"
<div zclass="find-grid-cell"> readonly="true">
<div sclass="find-grid-divtextbox"> <template name="model">
<combobox <comboitem label="@load(each)" />
ctrlKeys="${labels.HandleComboKeyFilter}" </template>
onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)" </combobox>
onChange="@command('doFilter')" </div>
width="100%" <div sclass="find-grid-img">
selectedItem="@bind(vm.filterTemplate.deliveryAddress)" <image src="/img/funnel.png" />
model="@load(vm.deliveryAddresses)" </div>
readonly="true"> </div>
<template name="model"> </auxheader>
<comboitem label="@load(each)" /> <auxheader>
</template> <div zclass="find-grid-cell">
</combobox> <div sclass="find-grid-divtextbox">
</div> <combobox
<div sclass="find-grid-img"> ctrlKeys="${labels.HandleComboKeyFilter}"
<image src="/img/funnel.png" /> onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)"
</div> onChange="@command('doFilter')"
</div> width="100%"
</auxheader> selectedItem="@bind(vm.filterTemplate.deliveryAddress)"
<auxheader> model="@load(vm.deliveryAddresses)"
<div sclass="find-grid-cell"> readonly="true">
<div sclass="find-grid-divtextbox"> <template name="model">
<textbox <comboitem label="@load(each)" />
value="@bind(vm.filterTemplate.address)" </template>
instant="true" </combobox>
onChange="@command('doFilter')" </div>
sclass="find-grid-textbox" /> <div sclass="find-grid-img">
</div> <image src="/img/funnel.png" />
<div sclass="find-grid-img"> </div>
<image src="/img/funnel.png" /> </div>
</div> </auxheader>
</div> <auxheader>
</auxheader> <div sclass="find-grid-cell">
<auxheader> <div sclass="find-grid-divtextbox">
<div zclass="find-grid-cell"> <textbox
<div sclass="find-grid-divtextbox"> value="@bind(vm.filterTemplate.address)"
<combobox instant="true"
ctrlKeys="${labels.HandleComboKeyFilter}" onChange="@command('doFilter')"
onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)" sclass="find-grid-textbox" />
onChange="@command('doFilter')" </div>
width="100%" <div sclass="find-grid-img">
selectedItem="@bind(vm.filterTemplate.ownedBy)" <image src="/img/funnel.png" />
model="@load(vm.users)" </div>
readonly="true"> </div>
<template name="model"> </auxheader>
<comboitem label="@load(each.fullName)" /> <auxheader>
</template> <div zclass="find-grid-cell">
</combobox> <div sclass="find-grid-divtextbox">
</div> <combobox
<div sclass="find-grid-img"> ctrlKeys="${labels.HandleComboKeyFilter}"
<image src="/img/funnel.png" /> onCtrlKey="@command('handleComboKeyFilter', ctrl=self, keyEvent=event)"
</div> onChange="@command('doFilter')"
</div> width="100%"
</auxheader> selectedItem="@bind(vm.filterTemplate.ownedBy)"
<auxheader> model="@load(vm.users)"
<div sclass="find-grid-cell"> readonly="true">
<div sclass="find-grid-divtextbox"> <template name="model">
<textbox <comboitem label="@load(each.fullName)" />
value="@bind(vm.filterTemplate.description)" </template>
instant="true" </combobox>
onChange="@command('doFilter')" </div>
sclass="find-grid-textbox" /> <div sclass="find-grid-img">
</div> <image src="/img/funnel.png" />
<div sclass="find-grid-img"> </div>
<image src="/img/funnel.png" /> </div>
</div> </auxheader>
</div> <auxheader>
</auxheader> <div sclass="find-grid-cell">
</auxhead> <div sclass="find-grid-divtextbox">
<template name="model"> <textbox
<listitem> value="@bind(vm.filterTemplate.description)"
<listcell label="@load(each.numser)" /> instant="true"
<listcell label="@load(each.orderDate) @converter('formatedDate', format=labels.DateFormat)" /> onChange="@command('doFilter')"
<listcell label="@load(each.total) @converter(vm.standardBigDecimalConverter)" /> sclass="find-grid-textbox" />
<listcell label="@load(each.deliveryDate) @converter('formatedDate', format=labels.DateFormat)" /> </div>
<listcell label="@load(each.deliveredDate) @converter('formatedDate', format=labels.DateFormat)" /> <div sclass="find-grid-img">
<listcell label="@load(each.invoiceNumber)" /> <image src="/img/funnel.png" />
<listcell label="@load(each.suplier)" /> </div>
<listcell label="@load(each.deliveryAddress)" /> </div>
<listcell label="@load(each.address)" /> </auxheader>
<listcell label="@load(each.ownedBy.fullName)" /> </auxhead>
<listcell label="@load(each.description)" /> <template name="model">
</listitem> <listitem>
</template> <listcell label="@load(each.numser)" />
</listbox> <listcell label="@load(each.orderDate) @converter('formatedDate', format=labels.DateFormat)" />
<listcell label="@load(each.total) @converter(vm.standardBigDecimalConverter)" />
<listcell label="@load(each.deliveryDate) @converter('formatedDate', format=labels.DateFormat)" />
<listcell label="@load(each.deliveredDate) @converter('formatedDate', format=labels.DateFormat)" />
<listcell label="@load(each.invoiceNumber)" />
<listcell label="@load(each.suplier)" />
<listcell label="@load(each.deliveryAddress)" />
<listcell label="@load(each.address)" />
<listcell label="@load(each.ownedBy.fullName)" />
<listcell label="@load(each.description)" />
</listitem>
</template>
</listbox>
</tabpanel>
<tabpanel>
<listbox
vflex="1"
selectedItem="@bind(vm.selectedOrderItem)"
model="@load(vm.orderItems)">
<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>
</tabpanel>
</tabpanels>
</tabbox>
</window> </window>
</zk> </zk>
Loading…
Cancel
Save