SEPA

Aus FreiBier
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Eine SEPA-Anbindung für iDempiere ist sehr wichtig. Hier möchte ich Informationen zu diesem Thema sammeln. = Daten-Konvertierung = Erst einmal ist die Fr…“)
 
Zeile 9: Zeile 9:
 
Als erstes extrahiere ich aus der Datenbank meiner alten Warenwirtschaft die Daten, die ich brauche. Dazu suche ich nach Kunden, die in diesem Jahr Umsätze hatten und die Abbuchung oder Bankeinzug vereinbart hatten. Das mache ich mit PgAdmin mit folgendem SQL-Code:
 
Als erstes extrahiere ich aus der Datenbank meiner alten Warenwirtschaft die Daten, die ich brauche. Dazu suche ich nach Kunden, die in diesem Jahr Umsätze hatten und die Abbuchung oder Bankeinzug vereinbart hatten. Das mache ich mit PgAdmin mit folgendem SQL-Code:
  
   set search_path = durst201308;
+
   set search_path = durst;
 
   WITH aktivekunden AS (
 
   WITH aktivekunden AS (
 
     SELECT
 
     SELECT
Zeile 29: Zeile 29:
 
     "BankName",
 
     "BankName",
 
     "Bankleitzahl",
 
     "Bankleitzahl",
     "Kontonummer"
+
     "Kontonummer",
 +
    "VertreterNr"
 
   FROM aktivekunden
 
   FROM aktivekunden
 
   INNER JOIN "Kunden1" ON (aktivekunden."NumKunde" = "Kunden1"."KundenNr")
 
   INNER JOIN "Kunden1" ON (aktivekunden."NumKunde" = "Kunden1"."KundenNr")
 
   WHERE "Zahlungsform">0
 
   WHERE "Zahlungsform">0
   ORDER BY "NumKunde"
+
   ORDER BY "VertreterNr","NumKunde"
  
 
Als Ergebnis erhalte ich eine Tabelle, die ich mit PgAdmin direkt als CSV-Datei speichern kann (ich wähle das Semikolon zum Spaltentrennen). Nun habe ich eine schöne übersichtliche Tabelle, habe aber meine Daten immer noch nicht konvertiert. Um das tzu machen habe ich drei Methoden gefunden:
 
Als Ergebnis erhalte ich eine Tabelle, die ich mit PgAdmin direkt als CSV-Datei speichern kann (ich wähle das Semikolon zum Spaltentrennen). Nun habe ich eine schöne übersichtliche Tabelle, habe aber meine Daten immer noch nicht konvertiert. Um das tzu machen habe ich drei Methoden gefunden:

Version vom 23. August 2013, 14:17 Uhr

Eine SEPA-Anbindung für iDempiere ist sehr wichtig. Hier möchte ich Informationen zu diesem Thema sammeln.


Daten-Konvertierung

Erst einmal ist die Frage, welche Kontodaten ich überhaupt habe und wie ich daraus SEPA-Daten ermittle. Ich mache das folgenderweise:

Als erstes extrahiere ich aus der Datenbank meiner alten Warenwirtschaft die Daten, die ich brauche. Dazu suche ich nach Kunden, die in diesem Jahr Umsätze hatten und die Abbuchung oder Bankeinzug vereinbart hatten. Das mache ich mit PgAdmin mit folgendem SQL-Code:

 set search_path = durst;
 WITH aktivekunden AS (
   SELECT
     "NumKunde"
   FROM "Wgst"
   WHERE joker ~ 'st13..'
   GROUP BY "NumKunde"
   ORDER BY "NumKunde"
 )
 SELECT
   "NumKunde",
   "Bezeichnung",
   "Name1",
   "Name2",
   "Strasse",
   "Plz",
   "Ort",
   "Zahlungsform",
   "BankName",
   "Bankleitzahl",
   "Kontonummer",
   "VertreterNr"
 FROM aktivekunden
 INNER JOIN "Kunden1" ON (aktivekunden."NumKunde" = "Kunden1"."KundenNr")
 WHERE "Zahlungsform">0
 ORDER BY "VertreterNr","NumKunde"

Als Ergebnis erhalte ich eine Tabelle, die ich mit PgAdmin direkt als CSV-Datei speichern kann (ich wähle das Semikolon zum Spaltentrennen). Nun habe ich eine schöne übersichtliche Tabelle, habe aber meine Daten immer noch nicht konvertiert. Um das tzu machen habe ich drei Methoden gefunden:

Wer mich kennt, weiss, das ich die letztere Lösung bevorzuge, weil Sie programmiert arbeitet und somit keine Tippfehler produziert (und weil ich kleine Hacks für sowas liebe ;-) ). Ich habe also das Python-Programm heruntergeladen und folgendes gemacht. Im Ergebnis erhalte ich eine weitere IBAN-Spalte in meiner Tabelle.

 perl -ne '($blz,$kto)=$_=~m/(?:[^;]+;){9}"(........)";"(\d+)( |")/; open(FILE,"python iban.py DE $blz $kto |"); ($iban)=<FILE>=~m/(DE.{20})/; close FILE; chomp; print "$_;$iban\n"' <KundenlisteMitEinzugsdaten.csv >Liste2.csv

Für echtes SEPA benötigt man nun noch die BICs. Da ich hierfür bereits die iDempiere-Datenbank gefüllt habe (Tabelle C_Bank), mache ich das auf folgende Weise. Das ist analog zum obigen Beispiel, aber in einem eigenen Schritt, um den "Einzeiler" nicht zu überladen. Wer mag, kann da auch ein Perl-Skript draus machen, das das alles zusammen und hübsch sortiert und formatiert macht.

 perl -ne '($blz)=$_=~m/(?:[^;]+;){9}"(........)";/; open(FILE,"psql -U adempiere -h idempiere.bayen.loc -d freibier2 -q -c \"SELECT swiftcode FROM adempiere.C_Bank WHERE routingno=${blz}::text\" -t |"); chomp($bic=<FILE>); close FILE; chomp; print "$_;$bic\n"' <Liste2.csv >Liste3.csv
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Navigation
Werkzeuge