Deutsch
Forum

SEPA Basis Lastschrift

 

Thomas
Freier
Bevor ich das Rad neu erfinde, hat sich schon einer mit dem Thema befasst und es umgesetzt?
Nachdem ich nach langem Zaudern, unser Kassierer ist als echter DAU einfach nicht mit einer ext. Software zurecht gekommen, 2010 DTAUS in meinem Vereinsprogramm eingebaut hatte steht nun SEPA an, und ist im Moment noch ein Buch mit sieben Siegeln für mich.
Würde mich freuen, wenn jemand mit einem entsprechenden Script (*.inc) helfen könnte, um eine *.xml erzeugen zu können. Eine kleine Aufwandsentschädigung ist nicht ausgeschlossen, denn sonst ich würde es erneut mit einer ext. Software versuchen und der Kassierer muß eben tüchtig üben damit die Kasse nicht leer bleibt.
 
Gruß Thomas
Windows XP SP2, XProfan X2
26.02.2013  
 



Grüße!

Zwar nicht befasst und umgesetzt aber verstehe ich Dich richtig, dass Du letztendlich
nur eine XML erzeugen möchtest? Das wiederum sehe ich als wenig problematisch
an, habe auch schon xmls aus XProfan heraus erzeugt z.B. beim Leveleditor für OGL.

Hast Du mal solch XML parat dass man sehen kann wie Du sie gerne hättest?
 
27.02.2013  
 




Thomas
Freier
@iF, es geht im Wesentlichen um den Aufbau, bestehend aus Header, Datensätze und Abschlußzeilen. Beim Pflichtenheft der Bundesbank steige ich noch nicht durch. Vieles ist sicher speziell und für eine Basis-Lastschrift nicht erforderlich. Mit einem Testprogramm habe ich mal eine xml (bitte umbenennen) erstellt. Beispiel für Ansi zu UTF-8 ist hier ja vorhanden. Ansonsten würde ich wie bei DTAUS die Daten aus einer Gridbox nehmen und die Datei Zeile für Zeile schreiben (Print #2,Zeile$).

6 kB
Hochgeladen:27.02.2013
Ladeanzahl2
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
27.02.2013  
 



Tjo, pauschal sehe ich da 2 Wege -

entweder ein "Template" oder wir bauen solch Node-Tree-Klasse,
in die man quasi Äste einhängen kann mit a) Werten und b) Parametern.

Schade das XProfan (noch) keine assoziativen Arrays beherrscht,
damit ginge es superfix aber wenn Du Dich für das (mit sicherheut deutlich
einfachere) Template-Verfahren entscheidest dann sehe ich da auch eine
schnelle Abhilfe.

Ich schätze, dass in Deinen Werten und Parametern für Eigenschaften von
Ästen keine Zeichen vorkommen, die nicht auch per Ansi darstellbar sind,
weshalb wir quasi nur mit Ansi arbeiten müssten und nur im letzten Schritt
die ganze Textdatei nach UTF kodieren.

Von den einzelnen Positionen/ Ästen bzw. Eigenschaften und Parametern
habe ich keine Ahnung, also ich weiß nicht welche Struktur abverlang wird.

Gibt es dazu eine Dokumentation oder hast Du bereits ein File welches
wir zum Template machen könnten?
 
27.02.2013  
 




Thomas
Freier

Gibt es dazu eine Dokumentation oder hast Du bereits ein File welches
wir zum Template machen könnten?


Dokumentationen findet man einige
[...]  noch brauchbar?
[...] 
[...]  Beispiel ganz unten: Schema für SEPA-Lastschriften

Eine gültiges , schon gelaufenes Muster suche ich auch noch.
Hoffnung hatte ich auf den Abomanager von Torben Nissen gesetzt, der jetzt auch SEPA Lastschriften erstellen können soll. Ist mir nicht gelungen. Vielleicht sieht Torben hier bei Gelegenheit vorbei und kann uns erklären wie es gemacht wird.
Mir gelang es nicht. Der Menüpunkt ist immer deaktiviert.
 
Gruß Thomas
Windows XP SP2, XProfan X2
28.02.2013  
 



Ich habe Torben soeben einmal angeschrieben -
hoffentlich kann er uns etwas dazu mitteilen.
 
28.02.2013  
 




Thomas
Freier
Ja gut. Mein Planungsziel ist März 2014. Aber ich dachte, es ist jetzt die Zeit einmal Nachzufragen, ob sich ein Profaner schon damit beschäftigt oder es gar realisiert hat.
Die Möglichkeit ext. Software einzusetzen bleibt immer noch.
 
Gruß Thomas
Windows XP SP2, XProfan X2
28.02.2013  
 




Torben
Nissen
Hallo!
Es freut mich, dass ich Euch mal helfen kann!!! Heute Abend kann ich Euch einen Auszug aus meinem Quellcode schicken, der eine SEPA-Datei erstellen kann! Im Abomanager ist der Punkt SEPA-Datei erstellen deaktiviert, da das Programm davon ausgeht, dass die Bankdaten zunächst im BLZ-Format und "normaler" Kontonummer vorliegen!
Also legt zum Probieren einen Kunden an, gebt eine (gültige!) BLZ und Kontonummer ein. Dann geht Ihr auf "Programm" > "Wartung" und klickt auf IBAN / BIC berechnen. Danach könnt Ihr SEPA-Dateien erstellen. Unter Benutzerdaten müsst Ihr natürlich auch gültige Bankdaten hinterlegt haben! Als Gläubiger-ID könnt Ihr zum Probieren die ID DE98ZZZ09999999999 benutzen!
Ach ja, Ihr müsst natürlich einen Aboauftrag anlegen. Gebt mindestens eine fällige Rate ein. Zum Selektieren das entsprechende Fälligkeitsdatum eingeben!
 
28.02.2013  
 




Torben
Nissen
Ich nutze kurz die Mittagspause, um Euch den Quellcode zu posten (ist auf aufgrund der Schnelle nicht weiter kommentiert). Vielleicht hilft das trotzdem erstmal weiter:
KompilierenMarkierenSeparieren
'Eigentliche SEPA-Datein anlegen
Assign #1,($ProgDir+"\SEPA\Abo_"+datum$+".xml")
Rewrite #1
Append #1
Print #1,"<?xml version="+Chr$(34)+"1.0"+Chr$(34)+" encoding="+Chr$(34)+"UTF-8"+Chr$(34)+"?>"
Print #1,"<Document xmlns="+Chr$(34)+"urn:iso:std:iso:20022:tech:xsd:pain.008.002.02"+Chr$(34)+">"
Print #1,"<CstmrDrctDbtInitn>"
Print #1,"<GrpHdr>"
time_kennung$=@Time$(0)
Print #1,"<MsgId>Kennung-Msg"+@Date$(3)+"-"+time_kennung$+"</MsgId>"
'Erstellungsdatum der Datei berechnen
datei_date$=@Date$(3)
jahr$=@Left$(datei_date$,4)
monat$=@Mid$(datei_date$,5,2)
tag$=@Right$(datei_date$,2)
Print #1,"<CreDtTm>"+jahr$+"-"+monat$+"-"+tag$+"T"+@Time$(0)+":01</CreDtTm>"
Print #1,"<NbOfTxs>"+anzahl$+"</NbOfTxs>"
Print #1,"<CtrlSum>"+ergebnis$+"</CtrlSum>"
Print #1,"<InitgPty>"
Print #1,"<Nm>"+user_firma$ +"</Nm>"
Print #1,"</InitgPty>"
Print #1,"</GrpHdr>"
Print #1,"<PmtInf>"
Print #1,"<PmtInfId>Kennung-PmInf"+@Date$(3)+"-"+@Time$(0)+"-1</PmtInfId>"
Print #1,"<PmtMtd>DD</PmtMtd>"
Print #1,"<NbOfTxs>"+anzahl$+"</NbOfTxs>"
Print #1,"<CtrlSum>"+ergebnis$+"</CtrlSum>"
Print #1,"<PmtTpInf>"
Print #1,"<SvcLvl>"
Print #1,"<Cd>SEPA</Cd>"
Print #1,"</SvcLvl>"
Print #1,"<LclInstrm>"
Print #1,"<Cd>CORE</Cd>"
Print #1,"</LclInstrm>"
Print #1,"<SeqTp>RCUR</SeqTp>"
Print #1,"</PmtTpInf>"
'Ausführungstermin der Datei berechnen
termin_jahr$=@Right$(termin$,4)
termin_monat$=@Mid$(termin$,4,2)
termin_tag$=@Left$(termin$,2)
Print #1,"<ReqdColltnDt>"+termin_jahr$+"-"+termin_monat$+"-"+termin_tag$+"</ReqdColltnDt>"
Print #1,"<Cdtr>"
Print #1,"<Nm>"+user_firma$+"</Nm>"
Print #1,"</Cdtr>"
Print #1,"<CdtrAcct>"
Print #1,"<Id>"
Print #1,"<IBAN>"+user_iban$+"</IBAN>"
Print #1,"</Id>"
Print #1,"</CdtrAcct>"
Print #1,"<CdtrAgt>"
Print #1,"<FinInstnId>"
Print #1,"<BIC>"+user_bic$+"</BIC>"
Print #1,"</FinInstnId>"
Print #1,"</CdtrAgt>"
Print #1,"<ChrgBr>SLEV</ChrgBr>"
Print #1,"<CdtrSchmeId>"
Print #1,"<Id>"
Print #1,"<PrvtId>"
Print #1,"<Othr>"
id$ = @ReadIni$($ProgDir+"System.sfw","Header","SEPA-ID")
Print #1,"<Id>"+id$+"</Id>"
Print #1,"<SchmeNm>"
Print #1,"<Prtry>SEPA</Prtry>"
Print #1,"</SchmeNm>"
Print #1,"</Othr>"
Print #1,"</PrvtId>"
Print #1,"</Id>"
Print #1,"</CdtrSchmeId>"
' Ab hier beginnen die eigentlichen Kundenforderungen

WhileLoop 0, GetCount(Gridbox%)-1

    lfdnr%=lfdnr%+1
    lfdnr$=lfdnr%
    daten$=GetString$(GridBox%, &loop)
    nachname$=@Mid$(daten$,1,20)
    vorname$=@Mid$(daten$,32,20)
    bic$=@Mid$(daten$,63,11)
    iban$=@Mid$(daten$,75,34)
    betrag$=@Mid$(daten$,112,6)
    zweck$=@Mid$(daten$,119,30)
    mandat_id$=@Mid$(daten$,150,6)
    nachname$=@Trim$(nachname$)
    vorname$=@Trim$(vorname$)
    bic$=@Trim$(bic$)
    iban$=@Trim$(iban$)
    betrag$=@Trim$(betrag$)
    zweck$=@Trim$(zweck$)
    mandat_id$=@Trim$(mandat_id$)
    nachname$=@Translate$(nachname$,"Ü","Ue")
    nachname$=@Translate$(nachname$,"Ö","Oe")
    nachname$=@Translate$(nachname$,"Ä","Ae")
    vorname$=@Translate$(vorname$,"Ü","Ue")
    vorname$=@Translate$(vorname$,"Ö","Oe")
    vorname$=@Translate$(vorname$,"Ä","Ae")
    zweck$=@Translate$(zweck$,"Ü","Ue")
    zweck$=@Translate$(zweck$,"Ö","Oe")
    zweck$=@Translate$(zweck$,"Ä","Ae")
    zweck$=@Translate$(zweck$,"&","und")
    nachname$=@Translate$(nachname$,"ü","ue")
    nachname$=@Translate$(nachname$,"ö","oe")
    nachname$=@Translate$(nachname$,"ä","ae")
    nachname$=@Translate$(nachname$,"ß","ss")
    vorname$=@Translate$(vorname$,"ü","ue")
    vorname$=@Translate$(vorname$,"ö","oe")
    vorname$=@Translate$(vorname$,"ä","ae")
    vorname$=@Translate$(vorname$,"ß","ss")
    zweck$=@Translate$(zweck$,"ü","ue")
    zweck$=@Translate$(zweck$,"ö","oe")
    zweck$=@Translate$(zweck$,"ä","ae")
    zweck$=@Translate$(zweck$,"ß","ss")
    'nachname$=@Upper$(nachname$)
    'vorname$=@Upper$(vorname$)
    'zweck$=@Upper$(zweck$)
    Print #1,"<DrctDbtTxInf>"
    Print #1,"<PmtId>"
    'Datum formatieren
    kennung_date$=@Date$(0)
    kennung_date$=@Translate$(kennung_date$,".","")
    Print #1,"<EndToEndId>Kennung-EtE"+kennung_date$+"-"+@Time$(0)+"-"+lfdnr$+"</EndToEndId>"
    Print #1,"</PmtId>"
    Print #1,"<InstdAmt Ccy="+Chr$(34)+"EUR"+chr$(34)+">"+betrag$+"</InstdAmt>"
    Print #1,"<DrctDbtTx>"
    Print #1,"<MndtRltdInf>"
    Print #1,"<MndtId>"+mandat_id$+"</MndtId>"
    'Hier eventuell das Auftragsdatum? <<<<<<<<<<<<<<<<<<<<<<<<<<
    mandat_date$=@Date$(3)
    jahr_mandat$=@Left$(mandat_date$,4)
    monat_mandat$=@Mid$(mandat_date$,5,2)
    tag_mandat$=@Right$(mandat_date$,2)
    Print #1,"<DtOfSgntr>"+jahr_mandat$+"-"+monat_mandat$+"-"+tag_mandat$+"</DtOfSgntr>"
    Print #1,"</MndtRltdInf>"
    Print #1,"</DrctDbtTx>"
    Print #1,"<DbtrAgt>"
    Print #1,"<FinInstnId>"
    Print #1,"<BIC>"+bic$+"</BIC>"
    Print #1,"</FinInstnId>"
    Print #1,"</DbtrAgt>"
    Print #1,"<Dbtr>"
    Print #1,"<Nm>"+nachname$+", "+vorname$+"</Nm>"
    Print #1,"</Dbtr>"
    Print #1,"<DbtrAcct>"
    Print #1,"<Id>"
    Print #1,"<IBAN>"+iban$+"</IBAN>"
    Print #1,"</Id>"
    Print #1,"</DbtrAcct>"
    Print #1,"<RmtInf>"
    Print #1,"<Ustrd>"+zweck$+"</Ustrd>"
    Print #1,"</RmtInf>"
    Print #1,"</DrctDbtTxInf>"

EndWhile'WhileLoop 0, GetCount(Gridbox%)-1

Print #1,"</PmtInf>"
Print #1,"</CstmrDrctDbtInitn>"
Print #1,"</Document>"
close #1
'Ende Sepa-Datei Erstellung

Viele Grüße
Torben
 
28.02.2013  
 




Thomas
Freier
Moin Torben, da bin ich beim Testen wohl über BLZ/Konto gestolpert, weil ich gleich BIC/IBAN eingegeben hatte. Werde jetzt den beschriebenen Weg testen. Gesucht hatte ich noch eine Mandatsverwaltung (im Kundendatensatz), also min. Datum (ab wann gültig) und ob es sich um Erst-, bzw. Folgelastschrift handelt.

Oh, warst aber fix. DANKE! Werde es mal testen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
28.02.2013  
 




Torben
Nissen
Ich benutze als Mandat-ID die Kundennummer vom Abokunden und als Datum das Auftragsdatum.
 
28.02.2013  
 




Thomas
Freier
Habe einmal mit der Testversion von Sepasoft verglichen und nur ein Tag Differenz gefunden.
Torben, ich gehe einmal davon aus, dass schon erfolgreich SEPA-Lastschriften mit deinem Script ausgeführt worden sind.
Wenn ich das Merkblatt unserer S-Kasse sehe, so bleibt der Punkt Erst- und Folgelastschrift zur Zeit noch offen.

– SEPA-Lastschrifteinzugdatei erstellen?
– neues Datei-Format „xml“
– getrennt nach
Erst-Lastschrift / Folge-Lastschrift

Könnte auch sein, dass das von Bank zu Bank unterschiedlich behandelt wird.
Auf die Umwandlung von Ansi->UTF würde ich nicht verzichten um sicher zu sein, dass alle Zeichen ab 128 auch richtig eingepflegt werden.

 
Gruß Thomas
Windows XP SP2, XProfan X2
28.02.2013  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

27.232 Betrachtungen

Unbenanntvor 0 min.
Gast.081516.07.2024
Member 288304906.02.2019
Ernst26.03.2016
mene23.12.2015
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Thomas Freier (13x)
Torben Nissen (9x)
iF (3x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie