function auszugtest3($et_id, $von = null, $bis = null, $saldo_et = '0.00') { $this->saldo_et = $saldo_et; $weg = new weg(); $einheit_id = $weg->get_einheit_id_from_eigentuemer($et_id); // $e = new einheit(); // $e->get_einheit_info($einheit_id); $weg_et = new weg(); $weg_et->get_eigentumer_id_infos4($et_id); // echo '<pre>'; // print_r($e); $gk = new geldkonto_info(); $gk->geld_konto_ermitteln('Objekt', $weg_et->objekt_id); /* OBJEKTDATEN */ /* Garantiemonate Objekt */ $d = new detail(); $garantie_mon_obj = $d->finde_detail_inhalt('Objekt', $weg_et->objekt_id, 'INS-Garantiemonate'); if (!$garantie_mon_obj) { $garantie_mon_obj = 0; } /* Garantiemonate Objekt */ $d = new detail(); $garantie_mon_et = $d->finde_detail_inhalt('Eigentuemer', $et_id, 'INS-ET-Garantiemonate'); if (!isset($garantie_mon_et)) { $garantie_mon_et = $garantie_mon_obj; } if ($garantie_mon_et == 0) { $garantie = 0; } if ($garantie_mon_et != 0) { $garantie = $garantie_mon_et; } /* ET DATEN */ if ($weg->eigentuemer_bis == '0000-00-00') { $weg->eigentuemer_bis = date("Y-m-d"); } if ($von == null) { $von = $weg->eigentuemer_von; } if ($bis == null) { $bis = $weg->eigentuemer_bis; } /* MIETVERTRAEGE ZEITRAUM ET */ $mv_arr = $this->get_mv_et_zeitraum_arr($einheit_id, $von, $bis); $anz_mv = count($mv_arr); if (is_array($mv_arr)) { // echo '<pre>'; // print_r($mv_arr); } else { echo "NO MV - NUR KOSTEN"; } $zeit_arr = $this->monats_array($von, $bis); // print_r($zeit_arr); // die(); /* Durchlauf alle Monate */ if (is_array($zeit_arr)) { $anz_m = count($zeit_arr); for ($m = 0; $m < $anz_m; $m++) { /* Garantiemonat */ if ($m < $garantie) { $zeit_arr[$m]['GAR_MON'] = 'JA'; } else { $zeit_arr[$m]['GAR_MON'] = 'NEIN'; } /* Saldo Vormonat */ $this->saldo_et_vm = $this->saldo_et; $zeit_arr[$m]['SALDO_VM'] = $this->saldo_et_vm; $monat = $zeit_arr[$m]['MONAT']; $jahr = $zeit_arr[$m]['JAHR']; $m_von = "{$jahr}-{$monat}-01"; $ltm = letzter_tag_im_monat($monat, $jahr); $m_bis = "{$jahr}-{$monat}-{$ltm}"; $zeit_arr[$m]['MIETER_M_SOLL'] = 0; $zeit_arr[$m]['MIETER_ERG_SUM'] = 0; $zeit_arr[$m]['SUM_MIETER_ZB'] = 0; $zeit_arr[$m]['SUM_MIETER_NK'] = 0; $zeit_arr[$m]['SUM_ET_BUCHUNGEN'] = 0; $zeit_arr[$m]['SUM_EINHEIT_BUCHUNGEN'] = 0; /* Mieteinnahmen */ for ($a = 0; $a < $anz_mv; $a++) { $mv_id = $mv_arr[$a]['MIETVERTRAG_ID']; $mv = new mietvertraege(); $mv->get_mietvertrag_infos_aktuell($mv_id); $mk = new mietkonto(); // $mk->kaltmiete_monatlich($mv_id,$monat,$jahr); $mk->kaltmiete_monatlich_ink_vz($mv_id, $monat, $jahr); $mz = new miete(); $m_arr = $mz->get_monats_ergebnis($mv_id, $monat, $jahr); $m_soll_arr = explode('|', $m_arr['soll']); if (isset($m_soll_arr[1])) { $m_arr['soll_wm'] = $m_soll_arr[0]; $m_arr['soll_mwst'] = $m_soll_arr[1]; } else { $m_arr['soll_wm'] = $m_arr['soll']; $m_arr['soll_mwst'] = '0.00'; } $nk = $m_arr['soll_wm'] * -1 - $mk->ausgangs_kaltmiete; $zeit_arr[$m]['MIETER'][$a]['MV_ID'] = $mv_id; $zeit_arr[$m]['MIETER'][$a]['M_NAME'] = $mv->personen_name_string; $zeit_arr[$m]['MIETER'][$a]['KM_SOLL'] = $mk->ausgangs_kaltmiete; $zeit_arr[$m]['MIETER'][$a]['NK_SOLL'] = $nk; $zeit_arr[$m]['MIETER'][$a]['WM_SOLL'] = $m_arr['soll_wm'] * -1; $zeit_arr[$m]['MIETER_M_SOLL'] += $m_arr['soll_wm'] * -1; $zeit_arr[$m]['MIETER'][$a]['MI_ERG'] = $m_arr['erg']; $zeit_arr[$m]['MIETER_ERG_SUM'] += $m_arr['erg']; $zeit_arr[$m]['MIETER'][$a]['MI_ZB'] = $m_arr['zb']; $zeit_arr[$m]['SUM_MIETER_ZB'] += $m_arr['zb']; $zeit_arr[$m]['SUM_MIETER_NK'] += $nk; } // ende MV*S /* Hausgeld Fixkosten */ $weg = new weg(); $kosten_arr = $weg->get_monatliche_def($monat, $jahr, 'Einheit', $einheit_id); $anz_buchungen = count($kosten_arr); $sum_fixkosten = 0; for ($k = 0; $k < $anz_buchungen; $k++) { // $txt = $kosten_arr[$k]['KOSTENKAT']; $betrag = $kosten_arr[$k]['SUMME'] * -1; // $auszahlen = $sum_auszahlen+$betrag; // $saldo_et += $betrag; // echo "$txt $betrag<br>"; // $zeit_arr[$m]['HAUSGELD'][$txt] = $betragx; // $this->saldo_et+=$betragx; // $zeit_arr[$m]['SALDO_MONAT'] = $this->saldo_et; $sum_fixkosten += $betrag; } if ($sum_fixkosten != 0) { $zeit_arr[$m]['FIXKOSTEN'] = nummer_komma2punkt(nummer_punkt2komma($sum_fixkosten)); } else { $zeit_arr[$m]['FIXKOSTEN'] = nummer_komma2punkt(nummer_punkt2komma($weg_et->einheit_qm_weg * 0.4 + 30)); } /* Abzufragende Konten */ $kokonten[] = '1023'; // Kosten zu Einheit $kokonten[] = '4180'; // Gewährte Minderungen $kokonten[] = '4280'; // Gerichtskosten $kokonten[] = '4281'; // Anwaltskosten MEA $kokonten[] = '4282'; // Gerichtsvollzieher $kokonten[] = '5010'; // Eigentümereinlagen $kokonten[] = '5020'; // ET Entnahmen $kokonten[] = '5021'; // Hausgeld $kokonten[] = '5400'; // Durch INS zu Erstatten $kokonten[] = '5500'; // INS Maklergebühr $kokonten[] = '5600'; // Mietaufhegungsvereinbarungen $kokonten[] = '6000'; // Hausgeldzahlungen $kokonten[] = '6010'; // Heizkosten $kokonten[] = '6020'; // Nebenkosten / Hausgeld $kokonten[] = '6030'; // IHR $kokonten[] = '6060'; // Verwaltergebühr /* Buchungen zu Einheit */ $kosten_arr = $this->get_kosten_von_bis('Einheit', $einheit_id, $m_von, $m_bis, $gk->geldkonto_id); // print_r($kosten_arr); if (is_array($kosten_arr)) { $anz_buchungen = count($kosten_arr); for ($k = 0; $k < $anz_buchungen - 1; $k++) { $datum = $kosten_arr[$k]['DATUM']; $txt = bereinige_string($kosten_arr[$k]['VERWENDUNGSZWECK']); $betrag = $kosten_arr[$k]['BETRAG']; $kkonto = $kosten_arr[$k]['KONTENRAHMEN_KONTO']; if (in_array($kkonto, $kokonten)) { $zeit_arr[$m]['EINHEIT'][$k]['DATUM'] = $datum; $zeit_arr[$m]['EINHEIT'][$k]['KTO'] = $kkonto; $zeit_arr[$m]['EINHEIT'][$k]['TXT'] = $txt; $zeit_arr[$m]['EINHEIT'][$k]['BETRAG'] = $betrag; $zeit_arr[$m]['SUM_EINHEIT_BUCHUNGEN'] += $betrag; } // $this->saldo_et+=$betrag; // $zeit_arr[$m]['SALDO_MONAT'] = $this->saldo_et; } } else { $zeit_arr[$m]['EINHEIT'] = array(); } /* Buchungen zum ET */ $kosten_arr = $this->get_kosten_von_bis('Eigentuemer', $et_id, $m_von, $m_bis, $gk->geldkonto_id); if (is_array($kosten_arr)) { $anz_buchungen = count($kosten_arr); for ($k = 0; $k < $anz_buchungen - 1; $k++) { $datum = $kosten_arr[$k]['DATUM']; $txt = bereinige_string($kosten_arr[$k]['VERWENDUNGSZWECK']); $betrag = $kosten_arr[$k]['BETRAG']; $kkonto = $kosten_arr[$k]['KONTENRAHMEN_KONTO']; if (in_array($kkonto, $kokonten)) { $zeit_arr[$m]['ET'][$k]['DATUM'] = $datum; $zeit_arr[$m]['ET'][$k]['KTO'] = $kkonto; $zeit_arr[$m]['ET'][$k]['TXT'] = $txt; $zeit_arr[$m]['ET'][$k]['BETRAG'] = $betrag; $zeit_arr[$m]['SUM_ET_BUCHUNGEN'] += $betrag; } // $this->saldo_et+=$betrag; // $zeit_arr[$m]['SALDO_MONAT'] = $this->saldo_et; } } $zeit_arr[$m]['SALDO_MONAT_ET1'] = $zeit_arr[$m]['SUM_MIETER_ZB'] - $zeit_arr[$m]['SUM_MIETER_NK'] - $zeit_arr[$m]['FIXKOSTEN'] + ($zeit_arr[$m]['SUM_EINHEIT_BUCHUNGEN'] + $zeit_arr[$m]['SUM_ET_BUCHUNGEN']); $zeit_arr[$m]['SALDO_MONAT_ET'] = $zeit_arr[$m]['SALDO_VM'] + ($zeit_arr[$m]['SUM_MIETER_ZB'] - $zeit_arr[$m]['SUM_MIETER_NK'] - $zeit_arr[$m]['FIXKOSTEN']) + ($zeit_arr[$m]['SUM_EINHEIT_BUCHUNGEN'] + $zeit_arr[$m]['SUM_ET_BUCHUNGEN']); $this->saldo_et = $zeit_arr[$m]['SALDO_MONAT_ET']; // $zeit_arr[$m]['SALDO_MONAT_MATH'] = $this->saldo_et; /* letzter Monat */ if ($m == $anz_m - 1 && $zeit_arr[$m]['MIETER_ERG_SUM'] > 0) { $zeit_arr[$m]['SALDO_MONAT_ET'] = $zeit_arr[$m]['SALDO_MONAT_ET'] - $zeit_arr[$m]['MIETER_ERG_SUM']; $this->saldo_et = $zeit_arr[$m]['SALDO_MONAT_ET']; } if ($m < $garantie && $this->saldo_et < 0) { $zeit_arr[$m]['SALDO_MONAT_INS'] = $this->saldo_et; } if ($m + 1 == $garantie) { $zeit_arr[$m]['SALDO_MONAT_ET'] = 0; $this->saldo_et = 0; } } // ende monat } else { die("Zeitraum falsch {$von} {$bis}"); } // echo '<pre>'; // print_r($zeit_arr); // die(); // echo "SANEL"; $this->ausgabe_saldo_et15($et_id, $zeit_arr); // die(); // return $zeit_arr; /* * $this->saldo_et_vm * $this->saldo_et */ }
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(); } }