Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Zu den technischen Hintergründen lesen Sie dazu bitte auch den Artikel "Schnittstellen in Java-Regeln".

 


Hinweis

Dieser Integrationsschritt kann erst durchgeführt werden, sobald die Vorbedingungen aus Abschnitt 3 erfüllt sind – d.h. sobald entsprechende Attribute in den genutzten Businessobjekten existieren.

...


Bei der Anbindung des SEPA-Nuclets sind Wrapper-Klassen für Kreditoren (Lieferanten, o.ä.), Debitoren (Kunden, o.ä.), Referenzen (Rechnungen, Belege, o.ä.) und Zahlungsreferenzen (Forderungen, Rechnungspositionen, o.ä.) anzupassen.

...

Die folgende Übersicht führt alle Wrapper-Klassen gruppiert nach Anwendungsfall auf. Alle Klassen befinden sich im Java-Package org.nuclet.sepa.wrapper.

Sollten Sie das SEPA-Nuclet entweder nur für Lastschriften oder nur für Überweisungen verwenden wollen, dann müssen nur die jeweiligen Klassen für Ihren Anwendungsfall angepasst werden. Die restlichen Klassen können Sie ignorieren.

DebitorWrapper()
  • getBic()
  • getDateOfSEPAMandateSignature()
  • getHasSEPAMandateChanged()
  • getIban()
  • getIsNewDebitorAgent()
  • getName()
  • getOriginalDebitorAccount()
  • getSEPAMandateIdentification()
  • getSEPASequenceTypeId()
  • setHasSEPAMandateChanged()
  • setIsNewDebitorAgent()
  • setOriginalDebitorAccount()
  • setSEPASequenceTypeId()
  • setUserContext()
  • ReferenceWrapper
    Wrapper-KlasseAnmerkungFunktionAnwendungsfall
    CreditorReferenceWrapperneu ab v2.0.0
    Anbindung an genutzte Referenzobjekte (
    Rechnungen
    Eingangsrechnungen, Gutschriften,o.ä.)
    org.nuclet.sepa.wrapperReferenceWrapper()
  • getDebitorId()
  • getDirectDebitReference()
  • getReferenceDate()
  • PaymentReferenceWrapper
    Überweisungen

    CreditorWrapperneu ab v2.0.0Anbindung an verwendete Kreditoren, Lieferanten, o.ä.
    CreditTransferReferenceWrapperneu ab v2.0.0Anbindung an verwendete Zahlungsreferenzobjekte (Forderungen, Rechnungspositionen, Buchungen, etc.)
    org.nuclet.mt940.wrapperPaymentReferenceWrapper()
  • getAmount()
  • getReferenceId()
  • setSEPAExportDate()
  • setSEPAPaymentInformationId()
  • Tabelle 4.8.1: Übersicht Nuclet-Schnittstellen

     

    4.7.1.1 DebitorWrapper

    Die Klasse CurrencyWrapper dient als Nuclet-Schnittstelle zur tatsächlich genutzten Währungsbusinessobjekt.

    Der Konstruktor der Klasse und die Methode getIso4217Code() sind mit anwendungsspezifischem Verhalten zu befüllen. Letztere Methode sollte den ISO-4217-Währungscode (siehe dazu Wikipedia) des Währunsobjektes zurückliefern.

    MethodeFunktionAnpassung optional?
    DebitorWrapperZuordnung des tatsächlich genutzten Businessobjektesnein
     

     

     
    getBic() nein
    getDateOfSEPAMandateSignature() nein
    getHasSEPAMandateChanged() nein
    getIban() nein
    getIsNewDebitorAgent() nein
    getName() nein
    getOriginalDebitorAccount() nein
    getSEPAMandateIdentification() nein
    getSEPASequenceTypeId() nein
       
    setHasSEPAMandateChanged() nein
    setIsNewDebitorAgent() nein
    setOriginalDebitorAccount() nein
    setSEPASequenceTypeId() nein
    setUserContext() nein

    Tabelle 4.7.1.1: Anpassungen in DebitorWrapper

     

    Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an die tatsächlich genutzte Währungsbusinessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    DebitorReferenceWrapperneu ab v2.0.0, ersetzt ReferenceWrapperAnbindung an genutzte Referenzobjekte (Ausgangsrechnungen,o.ä.)Lastschriften
    DebitorWrapper
    Anbindung an verwendete Debitoren, Kunden, o.ä.
    DirectDebitReferenceWrapperneu ab v2.0.0Anbindung an verwendete Zahlungsreferenzobjekte (Forderungen, Rechnungspositionen, Buchungen, etc.)
    ReferenceWrapperobsolet ab v2.0.0, wird ersetzt durch DebitReferenceWrapperAnbindung an genutzte Referenzobjekte (Rechnungen,o.ä.)Lastschriften
    PaymentReferenceWrapperobsolet ab v2.0.0, wird ersetzt durch DirectDebitReferenceWrapperAnbindung an verwendete Zahlungsreferenzobjekte (Forderungen, Rechnungspositionen, etc.)Lastschriften

    Tabelle 4.8.1: Übersicht Nuclet-Schnittstellen


    Info

    Bitte beachten Sie, dass es in diesem Integrationsschritt nur darum geht, die Anbindung an die Attribute der tatsächlich genutzten Businessobjekte herzustellen.

    Es ist von Ihnen an dieser Stelle im Normalfall keinerlei Prozesslogik zu implementieren.


    4.8.1.1 CreditorReferenceWrapper

    Die Klasse ReferenceWrapper dient als Nuclet-Schnittstelle für tatsächlich genutzte Referenzobjekte (Rechnungen, Forderungen, Belege, etc.).

    Das sind jene Objekte, die bei SEPA-Exporten als Referenz für Zahlungsanweisungen verwendet werden.

    MethodeFunktionAnpassung optional?
    CreditorReferenceWrapperZuordnung des tatsächlich genutzten Businessobjektesnein



    getCreditorId()liefert die Datenbank-ID des Kreditorenja
    getCreditTransferReference()

    liefert das Identifizierungsmerkmal für Überweisungen (also z.B. die Rechnungsnummer)

    ja
    getReferenceDate()

    liefert ein Referenzdatum (bspw. das Rechnungsdatum)

    ja
    getTotalAmount()

    liefert den Gesamtbetrag einer Transaktion (bspw. den Rechnungsbetrag);

    falls die Implementierung null zurückliefert, werden die Beträge aus den Einzelbeträgen ermittelt

    (siehe unten: CreditTransferReferenceWrapper)

    ja

    Tabelle 4.8.1.1: Anpassungen in CreditorReferenceWrapper


    Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.CreditorReferenceWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import 
    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.DebitorWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.businessobject.facade.Stateful;
    
    import de.bffs.Personorg.nuclet.sepa.wrapper.AbstractCreditorReferenceWrapper;
    
    /**
     * Wrapper implementation/ @replace!
    // 
    // import org.nuclet.businesstemplate.SupplierBilling;
    
    
    /**
     * Abstract wrapper class for debitors (supplier billings, invoices, etc.)
     * 
     * @version 1.01
     * @date 2111.0301.20142016
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.1.0.03
     * @sincenucletversion 1.0.0
     * @since 2130.0301.20142015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class DebitorWrapperCreditorReferenceWrapper extends AbstractDebitorWrapperAbstractCreditorReferenceWrapper
    {         
        public DebitorWrapperCreditorReferenceWrapper(final Modifiable reference)
        {
     //        // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // if (reference instanceof PersonSupplierBilling) {
            //     this.businessObject = reference;
            // }
        }
    
     
      
     /**
         * Liefert dendie NamenDatenbank-ID des DebitorsKreditoren
         * 
         */
        public StringLong getNamegetCreditorId()
        {
     return ((Person)this.businessObject).getName();
     }
     
     
     /**
     * Liefert die SEPA-Mandatskennung
     */
     public String getSEPAMandateIdentification()
     {
     return ((Person)this.businessObject).getSepaMandatskennung();
     }
     
     /**
     * Liefert das Ausstellungsdatum des SEPA-Mandats
     */
     public Date getDateOfSEPAMandateSignature()
     {
     return ((Person       // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((SupplierBilling)this.businessObject).getDatumSepaMandatsausstellunggetSupplierId();
     }
     
     /**
     * Liefert Informationen darüber, ob
     sich das SEPA-Mandat auf Debitorenseite 
     * geändertreturn hatnull;
     */
     public Boolean getHasSEPAMandateChanged()}
     {
      return ((Person)this.businessObject).getSepaMandatsaenderung();
     }
      
     /**
         * Setzt die Informationen darüber, ob sich das SEPA-Mandat auf Debitorenseite 
     * geändert hat
     Liefert das Identifizierungsmerkmal für Lastschriften (z.B. die Rechnungsnummer)
         * 
         */
        public voidString setHasSEPAMandateChangedgetCreditTransferReference(final)
     Boolean blnHasSEPAMandateChanged)
      {
     ((Person)this.businessObject).setSepaMandatsaenderung(blnHasSEPAMandateChanged);
     }
     
     /**
     * Liefert Informationen darüber, ob sich das Kreditinstitut auf Debitorenseite
     * gewechselt wurde
     */
     public Boolean getIsNewDebitorAgent()
     {
     return ((Person)this.businessObject).getBicVeraendert();
     }
     
     /**
     * Setzt die Informationen darüber, ob sich das Kreditinstitut auf Debitorenseite
     * gewechselt wurde
     */
     public void setIsNewDebitorAgent(final Boolean blnIsNewDebitorAgent)
     {
     ((Person       // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // 
            // return ((SupplierBilling)this.businessObject).setBicVeraendertgetBillingNumber(blnIsNewDebitorAgent);
     }
     
     /**
     * Liefert die Datenbank-ID der SEPA-Laufzeit
     * 
     */
     public Long getSEPASequenceTypeId()
     {
     return ((Person)this.businessObject).getSepaLaufzeitId();
     }
     
            
            return null;
        }        
        
        /**
         * SetztLiefert ein die Datenbank-ID der SEPA-Laufzeit
     * 
    Referenzdatum (bspw. das Rechnungsdatum)
         * 
         */
     public  void setSEPASequenceTypeId(finalpublic LongDate lngSEPASequenceTypeIdgetReferenceDate()
        {
     ((Person)this.businessObject).setSepaLaufzeitId(lngSEPASequenceTypeId);
     }
    
     
     /**
     * Liefert den BIC für SEPA-Zahlungen
     * 
     */
     public String getBic()
     {
     return ((Person)this.businessObject).getBic();
     }
     
    
     /**
     * Liefert den IBAN für SEPA-Zahlungen
     * 
     */
     public String getIban()
     {
     return ((Person       // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((SupplierBilling)this.businessObject).getIbangetBillingDate();
          }
     
     /**
     * Liefert die alte IBAN bei SEPA-Mandatsänderungen
     *return null;
     */
     public String getOriginalDebitorAccount() }    
     {
      return ((Person)this.businessObject).getIbanAlt();
     }
     
    
        /**
         * SetztLiefert dieden alteGesamtbetrag IBAN(bspw. bei SEPA-Mandatsänderungenden Rechnungsbetrag)
         * 
         */
     public@note voidFalls setOriginalDebitorAccount(finaldie String strOriginalDebitorAccount)
     {
     ((Person)this.businessObject).setIbanAlt(strOriginalDebitorAccount);
     }
     
     /**
     * Setzt den Benutzerkontext
     * 
    Implementierung *null* zurückliefert, werden die Beträge aus den
         * Einzelbeträgen ermittelt (d.h. aus den CreditTransferReferenceWrapper-Objekten)
         */
        public voidBigDecimal setUserContextgetTotalAmount(final String strUserContext)
     {
     ((Person)this.businessObject).setBenutzerkontext(strUserContext);
     }
    }
    4.8.1.2 ReferenceWrapper

    Die Klasse ReferenceWrapper dient als Nuclet-Schnittstelle für tatsächlich genutzte Referenzobjekte (Rechnungen, Forderungen, Belege, etc.).

    Das sind jene Objekte, die bei SEPA-Exporten als Referenz für Zahlungsanweisungen verwendet werden.

    MethodeFunktionAnpassung optional?
    ReferenceWrapperZuordnung des tatsächlich genutzten Businessobjektesnein
       
    getDebitorId()liefert die Datenbank-ID des Debitorenja
    getDirectDebitReference()

    liefert das Identifizierungsmerkmal für Lastschriften (also z.B. die Rechnungsnummer)

    ja
    getReferenceDate()

    liefert ein Referenzdatum (bspw. das Rechnungsdatum)

    ja

    Tabelle 4.7.1.2: Anpassungen in ReferenceWrapper

     

    Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

           // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((SupplierBilling)this.businessObject).getTotalAmountGross();
            
            return BigDecimal.ZERO;
        }
        
    }
    4.8.1.2 CreditorWrapper

    Die Klasse CreditorWrapper dient als Nuclet-Schnittstelle zum tatsächlich genutzten Kreditoren-Businessobjekt.

    Der Konstruktor der Klasse und die Methode getIso4217Code() sind mit anwendungsspezifischem Verhalten zu befüllen. Letztere Methode sollte den ISO-4217-Währungscode (siehe dazu Wikipedia) des Währunsobjektes zurückliefern.

    MethodeFunktionAnpassung optional?
    CreditorWrapperZuordnung des tatsächlich genutzten Businessobjektesnein



    getBic()liefert die BIC des Debitoren, d.h. das Geschäftskennzeichen der Bank des Debitoren (BIC = Business Identifier Code, früher: Bank Identifier Code)nein
    getIban()liefert die IBAN des Debitoren, d.h. die internationale Bankkontonummer (IBAN = International Bank Account Number)nein
    getName()liefert den Namen des Debitorennein

    Tabelle 4.8.1.2: Anpassungen in CreditorWrapper

     

    Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an die tatsächlich genutzte Währungsbusinessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.CreditorWrapper
    linenumberstrue
    collapsetrue
    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.ReferenceWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.businessobject.facade.Stateful;
    
    import de.bffs.Rechnungorg.nuclet.sepa.wrapper.AbstractCreditorWrapper;
    
    
    /// @replace!
    // 
    // import org.nuclet.businesstemplate.Supplier;
    
    
    /**
     * AbstractWrapper wrapper classimplementation for debitors (client billings, invoices, etc.)creditors 
     * 
     * @version 1.0
     * @date 2130.0301.20142015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 12.0.0
     * @sincenucletversion 12.0.0
     * @since 2130.0301.20142015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class ReferenceWrapperCreditorWrapper extends AbstractReferenceWrapperAbstractCreditorWrapper
    {         
        public ReferenceWrapperCreditorWrapper(final Modifiable reference)
        {
            {
     // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
           // if (reference instanceof RechnungSupplier) {
                // this.businessObject = reference;
            // }
        }
     
     
       /**
         * Liefert dieden Datenbank-IDNamen des DebitorenDebitors
         * 
         */
        public LongString getDebitorIdgetName()
     {
     //  {
           @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
     //
     // Beispiel:
     //
     // return ((RechnungSupplier)this.businessObject).getMitgliedIdgetName();
     
     return null;
     }
     
     
     
     
        /**
         * Liefert dasden IdentifizierungsmerkmalBIC für SEPA-Zahlungen
     Lastschriften (z.B. die Rechnungsnummer)
         * 
         */
        public String getDirectDebitReference()
        {
            return ((Rechnung* 
     */
     public String getBic()
     {
     // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
     //
     // Beispiel:
     //
     // return ((Supplier)this.businessObject).getRechnungsnummergetBic();
     
     return null;
     } 
    
     /**
     * Liefert den IBAN für SEPA-Zahlungen
     *   
        */**
     public    * Liefert ein Referenzdatum (bspw. das RechnungsdatumString getIban()
     {
     // @replace! Bitte *bei 
    Nuclet-Integration mit eigenem Code ersetzen!
     *//
        public Date getReferenceDate()
        {
            // Beispiel:
     //
     // return ((RechnungSupplier)this.businessObject).getRechnungsdatumgetIban();
     
     return null;
     } 
    
    }
    4.

    ...

    8.1.3

    ...

    CreditTransferReferenceWrapper

    Die Klasse PaymentReferenceWrapper CreditTransferReferenceWrapper dient als Nuclet-Schnittstelle zum tatsächlich genutzten Businessobjekt für Zahlungsreferenzen.

    Mit Zahlungsreferenzen sind jene Objekte gemeint, :

    MethodeFunktionAnpassung optional?
    PaymentReferenceWrapper
    CreditTransferReferenceWrapper()Zuordnung des tatsächlich genutzten Businessobjektesnein
     
      



    getAmount()

    liefert den zu zahlenden Betrag;

    wird genutzt, wenn die Methode getTotalAmount() aus dem übergeordneten

    CreditorReferenceWrapper null zurückliefert

    nein
    getReferenceId()liefert die Datenbank-ID des übergeordneten Referenzobjektes
    (siehe 4.7.1.2)nein   setSEPAExportDate()

    setzt das Export-Datum nach erfolgtem SEPA-Export

    neinsetSEPAPaymentInformationId()setzt die SEPA-Zahlungsinformation nach erfolgtem SEPA-Exportnein

    Tabelle 4.7.1.3: Anpassungen in PaymentReferenceWrapper

     

     Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    (siehe 4.7.1.2)nein



    setSEPAExportDate()

    setzt das Export-Datum nach erfolgtem SEPA-Export

    nein
    setSEPAPaymentInformationId()setzt die SEPA-Zahlungsinformation nach erfolgtem SEPA-Exportnein

    Tabelle 4.8.1.3: Anpassungen in CreditTransferReferenceWrapper


     Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.CreditTransferReferenceWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.businessobject.facade.Stateful;
    
    import org.nuclet.sepa.wrapper.AbstractPaymentReferenceWrapper;
    
    // @replace!
    // 
    // import org.nuclet.businesstemplate.SupplierBillingPosition;
    
    
    /**
     * Wrapper implementation for SEPA credit transfer references (invoices, due payments, etc.)
     * 
     * @version 1.0
     * @date 30.01.2015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.0.0
     * @sincenucletversion 2.0.0
     * @since 30.01.2015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class CreditTransferReferenceWrapper extends AbstractCreditTransferReferenceWrapper
    {
        public CreditTransferReferenceWrapper(final Modifiable reference)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // if (reference instanceof SupplierBillingPosition) {
            //     this.businessObject = reference;
            // }
        }
        
        /**
         * Liefert die Datenbank-ID des übergeordneten Referenzobjektes
         * (also bspw. die ID der Rechnung, falls es sich bei den Zahlungsreferenzen um
         * Rechnungspositionen handelt) 
         * 
         */
        public Long getReferenceId()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((SupplierBillingPosition)this.businessObject).getClientBillingId();
            
            return null;
        }
        
        /**
         * Liefert den Zahlungsbetrag
         * 
         */
        public BigDecimal getAmount()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((SupplierBillingPosition)this.businessObject).getAmount();
            
            return null;
        }        
        
        public void setSEPATransactionId(final Long lngSEPATransactionId)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // ((SupplierBillingPosition)this.businessObject).setSEPATransactionId(lngSEPATransactionId);
        }
        
        public void setSEPAExportDate(final Date datSEPAExportDate)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // ((SupplierBillingPosition)this.businessObject).setSEPAExportDate(datSEPAExportDate);
        }
    
    }
    4.8.1.4 DebitorReferenceWrapper

    Die Klasse ReferenceWrapper dient als Nuclet-Schnittstelle für tatsächlich genutzte Referenzobjekte (Rechnungen, Forderungen, Belege, etc.).

    Das sind jene Objekte, die bei SEPA-Exporten als Referenz für Zahlungsanweisungen verwendet werden.

    MethodeFunktionAnpassung optional?
    DebitorReferenceWrapperZuordnung des tatsächlich genutzten Businessobjektesnein



    getDebitorId()liefert die Datenbank-ID des Debitorenja
    getDirectDebitReference()

    liefert das Identifizierungsmerkmal für Lastschriften (also z.B. die Rechnungsnummer)

    ja
    getReferenceDate()

    liefert ein Referenzdatum (bspw. das Rechnungsdatum)

    ja
    getTotalAmount()

    liefert den Gesamtbetrag einer Transaktion (bspw. den Rechnungsbetrag);

    falls die Implementierung null zurückliefert, werden die Beträge aus den Einzelbeträgen ermittelt

    (siehe unten: DirectDebitReferenceWrapper)
    ja

    Tabelle 4.8.1.4: Anpassungen in DebitorReferenceWrapper


    Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.DebitorReferenceWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.businessobject.facade.Stateful;
    
    import org.nuclet.sepa.wrapper.AbstractDebitorReferenceWrapper;
    
    // @replace!
    // 
    // import org.nuclet.businesstemplate.ClientBilling;
    
    
    /**
     * Abstract wrapper class for debitors (client billings, invoices, etc.)
     * 
     * @note replaces the original class ReferenceWrapper
     * 
     * @version 2.1
     * @date 11.01.2016
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.1.3
     * @sincenucletversion 2.0.0
     * @since 30.01.2015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class DebitorReferenceWrapper extends AbstractDebitorReferenceWrapper
    {         
        public DebitorReferenceWrapper(final Modifiable reference)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // if (reference instanceof ClientBilling) {
            //     this.businessObject = reference;
            // }
        }
    
        /**
         * Liefert die Datenbank-ID des Debitoren
         * 
         */
        public Long getDebitorId()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((ClientBilling)this.businessObject).getClientId();
            
            return null;
        }
        
        /**
         * Liefert das Identifizierungsmerkmal für Lastschriften (z.B. die Rechnungsnummer)
         * 
         */
        public String getDirectDebitReference()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // 
            // return ((ClientBilling)this.businessObject).getBillingNumber();
            
            return null;
        }        
        
        /**
         * Liefert ein Referenzdatum (bspw. das Rechnungsdatum)
         * 
         */
        public Date getReferenceDate()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((ClientBilling)this.businessObject).getBillingDate();
            
            return null;
        }
        
        /**
         * Liefert den Gesamtbetrag (bspw. den Rechnungsbetrag)
         * 
         * @note Falls die Implementierung *null* zurückliefert, werden die Beträge aus den
         * Einzelbeträgen ermittelt (d.h. aus den DirectDebitReferenceWrapper-Objekten)
         */
        public BigDecimal getTotalAmount() {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((ClientBilling)this.businessObject).getTotalAmountGross();
            
            return BigDecimal.ZERO;
        }
    }
    4.8.1.5 DebitorWrapper

    Die Klasse DebitorWrapper dient als Nuclet-Schnittstelle zum tatsächlich genutzten Debitoren-Businessobjekt.

    Der Konstruktor der Klasse und die Methode getIso4217Code() sind mit anwendungsspezifischem Verhalten zu befüllen. Letztere Methode sollte den ISO-4217-Währungscode (siehe dazu Wikipedia) des Währunsobjektes zurückliefern.

    MethodeFunktionAnpassung optional?
    DebitorWrapperZuordnung des tatsächlich genutzten Businessobjektesnein



    getBic()liefert die BIC des Debitoren, d.h. das Geschäftskennzeichen der Bank des Debitoren (BIC = Business Identifier Code, früher: Bank Identifier Code)nein
    getDateOfSEPAMandateSignature()liefert das Datum, an dem das SEPA-Mandat vom Debitoren ausgestellt/unterzeichnet wurdenein
    getHasSEPAMandateChanged()liefert Informationen darüber, ob sich das SEPA-Mandat des Debitoren verändert hat (d.h. ob die Bankverbindung geändert wurde)nein
    getIban()liefert die IBAN des Debitoren, d.h. die internationale Bankkontonummer (IBAN = International Bank Account Number)nein
    getIsNewDebitorAgent()liefert Informationen darüber, ob der Debitor seit dem letzten SEPA-Exort das Kreditinstitut gewechselt hatnein
    getName()liefert den Namen des Debitorennein
    getOriginalDebitorAccount()liefert die letzte IBAN des Debitoren, falls sich diese seit dem letzten SEPA-Export geändet haben solltenein
    getSEPAMandateIdentification()liefert die SEPA-Mandatskennung des Debitorennein
    getSEPASequenceTypeId()liefert die SEPA-Laufzeit für den Debitoren (ist die SEPA-Lastschrift erstmals, einmalig oder wiederkehrend?)nein



    setHasSEPAMandateChanged()setzt Informationen darüber, ob sich das SEPA-Mandat des Debitoren verändert hat (d.h. ob die Bankverbindung geändert wurde)nein
    setIsNewDebitorAgent()setzt Informationen darüber, ob der Debitor seit dem letzten SEPA-Exort das Kreditinstitut gewechselt hatnein
    setOriginalDebitorAccount()setzt die letzte IBAN des Debitoren, falls sich diese seit dem letzten SEPA-Export geändet haben solltenein
    setSEPASequenceTypeId()setzt die SEPA-Laufzeit für den Debitoren (ist die SEPA-Lastschrift erstmals, einmalig oder wiederkehrend?)nein

    Tabelle 4.8.1.5: Anpassungen in DebitorWrapper


    Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an die tatsächlich genutzte Währungsbusinessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.DebitorWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.businessobject.facade.Stateful;
    
    // @replace!
    // 
    // import org.nuclet.businesstemplate.Client;
    
    
    /**
     * Wrapper implementation for debitors 
     * 
     * @version 1.0
     * @date 21.03.2014
     * @nuclet org.nuclet.SEPA
     * @nucletversion 1.0.0
     * @sincenucletversion 1.0.0
     * @since 21.03.2014
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class DebitorWrapper extends AbstractDebitorWrapper
    {
        public DebitorWrapper(final Modifiable reference)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // if (reference instanceof Client) {
            //    this.businessObject = reference;
            // }
        }
        
        
        /**
         * Liefert den Namen des Debitors
         * 
         */
        public String getName()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getName();
            
            return null;
        }
        
        
        /**
         * Liefert die SEPA-Mandatskennung
         */
        public String getSEPAMandateIdentification()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getSEPAMandateIdentification();
            
            return null;
        }
                   
        /**
         * Liefert das Ausstellungsdatum des SEPA-Mandats
         */
        public Date getDateOfSEPAMandateSignature()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getDateOfSEPAMandateSignature();
            
            return null;
        }
        
        /**
         * Liefert Informationen darüber, ob sich das SEPA-Mandat auf Debitorenseite 
         * geändert hat
         */
        public Boolean getHasSEPAMandateChanged()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getHasSEPAMandateChanged();
            
            return null;
        }
        
        /**
         * Setzt die Informationen darüber, ob sich das SEPA-Mandat auf Debitorenseite 
         * geändert hat
         */
        public void setHasSEPAMandateChanged(final Boolean blnHasSEPAMandateChanged)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // ((Client)this.businessObject).setHasSEPAMandateChanged(blnHasSEPAMandateChanged);
        }
        
        /**
         * Liefert Informationen darüber, ob sich das Kreditinstitut auf Debitorenseite
         * gewechselt wurde
         */
        public Boolean getIsNewDebitorAgent()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getIsNewDebitorAgent();
            
            return null;
        }
        
        /**
         * Setzt die Informationen darüber, ob sich das Kreditinstitut auf Debitorenseite
         * gewechselt wurde
         */
        public void setIsNewDebitorAgent(final Boolean blnIsNewDebitorAgent)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // ((Client)this.businessObject).setIsNewDebitorAgent(blnIsNewDebitorAgent);
        }
     
        /**
         * Liefert die Datenbank-ID der SEPA-Laufzeit
         * 
         */
        public Long getSEPASequenceTypeId()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getSEPASequenceTypeId();
            
            return null;
        }
        
        /**
         * Setzt die Datenbank-ID der SEPA-Laufzeit
         * 
         */
        public void setSEPASequenceTypeId(final Long lngSEPASequenceTypeId)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // ((Client)this.businessObject).setSEPASequenceTypeId(lngSEPASequenceTypeId);
        }
    
              
        /**
         * Liefert den BIC für SEPA-Zahlungen
         * 
         */
        public String getBic()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getBic();
            
            return null;
        }
        
    
        /**
         * Liefert den IBAN für SEPA-Zahlungen
         * 
         */
        public String getIban()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getIban();
            
            return null;
        }
        
        /**
         * Liefert die alte IBAN bei SEPA-Mandatsänderungen
         * 
         */
        public String getOriginalDebitorAccount()
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // return ((Client)this.businessObject).getOriginalDebitorAccount();
            
            return null;
        }
        
        /**
         * Setzt die alte IBAN bei SEPA-Mandatsänderungen
         * 
         */
        public void setOriginalDebitorAccount(final String strOriginalDebitorAccount)
        {
            // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
            //
            // Beispiel:
            //
            // ((Client)this.businessObject).setOriginalDebitorAccount(strOriginalDebitorAccount);
        }
        
    
    }


    4.8.1.6 DirectDebitReferenceWrapper

    Die Klasse CreditTransferReferenceWrapper dient als Nuclet-Schnittstelle zum tatsächlich genutzten Businessobjekt für Zahlungsreferenzen.

    Mit Zahlungsreferenzen sind jene Objekte gemeint, :

    MethodeFunktionAnpassung optional?
    DirectDebitReferenceWrapper()Zuordnung des tatsächlich genutzten Businessobjektesnein



    getAmount()

    liefert den zu zahlenden Betrag;

    wird genutzt, wenn die Methode getTotalAmount() aus dem übergeordneten

    DebitorReferenceWrapper null zurückliefert

    nein
    getReferenceId()liefert die Datenbank-ID des übergeordneten Referenzobjektes (siehe 4.7.1.2)nein



    setSEPAExportDate()

    setzt das Export-Datum nach erfolgtem SEPA-Export

    nein
    setSEPAPaymentInformationId()setzt die SEPA-Zahlungsinformation nach erfolgtem SEPA-Exportnein

    Tabelle 4.8.1.3: Anpassungen in DirectDebitReferenceWrapper


     Beispiele dazu sind in Kommentarblöcken angegeben; diese Beispiele sind bei der Integration also an das tatsächlich genutzte Businessobjekt (bzw. deren BusinessObject-Klasse) anzupassen.

    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.DirectDebitReferenceWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.businessobject.facade.Stateful;
    
    import org.nuclet.sepa.wrapper.AbstractDirectDebitReferenceWrapper;
    
    // @replace!
    // 
    // import org.nuclet.businesstemplate.ClientBillingPosition;
    
    
    /**
     * Wrapper implementation for SEPA direct debit references (invoices, due payments, etc.)
     * 
     * @note replaces the original class AbstractPaymentReferenceWrapper
     * 
     * @version 1.0
     * @date 30.01.2015
     * @nuclet org.nuclet.SEPA
     * @nucletversion 2.0.0
     * @sincenucletversion 2.0.0
     * @since 30.01.2015
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public class DirectDebitReferenceWrapper extends AbstractDirectDebitReferenceWrapper
    {
     public DirectDebitReferenceWrapper(final Modifiable reference)
     {
     // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
     //
     // Beispiel:
     //
     // if (reference instanceof ClientBillingPosition) {
     // this.businessObject = reference;
     // }
     }
     
     /**
     * Liefert die Datenbank-ID des übergeordneten Referenzobjektes
     * (also bspw. die ID der Rechnung, falls es sich bei den Zahlungsreferenzen um
     * Rechnungspositionen handelt) 
     * 
     */
     public Long getReferenceId()
     {
     // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
     //
     // Beispiel:
     //
     // return ((ClientBillingPosition)this.businessObject).getClientBillingId();
     
     return null;
     }
    Codeblock
    languagejava
    titleorg.nuclet.sepa.wrapper.PaymentReferenceWrapper
    linenumberstrue
    collapsetrue
    package org.nuclet.sepa.wrapper;
    
    
    import java.math.BigDecimal;
    import java.util.Date;
    import java.util.List;
    
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.businessobject.facade.Stateful;
    
    
    
    /**
     * Abstract wrapper class for SEPA references (invoices, due payments, etc.)
     * 
     * @version 1.0
     * @date 21.03.2014
     * @nuclet org.nuclet.SEPA
     * @nucletversion 1.0.0
     * @sincenucletversion 1.0.0
     * @since 21.03.2014
     * 
     * @author frank.lehmann@nuclos.de
     * 
     */
    public abstract class AbstractPaymentReferenceWrapper
    {
     // das "gewrappte" BusinessObjekt (Stateful)
     protected Modifiable businessObject = null;
     
     
     public Modifiable getBusinessObject()
     {
     return this.businessObject;
     } 
     
     /**
     * Liefert den die Datenbank-IDZahlungsbetrag
     * 
     */
     public Long getId()
     {
    public return this.businessObject.getIdBigDecimal getAmount();
     }{
     
     //**
     *@replace! LiefertBitte diebei Datenbank-ID des übergeordneten Referenzobjektes
     * (also bspw. die ID der Rechnung, falls es sich bei den Zahlungsreferenzen um
     * Rechnungspositionen handelt) 
     * 
     */
     public abstract Long getReferenceId();
     
     
     /**
     * Liefert den Zahlungsbetrag
     * 
     */
     public abstract BigDecimal getAmount();
     
     
     public abstract void setSEPAPaymentInformationId(final Long lngSEPAPaymentInformationId);
     
     public abstract void setSEPAExportDate(final Date datSEPAExportDate);Nuclet-Integration mit eigenem Code ersetzen!
     //
     // Beispiel:
     //
     // return ((ClientBillingPosition)this.businessObject).getAmount();
     
     return null;
     } 
     
     public void setSEPATransactionId(final Long lngSEPATransactionId)
     {
     // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
     //
     // Beispiel:
     //
     // ((ClientBillingPosition)this.businessObject).setSEPATransactionId(lngSEPATransactionId);
     }
     
     public void setSEPAExportDate(final Date datSEPAExportDate)
     {
     // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
     //
     // Beispiel:
     //
     // ((ClientBillingPosition)this.businessObject).setSEPAExportDate(datSEPAExportDate);
     }
    
    }