#include <phptools.inc>
#include "account.inc"
+<?php
+function filter_account()
+{
+ if ((strlen($_POST['currency']) > 0) && ($_POST['currency'] == "dm")) {
+ $account = new AccountingDM();
+ } else {
+ $account = new Accounting();
+ }
+
+ return $account->filterTable($_POST);
+}
+
+if (!empty($_POST['ajax']) && $_POST['ajax'] == 1) {
+ echo utf8_encode(filter_account());
+ exit;
+}
+
+?>
+
<page func=InfoCon title="Kontoführung">
+<calendar_init -5>
<account_heading>
<form_to_yyyymmdd>
-<table class="border smallfont" width=100% border=0 cellpadding=1 cellspacing=0>
+<style type="text/css">
+div#filter_popup {
+ background: white;
+ border: 1px solid #CCC;
+ height:auto;
+ width:340px;
+ position:absolute;
+}
+div#filter_title {
+ width: 100%;
+ cursor: move;
+ background: #EEE;
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+</style>
+<table class="border smallfont yellow-hover" width=100% border=0 cellpadding=0 cellspacing=1>
+<thead>
<tr class=head>
- <th width=10%><font face="Helvetica,Arial">Datum</font></th>
- <th width=10%><font face="Helvetica,Arial">Kategorie</font></th>
- <th width=70%><font face="Helvetica,Arial">Verwendungszweck</font></th>
- <th width=10%><font face="Helvetica,Arial">Betrag</font></th>
+ <th width=10%>Datum</th>
+ <th width=10%>Kategorie</th>
+ <th width=70%>Verwendungszweck</th>
+ <th width=10%>Betrag</th>
</tr>
-<?
- pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");
-
- $table = "account";
- $value = "value_eur";
- $add = '';
- if ((strlen ($_POST[currency]) > 0) && ($_POST[currency] == "dm")) {
- $table = "account_dm";
- $value = "value_dm";
- $add = "&cur=dm";
- }
-
- $where[] = "blz_kto = '$_POST[blzkto]'";
- if (strlen($_POST[year])) {
- $where[] = sprintf ("datum >= '%04d-01-01'", $_POST[year]);
- $year++;
- $where[] = sprintf ("datum < '%04d-01-01'", $_POST[year]+1);
- }
-
- if (strlen($_POST[deadline])) {
- $date = form_to_yyyymmdd ($_POST[deadline]);
- $where[] = sprintf ("datum < '%s'", $date);
- }
-
- if (strlen($_POST[statement])) {
- $where[] = "statement = '$_POST[statement]'";
- }
-
- if (strlen($_POST[category])) {
- $where[] = "category = '$_POST[category]'";
- }
-
- if (strlen($_POST[keyword])) {
- $where[] = "descr ~* '$_POST[keyword]'";
- }
-
- if (strlen($_POST[from_to])) {
- $where[] = "from_to = '$_POST[from_to]'";
- }
-
- if ($_POST[input] && !$_POST[output]) {
- $where[] = "$value > 0.0";
- } elseif ($_POST[output] && !$_POST[input]) {
- $where[] = "$value < 0.0";
- }
-
- $query = "SELECT datum,oid,category,descr,$value FROM $table WHERE "
- . implode ($where, " AND ")
- . " ORDER BY datum,oid";
- $sth = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
-
- $sum = 0.0;
- $sum_in = 0.0;
- $sum_out = 0.0;
- $color = 0;
- for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
- $row = pg_fetch_array ($sth, $nr);
-
- $descr = explode ("
-", $row['descr']);
- $date = explode (" ", $row['datum']);
- $date = explode ("-", $date[0]);
- $date = sprintf ("%d.%d.%d", $date[2], $date[1], $date[0]);
-
- printf ("<tr class=\"t%d\">", $color);
- printf ("<td width=\"10%%\" align=\"right\"><font face=\"Helvetica,Arial\">%s</font></td>", $date);
- printf ("<td width=\"10%%\" align=\"center\"><font face=\"Helvetica,Arial\">%s</font></td>", $row['category']);
- printf ("<td width=\"70%%\"><font face=\"Helvetica,Arial\"><a href=\"edit.php?oid=%d%s\">%s</a></font></td>",
- $row['oid'], $add, $descr[0]);
- printf ("<td width=\"10%%\" align=\"right\"><font face=\"Helvetica,Arial\">%5.2f</font></td>", $row[$value]);
- $sum += $row[$value];
- if ($row[$value] > 0) {
- $sum_in += $row[$value];
- } else {
- $sum_out += $row[$value];
- }
- echo ("</tr>");
- $color = !$color;
- }
- printf ("<tr class=\"t%d\">", $color);
- echo ("<th width=\"90%\" colspan=\"3\"><font face=\"Helvetica,Arial\">Summe</font></th>");
- printf ("<th width=\"10%%\" align=\"right\"><font face=\"Helvetica,Arial\">%5.2f</font></th>", $sum);
- echo ("</tr>");
- if (strlen($statement)) {
- printf ("<tr class=\"t%d\">", $color);
- echo ("<th width=\"90%\" colspan=\"3\"><font face=\"Helvetica,Arial\">Summe Einnahmen</font></th>");
- printf ("<th width=\"10%%\" align=\"right\"><font face=\"Helvetica,Arial\">%5.2f</font></th>", $sum_in);
- echo ("</tr>");
- printf ("<tr class=\"t%d\">", $color);
- echo ("<th width=\"90%\" colspan=\"3\"><font face=\"Helvetica,Arial\">Summe Ausgaben</font></th>");
- printf ("<th width=\"10%%\" align=\"right\"><font face=\"Helvetica,Arial\">%5.2f</font></th>", $sum_out*-1);
- echo ("</tr>");
- }
-
-?>
+</thead>
+<tbody>
+<?=(count($_GET)?'':filter_account())?>
+</tbody>
</table><p>
-<? printf ("<a href=\"edit.php?blzkto=%s\"><strong>Neuer Eintrag</strong></a>", $_POST[blzkto]); ?>
+<protect><script type="text/javascript">
+$(function(){
+ $('table.border tr').not('.head').click(function(){
+ $(this).toggleClass('highlight');
+ if ($(this).hasClass('highlight'))
+ $(this).css('backgroundColor','#add8e6');
+ else
+ $(this).css('backgroundColor','');
+ });
+ $('body').append('<script type="text/javascript" src="../../jquery.udraggable.js"><\/script>');
+ $('body').append('<script type="text/javascript" src="../../jquery.event.ue.js"><\/script>');
+ $('body').append('<script type="text/javascript" src="../../jquery.editable.js"><\/script>');
+});
+
+//+ Jonas Raoni Soares Silva
+//@ http://jsfromhell.com/geral/utf-8 [rev. #1]
+
+UTF8 = {
+ encode: function(s){
+ for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l;
+ s[i] = (c = s[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s[i]
+ );
+ return s.join("");
+ },
+ decode: function(s){
+ for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;
+ ((a = s[i][c](0)) & 0x80) &&
+ (s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ?
+ o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "")
+ );
+ return s.join("");
+ }
+};
+
+function filter_popup()
+{
+ if (!$('#filter_popup form input').length) {
+ $.get('query.php',
+ window.location.search.substr(1)+'&ajax=1',
+ function(data) {
+ var text = '<style type="text/css">';
+ text += '#fc { z-index: 10; }';
+ $(data).find('style').each(function(i,e){
+ text += $(this).html();
+ });
+ text += '</style>';
+ text += $(data).find('form').html();
+ $('#filter_popup form').html(text);
+
+ $('#filter_popup').udraggable({
+ 'handle': 'div#filter_title'
+ }).css('top', '70px').css('left', '103px');
+
+ $('#filter_popup form input,#filter_popup form select').not('input.button').change(function(e){
+ $.invoke('Accounting/Filter',
+ $('#filter_popup form').serialize(),
+ function(data){
+ $('table.border tbody').html(data.table);
+ make_editable('table.smallfont tr span');
+ });
+ return false;
+ });
+
+ $('#filter_popup form input.button[type="submit"]').click(function(e){
+ $.invoke('Accounting/Filter',
+ $('#filter_popup form').serialize(),
+ function(data){
+ $('table.border tbody').html(data.table);
+ $('#filter_popup').hide();
+ make_editable('table.smallfont tr span');
+ });
+ return false;
+ });
+ });
+ }
+ if ($('#filter_popup:visible').length)
+ $('#filter_popup').hide();
+ else
+ $('#filter_popup').show();
+
+ return false;
+}
+
+</script></protect>
+<div id="filter_popup" style="display:none;">
+<div id="filter_title">Filter setzen</div>
+<div style="padding:5px;">
+<form id="filter_form"></form>
+</div>
+</div>
</page>
# Local variables: