Fixed broken table editor page layout on duplicate record error.
[fa-stable.git] / gl / manage / gl_accounts.php
index c78becaa1605fd725238840aeddb6cec4bcd915e..718be9bd872f692f7b257154933e348a60c8fe65 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 = 10;
-$path_to_root="../..";
+$page_security = 'SA_GLACCOUNT';
+$path_to_root = "../..";
 include($path_to_root . "/includes/session.inc");
 
 page(_("Chart of Accounts"));
@@ -26,6 +26,7 @@ check_db_has_gl_account_groups(_("There are no account groups defined. Please de
 if (isset($_POST['_AccountList_update'])) 
 {
        $_POST['selected_account'] = $_POST['AccountList'];
+       unset($_POST['account_code']);
 }
 
 if (isset($_POST['selected_account']))
@@ -71,19 +72,22 @@ if (isset($_POST['add']) || isset($_POST['update']))
                        $_POST['account_code'] = strtoupper($_POST['account_code']);
        if ($selected_account) 
                {
-               update_gl_account($_POST['account_code'], $_POST['account_name'], 
-                               $_POST['account_type'], $_POST['account_code2']);
-                       update_record_status($_POST['account_code'], $_POST['inactive'],
-                               'chart_master', 'account_code');
-                       $Ajax->activate('account_code'); // in case of status change
-                       display_notification(_("Account data has been updated."));
+               if (update_gl_account($_POST['account_code'], $_POST['account_name'], 
+                               $_POST['account_type'], $_POST['account_code2'])) {
+                               update_record_status($_POST['account_code'], $_POST['inactive'],
+                                       'chart_master', 'account_code');
+                               $Ajax->activate('account_code'); // in case of status change
+                               display_notification(_("Account data has been updated."));
+                       }
                }
        else 
                {
-               add_gl_account($_POST['account_code'], $_POST['account_name'], 
-                               $_POST['account_type'], $_POST['account_code2']);
-                       $selected_account = $_POST['AccountList'] = $_POST['account_code'];
-                       display_notification(_("New account has been added."));
+               if (add_gl_account($_POST['account_code'], $_POST['account_name'], 
+                               $_POST['account_type'], $_POST['account_code2']))
+                               {
+                                       display_notification(_("New account has been added."));
+                                       $selected_account = $_POST['AccountList'] = $_POST['account_code'];
+                               }
                }
                $Ajax->activate('_page_body');
        }
@@ -187,6 +191,17 @@ function can_delete($selected_account)
                return false;
        }                                                                       
        
+       $sql= "SELECT COUNT(*) FROM ".TB_PREF."quick_entry_lines WHERE 
+               dest_id='$selected_account' AND UPPER(LEFT(action, 1)) <> 'T'";
+       $result = db_query($sql,"Couldn't test for existing suppliers GL codes");
+
+       $myrow = db_fetch_row($result);
+       if ($myrow[0] > 0) 
+       {
+               display_error(_("Cannot delete this account because it is used by one or more Quick Entry Lines."));
+               return false;
+       }                                                                       
+
        return true;
 }
 
@@ -198,8 +213,9 @@ if (isset($_POST['delete']))
        if (can_delete($selected_account))
        {
                delete_gl_account($selected_account);
-               $selected_account = $_POST['account_code'] = $_POST['AccountList'] = '';
+               $selected_account = $_POST['AccountList'] = '';
                display_notification(_("Selected account has been deleted"));
+               unset($_POST['account_code']);
                $Ajax->activate('_page_body');
        }
 } 
@@ -242,11 +258,13 @@ if ($selected_account != "")
                
        label_row(_("Account Code:"), $_POST['account_code']);
 } 
-else 
+else
 {
-       $_POST['account_code'] = $_POST['account_code2'] = '';
-       $_POST['account_name']  = $_POST['account_type'] = '';
-       $_POST['inactive'] = 0;
+       if (!isset($_POST['account_code'])) {
+               $_POST['account_code'] = $_POST['account_code2'] = '';
+               $_POST['account_name']  = $_POST['account_type'] = '';
+               $_POST['inactive'] = 0;
+       }
        text_row_ex(_("Account Code:"), 'account_code', 11);
 }