UsersIn class implemented

This commit is contained in:
Phyks 2013-09-08 00:41:49 +02:00
parent 57d6f109d0
commit 63db380460
3 changed files with 69 additions and 2 deletions

1
TODO
View File

@ -4,7 +4,6 @@
inc/Invoices.class.php : inc/Invoices.class.php :
======================== ========================
* Storage of users in ?!?
* Add / Edit a bill * Add / Edit a bill
Manage paybacks : Manage paybacks :

View File

@ -41,6 +41,10 @@ class Storage {
return $this->db; return $this->db;
} }
public function getConnection() {
return $this->connection;
}
// Setters // Setters
// ======= // =======
public function setHost($host) { public function setHost($host) {

View File

@ -1,5 +1,4 @@
<?php <?php
//TODO : load() and save() overload
require_once('data/config.php'); require_once('data/config.php');
require_once('Storage.class.php'); require_once('Storage.class.php');
@ -51,4 +50,69 @@
return $this; return $this;
} }
// Override load() method
// ======================
public function load() {
$query = 'SELECT ';
$i = false;
foreach($this->fields as $field->$type) {
if($i) { $query .= ','; } else { $i = true; }
$query .= $field;
}
$query .= ' FROM '.MYSQL_PREFIX.$this->TABLE_NAME.' WHERE invoice_id=:invoice_id';
$query = $this->getConnection()->prepare($query);
$query->bindParam(':invoice_id', $this->invoice_id);
$query->execute();
$results = $query->fetchAll();
$this->users_list = array();
foreach($results as $result) {
$this->users_list[(int) $result['user_id']] = (int) $result['guests'];
}
}
// Override save() method
// ======================
public function save() {
// TODO : Optimize ?
$query = 'SELECT COUNT(invoice_id) FROM '.MYSQL_PREFIX.$this->TABLE_NAME.' WHERE invoice_id=:invoice_id';
$query = $this->getConnection()->prepare($query);
$query->bindParam(':invoice_id', $this->invoice_id);
$query->execute();
$count = $query->fetchColumn(0);
if($count != 0) {
// If there are already some records, delete them first
$query = $this->getConnection()->prepare('DELETE FROM '.MYSQL_PREFIX.$this->TABLE_NAME.' WHERE invoice_id=:invoice_id');
$query->bindParam(':invoice_id', $this->invoice_id);
$query->execute();
}
$query = 'INSERT INTO '.MYSQL_PREFIX.$this->TABLE_NAME.'(';
$i = false;
foreach($this->fields as $field=>$type) {
if($i) { $query .= ','; } else { $i = true;}
$query .= $field;
}
$query .= ') VALUES(:invoice_id, :user_id, :guests)';
$query = $this->getConnection()->prepare($query);
$user = -1;
$guests = -1;
$query->bindParam(':user_id', (int) $user);
$query->bindParam(':guests', (int) $guests);
foreach($this->users_list as $user=>$guests) {
$query->execute();
}
}
} }