Eliminated non-static method calls and other bulk fixes to fix php5 warnings
[fa-stable.git] / admin / fiscalyears.php
index 29d6d306d131c5b7c9e599705aef899220dff7bc..e7a2ff7454ac754ef66276f63ae729f1639da0db 100644 (file)
@@ -9,8 +9,8 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-$page_security = 9;
-$path_to_root="..";
+$page_security = 'SA_FISCALYEARS';
+$path_to_root = "..";
 include_once($path_to_root . "/includes/session.inc");
 
 include_once($path_to_root . "/includes/date_functions.inc");
@@ -85,25 +85,30 @@ function check_data()
 //---------------------------------------------------------------------------------------------
 function close_year($year)
 {
+       $co = get_company_prefs();
+       if ($co['retained_earnings_act'] == '' || $co['profit_loss_year_act'] == '')
+       {
+               display_error(_("The Retained Earnings Account or the Profit and Loss Year Account has not been set in System and General GL Setup"));
+               return false;
+       }
+       begin_transaction();
+
        $myrow = get_fiscalyear($year);
        $to = $myrow['end'];
        // retrieve total balances from balance sheet accounts
     $sql = "SELECT SUM(amount) FROM ".TB_PREF."gl_trans INNER JOIN ".TB_PREF."chart_master ON account=account_code
        INNER JOIN ".TB_PREF."chart_types ON account_type=id INNER JOIN ".TB_PREF."chart_class ON class_id=cid 
-               WHERE balance_sheet=1 AND tran_date <= '$to'";
+               WHERE ctype>=".CL_ASSETS." AND ctype <=".CL_EQUITY." AND tran_date <= '$to'";
        $result = db_query($sql, "The total balance could not be calculated");
 
        $row = db_fetch_row($result);
        $balance = round2($row[0], user_price_dec());
 
-       begin_transaction();
        $to = sql2date($to);
 
        if ($balance != 0.0)
        {
-               $co = get_company_prefs();
-
-               $trans_type = systypes::journal_entry();
+               $trans_type = ST_JOURNAL;
                $trans_id = get_next_trans_no($trans_type);
 
                add_gl_trans($trans_type, $trans_id, $to, $co['retained_earnings_act'],
@@ -112,8 +117,10 @@ function close_year($year)
                        0, 0, _("Closing Year"), $balance);
 
        }       
-               close_transactions($to);
-               commit_transaction();
+       close_transactions($to);
+
+       commit_transaction();
+       return true;
 }
 
 function open_year($year)
@@ -130,6 +137,7 @@ function handle_submit()
 {
        global $selected_id, $Mode;
 
+       $ok = true;
        if ($selected_id != -1)
        {
                if ($_POST['closed'] == 1)
@@ -140,12 +148,15 @@ function handle_submit()
                                set_focus('closed');
                                return false;
                        }       
-                       close_year($selected_id);
+                       $ok = close_year($selected_id);
                }       
                else
                        open_year($selected_id);
-               update_fiscalyear($selected_id, $_POST['closed']);
-               display_notification(_('Selected fiscal year has been updated'));
+               if ($ok)
+               {
+                       update_fiscalyear($selected_id, $_POST['closed']);
+                       display_notification(_('Selected fiscal year has been updated'));
+               }       
        }
        else
        {
@@ -204,20 +215,20 @@ function delete_this_fiscalyear($selected_id)
        $ref = _("Open Balance");
        $myrow = get_fiscalyear($selected_id);
        $to = $myrow['end'];
-       $sql = "SELECT order_no FROM ".TB_PREF."sales_orders WHERE ord_date <= '$to' AND type <> 1"; // don't take the templates
+       $sql = "SELECT order_no, trans_type FROM ".TB_PREF."sales_orders WHERE ord_date <= '$to' AND type <> 1"; // don't take the templates
        $result = db_query($sql, "Could not retrieve sales orders");
        while ($row = db_fetch($result))
        {
-               $sql = "SELECT SUM(qty_sent), SUM(quantity) FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']}";
+               $sql = "SELECT SUM(qty_sent), SUM(quantity) FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']} AND trans_type = {$row['trans_type']}";
                $res = db_query($sql, "Could not retrieve sales order details");
                $row2 = db_fetch_row($res);
                if ($row2[0] == $row2[1])
                {
-                       $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']}";
+                       $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no = {$row['order_no']} AND trans_type = {$row['trans_type']}";
                        db_query($sql, "Could not delete sales order details");
-                       $sql = "DELETE FROM ".TB_PREF."sales_orders WHERE order_no = {$row['order_no']}";
+                       $sql = "DELETE FROM ".TB_PREF."sales_orders WHERE order_no = {$row['order_no']} AND trans_type = {$row['trans_type']}";
                        db_query($sql, "Could not delete sales order");
-                       delete_attachments_and_comments(systypes::sales_order(), $row['order_no']);
+                       delete_attachments_and_comments($row['trans_type'], $row['order_no']);
                }
        }
        $sql = "SELECT order_no FROM ".TB_PREF."purch_orders WHERE ord_date <= '$to'";
@@ -233,7 +244,7 @@ function delete_this_fiscalyear($selected_id)
                        db_query($sql, "Could not delete purchase order details");
                        $sql = "DELETE FROM ".TB_PREF."purch_orders WHERE order_no = {$row['order_no']}";
                        db_query($sql, "Could not delete purchase order");
-                       delete_attachments_and_comments(systypes::po(), $row['order_no']);
+                       delete_attachments_and_comments(ST_PURCHORDER, $row['order_no']);
                }
        }
        $sql = "SELECT id FROM ".TB_PREF."grn_batch WHERE delivery_date <= '$to'";
@@ -377,6 +388,9 @@ function display_fiscalyears()
 
        $result = get_all_fiscalyears();
        start_form();
+       display_note(_("Warning: During fiscal year removal all transactions 
+               are removed and converted into relevant balances. This process is irreversible!"), 
+               0, 0, "class='currentfg'");
        start_table($table_style);
 
        $th = array(_("Fiscal Year Begin"), _("Fiscal Year End"), _("Closed"), "", "");
@@ -406,9 +420,13 @@ function display_fiscalyears()
                label_cell($to);
                label_cell($closed_text);
                edit_button_cell("Edit".$myrow['id'], _("Edit"));
-               if ($myrow["id"] != $company_year)
+               if ($myrow["id"] != $company_year) {
                        delete_button_cell("Delete".$myrow['id'], _("Delete"));
-               else
+                       submit_js_confirm("Delete".$myrow['id'],
+                               sprintf(_("Are you sure you want to remove fiscal year
+                               '%s'-'%s'? All transactions are removed and converted into relevant
+                               balances. Do you want to continue ?"), $from, $to));
+               } else
                        label_cell('');
                end_row();
        }