[0000753] Bank deposit/payment edition fixed (rewritten database rewrite scheme to...
authorJanusz Dobrowolski <janusz@frontaccouting.eu>
Mon, 30 May 2011 17:47:00 +0000 (19:47 +0200)
committerJanusz Dobrowolski <janusz@frontaccouting.eu>
Mon, 30 May 2011 17:47:00 +0000 (19:47 +0200)
gl/gl_bank.php
gl/includes/db/gl_db_banking.inc
gl/includes/db/gl_db_trans.inc

index 7e16805c4893f15139a5f325a75e050d5d139a9b..67271a2d7138513c6462826b05122efeeb5bb285 100644 (file)
@@ -142,7 +142,7 @@ function create_cart($type, $trans_no)
        {
                unset ($_SESSION['pay_items']);
        }
-       
+
        $cart = new items_cart($type);
     $cart->order_id = $trans_no;
 
@@ -293,7 +293,7 @@ if (isset($_POST['Process']))
                $_SESSION['pay_items']->trans_type, $_SESSION['pay_items']->order_id, $_POST['bank_account'],
                $_SESSION['pay_items'], $_POST['date_'],
                $_POST['PayType'], $_POST['person_id'], get_post('PersonDetailID'),
-               $_POST['ref'], $_POST['memo_'], false);
+               $_POST['ref'], $_POST['memo_'], true);
 
        $trans_type = $trans[0];
        $trans_no = $trans[1];
index 6cfe49203ceeb5eeba193fea86841173cbb54636..41879225587e638e572495105daed95d58509019 100644 (file)
@@ -307,8 +307,10 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
                $args);
        hook_db_prewrite($args, $trans_type);
 
-       if ($trans_no)
-               clear_bank_transaction($_SESSION['pay_items']->trans_type, $_SESSION['pay_items']->order_id);
+       if ($trans_no) {
+               void_transaction($trans_type, $trans_no, Today(), _("Document reentered."));
+               $Refs->restore_last($trans_type, $trans_no);
+       }
 
        $currency = get_bank_account_currency($from_account);
        $bank_gl_account = get_bank_gl_account($from_account);
@@ -325,7 +327,7 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
                // we need to negate it too
                $cust_amount = -$cust_amount;
 
-               $trans_no = write_customer_trans($trans_type, $trans_no, $person_id, $person_detail_id, $date_,
+               $trans_no = write_customer_trans($trans_type, 0, $person_id, $person_detail_id, $date_,
                $ref, $cust_amount);
 
     }
@@ -338,14 +340,13 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
                // we need to negate it too
                $supp_amount = -$supp_amount;
 
-               $trans_no = write_supp_trans($trans_type, $trans_no, $person_id, $date_, '',
+               $trans_no = write_supp_trans($trans_type, 0, $person_id, $date_, '',
                        $ref, "", $supp_amount, 0, 0);
 
     }
     else
     {
-       if (!$trans_no)
-               $trans_no = get_next_trans_no($trans_type);
+               $trans_no = get_next_trans_no($trans_type);
        $do_exchange_variance = $SysPrefs->auto_currency_revaluation();
        if ($do_exchange_variance)
                $trans_no1 = get_next_trans_no(ST_JOURNAL);
@@ -384,13 +385,13 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
                {
                        add_exchange_variation($trans_no1, $date_, $is_bank_to, $gl_item->code_id, 
                                $currency, $person_type_id, $person_id);
-               }               
+               }
        }
                // store tax details if the gl account is a tax account
 
                $amount = $gl_item->amount;
                $ex_rate = get_exchange_rate_from_home_currency($currency, $date_);
-                       
+
                add_gl_tax_details($gl_item->code_id, $trans_type, $trans_no, -$amount,
                        $ex_rate, $date_, $memo_);
        }
@@ -403,11 +404,11 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
     {
        if ($exchanged || add_exchange_variation($trans_no1, $date_, $from_account, $bank_gl_account, 
                $currency, $person_type_id, $person_id))
-       {       
+       {
                        $ref1 = $Refs->get_next(ST_JOURNAL);
                        $Refs->save(ST_JOURNAL, $trans_no1, $ref1);
                        add_audit_trail(ST_JOURNAL, $trans_no1, $date_);
-               }       
+               }
        }
 
        add_comments($trans_type, $trans_no, $date_, $memo_);
@@ -422,30 +423,5 @@ function write_bank_transaction($trans_type, $trans_no, $from_account, $items, $
 
        return array($trans_type, $trans_no);
 }
-//----------------------------------------------------------------------------------------
-
-function clear_bank_transaction($type, $type_no)
-{
-
-       hook_db_prevoid($type, $type_no);
-
-       $sql = "DELETE FROM ".TB_PREF."bank_trans 
-               WHERE type=".db_escape($type)." AND trans_no=".db_escape($type_no);
-
-       $result = db_query($sql, "could not clear bank transactions for type=$type and trans_no=$type_no");
-
-       clear_gl_trans($type, $type_no, true);
-
-       // in case it's a customer trans - probably better to check first
-       void_cust_allocations($type, $type_no);
-
-       // in case it's a supplier trans - probably better to check first
-       void_supp_allocations($type, $type_no);
-       clear_supp_trans($type, $type_no);
-
-       clear_trans_tax_details($type, $type_no);
-
-       delete_comments($type, $type_no);
-}
 
 ?>
\ No newline at end of file
index 80663e0bcbf42afdc47ec22add83f73579613638..fe9599afb10d6bc804d5ff4b3d9d5c8c436494b9 100644 (file)
@@ -154,6 +154,7 @@ function get_gl_trans($type, $trans_id)
                LEFT JOIN ".TB_PREF."refs as refs ON (gl.type=refs.type AND gl.type_no=refs.id)"
                ." WHERE gl.type= ".db_escape($type) 
                ." AND gl.type_no = ".db_escape($trans_id)
+               ." AND gl.amount <> 0"
                ." ORDER BY counter";
        return db_query($sql, "The gl transactions could not be retrieved");
 }
@@ -583,22 +584,6 @@ function void_gl_trans($type, $trans_id, $nested=false)
                commit_transaction();
 }
 
-//--------------------------------------------------------------------------------------------------
-
-function clear_gl_trans($type, $trans_id, $nested=false)
-{
-       if (!$nested)
-               begin_transaction();
-
-       $sql = "DELETE FROM ".TB_PREF."gl_trans WHERE type=".db_escape($type)
-       ." AND type_no=".db_escape($trans_id);
-
-       db_query($sql, "could not clear gl transactions for type=$type and trans_no=$trans_id");
-
-       if (!$nested)
-               commit_transaction();
-}
-
 //----------------------------------------------------------------------------------------
 
 function void_journal_trans($type, $type_no, $use_transaction=true)