230
233
protected function log() {
231
234
if (isset($this->_snapshot)) {return false;}
232
236
$db = Database::getInstance();
233
237
$database = $db->getDatabase();
238
$record = DocumentType::select($db->encapsulate("document_type") . ".mdate as fdate,null as tdate,{$db->encapsulate("document_type")}.*",null,$db->encapsulate("document_type").".id={$this->id}")->first();
234
239
$log = "{$database}_log";
235
$db->changeDatabase($log);
240
$dbLog = Database::getInstance(null,null,null,null,$log);
241
foreach($record as $k=>$v){
243
$record[$k] = $dbLog->queryValue($v);
246
$insertColumns = $dbLog->le.implode("{$dbLog->le},{$dbLog->re}",array_keys($record)).$dbLog->re;
247
$insertValues = implode(",",$record);
236
248
$query = implode(NL, array(
237
"INSERT INTO {$db->le}{$log}{$db->re}.{$db->le}document_type{$db->re} (",
240
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}mdate{$db->re},",
242
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}id{$db->re},",
243
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}name{$db->re},",
244
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}description{$db->re},",
245
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}updated_by_id{$db->re},",
246
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}mdate{$db->re},",
247
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}cdate{$db->re},",
248
" {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}deleted{$db->re}",
249
"FROM {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}",
250
"WHERE {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}id{$db->re}={$db->queryValue($this->id)}",
249
"INSERT INTO {$dbLog->le}document_type{$dbLog->re} (",
253
$status = $db->query($query);
255
$logSequence = $db->getInsertedId();
257
$query = implode(NL, array(
258
"SELECT {$db->le}log_sequence{$db->re}",
259
"FROM {$db->le}document_type{$db->re}",
260
"WHERE {$db->le}document_type{$db->re}.{$db->le}id{$db->re}={$db->queryValue($this->id)}",
261
" AND {$db->le}log_sequence{$db->re}<'{$logSequence}'",
262
"ORDER BY {$db->le}log_sequence{$db->re} DESC",
267
if ($db->getRecord()) {
268
$updateSequence = (int)$db->record["log_sequence"];
255
$status = $dbLog->query($query);
257
$logSequence = $dbLog->getInsertedId();
269
260
$query = implode(NL, array(
270
"UPDATE {$db->le}{$log}{$db->re}.{$db->le}document_type{$db->re}",
271
"INNER JOIN {$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re} ON {$db->le}{$log}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}id{$db->re}={$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}id{$db->re}",
272
" AND {$db->le}{$log}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}log_sequence{$db->re}={$db->queryValue($updateSequence)}",
273
"SET {$db->le}{$log}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}tdate{$db->re}={$db->le}{$database}{$db->re}.{$db->le}document_type{$db->re}.{$db->le}mdate{$db->re}"
261
"SELECT {$dbLog->le}log_sequence{$dbLog->re}",
262
"FROM {$dbLog->le}document_type{$dbLog->re}",
263
"WHERE {$dbLog->le}document_type{$dbLog->re}.{$dbLog->le}id{$dbLog->re}={$this->id}",
264
" AND {$dbLog->le}log_sequence{$dbLog->re}<{$logSequence}",
265
"ORDER BY {$dbLog->le}log_sequence{$dbLog->re} DESC",
266
$dbLog::limitOffsetString(1,0)
268
$dbLog->query($query);
270
if ($dbLog->getRecord()) {
271
$updateSequence = (int)$dbLog->record["log_sequence"];
272
$query = implode(NL, array(
273
"UPDATE {$dbLog->le}document_type{$dbLog->re}",
274
"SET {$dbLog->le}tdate{$dbLog->re}={$record["mdate"]}",
275
"where log_sequence={$updateSequence}"
277
$dbLog->query($query);
277
280
$db->changeDatabase($database);