function erstelle_rechnung_u_pool($kos_typ, $kos_id, $aussteller_typ, $aussteller_id, $r_datum, $f_datum, $kurzinfo, $gk_id, $pool_ids_string) { $rr = new rechnung(); // aus berlussimo class if ($kos_typ == 'Partner') { $kos_typ_n = 'Partner'; $kos_id_n = $kos_id; } if ($kos_typ == 'Objekt') { $kos_typ_n = 'Partner'; $kos_id_n = $rr->eigentuemer_ermitteln('Objekt', $kos_id); } if ($kos_typ == 'Haus') { $kos_typ_n = 'Partner'; $kos_id_n = $rr->eigentuemer_ermitteln('Haus', $kos_id); } if ($kos_typ == 'Einheit') { $kos_typ_n = 'Partner'; $kos_id_n = $rr->eigentuemer_ermitteln('Einheit', $kos_id); } // echo "$kos_typ, $kos_id, $aussteller_typ, $aussteller_id,$r_datum, $f_datum, $kurzinfo"; // die(); if ($kos_typ_n == $aussteller_typ && $aussteller_id == $kos_id_n) { $rechnungstyp = 'Buchungsbeleg'; } else { $rechnungstyp = 'Rechnung'; } $datum_arr = explode('.', $r_datum); $jahr = $datum_arr[2]; // echo "$jahr $rechnungstyp"; $r = new rechnung(); $letzte_aussteller_rnr = $r->letzte_aussteller_ausgangs_nr($aussteller_id, $aussteller_typ, $jahr, $rechnungstyp); $letzte_aussteller_rnr = $letzte_aussteller_rnr + 1; $letzte_aussteller_rnr1 = sprintf('%03d', $letzte_aussteller_rnr); /* Kürzel */ $rechnungsdatum_sql = date_german2mysql($r_datum); $rechnungs_kuerzel = $r->rechnungs_kuerzel_ermitteln($aussteller_typ, $aussteller_id, $rechnungsdatum_sql); $rechnungsnummer = $this->rechnungs_kuerzel . ' ' . $letzte_aussteller_rnr1 . '-' . $jahr; // echo "$rechnungs_kuerzel $rechnungsnummer"; /* Prüfen ob Rechnung vorhanden */ $check_rechnung = $r->check_rechnung_vorhanden($rechnungsnummer, $rechnungsdatum_sql, $aussteller_typ, $aussteller_id, $kos_typ, $kos_id, $rechnungstyp); /* Wenn rechnung existiert */ if ($check_rechnung) { fehlermeldung_ausgeben("Abbruch : {$rechnungstyp} mit der Nummer {$rechnungsnummer} existiert bereits."); } else { $letzte_empfaenger_rnr = $r->letzte_empfaenger_eingangs_nr($kos_id_n, $kos_typ_n, $jahr, $rechnungstyp); $letzte_empfaenger_rnr = $letzte_empfaenger_rnr + 1; /* Letzte Belegnummer holen */ $letzte_belegnr = $r->letzte_beleg_nr(); $letzte_belegnr = $letzte_belegnr + 1; $f_datum_sql = date_german2mysql($f_datum); $db_abfrage = "INSERT INTO RECHNUNGEN VALUES (NULL, '{$letzte_belegnr}', '{$rechnungsnummer}', '{$letzte_aussteller_rnr}', '{$letzte_empfaenger_rnr}', '{$rechnungstyp}', '{$rechnungsdatum_sql}','{$rechnungsdatum_sql}', '0.00','0.00','0.00', '{$aussteller_typ}', '{$aussteller_id}','{$kos_typ_n}', '{$kos_id_n}','1', '1', '1', '0', '1', '0', '0', '{$f_datum_sql}', '0000-00-00', '{$kurzinfo}', '{$gk_id}')"; // echo $db_abfrage; $resultat = mysql_query($db_abfrage) or die(mysql_error()); /* Protokollieren */ $last_dat = mysql_insert_id(); protokollieren('RECHNUNGEN', $last_dat, '0'); /* Ausgabe weil speichern erfolgreich */ // echo "$rechnungstyp $rechnungs_kuerzel wurde erfasst."; } $pool_ids_arr = explode('|P|', $pool_ids_string); $anz = count($pool_ids_arr); unset($pool_ids_arr[$anz - 1]); // print_r($pool_ids_arr); // die(); $anz = count($pool_ids_arr); if ($anz > 0) { $pool_id_temp = ''; $v_pos = 0; for ($i = 0; $i < $anz; $i++) { $pool_id = $pool_ids_arr[$i]; $pos_arr = $this->get_pool_pos_arr_bypos($kos_typ, $kos_id, $aussteller_typ, $aussteller_id, $pool_id); $anz_p = count($pos_arr); for ($a = 0; $a < $anz_p; $a++) { $v_pos++; if ($pool_id != $pool_id_temp) { $pool_id_temp = $pool_id; $pool_bez = $this->get_pool_bez($pool_id); $this->insert_pool_bez_in_gruppe($pool_bez, $letzte_belegnr, $v_pos); } $u_beleg_nr = $pos_arr[$a]['U_BELEG_NR']; $u_pos = $pos_arr[$a]['U_POS']; // $lieferant_id =''; // $artikel_nr = ''; $art_info = $this->get_position($u_beleg_nr, $u_pos); $artikel_nr = $art_info['ARTIKEL_NR']; $lieferant_id = $art_info['ART_LIEFERANT']; $menge = $pos_arr[$a]['MENGE']; $preis = $pos_arr[$a]['V_PREIS']; $mwst = $pos_arr[$a]['MWST_SATZ']; $skonto = $pos_arr[$a]['SKONTO']; $rabatt = $pos_arr[$a]['RABATT_SATZ']; $g_netto = nummer_komma2punkt(nummer_punkt2komma($pos_arr[$a]['G_SUMME'])); $pp_dat = $pos_arr[$a]['PP_DAT']; $this->position_speichern($letzte_belegnr, $u_beleg_nr, $lieferant_id, $artikel_nr, $menge, $preis, $mwst, $skonto, $rabatt, $g_netto); $this->pool_pos_deaktivieren($pp_dat); } $this->pools_clean($pool_id); } } }