PHP 7.X produces A non-numeric value encountered in \includes\date_functions.inc...
[fa-stable.git] / gl / inquiry / gl_trial_balance.php
index 1f6545c9ded2b3983e14aa736141ceeeedb63181..0dd1dcfa0327ef8f740b374d8c0acf89b2d70724 100644 (file)
@@ -1,12 +1,12 @@
 <?php
 /**********************************************************************
     Copyright (C) FrontAccounting, LLC.
 <?php
 /**********************************************************************
     Copyright (C) FrontAccounting, LLC.
-       Released under the terms of the GNU General Public License, GPL, 
-       as published by the Free Software Foundation, either version 3 
+       Released under the terms of the GNU General Public License, GPL,
+       as published by the Free Software Foundation, either version 3
        of the License, or (at your option) any later version.
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
        of the License, or (at your option) any later version.
     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
 $page_security = 'SA_GLANALYTIC';
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
 $page_security = 'SA_GLANALYTIC';
@@ -22,7 +22,7 @@ include_once($path_to_root . "/includes/data_checks.inc");
 include_once($path_to_root . "/gl/includes/gl_db.inc");
 
 $js = "";
 include_once($path_to_root . "/gl/includes/gl_db.inc");
 
 $js = "";
-if ($use_date_picker)
+if (user_use_date_picker())
        $js = get_js_date_picker();
 
 page(_($help_context = "Trial Balance"), false, false, "", $js);
        $js = get_js_date_picker();
 
 page(_($help_context = "Trial Balance"), false, false, "", $js);
@@ -33,7 +33,7 @@ $pdeb = $pcre = $cdeb = $ccre = $tdeb = $tcre = $pbal = $cbal = $tbal = 0;
 //----------------------------------------------------------------------------------------------------
 // Ajax updates
 //
 //----------------------------------------------------------------------------------------------------
 // Ajax updates
 //
-if (get_post('Show')) 
+if (get_post('Show'))
 {
        $Ajax->activate('balance_tbl');
 }
 {
        $Ajax->activate('balance_tbl');
 }
@@ -46,7 +46,13 @@ function gl_inquiry_controls()
 
     start_table(TABLESTYLE_NOBORDER);
 
 
     start_table(TABLESTYLE_NOBORDER);
 
-    date_cells(_("From:"), 'TransFromDate', '', null, -30);
+       $date = today();
+       if (!isset($_POST['TransToDate']))
+               $_POST['TransToDate'] = end_month($date);
+       if (!isset($_POST['TransFromDate']))
+               $_POST['TransFromDate'] = add_days(end_month($date), -user_transaction_days());
+       start_row();    
+    date_cells(_("From:"), 'TransFromDate');
        date_cells(_("To:"), 'TransToDate');
        if ($dim >= 1)
                dimensions_list_cells(_("Dimension")." 1:", 'Dimension', null, true, " ", false, 1);
        date_cells(_("To:"), 'TransToDate');
        if ($dim >= 1)
                dimensions_list_cells(_("Dimension")." 1:", 'Dimension', null, true, " ", false, 1);
@@ -54,8 +60,8 @@ function gl_inquiry_controls()
                dimensions_list_cells(_("Dimension")." 2:", 'Dimension2', null, true, " ", false, 2);
        check_cells(_("No zero values"), 'NoZero', null);
        check_cells(_("Only balances"), 'Balance', null);
                dimensions_list_cells(_("Dimension")." 2:", 'Dimension2', null, true, " ", false, 2);
        check_cells(_("No zero values"), 'NoZero', null);
        check_cells(_("Only balances"), 'Balance', null);
-
        submit_cells('Show',_("Show"),'','', 'default');
        submit_cells('Show',_("Show"),'','', 'default');
+       end_row();
     end_table();
     end_form();
 }
     end_table();
     end_form();
 }
@@ -64,10 +70,10 @@ function gl_inquiry_controls()
 
 function display_trial_balance($type, $typename)
 {
 
 function display_trial_balance($type, $typename)
 {
-       global $path_to_root;
+       global $path_to_root, $SysPrefs,
+                $k, $pdeb, $pcre, $cdeb, $ccre, $tdeb, $tcre, $pbal, $cbal, $tbal;
 
 
-       global $k, $pdeb, $pcre, $cdeb, $ccre, $tdeb, $tcre, $pbal, $cbal, $tbal;
-       $printtitle = 0; //Flag for printing type name          
+       $printtitle = 0; //Flag for printing type name
 
        $k = 0;
 
 
        $k = 0;
 
@@ -79,9 +85,19 @@ function display_trial_balance($type, $typename)
                $begin = $_POST['TransFromDate'];
        $begin = add_days($begin, -1);
 
                $begin = $_POST['TransFromDate'];
        $begin = add_days($begin, -1);
 
+       $Apdeb=$pdeb;
+       $Apcre=$pcre;
+       $Acdeb=$cdeb;
+       $Accre=$ccre;
+       $Atdeb=$tdeb;
+       $Atcre=$tcre;
+       $Apbal=$pbal;
+       $Acbal=$cbal;
+       $Atbal=$tbal;
+
        while ($account = db_fetch($accounts))
        {
        while ($account = db_fetch($accounts))
        {
-               //Print Type Title if it has atleast one non-zero account       
+               //Print Type Title if it has atleast one non-zero account
                if (!$printtitle)
                {
                        start_row("class='inquirybg' style='font-weight:bold'");
                if (!$printtitle)
                {
                        start_row("class='inquirybg' style='font-weight:bold'");
@@ -90,6 +106,15 @@ function display_trial_balance($type, $typename)
                        $printtitle = 1;
                }
 
                        $printtitle = 1;
                }
 
+               // FA doesn't really clear the closed year, therefore the brought forward balance includes all the transactions from the past, even though the balance is null.
+               // If we want to remove the balanced part for the past years, this option removes the common part from from the prev and tot figures.
+               if (@$SysPrefs->clear_trial_balance_opening)
+               {
+                       $open = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin,  $begin, false, true);
+                       $offset = min($open['debit'], $open['credit']);
+               } else
+                       $offset = 0;
+
                $prev = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin, $_POST['TransFromDate'], false, false);
                $curr = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $_POST['TransFromDate'], $_POST['TransToDate'], true, true);
                $tot = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin, $_POST['TransToDate'], false, true);
                $prev = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin, $_POST['TransFromDate'], false, false);
                $curr = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $_POST['TransFromDate'], $_POST['TransToDate'], true, true);
                $tot = get_balance($account["account_code"], $_POST['Dimension'], $_POST['Dimension2'], $begin, $_POST['TransToDate'], false, true);
@@ -110,19 +135,19 @@ function display_trial_balance($type, $typename)
                }
                else
                {
                }
                else
                {
-                       amount_cell($prev['debit']);
-                       amount_cell($prev['credit']);
+                       amount_cell($prev['debit']-$offset);
+                       amount_cell($prev['credit']-$offset);
                        amount_cell($curr['debit']);
                        amount_cell($curr['credit']);
                        amount_cell($curr['debit']);
                        amount_cell($curr['credit']);
-                       amount_cell($tot['debit']);
-                       amount_cell($tot['credit']);
+                       amount_cell($tot['debit']-$offset);
+                       amount_cell($tot['credit']-$offset);
                        $pdeb += $prev['debit'];
                        $pcre += $prev['credit'];
                        $cdeb += $curr['debit'];
                        $ccre += $curr['credit'];
                        $tdeb += $tot['debit'];
                        $tcre += $tot['credit'];
                        $pdeb += $prev['debit'];
                        $pcre += $prev['credit'];
                        $cdeb += $curr['debit'];
                        $ccre += $curr['credit'];
                        $tdeb += $tot['debit'];
                        $tcre += $tot['credit'];
-               }       
+               }
                $pbal += $prev['balance'];
                $cbal += $curr['balance'];
                $tbal += $tot['balance'];
                $pbal += $prev['balance'];
                $cbal += $curr['balance'];
                $tbal += $tot['balance'];
@@ -144,6 +169,26 @@ function display_trial_balance($type, $typename)
                }
                display_trial_balance($accounttype["id"], $accounttype["name"].' ('.$typename.')');
        }
                }
                display_trial_balance($accounttype["id"], $accounttype["name"].' ('.$typename.')');
        }
+
+       start_row("class='inquirybg' style='font-weight:bold'");
+       label_cell(_("Total") ." - ".$typename, "colspan=2");
+
+       if (!check_value('Balance'))
+       {
+               amount_cell($pdeb-$Apdeb );
+               amount_cell($pcre-$Apcre);
+               amount_cell($cdeb-$Acdeb );
+               amount_cell($ccre-$Accre );
+               amount_cell($tdeb-$Atdeb );
+               amount_cell($tcre-$Atcre);
+       }
+       else
+       {
+               display_debit_or_credit_cells($pbal-$Apbal);
+               display_debit_or_credit_cells($cbal-$Acbal );
+               display_debit_or_credit_cells($tbal-$Atbal);
+       }
+       end_row();
 }
 
 //----------------------------------------------------------------------------------------------------
 }
 
 //----------------------------------------------------------------------------------------------------
@@ -200,36 +245,31 @@ while ($class = db_fetch($classresult))
        }
 }
 
        }
 }
 
-       //$prev = get_balance(null, $begin, $_POST['TransFromDate'], false, false);
-       //$curr = get_balance(null, $_POST['TransFromDate'], $_POST['TransToDate'], true, true);
-       //$tot = get_balance(null, $begin, $_POST['TransToDate'], false, true);
-       if (!check_value('Balance'))
-       {
-               start_row("class='inquirybg' style='font-weight:bold'");
-               label_cell(_("Total") ." - ".$_POST['TransToDate'], "colspan=2");
-               amount_cell($pdeb);
-               amount_cell($pcre);
-               amount_cell($cdeb);
-               amount_cell($ccre);
-               amount_cell($tdeb);
-               amount_cell($tcre);
-               end_row();
-       }       
+if (!check_value('Balance'))
+{
        start_row("class='inquirybg' style='font-weight:bold'");
        start_row("class='inquirybg' style='font-weight:bold'");
-       label_cell(_("Ending Balance") ." - ".$_POST['TransToDate'], "colspan=2");
-       display_debit_or_credit_cells($pbal);
-       display_debit_or_credit_cells($cbal);
-       display_debit_or_credit_cells($tbal);
+       label_cell(_("Total") ." - ".$_POST['TransToDate'], "colspan=2");
+       amount_cell($pdeb);
+       amount_cell($pcre);
+       amount_cell($cdeb);
+       amount_cell($ccre);
+       amount_cell($tdeb);
+       amount_cell($tcre);
        end_row();
        end_row();
-
-       end_table(1);
-       if (($pbal = round2($pbal, user_price_dec())) != 0 && $_POST['Dimension'] == 0 && $_POST['Dimension2'] == 0)
-               display_warning(_("The Opening Balance is not in balance, probably due to a non closed Previous Fiscalyear."));
-       div_end();
+}
+start_row("class='inquirybg' style='font-weight:bold'");
+label_cell(_("Ending Balance") ." - ".$_POST['TransToDate'], "colspan=2");
+display_debit_or_credit_cells($pbal);
+display_debit_or_credit_cells($cbal);
+display_debit_or_credit_cells($tbal);
+end_row();
+
+end_table(1);
+if (($pbal = round2($pbal, user_price_dec())) != 0 && $_POST['Dimension'] == 0 && $_POST['Dimension2'] == 0)
+       display_warning(_("The Opening Balance is not in balance, probably due to a non closed Previous Fiscalyear."));
+div_end();
 
 //----------------------------------------------------------------------------------------------------
 
 end_page();
 
 
 //----------------------------------------------------------------------------------------------------
 
 end_page();
 
-?>
-