X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fdb%2Faudit_trail_db.inc;h=c142abdb9fbad020fb1ccaa1e5dce447d15552ce;hb=40acce2851269a49d43e2082d7a09058a856a81b;hp=49abe1ca78bce27659eff9a381c179d368e259a9;hpb=b11418d0e2c2691abcb5330e6b62bc1d45b741f1;p=fa-stable.git diff --git a/includes/db/audit_trail_db.inc b/includes/db/audit_trail_db.inc index 49abe1ca..c142abdb 100644 --- a/includes/db/audit_trail_db.inc +++ b/includes/db/audit_trail_db.inc @@ -12,15 +12,17 @@ function add_audit_trail($trans_type, $trans_no, $trans_date, $descr='') { + $descr = substr($descr, 0, 60); + begin_transaction(); + $date = date2sql($trans_date); $sql = "INSERT INTO ".TB_PREF."audit_trail" - . " (type, trans_no, user, gl_date, description) + . " (type, trans_no, user, gl_date, description, stamp) VALUES(".db_escape($trans_type).", ".db_escape($trans_no)."," . $_SESSION["wa_current_user"]->user . "," - . "'$date',". db_escape($descr). ")"; + . "'$date',". db_escape($descr). ", CURRENT_TIMESTAMP)"; db_query($sql, "Cannot add audit info"); - // all audit records beside just inserted one should have gl_seq set to NULL // to avoid need for subqueries (not existing in MySQL 3) all over the code $sql = "UPDATE ".TB_PREF."audit_trail audit LEFT JOIN ".TB_PREF."fiscal_year year ON year.begin<='$date' AND year.end>='$date' @@ -30,6 +32,7 @@ function add_audit_trail($trans_type, $trans_no, $trans_date, $descr='') . db_escape($trans_no); db_query($sql, "Cannot update audit gl_seq"); + commit_transaction(); } function get_audit_trail_all($trans_type, $trans_no) @@ -76,17 +79,16 @@ function close_transactions($todate) { if (db_num_rows($result)) { $last_year = 0; - while ($row = db_fetch($result)) { + while ($row = db_fetch($result)) { if ($row['fiscal_year'] == null) { $errors = 1; continue; } - if ($last_year != $row['fiscal_year']) { $last_year = $row['fiscal_year']; $counter = 0; // reset counter on fiscal year change } - + $seq = $row['closed'] ? ++$counter : 0; if ($row['gl_seq'] != $seq) { // update transaction status only when gl_seq has changed $sql2 = "UPDATE ".TB_PREF."audit_trail SET" @@ -96,6 +98,7 @@ function close_transactions($todate) { } } } + if ($errors) display_warning(_("Some transactions journal GL postings were not indexed due to lack of audit trail record.")); else @@ -105,26 +108,33 @@ function close_transactions($todate) { return $errors; } -/* - Closed transactions have gl_seq number assigned. -*/ -function is_closed_trans($type, $trans_no) { +function get_journal_number($type, $trans_no) { $cdate = get_company_pref('gl_closing_date'); if (!$cdate) return false; // FIXME: gl_date can be badly entered for some transactions due to bug in previous FA versions - $sql = "SELECT gl_seq FROM ".TB_PREF."audit_trail" + $sql = "SELECT MAX(gl_seq) as gl_seq FROM ".TB_PREF."audit_trail" . " WHERE type=".db_escape($type) ." AND trans_no=".db_escape($trans_no) ." AND gl_date<='$cdate'"; // date is stored in sql format // ." AND (gl_date<='$cdate'" // some transaction can be not sequenced due to 0 amount, however after edition this could change // ." OR gl_seq>0)"; - $res = db_query($sql, "Cannot check transaction"); - return db_num_rows($res); + if (db_num_rows($res)) + { + $myrow =db_fetch($res); + return $myrow['gl_seq'] ? $myrow['gl_seq'] : _('None'); + } + return "-"; +} + +/* + Closed transactions have gl_seq number assigned. +*/ +function is_closed_trans($type, $trans_no) { + return get_journal_number($type, $trans_no) > 0; } -?>