Rewrte of FrontReport header API to accept external layouts in pdf and php files.
[fa-stable.git] / purchasing / manage / suppliers.php
index 8fc3d870e92bf6e94df7503fa931d62f41d4ef5e..f5f9445ee1c0ed433ef495547d84516b3f1f5b87 100644 (file)
@@ -9,11 +9,11 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
     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,66 +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']) . ",
-                website=".db_escape($_POST['website']) . ",
-                contact=".db_escape($_POST['contact']) . ",
-                supp_account_no=".db_escape($_POST['supp_account_no']) . ",
-                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']) . ",
-                notes=".db_escape($_POST['notes']) . ",
-                               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, website,
-                               contact, supp_account_no, bank_account, credit_limit, dimension_id, dimension2_id, curr_code,
-                               payment_terms, payable_account, purchase_account, payment_discount_account, notes, 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['website']). ", "
-                               .db_escape($_POST['contact']). ", "
-                               .db_escape($_POST['supp_account_no']). ", "
-                               .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['notes']). ", "
-                               .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."));
@@ -121,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."));
@@ -132,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."));
@@ -144,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();
 
@@ -163,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 
 {
@@ -182,9 +151,11 @@ 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"];
@@ -196,43 +167,47 @@ if (!$new_supplier)
        $_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['website'] = $_POST['supp_account_no'] = $_POST['notes'] = '';
+       $_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(_("Supplier Account No.:"), 'supp_account_no', null, 42, 40);
+text_row(_("Our Customer No:"), 'supp_account_no', null, 42, 40);
 
 table_section_title(_("Addresses"));
 textarea_row(_("Mailing Address:"), 'address', null, 35, 5);
@@ -281,6 +256,7 @@ 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);
 
@@ -288,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();