From: Janusz Dobrowolski Date: Fri, 26 Jul 2019 08:36:23 +0000 (+0200) Subject: Journal Entry: cleanup in reconcillation status update during edition. X-Git-Url: https://delta.frontaccounting.com/gitweb/?p=fa-stable.git;a=commitdiff_plain;h=64f24ae3a63762d18b1ab6408263ec6ca1e14fb2 Journal Entry: cleanup in reconcillation status update during edition. --- diff --git a/gl/gl_journal.php b/gl/gl_journal.php index 3b8a4b9d..465fa0a5 100644 --- a/gl/gl_journal.php +++ b/gl/gl_journal.php @@ -116,6 +116,7 @@ function create_cart($type=0, $trans_no=0) $cart->currency = $header['currency']; $cart->rate = $header['rate']; $cart->source_ref = $header['source_ref']; + $cart->reconcile_date = $header['reconcile_date'] ? sql2date($header['reconcile_date']) : NULL; $result = get_gl_trans($type, $trans_no); @@ -164,6 +165,7 @@ function create_cart($type=0, $trans_no=0) $cart->reference = $Refs->get_next(ST_JOURNAL, null, $cart->tran_date); } + $_POST['reconciled_date'] = $cart->reconcile_date; $_POST['memo_'] = $cart->memo_; $_POST['ref'] = $cart->reference; $_POST['date_'] = $cart->tran_date; @@ -328,20 +330,16 @@ if (isset($_POST['Process'])) } } else $cart->tax_info = false; - $trans_no = write_journal_entries($cart); - // retain the reconciled status if desired by user - if (isset($_POST['reconciled']) - && $_POST['reconciled'] == 1) { - $sql = "UPDATE ".TB_PREF."bank_trans SET reconciled=".db_escape($_POST['reconciled_date']) - ." WHERE type=" . ST_JOURNAL . " AND trans_no=".db_escape($trans_no); + if (!get_post('reconciled')) // clear reconcilation (if any) + $cart->reconcile_date = NULL; - db_query($sql, "Can't change reconciliation status"); - } + $trans_no = write_journal_entries($cart); $cart->clear_items(); new_doc_date($_POST['date_']); unset($_SESSION['journal_items']); + if($new) meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no"); else diff --git a/gl/includes/db/gl_db_bank_trans.inc b/gl/includes/db/gl_db_bank_trans.inc index 1bea79a3..747041b6 100644 --- a/gl/includes/db/gl_db_bank_trans.inc +++ b/gl/includes/db/gl_db_bank_trans.inc @@ -223,3 +223,10 @@ function check_void_bank_trans($type, $type_no) return true; } +function update_reconcile_date($type, $trans_no, $date=NULL) +{ + $sql = "UPDATE ".TB_PREF."bank_trans SET reconciled=".($date ? "'".date2sql($date)."'" : 'NULL') + ." WHERE type=" . db_escape($type). " AND trans_no=".db_escape($trans_no); + + db_query($sql, "Can't change reconciliation status"); +} diff --git a/gl/includes/db/gl_journal.inc b/gl/includes/db/gl_journal.inc index c44cb335..b3378b0c 100644 --- a/gl/includes/db/gl_journal.inc +++ b/gl/includes/db/gl_journal.inc @@ -56,8 +56,9 @@ function delete_journal($type, $trans_no) function get_journal($type, $trans_no) { - $sql = "SELECT * FROM ".TB_PREF."journal - WHERE `type`=".db_escape($type)." AND " ."`trans_no`=".db_escape($trans_no); + $sql = "SELECT gl.*, bt.reconciled reconcile_date FROM ".TB_PREF."journal gl + LEFT JOIN ".TB_PREF."bank_trans bt ON gl.`type`=bt.`type` AND gl.trans_no=bt.trans_no + WHERE gl.`type`=".db_escape($type)." AND " ."gl.`trans_no`=".db_escape($trans_no); $myrow= db_query($sql, 'cannot retrieve journal entry'); return db_fetch($myrow); @@ -126,6 +127,9 @@ function write_journal_entries(&$cart) add_journal($trans_type, $trans_id, $total, $date_ , $cart->currency, $ref, $cart->source_ref, $cart->rate, $cart->event_date, $cart->doc_date); + if ($cart->reconcile_date) + update_reconcile_date($trans_type, $cart->order_id, $cart->reconcile_date); + $Refs->save($trans_type, $trans_id, $ref); if ($new) { add_comments($trans_type, $trans_id, $date_, $memo_); diff --git a/gl/includes/ui/gl_journal_ui.inc b/gl/includes/ui/gl_journal_ui.inc index 69ed170c..ae8860da 100644 --- a/gl/includes/ui/gl_journal_ui.inc +++ b/gl/includes/ui/gl_journal_ui.inc @@ -80,15 +80,10 @@ function display_order_header(&$Order) check_row(_('Include in tax register:'), 'taxable_trans', null, true); // Query the user to retain the reconciled status - if (!$new) { - $result = get_bank_trans(ST_JOURNAL, $Order->order_id); - $row = db_fetch($result); - if ($row - && $row['reconciled']) { - check_row(_('Reconciled:'), 'reconciled', 1, true); - hidden('reconciled_date', $row['reconciled']); - } - } + if (!$new && $Order->reconcile_date) { + check_row(_('Reconciled:'), 'reconciled', 1, true); + hidden('reconcile_date', $Order->reconcile_date); + } end_outer_table(1); }