Rewrte of FrontReport header API to accept external layouts in pdf and php files.
[fa-stable.git] / purchasing / manage / suppliers.php
index fb2a05948f277a9ee449ffc997bc455667784b6e..f5f9445ee1c0ed433ef495547d84516b3f1f5b87 100644 (file)
@@ -1,19 +1,19 @@
 <?php
 /**********************************************************************
     Copyright (C) FrontAccounting, LLC.
-       Released under the terms of the GNU Affero General Public License,
-       AGPL, as published by the Free Software Foundation, either version 
-       of the License, or (at your option) any later version.
+       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/agpl-3.0.html>.
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-$page_security=5;
-$path_to_root="../..";
+$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");
 
@@ -45,60 +45,39 @@ 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 (!$new_supplier) 
                {
-
-                       $sql = "UPDATE ".TB_PREF."suppliers SET supp_name=".db_escape($_POST['supp_name']) . ",
-                address=".db_escape($_POST['address']) . ",
-                supp_address=".db_escape($_POST['supp_address']) . ",
-                phone=".db_escape($_POST['phone']) . ",
-                fax=".db_escape($_POST['fax']) . ",
-                gst_no=".db_escape($_POST['gst_no']) . ",
-                email=".db_escape($_POST['email']) . ",
-                contact=".db_escape($_POST['contact']) . ",
-                bank_account=".db_escape($_POST['bank_account']) . ",
-                credit_limit=".db_escape($_POST['credit_limit']) . ",
-                dimension_id=".db_escape($_POST['dimension_id']) . ",
-                dimension2_id=".db_escape($_POST['dimension2_id']) . ",
-                curr_code=".db_escape($_POST['curr_code']).",
-                payment_terms=".db_escape($_POST['payment_terms']) . ",
-                               payable_account=".db_escape($_POST['payable_account']) . ",
-                               purchase_account=".db_escape($_POST['purchase_account']) . ",
-                               payment_discount_account=".db_escape($_POST['payment_discount_account']) . ",
-                               tax_group_id=".db_escape($_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 
                {
+                       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']);
 
-                       $sql = "INSERT INTO ".TB_PREF."suppliers (supp_name, address, supp_address, phone, fax, gst_no, email, 
-                               contact, bank_account, credit_limit, dimension_id, dimension2_id, curr_code,
-                               payment_terms, payable_account, purchase_account, payment_discount_account, tax_group_id)
-                               VALUES (".db_escape($_POST['supp_name']). ", "
-                               .db_escape($_POST['address']) . ", "
-                               .db_escape($_POST['supp_address']) . ", "
-                               .db_escape($_POST['phone']). ", "
-                               .db_escape($_POST['fax']). ", "
-                               .db_escape($_POST['gst_no']). ", "
-                               .db_escape($_POST['email']). ", "
-                               .db_escape($_POST['contact']). ", "
-                               .db_escape($_POST['bank_account']). ", "
-                               .db_escape($_POST['credit_limit']). ", "
-                               .db_escape($_POST['dimension_id']). ", "
-                               .db_escape($_POST['dimension2_id']). ", "
-                               .db_escape($_POST['curr_code']). ", "
-                               .db_escape($_POST['payment_terms']). ", "
-                               .db_escape($_POST['payable_account']). ", "
-                               .db_escape($_POST['purchase_account']). ", "
-                               .db_escape($_POST['payment_discount_account']). ", "
-                               .db_escape($_POST['tax_group_id']). ")";
-
-                       db_query($sql,"The supplier could not be added");
                        $_POST['supplier_id'] = db_insert_id();
                        $new_supplier = false;
                        display_notification(_("A new supplier has been added."));
@@ -115,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."));
@@ -126,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."));
@@ -138,18 +111,13 @@ 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']);
                $new_supplier = true;
                $Ajax->activate('_page_body');
        } //end if Delete supplier
 }
-elseif (isset($_POST['select']))
-{
-       context_return(array('supplier_id' => $_POST['supplier_id']));
-}
 
 start_form();
 
@@ -157,9 +125,16 @@ if (db_has_suppliers())
 {
        start_table("", 3);
 //     start_table("class = 'tablestyle_noborder'");
-       supplier_list_row(_("Select a supplier: "), 'supplier_id', null,
-                 _('New supplier'), true);
+       start_row();
+       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 
 {
@@ -176,51 +151,63 @@ if (!$new_supplier)
        $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']  = $myrow["credit_limit"];
+       $_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 
 {
-       $_POST['supp_name'] = $_POST['address'] = $_POST['supp_address'] = $_POST['tax_group_id']  = '';
+       $_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['fax'] = $_POST['gst_no'] = $_POST['contact'] = $_POST['bank_account'] = '';
+       $_POST['email'] = $_POST['phone'] = $_POST['phone2'] = $_POST['fax'] = 
+               $_POST['gst_no'] = $_POST['contact'] = $_POST['bank_account'] = '';
        $_POST['payment_terms']  = '';
-       $_POST['credit_limit']  = "";
+       $_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);
+text_row(_("Supplier Short Name:"), 'supp_ref', null, 30, 30);
 text_row(_("Contact Person:"), 'contact', null, 42, 40);
 
-text_row(_("Phone Number:"), 'phone', null, 42, 40);
-text_row(_("Fax Number:"), 'fax', null, 42, 40);
+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);
@@ -267,6 +254,9 @@ 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_outer_table(1);
 
@@ -274,16 +264,17 @@ div_start('controls');
 if (!$new_supplier) 
 {
        submit_center_first('submit', _("Update Supplier"), 
-         _('Update supplier data'), true);
-       submit_return('select', _("Return"), _("Select this supplier and return to document entry."), true);
+         _('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"), true, '', true);
+       submit_center('submit', _("Add New Supplier Details"), true, '', 'default');
 }
 div_end();
+hidden('popup', @$_REQUEST['popup']);
 end_form();
 
 end_page();