From 3ccef795967e6119687c6df9e57c7f0d55894799 Mon Sep 17 00:00:00 2001 From: dankl Date: Sun, 13 Oct 2019 02:31:59 +0200 Subject: [PATCH] Fixed that if date or time is not set nothing gets written to output (instead of 0 which is an invalid value so that message get discarded) --- .../datenelemente/abgeleiteteformate/Datum.kt | 13 ++++++++++++- .../datenelemente/abgeleiteteformate/Uhrzeit.kt | 11 +++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Datum.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Datum.kt index 6f117903..d95cafec 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Datum.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Datum.kt @@ -17,10 +17,21 @@ open class Datum(date: Int, existenzstatus: Existenzstatus) : NumerischesDatenel const val HbciDateFormatString = "yyyyMMdd" val HbciDateFormat = SimpleDateFormat(HbciDateFormatString) + + const val DateNotSet = Int.MIN_VALUE } constructor(date: Date?, existenzstatus: Existenzstatus) - : this(date?.let { HbciDateFormat.format(it).toInt() } ?: 0, existenzstatus) + : this(date?.let { HbciDateFormat.format(it).toInt() } ?: DateNotSet, existenzstatus) + + + override fun format(): String { + if (value == DateNotSet) { + return "" // optional element and value not set -> write nothing to output + } + + return super.format() + } } \ No newline at end of file diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Uhrzeit.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Uhrzeit.kt index 27ee79cc..e6104b10 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Uhrzeit.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/abgeleiteteformate/Uhrzeit.kt @@ -18,10 +18,21 @@ open class Uhrzeit(time: Int, existenzstatus: Existenzstatus) : ZiffernDatenelem const val HbciTimeFormatString = "HHmmss" val HbciTimeFormat = SimpleDateFormat(HbciTimeFormatString) + + const val TimeNotSet = Int.MIN_VALUE } constructor(time: Date?, existenzstatus: Existenzstatus) : this(time?.let { HbciTimeFormat.format(it).toInt() } ?: 0, existenzstatus) + + override fun format(): String { + if (value == TimeNotSet) { + return "" // optional element and value not set -> write nothing to output + } + + return super.format() + } + } \ No newline at end of file