Seitenhistorie
...
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.
Wrapper-Klasse | Anmerkung | Funktion | Anwendungsfall | |||
---|---|---|---|---|---|---|
CreditorReferenceWrapper | neu ab v2.0.0 | DebitorWrapper()ReferenceWrapper | Anbindung an genutzte Referenzobjekte ( | RechnungenEingangsrechnungen, Gutschriften,o.ä.) | org.nuclet.sepa.wrapper | ReferenceWrapper()Überweisungen |
CreditorWrapper | neu ab v2.0.0 | Anbindung an verwendete Kreditoren, Lieferanten, o.ä. | ||||
CreditTransferReferenceWrapper | neu ab v2.0.0 | PaymentReferenceWrapper | Anbindung an verwendete Zahlungsreferenzobjekte (Forderungen, Rechnungspositionen, Buchungen, etc.) | org.nuclet.mt940.wrapper | PaymentReferenceWrapper()
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.
Methode | Funktion | Anpassung optional? |
---|---|---|
CurrencyWrapper | Zuordnung des tatsächlich genutzten Businessobjektes | nein |
getIso4217Code() | liefert den dreistelligen ISO-4217-Code der Währung (z.B. "EUR", "USD", "GBP") | nein |
Tabelle 4.7.1.1: Anpassungen in CurrencyWrapper
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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.Person;
/**
* 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 Person) {
this.businessObject = reference;
}
}
/**
* Liefert den Namen des Debitors
*
*/
public String getName()
{
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)this.businessObject).getDatumSepaMandatsausstellung();
}
/**
* Liefert Informationen darüber, ob sich das SEPA-Mandat auf Debitorenseite
* geändert hat
*/
public Boolean getHasSEPAMandateChanged()
{
return ((Person)this.businessObject).getSepaMandatsaenderung();
}
/**
* Setzt die Informationen darüber, ob sich das SEPA-Mandat auf Debitorenseite
* geändert hat
*/
public void setHasSEPAMandateChanged(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)this.businessObject).setBicVeraendert(blnIsNewDebitorAgent);
}
/**
* Liefert die Datenbank-ID der SEPA-Laufzeit
*
*/
public Long getSEPASequenceTypeId()
{
return ((Person)this.businessObject).getSepaLaufzeitId();
}
/**
* Setzt die Datenbank-ID der SEPA-Laufzeit
*
*/
public void setSEPASequenceTypeId(final Long lngSEPASequenceTypeId)
{
((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)this.businessObject).getIban();
}
/**
* Liefert die alte IBAN bei SEPA-Mandatsänderungen
*
*/
public String getOriginalDebitorAccount()
{
return ((Person)this.businessObject).getIbanAlt();
}
/**
* Setzt die alte IBAN bei SEPA-Mandatsänderungen
*
*/
public void setOriginalDebitorAccount(final String strOriginalDebitorAccount)
{
((Person)this.businessObject).setIbanAlt(strOriginalDebitorAccount);
}
/**
* Setzt den Benutzerkontext
*
*/
public void setUserContext(final String strUserContext)
{
((Person)this.businessObject).setBenutzerkontext(strUserContext);
}
} |
4.8.1.2 ReferenceWrapper
Die Klasse ConditionsOfPaymentWrapper dient als Nuclet-Schnittstelle für tatsächlich genutzte Zahlungsbedingungen.
Die Anpassungen sind optional: Werden keine Zahlungs- und Skontobedingungen verwendet, dann muss dieser Abschnitt nicht berücksichtigt werden.
Werden Skontobedingungen verwendet, dann sind die Getter-Methoden für Skontosatz und Skontofrist anzupassen.
Methode | Funktion | Anpassung optional? |
---|---|---|
ConditionsOfPaymentWrapper | Zuordnung des tatsächlich genutzten Businessobjektes | ja |
getCashDiscount() | liefert den Skontosatz | ja |
getCashDiscountPeriod() | liefert die Skontofrist (in Tagen) | ja |
getExtendedCashDiscount() | liefert den Skontosatz bei erweiterter Skontofrist | ja |
getExtendedCashDiscountPeriod() | liefert die erweiterte Skontofrist (in Tagen) | ja |
getCashDiscountExGratiaDays() | liefert die Kulanz (in Tagen) | 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.
DebitorReferenceWrapper | neu ab v2.0.0, ersetzt ReferenceWrapper | Anbindung an genutzte Referenzobjekte (Ausgangsrechnungen,o.ä.) | Lastschriften |
DebitorWrapper | Anbindung an verwendete Debitoren, Kunden, o.ä. | ||
DirectDebitReferenceWrapper | neu ab v2.0.0 | Anbindung an verwendete Zahlungsreferenzobjekte (Forderungen, Rechnungspositionen, Buchungen, etc.) | |
obsolet ab v2.0.0, wird ersetzt durch DebitReferenceWrapper | Anbindung an genutzte Referenzobjekte (Rechnungen,o.ä.) | ||
obsolet ab v2.0.0, wird ersetzt durch DirectDebitReferenceWrapper | Anbindung an verwendete Zahlungsreferenzobjekte (Forderungen, Rechnungspositionen, etc.) |
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.
Methode | Funktion | Anpassung optional? |
---|---|---|
CreditorReferenceWrapper | Zuordnung des tatsächlich genutzten Businessobjektes | nein |
getCreditorId() | liefert die Datenbank-ID des Kreditoren | ja |
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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.AbstractCreditorReferenceWrapper;
// @replace!
//
// import org.nuclet.businesstemplate.SupplierBilling;
/**
* Abstract wrapper class for debitors (supplier billings, invoices, etc.)
*
* @version 1.1
* @date 11.01.2016
* @nuclet org.nuclet.SEPA
* @nucletversion 2.1.3
* @sincenucletversion 1.0.0
* @since 30.01.2015
*
* @author frank.lehmann@nuclos.de
*
*/
public class CreditorReferenceWrapper extends AbstractCreditorReferenceWrapper
{
public CreditorReferenceWrapper(final Modifiable reference)
{
// @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
//
// Beispiel:
//
// if (reference instanceof SupplierBilling) {
// this.businessObject = reference;
// }
}
/**
* Liefert die Datenbank-ID des Kreditoren
*
*/
public Long getCreditorId()
{
// @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
//
// Beispiel:
//
// return ((SupplierBilling)this.businessObject).getSupplierId();
return null;
}
/**
* Liefert das Identifizierungsmerkmal für Lastschriften (z.B. die Rechnungsnummer)
*
*/
public String getCreditTransferReference()
{
// @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen!
//
// Beispiel:
//
//
// return ((SupplierBilling)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 ((SupplierBilling)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 CreditTransferReferenceWrapper-Objekten)
*/
public BigDecimal getTotalAmount() {
// @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.
Methode | Funktion | Anpassung optional? |
---|---|---|
CreditorWrapper | Zuordnung des tatsächlich genutzten Businessobjektes | nein |
| ||
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 Debitoren | nein |
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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.AbstractCreditorWrapper;
// @replace!
//
// import org.nuclet.businesstemplate.Supplier;
/**
* Wrapper implementation for creditors
*
* @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 CreditorWrapper extends AbstractCreditorWrapper
{
public CreditorWrapper(final Modifiable reference)
{
| ||||||||
Codeblock | ||||||||
| ||||||||
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.Rechnung; /** * Abstract wrapper class for debitors (client billings, invoices, 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 class ReferenceWrapper extends AbstractReferenceWrapper { public ReferenceWrapper(final Modifiable reference) { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // // if 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 Lastschriften (z.B. die Rechnungsnummer) SEPA-Zahlungen * */ public String getDirectDebitReferencegetBic() { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // return ((RechnungSupplier)this.businessObject).getRechnungsnummergetBic(); return null; } /** * Liefert einden ReferenzdatumIBAN (bspw. das Rechnungsdatum) für SEPA-Zahlungen * */ public DateString getReferenceDategetIban() { // @replace! { Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // return ((RechnungSupplier)this.businessObject).getRechnungsdatumgetIban(); return null; } } |
4.
...
8.1.3
...
CreditTransferReferenceWrapper
Die Klasse ReferenceWrapper CreditTransferReferenceWrapper dient als Nuclet-Schnittstelle zum tatsächlich genutzten Referenz- Businessobjekt für Zahlungsreferenzen.
Anzupassen sind der Konstruktor der Klasse sowie die folgenden MethodenMit Zahlungsreferenzen sind jene Objekte gemeint, :
Methode | Funktion | Anpassung optional? |
---|---|---|
ReferenceWrapperCreditTransferReferenceWrapper() | Zuordnung des tatsächlich genutzten Businessobjektes | nein |
getAmountgetAcceptFirstIncomingPayment() | Liefert die Information darüber, ob die erste eingehende Zahlung den Statuswechsel m Referenzobjekt auslösen soll, d.h. den Statusübergang in Richtung "Bezahlt", "Beglichen", o.ä. | ja |
getBankTransactionRef() | Liefert alle zugeordneten Bankumsätze, indirekt über die Zwischenbusinessobjek "BankTransactionRef", d.h. es sollten alle Einträge des entsprechenden Unterformulars zurückgegeben werden. | nein |
getConditionsOfPayment() | Liefert die tatsächlich genutzten Zahlungsbedingungen als "gewrapptes" Objekt. | ja |
getDateOfInvoice() | Liefert das Zahlungsdatum. | ja |
getTotalAmountGross() | Liefert den Bruttogesamtbetrag des Referenzobjektes, d.h. den über eingehende Zahlung auszugleichenden Betrag. | nein |
setPaymentDate() | Setzt das "Payment Date" (Zahlungsdatum, Bezahlt am, o.ä.) im Referenzobjekt. | ja |
Tabelle 4.7.1.3: Anpassungen in ReferenceWrapper
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 | nein |
setSEPAPaymentInformationId() | setzt die SEPA-Zahlungsinformation nach erfolgtem SEPA-Export | nein |
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
package org.nuclet.mt940sepa.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.StatefulModifiable; import org.nuclos.api.provider.QueryProvider; import org.nuclet.mt940.BankTransactionRef; import org.nuclet.mt940.wrapper.ConditionsOfPaymentWrapper;businessobject.facade.Stateful; import org.nuclet.mt940sepa.wrapper.AbstractConditionsOfPaymentWrapperAbstractPaymentReferenceWrapper; // @replace! // // mit eigenem Code zu ersetzen, Beispiel: // // import import org.nuclet.businessnucletbusinesstemplate.ClientBillingSupplierBillingPosition; // import org.nuclet.businessnuclet.ConditionsOfPayment; /** * Konkrete Wrapper-Klasse für Referenzobjekte (Rechnungen, o.ä. Wrapper implementation for SEPA credit transfer references (invoices, due payments, etc.) * * @version 1.10 * @date 2030.0201.20142015 * @nuclet org.nuclet.MT940SEPA * @nucletversion 12.40.0 * @sincenucletversion 12.20.0 * @since 2030.0901.20132015 * * @author frank.lehmann@nuclos.de * */ public class ReferenceWrapperCreditTransferReferenceWrapper extends AbstractReferenceWrapperAbstractCreditTransferReferenceWrapper { public ReferenceWrapperCreditTransferReferenceWrapper(final BusinessObjectModifiable reference) { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // if (reference instanceof ClientBillingSupplierBillingPosition) { // this.businessObject = reference; // } } /** * Liefert /**die Datenbank-ID des übergeordneten Referenzobjektes * (also Liefertbspw. die Referenz-Nummer, anhand derer der Datensatz eindeutig ID der Rechnung, falls es sich bei den Zahlungsreferenzen um * zu identifizieren ist Rechnungspositionen handelt) * */ public StringLong getReferenceNumbergetReferenceId() { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // return ((ClientBillingSupplierBillingPosition)this.businessObject).getBillingNumbergetClientBillingId(); return null; } /** * Liefert die Information darüber, ob die erste eingehende Zahlung den Statuswechsel * im Referenzobjekt auslösen soll, d.h. den Statusübergang in Richtung "Bezahlt", den Zahlungsbetrag * "Beglichen", o.ä. */ public BooleanBigDecimal getAcceptFirstIncomingPaymentgetAmount() { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // return ((ClientBillingSupplierBillingPosition)this.businessObject).getAcceptFirstIncomingPaymentgetAmount(); return Boolean.FALSEnull; } /** * Liefert alle zugeordneten Bankumsätze, indirekt über die Zwischenentität "BankTransactionRef", public * d.h. es sollten alle Einträge des entsprechenden Unterformulars zurückgegeben werden. * */ public List<BankTransactionRef> getBankTransactionRef(void setSEPATransactionId(final Long lngSEPATransactionId) { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // ((ClientBilling)this.businessObject).getBankTransactionRef(); return null; } /** * Liefert die tatsächlich genutzten Zahlungsbedingungen als "gewrapptes" Objekt. * */ public AbstractConditionsOfPaymentWrapper getConditionsOfPayment() { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // final Long lngConditionsOfPaymentId = ((ClientBilling)this.businessObject).getConditionsOfPaymentId(); // final ConditionsOfPayment boConditionsOfPayment = QueryProvider.getById(ConditionsOfPayment.class, lngConditionsOfPaymentId); // // return new ConditionsOfPaymentWrapper(boConditionsOfPayment); return null; } /** * Liefert das Zahlungsdatum. * */ public Date getDateOfInvoice() { // @replaceSupplierBillingPosition)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.
Methode | Funktion | Anpassung optional? |
---|---|---|
DebitorReferenceWrapper | Zuordnung des tatsächlich genutzten Businessobjektes | nein |
getDebitorId() | liefert die Datenbank-ID des Debitoren | ja |
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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.
Methode | Funktion | Anpassung optional? |
---|---|---|
DebitorWrapper | Zuordnung des tatsächlich genutzten Businessobjektes | nein |
| ||
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 wurde | nein |
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 hat | nein |
getName() | liefert den Namen des Debitoren | nein |
getOriginalDebitorAccount() | liefert die letzte IBAN des Debitoren, falls sich diese seit dem letzten SEPA-Export geändet haben sollte | nein |
getSEPAMandateIdentification() | liefert die SEPA-Mandatskennung des Debitoren | nein |
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 hat | nein |
setOriginalDebitorAccount() | setzt die letzte IBAN des Debitoren, falls sich diese seit dem letzten SEPA-Export geändet haben sollte | nein |
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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, :
Methode | Funktion | Anpassung optional? |
---|---|---|
DirectDebitReferenceWrapper() | Zuordnung des tatsächlich genutzten Businessobjektes | nein |
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-Export | nein |
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 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
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: // // Beispiel: // // return ((ClientBillingClientBillingPosition)this.businessObject).getBillingDategetClientBillingId(); return null; } /** * Liefert den Bruttogesamtbetrag des Referenzobjektes, d.h. den über eingehende * Zahlung auszugleichenden Betrag. * */ Zahlungsbetrag * */ public BigDecimal getTotalAmountGrossgetAmount() { // @replace! Bitte bei Nuclet-Integration mit eigenem Code ersetzen! // // Beispiel: // // return ((ClientBillingClientBillingPosition)this.businessObject).getTotalAmountGrossgetAmount(); return BigDecimal.ZERO; } /** * Setzt das "Payment Date" (Zahlungsdatum, Bezahlt am, o.ä.) im Referenzobjekt. * * @param datPaymentDate * */ public void setPaymentDate(final Date datPaymentDate) { 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: // // ((ClientBillingClientBillingPosition)this.businessObject).setPaymentDatesetSEPAExportDate(datPaymentDatedatSEPAExportDate); } }} |