Lastschrifteinzug für invoices branch #67

Closed
opened 2023-09-26 13:01:35 +02:00 by flip · 10 comments
Owner
  • extra Button: Einzug über Lastschrift in Adminpanel
  • Output ist csv datei, die in Buchhaltungssystem hochgeladen werden kann.
  • Kto Nr. von Bestellgruppe
  • Aufpoppen von "IBAN eingeben"
  • Guthaben soll Wert beibehalten
  • soll auf rechnung stehen Zahlungsart: SEPA + IBAN

Einzugsermächtigung erstmal außen vor

Name, IBAN, Betrag,
Verwendungszweck (=> soll die Rechnungsnr. sein)

Format herausfinden (GLS)

Ablauf:
a) sie bestellen
b) Tante Wandel rechnet ab
c) Rechnung werden automatisch erzeugt und verschickt (nochmal checken)
d) Ansicht, welche Bestellungen schon per sepa eingezogen werden sind & aus welchen csv generiert werden soll
e) Tante Wandel lädt sich CSV Datei runter und spielt dies bei GLS Bank ein

- extra Button: Einzug über Lastschrift in Adminpanel - Output ist csv datei, die in Buchhaltungssystem hochgeladen werden kann. - Kto Nr. von Bestellgruppe - Aufpoppen von "IBAN eingeben" - Guthaben soll Wert beibehalten - soll auf rechnung stehen Zahlungsart: SEPA + IBAN Einzugsermächtigung erstmal außen vor Name, IBAN, Betrag, Verwendungszweck (=> soll die Rechnungsnr. sein) Format herausfinden (GLS) Ablauf: a) sie bestellen b) Tante Wandel rechnet ab c) Rechnung werden automatisch erzeugt und verschickt (nochmal checken) d) Ansicht, welche Bestellungen schon per sepa eingezogen werden sind & aus welchen csv generiert werden soll e) Tante Wandel lädt sich CSV Datei runter und spielt dies bei GLS Bank ein
Owner

hey das klingt ja spannend und cool dass du weiter an foodsoft arbeiten kannst!

Etwas fyi für dich, was ich so in letzter Zeit zu Finance krams im Foodsoft Kontext gesehen habe:

Vielleicht sollten wir zu dem Thema mal ne Wiki Seite eröffnen ...

Der Ansatz per Lastschrift zu bezahlen klingt auch spannend und lässt sich bestimmt irgw da mit einfügen.

hey das klingt ja spannend und cool dass du weiter an foodsoft arbeiten kannst! Etwas fyi für dich, was ich so in letzter Zeit zu Finance krams im Foodsoft Kontext gesehen habe: * Ich arbeite grade für die voko oosterwold an nem Plugin das Mollie als Online-Payment Provider Integriert (https://github.com/foodcoops/foodsoft/issues/1008). * Es gibt bereits einiges an Code für Bank Verbindungen der soweit ich weiß von den Österreichischen Coops verwendet wird um Rechnungen auf Überweisungseingänge mit passendem Betreff zu mappen. Das ist aber leider garnicht dokumentiert und so wirklich blicken tu ich den Funktionsumfang auch noch nicht (z.B. https://github.com/foodcoops/foodsoft/blob/master/app/controllers/finance/financial_links_controller.rb) * Es gibt im Adams Branch ein [PayOrder](https://github.com/foodcoop-adam/foodsoft/tree/beta/lib/foodsoft_payorder) Plugin, das Usern ermöglicht nach der Bestellung direkt zu bezahlen und damit mehr wie ein "Shop" funktioniert (auch in Verbindung mit foodcoopshop) Vielleicht sollten wir zu dem Thema mal ne Wiki Seite eröffnen ... Der Ansatz per Lastschrift zu bezahlen klingt auch spannend und lässt sich bestimmt irgw da mit einfügen.
Author
Owner

Plan ist geschmiedet, um kein komplett eigenes system zu bauen:
Es gibt FinancialTransactions, die angelegt werden,wenn eine Bestellung abgerechnet wird. Dann werden die Guthabenkonten der Mitglieder belastet.

  • In Bestellgruppe user auswählen,damit iban verknüpf werden kann.
  • In Admineinstellungen bezahlung per SEPA einstellen.
  • FinancialTransactionType SEPA mit Klasse Lastschrift und Einstellung Für Kontostand ignorieren erzeugen
  • bei abrechnung diesen typ benutzen und FinancialTransaction speichern
  • in Bestellung abrechnen soll für eine Bestellung und für eine Bestellgruppenbestellung ein indicator existieren, ob sie eingezogen wurde.
  • in Bestellung abrechnen soll eine Sammelüberweisung csv und eine Einzelüberweisung csv ezeugbar sein, die die FinancialTransaction benutzt
    - [ ] Migration IBAN für Bestellgruppen
    - [ ] Fehler wenn IBAN nicht gesetzt (Für Foodcoop und Bestellgruppe)
Plan ist geschmiedet, um kein komplett eigenes system zu bauen: Es gibt FinancialTransactions, die angelegt werden,wenn eine Bestellung abgerechnet wird. Dann werden die Guthabenkonten der Mitglieder belastet. - [x] In Bestellgruppe user auswählen,damit iban verknüpf werden kann. - [x] In Admineinstellungen bezahlung per SEPA einstellen. - [x] FinancialTransactionType SEPA mit Klasse Lastschrift und Einstellung Für Kontostand ignorieren erzeugen - [x] bei abrechnung diesen typ benutzen und FinancialTransaction speichern - [ ] in Bestellung abrechnen soll für eine Bestellung und für eine Bestellgruppenbestellung ein indicator existieren, ob sie eingezogen wurde. - [ ] in Bestellung abrechnen soll eine Sammelüberweisung csv und eine Einzelüberweisung csv ezeugbar sein, die die FinancialTransaction benutzt - [ ] Migration IBAN für Bestellgruppen - [ ] Fehler wenn IBAN nicht gesetzt (Für Foodcoop und Bestellgruppe)
Owner

klingt gut, sobald ich mit diesem PR weiter komme, bekommen die FT auch noch ein paar mehr Felder (payment_state usw.) und das Amount kann nil sein. Vielleicht auch interessant für dich

klingt gut, sobald ich mit [diesem PR](https://github.com/foodcoops/foodsoft/pull/1031/commits/70944a752c9146ac0357904dd1e6327223f3b775) weiter komme, bekommen die FT auch noch ein paar mehr Felder (payment_state usw.) und das Amount kann `nil` sein. Vielleicht auch interessant für dich
Owner

noch ein paar cent von mir:
Ich kann mir vorstellen das es Probleme machen könnte die IBAN an der Bestellgruppe zu haben. z.B. können einfache User ihre Bestellgruppe garnicht bearbeiten und wahrscheinlich brauchst du ja zu der IBAN auch wieder einen Kontoinhaber?

Für User gibt es schon ein IBAN Feld, dass per Config aktiviert werden kann. Ich sehe die Schwierigkeit dass ja irgw ermittelt werden muss wessen Konto aus der Ordergroup belastet werden muss, aber vllt könnte aus dem vorhandenem contact_person feld eine relation auf user gemacht werden und standardmäßig dessen Konto belastet werden?

War nur noch ein Gedanke, steht dir natürlich frei das in dem Plugin so umzusetzten wie du es für sinnvoll hältst ;)

noch ein paar cent von mir: Ich kann mir vorstellen das es Probleme machen könnte die IBAN an der Bestellgruppe zu haben. z.B. können einfache User ihre Bestellgruppe garnicht bearbeiten und wahrscheinlich brauchst du ja zu der IBAN auch wieder einen Kontoinhaber? Für User gibt es schon ein IBAN Feld, dass per Config aktiviert werden kann. Ich sehe die Schwierigkeit dass ja irgw ermittelt werden muss wessen Konto aus der Ordergroup belastet werden muss, aber vllt könnte aus dem vorhandenem contact_person feld eine relation auf user gemacht werden und standardmäßig dessen Konto belastet werden? War nur noch ein Gedanke, steht dir natürlich frei das in dem Plugin so umzusetzten wie du es für sinnvoll hältst ;)
Author
Owner

Beim über die Spezifikationfliegen ist folgendes aufgefallen:
Wir wollen eine

'CORE' ("Basis-Lastschrift")
&
entweder 'FRST' ("Erst-Lastschrift")
oder: 'RCUR' ("Folge-Lastschrift")

Wie soll das aussehen?

Fehlende Datenbankfelder

  • Mandatsreferenz (muss für jede Bestellgruppe von admin eingegeben werden) -> hängt an Bestellgruppe oder User?
  • Gläubiger-Identifikationsnummer (nur einmal benötigt??) -> hängt an Foodsoft??
  • Ende-zu-Ende Referenz: "NOTPROVIDED" möglich? -> kommt aus translation .yml
  • BIC (Bestellgruppe + Foodcoop) -> hängt an Foodcoop, hängt an Person
  • Datum, zu dem das Mandat unterschrieben wurde. hängt an Bestellgruppe oder an Person???
  • Fälligkeitsdatum -> automatisch? Wie lange?

Dann ist notwendig zu tracken, ob es sich um eine Erstlastschrift, eine Einmalige (nicht wirklich relevant) oder eine Folgelastschrift handelt.

Streng regulierte spezifikation. Muss auf jeden Fall überprüft werden, ob das klappt.

Zu klären:
Was ist EBICS, benötigen wir das?
-> Datenfernübertragung

Ist es möglich die xml bei der Bank hochzuladen oder muss sie elektronisch übermittelt werden (EBICS)?
Sind Batch Lastschriften möglich?

Ressourcen:
https://www.formatpruefer.de/blformat/login/*******
https://github.com/salesking/sepa_king

Was bedeuten die pain Formate?

pain.008.003.02. gemäß Version 2.7 der Anlage 3 des DFÜ-Abkommens) werden zum 30.11.2022 abgekündigt.

Beim über die Spezifikationfliegen ist folgendes aufgefallen: Wir wollen eine > 'CORE' ("Basis-Lastschrift") > & > entweder 'FRST' ("Erst-Lastschrift") > oder: 'RCUR' ("Folge-Lastschrift") **Wie soll das aussehen?** Fehlende Datenbankfelder - Mandatsreferenz (muss für jede Bestellgruppe von admin eingegeben werden) -> _hängt an Bestellgruppe oder User?_ - Gläubiger-Identifikationsnummer (nur einmal benötigt??) -> _hängt an Foodsoft??_ - Ende-zu-Ende Referenz: "NOTPROVIDED" möglich? -> _kommt aus translation .yml_ - BIC (Bestellgruppe + Foodcoop) -> _hängt an Foodcoop, hängt an Person_ - Datum, zu dem das Mandat unterschrieben wurde. _hängt an Bestellgruppe oder an Person???_ - Fälligkeitsdatum -> _automatisch? Wie lange?_ Dann ist notwendig zu tracken, ob es sich um eine Erstlastschrift, eine Einmalige (nicht wirklich relevant) oder eine Folgelastschrift handelt. Streng regulierte spezifikation. Muss auf jeden Fall überprüft werden, ob das klappt. Zu klären: Was ist EBICS, benötigen wir das? -> Datenfernübertragung Ist es möglich die xml bei der Bank hochzuladen oder muss sie elektronisch übermittelt werden (EBICS)? Sind Batch Lastschriften möglich? Ressourcen: https://www.formatpruefer.de/blformat/login/******* https://github.com/salesking/sepa_king Was bedeuten die pain Formate? > pain.008.003.02. gemäß Version 2.7 der Anlage 3 des DFÜ-Abkommens) werden zum 30.11.2022 abgekündigt.
flip added spent time 2023-11-07 17:17:04 +01:00
2 hours 50 minutes
Author
Owner

Gem kann:
Direct Debit Initiation (pain.008.003.02, pain.008.002.02 and pain.008.001.02)

Davon ist nur noch pain.008.001.02 gültig:
https://www.volksbank-pur.de/firmenkunden/konto-zahlungsverkehr/service/pain.html

Strukturierte Adresse:
https://www.ebics.de/de/aktuelles#:~:text=Insbesondere%20wurden%20die%20Formate%20des,Sie%20auch%20die%20englische%20%C3%9Cbersetzung.

Gem kann: Direct Debit Initiation (pain.008.003.02, pain.008.002.02 and pain.008.001.02) Davon ist **nur noch** pain.008.001.02 gültig: https://www.volksbank-pur.de/firmenkunden/konto-zahlungsverkehr/service/pain.html Strukturierte Adresse: https://www.ebics.de/de/aktuelles#:~:text=Insbesondere%20wurden%20die%20Formate%20des,Sie%20auch%20die%20englische%20%C3%9Cbersetzung.
flip added spent time 2023-11-10 16:31:49 +01:00
4 hours

Wie soll das aussehen?

Fehlende Datenbankfelder

  • Mandatsreferenz (muss für jede Bestellgruppe von admin eingegeben werden) -> hängt an Bestellgruppe oder User?
    -> wo wird den die IBAN eingegeben? Bei der Bestellgruppe oder User? Hauptsache wir haben alles relewante dazu entweder bei der Bestellgruppe oder dem User. Wobei das Unterschriebene Mandat muss ja eine natürliche oder juritische Person sein. Daher wäre mein Vorschlag der User. :)
  • Gläubiger-Identifikationsnummer (nur einmal benötigt??) -> hängt an Foodsoft??
    -> die schicke ich dir zu. Die wird einmalig beantragt und gilt dann die ganze Zeit für alles.
  • Ende-zu-Ende Referenz: "NOTPROVIDED" möglich? -> kommt aus translation .yml
    -> verstehe die Frage leider leider nicht? ;)
  • BIC (Bestellgruppe + Foodcoop) -> hängt an Foodcoop, hängt an Person
    -> siehe oben, Vorschlag wäre Person
  • Datum, zu dem das Mandat unterschrieben wurde. hängt an Bestellgruppe oder an Person???
    -> siehe oben, Vorschlag wäre Person
  • Fälligkeitsdatum -> automatisch? Wie lange?
    -> automatisch zwei Tage sobald Punkt d) "Ansicht, welche Bestellungen schon per sepa eingezogen werden sind & aus welchen csv generiert werden soll" ausgeführt wird.
> **Wie soll das aussehen?** > > Fehlende Datenbankfelder > - Mandatsreferenz (muss für jede Bestellgruppe von admin eingegeben werden) -> _hängt an Bestellgruppe oder User?_ -> wo wird den die IBAN eingegeben? Bei der Bestellgruppe oder User? Hauptsache wir haben alles relewante dazu entweder bei der Bestellgruppe oder dem User. Wobei das Unterschriebene Mandat muss ja eine natürliche oder juritische Person sein. Daher wäre mein Vorschlag der User. :) > - Gläubiger-Identifikationsnummer (nur einmal benötigt??) -> _hängt an Foodsoft??_ -> die schicke ich dir zu. Die wird einmalig beantragt und gilt dann die ganze Zeit für alles. > - Ende-zu-Ende Referenz: "NOTPROVIDED" möglich? -> _kommt aus translation .yml_ -> verstehe die Frage leider leider nicht? ;) > - BIC (Bestellgruppe + Foodcoop) -> _hängt an Foodcoop, hängt an Person_ -> siehe oben, Vorschlag wäre Person > - Datum, zu dem das Mandat unterschrieben wurde. _hängt an Bestellgruppe oder an Person???_ -> siehe oben, Vorschlag wäre Person > - Fälligkeitsdatum -> _automatisch? Wie lange?_ -> automatisch zwei Tage sobald Punkt d) "Ansicht, welche Bestellungen schon per sepa eingezogen werden sind & aus welchen csv generiert werden soll" ausgeführt wird.
flip added spent time 2023-11-16 14:40:13 +01:00
4 hours 30 minutes
flip added spent time 2023-11-17 18:17:03 +01:00
4 hours
Author
Owner

Admin Einstellungen

Es gibt in den Administration >> Enstellungen >> Finanzen weitere Konfigurationen, die wichtig für die Anwendung sind:

Screenshot from 2023-11-18 16-12-01.png

Mindestkontostand ignorieren ist notwendig, damit Bestellgruppen ihre Bestellungen speichern können, auch wenn sie das Konto "überziehen" würden

Zahlungsart ist ein Dropdown aus den vorhandenen Finanztransaktionsklassen.
Es ist notwendig eine Finanztransaktionsklasse anzulegen und "für Kontostand ignorieren auszuwählen".

Transaktionsklasse erstellen

Screenshot from 2023-11-19 12-09-27.png
Screenshot from 2023-11-18 16-12-01.png
Diese muss dann in nach einer Bestellung in der Abrechnung auch als Abrechnungsmodalität gesetzt werden.

Bestellgruppen

Eine Bestellgruppe hat nun eine SEPA-Kontoinhaber*in.
Diese kann aus den vorhandenen Mitgliedern gewählt werden. Die BIC und IBAN werden, so das Mitglied sie eingetragen hat, automatisch in das Form eingefügt:
Screenshot from 2023-11-19 12-03-45.png

UI Bestellung abrechnen

Die UI in Bestellung abrechnen hat sich etwas verändert, damit die Seite nicht zu überladen ist:

Screenshot from 2023-11-19 12-12-58.png

Wenn eine .xml für eine Bestellgruppe heruntergeladen wird, wird sepa exportiert automatisch markiert.

Es wird pain.008.001.02 verwendet.

### Admin Einstellungen Es gibt in den Administration >> Enstellungen >> Finanzen weitere Konfigurationen, die wichtig für die Anwendung sind: ![Screenshot from 2023-11-18 16-12-01.png](/attachments/76288233-2eaa-49f9-9206-f5c3bd89e0ed) **Mindestkontostand ignorieren** ist notwendig, damit Bestellgruppen ihre Bestellungen speichern können, auch wenn sie das Konto "überziehen" würden **Zahlungsart** ist ein Dropdown aus den vorhandenen Finanztransaktionsklassen. Es ist notwendig eine Finanztransaktionsklasse anzulegen und "für Kontostand ignorieren auszuwählen". ### Transaktionsklasse erstellen ![Screenshot from 2023-11-19 12-09-27.png](/attachments/f61b9336-9115-4794-9efd-12d04c35ae56) ![Screenshot from 2023-11-18 16-12-01.png](/attachments/3631ce70-5afc-42a0-88fc-328359c8de33) Diese muss dann in nach einer Bestellung in der Abrechnung auch als Abrechnungsmodalität gesetzt werden. ### Bestellgruppen Eine Bestellgruppe hat nun eine SEPA-Kontoinhaber*in. Diese kann aus den vorhandenen Mitgliedern gewählt werden. Die BIC und IBAN werden, so das Mitglied sie eingetragen hat, automatisch in das Form eingefügt: ![Screenshot from 2023-11-19 12-03-45.png](/attachments/43a06954-1715-4fb9-9bbf-e75378afc763) ### UI Bestellung abrechnen Die UI in Bestellung abrechnen hat sich etwas verändert, damit die Seite nicht zu überladen ist: ![Screenshot from 2023-11-19 12-12-58.png](/attachments/e208f319-2987-4a84-9bdb-80c4b8be25eb) Wenn eine .xml für eine Bestellgruppe heruntergeladen wird, wird sepa exportiert automatisch markiert. Es wird pain.008.001.02 verwendet.
flip closed this issue 2023-11-19 12:16:01 +01:00
flip added spent time 2023-11-19 12:23:44 +01:00
30 minutes
flip added spent time 2023-11-19 12:23:45 +01:00
30 minutes
Author
Owner

Leerzeichen wird in Bestellgruppe bearbeiten beimSpeichern von Iban und Bic automatisch entfernt
Ajax request statt html request für download aller XML
Ajax request lädt nun auch die tabelle nach einem XML Download neu (Zeigt an SEPA exportiert)
Kleinere Translation fixxes
Leerzeichen in IBAN und BIC in FoodcoopConfig werden beim Erzeugen von xml entfernt
Fehlermeldungen werden nun durchgereicht

Neuestes image:
viehlieb/foodsoft:2023-11-28

Leerzeichen wird in Bestellgruppe bearbeiten beimSpeichern von Iban und Bic automatisch entfernt Ajax request statt html request für download aller XML Ajax request lädt nun auch die tabelle nach einem XML Download neu (Zeigt an SEPA exportiert) Kleinere Translation fixxes Leerzeichen in IBAN und BIC in FoodcoopConfig werden beim Erzeugen von xml entfernt Fehlermeldungen werden nun durchgereicht Neuestes image: viehlieb/foodsoft:2023-11-28
flip added spent time 2023-11-28 16:47:59 +01:00
1 hour 45 minutes
Author
Owner

todo:
lösung für deface fnden. deface kann nicht mit embedded javascript umgehen, da erb converter die klammern nicht versteht...

todo: lösung für deface fnden. deface kann nicht mit embedded javascript umgehen, da erb converter die klammern nicht versteht...
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Total time spent: 18 hours 5 minutes
flip
18 hours 5 minutes
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Foodsoft/foodsoft#67
No description provided.