var $key; // used by update currenly to store primary key.
- var $transObj = false ; // the transaction BEGIN / ROLLBACK / COMMIT Dataobject.
-
+
var $max_limit = 10000;
var $debugEnabled = true; // disable this for public versions of this code.
return true;
}
/**
- * GET method Roo/TABLENAME.php
+ * GET method Roo/TABLENAME
*
* Generally for SELECT or Single SELECT
*
$this->sessionState(0);
$res = $x->find();
$this->sessionState(1);
-
+
if (false === $res) {
$this->jerr($x->_lastError->toString());
$this->init(); // for pman.
$x = $this->dataObject($tab);
-
+
$this->transObj = clone($x);
$this->transObj->query('BEGIN');
// do we really delete stuff!?!?!?
return $this->delete($x,$_REQUEST);
}
-
+
+
+
$old = false;
}
- if (!empty($_REQUEST[$this->key])) {
+ if (!empty($_REQUEST[$this->key])) {
// it's a create..
if (!$x->get($this->key, $_REQUEST[$this->key])) {
$this->jerr("Invalid request (id does not point to a record.)");
} else if (method_exists($x, 'applyFilters')) {
// always call apply filters even after update/insert...
// however arguments are not passed.
- $x->applyFilters(array(), $this->authUser, $this);
+ $x->applyFilters(array('_is_update_request' => true), $this->authUser, $this);
}
// DB_DataObject::DebugLevel(1);
}
$res = $x->insert();
+
if ($res === false) {
$this->jerr($x->_lastError->toString());
}
+ $ev = $this->addEvent("ADD", $x);
if (method_exists($x, 'onInsert')) {
- $x->onInsert($_REQUEST, $this);
+ $x->onInsert($_REQUEST, $this, $ev);
}
- $ev = $this->addEvent("ADD", $x);
+
if ($ev) {
$ev->audit($x);
}
//print_r($old);
$cols = $x->tableColumns();
- //print_r($cols);
+
if (isset($cols['modified'])) {
$x->modified = date('Y-m-d H:i:s');
}
*/
function delete($x, $req)
- {
+ {
// do we really delete stuff!?!?!?
if (empty($req['_delete'])) {
$this->jerr("Delete Requested with no value");
}
+
+
// build a list of tables to queriy for dependant data..
$map = $x->links();
}
}
+
$has_beforeDelete = method_exists($xx, 'beforeDelete');
// before delte = allows us to trash dependancies if needed..
$match_total = 0;
$q_filtered = array();
$keys = $x->keys();
- // var_dump($keys);exit;
+
foreach($q as $key=>$val) {
if (in_array($key,$keys) && !is_array($val)) {
}
-
+
switch($key) {
}
-
- // our handlers to commit / rollback.
-
- function jok($str)
- {
- // note that commit will only work if an insert/update was done,
- // so some stored proc calls may not have flagged this.
-
- if ($this->transObj ) {
- $this->transObj->query( connection_aborted() ? 'ROLLBACK' : 'COMMIT');
- }
- return parent::jok($str);
- }
-
-
- function jerr($str, $errors=array(), $content_type = false)
- {
- // standard error reporting..
- if ($this->transObj) {
- $this->transObj->query('ROLLBACK');
- }
- return parent::jerr($str,$errors,$content_type);
-
- }
-
-