예제 #1
0
 function get_einheit_daten_OK($einheit_id, $ms_jahr)
 {
     $this->abzug_wert = 0;
     $e = new einheit();
     $e->get_einheit_info($einheit_id);
     $this->einheit_qm = $e->einheit_qm;
     $d = new detail();
     $this->objekt_baujahr = $d->finde_detail_inhalt('OBJEKT', $e->objekt_id, 'Baujahr');
     if (empty($this->objekt_baujahr)) {
         die("<b>ABBRUCH: Einheit: {$e->einheit_kurzname} <br>Detail Baujahr zum Objekt {$e->objekt_name} hinzufügen</b>");
     }
     if ($this->objekt_baujahr <= 1918) {
         $this->objekt_bauart = 'Altbau1';
     }
     if ($this->objekt_baujahr > 1918 && $this->objekt_baujahr < 1950) {
         $this->objekt_bauart = 'Altbau2';
     }
     if ($this->objekt_baujahr > 1949) {
         $this->objekt_bauart = 'Neubau';
     }
     $this->haus_wohnlage = $d->finde_detail_inhalt('HAUS', $e->haus_id, 'Wohnlage');
     /* Wenn keine, dann bei Objekt schauen */
     if (!$this->haus_wohnlage) {
         $this->haus_wohnlage = $d->finde_detail_inhalt('OBJEKT', $e->objekt_id, 'Wohnlage');
     }
     if (!$this->haus_wohnlage) {
         die("Keine Wohnlage zum Haus {$e->haus_strasse} {$e->haus_nummer} oder {$e->objekt_name}");
     }
     if ($this->einheit_qm < 40.0) {
         if ($this->haus_wohnlage == 'einfach') {
             $buchstabe = 'A';
         }
         if ($this->haus_wohnlage == 'mittel') {
             $buchstabe = 'B';
         }
         if ($this->haus_wohnlage == 'gut') {
             $buchstabe = 'C';
         }
     }
     if ($this->einheit_qm >= 40.0 && $this->einheit_qm < 60.0) {
         if ($this->haus_wohnlage == 'einfach') {
             $buchstabe = 'D';
         }
         if ($this->haus_wohnlage == 'mittel') {
             $buchstabe = 'E';
         }
         if ($this->haus_wohnlage == 'gut') {
             $buchstabe = 'F';
         }
     }
     if ($this->einheit_qm >= 60.0 && $this->einheit_qm < 90.0) {
         if ($this->haus_wohnlage == 'einfach') {
             $buchstabe = 'G';
         }
         if ($this->haus_wohnlage == 'mittel') {
             $buchstabe = 'H';
         }
         if ($this->haus_wohnlage == 'gut') {
             $buchstabe = 'I';
         }
     }
     if ($this->einheit_qm >= 90.0) {
         if ($this->haus_wohnlage == 'einfach') {
             $buchstabe = 'J';
         }
         if ($this->haus_wohnlage == 'mittel') {
             $buchstabe = 'K';
         }
         if ($this->haus_wohnlage == 'gut') {
             $buchstabe = 'L';
         }
     }
     /* Es können nur Mieten von vermieteten Einheiten angepasst werden und ... */
     /* Wenn Fläche größer als 0, weil sonst Parkplatz bzw Freiflächen */
     if ($e->einheit_qm > 0.0) {
         /* Schon mal vermietet */
         if ($e->get_einheit_status($einheit_id)) {
             $mv_id = $e->get_last_mietvertrag_id($einheit_id);
             /*
              * Wenn aktuell vermietet
              * hier spielt sich alles ab
              */
             if (!empty($mv_id)) {
                 $ausstattungsklasse = $d->finde_detail_inhalt('EINHEIT', $einheit_id, 'Ausstattungsklasse');
                 if (empty($ausstattungsklasse)) {
                     die("<b>ABBRUCH - Einheit: {$e->einheit_kurzname} hat keine Ausstattungsklasse in den Details</b>");
                 }
                 $mietspiegel_feld = "{$buchstabe}{$ausstattungsklasse}";
                 /* Mietvertragsinfos sammeln */
                 $mv = new mietvertraege();
                 $mv->get_mietvertrag_infos_aktuell($mv_id);
                 /* Prüfen ob Bruttomieter */
                 if ($this->check_bruttomieter('MIETVERTRAG', $mv_id) == true) {
                     $tab_arr['MIETER_ART'] = 'Bruttomieter';
                     $mieter_art = 'Bruttomieter';
                     echo "{$mv_id} {$mieter_art}<br>";
                 } else {
                     $tab_arr['MIETER_ART'] = 'Nettomieter';
                     $mieter_art = 'Nettomieter';
                 }
                 /* Notwendige Datumsvars setzen */
                 $monat = date("m");
                 $jahr = date("Y");
                 $jahr_minus_3 = date("Y") - 3;
                 $mk = new mietkonto();
                 /* Aktuelle Miete kalt */
                 $mk->kaltmiete_monatlich($mv_id, $monat, $jahr);
                 $aktuelle_miete = $mk->ausgangs_kaltmiete;
                 /* Miete kalt vor 3 Jahren */
                 $mk->kaltmiete_monatlich($mv_id, $monat, $jahr_minus_3);
                 // $this->kosten_monatlich($mv_id,$monat,$jahr_minus_3, 'Miete kalt');
                 $miete_vor_3_jahren = $mk->ausgangs_kaltmiete;
                 /*
                  * Wenn MV nicht älter als 3 Jahre dann Erste Miete kalt
                  * aus Mietdefinition d.h. Miete beim Einzug
                  */
                 if ($miete_vor_3_jahren <= 0.0) {
                     $einzugsdatum_arr = explode('-', $mv->mietvertrag_von);
                     $einzugs_jahr = $einzugsdatum_arr[0];
                     $einzugs_monat = $einzugsdatum_arr[1];
                     /* Bei Einzug mitten im Monat ist es nur die Hälfte */
                     $mk->kaltmiete_monatlich($mv_id, $einzugs_monat, $einzugs_jahr);
                     // echo "$mv_id,$einzugs_monat,$einzugs_jahr";
                     $miete_beim_einzug = $mk->ausgangs_kaltmiete;
                     $miete_vor_3_jahren = $miete_beim_einzug;
                     /* Wenn keine Mietdefinition zum MV Anfang dann Miete aus der Mietdefinition 2. Monat */
                     if ($miete_vor_3_jahren <= 0.0) {
                         $datum_1_kmiete = $this->datum_1_mietdefinition($mv_id);
                         $datum_1_kmiete_arr = explode('-', $datum_1_kmiete);
                         $datum_1_kmiete_jahr = $datum_1_kmiete_arr[0];
                         $datum_1_kmiete_monat = $datum_1_kmiete_arr[1];
                         $mk->kaltmiete_monatlich($mv_id, $datum_1_kmiete_monat, $datum_1_kmiete_jahr);
                         $erste_kalt_miete = $mk->ausgangs_kaltmiete;
                         $miete_vor_3_jahren = $erste_kalt_miete;
                     }
                 }
                 $tab_arr['EINHEIT'] = $e->einheit_kurzname;
                 $tab_arr['EINHEIT_ID'] = $einheit_id;
                 $tab_arr['EINHEIT_QM'] = $e->einheit_qm;
                 $tab_arr['WOHNLAGE'] = $this->haus_wohnlage;
                 $tab_arr['MIETER'] = $mv->personen_name_string;
                 $tab_arr['MV_ID'] = $mv->mietvertrag_id;
                 $tab_arr['EINZUG'] = $mv->mietvertrag_von;
                 $tab_arr['MIETE_3_JAHRE'] = $miete_vor_3_jahren;
                 $tab_arr['MIETE_AKTUELL'] = $aktuelle_miete;
                 $this->get_spiegel_werte($ms_jahr, $mietspiegel_feld);
                 $tab_arr['MS_FELD'] = $mietspiegel_feld;
                 $tab_arr['U_WERT'] = $this->u_wert;
                 $tab_arr['M_WERT'] = $this->m_wert;
                 $tab_arr['O_WERT'] = $this->o_wert;
                 $untere_spanne = $this->m_wert - $this->u_wert;
                 $obere_spanne = $this->o_wert - $this->m_wert;
                 $tab_arr['U_SPANNE'] = $untere_spanne;
                 $tab_arr['O_SPANNE'] = $obere_spanne;
                 /* Erdgeschoss aus Lage erkennen */
                 $m_buchstabe = substr($e->einheit_lage, 1, 1);
                 if ($m_buchstabe == 'P') {
                     $erdgeschoss = 1;
                     $erdgeschoss_ausgabe = 'Erdgeschossabzug';
                 } else {
                     $erdgeschoss = 0;
                 }
                 /* Sondermerkmale finden */
                 $sondermerkmale_arr = $this->get_sondermerkmale_arr($ausstattungsklasse, $jahr);
                 $anz_sm = count($sondermerkmale_arr);
                 if ($anz_sm > 0) {
                     $abzug_zaehler = 0;
                     $this->abzug_wert = 0;
                     for ($s = 0; $s < $anz_sm; $s++) {
                         $merkmal = $sondermerkmale_arr[$s]['MERKMAL'];
                         $wert = $sondermerkmale_arr[$s]['WERT'];
                         $a_klasse = $sondermerkmale_arr[$s]['A_KLASSE'];
                         if ($a_klasse == NULL or $ausstattungsklasse == $a_klasse) {
                             /* Wenn z.B. Erdgeschoss, dann Abzug */
                             $sonder_abzug = $d->finde_detail_inhalt('EINHEIT', $einheit_id, $merkmal);
                             if ($sonder_abzug) {
                                 $tab_arr['ABZUEGE'][$abzug_zaehler]['MERKMAL'] = $merkmal;
                                 $tab_arr['ABZUEGE'][$abzug_zaehler]['MERKMAL_GRUND'] = $sonder_abzug;
                                 $tab_arr['ABZUEGE'][$abzug_zaehler]['MERKMAL_WERT'] = $wert;
                                 $this->abzug_wert = $this->abzug_wert + $wert;
                                 $abzug_zaehler++;
                             }
                         }
                     }
                     // end for
                 }
                 // end wenn Sondermerkmale vorhanden
                 /* Wenn ABZUEGE vorhanden, dann MS werte anpassen */
                 if (is_array($tab_arr['ABZUEGE'])) {
                     $this->u_wert_w = $this->u_wert + $this->abzug_wert;
                     $this->m_wert_w = $this->m_wert + $this->abzug_wert;
                     $this->o_wert_w = $this->o_wert + $this->abzug_wert;
                     $tab_arr['ABZUG_PRO_M2'] = $this->abzug_wert;
                 } else {
                     /* Sonst sind die MS-Werte maßgeblich */
                     $tab_arr['ABZUG_PRO_M2'] = '0.00';
                     $this->u_wert_w = $this->u_wert;
                     $this->m_wert_w = $this->m_wert;
                     $this->o_wert_w = $this->o_wert;
                 }
                 $tab_arr['U_WERT_W'] = $this->u_wert_w;
                 $tab_arr['M_WERT_W'] = $this->m_wert_w;
                 $tab_arr['O_WERT_W'] = $this->o_wert_w;
                 /* Preisspanne nach Abzügen ermitteln */
                 $untere_spanne_w = $this->m_wert_w - $this->u_wert_w;
                 $obere_spanne_w = $this->o_wert_w - $this->m_wert_w;
                 $tab_arr['U_SPANNE_W'] = $untere_spanne_w;
                 $tab_arr['O_SPANNE_W'] = $obere_spanne_w;
                 $tab_arr['GESAMT_ABZUG'] = $e->einheit_qm * $this->abzug_wert;
                 /* Berechnung */
                 $m2_mietpreis = $aktuelle_miete / $e->einheit_qm;
                 $tab_arr['M2_AKTUELL'] = $m2_mietpreis;
                 $anstieg_in_3_jahren = $aktuelle_miete / ($miete_vor_3_jahren / 100) - 100;
                 if ($miete_vor_3_jahren == 0.0) {
                     echo "<h1>{$einheit_id} {$mv_id}</h1>";
                 }
                 $tab_arr['ANSTIEG_3J'] = $anstieg_in_3_jahren;
                 $max_rest_prozent = 15 - $anstieg_in_3_jahren;
                 $tab_arr['MAX_ANSTIEG_PROZ'] = $max_rest_prozent;
                 $anstieg_euro = $miete_vor_3_jahren / 100 * $max_rest_prozent;
                 $tab_arr['MAX_ANSTIEG_EURO'] = $anstieg_euro;
                 $kappungsgrenze_miete = $aktuelle_miete + $anstieg_euro;
                 $tab_arr['MAXIMALE_MIETE'] = $kappungsgrenze_miete;
                 /* Letzte Erhöhung */
                 $this->datum_letzte_m_erhoehung($mv_id);
                 $o = new objekt();
                 $monate_seit_l_erhoehung = $o->monate_berechnen_bis_heute($this->erhoehungsdatum);
                 $tab_arr['L_ANSTIEG_MONATE'] = $monate_seit_l_erhoehung;
                 $tab_arr['L_ANSTIEG_DATUM'] = $this->erhoehungsdatum;
                 $tab_arr['L_ANSTIEG_BETRAG'] = $this->erhoehungsbetrag;
                 $tag = date("d");
                 $datum_vor_3_jahren = "{$jahr_minus_3}-{$monat}-{$tag}";
                 $erhoehungen_arr = $this->get_erhoehungen_arr($datum_vor_3_jahren, 'MIETVERTRAG', $mv_id);
                 $tab_arr['ERHOEHUNGEN_ARR'] = $erhoehungen_arr;
                 /* Maximal möglich rechnerisch nur */
                 $n_erhoehungsdatum_arr = explode('-', $o->datum_plus_tage(date("Y-m-d"), 120));
                 $n_erhoehungsdatum = '01.' . $n_erhoehungsdatum_arr[1] . '.' . $n_erhoehungsdatum_arr[0];
                 if (empty($this->m_wert_w)) {
                     $n_miete_mwert = $e->einheit_qm * $this->m_wert;
                     $n_miete_mwert_w = $e->einheit_qm * $this->m_wert;
                 } else {
                     $n_miete_mwert = $e->einheit_qm * $this->m_wert;
                     $n_miete_mwert_w = $e->einheit_qm * $this->m_wert_w;
                 }
                 $tab_arr['N_ANSTIEG_DATUM'] = $n_erhoehungsdatum;
                 $tab_arr['NEUE_MIETE_M_WERT'] = $n_miete_mwert;
                 $tab_arr['NEUE_MIETE_M_WERT_W'] = $n_miete_mwert_w;
                 $this->check_erhoehung($mv_id);
                 /* Wenn Letzte Erhöhung vor mehr als 12 Monaten */
                 if ($monate_seit_l_erhoehung > 12) {
                     /* Wenn Mittelwert größer als Kappungsgrenze, dann mit Kappung rechnen */
                     if ($n_miete_mwert_w > $kappungsgrenze_miete) {
                         $n_preis_pro_qm = $kappungsgrenze_miete / $e->einheit_qm;
                         $monatliche_diff = $kappungsgrenze_miete - $aktuelle_miete;
                         $tab_arr['NEUE_MIETE'] = $kappungsgrenze_miete;
                         $tab_arr['ANSTIEG_UM_PROZENT'] = $max_rest_prozent;
                         $tab_arr['M2_PREIS_NEU'] = $n_preis_pro_qm;
                         $tab_arr['MONATLICH_MEHR'] = $monatliche_diff;
                     } else {
                         $n_preis_pro_qm = $n_miete_mwert_w / $e->einheit_qm;
                         $monatliche_diff = $n_miete_mwert_w - $aktuelle_miete;
                         $tab_arr['NEUE_MIETE'] = $n_miete_mwert_w;
                         $anstieg_in_prozent = $n_miete_mwert_w / ($aktuelle_miete / 100) - 100;
                         $tab_arr['ANSTIEG_UM_PROZENT'] = $anstieg_in_prozent;
                         $tab_arr['M2_PREIS_NEU'] = $n_preis_pro_qm;
                         $tab_arr['MONATLICH_MEHR'] = $monatliche_diff;
                     }
                 } else {
                     /* Sonst gesetzlich nicht möglich die Miete anzupassen */
                     $tab_arr['NEUE_MIETE'] = 'nicht möglich';
                     $tab_arr['ANSTIEG_UM_PROZENT'] = 'nicht möglich';
                     $tab_arr['M2_PREIS_NEU'] = 'nicht möglich';
                     $tab_arr['MONATLICH_MEHR'] = 'nicht möglich';
                     $tab_arr['N_ANSTIEG_DATUM'] = 'nicht möglich';
                 }
                 /* Wenn eine Erhöhung schon definiert wurde */
                 if ($this->naechste_erhoehung_datum) {
                     $this->naechste_erhoehung_datum = date_mysql2german($this->naechste_erhoehung_datum);
                     $tab_arr['STATUS'] = 'erledigt';
                     $tab_arr['STATUS_DATUM'] = $this->naechste_erhoehung_datum;
                     $tab_arr['STATUS_BETRAG'] = $this->naechste_erhoehung_betrag;
                 } else {
                     $tab_arr['STATUS'] = 'offen';
                     $tab_arr['STATUS_DATUM'] = '';
                     $tab_arr['STATUS_BETRAG'] = '';
                 }
             }
             // end if vermietet jetzt
         }
         // end if schon mal vermietet, danach ende der Funktion
     }
     // wenn fläche >0.00
     // echo '<pre>';
     // print_r($tab_arr);
     // die();
     // $this->zeile_anzeigen($tab_arr, '');
     return $tab_arr;
 }