diff options
author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2014-10-01 10:53:43 +0200 |
---|---|---|
committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2014-10-01 10:53:43 +0200 |
commit | 6a7f44f110197c67d772b399e6693d18eff0c19d (patch) | |
tree | 640e8bac2801b13aca276662b41936fd22874db7 /src/main/java/at/gv/util | |
parent | 384e79256a0bde2494e8a54f2850b29733588284 (diff) | |
download | egovutils-6a7f44f110197c67d772b399e6693d18eff0c19d.tar.gz egovutils-6a7f44f110197c67d772b399e6693d18eff0c19d.tar.bz2 egovutils-6a7f44f110197c67d772b399e6693d18eff0c19d.zip |
add 'Funktionregel' date validation
Diffstat (limited to 'src/main/java/at/gv/util')
-rw-r--r-- | src/main/java/at/gv/util/client/ur_V5/URClient.java | 40 |
1 files 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<PersonenDatenZusatzdatenTyp> pd = zsd.getPersonenDaten(); - for (PersonenDatenZusatzdatenTyp pdzd : pd) { - - ZusatzdatenPersonenTyp zusatzdaten = pdzd.getZusatzdaten(); - if (zusatzdaten != null) { - - List<FunktionVollzug> function = zusatzdaten.getFunktion(); - for (FunktionVollzug funct : function) { + GregorianCalendar now = new GregorianCalendar(); + XMLGregorianCalendar xmldate; + try { + xmldate = DatatypeFactory.newInstance().newXMLGregorianCalendar(now); + if(zsd != null) { + List<PersonenDatenZusatzdatenTyp> pd = zsd.getPersonenDaten(); + for (PersonenDatenZusatzdatenTyp pdzd : pd) { - if (this.allowedERsBKeys.contains(String.valueOf(funct.getFktName()))) + ZusatzdatenPersonenTyp zusatzdaten = pdzd.getZusatzdaten(); + if (zusatzdaten != null) { + + List<FunktionVollzug> function = zusatzdaten.getFunktion(); + for (FunktionVollzug funct : function) { - set.add(String.valueOf(funct.getFktName())); - } + if (this.allowedERsBKeys.contains(String.valueOf(funct.getFktName()))) { + List<FktRegelTypVollzug> 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<String>(set); |