Basislastschrift
Date: 2015-04-26

de.jost_net.OBanToo.SEPA.Basislastschrift

## Class Basislastschrift

- java.lang.Object
- - de.jost_net.OBanToo.SEPA.Basislastschrift.Basislastschrift

-     public class Basislastschrift
      extends java.lang.Object

  # SEPA-Basislastschriften

  ## Dateien erstellen

  Beispiel für die Erstellung einer SEPA-Basislastschrift-Datei: `Basislastschrift bl = new Basislastschrift(); bl.setKomprimiert(true); bl.setMessageID("123"); // Z. B. Buchungslaufnummer bl.setBIC("WELADED1WDB"); Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2013); cal.set(Calendar.MONTH, 04); cal.set(Calendar.DAY_OF_MONTH, 15); bl.setFaelligskeitsdatum(cal.getTime()); bl.setIBAN("DE61478535200001861889"); bl.setName("Fa. SEPA GmbH und Co. Testenhausen"); bl.setGlaeubigerID("DE98ZZZ09999999999"); Zahler z1 = new Zahler(); z1.setBetrag(new BigDecimal("100.00")); z1.setBic("DORTDE33XXX"); z1.setIban("DE15440501990001052500"); cal.set(Calendar.MONTH, 1); cal.set(Calendar.DAY_OF_MONTH, 22); z1.setMandatdatum(cal.getTime()); z1.setMandatid("4711"); z1.setName("Meier und Co."); z1.setVerwendungszweck("Beitrag 2013"); bl.add(z1); Zahler z11 = new Zahler(); z11.setBetrag(new BigDecimal("100.00")); z11.setBic("DORTDE33XXX"); z11.setIban("DE15440501990001052500"); cal.set(Calendar.MONTH, 1); cal.set(Calendar.DAY_OF_MONTH, 22); z11.setMandatdatum(cal.getTime()); z11.setMandatid("4711"); z11.setName("Meier und Co."); z11.setVerwendungszweck("Zusatzbetrag 2013"); bl.add(z11); Zahler z2 = new Zahler(); z2.setBetrag(new BigDecimal("50.00")); z2.setBic("WELADED1HER"); z2.setIban("DE36450514850000000034"); cal.set(Calendar.YEAR, 2001); z2.setMandatdatum(cal.getTime()); z2.setMandatid("0815"); z2.setName("Fritz Mueller"); z2.setVerwendungszweck("Beitrag 2013"); bl.add(z2); bl.write(new File("test.xml"));`

  ## Dateien einlesen

  `Basislastschrift bl = new Basislastschrift(); bl.read(new File("test.xml")); // jetzt können über die get-Methoden alle Werte abgefragt werden`
  Author:
    heiner

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private java.lang.String` | `anzahlbuchungen` Anzahl Buchungen (read-only)
    `private java.lang.String` | `bic` BIC des Auftraggebers
    `private java.util.Date` | `creationdatetime` Datum und Uhrzeit der Erzeugung der Datei
    `private java.lang.String` | `glaeubigerid` Gläubiger ID
    `private java.lang.String` | `iban` IBAN des Auftraggebers
    `private boolean` | `komprimiert` Komprimiert.
    `private java.math.BigDecimal` | `kontrollsumme` Kontrollsumme
    `private java.lang.String` | `messageID` Message-ID für die Prüfung auf Doppeleinreichung
    `private java.lang.String` | `name` Name des Auftraggebers
    `private java.util.ArrayList<Zahler>` | `zahlerarray` Array von Zahlern
    `private java.util.HashMap<java.lang.String,Zahler>` | `zahlermap` Map der Zahler

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Basislastschrift()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Zahler zahler)` Für jede Buchung wird ein Zahler-Object übergeben
    `java.lang.String` | `getAnzahlBuchungen()` Anzahl der Buchungen.
    `java.lang.String` | `getBIC()`
    `java.util.Date` | `getCreationDateTime()` Datum der Erzeugung der Datei.
    `private CustomerDirectDebitInitiationV02` | `getCustumerDirectDebitInitiationV02()`
    `private DirectDebitTransactionInformationSDD` | `getDirectDebitTransactionInformationSDD(Zahler z)`
    `java.lang.String` | `getGlaeubigerID()`
    `private GroupHeaderSDD` | `getGroupHeader()`
    `java.lang.String` | `getIBAN()`
    `java.math.BigDecimal` | `getKontrollsumme()` Kontrollsumme aller Buchungen.
    `java.lang.String` | `getMessageID()`
    `java.lang.String` | `getName()`
    `private PaymentInstructionInformationSDD` | `getPaymentInstructionInformationSDD(SequenceType1Code sequence)`
    `private PaymentTypeInformationSDD` | `getPaymentTypeInformationSDD(SequenceType1Code sequence)`
    `private static javax.xml.datatype.XMLGregorianCalendar` | `getYYYMMDD(java.util.Date date)`
    `private static javax.xml.datatype.XMLGregorianCalendar` | `getYYYMMDDHHMMSS(java.util.Date date)`
    `java.util.ArrayList<Zahler>` | `getZahler()` Gibt die Zahler nach dem Einlesen zurück.
    `void` | `read(java.io.File file)` SEPA-Datei einlesen.
    `(package private) void` | `setAnzahlBuchungen(java.lang.String anzahlbuchungen)`
    `void` | `setBIC(java.lang.String bic)` BIC.
    `(package private) void` | `setCreationDateTime(java.util.Date creationdatetime)` Datum der Erzeugung der Datei.
    `void` | `setGlaeubigerID(java.lang.String glaeubigerid)` Gläubiger-ID
    `void` | `setIBAN(java.lang.String iban)` IBAN.
    `void` | `setKomprimiert(boolean komprimiert)` Komprimiert.
    `(package private) void` | `setKontrollsumme(java.math.BigDecimal kontrollsumme)` Wird nur intern beim einlesen einer Datei genutzt.
    `void` | `setMessageID(java.lang.String messageid)` Message-ID.
    `void` | `setName(java.lang.String name)` Name des Zahlungspflichtigen.
    `void` | `write(java.io.File file)` Schreibt die SEPA-Datei.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### messageID

          private java.lang.String messageID

      Message-ID für die Prüfung auf Doppeleinreichung

    - #### bic

          private java.lang.String bic

      BIC des Auftraggebers

    - #### iban

          private java.lang.String iban

      IBAN des Auftraggebers

    - #### name

          private java.lang.String name

      Name des Auftraggebers

    - #### glaeubigerid

          private java.lang.String glaeubigerid

      Gläubiger ID

    - #### zahlerarray

          private java.util.ArrayList<Zahler> zahlerarray

      Array von Zahlern

    - #### zahlermap

          private java.util.HashMap<java.lang.String,Zahler> zahlermap

      Map der Zahler

    - #### kontrollsumme

          private java.math.BigDecimal kontrollsumme

      Kontrollsumme

    - #### komprimiert

          private boolean komprimiert

      Komprimiert. Buchungen mit gleicher Mandat-ID werden zusammengefügt

    - #### anzahlbuchungen

          private java.lang.String anzahlbuchungen

      Anzahl Buchungen (read-only)

    - #### creationdatetime

          private java.util.Date creationdatetime

      Datum und Uhrzeit der Erzeugung der Datei

  - ### Constructor Detail

    - #### Basislastschrift

          public Basislastschrift()

  - ### Method Detail

    - #### add

          public void add(Zahler zahler)
                   throws SEPAException

      Für jede Buchung wird ein Zahler-Object übergeben
      Throws:
        `SEPAException`

    - #### write

          public void write(java.io.File file)
                     throws javax.xml.datatype.DatatypeConfigurationException,
                            SEPAException,
                            javax.xml.bind.JAXBException

      Schreibt die SEPA-Datei. Vorher sind alle Werte über die set-Methoden sowie die add(Zahler)-Methode übergeben werden.
      Throws:
        `javax.xml.datatype.DatatypeConfigurationException`
        `SEPAException`
        `javax.xml.bind.JAXBException`

    - #### read

          public void read(java.io.File file)
                    throws javax.xml.bind.JAXBException,
                           SEPAException

      SEPA-Datei einlesen. Nach dem Methodenaufruf können die Werte über die get-Methoden abgefragt werden.
      Throws:
        `javax.xml.bind.JAXBException`
        `SEPAException`

    - #### getCustumerDirectDebitInitiationV02

          private CustomerDirectDebitInitiationV02 getCustumerDirectDebitInitiationV02()
                                                                                throws javax.xml.datatype.DatatypeConfigurationException,
                                                                                       SEPAException

      Throws:
        `javax.xml.datatype.DatatypeConfigurationException`
        `SEPAException`

    - #### getGroupHeader

          private GroupHeaderSDD getGroupHeader()
                                         throws javax.xml.datatype.DatatypeConfigurationException,
                                                SEPAException

      Throws:
        `javax.xml.datatype.DatatypeConfigurationException`
        `SEPAException`

    - #### getPaymentInstructionInformationSDD

          private PaymentInstructionInformationSDD getPaymentInstructionInformationSDD(SequenceType1Code sequence)
                                                                                throws SEPAException,
                                                                                       javax.xml.datatype.DatatypeConfigurationException

      Throws:
        `SEPAException`
        `javax.xml.datatype.DatatypeConfigurationException`

    - #### getYYYMMDD

          private static javax.xml.datatype.XMLGregorianCalendar getYYYMMDD(java.util.Date date)
                                                                     throws javax.xml.datatype.DatatypeConfigurationException

      Throws:
        `javax.xml.datatype.DatatypeConfigurationException`

    - #### getYYYMMDDHHMMSS

          private static javax.xml.datatype.XMLGregorianCalendar getYYYMMDDHHMMSS(java.util.Date date)
                                                                           throws javax.xml.datatype.DatatypeConfigurationException

      Throws:
        `javax.xml.datatype.DatatypeConfigurationException`

    - #### getDirectDebitTransactionInformationSDD

          private DirectDebitTransactionInformationSDD getDirectDebitTransactionInformationSDD(Zahler z)
                                                                                        throws javax.xml.datatype.DatatypeConfigurationException,
                                                                                               SEPAException

      Throws:
        `javax.xml.datatype.DatatypeConfigurationException`
        `SEPAException`

    - #### getPaymentTypeInformationSDD

          private PaymentTypeInformationSDD getPaymentTypeInformationSDD(SequenceType1Code sequence)

    - #### setMessageID

          public void setMessageID(java.lang.String messageid)
                            throws SEPAException

      Message-ID. Z. B. Buchungslaufnummer. Max. 35 Stellen.
      Throws:
        `SEPAException`

    - #### getMessageID

          public java.lang.String getMessageID()
                                        throws SEPAException

      Throws:
        `SEPAException`

    - #### setBIC

          public void setBIC(java.lang.String bic)
                      throws SEPAException

      BIC. Länge 8 oder 11 Stellen.
      Throws:
        `SEPAException`

    - #### getBIC

          public java.lang.String getBIC()
                                  throws SEPAException

      Throws:
        `SEPAException`

    - #### setIBAN

          public void setIBAN(java.lang.String iban)
                       throws SEPAException

      IBAN. Länge in Abhängigkeit vom Land.
      Throws:
        `SEPAException`

    - #### getIBAN

          public java.lang.String getIBAN()
                                   throws SEPAException

      Throws:
        `SEPAException`

    - #### setName

          public void setName(java.lang.String name)
                       throws SEPAException

      Name des Zahlungspflichtigen. Länge max. 70 Stellen.
      Throws:
        `SEPAException`

    - #### getName

          public java.lang.String getName()
                                   throws SEPAException

      Throws:
        `SEPAException`

    - #### setGlaeubigerID

          public void setGlaeubigerID(java.lang.String glaeubigerid)
                               throws SEPAException

      Gläubiger-ID
      Throws:
        `SEPAException`

    - #### getGlaeubigerID

          public java.lang.String getGlaeubigerID()
                                           throws SEPAException

      Throws:
        `SEPAException`

    - #### setKomprimiert

          public void setKomprimiert(boolean komprimiert)
                              throws SEPAException

      Komprimiert. Muss gesetzt werden, bevor der erste Zähler übergeben wird.
      Parameters:
        `komprimiert` - true: Zahlungen mit gleicher Mandanten-ID werden zusammengefasst, false: keine Zusammenfassung.
      Throws:
        `SEPAException`

    - #### setKontrollsumme

          void setKontrollsumme(java.math.BigDecimal kontrollsumme)

      Wird nur intern beim einlesen einer Datei genutzt.

    - #### getKontrollsumme

          public java.math.BigDecimal getKontrollsumme()

      Kontrollsumme aller Buchungen. Steht nach dem Einlesen einer Datei zur Verfügung.
      Returns:
        Kontrollsumme

    - #### getAnzahlBuchungen

          public java.lang.String getAnzahlBuchungen()

      Anzahl der Buchungen. Steht nach dem Einlesen einer Datei zur Verfügung.
      Returns:
        Anzahl Buchungen

    - #### setAnzahlBuchungen

          void setAnzahlBuchungen(java.lang.String anzahlbuchungen)

    - #### getCreationDateTime

          public java.util.Date getCreationDateTime()

      Datum der Erzeugung der Datei. Steht nach dem Einlesen einer Datei zur Verfügung.
      Returns:
        Erzeugungsdatum

    - #### setCreationDateTime

          void setCreationDateTime(java.util.Date creationdatetime)

      Datum der Erzeugung der Datei. Wird beim Einlesen einer Datei genutzt.

    - #### getZahler

          public java.util.ArrayList<Zahler> getZahler()

      Gibt die Zahler nach dem Einlesen zurück.