<?php
/**********************************************************************
    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_SALESGROUP';
$path_to_root = "../..";
include($path_to_root . "/includes/session.inc");

page(_($help_context = "Sales Categorys"));

include($path_to_root . "/includes/ui.inc");

simple_page_mode(true);

if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') {

	$input_error = 0;

	if (strlen($_POST['description']) == 0) 	{
		$input_error = 1;
		display_error(_("The sales category description cannot be empty."));
		set_focus('description');
	}

	if ($input_error != 1)	{
    	if ($selected_id != -1)     	{
    		$sql = "UPDATE ".TB_PREF."sales_category SET description = ".db_escape($_POST['description'])." WHERE id = ".db_escape($selected_id);
            db_query($sql, "Cant update sales category");
			$note = _('Selected sales category has been updated');
    	} 
    	else     	{
    		$sql = "INSERT INTO ".TB_PREF."sales_category (description) VALUES (".db_escape($_POST['description']).")";
            $res = db_query($sql, "Cant insert new sales category");
			$note = _('New sales category has been added');
    	}
    
		display_notification($note);    	
		$Mode = 'RESET';
	}
} 

if ($Mode == 'Delete'){

	$cancel_delete = 0;

	// PREVENT DELETES IF DEPENDENT RECORDS IN 'debtors_master'

	if (key_in_foreign_table($selected_id, 'debtors_master', 'category_'))	{
		$cancel_delete = 1;
		display_error(_("Cannot delete this category because customers have been created using this category."));
	} 
	if ($cancel_delete == 0) 	{
		$sql = "DELETE FROM ".TB_PREF."sales_category WHERE id =".db_escape($selected_id);
        $res = db_query($sql, "Unable to delete the selected category");
		display_notification(_('Selected sales category has been deleted'));
	} //end if Delete category
	$Mode = 'RESET';
} 

if ($Mode == 'RESET'){
	$selected_id = -1;
	$sav = get_post('show_inactive');
	unset($_POST);
	if ($sav) $_POST['show_inactive'] = 1;
}
//-------------------------------------------------------------------------------------------------

$result = get_sales_categories(0, check_value('show_inactive'));

start_form();
start_table(TABLESTYLE, "width='30%'");
$th = array(_("ID"), _("Category Name"), "", "");
inactive_control_column($th);

table_header($th);
$k = 0; 

foreach($result as $myrow) {	
	alt_table_row_color($k);		
	label_cell($myrow["id"], "nowrap align='right'");
	label_cell($myrow["description"]);
	inactive_control_cell($myrow["id"], $myrow["inactive"], 'categorys', 'id');
 	edit_button_cell("Edit".$myrow["id"], _("Edit"));
 	delete_button_cell("Delete".$myrow["id"], _("Delete"));
	end_row();
}

inactive_control_row($th);
end_table(1);

//-------------------------------------------------------------------------------------------------
start_table(TABLESTYLE2);
if ($selected_id != -1) {
 	if ($Mode == 'Edit') {
		//editing an existing category
		$myrow = get_sales_categories($selected_id);

		$_POST['description']  = $myrow["description"];
	}
	hidden("selected_id", $selected_id);
	label_row(_("ID"), $myrow["id"]);
} 

text_row_ex(_("Category Name:"), 'description', 30); 

end_table(1);
submit_add_or_update_center($selected_id == -1, '', 'both');
end_form();
end_page();

function get_sales_categories($id= 0, $inactive= 0){
    $sql = "SELECT * FROM ".TB_PREF."sales_category WHERE ".($inactive == 0 ? ' !inactive ' : '');
    if($id > 0 )
        $sql .= " AND id=".db_escape($id);
    $res = db_query($sql, "Can't get sales category list");
    if($id > 0 && db_num_rows($res) == 1)
        return db_fetch($res);
    elseif($id == 0)
        return $res;
    else 
        return 0;
}
