diff --git a/INSTALL b/INSTALL index ced7d13..2fe7364 100644 --- a/INSTALL +++ b/INSTALL @@ -4,7 +4,11 @@ libsqlite3-dev libwxgtk2.8-dev g++ make +gettext +Optionnal : +poeditor +php5 ** Compilation of extra libraries ** cd lib/wxsqlite3-1.9.9 diff --git a/www/User.php b/www/User.php index b1fd6ba..56f9411 100644 --- a/www/User.php +++ b/www/User.php @@ -27,10 +27,22 @@ class User function GetCategory($id) { + if ($id == "") + { + $cat["id"] = ""; + $cat["forecolor"] = "black"; + $cat["backcolor"] = "#3DEB3D"; + $s = "background-color:" . $cat["backcolor"] . ";"; + $s .= "color:" . $cat["forecolor"] . ";"; + $cat["style"] = $s; + + return $cat; + } + foreach($this->categories as $i => $category) if ($category["id"] == "$id") return $category; - return ""; + return LoadCategory($this, $id); } function GetAccountName($id) diff --git a/www/database.php b/www/database.php index 28b79bb..77d5c7e 100644 --- a/www/database.php +++ b/www/database.php @@ -92,6 +92,12 @@ function LoadUser($name) $user->accounts = array(); + while ($row = $result->fetchArray()) + array_push($user->accounts, $row); + + // Shared accounts + $result = $db->query("SELECT * FROM account WHERE id IN (SELECT account FROM shared_account WHERE user='$user->id') ORDER BY name ASC"); + while ($row = $result->fetchArray()) array_push($user->accounts, $row); @@ -117,6 +123,21 @@ function LoadUser($name) return $user; } +function LoadCategory(&$user, $id) +{ + $result = $db->query("SELECT * FROM category WHERE id='$id'"); + + if ($row = $result->fetchArray()) + { + ExtractStyle($row); + array_push($user->categories, $row); + + return $row; + } + + return ""; +} + function GetAccountAmount($id, $month, $year) { global $db; @@ -150,7 +171,20 @@ function LoadMonth($user, $month, $year) $req .= $user->preferences["operation_order"]; return $db->query($req); +} +function MetaPositiveAmount($id) +{ + global $db; + + $req = "SELECT SUM(amount) as amount FROM operation WHERE amount > 0 AND parent='$id'"; + + $result = $db->query($req); + + if ($row = $result->fetchArray()) + return $row["amount"]; + else + return 0.0; } function GetAllOperations($user, &$last_year, &$last_month) diff --git a/www/index.php b/www/index.php index ce59bf0..16f227f 100644 --- a/www/index.php +++ b/www/index.php @@ -54,7 +54,7 @@ if (!isset($_SESSION["user"])) { $users = GetUsers(); echo "

KissCount



\n"; - echo "
\n"; + echo "\n"; echo "Login : $month) @@ -162,6 +167,7 @@ function changeMonths() } ?> + >Expand groups
Disconnect @@ -175,7 +181,10 @@ function changeMonths() { $val = GetAccountAmount($account["id"], $_SESSION["cur_month"], $_SESSION["cur_year"]); echo ""; - echo "" . $account["number"] . ""; + if ($account["shared"] == "1") + echo "" . $account["number"] . "*"; + else + echo "" . $account["number"] . ""; echo "" . $account["name"] . ""; echo "" . number_format($val, 2) . ""; if (($accounts[$account["id"]]["cur"] + $val) < 0) @@ -197,8 +206,17 @@ function changeMonths() $operations = LoadMonth($_SESSION["user"], $_SESSION["cur_month"], $_SESSION["cur_year"]); while($operation = $operations->fetchArray()) { - if ($operation["meta"] == "1") continue; - + if ($_SESSION["expand"] == "1") + { + if ($operation["meta"] == "1") + continue; + } + else + { + if ($operation["parent"] != "") + continue; + } + $category = $_SESSION["user"]->GetCategory($operation["category"]); if ($operation["fix_cost"] == "0") { @@ -213,11 +231,23 @@ while($operation = $operations->fetchArray()) } echo "" . $operation["description"] . ""; echo "" . date("d/m/Y", mktime(0, 0, 0, $operation["month"]+1, $operation["day"]+1, $operation["year"])) . ""; - if ($operation["amount"] < 0) - echo "" . number_format(-$operation["amount"], 2) . ""; + if ($operation["meta"] == "1" && $operation["amount"] == 0) + { + $amount = MetaPositiveAmount($operation["id"]); + echo "" . number_format($amount, 2) . ""; + echo "" . number_format($amount, 2) . ""; + } else - echo "" . number_format($operation["amount"], 2) . ""; - echo "" . $category["name"] . ""; + { + if ($operation["amount"] < 0) + echo "" . number_format(-$operation["amount"], 2) . ""; + else + echo "" . number_format($operation["amount"], 2) . ""; + } + if ($operation["meta"] != "1") + echo "" . $category["name"] . ""; + else + echo ""; echo "" . $_SESSION["user"]->GetAccountName($operation["account"]) . ""; echo "\n"; }