Add web view
This commit is contained in:
195
www/database.php
Normal file
195
www/database.php
Normal file
@@ -0,0 +1,195 @@
|
||||
/*
|
||||
Copyright 2010 Grégory Soutadé
|
||||
|
||||
This file is part of KissCount.
|
||||
|
||||
KissCount is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
KissCount is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with KissCount. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
<?php
|
||||
|
||||
$BDD_FILE = '/var/nfs/kc.bdd';
|
||||
|
||||
try {
|
||||
$db = new SQLite3($BDD_FILE, SQLITE3_OPEN_READONLY);
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
die('Unable to load BDD');
|
||||
}
|
||||
|
||||
function GetUsers()
|
||||
{
|
||||
global $db;
|
||||
|
||||
$res = array();
|
||||
|
||||
$result = $db->query("SELECT name FROM user ORDER BY name");
|
||||
|
||||
while ($row = $result->fetchArray())
|
||||
array_push($res, $row['name']);
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
function IsUserValid($user, $password)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$result = $db->query("SELECT id FROM user WHERE name='" . $db->escapeString($user) . "' AND password='" . sha1($db->escapeString($password)) . "'");
|
||||
|
||||
return $result->fetchArray();
|
||||
}
|
||||
|
||||
function LoadUser($name)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$user = new User();
|
||||
|
||||
$name = $db->escapeString($name);
|
||||
|
||||
$result = $db->query("SELECT * FROM user WHERE name='$name'");
|
||||
|
||||
if (!($row = $result->fetchArray()))
|
||||
return NULL;
|
||||
|
||||
$user->id = $row["id"];
|
||||
|
||||
$result = $db->query("SELECT * FROM account WHERE user='$user->id' ORDER BY default_account DESC, name ASC");
|
||||
|
||||
$user->accounts = array();
|
||||
|
||||
while ($row = $result->fetchArray())
|
||||
array_push($user->accounts, $row);
|
||||
|
||||
$result = $db->query("SELECT * FROM category WHERE user='$user->id' ORDER by name");
|
||||
|
||||
$user->categories = array();
|
||||
|
||||
while ($row = $result->fetchArray())
|
||||
array_push($user->categories, $row);
|
||||
|
||||
$result = $db->query("SELECT * FROM preference WHERE user='$user->id' ORDER by name");
|
||||
|
||||
$user->preferences = array();
|
||||
|
||||
$user->preferences["operation_order"] = "ASC";
|
||||
|
||||
while ($row = $result->fetchArray())
|
||||
array_push($user->preferences, $row);
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
function GetAccountAmount($id, $month, $year)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$req = "SELECT amount FROM account_amount WHERE account='$id' AND month='$month' AND year='$year'";
|
||||
|
||||
$result = $db->query($req);
|
||||
|
||||
if ($row = $result->fetchArray())
|
||||
return $row["amount"];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
function LoadMonth($user, $month, $year)
|
||||
{
|
||||
global $db;
|
||||
|
||||
if (!isset($user->accounts[0])) return;
|
||||
|
||||
$req = "SELECT * FROM operation WHERE (account IN('" . $user->accounts[0]["id"] ;
|
||||
foreach($user->accounts as $i => $account)
|
||||
{
|
||||
$req .= "', '" . $account["id"];
|
||||
}
|
||||
|
||||
$req .= "')";
|
||||
$req .= " OR user='$user->id')";
|
||||
$req .= " AND year='$year' AND month='$month'";
|
||||
$req .= " ORDER BY fix_cost DESC, year, month ASC, day ";
|
||||
$req .= $user->preferences["operation_order"];
|
||||
|
||||
return $db->query($req);
|
||||
|
||||
}
|
||||
|
||||
function GetAllOperations($user, &$last_year, &$last_month)
|
||||
{
|
||||
$res;
|
||||
global $db;
|
||||
|
||||
if (!isset($user->accounts[0])) return $res;
|
||||
|
||||
$req = "SELECT DISTINCT year FROM account_amount WHERE account IN('" . $user->accounts[0]["id"] ;
|
||||
foreach($user->accounts as $i => $account)
|
||||
{
|
||||
$req .= "', '" . $account["id"];
|
||||
}
|
||||
$req .= "')";
|
||||
|
||||
$req2 = "SELECT DISTINCT year FROM operation WHERE account IN('" .$user->accounts[0]["id"] ;
|
||||
foreach($user->accounts as $i => $account)
|
||||
{
|
||||
$req2 .= "', '" . $account["id"];
|
||||
}
|
||||
$req2 .= "')";
|
||||
$req2 .= " OR user='" . $user->id . "'";
|
||||
$req2 .= " ORDER BY year ASC";
|
||||
|
||||
$reqUnion = $req . " UNION " . $req2;
|
||||
|
||||
$result = $db->query($reqUnion);
|
||||
|
||||
while ($row = $result->fetchArray())
|
||||
{
|
||||
$last_year = $year = $row["year"];
|
||||
|
||||
$req = "SELECT DISTINCT month FROM account_amount WHERE account IN('" . $user->accounts[0]["id"] ;
|
||||
foreach($user->accounts as $i => $account)
|
||||
{
|
||||
$req .= "', '" . $account["id"];
|
||||
}
|
||||
$req .= "')";
|
||||
$req .= " AND year='" . $year . "'";
|
||||
|
||||
$req2 = "SELECT DISTINCT month FROM operation WHERE (account IN('" . $user->accounts[0]["id"] ;
|
||||
foreach($user->accounts as $i => $account)
|
||||
{
|
||||
$req2 .= "', '" . $account["id"];
|
||||
}
|
||||
$req2 .= "')";
|
||||
$req2 .= " OR user='" . $user->id . "')";
|
||||
$req2 .= " AND year='" . $year . "'";
|
||||
$req2 .= " ORDER BY month ASC";
|
||||
|
||||
$reqUnion = $req . " UNION " . $req2;
|
||||
|
||||
$result2 = $db->query($reqUnion);
|
||||
|
||||
while ($row = $result2->fetchArray())
|
||||
{
|
||||
if (!isset($res[$year])) $res[$year] = array();
|
||||
array_push($res[$year], $row["month"]);
|
||||
$last_month = $row["month"];
|
||||
}
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user