V procesech schválení lze zadat limit pro schválení k dané roli.
closes #107
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package info.bukova.isspst.data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.JoinColumn;
|
||||
@@ -21,6 +23,8 @@ public class Workflow extends BaseData {
|
||||
private Role role;
|
||||
@Column(name = "WORDER")
|
||||
private Integer wOrder;
|
||||
@Column(name = "WLIMIT", precision=15, scale=4)
|
||||
private BigDecimal limit;
|
||||
|
||||
public Boolean getCentre() {
|
||||
return centre;
|
||||
@@ -56,4 +60,12 @@ public class Workflow extends BaseData {
|
||||
this.wOrder = order;
|
||||
}
|
||||
|
||||
public BigDecimal getLimit() {
|
||||
return limit;
|
||||
}
|
||||
|
||||
public void setLimit(BigDecimal limit) {
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package info.bukova.isspst.ui.requirements;
|
||||
|
||||
import info.bukova.isspst.data.Workflow;
|
||||
|
||||
import org.zkoss.bind.annotation.BindingParam;
|
||||
import org.zkoss.bind.annotation.Command;
|
||||
import org.zkoss.bind.annotation.ExecutionArgParam;
|
||||
import org.zkoss.bind.annotation.Init;
|
||||
import org.zkoss.zul.Window;
|
||||
|
||||
public class LimitVM {
|
||||
|
||||
private Workflow workflow;
|
||||
|
||||
@Init
|
||||
public void init(@ExecutionArgParam("workflow") Workflow workflow) {
|
||||
this.workflow = workflow;
|
||||
}
|
||||
|
||||
public Workflow getWorkflow() {
|
||||
return workflow;
|
||||
}
|
||||
|
||||
@Command
|
||||
public void save(@BindingParam("window") Window window) {
|
||||
window.detach();
|
||||
}
|
||||
|
||||
public boolean isCanSave() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,16 +7,22 @@ import info.bukova.isspst.data.Workflow;
|
||||
import info.bukova.isspst.services.requirements.RequirementTypeService;
|
||||
import info.bukova.isspst.services.users.RoleService;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.zkoss.bind.annotation.BindingParam;
|
||||
import org.zkoss.bind.annotation.Command;
|
||||
import org.zkoss.bind.annotation.GlobalCommand;
|
||||
import org.zkoss.bind.annotation.Init;
|
||||
import org.zkoss.bind.annotation.NotifyChange;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.event.DropEvent;
|
||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
|
||||
import org.zkoss.zul.Listitem;
|
||||
import org.zkoss.zul.Window;
|
||||
|
||||
public class RequirementTypesVM {
|
||||
|
||||
@@ -28,6 +34,8 @@ public class RequirementTypesVM {
|
||||
private List<Role> centreRoles;
|
||||
private List<Role> workgroupRoles;
|
||||
private RequirementType selected;
|
||||
private Workflow wgSelWorkflow;
|
||||
private Workflow centreSelWorkflow;
|
||||
|
||||
@Init
|
||||
public void init() {
|
||||
@@ -199,5 +207,42 @@ public class RequirementTypesVM {
|
||||
|
||||
this.selected = selected;
|
||||
}
|
||||
|
||||
@Command
|
||||
@NotifyChange({"selected", "centreSelWorkflow", "wgSelWorkflow"})
|
||||
public void overLimit(@BindingParam("workflow") Workflow workflow) {
|
||||
if (workflow.getLimit() != null && !workflow.getLimit().equals(BigDecimal.ZERO)) {
|
||||
workflow.setLimit(null);
|
||||
reqTypeService.update(selected);
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
params.put("workflow", workflow);
|
||||
Window win = (Window) Executions.createComponents("/settings/workflow/limit.zul", null, params);
|
||||
win.doModal();
|
||||
}
|
||||
|
||||
@GlobalCommand
|
||||
@NotifyChange("selected")
|
||||
public void refresh() {
|
||||
reqTypeService.update(selected);
|
||||
}
|
||||
|
||||
public Workflow getWgSelWorkflow() {
|
||||
return wgSelWorkflow;
|
||||
}
|
||||
|
||||
public void setWgSelWorkflow(Workflow wgSelWorkflow) {
|
||||
this.wgSelWorkflow = wgSelWorkflow;
|
||||
}
|
||||
|
||||
public Workflow getCentreSelWorkflow() {
|
||||
return centreSelWorkflow;
|
||||
}
|
||||
|
||||
public void setCentreSelWorkflow(Workflow centreSelWorkflow) {
|
||||
this.centreSelWorkflow = centreSelWorkflow;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -104,6 +104,9 @@ CentreRoles=Role středisek
|
||||
Workflow=Proces schválení
|
||||
WorkgroupWorkflow=Schválení v komisi
|
||||
CentreWorkflow=Schválení ve středisku
|
||||
LimitFormTitle=Limit pro schválení
|
||||
Limit=Limit:
|
||||
OverLimit=Pouze nadlimitní
|
||||
|
||||
CentresForRequirements=Střediska, pro která lze vkládat požadavky
|
||||
WorkgroupMembership=Členství v komisích
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?page title="Limit" contentType="text/html;charset=UTF-8"?>
|
||||
<zk>
|
||||
<window id="editWin" border="normal" apply="org.zkoss.bind.BindComposer"
|
||||
viewModel="@id('vm') @init('info.bukova.isspst.ui.requirements.LimitVM')">
|
||||
<caption zclass="form-caption" label="${labels.LimitFormTitle}" />
|
||||
<vbox>
|
||||
<hbox>
|
||||
<label value="${labels.Limit}"/>
|
||||
<textbox value="@bind(vm.workflow.limit)"/>
|
||||
</hbox>
|
||||
<include src="/app/formButtons.zul" />
|
||||
</vbox>
|
||||
|
||||
</window>
|
||||
</zk>
|
||||
@@ -45,27 +45,45 @@
|
||||
<caption label="${labels.Workflow}"/>
|
||||
<vbox>
|
||||
<listbox id="wgWorkflow" model="@load(vm.selected.workflow)" droppable="workgroup"
|
||||
onDrop="@command('addRoleWg', event=event)">
|
||||
onDrop="@command('addRoleWg', event=event)"
|
||||
selectedItem="@bind(vm.wgSelWorkflow)">
|
||||
<listhead>
|
||||
<listheader label="${labels.WorkgroupWorkflow}"/>
|
||||
</listhead>
|
||||
<template name="model">
|
||||
<listitem label="@load(each.role.description)" visible="@load(not each.centre)"
|
||||
onDrop="@command('reorderWg', event=event)" draggable="workgroup" droppable="workgroup"/>
|
||||
onDrop="@command('reorderWg', event=event)" draggable="workgroup" droppable="workgroup"
|
||||
context="limitPopUpWg"
|
||||
style="@load(empty each.limit ? '' : 'background-color: #e1fdd5')"
|
||||
tooltiptext="@load(empty each.limit ? '' : labels.Limit.concat(' ').concat(each.limit))"/>
|
||||
</template>
|
||||
</listbox>
|
||||
<listbox id="centreWorkflow" model="@load(vm.selected.workflow)" droppable="centre"
|
||||
onDrop="@command('addRoleCentre', event=event)">
|
||||
onDrop="@command('addRoleCentre', event=event)"
|
||||
selectedItem="@bind(vm.centreSelWorkflow)">
|
||||
<listhead>
|
||||
<listheader label="${labels.CentreWorkflow}"/>
|
||||
</listhead>
|
||||
<template name="model">
|
||||
<listitem label="@load(each.role.description)" visible="@load(each.centre)"
|
||||
onDrop="@command('reorderCentre', event=event)" draggable="centre" droppable="centre"/>
|
||||
onDrop="@command('reorderCentre', event=event)" draggable="centre" droppable="centre"
|
||||
context="limitPopUp"
|
||||
style="@load(empty each.limit ? '' : 'background-color: #e1fdd5')"
|
||||
tooltiptext="@load(empty each.limit ? '' : labels.Limit.concat(' ').concat(each.limit))"/>
|
||||
</template>
|
||||
</listbox>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
<menupopup id="limitPopUp">
|
||||
<menuitem label="${labels.OverLimit}" checkmark="true"
|
||||
checked="@load(not empty vm.centreSelWorkflow.limit)"
|
||||
onClick="@command('overLimit', workflow=centreWorkflow.selectedItem.value)"/>
|
||||
</menupopup>
|
||||
<menupopup id="limitPopUpWg">
|
||||
<menuitem label="${labels.OverLimit}" checkmark="true"
|
||||
checked="@load(not empty vm.wgSelWorkflow.limit)"
|
||||
onClick="@command('overLimit', workflow=wgWorkflow.selectedItem.value)"/>
|
||||
</menupopup>
|
||||
</div>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
Reference in New Issue
Block a user