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; }