From 6a7f44f110197c67d772b399e6693d18eff0c19d Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Wed, 1 Oct 2014 10:53:43 +0200 Subject: add 'Funktionregel' date validation --- .../java/at/gv/util/client/ur_V5/URClient.java | 40 +++++++++++++++------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/src/main/java/at/gv/util/client/ur_V5/URClient.java b/src/main/java/at/gv/util/client/ur_V5/URClient.java index e39b18d..537ed25 100644 --- a/src/main/java/at/gv/util/client/ur_V5/URClient.java +++ b/src/main/java/at/gv/util/client/ur_V5/URClient.java @@ -47,6 +47,7 @@ import at.gv.util.xsd.ur_V5.pd.PersonenDatenTyp.Zusatzdaten; import at.gv.util.xsd.ur_V5.pd.PersonenDatenZusatzdatenTyp; import at.gv.util.xsd.ur_V5.pd.ZusatzdatenPersonenTyp; import at.gv.util.xsd.ur_V5.search.BestandszeitraumVollzug; +import at.gv.util.xsd.ur_V5.search.FktRegelTypVollzug; import at.gv.util.xsd.ur_V5.search.FunktionVollzug; import at.gv.util.xsd.ur_V5.search.SucheUnternehmenNachBpkRequest; import at.gv.util.xsd.ur_V5.search.SucheUnternehmenRequest; @@ -215,22 +216,37 @@ public class URClient { } else { - if(zsd != null) { - List pd = zsd.getPersonenDaten(); - for (PersonenDatenZusatzdatenTyp pdzd : pd) { - - ZusatzdatenPersonenTyp zusatzdaten = pdzd.getZusatzdaten(); - if (zusatzdaten != null) { - - List function = zusatzdaten.getFunktion(); - for (FunktionVollzug funct : function) { + GregorianCalendar now = new GregorianCalendar(); + XMLGregorianCalendar xmldate; + try { + xmldate = DatatypeFactory.newInstance().newXMLGregorianCalendar(now); + if(zsd != null) { + List pd = zsd.getPersonenDaten(); + for (PersonenDatenZusatzdatenTyp pdzd : pd) { - if (this.allowedERsBKeys.contains(String.valueOf(funct.getFktName()))) + ZusatzdatenPersonenTyp zusatzdaten = pdzd.getZusatzdaten(); + if (zusatzdaten != null) { + + List function = zusatzdaten.getFunktion(); + for (FunktionVollzug funct : function) { - set.add(String.valueOf(funct.getFktName())); - } + if (this.allowedERsBKeys.contains(String.valueOf(funct.getFktName()))) { + List functRegel = funct.getFktRegel(); + for (FktRegelTypVollzug el : functRegel) { + if ( (el.getFktRegelVon().compare(xmldate) == DatatypeConstants.LESSER + && el.getFktRegelBis().compare(xmldate) == DatatypeConstants.GREATER) ) + set.add(String.valueOf(funct.getFktName())); + + } + } + } + } } } + + } catch (DatatypeConfigurationException e) { + log.warn("Internal error during date conversion", e); + } return new ArrayList(set); -- cgit v1.2.3