~vcs-imports/helix/helix

« back to all changes in this revision

Viewing changes to trunk/modules/Finance/Generated/Objects/BudgetTable.php

  • Committer: damianobrien
  • Date: 2015-06-12 05:13:06 UTC
  • Revision ID: svn-v4:05b9009a-c606-4cef-bdc0-1359a4facf5f::417

Show diffs side-by-side

added added

removed removed

Lines of Context:
80
80
                $object = new Budget();
81
81
                $object->_snapshot = $date;
82
82
                $db = Database::getInstance();
83
 
                $db->changeDatabase($db->getDatabase() . "_log");
 
83
                $database = $db->getDatabase();
 
84
                $db->changeDatabase($database . "_log");
84
85
 
85
86
                if (isset($id)) {
86
87
                        $condition = "{$db->le}budget{$db->re}.{$db->le}id{$db->re}={$db->queryValue($id)}";
94
95
                                "WHERE {$condition}"
95
96
                        ));
96
97
 
 
98
                        $query .= "ORDER BY {$db->le}budget{$db->re}.log_sequence desc limit 1";
97
99
                        $db->query($query);
98
100
 
99
101
                        if ($db->getRecord() && $db->getNumRows()===1) {
113
115
                        }
114
116
                }
115
117
                
 
118
                $db->changeDatabase($database);
116
119
                return $object;
117
120
        }
118
121
 
233
236
 
234
237
        protected function log() {
235
238
                if (isset($this->_snapshot)) {return false;}
 
239
                parent::log();
236
240
                $db = Database::getInstance();
237
241
                $database = $db->getDatabase();
 
242
                $record = Budget::select($db->encapsulate("budget") . ".mdate as fdate,null as tdate,{$db->encapsulate("budget")}.*",null,$db->encapsulate("budget").".id={$this->id}")->first();
238
243
                $log = "{$database}_log";
239
 
                $db->changeDatabase($log);
 
244
                $dbLog = Database::getInstance(null,null,null,null,$log);
 
245
                foreach($record as $k=>$v){
 
246
                    if(!is_int($v)){
 
247
                        $record[$k] = $dbLog->queryValue($v);
 
248
                    }
 
249
                }
 
250
                $insertColumns = $dbLog->le.implode("{$dbLog->le},{$dbLog->re}",array_keys($record)).$dbLog->re;
 
251
                $insertValues = implode(",",$record);
240
252
                $query = implode(NL, array(
241
 
                        "INSERT INTO {$db->le}{$log}{$db->re}.{$db->le}budget{$db->re} (",
242
 
                        "SELECT",
243
 
                        "       NULL,",
244
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}mdate{$db->re},",
245
 
                        "       NULL,",
246
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}id{$db->re},",
247
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}name{$db->re},",
248
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}description{$db->re},",
249
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}budget_type_id{$db->re},",
250
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}updated_by_id{$db->re},",
251
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}mdate{$db->re},",
252
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}cdate{$db->re},",
253
 
                        "       {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}deleted{$db->re}",
254
 
                        "FROM {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}",
255
 
                        "WHERE {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}id{$db->re}={$db->queryValue($this->id)}",
 
253
                        "INSERT INTO {$dbLog->le}budget{$dbLog->re} (",
 
254
                        $insertColumns,
 
255
                        ") VALUES (",
 
256
                        $insertValues,
256
257
                        ")"
257
258
                ));
258
 
                $status = $db->query($query);
259
 
 
260
 
                $logSequence = $db->getInsertedId();
261
 
 
262
 
                $query = implode(NL, array(
263
 
                        "SELECT {$db->le}log_sequence{$db->re}",
264
 
                        "FROM {$db->le}budget{$db->re}",
265
 
                        "WHERE {$db->le}budget{$db->re}.{$db->le}id{$db->re}={$db->queryValue($this->id)}",
266
 
                        "       AND {$db->le}log_sequence{$db->re}<'{$logSequence}'",
267
 
                        "ORDER BY {$db->le}log_sequence{$db->re} DESC",
268
 
                        "LIMIT 0,1"
269
 
                ));
270
 
                $db->query($query);
271
 
 
272
 
                if ($db->getRecord()) {
273
 
                        $updateSequence = (int)$db->record["log_sequence"];
 
259
                $status = $dbLog->query($query);
 
260
 
 
261
                $logSequence = $dbLog->getInsertedId();
 
262
 
 
263
                if ($logSequence){
274
264
                        $query = implode(NL, array(
275
 
                                "UPDATE {$db->le}{$log}{$db->re}.{$db->le}budget{$db->re}",
276
 
                                "INNER JOIN {$db->le}{$database}{$db->re}.{$db->le}budget{$db->re} ON {$db->le}{$log}{$db->re}.{$db->le}budget{$db->re}.{$db->le}id{$db->re}={$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}id{$db->re}",
277
 
                                "       AND {$db->le}{$log}{$db->re}.{$db->le}budget{$db->re}.{$db->le}log_sequence{$db->re}={$db->queryValue($updateSequence)}",
278
 
                                "SET {$db->le}{$log}{$db->re}.{$db->le}budget{$db->re}.{$db->le}tdate{$db->re}={$db->le}{$database}{$db->re}.{$db->le}budget{$db->re}.{$db->le}mdate{$db->re}"
 
265
                                "SELECT {$dbLog->le}log_sequence{$dbLog->re}",
 
266
                                "FROM {$dbLog->le}budget{$dbLog->re}",
 
267
                                "WHERE {$dbLog->le}budget{$dbLog->re}.{$dbLog->le}id{$dbLog->re}={$this->id}",
 
268
                                "       AND {$dbLog->le}log_sequence{$dbLog->re}<{$logSequence}",
 
269
                                "ORDER BY {$dbLog->le}log_sequence{$dbLog->re} DESC",
 
270
                                $dbLog::limitOffsetString(1,0)
279
271
                        ));
280
 
                        $db->query($query);
 
272
                        $dbLog->query($query);
 
273
 
 
274
                        if ($dbLog->getRecord()) {
 
275
                                $updateSequence = (int)$dbLog->record["log_sequence"];
 
276
                                $query = implode(NL, array(
 
277
                                        "UPDATE {$dbLog->le}budget{$dbLog->re}",
 
278
                                        "SET {$dbLog->le}tdate{$dbLog->re}={$record["mdate"]}",
 
279
                                        "where log_sequence={$updateSequence}"
 
280
                                ));
 
281
                                $dbLog->query($query);
 
282
                        }
281
283
                }
282
284
                $db->changeDatabase($database);
283
285
                return $status;