Changed to allow change of reference in GL modifying
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Thu, 12 Nov 2009 21:11:21 +0000 (21:11 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Thu, 12 Nov 2009 21:11:21 +0000 (21:11 +0000)
Added reference in gl_trans_view.php

CHANGELOG.txt
gl/gl_journal.php
gl/includes/db/gl_db_trans.inc
gl/includes/ui/gl_journal_ui.inc
gl/view/gl_trans_view.php
includes/db/references_db.inc
includes/references.inc

index 16b5be9003196f78fd26b5734d6fb1d08bc4dd4e..cc483801e999124a7a0cc45de71115971187e002 100644 (file)
@@ -19,6 +19,15 @@ Legend:
 ! -> Note
 $ -> Affected files
 
+12-Nov-2009 Tom Hallman/Joe Hunt
+! Changed to allow change of reference in GL modifying
+$ /gl/includes/db/gl_db_trans.inc
+  /gl/gl_journal.php
+  /gl/includes/ui/bl_journal_ui.inc
+  /gl/view/gl_trans_view.php
+  /includes/references.inc
+  /includes/db/references_db.inc
+  
 12-Nov-2009 Tom Hallman/Janusz Dobrowolski
 + Added amount range in gl inquires.
 $ /gl/includes/db/gl_db_trans.inc
index bd7595f76365dcc22e85f8877b411d6e9c53c627..10cde058c7b76dd714ceeb38c54d41e081e5405d 100644 (file)
@@ -31,7 +31,7 @@ if ($use_date_picker)
 if (isset($_GET['ModifyGL'])) {
        $_SESSION['page_title'] = sprintf(_("Modifying Journal Transaction # %d."), 
                $_GET['trans_no']);
-       $help_context = "Modifying Journal Transaction";
+       $help_context = "Modifying Journal Entry";
 } else
        $_SESSION['page_title'] = _($help_context = "Journal Entry");
 
@@ -56,7 +56,7 @@ if (isset($_GET['AddedID']))
     display_note(get_gl_view_str($trans_type, $trans_no, _("&View this Journal Entry")));
 
        reset_focus();
-       hyperlink_params($_SERVER['PHP_SELF'], _("Entry &New Journal Entry"), "NewJournal=Yes");
+       hyperlink_params($_SERVER['PHP_SELF'], _("Enter &New Journal Entry"), "NewJournal=Yes");
 
        display_footer_exit();
 } elseif (isset($_GET['UpdatedID'])) 
@@ -114,15 +114,17 @@ function create_cart($type=0, $trans_no=0)
                $cart->memo_ = get_comments_string($type, $trans_no);
                $cart->tran_date = sql2date($date);
                $cart->reference = $Refs->get($type, $trans_no);
+               $_POST['ref_original'] = $cart->reference; // Store for comparison when updating
        } else {
                $cart->reference = $Refs->get_next(0);
                $cart->tran_date = new_doc_date();
+               $_POST['ref_original'] = -1;
        }
        if (!is_date_in_fiscalyear($cart->tran_date))
                $cart->tran_date = end_fiscalyear();
 
        $_POST['memo_'] = $cart->memo_;
-       $_POST['ref'] = $cart->reference;       
+       $_POST['ref'] = $cart->reference;
        $_POST['date_'] = $cart->tran_date;
 
        $_SESSION['journal_items'] = &$cart;
@@ -159,19 +161,20 @@ if (isset($_POST['Process']))
                set_focus('date_');
                $input_error = 1;
        } 
-       if ($_SESSION['journal_items']->order_id == 0) {
-               if (!$Refs->is_valid($_POST['ref'])) 
-               {
-                       display_error( _("You must enter a reference."));
-                       set_focus('ref');
-                       $input_error = 1;
-               } 
-               elseif ($Refs->exists(ST_JOURNAL, $_POST['ref'])) 
-               {
-                       display_error( _("The entered reference is already in use."));
-                       set_focus('ref');
-                       $input_error = 1;
-               }
+       if (!$Refs->is_valid($_POST['ref'])) 
+       {
+               display_error( _("You must enter a reference."));
+               set_focus('ref');
+               $input_error = 1;
+       } 
+       elseif ($Refs->exists(ST_JOURNAL, $_POST['ref'])) 
+       {
+           // The reference can exist already so long as it's the same as the original (when modifying) 
+           if ($_POST['ref'] != $_POST['ref_original']) {
+               display_error( _("The entered reference is already in use."));
+               set_focus('ref');
+               $input_error = 1;
+           }
        }
        if ($input_error == 1)
                unset($_POST['Process']);
@@ -182,8 +185,7 @@ if (isset($_POST['Process']))
        $cart = &$_SESSION['journal_items'];
        $new = $cart->order_id == 0;
 
-       if ($new) 
-               $cart->reference = $_POST['ref'];
+       $cart->reference = $_POST['ref'];
        $cart->memo_ = $_POST['memo_'];
        $cart->tran_date = $_POST['date_'];
 
index 51e26d8c0193cad292c7af7a865f39b1abce7ef5..31c07899976ce54f038b8d22c949c5e20686bef1 100644 (file)
@@ -381,19 +381,19 @@ function write_journal_entries(&$cart, $reverse, $use_transaction=true)
        $date_ = $cart->tran_date;
        $ref   = $cart->reference;
        $memo_ = $cart->memo_;
-       $new = $cart->order_id == 0;
        $trans_type = $cart->trans_type;
-       $trans_id = $new ? get_next_trans_no($trans_type) : $cart->order_id;
+       $new = $cart->order_id == 0;
+       
+       if ($new)
+           $cart->order_id = get_next_trans_no($trans_type);
+
+    $trans_id = $cart->order_id;
 
        if ($use_transaction)
                begin_transaction();
        
-       if($new) {
-               $cart->order_id = $trans_id;
-       } else {
+       if(!$new)
                void_journal_trans($trans_type, $trans_id, true);
-               delete_comments($trans_type, $trans_id);
-       }
 
        foreach ($cart->gl_items as $journal_item)
        {
@@ -417,8 +417,10 @@ function write_journal_entries(&$cart, $reverse, $use_transaction=true)
        if ($new) {
                add_comments($trans_type, $trans_id, $date_, $memo_);
                $Refs->save($trans_type, $trans_id, $ref);
-       } else
+       } else {
                update_comments($trans_type, $trans_id, null, $memo_);
+               $Refs->update($trans_type, $trans_id, $ref);
+       }
 
        add_audit_trail($trans_type, $trans_id, $date_);
 
@@ -446,7 +448,7 @@ function write_journal_entries(&$cart, $reverse, $use_transaction=true)
                }
                        // store tax details if the gl account is a tax account
                        add_gl_tax_details($journal_item->code_id, 
-                               ($journal_item->amount < 0.0 ? ST_BANKDEPOSIT : ST_BANKPAYMENT), $trans_id, $journal_item->amount, 1, $date, $memo_);
+                               ($journal_item->amount < 0.0 ? ST_BANKDEPOSIT : ST_BANKPAYMENT), $trans_id, $journal_item->amount, 1, $reversingDate, $memo_);
        }
 
        add_comments($trans_type, $trans_id_reverse, $reversingDate, $memo_);
index fdaa2589e1cb42eaebe5c571d564a4e1a30725cf..cf76e3fcf4db426ddf0dd2e5edf6da2b57519727 100644 (file)
@@ -27,10 +27,8 @@ function display_order_header(&$Order)
     date_cells(_("Date:"), 'date_', '', $new);
 
        table_section(2, $qes ? "20%" : "50%");
-       if ($new)
-               ref_cells(_("Reference:"), 'ref', '');
-       else
-               label_cells(_("Reference:"), $Order->reference);
+       ref_cells(_("Reference:"), 'ref', '');
+       hidden('ref_original');
        end_row();
 
 
index 3c74909471ef990e2491d36537bd55e18b3ebea3..295e551a36a66fcbd0ad61a7ea3b74e7d16e5c5f 100644 (file)
@@ -32,11 +32,12 @@ function display_gl_heading($myrow)
        global $table_style, $systypes_array;
        $trans_name = $systypes_array[$_GET['type_id']];
     start_table("$table_style width=95%");
-    $th = array(_("General Ledger Transaction Details"),
+    $th = array(_("General Ledger Transaction Details"), _("Reference"),
        _("Date"), _("Person/Item"));
     table_header($th); 
     start_row();       
     label_cell("$trans_name #" . $_GET['trans_no']);
+    label_cell($myrow["reference"]);
        label_cell(sql2date($myrow["tran_date"]));
        label_cell(payment_person_name($myrow["person_type_id"],$myrow["person_id"]));
        
@@ -47,11 +48,13 @@ function display_gl_heading($myrow)
     end_table(1);
 }
 
-$sql = "SELECT ".TB_PREF."gl_trans.*, account_name FROM "
-       .TB_PREF."gl_trans, ".TB_PREF."chart_master WHERE "
-       .TB_PREF."gl_trans.account = ".TB_PREF."chart_master.account_code AND type= " 
-       .db_escape($_GET['type_id']) . " AND type_no = ".db_escape($_GET['trans_no']) 
-       . " ORDER BY counter";
+$sql = "SELECT gl.*, cm.account_name, refs.reference FROM "
+       .TB_PREF."gl_trans as gl, ".TB_PREF."chart_master as cm, ".TB_PREF."refs as refs"
+       ." WHERE gl.account = cm.account_code"
+       ." AND gl.type= ".db_escape($_GET['type_id']) 
+       ." AND gl.type_no = ".db_escape($_GET['trans_no'])
+       ." AND gl.type=refs.type AND gl.type_no=refs.id"
+       ." ORDER BY counter";
 $result = db_query($sql,"could not get transactions");
 //alert("sql = ".$sql);
 
index 7764c534acbe9f81bca4c43c86903e1d288e567e..e5212c656f4c8b3573749efa0f6f8edf4b361f8c 100644 (file)
@@ -31,6 +31,15 @@ function add_reference($type, $id, $reference)
        db_query($sql, "could not add reference entry");
 }
 
+//--------------------------------------------------------------------------------------------------
+function update_reference($type, $id, $reference)
+{
+    $sql = "UPDATE ".TB_PREF."refs SET reference=".db_escape($reference)
+                       ." WHERE type=".db_escape($type)." AND id=".db_escape($id);
+    db_query($sql, "could not update reference entry");
+}
+
 //--------------------------------------------------------------------------------------------------
 
 function delete_reference($type, $id)
index 786ce62b215f84f8ccfdc63f66198ea3d30fa41b..d4b26f962c0a28f41dc7b1f4a4de3705370acded 100644 (file)
@@ -31,6 +31,11 @@ class references
                delete_reference($type, $id);
        }       
        
+       function update($type, $id, $reference) 
+       {
+           update_reference($type, $id, $reference);
+       }
+       
        function exists($type, $reference) 
        {
                return (find_reference($type, $reference) != null);