function sepa_datei_erstellen($sammelbetrag = 1, $dateiname_msgid, $nutzungsart = 'MIETZAHLUNG', $pdf = 0) { $arr = $this->get_mandate_arr($nutzungsart); // echo '<pre>'; // print_r($mandate_arr); // die(); $anz = count($arr); $myKtoSepaSimple = new KtoSepaSimple(); $monat = date("m"); $monatsname = monat2name($monat); $jahr = date("Y"); $this->summe_frst = 0.0; $this->summe_rcur = 0.0; for ($a = 0; $a < $anz; $a++) { $name = substr($this->umlautundgross($arr[$a]['NAME']), 0, 35); // auf 70 Zeichen kürzen $iban = $arr[$a]['IBAN']; $bic = $arr[$a]['BIC']; $mandat_datum = $arr[$a]['M_UDATUM']; $m_ref = $arr[$a]['M_REFERENZ']; $kos_id = $arr[$a]['M_KOS_ID']; $kos_typ = $arr[$a]['M_KOS_TYP']; $einzugsart = $arr[$a]['EINZUGSART']; if ($nutzungsart == 'MIETZAHLUNG') { $mv = new mietvertraege(); $mv->get_mietvertrag_infos_aktuell($kos_id); $einheit_kn = $mv->einheit_kurzname; $mz = new miete(); $mz->mietkonto_berechnung($kos_id); if ($einzugsart == 'Aktuelles Saldo komplett') { if ($mz->erg < 0.0) { $summe_zu_ziehen = substr($mz->erg, 1); } else { $summe_zu_ziehen = 0.0; } } if ($einzugsart == 'Nur die Summe aus Vertrag') { $mk = new mietkonto(); $summe_zu_ziehen_arr = explode('|', $mk->summe_forderung_monatlich($kos_id, $monat, $jahr)); $summe_zu_ziehen = $summe_zu_ziehen_arr[0]; } if ($einzugsart == 'Ratenzahlung') { $mk = new mietkonto(); $summe_zu_ziehen_arr = explode('|', $mk->summe_forderung_monatlich($kos_id, $monat, $jahr)); $summe_raten = $mk->summe_rate_monatlich($kos_id, $monat, $jahr); $summe_zu_ziehen = $summe_zu_ziehen_arr[0] + $summe_raten; } /* * $mv = new mietvertraege(); * $mv->get_mietvertrag_infos_aktuell($kos_id); * * $mz = new miete(); * $mz->mietkonto_berechnung($kos_id); * * if($mz->erg<0.00){ * $mz->erg = substr($mz->erg,1); * } */ $kat = 'RENT'; $vzweck1 = substr($this->umlautundgross("Mieteinzug {$monatsname} {$jahr} für {$mv->einheit_kurzname} {$name}"), 0, 140); $PmtInfId = substr($this->umlautundgross($mv->objekt_kurzname . " LS-MIETEN {$monat}/{$jahr}"), -30); } if ($nutzungsart == 'HAUSGELD') { /* Berechnung */ $weg = new weg(); $einheit_id = $weg->get_einheit_id_from_eigentuemer($kos_id); $e = new einheit(); $e->get_einheit_info($einheit_id); // $weg->get_wg_info($monat, $jahr, 'Einheit', $einheit_id, 'Hausgeld'); $weg->get_eigentuemer_saldo($kos_id, $einheit_id); $einheit_kn = $e->einheit_kurzname; if ($einzugsart == 'Aktuelles Saldo komplett') { if ($weg->hg_erg < 0) { $summe_zu_ziehen = $weg->soll_aktuell; } else { $summe_zu_ziehen = 0.0; } } if ($einzugsart == 'Nur die Summe aus Vertrag') { $summe_zu_ziehen = $weg->soll_aktuell; } $vzweck1 = substr($this->umlautundgross("Hausgeld {$monatsname} {$jahr} für {$e->einheit_kurzname} {$name}"), 0, 140); $kat = ''; $PmtInfId = substr($e->objekt_kurzname . " HAUSGELDER {$monat}/{$jahr}", -30); } /* Gemeinsame vars */ $last_ident = substr($this->umlautundgross("MANDAT:{$m_ref}"), 0, 35); /* * SequenceType1Code Wertebereich: FRST (Erstlastschrift), RCUR (Folgelastschrift), OOFF (Einmallastschrift),FNAL (letzte Lastschrift) */ /* Feststellen ob Erstnutzung, Folgenutzung des Mandats */ if (!$this->check_mandat_is_used($m_ref, $iban) == true) { $abbuchung = 'FRST'; // $datum = date("2014-01-25");//PLUS TAGE 7 $o = new objekt(); $datum = $o->datum_plus_tage(date("Y-m-d"), 7); $this->summe_frst += $summe_zu_ziehen; } else { $abbuchung = 'RCUR'; // $datum = date("2014-01-20");//PLUS TAGE 3 $o = new objekt(); $datum = $o->datum_plus_tage(date("Y-m-d"), 3); $this->summe_rcur += $summe_zu_ziehen; } if ($summe_zu_ziehen > 0.0) { if ($pdf == 0) { $myKtoSepaSimple->Add($datum, $summe_zu_ziehen, $name, $iban, $bic, NULL, $kat, $last_ident, $vzweck1, $abbuchung, $m_ref, $mandat_datum); /* Eintragen als genutzt */ $this->mandat_seq_speichern($m_ref, $summe_zu_ziehen, $datum, $dateiname_msgid, $vzweck1, $iban); } else { if ($abbuchung == 'FRST') { $tab_frst[$a]['EINHEIT'] = $einheit_kn; $tab_frst[$a]['DATUM'] = date_mysql2german($datum); $tab_frst[$a]['BETRAG'] = nummer_punkt2komma_t($summe_zu_ziehen); $tab_frst[$a]['NAME'] = $name; $tab_frst[$a]['ABBUCHUNG'] = $abbuchung; $tab_frst[$a]['IBAN'] = $iban; $tab_frst[$a]['BIC'] = $bic; $tab_frst[$a]['KAT'] = $kat; $tab_frst[$a]['IDENT'] = $last_ident; $tab_frst[$a]['VZWECK'] = $vzweck1; $tab_frst[$a]['M_REF'] = $m_ref; $tab_frst[$a]['M_DATUM'] = $mandat_datum; } if ($abbuchung == 'RCUR') { $tab_rcur[$a]['EINHEIT'] = $einheit_kn; $tab_rcur[$a]['DATUM'] = date_mysql2german($datum); $tab_rcur[$a]['BETRAG'] = nummer_punkt2komma_t($summe_zu_ziehen); $tab_rcur[$a]['NAME'] = $name; $tab_rcur[$a]['ABBUCHUNG'] = $abbuchung; $tab_rcur[$a]['IBAN'] = $iban; $tab_rcur[$a]['BIC'] = $bic; $tab_rcur[$a]['KAT'] = $kat; $tab_rcur[$a]['IDENT'] = $last_ident; $tab_rcur[$a]['VZWECK'] = $vzweck1; $tab_rcur[$a]['M_REF'] = $m_ref; $tab_rcur[$a]['M_DATUM'] = $mandat_datum; } } } // $myKtoSepaSimple->Add('2014-02-01', 119.00, 'Kunde,Konrad', 'DE54100700000190001800', 'DEUTDEBBXXX', // NULL, NULL, '1111222111', 'Rechnung 111111', 'OOFF', 'KUN1', '2013-09-13'); } $gk = new geldkonto_info(); $gk->geld_konto_details($_SESSION['geldkonto_id']); $monat = date("m"); $jahr = date("Y"); $username = $_SESSION['username']; $seps = new sepa(); $seps->get_iban_bic($gk->kontonummer, $gk->blz); $d = new detail(); $glaeubiger_id = $d->finde_detail_inhalt('GELD_KONTEN', $_SESSION['geldkonto_id'], 'GLAEUBIGER_ID'); /* SEPA FILE */ if ($pdf == 0) { $xmlstring = $myKtoSepaSimple->GetXML('CORE', $dateiname_msgid, $PmtInfId, $this->umlautundgross($gk->konto_beguenstigter), $this->umlautundgross($gk->konto_beguenstigter), $seps->IBAN, $seps->BIC, $glaeubiger_id, $sammelbetrag); /* SEPA AUSGABE */ ob_clean(); header('Content-type: text/xml; charset=utf-8'); header("Content-disposition: attachment;filename={$dateiname_msgid}"); echo $xmlstring; die; } else { /* PDF */ $pdf = new Cezpdf('a4', 'landscape'); $bpdf = new b_pdf(); $bpdf->b_header($pdf, 'Partner', $_SESSION[partner_id], 'landscape', 'Helvetica.afm', 6); $this->footer_zahlungshinweis = $bpdf->zahlungshinweis; $pdf->ezStopPageNumbers(); // seitennummerirung beenden $p = new partners(); $p->get_partner_info($_SESSION['partner_id']); $datum = date("d.m.Y"); $cols = array('DATUM' => "Datum", 'EINHEIT' => "Einheit", 'BETRAG' => "Betrag", 'NAME' => "Name", 'M_REF' => "MANDAT", 'VZWECK' => "TEXT", 'ABBUCHUNG' => "RF", 'BIC' => "BIC", 'IBAN' => "IBAN"); /* * $tab_arr[$a]['IBAN'] = $iban; * $tab_arr[$a]['BIC'] = $bic; * $tab_arr[$a]['KAT'] = $kat; * $tab_arr[$a]['IDENT'] = $last_ident; */ if (is_array($tab_frst)) { $tab_frst = array_merge($tab_frst, array()); $anz_t = count($tab_frst); $tab_frst[$anz_t]['EINHEIT'] = "<b>SUMME</b>"; $tab_frst[$anz_t]['BETRAG'] = "<b>{$this->summe_frst}</b>"; $pdf->ezTable($tab_frst, $cols, "<b>Beigleitzettel " . $this->umlautundgross($gk->konto_beguenstigter) . " - ERSTABBUCHUNGEN</b>", array('rowGap' => 1.5, 'showLines' => 1, 'showHeadings' => 1, 'shaded' => 1, 'shadeCol' => array(0.9, 0.9, 0.9), 'titleFontSize' => 9, 'fontSize' => 7, 'xPos' => 50, 'xOrientation' => 'right', 'width' => 750, 'cols' => array('BETRAG' => array('justification' => 'right', 'width' => 50), 'NAME' => array('justification' => 'left', 'width' => 100), 'VZWECK' => array('justification' => 'left', 'width' => 200), 'DATUM' => array('justification' => 'left', 'width' => 50)))); } if (is_array($tab_rcur)) { $tab_rcur = array_merge($tab_rcur, array()); // echo '<pre>'; // print_r($tab_rcur); // print_r($rcur_arr_new); // die('RCIR'); $pdf->ezSetDy(-20); $anz_r = count($tab_rcur); $tab_rcur[$anz_r]['EINHEIT'] = "<b>SUMME</b>"; $tab_rcur[$anz_r]['BETRAG'] = "<b>{$this->summe_rcur}</b>"; $pdf->ezTable($tab_rcur, $cols, "<b>Beigleitzettel " . $this->umlautundgross($gk->konto_beguenstigter) . " - FOLGEABBUCHUNGEN</b>", array('rowGap' => 1.5, 'showLines' => 1, 'showHeadings' => 1, 'shaded' => 1, 'shadeCol' => array(0.9, 0.9, 0.9), 'titleFontSize' => 9, 'fontSize' => 7, 'xPos' => 50, 'xOrientation' => 'right', 'width' => 750, 'cols' => array('BETRAG' => array('justification' => 'right', 'width' => 50), 'NAME' => array('justification' => 'left', 'width' => 100), 'VZWECK' => array('justification' => 'left', 'width' => 140), 'DATUM' => array('justification' => 'left', 'width' => 50), 'G_KEY_A' => array('justification' => 'right', 'width' => 55), 'E_KEY_A' => array('justification' => 'right', 'width' => 50), 'E_BETRAG' => array('justification' => 'right', 'width' => 50)))); } $pdf->ezSetDy(-20); $uhrzeit = date("d.m.Y H:i:s"); $pdf->eztext(" Erstellt am: {$uhrzeit}", 10); ob_clean(); // ausgabepuffer leeren $pdf->ezStream(); } }