Got rid of the custom paging functions, since it's no longer used, and added a function to convert dates into SQL format. Added a beforeSave callout to Transaction to convert the date before saving.
git-svn-id: file:///svn-source/pmgr/branches/ledger_transactions_20090605/site@171 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
@@ -110,56 +110,16 @@ class AppModel extends Model {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Overriding pagination, since the stupid count mechanism blows.
|
|
||||||
// This is also a crappy solution, especially if the query returns
|
|
||||||
// a really large number of rows. However, trying to untagle this
|
|
||||||
// without changing a bunch of core code is near impossible.
|
|
||||||
|
|
||||||
//var $paginate_rows_save;
|
/**************************************************************************
|
||||||
function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, &$extra = null) {
|
**************************************************************************
|
||||||
/* pr("paginate"); */
|
**************************************************************************
|
||||||
/* pr(array_merge(compact('conditions', 'fields', 'order', 'limit', 'page', 'recursive', 'extra'))); */
|
* function: dateFormatBeforeSave
|
||||||
if ($page > 1 && isset($limit))
|
* - convert dates to database format
|
||||||
$offset = ($page - 1) * $limit;
|
*/
|
||||||
else
|
|
||||||
$offset = 0;
|
|
||||||
|
|
||||||
if (!isset($extra['results']))
|
function dateFormatBeforeSave($dateString) {
|
||||||
die("Why isn't results set!?!");
|
return date('Y-m-d', strtotime($dateString));
|
||||||
|
|
||||||
$results = $extra['results'];
|
|
||||||
unset($extra['results']);
|
|
||||||
return array_slice($results, $offset, $limit);
|
|
||||||
}
|
|
||||||
function paginateCount($conditions = null, $recursive = null, &$extra = null) {
|
|
||||||
/* pr("paginateCount"); */
|
|
||||||
/* pr(compact('conditions', 'recursive', 'extra')); */
|
|
||||||
|
|
||||||
if (isset($extra['results'])) {
|
|
||||||
// Beauty! The results are already in!
|
|
||||||
// This happens if the user sets up a complex query
|
|
||||||
// and passes us the result to paginate.
|
|
||||||
$results = $extra['results'];
|
|
||||||
}
|
|
||||||
elseif (isset($extra['query'])) {
|
|
||||||
// Perform the query directly... forget all the find B.S.
|
|
||||||
$results = $this->query($extra['query']);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (!isset($recursive))
|
|
||||||
$recursive = $this->recursive;
|
|
||||||
|
|
||||||
$parameters = array_merge(compact('conditions', 'recursive'), $extra);
|
|
||||||
$results = $this->find('all', $parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
//$this->paginate_rows_save = $results;
|
|
||||||
//return count($this->paginate_rows_save);
|
|
||||||
|
|
||||||
if (!isset($extra['results']))
|
|
||||||
$extra['results'] = $results;
|
|
||||||
|
|
||||||
return count($results);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,9 @@
|
|||||||
class Transaction extends AppModel {
|
class Transaction extends AppModel {
|
||||||
|
|
||||||
var $name = 'Transaction';
|
var $name = 'Transaction';
|
||||||
var $validate = array(
|
/* var $validate = array( */
|
||||||
'id' => array('numeric'),
|
/* 'stamp' => array('date') */
|
||||||
'stamp' => array('time')
|
/* ); */
|
||||||
);
|
|
||||||
|
|
||||||
var $belongsTo = array(
|
var $belongsTo = array(
|
||||||
'Customer',
|
'Customer',
|
||||||
@@ -15,5 +14,15 @@ class Transaction extends AppModel {
|
|||||||
'LedgerEntry',
|
'LedgerEntry',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
function beforeSave() {
|
||||||
|
|
||||||
|
if(!empty($this->data['Transaction']['stamp'])) {
|
||||||
|
$this->data['Transaction']['stamp'] =
|
||||||
|
$this->dateFormatBeforeSave($this->data['Transaction']['stamp']);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
Reference in New Issue
Block a user