Allow editing account when editing a row in GL Bank and GL Journal Entry
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 13 Nov 2009 15:50:27 +0000 (15:50 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Fri, 13 Nov 2009 15:50:27 +0000 (15:50 +0000)
Transaction bug in void_journal_trans()

CHANGELOG.txt
gl/gl_bank.php
gl/gl_journal.php
gl/includes/db/gl_db_trans.inc
gl/includes/ui/gl_bank_ui.inc
gl/includes/ui/gl_journal_ui.inc
includes/ui/items_cart.inc

index ccffac6692a66c93b5e2c6c1a89e8cdc3a47564c..da6f8381422366d6f3fb01218a1a47c83845f397 100644 (file)
@@ -19,6 +19,16 @@ Legend:
 ! -> Note
 $ -> Affected files
 
+13-Nov-2009 Tom Hallman/Joe Hunt
+! Allow editing account when editing a row in GL Bank and GL Journal Entry
+$ /gl/gl_bank.php
+  /gl/gl_journal.php
+  /gl/includes/ui/gl_bank_ui.inc
+  /gl/includes/ui/gl_journal_ui.inc
+  /includes/ui/items_cart.inc
+# Transaction bug in void_journal_trans()
+$ /gl/includes/db/gl_db_trans.inc
+
 12-Nov-2009 Tom Hallman/Joe Hunt
 ! Cleaning the CHANGELOG.txt file
 ! Changed to allow change of reference in GL modifying
index f0b007e0498f40ce289a6e3a461dac32fd43c96b..baf7f8857f28c2245873b9f3d5e8c19a8e8c9614 100644 (file)
@@ -213,8 +213,8 @@ function handle_update_item()
        $amount = ($_SESSION['pay_items']->trans_type==ST_BANKPAYMENT ? 1:-1) * input_num('amount');
     if($_POST['UpdateItem'] != "" && check_item_data())
     {
-       $_SESSION['pay_items']->update_gl_item($_POST['Index'], $_POST['dimension_id'],
-               $_POST['dimension2_id'], $amount , $_POST['LineMemo']);
+       $_SESSION['pay_items']->update_gl_item($_POST['Index'], $_POST['code_id'], 
+           $_POST['dimension_id'], $_POST['dimension2_id'], $amount , $_POST['LineMemo']);
     }
        line_start_focus();
 }
index 10cde058c7b76dd714ceeb38c54d41e081e5405d..d515b179b8825c7d7f1ae9478d38a7092ac67312 100644 (file)
@@ -264,8 +264,8 @@ function handle_update_item()
        else
                $amount = -input_num('AmountCredit');
 
-       $_SESSION['journal_items']->update_gl_item($_POST['Index'], $_POST['dimension_id'],
-               $_POST['dimension2_id'], $amount, $_POST['LineMemo']);
+       $_SESSION['journal_items']->update_gl_item($_POST['Index'], $_POST['code_id'], 
+           $_POST['dimension_id'], $_POST['dimension2_id'], $amount, $_POST['LineMemo']);
     }
        line_start_focus();
 }
index 31c07899976ce54f038b8d22c949c5e20686bef1..b529bd09a60771ee31569133b149332ac101be07 100644 (file)
@@ -393,7 +393,7 @@ function write_journal_entries(&$cart, $reverse, $use_transaction=true)
                begin_transaction();
        
        if(!$new)
-               void_journal_trans($trans_type, $trans_id, true);
+               void_journal_trans($trans_type, $trans_id, false);
 
        foreach ($cart->gl_items as $journal_item)
        {
@@ -492,15 +492,17 @@ function void_gl_trans($type, $trans_id, $nested=false)
 
 //----------------------------------------------------------------------------------------
 
-function void_journal_trans($type, $type_no)
+function void_journal_trans($type, $type_no, $use_transaction=true)
 {
-       begin_transaction();
+       if ($use_transaction)
+               begin_transaction();
 
        void_bank_trans($type, $type_no, true);
 //     void_gl_trans($type, $type_no, true);    // this is done above
 //     void_trans_tax_details($type, $type_no); // ditto
 
-       commit_transaction();
+       if ($use_transaction)
+               commit_transaction();
 }
 
 ?>
\ No newline at end of file
index a030db0c59952f6a4bee6391faafef932aabb472..4014426e97c47e492212225df99a390082e3ae15 100644 (file)
@@ -197,9 +197,7 @@ function gl_edit_item_controls(&$order, $dim, $Index=null)
                $_POST['LineMemo'] = $item->reference;
 
                hidden('Index', $id);
-               hidden('code_id', $item->code_id);
-               label_cell($_POST['code_id']);
-               label_cell($item->description);
+               gl_all_accounts_list('code_id', null, true, true);
                if ($dim >= 1)
                        dimensions_list_cells(null, 'dimension_id', null, true, " ", false, 1);
                if ($dim > 1)
index cf76e3fcf4db426ddf0dd2e5edf6da2b57519727..04d703dda35f368e6ef9860506c7bea783dd7d29 100644 (file)
@@ -150,6 +150,7 @@ function gl_edit_item_controls(&$order, $dim, $Index=null)
        $id = find_submit('Edit');
        if ($Index != -1 && $Index == $id)
        {
+           // Modifying an existing row
                $item = $order->gl_items[$Index];
                $_POST['code_id'] = $item->code_id;
                $_POST['dimension_id'] = $item->dimension_id;
@@ -168,9 +169,8 @@ function gl_edit_item_controls(&$order, $dim, $Index=null)
                $_POST['LineMemo'] = $item->reference;
 
                hidden('Index', $id);
-               hidden('code_id', $item->code_id);
-               label_cell($_POST['code_id']);
-               label_cell($item->description);
+               $skip_bank = !$_SESSION["wa_current_user"]->can_access('SA_BANKJOURNAL');
+               gl_all_accounts_list('code_id', null, $skip_bank, true);
                if ($dim >= 1) 
                        dimensions_list_cells(null, 'dimension_id', null, true, " ", false, 1);
                if ($dim > 1) 
@@ -179,6 +179,7 @@ function gl_edit_item_controls(&$order, $dim, $Index=null)
        }
        else
        {
+           // Adding a new row
                $_POST['AmountDebit'] = '';  //price_format(0);
                $_POST['AmountCredit'] = ''; //price_format(0);
                $_POST['dimension_id'] = 0;
index 0f8b3c35462aefee00d8531d97dee54834742958..12e1ab244694ddbc2f9673aa43205ed4d1f3b06b 100644 (file)
@@ -113,13 +113,16 @@ class items_cart
                return false;
        }
 
-       function update_gl_item($index, $dimension_id, $dimension2_id, $amount, $reference, $description=null)
+       function update_gl_item($index, $code_id, $dimension_id, $dimension2_id, $amount, $reference, $description=null)
        {
+           $this->gl_items[$index]->code_id = $code_id;
                $this->gl_items[$index]->dimension_id = $dimension_id;
                $this->gl_items[$index]->dimension2_id = $dimension2_id;
                $this->gl_items[$index]->amount = $amount;
                $this->gl_items[$index]->reference = $reference;
-               if ($description != null)
+               if ($description == null)
+                       $this->gl_items[$index]->description = get_gl_account_name($code_id);
+               else
                        $this->gl_items[$index]->description = $description;
 
        }