function mietkonto_berechnung_monatsgenau($mietvertrag_id, $jahr, $monat) { $this->mietvertrag_id = $mietvertrag_id; $this->jahr_aktuell = date("Y"); $this->monat_aktuell = date("m"); $this->end_j = $jahr; $this->end_m = $monat; /* Include mietkonto_class */ $buchung = new mietkonto(); $datum_saldo_vv = $buchung->datum_saldo_vortrag_vorverwaltung($mietvertrag_id); $this->saldo_vv = $buchung->saldo_vortrag_vorverwaltung($mietvertrag_id); // echo "$datum_saldo_vv $this->saldo_vv"; $this->saldo_vv = number_format($this->saldo_vv, 2, '.', ''); // die(); /* Saldo Vortrag vorhanden, dann ab Saldo VV rechnen */ // echo $datum_saldo_vv; if (!empty($datum_saldo_vv)) { /* Saldo Vorvertrag mit 1. Zahlung vergleichen, älteres nehmen */ $datum_saldo_vv_s = str_replace('-', '', $datum_saldo_vv); // $datums_arr[] = $datum_saldo_vv_s; // echo $datum_saldo_vv_s; /* Einen Monat nach SALDO VV */ $anfangs_datum = $this->tage_plus($datum_saldo_vv, 30); // echo "AD $anfangs_datum<br>"; $anfangs_datum_s = str_replace('-', '', $anfangs_datum); $datums_arr[] = $anfangs_datum_s; // echo "1. $anfangs_datum $anfangs_datum_s<br>"; $datum1_zahlung = $buchung->datum_1_zahlung($mietvertrag_id); if (!empty($datum1_zahlung)) { $datum1_zahlung_s = str_replace('-', '', $datum1_zahlung); $datums_arr[] = $datum1_zahlung_s; } /* älteres wählen und als Startdatum setzen */ $anfangs_datum = min($datums_arr); $this->start_m = substr($anfangs_datum, 4, 2); $this->start_j = substr($anfangs_datum, 0, 4); // echo '<pre>'; // print_r($datums_arr); // die("$anfangs_datum $this->start_m $this->start_j"); // } } else { /* Datum der 1. Mietdefinition */ $datum_mietdefinition = $buchung->datum_1_mietdefinition($mietvertrag_id); if (!empty($datum_mietdefinition)) { $datum_mietdefinition_s = str_replace('-', '', $datum_mietdefinition); $datums_arr[] = $datum_mietdefinition_s; } /* Datum 1 Zahlung ermitteln */ $datum1_zahlung = $buchung->datum_1_zahlung($mietvertrag_id); if (!empty($datum1_zahlung)) { $datum1_zahlung_s = str_replace('-', '', $datum1_zahlung); $datums_arr[] = $datum1_zahlung_s; } /* Wenn MD oder 1 Zahlung definiert */ if (is_array($datums_arr)) { /* älteres Datum nehmen, da Zahlung vor Definition sein kann */ $anfangs_datum = min($datums_arr); $this->start_m = substr($anfangs_datum, 4, 2); $this->start_j = substr($anfangs_datum, 0, 4); } else { $buchung->ein_auszugsdatum_mietvertrag($mietvertrag_id); $einzugsdatum_s = str_replace('-', '', $buchung->mietvertrag_von); $this->start_m = substr($einzugsdatum_s, 4, 2); $this->start_j = substr($einzugsdatum_s, 0, 4); } } /* jahresschleife */ for ($a = $this->start_j; $a <= $this->end_j; $a++) { /* anfangs und endjahr gleich */ if ($a == $this->start_j && $a == $this->end_j) { $start_m = $this->start_m; $end_m = $this->end_m; } /* voll jahre dazwischen */ if ($a > $this->start_j && $a < $this->end_j) { $start_m = 1; $end_m = 12; } /* erstjahr */ if ($a == $this->start_j && $a != $this->end_j) { $start_m = $this->start_m; $end_m = 12; } /* endjahr */ if ($a == $this->end_j && $a != $this->start_j) { $start_m = 1; $end_m = $this->end_m; } /* monatsschleife */ $m_zaehler = 0; if ($start_m < 10) { $start_m = substr($start_m, -1); } for ($b = $start_m; $b <= $end_m; $b++) { if ($m_zaehler == 0 && $a == $this->start_j) { $this->saldo_vormonat = $this->saldo_vv; } $this->bk_abrechnung = $buchung->summe_betriebskostenabrechnung($mietvertrag_id, $b, $a); $this->hk_abrechnung = $buchung->summe_heizkostenabrechnung($mietvertrag_id, $b, $a); $this->temp_soll = '-' . $buchung->summe_forderung_monatlich($this->mietvertrag_id, $b, $a); $ford_monatlich_arr = $buchung->forderung_monatlich($mietvertrag_id, $b, $a); $this->davon_umlagen = $buchung->summe_vorschuesse($ford_monatlich_arr); // echo $mietvertrag_id.$b.$a.$this->temp_soll.' '.$this->saldo_vormonat.'<br>'; $this->daten_arr[$a]['monate'][$m_zaehler]['zahlungen'] = $buchung->zahlbetraege_im_monat_arr($mietvertrag_id, $b, $a); // echo "<h1> $b $a</h1><br>"; /* * $this->daten_arr[$a]['monate'][$m_zaehler]['zahlungen'][0][txt]= 'zb'; * $this->daten_arr[$a]['monate'][$m_zaehler]['zahlungen'][0][b]= $this->temp_zb; * $this->daten_arr[$a]['monate'][$m_zaehler]['zahlungen'][1][txt]= 'zb'; * $this->daten_arr[$a]['monate'][$m_zaehler]['zahlungen'][1][b]= $this->temp_zb; */ $sum_mon = 0; $z_arr = $this->daten_arr[$a]['monate'][$m_zaehler]['zahlungen']; for ($c = 0; $c < count($z_arr); $c++) { $sum_mon = $sum_mon + $z_arr[$c]['BETRAG']; } $this->geleistete_zahlungen = $sum_mon; $sum_mon = number_format($sum_mon, 2, '.', ''); $this->erg = $this->saldo_vormonat + $this->temp_soll + $sum_mon + $this->hk_abrechnung + $this->bk_abrechnung; $this->bk_abrechnung = '0.00'; $this->hk_abrechnung = '0.00'; $this->erg = number_format($this->erg, 2, '.', ''); $this->saldo_vormonat_stand = $this->saldo_vormonat; /* Daten für den Monatsbericht */ $this->saldo_vormonat = $this->erg; $this->sollmiete_warm = substr($this->temp_soll, 1); $m_zaehler++; } } }