Rewrte of FrontReport header API to accept external layouts in pdf and php files.
[fa-stable.git] / purchasing / manage / suppliers.php
index b1866cd1ac47d4896bca3bcae112d640cc99a7b6..f5f9445ee1c0ed433ef495547d84516b3f1f5b87 100644 (file)
@@ -1,10 +1,19 @@
 <?php
-
-$page_security=5;
-$path_to_root="../..";
+/**********************************************************************
+    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 
+       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.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
+$page_security = 'SA_SUPPLIER';
+$path_to_root = "../..";
 include($path_to_root . "/includes/session.inc");
 
-page(_("Suppliers"));
+page(_($help_context = "Suppliers"), @$_REQUEST['popup']);
 
 //include($path_to_root . "/includes/date_functions.inc");
 
@@ -12,15 +21,11 @@ include($path_to_root . "/includes/ui.inc");
 
 check_db_has_tax_groups(_("There are no tax groups defined in the system. At least one tax group is required before proceeding."));
 
-if (isset($_GET['New']) || !isset($_POST['supplier_id'])) 
-{
-       $_POST['New'] = "1";
-}
-
-if (isset($_POST['SelectSupplier'])) 
+if (isset($_GET['supplier_id'])) 
 {
-       unset($_POST['New']);
+       $_POST['supplier_id'] = $_GET['supplier_id'];
 }
+$new_supplier = get_post('supplier_id') == ''; 
 
 if (isset($_POST['submit'])) 
 {
@@ -40,50 +45,44 @@ if (isset($_POST['submit']))
                set_focus('supp_name');
        }
 
+       if (strlen($_POST['supp_ref']) == 0 || $_POST['supp_ref'] == "") 
+       {
+               $input_error = 1;
+               display_error(_("The supplier short name must be entered."));
+               set_focus('supp_ref');
+       }
+
        if ($input_error !=1 )
        {
 
-               if (!isset($_POST['New'])
+               if (!$new_supplier
                {
-
-                       $sql = "UPDATE ".TB_PREF."suppliers SET supp_name='" . $_POST['supp_name'] . "',
-                address='" . $_POST['address'] . "',
-                email='" . $_POST['email'] . "',
-                bank_account='" . $_POST['bank_account'] . "',
-                dimension_id=" . $_POST['dimension_id'] . ",
-                dimension2_id=" . $_POST['dimension2_id'] . ",
-                curr_code='" . $_POST['curr_code'] . "',
-                payment_terms='" . $_POST['payment_terms'] . "',
-                               payable_account='" . $_POST['payable_account'] . "',
-                               purchase_account='" . $_POST['purchase_account'] . "',
-                               payment_discount_account='" . $_POST['payment_discount_account'] . "',
-                               tax_group_id=" . $_POST['tax_group_id'] . " WHERE supplier_id = '" . $_POST['supplier_id'] . "'";
-
-                       db_query($sql,"The supplier could not be updated");
-
+                       update_supplier($_POST['supplier_id'], $_POST['supp_name'], $_POST['supp_ref'], $_POST['address'],
+                               $_POST['supp_address'], $_POST['phone'], $_POST['phone2'], $_POST['fax'], $_POST['gst_no'],
+                               $_POST['email'], $_POST['website'], $_POST['contact'], $_POST['supp_account_no'], $_POST['bank_account'], 
+                               input_num('credit_limit', 0), $_POST['dimension_id'], $_POST['dimension2_id'], $_POST['curr_code'],
+                               $_POST['payment_terms'], $_POST['payable_account'], $_POST['purchase_account'], $_POST['payment_discount_account'],
+                               $_POST['notes'], $_POST['tax_group_id']);
+                       update_record_status($_POST['supplier_id'], $_POST['inactive'],
+                               'suppliers', 'supplier_id');
+
+                       $Ajax->activate('supplier_id'); // in case of status change
+                       display_notification(_("Supplier has been updated."));
                } 
                else 
-               { //not a new supplier
-
-                       $sql = "INSERT INTO ".TB_PREF."suppliers (supp_name, address, email, bank_account, dimension_id, dimension2_id, curr_code,
-                               payment_terms, payable_account, purchase_account, payment_discount_account, tax_group_id)
-                               VALUES ('" . $_POST['supp_name'] . "', '" .
-                               $_POST['address'] . "', '" .
-                               $_POST['email'] . "', '" .
-                               $_POST['bank_account'] . "', " .
-                               $_POST['dimension_id'] . ", " .
-                               $_POST['dimension2_id'] . ", '" .
-                               $_POST['curr_code'] . "', '" .
-                               $_POST['payment_terms'] . "', '" .
-                               $_POST['payable_account'] . "', '" .
-                               $_POST['purchase_account'] . "', '" .
-                               $_POST['payment_discount_account'] . "', " .
-                               $_POST['tax_group_id'] . ")";
-
-                       db_query($sql,"The supplier could not be added");
+               {
+                       add_supplier($_POST['supp_name'], $_POST['supp_ref'], $_POST['address'], $_POST['supp_address'],
+                               $_POST['phone'], $_POST['phone2'], $_POST['fax'], $_POST['gst_no'], $_POST['email'],
+                               $_POST['website'], $_POST['contact'], $_POST['supp_account_no'], $_POST['bank_account'], 
+                               input_num('credit_limit',0), $_POST['dimension_id'], $_POST['dimension2_id'],
+                               $_POST['curr_code'], $_POST['payment_terms'], $_POST['payable_account'], $_POST['purchase_account'],
+                               $_POST['payment_discount_account'], $_POST['notes'], $_POST['tax_group_id']);
+
+                       $_POST['supplier_id'] = db_insert_id();
+                       $new_supplier = false;
+                       display_notification(_("A new supplier has been added."));
+                       $Ajax->activate('_page_body');
                }
-
-               meta_forward($_SERVER['PHP_SELF']);
        }
 
 } 
@@ -95,10 +94,7 @@ elseif (isset($_POST['delete']) && $_POST['delete'] != "")
 
        // PREVENT DELETES IF DEPENDENT RECORDS IN 'supp_trans' , purch_orders
 
-       $sql= "SELECT COUNT(*) FROM ".TB_PREF."supp_trans WHERE supplier_id='" . $_POST['supplier_id'] . "'";
-       $result = db_query($sql,"check failed");
-       $myrow = db_fetch_row($result);
-       if ($myrow[0] > 0) 
+       if (key_in_foreign_table($_POST['supplier_id'], 'supp_trans', 'supplier_id'))
        {
                $cancel_delete = 1;
                display_error(_("Cannot delete this supplier because there are transactions that refer to this supplier."));
@@ -106,10 +102,7 @@ elseif (isset($_POST['delete']) && $_POST['delete'] != "")
        } 
        else 
        {
-               $sql= "SELECT COUNT(*) FROM ".TB_PREF."purch_orders WHERE supplier_id='" . $_POST['supplier_id'] . "'";
-               $result = db_query($sql,"check failed");
-               $myrow = db_fetch_row($result);
-               if ($myrow[0] > 0) 
+               if (key_in_foreign_table($_POST['supplier_id'], 'purch_orders', 'supplier_id'))
                {
                        $cancel_delete = 1;
                        display_error(_("Cannot delete the supplier record because purchase orders have been created against this supplier."));
@@ -118,11 +111,11 @@ elseif (isset($_POST['delete']) && $_POST['delete'] != "")
        }
        if ($cancel_delete == 0) 
        {
-               $sql="DELETE FROM ".TB_PREF."suppliers WHERE supplier_id='" . $_POST['supplier_id']. "'";
-               db_query($sql,"check failed");
+               delete_supplier($_POST['supplier_id']);
 
                unset($_SESSION['supplier_id']);
-               meta_forward($_SERVER['PHP_SELF']);
+               $new_supplier = true;
+               $Ajax->activate('_page_body');
        } //end if Delete supplier
 }
 
@@ -131,63 +124,102 @@ start_form();
 if (db_has_suppliers()) 
 {
        start_table("", 3);
+//     start_table("class = 'tablestyle_noborder'");
        start_row();
-       supplier_list_cells(_("Select a supplier: "), 'supplier_id', null);
-       submit_cells('SelectSupplier', _("Edit Supplier"));
+       supplier_list_cells(_("Select a supplier: "), 'supplier_id', null,
+                 _('New supplier'), true, check_value('show_inactive'));
+       check_cells(_("Show inactive:"), 'show_inactive', null, true);
        end_row();
        end_table();
+       if (get_post('_show_inactive_update')) {
+               $Ajax->activate('supplier_id');
+               set_focus('supplier_id');
+       }
 } 
 else 
 {
-       hidden('supplier_id', $_POST['supplier_id']);
+       hidden('supplier_id', get_post('supplier_id'));
 }
 
-hyperlink_params($_SERVER['PHP_SELF'], _("Enter a new supplier"), "New=1");
-echo "<br>";
-
-//start_table("class='tablestyle2'", 0, 3);
-start_table("class='tablestyle'", 3);
+start_outer_table($table_style2, 5);
 
-table_section_title(_("Supplier"));
+table_section(1);
 
-if (isset($_POST['supplier_id']) && !isset($_POST['New'])
+if (!$new_supplier
 {
        //SupplierID exists - either passed when calling the form or from the form itself
        $myrow = get_supplier($_POST['supplier_id']);
 
        $_POST['supp_name'] = $myrow["supp_name"];
+       $_POST['supp_ref'] = $myrow["supp_ref"];
        $_POST['address']  = $myrow["address"];
+       $_POST['supp_address']  = $myrow["supp_address"];
+       $_POST['phone']  = $myrow["phone"];
+       $_POST['phone2']  = $myrow["phone2"];
+       $_POST['fax']  = $myrow["fax"];
+       $_POST['gst_no']  = $myrow["gst_no"];
        $_POST['email']  = $myrow["email"];
+       $_POST['website']  = $myrow["website"];
+       $_POST['contact']  = $myrow["contact"];
+       $_POST['supp_account_no']  = $myrow["supp_account_no"];
        $_POST['bank_account']  = $myrow["bank_account"];
        $_POST['dimension_id']  = $myrow["dimension_id"];
        $_POST['dimension2_id']  = $myrow["dimension2_id"];
        $_POST['curr_code']  = $myrow["curr_code"];
        $_POST['payment_terms']  = $myrow["payment_terms"];
+       $_POST['credit_limit']  = price_format($myrow["credit_limit"]);
        $_POST['tax_group_id'] = $myrow["tax_group_id"];
        $_POST['payable_account']  = $myrow["payable_account"];
        $_POST['purchase_account']  = $myrow["purchase_account"];
        $_POST['payment_discount_account'] = $myrow["payment_discount_account"];
-
+       $_POST['notes']  = $myrow["notes"];
+       $_POST['inactive'] = $myrow["inactive"];
 } 
 else 
 {
-       // its a new supplier being added
-       hidden('New', 'Yes');
+       $_POST['supp_name'] = $_POST['supp_ref'] = $_POST['address'] = $_POST['supp_address'] = 
+               $_POST['tax_group_id'] = $_POST['website'] = $_POST['supp_account_no'] = $_POST['notes'] = '';
+       $_POST['dimension_id'] = 0;
+       $_POST['dimension2_id'] = 0;
+       $_POST['sales_type'] = -1;
+       $_POST['email'] = $_POST['phone'] = $_POST['phone2'] = $_POST['fax'] = 
+               $_POST['gst_no'] = $_POST['contact'] = $_POST['bank_account'] = '';
+       $_POST['payment_terms']  = '';
+       $_POST['credit_limit']  = price_format(0);
 
        $company_record = get_company_prefs();
-
+       $_POST['curr_code']  = $company_record["curr_default"];
        $_POST['payable_account'] = $company_record["creditors_act"];
        $_POST['purchase_account'] = $company_record["default_cogs_act"];
        $_POST['payment_discount_account'] = $company_record['pyt_discount_act'];
+       $_POST['inactive'] = 0;
 }
 
+table_section_title(_("Name and Contact"));
+
 text_row(_("Supplier Name:"), 'supp_name', null, 42, 40);
-textarea_row(_("Address:"), 'address', null, 35, 5);
-text_row(_("Email:"), 'email', null, 42, 40);
-text_row(_("Bank Account:"), 'bank_account', null, 42, 40);
+text_row(_("Supplier Short Name:"), 'supp_ref', null, 30, 30);
+text_row(_("Contact Person:"), 'contact', null, 42, 40);
 
-// Sherifoz 23.09.03 currency can't be changed if editing
-if (isset($_POST['supplier_id']) && !isset($_POST['New'])) 
+text_row(_("Phone Number:"), 'phone', null, 32, 30);
+text_row(_("Secondary Phone Number:"), 'phone2', null, 32, 30);
+text_row(_("Fax Number:"), 'fax', null, 32, 30);
+
+email_row(_("E-mail:"), 'email', null, 35, 55);
+link_row(_("Website:"), 'website', null, 35, 55);
+text_row(_("Our Customer No:"), 'supp_account_no', null, 42, 40);
+
+table_section_title(_("Addresses"));
+textarea_row(_("Mailing Address:"), 'address', null, 35, 5);
+textarea_row(_("Physical Address:"), 'supp_address', null, 35, 5);
+
+table_section(2);
+
+table_section_title(_("Purchasing"));
+text_row(_("GSTNo:"), 'gst_no', null, 42, 40);
+text_row(_("Bank Name/Account:"), 'bank_account', null, 42, 40);
+amount_row(_("Credit Limit:"), 'credit_limit', null);
+if (!$new_supplier) 
 {
        label_row(_("Supplier's Currency:"), $_POST['curr_code']);
        hidden('curr_code', $_POST['curr_code']);
@@ -222,19 +254,27 @@ if ($dim < 1)
        hidden('dimension_id', 0);
 if ($dim < 2)
        hidden('dimension2_id', 0);
+table_section_title(_("General"));
+textarea_row(_("General Notes:"), 'notes', null, 35, 5);
+record_status_list_row(_("Supplier status:"), 'inactive');
 
-end_table(1);
+end_outer_table(1);
 
-if (!isset($_POST['New'])) 
+div_start('controls');
+if (!$new_supplier) 
 {
-       submit_center_first('submit', _("Update Supplier"));
-       submit_center_last('delete', _("Delete Supplier"));
+       submit_center_first('submit', _("Update Supplier"), 
+         _('Update supplier data'), @$_REQUEST['popup'] ? true : 'default');
+       submit_return('select', get_post('supplier_id'), _("Select this supplier and return to document entry."));
+       submit_center_last('delete', _("Delete Supplier"), 
+         _('Delete supplier data if have been never used'), true);
 }
 else 
 {
-       submit_center('submit', _("Add New Supplier Details"));
+       submit_center('submit', _("Add New Supplier Details"), true, '', 'default');
 }
-
+div_end();
+hidden('popup', @$_REQUEST['popup']);
 end_form();
 
 end_page();