function add_audit_trail($trans_type, $trans_no, $trans_date, $descr='')
{
+ begin_transaction();
+
$date = date2sql($trans_date);
$sql = "INSERT INTO ".TB_PREF."audit_trail"
. " (type, trans_no, user, gl_date, description)
. "'$date',". db_escape($descr). ")";
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'
. db_escape($trans_no);
db_query($sql, "Cannot update audit gl_seq");
+ commit_transaction();
}
function get_audit_trail_all($trans_type, $trans_no)
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"
}
}
}
+
if ($errors)
display_warning(_("Some transactions journal GL postings were not indexed due to lack of audit trail record."));
else
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;
}
-?>