function bk_nk_profil_berechnung_Alt_ok($profil_id) { /* Profil Information holen, z.B. um Einheiten Array zu Bilden, d.h. für wenn ist die BK & NK */ $this->bk_profil_infos($profil_id); $jahr = $this->bk_jahr; /* Alle ausgewählten BK Kontensummen mit Key und Kostenträger wählen */ $summen_arr = $this->get_buchungssummen_konto_arr($profil_id); $anzahl_summen = count($summen_arr); $k = new kontenrahmen(); $this->kontenrahmen_id = $k->get_kontenrahmen($this->bk_kos_typ, $this->bk_kos_id); $diff = 0.0; // Anfangsdifferenz = 0; $hndl_diff = 0.0; // Anfangsdifferenz = 0; for ($a = 0; $a < $anzahl_summen; $a++) { $summe_konto = $summen_arr[$a]['G_SUMME']; /* Positiv machen */ if ($summe_konto < 0) { $summe_konto = substr($summe_konto, 1); } $summe_konto_a = nummer_punkt2komma($summe_konto); $bk_k_id = $summen_arr[$a]['BK_K_ID']; $kostenkonto = $this->get_konto_from_id($bk_k_id, $profil_id); $k->konto_informationen2($kostenkonto, $this->kontenrahmen_id); $bk_res[kontrolle][$a][$bk_k_id][KOSTENART] = $k->konto_bezeichnung; $key_id = $summen_arr[$a]['KEY_ID']; $kos_typ = $summen_arr[$a]['KOS_TYP']; $kos_id = $summen_arr[$a]['KOS_ID']; $anteil = $summen_arr[$a]['ANTEIL']; $anteil_a = nummer_punkt2komma($anteil); $anteil_betrag = $summe_konto / 100 * $anteil; $anteil_betrag_a = nummer_punkt2komma(abs($anteil_betrag)); $bk_res[kontrolle][$a][$bk_k_id][SUMME] = $anteil_betrag; $hndl_betrag = $summen_arr[$a]['HNDL_BETRAG']; // wird nicht prozentual umgelegt, nur verteilt if ($hndl_betrag < 0) { $hndl_betrag = substr($hndl_betrag, 1); } $hndl_betrag_anteil = $hndl_betrag / 100 * $anteil; $bk_res[kontrolle][$a][$bk_k_id][HNDL] = $hndl_betrag_anteil; $bk_res[kontrolle][$a][$bk_k_id][KOS_TYP] = $kos_typ; $bk_res[kontrolle][$a][$bk_k_id][KOS_ID] = $kos_id; $r = new rechnung(); $g_kos_bez = $r->kostentraeger_ermitteln($kos_typ, $kos_id); $bk_res[kontrolle][$a][$bk_k_id][G_KOS_BEZ] = $g_kos_bez; if ($kos_typ == 'Objekt') { $o = new objekt(); $gesamt_qm_alle = $o->get_qm_gesamt($kos_id); $gesamt_qm_gewerbe = $o->get_qm_gesamt_gewerbe($kos_id); $gesamt_qm = $gesamt_qm_alle - $gesamt_qm_gewerbe; $einheiten_arr = $o->einheiten_objekt_arr($kos_id); } /* BK & Nk für alle Einheiten in einem Haus */ if ($kos_typ == 'Haus') { $h = new haus(); $gesamt_qm_alle = $h->get_qm_gesamt($kos_id); $gesamt_qm_gewerbe = $h->get_qm_gesamt_gewerbe($kos_id); $gesamt_qm = $gesamt_qm_alle - $gesamt_qm_gewerbe; $einheiten_arr = $h->liste_aller_einheiten_im_haus($kos_id); } /* BK & Nk für eine Einheit */ if ($kos_typ == 'Einheit') { $e = new einheit(); $einheiten_arr = $e->get_einheit_as_array($kos_id); } /* BK & Nk für eine Einheit */ if ($kos_typ == 'Mietvertrag') { $mv = new mietvertraege(); $mv->get_mietvertrag_infos_aktuell($kos_id); $e = new einheit(); $einheiten_arr = $e->get_einheit_as_array($mv->einheit_id); } $anzahl_einheiten = count($einheiten_arr); $beteiligung_gesamt = 0; for ($b = 0; $b < $anzahl_einheiten; $b++) { $einheit_id = $einheiten_arr[$b][EINHEIT_ID]; $einheit_qm = $einheiten_arr[$b][EINHEIT_QM]; $einheit_name = $einheiten_arr[$b][EINHEIT_KURZNAME]; $leerstand_und_mvs = $this->mvs_und_leer_jahr($einheit_id, $jahr); $anzahl_einheiten_mvs = count($leerstand_und_mvs); for ($c = 0; $c < $anzahl_einheiten_mvs; $c++) { $kos_typ_e = $leerstand_und_mvs[$c]['KOS_TYP']; $kos_id_e = $leerstand_und_mvs[$c]['KOS_ID']; $von = $leerstand_und_mvs[$c]['BERECHNUNG_VON']; $bis = $leerstand_und_mvs[$c]['BERECHNUNG_BIS']; $zeitraum = date_mysql2german($leerstand_und_mvs[$c]['BERECHNUNG_VON']) . ' - ' . date_mysql2german($leerstand_und_mvs[$c]['BERECHNUNG_BIS']); $tage = $leerstand_und_mvs[$c]['TAGE']; if ($kos_typ_e == 'Leerstand') { $empfaenger = 'Leerstand'; } else { $mv = new mietvertraege(); $mv->get_mietvertrag_infos_aktuell($kos_id_e); $empfaenger = $mv->personen_name_string; } /* KOSTENKONTO */ $beteiligung_genau = $this->beteiligung_berechnen($anteil_betrag, $von, $bis, $gesamt_qm, $einheit_qm) + $diff; // genau + $diff $beteiligung = round($beteiligung_genau, 2); // runden /* Eigene Diff */ $diff = $beteiligung_genau - $beteiligung; // eigene diff, die weiter gegeben wird /* HNDL */ $beteiligung_hndl_genau = $this->beteiligung_berechnen($hndl_betrag_anteil, $von, $bis, $gesamt_qm, $einheit_qm) + $hndl_diff; // genau + $diff $beteiligung_hndl = round($beteiligung_hndl_genau, 2); // runden /* Eigene Diff */ $hndl_diff = $beteiligung_hndl_genau - $beteiligung_hndl; // eigene diff, die weiter gegeben wird $genkey_id = 'gesamt m²'; // echo "<b>$empfaenger $beteiligung_genau <> $beteiligung | $diff </b><br>"; $beteiligung_a = nummer_punkt2komma(abs($beteiligung)); // echo "$beteiligung_a<br>"; $beteiligung_hndl_a = nummer_punkt2komma(abs($beteiligung_hndl)); $bk_res[$einheit_name . ' ' . $zeitraum]['EMPF'] = "{$empfaenger}"; // $bk_res[$einheit_name.' '.$zeitraum]['G_KOS_BEZ']=$g_kos_bez; $bk_res[$einheit_name . ' ' . $zeitraum]['KOS_TYP'] = "{$kos_typ_e}"; $bk_res[$einheit_name . ' ' . $zeitraum]['KOS_ID'] = "{$kos_id_e}"; $bk_res[$einheit_name . ' ' . $zeitraum]['QM_G_OBJEKT'] = "{$gesamt_qm_alle}"; $bk_res[$einheit_name . ' ' . $zeitraum]['QM_G'] = "{$gesamt_qm}"; $bk_res[$einheit_name . ' ' . $zeitraum]['QM_G_GEWERBE'] = "{$gesamt_qm_gewerbe}"; $bk_res[$einheit_name . ' ' . $zeitraum]['EINHEIT_QM'] = "{$einheit_qm}"; $bk_res[$einheit_name . ' ' . $zeitraum]['ZEITRAUM'] = "{$zeitraum}"; $bk_res[$einheit_name . ' ' . $zeitraum]['EINHEIT_NAME'] = "{$einheit_name}"; $bk_res[$einheit_name . ' ' . $zeitraum][] = array('KOSTENART' => "{$k->konto_bezeichnung}", 'G_KOS_BEZ' => "{$g_kos_bez}", 'G_HNDL' => "{$hndl_betrag_anteil}", 'BK_K_ID' => "{$bk_k_id}", 'G_BETRAG' => "{$summe_konto_a}", 'ANTEIL' => "{$anteil_a}", 'UMLAGE' => "{$anteil_betrag_a}", 'G_KEY' => "{$gesamt_qm} m²", 'QM' => "{$einheit_qm}", 'BET_G' => "{$beteiligung_a}", 'BET_HNDL' => "{$beteiligung_hndl_a}", 'GENKEY_ID' => "{$genkey_id}"); $bk_res[kontrolle][$a][$bk_k_id][KOSTENART] = $k->konto_bezeichnung; $bk_res[kontrolle][$a][$bk_k_id][SUMME_K] += $beteiligung; $bk_res[kontrolle][$a][$bk_k_id][HNDL_K] += $beteiligung_hndl; // echo "<hr>"; } // end for $c } // end for $b $diff = 0.0; // Anfangsdifferenz auf = 0, weil nächstes konto; $hndl_diff = 0.0; } // end for $a // echo '<pre>'; // print_r($bk_res); // print_r($bk_res[kontrolle]); // print_r(array_keys($bk_res)); // $this->ber_array_anzeigen($bk_res); return $bk_res; }
function einzel_wp(Cezpdf $pdf, $wp_id) { ini_set('memory_limit', '1024M'); // or you could use 1G set_time_limit(0); $this->get_wplan_infos($wp_id); $einheiten_arr = $this->einheiten_weg_tabelle_arr($this->wp_objekt_id); $anz_einheiten = count($einheiten_arr); $wp_zeilen = $this->wplan_gesamt_tab_arr($wp_id); $anz = count($wp_zeilen); $wtab_arr = $wp_zeilen; $anz_tab = count($wtab_arr); unset($wp_zeilen); /* Alle Einheiten durchlaufen */ for ($a = 0; $a < $anz_einheiten; $a++) { $einheit_id = $einheiten_arr[$a]['EINHEIT_ID']; $e = new einheit(); $e->get_einheit_info($einheit_id); /* Neue Seite für jede Einheit */ $pdf->ezNewPage(); $pdf->setColor(0.6, 0.6, 0.6); $pdf->filledRectangle(50, 690, 500, 20); $pdf->setColor(0, 0, 0); $pdf->ezSetDy(3); $pdf->ezText(" EINZELWIRTSCHAFTSPLAN {$this->wp_jahr} / OBJEKT: {$this->wp_objekt_name} / EINHEIT: {$e->einheit_kurzname}", 12, array('justification' => 'full')); $pdf->setColor(0, 0, 0); /* * Aktuellen bzw. letzten Eigentümer einer Einheit holen * ohne die davor, weil nur letzter den Wirtschaftsplan bekommt */ $eig_id = $this->get_last_eigentuemer_id($einheit_id); $eig_id = $this->eigentuemer_id; $this->get_eigentumer_id_infos3($eig_id); $pdf->ezSetDy(-20); $pdf->ezText("{$this->empf_namen_u}"); $pdf->ezText("{$this->haus_strasse} {$this->haus_nummer}"); $pdf->ezSetDy(-10); $pdf->ezText("{$this->haus_plz} {$this->haus_stadt}"); $d = new detail(); $anteile_g = $d->finde_detail_inhalt('OBJEKT', $e->objekt_id, 'Gesamtanteile'); $anteile_g_a = nummer_punkt2komma_t($anteile_g); $pdf->addText(405, 670, 8, "Einheiten:"); $pdf->addText(465, 670, 8, "{$anz_einheiten}"); $pdf->addText(405, 660, 8, "Einheit:"); $pdf->addText(465, 660, 8, "{$e->einheit_kurzname}"); $pdf->addText(405, 650, 8, "Gesamtanteile:"); $pdf->addText(465, 650, 8, "{$anteile_g_a}"); $this->einheit_anteile = $d->finde_detail_inhalt('EINHEIT', $einheit_id, 'WEG-Anteile'); $pdf->addText(405, 640, 8, "Ihre MAE:"); $this->einheit_anteile_a = nummer_punkt2komma_t($this->einheit_anteile); $pdf->addText(465, 640, 8, "{$this->einheit_anteile_a}"); $e->einheit_qm_a = nummer_punkt2komma($e->einheit_qm); $pdf->addText(405, 630, 8, "Ihre Fläche:"); $pdf->addText(465, 630, 8, "{$e->einheit_qm_a} m²"); $oo = new objekt(); $qm_gesamt = $oo->get_qm_gesamt($e->objekt_id); $qm_gesamt_a = nummer_punkt2komma($qm_gesamt); $pdf->addText(405, 620, 8, "Gesamtfläche:"); $pdf->addText(465, 620, 8, "{$qm_gesamt_a} m²"); $jahres_beteiligung = 0; $gruppen_summe = 0; for ($c = 0; $c < $anz_tab; $c++) { $betrag = strip_tags($wtab_arr[$c]['BETRAG']); $kkonto = $wtab_arr[$c]['KONTO']; if (isset($wtab_arr[$c]['FORMEL'])) { $formel = $wtab_arr[$c]['FORMEL']; } // ####NEU 2014##### $pos_wirt_id = $wtab_arr[$c]['WIRT_ID']; $wtab_arr[$c]['WIRT_ID'] = $pos_wirt_id; // ##WENN KEINE BESTIMMTE WIRTE ZUR AUFTEILUNG ANGEGEBEN*/ if (!isset($pos_wirt_id) or empty($pos_wirt_id)) { if (empty($formel)) { $wtab_arr[$c]['FORMEL'] = 'MEA'; $wtab_arr[$c]['AUFTEILEN_G'] = "{$anteile_g} MEA"; $beteiligung_ant = nummer_komma2punkt($betrag) / $anteile_g * nummer_komma2punkt($this->einheit_anteile); $wtab_arr[$c]['AUFTEILEN_T'] = "{$this->einheit_anteile} MEA"; } if ($formel == 'MEA') { $wtab_arr[$c]['AUFTEILEN_G'] = "{$anteile_g} MEA"; $beteiligung_ant = nummer_komma2punkt($betrag) / $anteile_g * nummer_komma2punkt($this->einheit_anteile); $wtab_arr[$c]['AUFTEILEN_T'] = "{$this->einheit_anteile} MEA"; } if ($formel == 'ME') { $wtab_arr[$c]['AUFTEILEN_G'] = "{$anz_einheiten} WE"; $beteiligung_ant = nummer_komma2punkt($betrag) / $anz_einheiten; $wtab_arr[$c]['AUFTEILEN_T'] = "1 WE"; } if ($formel == 'QM') { $wtab_arr[$c]['AUFTEILEN_G'] = "{$qm_gesamt} m²"; $wtab_arr[$c]['AUFTEILEN_T'] = "{$e->einheit_qm} m²"; $beteiligung_ant = nummer_komma2punkt($betrag) / $qm_gesamt * $e->einheit_qm; } if ($formel == 'AUFZUG_PROZENT') { /* Aufzug nach Prozent */ $de = new detail(); $aufzug_prozent = $de->finde_detail_inhalt('EINHEIT', $einheit_id, 'WEG-Aufzugprozent'); $g_value = 100; $wtab_arr[$c]['AUFTEILEN_G'] = "100%"; $wtab_arr[$c]['AUFTEILEN_T'] = "{$aufzug_prozent}%"; $beteiligung_ant = nummer_komma2punkt($betrag) / 100 * $aufzug_prozent; // die("$beteiligung_ant = nummer_komma2punkt($betrag)/100*$aufzug_prozent;"); } if ($formel == 'WE-PROZENT') { /* Nach Prozenten der Wohnung */ $de = new detail(); $we_prozent = $de->finde_detail_inhalt('EINHEIT', $einheit_id, 'WE-Prozent'); $g_value = 100; $wtab_arr[$c]['AUFTEILEN_G'] = "100%"; $wtab_arr[$c]['AUFTEILEN_T'] = "{$we_prozent}%"; $beteiligung_ant = nummer_komma2punkt($betrag) / 100 * $we_prozent; } } else { // ##WENN BESTIMMTE WIRTE ZUR AUFTEILUNG ANGEGEBEN*/ $wirte = new wirt_e(); if (!$wirte->check_einheit_in_we($einheit_id, $pos_wirt_id)) { $beteiligung_ant = '0.00'; $wtab_arr[$c]['AUFTEILEN_T'] = ''; } else { $wirte->get_wirt_e_infos($pos_wirt_id); $wtab_arr[$c]['AUFTEILEN'] = $wirte->w_name; /* Aufteilung nur an bestimmte pos WIRT */ if (!$formel) { $wtab_arr[$c]['FORMEL'] = 'MEA'; $wtab_arr[$c]['AUFTEILEN_G'] = "{$wirte->g_mea} MEA"; $beteiligung_ant = nummer_komma2punkt($betrag) / $wirte->g_mea * nummer_komma2punkt($this->einheit_anteile); $wtab_arr[$c]['AUFTEILEN_T'] = "{$this->einheit_anteile} MEA"; } if ($formel == 'MEA') { $wtab_arr[$c]['AUFTEILEN_G'] = "{$wirte->g_mea} MEA"; $beteiligung_ant = nummer_komma2punkt($betrag) / $wirte->g_mea * nummer_komma2punkt($this->einheit_anteile); $wtab_arr[$c]['AUFTEILEN_T'] = "{$this->einheit_anteile} MEA"; } if ($formel == 'ME') { $wtab_arr[$c]['AUFTEILEN_G'] = "{$wirte->g_anzahl_einheiten} WE"; $wtab_arr[$c]['AUFTEILEN_T'] = "1 WE"; $beteiligung_ant = nummer_komma2punkt($betrag) / $wirte->g_anzahl_einheiten; } if ($formel == 'QM') { $wtab_arr[$c]['AUFTEILEN_G'] = "{$wirte->g_einheit_qm} m²"; $beteiligung_ant = nummer_komma2punkt($betrag) / $wirte->g_einheit_qm * $e->einheit_qm; $wtab_arr[$c]['AUFTEILEN_T'] = "{$e->einheit_qm} m²"; } if ($formel == 'AUFZUG_PROZENT') { /* Aufzug nach Prozent */ $de = new detail(); $aufzug_prozent = $de->finde_detail_inhalt('EINHEIT', $einheit_id, 'WEG-Aufzugprozent'); $g_value = 100; $wtab_arr[$c]['AUFTEILEN_G'] = "100%"; $wtab_arr[$c]['AUFTEILEN_T'] = "{$aufzug_prozent}%"; $beteiligung_ant = nummer_komma2punkt($betrag) / 100 * $aufzug_prozent; } if ($formel == 'WE-PROZENT') { /* Nach Prozenten der Wohnung */ $de = new detail(); $we_prozent = $de->finde_detail_inhalt('EINHEIT', $einheit_id, 'WE-Prozent'); $g_value = 100; $wtab_arr[$c]['AUFTEILEN_G'] = "100%"; $wtab_arr[$c]['AUFTEILEN_T'] = "{$we_prozent}%"; $beteiligung_ant = nummer_komma2punkt($betrag) / 100 * $we_prozent; } } } if (!empty($kkonto)) { $wtab_arr[$c]['BETEILIGUNG_ANT'] = nummer_punkt2komma($beteiligung_ant); $jahres_beteiligung = $jahres_beteiligung + nummer_komma2punkt(nummer_punkt2komma($beteiligung_ant)); $gruppen_summe += $beteiligung_ant; // } } else { if (strip_tags($wtab_arr[$c]['KONTOART_BEZ']) == 'Zwischensumme') { $gruppen_summe_a = nummer_punkt2komma_t($gruppen_summe); $wtab_arr[$c]['BETEILIGUNG_ANT'] = "<b>{$gruppen_summe_a}</b>"; $gruppen_summe = 0; $wtab_arr[$c]['AUFTEILEN_G'] = ""; $wtab_arr[$c]['AUFTEILEN_T'] = ""; } if (strip_tags($wtab_arr[$c]['KONTOART_BEZ']) == 'SALDO') { $jahres_beteiligung_a = nummer_punkt2komma_t($jahres_beteiligung); $wtab_arr[$c]['BETEILIGUNG_ANT'] = "<b>{$jahres_beteiligung_a}</b>"; $wtab_arr[$c]['AUFTEILEN_G'] = ""; $wtab_arr[$c]['AUFTEILEN_T'] = ""; } } $beteiligung_ant = 0; } $gko = strip_tags(nummer_komma2punkt($wtab_arr[$c - 1]['BETRAG'])); $jahres_beteiligung_a = nummer_punkt2komma_t($jahres_beteiligung); $wtab_arr[$c + 2]['KONTO_BEZ'] = "<b>Gesamtkosten Jahr</b>"; $wtab_arr[$c + 2]['BETEILIGUNG_ANT'] = "<b>{$jahres_beteiligung_a}</b>"; $gesamtkosten = nummer_punkt2komma_t($energie_alle + $gko); $wtab_arr[$c + 2]['BETRAG'] = "{$gesamtkosten}"; $hausgeld_neu_genau = nummer_punkt2komma($jahres_beteiligung / 12); $hausgeld_neu = round($jahres_beteiligung / 12, 0, PHP_ROUND_HALF_DOWN); $hausgeld_neu_a = nummer_punkt2komma($hausgeld_neu); $wtab_arr[$c + 4]['KONTO_BEZ'] = "<b>Hausgeld {$this->wp_jahr}\nGerundet auf vollen Euro-Betrag</b>"; $wtab_arr[$c + 4]['BETEILIGUNG_ANT'] = "<b>{$hausgeld_neu_genau} €\n{$hausgeld_neu_a} €</b>"; $monat = sprintf('%02d', date("m")); $jahr = date("Y"); $hausgeld_aktuell_a = nummer_punkt2komma_t($this->get_sume_hausgeld('Einheit', $einheit_id, $monat, $this->wp_jahr) * -1); $wtab_arr[$c + 3]['KONTO_BEZ'] = "Hausgeld bisher"; $wtab_arr[$c + 3]['BETEILIGUNG_ANT'] = "{$hausgeld_aktuell_a}"; $this->hausgeld_einnahmen_summe += $hausgeld_neu; $this->hausgelder_neu[$a]['EINHEIT'] = "{$e->einheit_kurzname}"; $this->hausgelder_neu[$a]['NAME'] = "{$this->empf_namen}"; $this->hausgelder_neu[$a]['BETRAG_ALT'] = "{$hausgeld_aktuell_a} €"; $this->hausgelder_neu[$a]['BETRAG'] = "{$hausgeld_neu_a} €"; $this->hausgelder_neu[$a]['DIFF'] = nummer_punkt2komma($hausgeld_neu - $this->get_sume_hausgeld('Einheit', $einheit_id, $monat, $this->wp_jahr) * -1); $this->hausgelder_neu[$a]['DIFF2M'] = nummer_punkt2komma(($hausgeld_neu - $this->get_sume_hausgeld('Einheit', $einheit_id, $monat, $this->wp_jahr) * -1) * 2); $this->hausgelder_neu[$a]['SE'] = nummer_punkt2komma($hausgeld_neu + ($hausgeld_neu - $this->get_sume_hausgeld('Einheit', $einheit_id, $monat, $this->wp_jahr) * -1) * 2); // $cols = array('KONTO' => "Konto", 'KONTO_BEZ' => "Bezeichnung", 'BETRAG' => "Betrag", 'AUFTEILEN' => "", 'AUFTEILEN_G' => "", 'AUFTEILEN_T' => "", 'BETEILIGUNG_ANT' => "Ihr Anteil"); $pdf->ezSetDy(-10); $pdf->ezTable($wtab_arr, $cols, "", array('showHeadings' => 1, 'shaded' => 1, 'shadeCol' => array(0.9, 0.9, 0.9), 'titleFontSize' => 8, 'fontSize' => 7, 'xPos' => 55, 'xOrientation' => 'right', 'width' => 500, 'cols' => array('BETEILIGUNG_ANT' => array('justification' => 'right', 'width' => 50), 'BETRAG' => array('justification' => 'right', 'width' => 65)))); $pdf->ezSetDy(-5); $datum = date("d.m.Y"); $pdf->ezText("Druckdatum: {$datum}"); $pdf->ezSetDy(-5); $pdf->ezText("Verteiler: MEA - Nach Miteingentumsanteilen Formel: Betrag/{$anteile_g_a}*{$this->einheit_anteile_a}"); $pdf->ezText("Verteiler: ME - Nach Anzahl der WEG-Einheiten Formel: Betrag/{$anz_einheiten}"); $pdf->ezText("Verteiler: QM - Nach Quadratmeter Formel: Betrag/{$qm_gesamt_a}*{$e->einheit_qm_a}"); unset($this->empf_namen_u); } }