Added amount range in gl inquires.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Thu, 12 Nov 2009 10:36:27 +0000 (10:36 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Thu, 12 Nov 2009 10:36:27 +0000 (10:36 +0000)
CHANGELOG.txt
gl/includes/db/gl_db_trans.inc
gl/inquiry/gl_account_inquiry.php

index b5cd728b03fab0d095576ff6478e5b1d484ea798..1869ce857a4de562deef92e7e420f2bd85b5bb15 100644 (file)
@@ -19,6 +19,15 @@ Legend:
 ! -> Note
 $ -> Affected files
 
+12-Nov-2009 Tom Hallman/Janusz Dobrowolski
++ Added amount range in gl inquires.
+$ /gl/includes/db/gl_db_trans.inc
+  /gl/inquiry/gl_account_inquiry.php
+! Changed menu option text for GL inquiry
+$ /applications/generalledger.php
+# Fixed typo
+$ /doc/access_levels.txt
+
 12-Nov-2009 Tom Hallman/Joe Hunt
 ! Changed Journal Inquiries so it shows the Bank Deposit/Payment amount
   instead of sum of positive transaction.
index 59927a416126aae9d77761997a0aab3541fbc103..51e26d8c0193cad292c7af7a865f39b1abce7ef5 100644 (file)
@@ -97,7 +97,8 @@ function add_gl_balance($type, $trans_id, $date_, $amount, $person_type_id=null,
 //--------------------------------------------------------------------------------
 
 function get_gl_transactions($from_date, $to_date, $trans_no=0,
-       $account=null, $dimension=0, $dimension2=0, $filter_type=null)
+       $account=null, $dimension=0, $dimension2=0, $filter_type=null,
+       $amount_min=null, $amount_max=null)
 {
        $from = date2sql($from_date);
        $to = date2sql($to_date);
@@ -122,6 +123,12 @@ function get_gl_transactions($from_date, $to_date, $trans_no=0,
 
        if ($filter_type != null AND is_numeric($filter_type))
                $sql .= " AND ".TB_PREF."gl_trans.type= ".db_escape($filter_type);
+               
+       if ($amount_min != null)
+               $sql .= " AND ABS(".TB_PREF."gl_trans.amount) >= ABS(".db_escape($amount_min).")";
+       
+       if ($amount_max != null)
+               $sql .= " AND ABS(".TB_PREF."gl_trans.amount) <= ABS(".db_escape($amount_max).")";
 
        $sql .= " ORDER BY tran_date";
 
index 62fb64a2f0bd196b9186760635e705559ddb9c1f..a86f0c2b6a518464381b9bd13f1723f5e5922d65 100644 (file)
@@ -27,7 +27,7 @@ if ($use_popup_windows)
 if ($use_date_picker)
        $js .= get_js_date_picker();
 
-page(_($help_context = "General Ledger Account Inquiry"), false, false, '', $js);
+page(_($help_context = "General Ledger Inquiry"), false, false, '', $js);
 
 //----------------------------------------------------------------------------------------------------
 // Ajax updates
@@ -47,6 +47,15 @@ if (isset($_GET["Dimension"]))
        $_POST["Dimension"] = $_GET["Dimension"];
 if (isset($_GET["Dimension2"]))
        $_POST["Dimension2"] = $_GET["Dimension2"];
+if (isset($_GET["amount_min"]))
+       $_POST["amount_min"] = $_GET["amount_min"];
+if (isset($_GET["amount_max"]))
+       $_POST["amount_max"] = $_GET["amount_max"];
+
+if (!isset($_POST["amount_min"]))
+       $_POST["amount_min"] = price_format(0);
+if (!isset($_POST["amount_max"]))
+       $_POST["amount_max"] = price_format(0);
 
 //----------------------------------------------------------------------------------------------------
 
@@ -57,24 +66,28 @@ function gl_inquiry_controls()
        $dim = get_company_pref('use_dimension');
     start_form();
 
-    //start_table($table_style2);
     start_table("class='tablestyle_noborder'");
        start_row();
-
-    gl_all_accounts_list_cells(_("Account:"), 'account', null);
-
+    gl_all_accounts_list_cells(_("Account:"), 'account', null, false, false, "All Accounts");
        date_cells(_("from:"), 'TransFromDate', '', null, -30);
        date_cells(_("to:"), 'TransToDate');
-       submit_cells('Show',_("Show"),'','', 'default');
-
     end_row();
+       end_table();
 
+       start_table();
+       start_row();
        if ($dim >= 1)
-               dimensions_list_row(_("Dimension")." 1", 'Dimension', null, true, " ", false, 1);
+               dimensions_list_cells(_("Dimension")." 1:", 'Dimension', null, true, " ", false, 1);
        if ($dim > 1)
-               dimensions_list_row(_("Dimension")." 2", 'Dimension2', null, true, " ", false, 2);
+               dimensions_list_cells(_("Dimension")." 2:", 'Dimension2', null, true, " ", false, 2);
+
+       small_amount_cells(_("Amount min:"), 'amount_min', null);
+       small_amount_cells(_("Amount max:"), 'amount_max', null);
+       submit_cells('Show',_("Show"),'','', 'default');
+       end_row();
        end_table();
 
+       echo '<hr>';
     end_form();
 }
 
@@ -84,9 +97,10 @@ function show_results()
 {
        global $path_to_root, $table_style, $systypes_array;
 
-       if (!isset($_POST["account"]) || $_POST["account"] == "")
-               return;
-       $act_name = get_gl_account_name($_POST["account"]);
+       if (!isset($_POST["account"]))
+               $_POST["account"] = null;
+
+       $act_name = $_POST["account"] ? get_gl_account_name($_POST["account"]) : "";
        $dim = get_company_pref('use_dimension');
 
     /*Now get the transactions  */
@@ -95,25 +109,44 @@ function show_results()
     if (!isset($_POST['Dimension2']))
        $_POST['Dimension2'] = 0;
        $result = get_gl_transactions($_POST['TransFromDate'], $_POST['TransToDate'], -1,
-       $_POST["account"], $_POST['Dimension'], $_POST['Dimension2']);
+       $_POST["account"], $_POST['Dimension'], $_POST['Dimension2'], null,
+       input_num('amount_min'), input_num('amount_max'));
 
        $colspan = ($dim == 2 ? "6" : ($dim == 1 ? "5" : "4"));
-       div_start('trans_tbl');
-       //echo "\nDimension =". $_POST['Dimension'];
-       display_heading($_POST["account"]. "&nbsp;&nbsp;&nbsp;".$act_name);
 
+       if ($_POST["account"] != null)
+               display_heading($_POST["account"]. "&nbsp;&nbsp;&nbsp;".$act_name);
+
+       // Only show balances if an account is specified AND we're not filtering by amounts
+       $show_balances = $_POST["account"] != null && 
+                     input_num("amount_min") == 0 && 
+                     input_num("amount_max") == 0;
+               
        start_table($table_style);
+       
+       $first_cols = array(_("Type"), _("#"), _("Date"));
+       
+       if ($_POST["account"] == null)
+           $account_col = array(_("Account"));
+       else
+           $account_col = array();
+       
        if ($dim == 2)
-               $th = array(_("Type"), _("#"), _("Date"), _("Dimension")." 1", _("Dimension")." 2",
-                       _("Person/Item"), _("Debit"), _("Credit"), _("Balance"), _("Memo"));
+               $dim_cols = array(_("Dimension")." 1", _("Dimension")." 2");
        else if ($dim == 1)
-               $th = array(_("Type"), _("#"), _("Date"), _("Dimension"),
-                       _("Person/Item"), _("Debit"), _("Credit"), _("Balance"), _("Memo"));
+               $dim_cols = array(_("Dimension"));
+       else
+               $dim_cols = array();
+       
+       if ($show_balances)
+           $remaining_cols = array(_("Person/Item"), _("Debit"), _("Credit"), _("Balance"), _("Memo"));
        else
-               $th = array(_("Type"), _("#"), _("Date"),
-                       _("Person/Item"), _("Debit"), _("Credit"), _("Balance"), _("Memo"));
+           $remaining_cols = array(_("Person/Item"), _("Debit"), _("Credit"), _("Memo"));
+           
+       $th = array_merge($first_cols, $account_col, $dim_cols, $remaining_cols);
+                       
        table_header($th);
-       if (is_account_balancesheet($_POST["account"]))
+       if ($_POST["account"] != null && is_account_balancesheet($_POST["account"]))
                $begin = "";
        else
        {
@@ -123,15 +156,17 @@ function show_results()
                $begin = add_days($begin, -1);
        }
 
-    $bfw = get_gl_balance_from_to($begin, $_POST['TransFromDate'], $_POST["account"], $_POST['Dimension'], $_POST['Dimension2']);
-
-       start_row("class='inquirybg'");
-       label_cell("<b>"._("Opening Balance")." - ".$_POST['TransFromDate']."</b>", "colspan=$colspan");
-       display_debit_or_credit_cells($bfw);
-       label_cell("");
-       label_cell("");
-       end_row();
-       //$running_total =0;
+       $bfw = 0;
+       if ($show_balances) {
+           $bfw = get_gl_balance_from_to($begin, $_POST['TransFromDate'], $_POST["account"], $_POST['Dimension'], $_POST['Dimension2']);
+       start_row("class='inquirybg'");
+       label_cell("<b>"._("Opening Balance")." - ".$_POST['TransFromDate']."</b>", "colspan=$colspan");
+       display_debit_or_credit_cells($bfw);
+       label_cell("");
+       label_cell("");
+       end_row();
+       }
+       
        $running_total = $bfw;
        $j = 1;
        $k = 0; //row colour counter
@@ -148,13 +183,18 @@ function show_results()
        label_cell($systypes_array[$myrow["type"]]);
                label_cell(get_gl_view_str($myrow["type"], $myrow["type_no"], $myrow["type_no"], true));
        label_cell($trandate);
+       
+       if ($_POST["account"] == null)
+           label_cell($myrow["account"] . ' ' . get_gl_account_name($myrow["account"]));
+       
                if ($dim >= 1)
                        label_cell(get_dimension_string($myrow['dimension_id'], true));
                if ($dim > 1)
                        label_cell(get_dimension_string($myrow['dimension2_id'], true));
                label_cell(payment_person_name($myrow["person_type_id"],$myrow["person_id"]));
                display_debit_or_credit_cells($myrow["amount"]);
-               amount_cell($running_total);
+               if ($show_balances)
+                   amount_cell($running_total);
        label_cell($myrow['memo_']);
        end_row();
 
@@ -167,24 +207,31 @@ function show_results()
        }
        //end of while loop
 
-       start_row("class='inquirybg'");
-       label_cell("<b>" . _("Ending Balance") ." - ".$_POST['TransToDate']. "</b>", "colspan=$colspan");
-       display_debit_or_credit_cells($running_total);
-       label_cell("");
-       label_cell("");
-       end_row();
+       if ($show_balances) {
+       start_row("class='inquirybg'");
+       label_cell("<b>" . _("Ending Balance") ." - ".$_POST['TransToDate']. "</b>", "colspan=$colspan");
+       display_debit_or_credit_cells($running_total);
+       label_cell("");
+       label_cell("");
+       end_row();
+       }
 
        end_table(2);
        if (db_num_rows($result) == 0)
-               display_note(_("No general ledger transactions have been created for this account on the selected dates."), 0, 1);
-       div_end();
+               display_note(_("No general ledger transactions have been created for the specified criteria."), 0, 1);
+
 }
 
 //----------------------------------------------------------------------------------------------------
 
 gl_inquiry_controls();
 
-show_results();
+div_start('trans_tbl');
+
+if (get_post('Show'))
+    show_results();
+
+div_end();
 
 //----------------------------------------------------------------------------------------------------