function updateZahlungen($acb_nr, array $buchung) { // Modul für DB-Zugriff einbinden require_once 'konfiguration.php'; // Verbindung zur Datenbank herstellen // am System mit Host, Benutzernamen und Password anmelden @mysql_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT) or die('Could not connect to mysql server.'); @mysql_select_db(MYSQL_DATENBANK) or die('Could not select database.'); // Datum umbauen, falls nötig $datum = toSqlDatum($buchung['buchungsdatum']); // beim Betrag Komma durch Punkt ersetzen $summe = str_replace(',', '.', $buchung['betrag']); // SQL-Befehl zurecht fuddeln, // eine neue Buchung soll hinzugefügt werden $sql = sprintf(' INSERT INTO `zahlungen` ( `datum`, `summe`, `acb_nr`, `bemerkungen` ) VALUES ( "%s", %s, %s, "%s" ) ', $datum, $summe, $acb_nr, utf8_decode($buchung['bemerkungen'])); // SQL-Befehl ausführen und Buchungen aktualisieren mysql_query($sql); // SQL-Befehl zurecht fuddeln, // das entsprechende Fluggeldkonto soll aktualisiert werden $sql = sprintf('UPDATE `fluggeldkonto` SET `saldo` = `saldo` + (%s) WHERE `acb_nr` = %d', $summe, $acb_nr); // SQL-Befehl ausführen und Fluggeldkonto aktualisieren mysql_query($sql); }
function getJahresumsaetze($datum_von, $datum_bis) { // Rückgabe-Variable definieren $html = ''; // Modul für DB-Zugriff einbinden require_once 'konfiguration.php'; // Verbindung zur Datenbank herstellen // am System mit Host, Benutzernamen und Password anmelden @mysql_connect(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT) or die('Could not connect to mysql server.'); @mysql_select_db(MYSQL_DATENBANK) or die('Could not select database.'); // SQL-Befehl zurechtfuddeln, // Umsätze für den festgelegten Zeitraum ermitteln $sql = sprintf(' SELECT `preiskategorien`.`kennzeichen` AS `kennzeichen`, `flugzeuge`.`flugzeugtyp` AS `typ`, SUM(`flugbuch`.`anteilsumme_1` + `flugbuch`.`anteilsumme_2`) AS `summe`, COUNT(*) AS `fluege`, SUM(`flugbuch`.`flugzeit`) AS `flugzeit`, `preiskategorien`.`mwst_satz` AS `mwst_satz` FROM `flugbuch` INNER JOIN `preiskategorien` ON (`flugbuch`.`luftfahrzeug` = `preiskategorien`.`kennzeichen` AND `flugbuch`.`preiskategorie` = `preiskategorien`.`id`) INNER JOIN `flugzeuge` ON `flugbuch`.`luftfahrzeug` = `flugzeuge`.`kennzeichen` WHERE `flugbuch`.`datum` BETWEEN "%s" AND "%s" GROUP BY `flugbuch`.`luftfahrzeug`, `preiskategorien`.`mwst_satz` ', toSqlDatum($datum_von), toSqlDatum($datum_bis)); // zuvor definierte SQL-Anweisung ausführen // Anzahl der Datensätze sollte größer als 0 sein um TRUE zurückzugeben $db_erg = mysql_query($sql); // Zählervariable initialisieren $i = 0; // Kennzeichen zwischenspeichern $kennzeichen = ''; // Summe aller Flüge zum zwischenspeichern $summe = 0; $minuten = 0; $betrag = 0.0; $betrag_netto = 0.0; // es sind Datensätze vorhanden if (mysql_num_rows($db_erg) > 0) { $html .= '<table width="92%">'; $html .= '<tr>'; $html .= sprintf(' <td width="140"> <a href="./pdf_jahresumsaetze.php?von=%s&bis=%s" class="neuanlageMitglied" style="font-size:10pt !important;" target="_blank"> <img src="./img/pdf_icon.png" border="0" align="left" width="22" height="22" style="margin-top:-4px; margin-left:15px; margin-right:7px;" /> Die folgenden Jahresumsätze als PDF ausgeben </a> </td> ', toSqlDatum($datum_von), toSqlDatum($datum_bis)); $html .= '</tr>'; $html .= '</table>'; $html .= '<br />'; while ($zeile = mysql_fetch_object($db_erg)) { // Hintergrundfarbe für gerade/ungerade Zeilen festlegen $bgColor = $i % 2 ? '#eeeeee' : '#cccccc'; if ($kennzeichen != $zeile->kennzeichen) { if ($kennzeichen != '') { $html .= '<tr>'; $html .= '<th colspan="2" style="border-top: 3px solid #000000; padding-right: 6px;" align="right">Gesamtsumme(n) :</th>'; $html .= '<th style="border-top: 3px solid #000000;"> </th>'; $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="65">%s</th>', $minuten); $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="110">%s €</th>', number_format($betrag_netto, 2, ',', '.')); $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="110">%s €</th>', number_format($betrag - $betrag_netto, 2, ',', '.')); $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="110">%s €</th>', number_format($betrag, 2, ',', '.')); $html .= '</tr>'; // Tabellenende der vorherigen Tabelle $html .= '</table>'; $html .= '</br>'; // Summe aller Flüge einblenden $html = str_replace('###', $summe, $html); $i = 0; // Hintergrundfarbe für gerade/ungerade Zeilen festlegen $bgColor = $i % 2 ? '#eeeeee' : '#cccccc'; } // Tabellenanfang $html .= '<table border="0" cellspacing="0" cellpadding="2" class="tabelle_jahresumsaetze">'; $html .= '<tr>'; $html .= sprintf('<th bgcolor="#666666" style="color: #ffffff; font-size: 14pt; padding-left: 4px;" width="150" align="left">%s</th>', $zeile->typ); $html .= sprintf('<th bgcolor="#666666" style="color: #ffffff; font-size: 14pt; padding-left: 4px;" width="120" align="left">%s</th>', $zeile->kennzeichen); $html .= '<th colspan="5" bgcolor="#666666" style="color: #ffffff;"> </th>'; $html .= '</tr>'; $html .= '<tr height="26">'; $html .= sprintf('<td colspan="7" bgcolor="#ffffe1" style="padding-left: 8px;"><i>Zusammenfassung für "Typ" = %s (### Detaildatensätze)</i></td>', $zeile->typ); $html .= '</tr>'; $html .= '<tr height="24">'; $html .= '<th colspan="2" bgcolor="#666666"> </th>'; $html .= '<th align="right" bgcolor="#666666" style="color: #ffffff; padding-right: 4px;" width="100">MwSt-Satz %</th>'; $html .= '<th align="right" bgcolor="#666666" style="color: #ffffff; padding-right: 4px;" width="65">Minuten</th>'; $html .= '<th align="right" bgcolor="#666666" style="color: #ffffff; padding-right: 4px;" width="110">Betrag <small>(netto)</small></th>'; $html .= '<th align="right" bgcolor="#666666" style="color: #ffffff; padding-right: 4px;" width="110">Betrag <small>(MwSt)</small></th>'; $html .= '<th align="right" bgcolor="#666666" style="color: #ffffff; padding-right: 4px;" width="110">Betrag <small>(brutto)</small></th>'; $html .= '</tr>'; $kennzeichen = $zeile->kennzeichen; $summe = 0; $minuten = 0; $betrag = 0.0; $betrag_netto = 0.0; } $netto = sprintf('%01.2f', $zeile->summe * 100 / ($zeile->mwst_satz + 100)); // eine neue Zeile für die Tabelle anlegen inkl. Hintergrundfarbe $html .= sprintf('<tr bgcolor="%s" height="22">', $bgColor); $html .= '<td> </td>'; $html .= '<td width="75" align="right" style="padding-right: 6px;"><strong>Summe(n) :</strong></td>'; $html .= sprintf('<td align="right" style="padding-right: 4px;">%s %%</td>', number_format($zeile->mwst_satz, 2, ',', '.')); $html .= sprintf('<td align="right" style="padding-right: 4px;">%s</td>', $zeile->flugzeit); $html .= sprintf('<td align="right" style="padding-right: 4px;">%s €</td>', number_format($netto, 2, ',', '.')); $html .= sprintf('<td align="right" style="padding-right: 4px;">%s €</td>', number_format($zeile->summe - $netto, 2, ',', '.')); $html .= sprintf('<td align="right" style="padding-right: 4px;">%s €</td>', number_format($zeile->summe, 2, ',', '.')); $html .= '</tr>'; // Flüge aufsumieren $summe += $zeile->fluege; $minuten += $zeile->flugzeit; $betrag += $zeile->summe; $betrag_netto += $netto; // Zähler erhöhen $i++; } $html .= '<tr>'; $html .= '<th colspan="2" style="border-top: 3px solid #000000; padding-right: 6px;" align="right">Gesamtsumme(n) :</th>'; $html .= '<th style="border-top: 3px solid #000000;"> </th>'; $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="65">%s</th>', $minuten); $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="110">%s €</th>', number_format($betrag_netto, 2, ',', '.')); $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="110">%s €</th>', number_format($betrag - $betrag_netto, 2, ',', '.')); $html .= sprintf('<th align="right" style="border-top: 3px solid #000000; padding-right: 4px;" width="110">%s €</th>', number_format($betrag, 2, ',', '.')); $html .= '</tr>'; // Tabellenende der vorherigen Tabelle $html .= '</table>'; $html .= '</br>'; // Summe aller Flüge einblenden $html = str_replace('###', $summe, $html); } // Verbindung zur Datenbank schließen mysql_free_result($db_erg); // Rückgabe der Umsätze return $html; }
function getDbValue($val, $datentyp = T_STR) { // Rückgabe-Variable definieren $return = ''; // zunächst überprüfen, ob der Wert leer ist oder nicht if (!empty($val)) { // als nächstes Prüfen um welchen Datentyp es sich handelt switch ($datentyp) { case T_NUMERIC: // es handelt sich um einen numerischen Wert deshalb // wird dieser nicht in Anführungszeichen zurückgegeben $return = sprintf('%d', $val); break; case T_FLOAT: // es handelt sich um einen numerischen Wert mit Kommastellen // deshalb wird dieser nicht in Anführungszeichen zurückgegeben $return = sprintf('%01.2f', str_replace(',', '.', $val)); break; case T_DATE: // es handelt sich um einen Datums-Wert deshalb muss // dieser in das Format JJJJ-MM-TT gebracht werden $return = sprintf('"%s"', toSqlDatum($val)); break; case T_TIME: // es handelt sich um einen Zeit-Wert deshalb muss // dieser in das Format HH:MM:SS gebracht werden $return = sprintf('"%s"', $val . ':00'); break; case T_BOOL: // es handelt sich um einen booleschen Wert deshalb // wird entweder "J" für Ja oder "N" für Nein zurückgegeben $return = '"J"'; break; case T_STR: default: // in allen anderen Fällen handelt es sich um eine Zeichen- // kette, diese wird generell in Anführungszeichen zurückgegeben $return = sprintf('"%s"', utf8_decode($val)); break; } } else { // ist der Wert leer oder ungültig, // wird DB-NULL zurückgegeben if ($datentyp == T_BOOL) { $return = '"N"'; } else { if ($datentyp == T_NUMERIC) { $return = '0'; } else { if ($datentyp == T_FLOAT) { $return = '0.00'; } else { $return = 'NULL'; } } } } // Rückgabe des formatierten Feldinhaltes return $return; }