Filtr v agendě Fakturace požadavků.

closes #164
This commit is contained in:
2014-10-27 08:47:24 +01:00
parent 9175a7911f
commit 6ccd2a91a3
5 changed files with 198 additions and 11 deletions
@@ -0,0 +1,74 @@
package info.bukova.isspst.filters;
import info.bukova.isspst.DateTimeUtils;
import info.bukova.isspst.StringUtils;
import info.bukova.isspst.data.Invoicing;
import info.bukova.isspst.data.Requirement;
import info.bukova.isspst.data.Workgroup;
import org.hamcrest.Description;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
public class InvoicingFilter implements Filter<Invoicing>
{
private Invoicing condition;
public InvoicingFilter(Invoicing cond)
{
this.condition = cond;
}
private static class InvoicingMatcher extends TypeSafeMatcher<Invoicing>
{
private Invoicing condition;
public InvoicingMatcher(Invoicing cond)
{
this.condition = cond;
if (condition.getRequirement() == null) {
condition.setRequirement(new Requirement());
}
}
@Override
public void describeTo(Description desc)
{
desc.appendText("Invoicing matches");
}
@Override
public boolean matchesSafely(Invoicing item)
{
boolean foundNumser = StringUtils.isEqualForFilter(item.getRequirement().getNumser(), condition.getRequirement().getNumser());
boolean foundReqDate = DateTimeUtils.isEqualByDateForFilter(item.getRequirement().getReqDate(), condition.getRequirement().getReqDate());
boolean foundCenter = Workgroup.isEqualByWorkgroupForFilter(item.getRequirement().getCentre(), condition.getRequirement().getCentre());
boolean foundWorkgroup = Workgroup.isEqualByWorkgroupForFilter(item.getRequirement().getWorkgroup(), condition.getRequirement().getWorkgroup());
boolean foundDescription = StringUtils.isEqualForFilter(item.getRequirement().getDescription(), condition.getRequirement().getDescription());
return (foundNumser && foundReqDate && foundCenter && foundDescription && foundWorkgroup);
}
@Factory
public static Matcher<Invoicing> matchBuilding(Invoicing building)
{
return new InvoicingMatcher(building);
}
}
@Override
public InvoicingMatcher matcher()
{
return new InvoicingMatcher(condition);
}
@Override
public String queryString()
{
return "";
}
}
@@ -46,6 +46,7 @@ public class InvoicingForm extends FormViewModel<Invoicing> {
public void removeItem(@BindingParam("item") InvoicingItem item) {
getDataBean().getItems().remove(item);
selectItem(null);
calculate();
}
@Command
@@ -1,7 +1,12 @@
package info.bukova.isspst.ui.main.invoicing;
import java.util.List;
import info.bukova.isspst.data.Invoicing;
import info.bukova.isspst.data.Workgroup;
import info.bukova.isspst.filters.InvoicingFilter;
import info.bukova.isspst.services.invoicing.InvoicingService;
import info.bukova.isspst.services.workgroups.WorkgroupService;
import info.bukova.isspst.ui.ListViewModel;
import org.zkoss.bind.annotation.Init;
@@ -11,13 +16,15 @@ public class InvoicingList extends ListViewModel<Invoicing> {
@WireVariable
private InvoicingService invoicingService;
@WireVariable
private WorkgroupService workgroupService;
@Init(superclass = true)
public void initInvoicing() {
service = invoicingService;
dataClass = Invoicing.class;
formZul = "invoicingForm.zul";
//dataFilter = new BuildingFilter(getFilterTemplate());
dataFilter = new InvoicingFilter(getFilterTemplate());
}
@Override
@@ -30,4 +37,12 @@ public class InvoicingList extends ListViewModel<Invoicing> {
return false;
}
public List<Workgroup> getCentres() {
return workgroupService.getCentres();
}
public List<Workgroup> getWorkgroups() {
return workgroupService.getWorkgroups();
}
}