private function admin_createSepa($sepaRequests) { //Für Sparkasse muss der Request kompatibel zu pain 008.002.02 (Sammellastschriften) sein // Erzeugen einer neuen Instanz $creator = new SepaXmlCreator(); /* * Mit den Account-Werten wird das eigene Konto beschrieben * erster Parameter = Name * zweiter Parameter = IBAN * dritter Paramenter = BIC */ $creator->setAccountValues('Ringelsoeckchen e.V.', 'DE34370502990138274368', 'COKSDE 33'); /* * Setzen Sie von der Bundesbank übermittelte Gläubiger-ID */ $creator->setGlaeubigerId("DE90BEI00001201537"); /* * Mit Hilfe eines Ausführungs-Offsets können Sie definieren, wann die Lastchrift gezogen wird. Die Anzahl * der übergebenen Tage wird auf den aktuellen Kalendertag addiert * * Beispiel 1 * heute = 1. Juni 2013 * Offset nicht übergeben * Ausführung -> Heute bzw. nächst möglich * * Beispiel 1 * heute = 1. Juni 2013 * Offset 3 * Ausführung -> 4. Juni 2013 */ $creator->setAusfuehrungOffset(0); $this->Fee->Member->recursive = -3; foreach ($sepaRequests as $sepaRequest) { //Get member information $member = $this->Fee->Member->find('first', array('conditions' => array('id' => $sepaRequest['member_id']))); //Get yearly fee information $yearly_fee = $this->Fee->YearlyFee->find('first', array('conditions' => array('year' => $sepaRequest['year']))); $sepamandate = $this->Fee->Member->Sepamandate->find('first', array('conditions' => array('member_id' => $sepaRequest['member_id'], 'valid' => 1))); if (!$sepamandate) { throw new NotFoundException('Could not find Sepamandate for ' . $member['Member']['full_name']); } // Erzeugung einer neuen Buchungssatz $buchung = new SepaBuchung(); // gewünschter Einzugsbetrag $buchung->setBetrag($yearly_fee['YearlyFee']['fee']); // gewünschte End2End Referenz (OPTIONAL) $buchung->setEnd2End('BEI' . $sepaRequest['year'] . '-' . $member['Member']['id']); // BIC des Zahlungspflichtigen Institutes $buchung->setBic($sepamandate['Sepamandate']['bic']); // Name des Zahlungspflichtigen $buchung->setName(htmlspecialchars($sepamandate['Sepamandate']['account_holder'])); // IBAN des Zahlungspflichtigen $buchung->setIban($sepamandate['Sepamandate']['iban']); // gewünschter Verwendungszweck (OPTIONAL) $buchung->setVerwendungszweck('Ringelsoeckche Beitrag ' . $sepaRequest['year'] . ' ' . $member['Member']['full_name']); // Referenz auf das vom Kunden erteilte Lastschriftmandat // ID = MANDAT0001 // Erteilung durch Kunden am 20. Mai 2013 // False = seit letzter Lastschrift wurde am Mandat nichts geändert $buchung->setMandat($sepamandate['Sepamandate']['mandate_reference'], $sepamandate['Sepamandate']['mandate_date'], false); // Buchung zur Liste hinzufügen $creator->addBuchung($buchung); debug($buchung); } /*$file = new File(TMP.'sepa.xml', true); // Nun kann die XML-Datei über den Aufruf der entsprechenden Methode generiert werden $sepaOutput = $creator->generateBasislastschriftXml(); $file->write($sepaOutput); $file->close(); $this->viewClass = 'Media'; $params = array( 'id' => 'sepa.xml', 'name' => 'Mitgliedsbeitraege'.CakeTime::format('Y-m-d', time()), 'download' => true, 'extension' => 'xml', 'path' => TMP ); $this->set($params); */ }
$buchung = new SepaBuchung(); // gewünschter Einzugsbetrag $buchung->setBetrag(10); // gewünschte End2End Referenz (OPTIONAL) $buchung->setEnd2End('ID-00002'); // BIC des Zahlungspflichtigen Institutes $buchung->setBic('EMPFAENGERBIC'); // Name des Zahlungspflichtigen $buchung->setName('Mustermann, Max'); // IBAN des Zahlungspflichtigen $buchung->setIban('DE1234566..'); // gewünschter Verwendungszweck (OPTIONAL) $buchung->setVerwendungszweck('Test Buchung'); // Referenz auf das vom Kunden erteilte Lastschriftmandat // ID = MANDAT0001 // Erteilung durch Kunden am 20. Mai 2013 // False = seit letzter Lastschrift wurde am Mandat nichts geändert $buchung->setMandat("MANDAT0001", "2013-05-20", false); // Buchung zur Liste hinzufügen $creator->addBuchung($buchung); // Dies kann beliebig oft wiederholt werden ... $buchung = new SepaBuchung(); $buchung->setBetrag(7); $buchung->setBic('EMPFAENGERBIC'); $buchung->setName('Mustermann, Max'); $buchung->setIban('DE1234566..'); // weitere felder nicht übergeben = heutige erteilung $buchung->setMandat("MANDAT0002"); $creator->addBuchung($buchung); // Nun kann die XML-Datei über den Aufruf der entsprechenden Methode generiert werden echo $creator->generateBasislastschriftXml();
} else { if ($recordObj['studentennachweis_vorhanden'] === 'j') { //Datensatz in die csv-Datei mit den Studenten speichern fputcsv($output_students, $recordObj); } else { //Datensatz in die csv-Datei mit den Zahlern speichern fputcsv($output_payment, $recordObj); // Erzeugung eines neuen Buchungssatzez $buchung = new SepaBuchung(); $buchung->setBetrag($recordObj['beitrag']); // Einzugsbetrag $buchung->setBic($recordObj['bic']); // BIC des Zahlungspflichtigen Institutes $buchung->setName($recordObj['kontoinhaber']); // Name des Zahlungspflichtigen $buchung->setIban($recordObj['iban']); // IBAN des Zahlungspflichtigen $buchung->setVerwendungszweck('Mitgliedsbeitrag ' . $jahr . ' Absolventen- und Förderverein MPI Uni Bayreuth e.V.'); // Verwendungszweck // Referenz auf das vom Kunden erteilte Lastschriftmandat // ID = Mitglieds-ID // Erteilung = Beitrittsdatum // False = seit letzter Lastschrift wurde am Mandat nichts geändert $buchung->setMandat($recordObj['mid'], $recordObj['eintrittsdatum'], false); // Buchung zur Liste hinzufügen $creator->addBuchung($buchung); } } } } fclose($output_inkorrekt);