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