예제 #1
0
function mietkonto_monats_uebersicht($mietvertrag_id, $monat, $jahr, $vormonat_stand)
{
    if ($vormonat_stand == "0") {
        $konto_vormonat = 0;
    } else {
        $konto_vormonat = $vormonat_stand;
    }
    $mietkonto_info = new mietkonto();
    $forderungen_arr = $mietkonto_info->forderung_monatlich($mietvertrag_id, $monat, $jahr);
    $forderungen_arr = $mietkonto_info->forderung_monatlich($mietvertrag_id, $monat, $jahr);
    $summe_forderungen = $mietkonto_info->summe_forderung_monatlich($mietvertrag_id, $monat, $jahr);
    $ausgangs_kaltmiete = $mietkonto_info->ausgangs_kaltmiete;
    $betriebskosten = $mietkonto_info->betriebskosten;
    $heizkosten = $mietkonto_info->heizkosten;
    $extras = $summe_forderungen - $ausgangs_kaltmiete - $betriebskosten - $heizkosten;
    echo "<pre>";
    // print_r($forderungen_arr);
    echo "</pre>";
    // echo "SUMME FORDERUNGEN: $summe_forderungen";
    $zahlungen_arr = $mietkonto_info->zahlungen_monatlich($mietvertrag_id, $monat, $jahr);
    $summe_zahlungen = $mietkonto_info->summe_zahlung_monatlich($mietvertrag_id, $monat, $jahr);
    $anzahl_zahlungen_im_monat = count($zahlungen_arr);
    $anzahl_forderungen_im_monat = count($forderungen_arr);
    echo "<pre>";
    // print_r($zahlungen_arr);
    echo "</pre>";
    // echo "SUMME ZAHLUNGEN: $summe_zahlungen";
    echo "<table width=100% class=table_form >";
    $monatsname = $mietkonto_info->monatsname;
    echo "<tr class=\"zeile1\"><td colspan=5>{$monat} {$jahr}</td></tr>";
    echo "<tr class=\"zeile1\"><td><b>FORDERUNGEN</td<td><b>ZAHLUNGEN</td><td><b>AUFTEILUNG</td><td><b>BERECHNUNG</td><td><b>KONTOSTAND</td></tr>";
    echo "<tr class=\"zeile1\"><td align=right valign=top>";
    // Zelle1
    for ($i = 0; $i < count($forderungen_arr); $i++) {
        echo "" . $forderungen_arr[$i]['KOSTENKATEGORIE'] . " = " . $forderungen_arr[$i]['BETRAG'] . "€<br>";
    }
    echo "</td>";
    // ende zell1
    echo "<td align=right valign=top>";
    // Zelle2
    if ($anzahl_zahlungen_im_monat > 0) {
        for ($i = 0; $i < count($zahlungen_arr); $i++) {
            $zeile = $i + 1;
            $zahlungs_datum = $mietkonto_info->date_mysql2german($zahlungen_arr[$i][DATUM]);
            echo "<b>{$zeile}. " . $zahlungs_datum . "</b><br>" . $zahlungen_arr[$i]['KOSTENKATEGORIE'] . " = " . $zahlungen_arr[$i]['BETRAG'] . "€<br>";
        }
    } else {
        echo "Keine Zahlungen im Monat {$monat} {$jahr}";
    }
    echo "</td>";
    // ende zell2
    echo "<td valign=top align=right>";
    // Zelle3
    if ($anzahl_zahlungen_im_monat == 0) {
        echo "Keine Aufteilung da keine Zahlungen im Monat {$monat} {$jahr}";
    }
    if ($anzahl_zahlungen_im_monat == 1 && $zahlungen_arr[0]['KOSTENKATEGORIE'] == "ZAHLBETRAG") {
        if ($summe_zahlungen >= $summe_forderungen) {
            for ($i = 0; $i < count($forderungen_arr); $i++) {
                echo "" . $forderungen_arr[$i]['KOSTENKATEGORIE'] . " = " . $forderungen_arr[$i]['BETRAG'] . "€<br>";
            }
            $rest = $summe_zahlungen + $konto_vormonat - $summe_forderungen;
            if ($rest > 0) {
                // echo "<br>REST von $rest € wird gutgeschrieben";
                $ueberschuss = $rest;
            }
        }
    }
    if ($anzahl_zahlungen_im_monat == 1 && $zahlungen_arr[0]['KOSTENKATEGORIE'] != "ZAHLBETRAG") {
        if ($summe_zahlungen >= $summe_forderungen) {
            for ($i = 0; $i < count($forderungen_arr); $i++) {
                echo "F" . $forderungen_arr[$i]['KOSTENKATEGORIE'] . " = " . $forderungen_arr[$i]['BETRAG'] . "€<br>";
            }
            $rest = $summe_zahlungen + $konto_vormonat - $summe_forderungen;
            if ($rest > 0) {
                // echo "REST von $rest € wird gutgeschrieben";
                $ueberschuss = $rest;
            }
        } else {
            echo "Z" . $zahlungen_arr[0]['KOSTENKATEGORIE'] . " = " . $zahlungen_arr[0]['BETRAG'] . "€<br>";
        }
    }
    if ($anzahl_zahlungen_im_monat > 1) {
        $gesamt_zahlung_und_konto = $summe_zahlungen + $konto_vormonat;
        if ($gesamt_zahlung_und_konto < $summe_forderungen) {
            if ($gesamt_zahlung_und_konto > $betriebskosten) {
                echo "BK = {$betriebskosten} €<br>";
                $rest = $summe_zahlungen + $konto_vormonat - $betriebskosten;
            }
            if ($rest > $heizkosten) {
                echo "HK = {$heizkosten} €<br>";
                $rest = $rest - $heizkosten;
                echo "KALTMIETE = {$rest} €";
                $offen = $summe_forderungen - $betriebskosten - $heizkosten - $rest;
                // echo "<hr><hr><b>Offen = $offen €</b>";
                $ueberschuss = $offen;
            }
        }
        if ($gesamt_zahlung_und_konto >= $summe_forderungen) {
            if ($gesamt_zahlung_und_konto > $betriebskosten) {
                echo "BK = -{$betriebskosten} €<br>";
                $rest = $summe_zahlungen + $konto_vormonat - $betriebskosten;
            }
            if ($rest > $heizkosten) {
                echo "Übertrag:\n {$konto_vormonat}  €<br>";
                echo "HK = -{$heizkosten} €<br>";
                $rest = $rest - $heizkosten;
                $rest = $rest - $ausgangs_kaltmiete;
                echo "KALTMIETE = -{$ausgangs_kaltmiete} €<br>";
                echo "Extras: -{$extras} €";
                $ueberschuss = $summe_zahlungen - $betriebskosten - $heizkosten - $ausgangs_kaltmiete - $extras + $konto_vormonat;
                // echo "<hr><hr>ÜBERSCHUSS = $ueberschuss €";
            }
        }
    }
    echo "</td><td>";
    // Zelle 4
    $kontostand_nach = $summe_zahlungen + $konto_vormonat - $summe_forderungen;
    echo "({$summe_zahlungen} + {$konto_vormonat}) - {$summe_forderungen} = {$kontostand_nach}";
    echo "</td><td>";
    // Zelle5
    echo "Kontostandvormonat: {$konto_vormonat}<br>";
    echo "Kontostand aktuell: {$kontostand_nach}<br>";
    echo "</td></tr>";
    echo "<tr class=\"zeile1\"><td><b>Summe: {$summe_forderungen} €</td<td>Summe: {$summe_zahlungen} €</td><td><b>{$ueberschuss} €</b></td><td></td><td></td></tr>";
    echo "</table>";
    // ###
    return $kontostand_nach;
}
예제 #2
0
 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++;
         }
     }
 }