From 8bcfc04c1556fbf490c5df920626422602dac364 Mon Sep 17 00:00:00 2001 From: Franta Pribyl Date: Sun, 6 Jul 2014 17:35:28 +0200 Subject: [PATCH] =?UTF-8?q?Implementov=C3=A1no=20zad=C3=A1v=C3=A1n=C3=AD?= =?UTF-8?q?=20hlavi=C4=8Dek=20Po=C5=BEadavk=C5=AF.=20Implementov=C3=A1na?= =?UTF-8?q?=20=C4=8D=C3=ADseln=C3=A1=20=C5=99ada.=20P=C5=99id=C3=A1ny=20me?= =?UTF-8?q?tody=20pro=20porovn=C3=A1n=C3=AD=20String=20a=20Date=20pro=20fi?= =?UTF-8?q?ltry.=20Upraveno=20logov=C3=A1n=C3=AD=20aplikace=20-=20loguje?= =?UTF-8?q?=20se=20a=C5=BE=20=C3=BArove=C5=88=20warning.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs #100 --- .../info/bukova/isspst/AppInitListener.java | 2 +- .../java/info/bukova/isspst/Constants.java | 7 +- .../info/bukova/isspst/DateTimeUtils.java | 57 ++++++++++ .../java/info/bukova/isspst/StringUtils.java | 6 ++ .../isspst/filters/RequirementFilter.java | 12 ++- .../isspst/services/AbstractService.java | 33 ++++++ .../numberseries/NumberSeriesServiceImpl.java | 4 +- .../requirement/RequirementServiceImpl.java | 26 ++++- .../RequirementTypeService.java | 2 +- .../RequirementTypeServiceImpl.java | 2 +- .../ui/requirement/RequirementForm.java | 62 +++++++++++ .../RequirementTypesVM.java | 4 +- src/main/resources/log4j.xml | 14 ++- .../WEB-INF/locales/zk-label.properties | 16 ++- .../webapp/WEB-INF/spring/root-context.xml | 5 +- src/main/webapp/WEB-INF/zk.xml | 53 ++++------ src/main/webapp/img/item-add.png | Bin 0 -> 1361 bytes src/main/webapp/img/item-remove.png | Bin 0 -> 1658 bytes .../requirements/actual/requirements.zul | 99 +++++++++++++++--- .../requirements/actual/requirementsForm.zul | 71 +++++++++++-- .../webapp/settings/workflow/workflow.zul | 2 +- src/test/resources/log4j.xml | 41 -------- 22 files changed, 393 insertions(+), 125 deletions(-) create mode 100644 src/main/java/info/bukova/isspst/DateTimeUtils.java rename src/main/java/info/bukova/isspst/services/{requirements => requirement}/RequirementTypeService.java (77%) rename src/main/java/info/bukova/isspst/services/{requirements => requirement}/RequirementTypeServiceImpl.java (82%) rename src/main/java/info/bukova/isspst/ui/{requirements => requirement}/RequirementTypesVM.java (97%) create mode 100644 src/main/webapp/img/item-add.png create mode 100644 src/main/webapp/img/item-remove.png delete mode 100644 src/test/resources/log4j.xml diff --git a/src/main/java/info/bukova/isspst/AppInitListener.java b/src/main/java/info/bukova/isspst/AppInitListener.java index 361938c0..5c9ec19c 100644 --- a/src/main/java/info/bukova/isspst/AppInitListener.java +++ b/src/main/java/info/bukova/isspst/AppInitListener.java @@ -11,7 +11,7 @@ import info.bukova.isspst.reporting.Report; import info.bukova.isspst.reporting.ReportMapping; import info.bukova.isspst.reporting.ReportType; import info.bukova.isspst.services.numberseries.NumberSeriesService; -import info.bukova.isspst.services.requirements.RequirementTypeService; +import info.bukova.isspst.services.requirement.RequirementTypeService; import info.bukova.isspst.services.users.PermissionService; import info.bukova.isspst.services.users.RoleService; import info.bukova.isspst.services.users.UserService; diff --git a/src/main/java/info/bukova/isspst/Constants.java b/src/main/java/info/bukova/isspst/Constants.java index 92704251..396a19a4 100644 --- a/src/main/java/info/bukova/isspst/Constants.java +++ b/src/main/java/info/bukova/isspst/Constants.java @@ -8,9 +8,10 @@ import info.bukova.isspst.reporting.Report; import info.bukova.isspst.reporting.ReportMapping; import info.bukova.isspst.services.addressbook.AdbService; import info.bukova.isspst.services.buildings.BuildingService; -import info.bukova.isspst.services.munits.MUnitService; import info.bukova.isspst.services.material.MaterialService; -import info.bukova.isspst.services.requirements.RequirementTypeService; +import info.bukova.isspst.services.munits.MUnitService; +import info.bukova.isspst.services.requirement.RequirementService; +import info.bukova.isspst.services.requirement.RequirementTypeService; import info.bukova.isspst.services.users.RoleService; import info.bukova.isspst.services.users.UserService; import info.bukova.isspst.services.workgroups.WorkgroupService; @@ -68,7 +69,7 @@ public class Constants { new Module(MOD_MUNITS, "Měrné jednotky", MUnitService.class), new Module(MOD_MATERIAL, "Materiál", MaterialService.class), new Module(MOD_WORKGROUPS, "Pracovní skupiny", WorkgroupService.class), - new Module(MOD_REQUIREMENTS, "Požadavky", null), + new Module(MOD_REQUIREMENTS, "Požadavky", RequirementService.class), new Module(MOD_WORKFLOW, "Procesy schválení", RequirementTypeService.class) }; diff --git a/src/main/java/info/bukova/isspst/DateTimeUtils.java b/src/main/java/info/bukova/isspst/DateTimeUtils.java new file mode 100644 index 00000000..884c5bf7 --- /dev/null +++ b/src/main/java/info/bukova/isspst/DateTimeUtils.java @@ -0,0 +1,57 @@ +package info.bukova.isspst; + +import java.util.Calendar; +import java.util.Date; + +import org.apache.commons.lang.time.DateUtils; + +public class DateTimeUtils +{ + public static Date getDate(Date value) + { + if (value == null) + { + return value; + } + + // Keep date - truncate time + return DateUtils.truncate(value, Calendar.DAY_OF_MONTH); + } + + public static boolean isEqualByDate(Date d1, Date d2) + { + if (d1 != null && d2 != null) + { + d1 = DateTimeUtils.getDate(d1); + d2 = DateTimeUtils.getDate(d2); + boolean equals = (d1.compareTo(d2) == 0); + return equals; + } + + return false; + } + + public static boolean isEqualByDateForFilter(Date value, Date search) + { + if (search == null) + { + return true; + } + else if (value != null) + { + return DateTimeUtils.isEqualByDate(value, search); + } + + return false; + } + + public static Date getCurrDateTime() + { + return new Date(); + } + + public static Date getCurrDate() + { + return DateTimeUtils.getDate(DateTimeUtils.getCurrDateTime()); + } +} diff --git a/src/main/java/info/bukova/isspst/StringUtils.java b/src/main/java/info/bukova/isspst/StringUtils.java index d3b8bcf2..f3728dfd 100644 --- a/src/main/java/info/bukova/isspst/StringUtils.java +++ b/src/main/java/info/bukova/isspst/StringUtils.java @@ -44,4 +44,10 @@ public class StringUtils { return Labels.getLabel("Db" + key); } + public static boolean isEqualForFilter(String value, String search) + { + value = StringUtils.nullStr(value).toLowerCase(); + search = StringUtils.nullStr(search).toLowerCase(); + return value.contains(search); + } } diff --git a/src/main/java/info/bukova/isspst/filters/RequirementFilter.java b/src/main/java/info/bukova/isspst/filters/RequirementFilter.java index a8663e2b..6a6296dd 100644 --- a/src/main/java/info/bukova/isspst/filters/RequirementFilter.java +++ b/src/main/java/info/bukova/isspst/filters/RequirementFilter.java @@ -1,6 +1,7 @@ package info.bukova.isspst.filters; -import static info.bukova.isspst.StringUtils.nullStr; +import info.bukova.isspst.DateTimeUtils; +import info.bukova.isspst.StringUtils; import info.bukova.isspst.data.Requirement; import org.hamcrest.Description; @@ -37,10 +38,11 @@ public class RequirementFilter implements Filter @Override public boolean matchesSafely(Requirement item) { - return nullStr(item.getNumser()).toLowerCase().contains(nullStr(condition.getNumser()).toLowerCase()) - && item.getReqDate().equals(condition.getReqDate()) - && item.getDeliveryDate().equals(condition.getDeliveryDate()) - && nullStr(item.getDescription()).toLowerCase().contains(nullStr(condition.getDescription()).toLowerCase()); + boolean foundNumser = StringUtils.isEqualForFilter(item.getNumser(), condition.getNumser()); + boolean foundReqDate = DateTimeUtils.isEqualByDateForFilter(item.getReqDate(), condition.getReqDate()); + boolean foundDescription = StringUtils.isEqualForFilter(item.getDescription(), condition.getDescription()); + boolean foundDeliveryDate = DateTimeUtils.isEqualByDateForFilter(item.getDeliveryDate(), condition.getDeliveryDate()); + return foundNumser && foundReqDate && foundDescription && foundDeliveryDate; } @Factory diff --git a/src/main/java/info/bukova/isspst/services/AbstractService.java b/src/main/java/info/bukova/isspst/services/AbstractService.java index b0fbb427..32c8d7b4 100644 --- a/src/main/java/info/bukova/isspst/services/AbstractService.java +++ b/src/main/java/info/bukova/isspst/services/AbstractService.java @@ -5,8 +5,10 @@ import info.bukova.isspst.Constants; import info.bukova.isspst.Module; import info.bukova.isspst.dao.BaseDao; import info.bukova.isspst.data.DataModel; +import info.bukova.isspst.data.NumberSeries; import info.bukova.isspst.filters.Filter; import info.bukova.isspst.reporting.Report; +import info.bukova.isspst.services.numberseries.NumberSeriesService; import java.util.Arrays; import java.util.Date; @@ -25,7 +27,20 @@ public abstract class AbstractService implements Service protected BaseDao dao; private Validator validator; + + private NumberSeriesService numberSeriesService; + + public NumberSeriesService getNumberSeriesService() + { + return numberSeriesService; + } + + public void setNumberSeriesService(NumberSeriesService numberSeriesService) + { + this.numberSeriesService = numberSeriesService; + } + public void setDao(BaseDao dao) { this.dao = dao; } @@ -150,4 +165,22 @@ public abstract class AbstractService implements Service } } + protected String getNumberSerie() + { + String currentNumber = ""; + + if (numberSeriesService != null) + { + String moduleName = this.getModule().getId(); + NumberSeries ns = numberSeriesService.getNumberSerie(moduleName); + + if (ns != null) + { + currentNumber = ns.getCurrentNumber(); + numberSeriesService.increase(ns); + } + } + + return currentNumber; + } } diff --git a/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java b/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java index e38ecb54..fc275425 100644 --- a/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java +++ b/src/main/java/info/bukova/isspst/services/numberseries/NumberSeriesServiceImpl.java @@ -1,10 +1,10 @@ package info.bukova.isspst.services.numberseries; -import org.springframework.transaction.annotation.Transactional; - import info.bukova.isspst.data.NumberSeries; import info.bukova.isspst.services.AbstractService; +import org.springframework.transaction.annotation.Transactional; + public class NumberSeriesServiceImpl extends AbstractService implements NumberSeriesService { @Transactional diff --git a/src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java b/src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java index 4206d5ea..d0e9c52a 100644 --- a/src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java +++ b/src/main/java/info/bukova/isspst/services/requirement/RequirementServiceImpl.java @@ -1,9 +1,31 @@ package info.bukova.isspst.services.requirement; import info.bukova.isspst.data.Requirement; -import info.bukova.isspst.services.AbstractService; +import info.bukova.isspst.services.AbstractOwnedService; -public class RequirementServiceImpl extends AbstractService implements RequirementService +import java.util.Date; + +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; + +public class RequirementServiceImpl extends AbstractOwnedService implements RequirementService { + @Override + protected Requirement createEntity() + { + Requirement entity = new Requirement(); + + entity.setReqDate(new Date()); + + return entity; + } + @Override + @Transactional + @PreAuthorize("hasPermission(this, 'PERM_ADD')") + public void add(Requirement entity) + { + entity.setNumser(this.getNumberSerie()); + super.add(entity); + } } diff --git a/src/main/java/info/bukova/isspst/services/requirements/RequirementTypeService.java b/src/main/java/info/bukova/isspst/services/requirement/RequirementTypeService.java similarity index 77% rename from src/main/java/info/bukova/isspst/services/requirements/RequirementTypeService.java rename to src/main/java/info/bukova/isspst/services/requirement/RequirementTypeService.java index 53727d34..60fd752e 100644 --- a/src/main/java/info/bukova/isspst/services/requirements/RequirementTypeService.java +++ b/src/main/java/info/bukova/isspst/services/requirement/RequirementTypeService.java @@ -1,4 +1,4 @@ -package info.bukova.isspst.services.requirements; +package info.bukova.isspst.services.requirement; import info.bukova.isspst.data.RequirementType; import info.bukova.isspst.services.Service; diff --git a/src/main/java/info/bukova/isspst/services/requirements/RequirementTypeServiceImpl.java b/src/main/java/info/bukova/isspst/services/requirement/RequirementTypeServiceImpl.java similarity index 82% rename from src/main/java/info/bukova/isspst/services/requirements/RequirementTypeServiceImpl.java rename to src/main/java/info/bukova/isspst/services/requirement/RequirementTypeServiceImpl.java index 276d8917..ee7d9ada 100644 --- a/src/main/java/info/bukova/isspst/services/requirements/RequirementTypeServiceImpl.java +++ b/src/main/java/info/bukova/isspst/services/requirement/RequirementTypeServiceImpl.java @@ -1,4 +1,4 @@ -package info.bukova.isspst.services.requirements; +package info.bukova.isspst.services.requirement; import info.bukova.isspst.data.RequirementType; import info.bukova.isspst.services.AbstractOwnedService; diff --git a/src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java b/src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java index 61144417..d2c3646e 100644 --- a/src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java +++ b/src/main/java/info/bukova/isspst/ui/requirement/RequirementForm.java @@ -1,15 +1,77 @@ package info.bukova.isspst.ui.requirement; import info.bukova.isspst.data.Requirement; +import info.bukova.isspst.data.RequirementSubject; +import info.bukova.isspst.data.Workgroup; +import info.bukova.isspst.services.requirement.RequirementService; +import info.bukova.isspst.services.users.UserService; +import info.bukova.isspst.services.workgroups.WorkgroupService; import info.bukova.isspst.ui.FormViewModel; +import java.util.List; + +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 RequirementForm extends FormViewModel { + @WireVariable + private UserService userService; + + @WireVariable + private WorkgroupService workgroupService; + + public List getCentres() { + return workgroupService.getUserCentres(userService.getCurrent()); + } + @WireVariable + private RequirementService requirementService; + + private RequirementSubject item; + + private int selItemIndex; + @Init(superclass = true) public void init() { + this.setSelItemIndex(-1); + } + + public RequirementSubject getItem() + { + return item; + } + + public void setItem(RequirementSubject item) + { + this.item = item; + } + + public int getSelItemIndex() + { + return selItemIndex; + } + public void setSelItemIndex(int selItemIndex) + { + this.selItemIndex = selItemIndex; + } + + @Command + @NotifyChange({"dataBean", "selItemIndex"}) + public void addItem() { +// RequirementSubject item = new Material(); +// requirementService.addItem(getDataBean(), item); +// selItemIndex = getDataBean().getItems().indexOf(item); + } +/* + @Command + @NotifyChange({"dataBean", "selItemIndex"}) + public void removeItem(@BindingParam("item") RequirementItem item) { + requirementService.removeItem(getDataBean(), item); + selItemIndex = -1; } +*/ } diff --git a/src/main/java/info/bukova/isspst/ui/requirements/RequirementTypesVM.java b/src/main/java/info/bukova/isspst/ui/requirement/RequirementTypesVM.java similarity index 97% rename from src/main/java/info/bukova/isspst/ui/requirements/RequirementTypesVM.java rename to src/main/java/info/bukova/isspst/ui/requirement/RequirementTypesVM.java index 0b6807a9..b1506eb0 100644 --- a/src/main/java/info/bukova/isspst/ui/requirements/RequirementTypesVM.java +++ b/src/main/java/info/bukova/isspst/ui/requirement/RequirementTypesVM.java @@ -1,10 +1,10 @@ -package info.bukova.isspst.ui.requirements; +package info.bukova.isspst.ui.requirement; import info.bukova.isspst.Constants; import info.bukova.isspst.data.RequirementType; import info.bukova.isspst.data.Role; import info.bukova.isspst.data.Workflow; -import info.bukova.isspst.services.requirements.RequirementTypeService; +import info.bukova.isspst.services.requirement.RequirementTypeService; import info.bukova.isspst.services.users.RoleService; import java.util.ArrayList; diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml index e4394694..5281aee1 100644 --- a/src/main/resources/log4j.xml +++ b/src/main/resources/log4j.xml @@ -12,24 +12,28 @@ - + - + - + - + - + + + + + diff --git a/src/main/webapp/WEB-INF/locales/zk-label.properties b/src/main/webapp/WEB-INF/locales/zk-label.properties index f66657a0..9bae6ea5 100644 --- a/src/main/webapp/WEB-INF/locales/zk-label.properties +++ b/src/main/webapp/WEB-INF/locales/zk-label.properties @@ -10,7 +10,17 @@ MenuUser=Uživatel AgendaActRequirements=Aktuální požadavky AgendaRequirementsHistory=Ukončené požadavky -RequirementsFormTitle="Požadavek" +RequirementsFormTitle=Požadavek +RequirementsFormNumberSerie=Číslo +RequirementsFormReqDate=Datum požadavku +RequirementsFormCenter=Středisko +RequirementsFormDescription=Popis +RequirementsFormDeliveryDate=Datum dodání +RequirementsGridNumberSerie=Číslo +RequirementsGridReqDate=Datum požadavku +RequirementsGridCenter=Středisko +RequirementsGridDescription=Popis +RequirementsGridDeliveryDate=Datum dodání AgendaMyOrders=Aktuální AgendaOrdersHistory=Ukončené @@ -141,4 +151,8 @@ DbValidationError=Chyba validace true=Ano false=Ne + +DateFormat=dd. MM. yyyy + +AddItem=Přidat položku... \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/spring/root-context.xml b/src/main/webapp/WEB-INF/spring/root-context.xml index b503cbbc..7bf44b4d 100644 --- a/src/main/webapp/WEB-INF/spring/root-context.xml +++ b/src/main/webapp/WEB-INF/spring/root-context.xml @@ -36,7 +36,7 @@ ${jdbc.dialect} - true + false update @@ -202,7 +202,7 @@ - + @@ -210,6 +210,7 @@ + diff --git a/src/main/webapp/WEB-INF/zk.xml b/src/main/webapp/WEB-INF/zk.xml index 287ac23d..5eaade67 100644 --- a/src/main/webapp/WEB-INF/zk.xml +++ b/src/main/webapp/WEB-INF/zk.xml @@ -1,43 +1,28 @@ - + - - + - true - - - org.zkoss.web.classWebResource.cache - false - - - - /WEB-INF/locales/zk-label.properties - /WEB-INF/locales/columns.properties - /WEB-INF/locales/validators.properties - - + true + + + org.zkoss.web.classWebResource.cache + false + + + /WEB-INF/locales/zk-label.properties + /WEB-INF/locales/columns.properties + /WEB-INF/locales/validators.properties + - /WEB-INF/lang-addons/mapa-lang-addon.xml - /WEB-INF/lang-addons/ckez-bind-lang-addon.xml - /WEB-INF/lang-addons/CzechSortListheader.xml - - + /WEB-INF/lang-addons/mapa-lang-addon.xml + /WEB-INF/lang-addons/ckez-bind-lang-addon.xml + /WEB-INF/lang-addons/CzechSortListheader.xml + /css/zk-modify.css /css/form.css /css/page.css - - - + + \ No newline at end of file diff --git a/src/main/webapp/img/item-add.png b/src/main/webapp/img/item-add.png new file mode 100644 index 0000000000000000000000000000000000000000..271ad40fc33c6dfaa1c2e5edbf3d4c33d38a9f80 GIT binary patch literal 1361 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 - - + + - - + - - - + + + + + - - +
- +
@@ -26,7 +54,42 @@
- + +
+
+ +
+
+
+ +
+ + + +
+ +
+
+
+ +
+
+
@@ -36,7 +99,13 @@
- +
@@ -44,15 +113,15 @@
- - \ No newline at end of file diff --git a/src/main/webapp/requirements/actual/requirementsForm.zul b/src/main/webapp/requirements/actual/requirementsForm.zul index 01a57305..958234f0 100644 --- a/src/main/webapp/requirements/actual/requirementsForm.zul +++ b/src/main/webapp/requirements/actual/requirementsForm.zul @@ -1,34 +1,87 @@ - - + + - + - ${labels.BuildingsFormCode} : + ${labels.RequirementsFormNumberSerie} : - + - ${labels.BuildingsFormName} : + ${labels.RequirementsFormReqDate} : - + - ${labels.BuildingsFormDescription} : + ${labels.RequirementsFormCenter} : - + + + + + + + ${labels.RequirementsFormDescription} : + + + + + + ${labels.RequirementsFormDeliveryDate} : + + + +