} } if ($r->rechnungstyp == 'Gutschrift' or $r->rechnungstyp == 'Stornorechnung') { /* Zahlung */ if ($r->empfangs_geld_konto != $geldkonto_id) { $vorzeichen = ''; } else { $vorzeichen = '-'; } } /* Falls nur ein Betrag zu buchen ist */ if ($buchungs_art == 'Gesamtbetrag') { if ($buchungsbetrag == 'Skontobetrag') { $proz = $r->rechnungs_mwst / ($r->rechnungs_brutto / 100); $skontiert_mwst = $r->rechnungs_skontobetrag * $proz / 100; $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $r->rechnungs_skontobetrag, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto, $vorzeichen . $skontiert_mwst); } if ($buchungsbetrag == 'Bruttobetrag') { $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $r->rechnungs_brutto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto, $vorzeichen . $r->rechnungs_mwst); } if ($buchungsbetrag == 'Nettobetrag') { $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $r->rechnungs_netto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto); } } /* Falls mehrere Beträge zu buchen sind, d.h wie kontiert */ if ($buchungs_art == 'Teilbetraege') { $r->beleg_kontierungs_arr($datum, $kto_auszugsnr, $belegnr, $vorzeichen, $buchungsbetrag, $vzweck, $geldkonto_id); } if ($r->empfangs_geld_konto == $geldkonto_id) { if ($r->rechnungstyp == 'Gutschrift') { $r->rechnung_als_gezahlt($belegnr, $datum);
function beleg_kontierungs_arr($datum, $kto_auszugsnr, $belegnr, $vorzeichen, $buchungsbetrag, $vzweck, $geldkonto_id) { $this->rechnung_grunddaten_holen($belegnr); $r = new rechnung(); // aus berlussimo_class $b = new buchen(); // benötigt zum verbuchen einzelner positionen nach kontierung $kontierungs_status = $r->rechnung_auf_kontierung_pruefen($belegnr); if ($kontierungs_status == 'vollstaendig') { /* * ALT OK Ohne MWST * * $result = mysql_query ("SELECT sum( GESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) AS NETTO, sum( ( * ( * GESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) /100 * ) * ( 100 + MWST_SATZ ) * ) AS BRUTTO, sum( ( * ( * ( * GESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) /100 * ) * ( 100 + MWST_SATZ ) /100 * ) * ( 100 - SKONTO ) * ) AS SKONTO_BETRAG, * * KONTENRAHMEN_KONTO, KOSTENTRAEGER_TYP, KOSTENTRAEGER_ID * FROM `KONTIERUNG_POSITIONEN` * WHERE BELEG_NR = '$belegnr' && AKTUELL = '1' * GROUP BY KOSTENTRAEGER_TYP, KOSTENTRAEGER_ID, KONTENRAHMEN_KONTO") or die(mysql_error()); */ $result = mysql_query("SELECT *, BRUTTO-NETTO AS MWST_BRUTTO, (BRUTTO-NETTO)/100*(100-SKONTO) AS MWST_SKONTIERT FROM ( \nSELECT sum( GESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) AS NETTO, sum( (\n(\nGESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) /100\n) * ( 100 + MWST_SATZ )\n) AS BRUTTO, sum( (\n(\n(\nGESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) /100\n) * ( 100 + MWST_SATZ ) /100\n) * ( 100 - SKONTO )\n) AS SKONTO_BETRAG,\n\n\n KONTENRAHMEN_KONTO, KOSTENTRAEGER_TYP, KOSTENTRAEGER_ID,SKONTO\nFROM `KONTIERUNG_POSITIONEN`\nWHERE BELEG_NR = '{$belegnr}' && AKTUELL = '1'\nGROUP BY KOSTENTRAEGER_TYP, KOSTENTRAEGER_ID, KONTENRAHMEN_KONTO) as t1") or die(mysql_error()); $numrows = mysql_numrows($result); if ($numrows > 0) { while ($row = mysql_fetch_assoc($result)) { $my_array[] = $row; // $art_bez = $r->kontierungsartikel_holen($belegnr, $pos); // $vzweck_neu = "ERFNR:$belegnr, Position $pos,"." $menge x $art_bez"; $kostentraeger_typ = $row['KOSTENTRAEGER_TYP']; $kostentraeger_id = $row['KOSTENTRAEGER_ID']; $kostenkonto = $row['KONTENRAHMEN_KONTO']; $netto = sprintf("%01.2f", $row['NETTO']); // $netto_mwst = sprintf("%01.2f", $row['MWST_NETTO']); $brutto = sprintf("%01.2f", $row['BRUTTO']); $brutto_mwst = sprintf("%01.2f", $row['MWST_BRUTTO']); $skonto = sprintf("%01.2f", $row['SKONTO_BETRAG']); $skonto_mwst = sprintf("%01.2f", $row['MWST_SKONTIERT']); if ($buchungsbetrag == 'Nettobetrag') { $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $netto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto); } if ($buchungsbetrag == 'Bruttobetrag') { $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $brutto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto, $vorzeichen . $brutto_mwst); } if ($buchungsbetrag == 'Skontobetrag') { $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $skonto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto, $vorzeichen . $skonto_mwst); } } // end while } // end if $numrows weiterleiten_in_sec('?daten=buchen&option=buchungs_journal', 2); } else { echo "FEHLER: Kontierung {$kontierungs_status}"; weiterleiten_in_sec("?daten=rechnungen&option=rechnung_kontieren&belegnr={$belegnr}", 3); } }
function ueberwiesene_rechnung_buchen($datum, $kto_auszugsnr, $belegnr, $vorzeichen, $rechnungs_betrag, $vzweck, $geldkonto_id) { $r = new rechnung(); // aus berlussimo_class $b = new buchen(); // benötigt zum verbuchen einzelner positionen nach kontierung $r->rechnung_grunddaten_holen($belegnr); $kontierungs_status = $r->rechnung_auf_kontierung_pruefen($belegnr); if ($kontierungs_status == 'vollstaendig') { $result = mysql_query("SELECT sum( GESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) AS NETTO, sum( (\n(\nGESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) /100\n) * ( 100 + MWST_SATZ )\n) AS BRUTTO, sum( (\n(\n(\nGESAMT_SUMME - ( GESAMT_SUMME /100 * RABATT_SATZ ) ) /100\n) * ( 100 + MWST_SATZ ) /100\n) * ( 100 - SKONTO )\n) AS SKONTO_BETRAG, KONTENRAHMEN_KONTO, KOSTENTRAEGER_TYP, KOSTENTRAEGER_ID, MWST_SATZ\nFROM `KONTIERUNG_POSITIONEN`\nWHERE BELEG_NR = '{$belegnr}' && AKTUELL = '1'\nGROUP BY KOSTENTRAEGER_TYP, KOSTENTRAEGER_ID, KONTENRAHMEN_KONTO") or die(mysql_error()); $numrows = mysql_numrows($result); if ($numrows > 0) { while ($row = mysql_fetch_assoc($result)) { // $my_array[] = $row; // $art_bez = $r->kontierungsartikel_holen($belegnr, $pos); // $vzweck_neu = "ERFNR:$belegnr, Position $pos,"." $menge x $art_bez"; $kostentraeger_typ = $row['KOSTENTRAEGER_TYP']; $kostentraeger_id = $row['KOSTENTRAEGER_ID']; $kostenkonto = $row['KONTENRAHMEN_KONTO']; $netto = sprintf("%01.2f", $row['NETTO']); $brutto = sprintf("%01.2f", $row['BRUTTO']); $skonto = sprintf("%01.2f", $row['SKONTO_BETRAG']); $mwst_satz = $row['MWST_SATZ']; /* Netto ohne MWST buchen */ if ($rechnungs_betrag == $r->rechnungs_netto) { $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $netto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto); } /* Brutto oder Skontiert = brutto, also OHNE SKONTO */ if ($rechnungs_betrag == $r->rechnungs_brutto) { $mwst = $brutto / (100 + $mwst_satz) * $mwst_satz; $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $brutto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto, $vorzeichen . $mwst); } /* Skontiert buchen */ if ($rechnungs_betrag == $r->rechnungs_skontobetrag && $rechnungs_betrag < $r->rechnungs_brutto) { $mwst = $skonto / (100 + $mwst_satz) * $mwst_satz; $b->geldbuchung_speichern_rechnung($datum, $kto_auszugsnr, $belegnr, $vorzeichen . $skonto, $vzweck, $geldkonto_id, $kostentraeger_typ, $kostentraeger_id, $kostenkonto, $vorzeichen . $mwst); } } // end while } // end if $numrows echo "RECHNUNG {$belegnr} wurde gebucht!<br>"; // weiterleiten_in_sec('?daten=buchen&option=buchungs_journal', 2); } else { fehlermeldung_ausgeben("FEHLER: Kontierung {$kontierungs_status} ->Erfassungsnr: {$belegnr}"); // weiterleiten_in_sec("?daten=rechnungen&option=rechnung_kontieren&belegnr=$belegnr", 3); } }
function wohngeld_buchung_speichern($eigentuemer_id, $einheit_id, $geldkonto_id, $datum, $kontoauszug, $def_array, $def_b_texte, $wg_g_konto, $wg_g_betrag, $buchungstext) { /* Wohngeldgesamtbetrag buchen */ $kontoauszugsnr = $kontoauszug; $b = new buchen(); $datum = date_german2mysql($datum); $wg_g_betrag = nummer_komma2punkt($wg_g_betrag); $b->geldbuchung_speichern_rechnung($datum, $kontoauszugsnr, $kontoauszugsnr, $wg_g_betrag, $buchungstext, $geldkonto_id, 'Eigentuemer', $eigentuemer_id, $wg_g_konto); /* Buchung der Einzelbeträge */ $anz = count($def_array); if ($anz > 0) { $def_konten = array_keys($def_array); } for ($a = 0; $a < $anz; $a++) { $buchungskonto = $def_konten[$a]; $buchungs_betrag = $def_array[$buchungskonto]; $buchungstext1 = $def_b_texte[$a]; /* Teilbuchung auf dem Gruppenkonto runter nehmen als Negativbetrag */ if ($buchungs_betrag > 0) { $buchungs_betrag = '-' . $buchungs_betrag; } else { $buchungs_betrag = substr($buchungs_betrag, 1); } $buchungs_betrag_db = nummer_komma2punkt($buchungs_betrag); $b->geldbuchung_speichern_rechnung($datum, $kontoauszugsnr, $kontoauszugsnr, $buchungs_betrag_db, $buchungstext1, $geldkonto_id, 'Eigentuemer', $eigentuemer_id, $wg_g_konto); if ($buchungs_betrag < 0) { $buchungs_betrag = substr($buchungs_betrag, 1); } else { $buchungs_betrag = '-' . $buchungs_betrag; } $buchungs_betrag_db = nummer_komma2punkt($buchungs_betrag); /* Teilbuchung auf separatem Buchungskonto */ $b->geldbuchung_speichern_rechnung($datum, $kontoauszugsnr, $kontoauszugsnr, $buchungs_betrag_db, $buchungstext1, $geldkonto_id, 'Eigentuemer', $eigentuemer_id, $buchungskonto); } $f = new formular(); $f->fieldset("Geldkontoinfos", 'kontrol'); $g = new geldkonto_info(); $kontostand_aktuell = nummer_punkt2komma($g->geld_konto_stand($_SESSION['geldkonto_id'])); if (isset($_SESSION[temp_kontostand]) && isset($_SESSION[temp_kontoauszugsnummer])) { $kontostand_temp = nummer_punkt2komma($_SESSION[temp_kontostand]); echo "<h3>Kontostand am {$_SESSION['temp_datum']} laut Kontoauszug {$_SESSION['temp_kontoauszugsnummer']} war {$kontostand_temp} €</h3>"; } if ($kontostand_aktuell == $kontostand_temp) { echo "<h3>Kontostand aktuell: {$kontostand_aktuell} €</h3>"; } else { echo "<h3 style=\"color:red\">Kontostand aktuell: {$kontostand_aktuell} €</h3>"; } $f->fieldset_ende(); weiterleiten_in_sec('?daten=weg&option=wohngeld_buchen_auswahl_e', 3); }