Пример #1
0
 function objekt_kopieren($objekt_id, $eigentuemer_id, $objekt_kurzname, $vorzeichen, $datum_u, $saldo_berechnen)
 {
     $this->objekt_speichern($objekt_kurzname, $eigentuemer_id);
     $n_objekt_id = $this->get_objekt_id($objekt_kurzname);
     if (!empty($n_objekt_id)) {
         echo "Objekt_id NEW {$n_objekt_id}";
         /* Details vom Objekt kopieren */
         $dd = new detail();
         $o_det_arr = $dd->finde_alle_details_arr('OBJEKT', $objekt_id);
         // print_r($o_det_arr);
         if (is_array($o_det_arr)) {
             $anz_det = count($o_det_arr);
             for ($de = 0; $de < $anz_det; $de++) {
                 $o_det_name = $o_det_arr[$de]['DETAIL_NAME'];
                 $o_det_inhalt = $o_det_arr[$de]['DETAIL_INHALT'];
                 $o_det_bemerkung = $o_det_arr[$de]['DETAIL_BEMERKUNG'];
                 $dd->detail_speichern_2('OBJEKT', $n_objekt_id, $o_det_name, $o_det_inhalt, $o_det_bemerkung);
             }
         }
         $h = new haus();
         $haus_arr = $this->haeuser_objekt_in_arr($objekt_id);
         if (!is_array($haus_arr)) {
             fehlermeldung_ausgeben("Keine Häuser im Objekt");
         } else {
             // print_r($haus_arr);
             // die();
             /* Alle Häuser durchlaufen und kopieren */
             $anz_h = count($haus_arr);
             for ($a = 0; $a < $anz_h; $a++) {
                 $haus_id = $haus_arr[$a]['HAUS_ID'];
                 $str = $haus_arr[$a]['HAUS_STRASSE'];
                 $nr = $haus_arr[$a]['HAUS_NUMMER'];
                 $ort = $haus_arr[$a]['HAUS_STADT'];
                 $plz = $haus_arr[$a]['HAUS_PLZ'];
                 $qm = $haus_arr[$a]['HAUS_QM'];
                 $h = new haus();
                 $n_haus_id = $h->haus_speichern($str, $nr, $ort, $plz, $qm, $n_objekt_id);
                 echo "{$str} {$nr} kopiert<br>";
                 /* Details vom Haus kopieren */
                 $dd = new detail();
                 $h_det_arr = $dd->finde_alle_details_arr('HAUS', $haus_id);
                 // print_r($h_det_arr);
                 if (is_array($h_det_arr)) {
                     $anz_det_h = count($h_det_arr);
                     for ($deh = 0; $deh < $anz_det_h; $deh++) {
                         $h_det_name = $h_det_arr[$deh]['DETAIL_NAME'];
                         $h_det_inhalt = $h_det_arr[$deh]['DETAIL_INHALT'];
                         $h_det_bemerkung = $h_det_arr[$deh]['DETAIL_BEMERKUNG'];
                         $dd->detail_speichern_2('HAUS', $n_haus_id, $h_det_name, $h_det_inhalt, $h_det_bemerkung);
                     }
                 }
                 $einheiten_arr = $h->liste_aller_einheiten_im_haus($haus_id);
                 if (is_array($einheiten_arr)) {
                     // print_r($einheiten_arr);
                     $anz_e = count($einheiten_arr);
                     for ($e = 0; $e < $anz_e; $e++) {
                         $einheit_id = $einheiten_arr[$e]['EINHEIT_ID'];
                         $einheit_qm = nummer_punkt2komma($einheiten_arr[$e]['EINHEIT_QM']);
                         $einheit_lage = $einheiten_arr[$e]['EINHEIT_LAGE'];
                         $einheit_kurzname = $einheiten_arr[$e]['EINHEIT_KURZNAME'];
                         $einheit_typ = $einheiten_arr[$e]['TYP'];
                         $ein = new einheit();
                         $einheit_kn_arr = explode('-', $einheit_kurzname);
                         // print_r($einheit_kn_arr);
                         $l_elem = count($einheit_kn_arr) - 1;
                         $n_einheit_kurzname = $vorzeichen . '-' . $einheit_kn_arr[$l_elem];
                         echo "{$einheit_kurzname} -> {$n_einheit_kurzname}<br>";
                         $n_einheit_id = $ein->einheit_speichern($n_einheit_kurzname, $einheit_lage, $einheit_qm, $n_haus_id, $einheit_typ);
                         /* Details von Einheiten kopieren */
                         $dd = new detail();
                         $e_det_arr = $dd->finde_alle_details_arr('EINHEIT', $einheit_id);
                         // print_r($e_det_arr);
                         if (is_array($e_det_arr)) {
                             $anz_det_e = count($e_det_arr);
                             for ($dee = 0; $dee < $anz_det_e; $dee++) {
                                 $e_det_name = $e_det_arr[$dee]['DETAIL_NAME'];
                                 $e_det_inhalt = $e_det_arr[$dee]['DETAIL_INHALT'];
                                 $e_det_bemerkung = $e_det_arr[$dee]['DETAIL_BEMERKUNG'];
                                 $dd->detail_speichern_2('EINHEIT', $n_einheit_id, $e_det_name, $e_det_inhalt, $e_det_bemerkung);
                             }
                         }
                         /* Eigentümer kopieren */
                         $weget = new weg();
                         $et_arr = $weget->get_eigentuemer_arr($einheit_id);
                         if (is_array($et_arr)) {
                             $anz_et = count($et_arr);
                             for ($eta = 0; $eta < $anz_et; $eta++) {
                                 $et_von = $et_arr[$eta]['VON'];
                                 $et_bis = $et_arr[$eta]['BIS'];
                                 $weg_et_id = $et_arr[$eta]['ID'];
                                 $neu_et_id = $weget->eigentuemer_neu($n_einheit_id, $et_von, $et_bis);
                                 /* Personen zu ET eintragen */
                                 $p_id_arr = $weget->get_person_id_eigentuemer_arr($weg_et_id);
                                 if (is_array($p_id_arr)) {
                                     $anz_p_et = count($p_id_arr);
                                     for ($pp = 0; $pp < $anz_p_et; $pp++) {
                                         $tmp_p_id = $p_id_arr[$pp]['PERSON_ID'];
                                         $weget->person_zu_et($neu_et_id, $tmp_p_id);
                                     }
                                 }
                                 /* Geldkonten finden und zuweisen */
                                 $gki = new geldkonto_info();
                                 $gk_arr = $gki->geldkonten_arr('Eigentuemer', $weg_et_id);
                                 if (is_array($gk_arr)) {
                                     $anz_gk = count($gk_arr);
                                     for ($gka = 0; $gka < $anz_gk; $gka++) {
                                         $tmp_gk_id = $gk_arr[$gka]['KONTO_ID'];
                                         /**
                                          * *Konto eintragen**
                                          */
                                         $gkk = new gk();
                                         $gkk->zuweisung_speichern('Eigentuemer', $neu_et_id, $tmp_gk_id);
                                     }
                                 }
                             }
                         }
                         /* Mietverträge */
                         $mv_arr = $ein->get_mietvertrag_ids($einheit_id);
                         if (is_array($mv_arr)) {
                             $anz_mv = count($mv_arr);
                             // print_r($mv_arr);
                             for ($m = 0; $m < $anz_mv; $m++) {
                                 $mv_id = $mv_arr[$m]['MIETVERTRAG_ID'];
                                 $mvs = new mietvertraege();
                                 $mvs->get_mietvertrag_infos_aktuell($mv_id);
                                 // print_r($mvs);
                                 $n_mv_id = $mvs->mietvertrag_speichern($mvs->mietvertrag_von_d, $mvs->mietvertrag_bis_d, $n_einheit_id);
                                 for ($pp = 0; $pp < $mvs->anzahl_personen; $pp++) {
                                     $person_id = $mvs->personen_ids[$pp]['PERSON_MIETVERTRAG_PERSON_ID'];
                                     $mvs->person_zu_mietvertrag($person_id, $n_mv_id);
                                 }
                                 /* Details von MV's kopieren */
                                 $dd = new detail();
                                 $mv_det_arr = $dd->finde_alle_details_arr('MIETVERTRAG', $mv_id);
                                 // print_r($e_det_arr);
                                 if (is_array($mv_det_arr)) {
                                     $anz_det_m = count($mv_det_arr);
                                     for ($dem = 0; $dem < $anz_det_m; $dem++) {
                                         $m_det_name = $mv_det_arr[$dem]['DETAIL_NAME'];
                                         $m_det_inhalt = $mv_det_arr[$dem]['DETAIL_INHALT'];
                                         $m_det_bemerkung = $mv_det_arr[$dem]['DETAIL_BEMERKUNG'];
                                         $dd->detail_speichern_2('MIETVERTRAG', $n_mv_id, $m_det_name, $m_det_inhalt, $m_det_bemerkung);
                                     }
                                 }
                                 /* Mietentwicklung kopieren */
                                 $mit = new mietentwicklung();
                                 $mit->get_mietentwicklung_infos($mv_id, '', '');
                                 // print_r($mit);
                                 if (is_array($mit->kostenkategorien)) {
                                     $anz_me = count($mit->kostenkategorien);
                                     for ($ko = 0; $ko < $anz_me; $ko++) {
                                         $kat = $mit->kostenkategorien[$ko]['KOSTENKATEGORIE'];
                                         $anfang = $mit->kostenkategorien[$ko]['ANFANG'];
                                         $ende = $mit->kostenkategorien[$ko]['ENDE'];
                                         $betrag = $mit->kostenkategorien[$ko]['BETRAG'];
                                         $mwst_anteil = $mit->kostenkategorien[$ko]['MWST_ANTEIL'];
                                         $mit->me_speichern('MIETVERTRAG', $n_mv_id, $kat, $anfang, $ende, $betrag, $mwst_anteil);
                                     }
                                     // end for $ko
                                 }
                                 /* Saldo zum $datum_u ermitteln und den neuen Saldovortragvorverwaltung eingeben */
                                 $datum_saldo_vv = date_german2mysql($datum_u);
                                 $datum_saldo_vv_arr = explode('.', $datum_u);
                                 $datum_jahr = $datum_saldo_vv_arr[2];
                                 $datum_monat = $datum_saldo_vv_arr[1];
                                 $mzz = new miete();
                                 if ($saldo_berechnen == 1) {
                                     $mzz->mietkonto_berechnung_monatsgenau($mv_id, $datum_jahr, $datum_monat);
                                     echo "MIT SALDO<br>";
                                     $mit->me_speichern('MIETVERTRAG', $n_mv_id, 'Saldo Vortrag Vorverwaltung', $datum_saldo_vv, $datum_saldo_vv, $mzz->erg, $mzz->erg / 119 * 19);
                                 } else {
                                     echo "OHNE SALDO<br>";
                                     $mit->me_speichern('MIETVERTRAG', $n_mv_id, 'Saldo Vortrag Vorverwaltung', $datum_saldo_vv, $datum_saldo_vv, '0.00', '0.00');
                                 }
                                 /* ME 0000-00-00 auf $datum_u setzen */
                             }
                             // end for alle MV'S
                         } else {
                             echo "Mv zu {$einheit_kurzname} nicht gefunden - Leerstand";
                         }
                         // die('ENDE');
                     }
                     // end for einheit
                 } else {
                     echo "Keine Einheiten kopiert";
                 }
             }
             // end for haus
         }
     } else {
         die('Objekt konnte nicht angelegt werden!');
     }
 }