Пример #1
0
 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();
     }
 }