diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt index 15b23f42..74b77849 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/MessageBuilder.kt @@ -1,9 +1,11 @@ package net.dankito.fints.messages +import net.dankito.fints.messages.datenelemente.implementierte.Synchronisierungsmodus import net.dankito.fints.messages.datenelemente.implementierte.tan.TanProcess import net.dankito.fints.messages.segmente.ISegmentNumberGenerator import net.dankito.fints.messages.segmente.Segment import net.dankito.fints.messages.segmente.SegmentNumberGenerator +import net.dankito.fints.messages.segmente.Synchronisierung import net.dankito.fints.messages.segmente.id.CustomerSegmentId import net.dankito.fints.messages.segmente.implementierte.* import net.dankito.fints.model.BankData @@ -61,7 +63,8 @@ open class MessageBuilder(protected val generator: ISegmentNumberGenerator = Seg return createMessage(true, true, bank, customer, dialogData, listOf( IdentifikationsSegment(generator.resetSegmentNumber(2), bank, customer), Verarbeitungsvorbereitung(generator.getNextSegmentNumber(), bank, customer, product), - ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, SegmentId.Identification.id) + Synchronisierung(generator.getNextSegmentNumber(), Synchronisierungsmodus.NeueKundensystemIdZurueckmelden), + ZweiSchrittTanEinreichung(generator.getNextSegmentNumber(), TanProcess.TanProcess4, CustomerSegmentId.Identification.id) )) } diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/Synchronisierungsmodus.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/Synchronisierungsmodus.kt new file mode 100644 index 00000000..eafaee03 --- /dev/null +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/Synchronisierungsmodus.kt @@ -0,0 +1,12 @@ +package net.dankito.fints.messages.datenelemente.implementierte + + +enum class Synchronisierungsmodus(override val code: String) : ICodeEnum { + + NeueKundensystemIdZurueckmelden("0"), + + LetzteVerarbeiteteNachrichtennummerZurueckmelden("1"), + + SignaturIdZurueckmelden("2") + +} \ No newline at end of file diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/SynchronisierungsmodusDatenelement.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/SynchronisierungsmodusDatenelement.kt new file mode 100644 index 00000000..5ae12e54 --- /dev/null +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/datenelemente/implementierte/SynchronisierungsmodusDatenelement.kt @@ -0,0 +1,22 @@ +package net.dankito.fints.messages.datenelemente.implementierte + +import net.dankito.fints.messages.Existenzstatus +import net.dankito.fints.messages.datenelemente.abgeleiteteformate.Code + + +/** + * Information über den Synchronisierungsmodus. + * + * Codierung: + * 0: Neue Kundensystem-ID zurückmelden + * 1: Letzte verarbeitete Nachrichtennummer zurückmelden + * 2: Signatur-ID zurückmelden + */ +class SynchronisierungsmodusDatenelement(mode: Synchronisierungsmodus) + : Code(mode.code, AllowedValues, Existenzstatus.Mandatory) { + + companion object { + val AllowedValues = allCodes() + } + +} \ No newline at end of file diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/segmente/Synchronisierung.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/segmente/Synchronisierung.kt new file mode 100644 index 00000000..fe6d8468 --- /dev/null +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/segmente/Synchronisierung.kt @@ -0,0 +1,17 @@ +package net.dankito.fints.messages.segmente + +import net.dankito.fints.messages.Existenzstatus +import net.dankito.fints.messages.datenelemente.implementierte.Synchronisierungsmodus +import net.dankito.fints.messages.datenelemente.implementierte.SynchronisierungsmodusDatenelement +import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf +import net.dankito.fints.messages.segmente.id.CustomerSegmentId + + +open class Synchronisierung( + segmentNumber: Int, + mode: Synchronisierungsmodus + +) : Segment(listOf( + Segmentkopf(CustomerSegmentId.Synchronization, 3, segmentNumber), + SynchronisierungsmodusDatenelement(mode) +), Existenzstatus.Mandatory) \ No newline at end of file diff --git a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/segmente/id/CustomerSegmentId.kt b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/segmente/id/CustomerSegmentId.kt index e9561e6d..d049fd16 100644 --- a/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/segmente/id/CustomerSegmentId.kt +++ b/fints4javaLib/src/main/kotlin/net/dankito/fints/messages/segmente/id/CustomerSegmentId.kt @@ -9,6 +9,8 @@ enum class CustomerSegmentId(override val id: String) : ISegmentId { Identification("HKIDN"), + Synchronization("HKSYN"), + Tan("HKTAN") } \ No newline at end of file