From 52f6b7fc5261160c42ac2de47d4c51c351fd4dbe Mon Sep 17 00:00:00 2001 From: Phyks Date: Sat, 17 Aug 2013 19:16:16 +0200 Subject: [PATCH] Prefill form for modifications of bills --- inc/Invoices.class.php | 20 +++++++- inc/Storage.class.php | 2 +- inc/User.class.php | 2 +- index.php | 46 +++++++++++++++---- ....af3906cfde643ae7f290cfdc51cc9342.rtpl.php | 14 +++--- ....af3906cfde643ae7f290cfdc51cc9342.rtpl.php | 2 + tpl/index.html | 14 +++--- tpl/new_invoice.html | 1 + 8 files changed, 74 insertions(+), 27 deletions(-) diff --git a/inc/Invoices.class.php b/inc/Invoices.class.php index 808edfd..9a3923d 100644 --- a/inc/Invoices.class.php +++ b/inc/Invoices.class.php @@ -3,7 +3,7 @@ require_once('Storage.class.php'); class Invoice extends Storage { - protected $id, $date, $users_in, $buyer, $amount, $what; + protected $id = 0, $date, $users_in, $buyer, $amount, $what; protected $TABLE_NAME = "Invoices"; protected $fields = array( 'id'=>'key', @@ -80,4 +80,22 @@ return $return; } + + public function load_invoice($fields = NULL) { + $fetch = $this->load($fields); + + if(count($fetch) > 0) { + $this->setId($fetch[0]['id']); + $this->setWhat($fetch[0]['what']); + $this->setAmount($fetch[0]['amount']); + $this->setBuyer($fetch[0]['buyer']); + $this->setUsersIn($fetch[0]['users_in']); + $this->setDate($fetch[0]['date']); + + return true; + } + else { + return false; + } + } } diff --git a/inc/Storage.class.php b/inc/Storage.class.php index 0865e92..550044c 100644 --- a/inc/Storage.class.php +++ b/inc/Storage.class.php @@ -158,7 +158,7 @@ class Storage { $query = $this->connection->prepare($query); foreach($this->fields as $field=>$type) { - if(!empty($this->$field)) { + if(isset($this->$field)) { $query->bindParam(':'.$field, $this->$field); } } diff --git a/inc/User.class.php b/inc/User.class.php index b587b36..6b551c5 100644 --- a/inc/User.class.php +++ b/inc/User.class.php @@ -3,7 +3,7 @@ require_once('data/config.php'); require_once('Storage.class.php'); class User extends Storage { - protected $id, $login, $display_name, $password, $admin; + protected $id = 0, $login, $display_name, $password, $admin; protected $TABLE_NAME = "Users"; protected $fields = array( 'id'=>'key', diff --git a/index.php b/index.php index 67e9d3c..0b8e850 100644 --- a/index.php +++ b/index.php @@ -203,8 +203,33 @@ break; case 'new_invoice': + case 'edit_invoice': + if(!empty($_GET['id'])) { + $invoice = new Invoice(); + $invoice->load_invoice(array('id'=>(int) $_GET['id'])); + + $date_day = ''; + $date_month = ''; + $date_year = ''; + $amount = $invoice->getAmount(); + $what = $invoice->getWhat(); + $users_in = explode(',', $invoice->getUsersIn()); + $guests = array(); + } + + if(!empty($_POST['what'])) $what = $_POST['what']; + if(!empty($_POST['amount'])) $amount = $_POST['amount']; + if(!empty($_POST['date_day'])) $date_day = $_POST['date_day']; + if(!empty($_POST['date_month'])) $date_month = $_POST['date_month']; + if(!empty($_POST['date_year'])) $date_year = $_POST['date_year']; + if(!empty($_POST['users_in'])) $users_in = $_POST['users_in']; + if(!empty($_POST['what']) && !empty($_POST['amount']) && (float) $_POST['amount'] != 0 && !empty($_POST['date_day']) && !empty($_POST['date_month']) && !empty($_POST['date_year']) && !empty($_POST['users_in'])) { $invoice = new Invoice(); + + if(!empty($_POST['id'])) + $invoice->setId($_POST['id']); + $invoice->setWhat($_POST['what']); $invoice->setAmount($_POST['amount']); $invoice->setBuyer($current_user->getId()); @@ -219,9 +244,9 @@ } $invoice->setUsersIn($users_in); - //$invoice->save(); -// header('location: index.php'); - // exit(); + $invoice->save(); + header('location: index.php'); + exit(); } $users_list = new User(); @@ -231,14 +256,15 @@ $tpl->assign('months', range(1, 12)); $tpl->assign('years', range(date('Y') - 1, date('Y') + 1)); - $tpl->assign('day_post', (!empty($_POST['date_day']) ? (int) $_POST['date_day'] : (int) date('d'))); - $tpl->assign('month_post', (!empty($_POST['date_month']) ? (int) $_POST['date_month'] : (int) date('m'))); - $tpl->assign('year_post', (!empty($_POST['date_year']) ? (int) $_POST['date_year'] : (int) date('Y'))); - $tpl->assign('amount_post', (!empty($_POST['amount']) ? (float) $_POST['amount'] : 0)); - $tpl->assign('what_post', (!empty($_POST['what']) ? htmlspecialchars($_POST['what']) : '')); + $tpl->assign('day_post', (!empty($date_day) ? (int) $date_day : (int) date('d'))); + $tpl->assign('month_post', (!empty($date_month) ? (int) $date_month : (int) date('m'))); + $tpl->assign('year_post', (!empty($date_year) ? (int) $date_year : (int) date('Y'))); + $tpl->assign('amount_post', (!empty($amount) ? (float) $amount : 0)); + $tpl->assign('what_post', (!empty($what) ? htmlspecialchars($what) : '')); $tpl->assign('users', $users_list); - $tpl->assign('users_in', (!empty($_POST['users_in']) ? $_POST['users_in'] : array())); + $tpl->assign('users_in', (!empty($users_in) ? $users_in : array())); $tpl->assign('guests', (!empty($guests) ? $guests : array())); + $tpl->assign('id', (!empty($_GET['id']) ? (int) $_GET['id'] : 0)); $tpl->draw('new_invoice'); break; @@ -246,7 +272,7 @@ $users_list = new User(); $users_list = $users_list->load_users(); - $invoices_list = new Invoices(); + $invoices_list = new Invoice(); $invoices_list = $invoices_list->load_invoices(); $tpl->assign('users', $users_list); diff --git a/tmp/index.af3906cfde643ae7f290cfdc51cc9342.rtpl.php b/tmp/index.af3906cfde643ae7f290cfdc51cc9342.rtpl.php index 09b56ae..d02587f 100755 --- a/tmp/index.af3906cfde643ae7f290cfdc51cc9342.rtpl.php +++ b/tmp/index.af3906cfde643ae7f290cfdc51cc9342.rtpl.php @@ -49,13 +49,13 @@ $value1 ){ $counter1++; ?> - getDate;?> - getBuyer;?> - getUsersIn;?> - getAmount;?> - getWhat;?> - Edit - Delete + getDate();?> + getBuyer();?> + getUsersIn();?> + getAmount();?> + getWhat();?> + Edit + Delete diff --git a/tmp/new_invoice.af3906cfde643ae7f290cfdc51cc9342.rtpl.php b/tmp/new_invoice.af3906cfde643ae7f290cfdc51cc9342.rtpl.php index 8a925f7..c008b37 100644 --- a/tmp/new_invoice.af3906cfde643ae7f290cfdc51cc9342.rtpl.php +++ b/tmp/new_invoice.af3906cfde643ae7f290cfdc51cc9342.rtpl.php @@ -47,6 +47,8 @@

+ +

diff --git a/tpl/index.html b/tpl/index.html index 5453ece..729b936 100755 --- a/tpl/index.html +++ b/tpl/index.html @@ -39,13 +39,13 @@ {loop="invoices"} - {$value->getDate} - {$value->getBuyer} - {$value->getUsersIn} - {$value->getAmount} - {$value->getWhat} - Edit - Delete + {$value->getDate()} + {$value->getBuyer()} + {$value->getUsersIn()} + {$value->getAmount()} + {$value->getWhat()} + Edit + Delete {/loop} diff --git a/tpl/new_invoice.html b/tpl/new_invoice.html index 0b79d59..5790a3b 100755 --- a/tpl/new_invoice.html +++ b/tpl/new_invoice.html @@ -37,6 +37,7 @@

+ {if condition="$id != 0"}{/if}