<?php
/**********************************************************************
***********************************************************************/
$page_security = 'SA_INVENTORYMOVETYPE';
$path_to_root = "../..";
include($path_to_root . "/includes/session.inc");

page(_($help_context = "Inventory Movement Types"));

include_once($path_to_root . "/inventory/includes/inventory_db.inc");

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

simple_page_mode(true);
//-----------------------------------------------------------------------------------

global $inventory_movement_types, $inventory_movement_type_linked_fields;

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

	//initialise no input errors assumed initially before we test
	$input_error = 0;

	if (strlen($_POST['name']) == 0) 
	{
		$input_error = 1;
		display_error(_("The inventory movement type name cannot be empty."));
		set_focus('name');
	}
        
        if($_POST['group_id'] >= 0){
            $duplicate = get_movement_type_group_duplicates($_POST['type'], $_POST['group_id'], $selected_id);
            if(is_array($duplicate)){
                $input_error = 1;
                display_error(_("Selected group already used in the transaction type ".$systypes_array[$_POST['type']]."."));
                set_focus('name');
            }
        
            $mismatch = get_movement_type_group_mismatching_linked_fields($_POST['group_id'], $_POST['linked_field']);
            if(is_array($mismatch)){
                $input_error = 1;
                display_error(_("Selected group has been already linked with ".$inventory_movement_type_linked_fields[$mismatch['linked_field']]." (Record id : ".$mismatch['id'].")."));
                set_focus('name');
            }
        }

	if ($input_error != 1) 
	{
            if ($selected_id != -1) 
            {
                    update_movement_type($selected_id, $_POST['name'], $_POST['linked_field'],$_POST['group_id']);
                            display_notification(_('Selected movement type has been updated'));
            } 
            else 
            {
                    add_movement_type($_POST['type'],$_POST['name'],$_POST['linked_field'], $_POST['group_id']);
                            display_notification(_('New movement type has been added'));
            }
    	
		$Mode = 'RESET';
	}
} 

//-----------------------------------------------------------------------------------

function can_delete($selected_id)
{
	if (movement_types_in_stock_moves($selected_id))
	{
		display_error(_("Cannot delete this inventory movement type because item transactions have been created referring to it."));
		return false;
	}
	
	return true;
}


//-----------------------------------------------------------------------------------

if ($Mode == 'Delete')
{
	if (can_delete($selected_id))
	{
		delete_movement_type($selected_id);
		display_notification(_('Selected movement type has been deleted'));
	}
	$Mode = 'RESET';
}

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

$result = get_all_movement_types();

start_form();
start_table(TABLESTYLE, "width=60%");

$th = array(_("Id"), _("Type"), _("Description"), "Linked Field", "Group", "", "");
inactive_control_column($th);
table_header($th);
$k = 0;
while ($myrow = db_fetch($result)) 
{
	
	alt_table_row_color($k);	

    label_cell($myrow["id"]);
	label_cell($inventory_movement_types[$myrow['type']]);
    label_cell($myrow["name"]);
    label_cell($inventory_movement_type_linked_fields[$myrow['linked_field']]);
    
    $group_id_text = "";
    if($myrow['group_id'] != 0){
        $group_id_text = $myrow['linked_name'];
    }
    label_cell($group_id_text);
    inactive_control_cell($myrow["id"], $myrow["inactive"], 'movement_types', '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 status code

            $myrow = get_movement_type($selected_id);

            $_POST['name']  = $myrow["name"];
            $_POST['type']  = $myrow["type"];
            $_POST['linked_field']  = $myrow["linked_field"];
            $_POST['group_id']  = $myrow["group_id"];
	}
	hidden('selected_id', $selected_id);
} 

//inventory_movement_types_list_row(_("Movement Type:"), 'type');
if ($Mode == 'Edit') {
//    inventory_movement_types_list_row(_("Movement Type:"), 'type', $_POST['type']) ;
    label_row(_("Movement Type:"), $inventory_movement_types[$_POST['type']]);
    hidden('type', $_POST['type']);
}
else{
    inventory_movement_types_list_row(_("Movement Type:"), 'type');
}

text_row(_("Description:"), 'name', null, 50, 50);

inventory_movement_type_linked_fields_list_row("Linked Field", "linked_field");

value_list_row("Group:", 'group_id', 'MOVEMENT_TYPE_GROUPS', null, "Select a group");

end_table(1);

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

end_form();

//------------------------------------------------------------------------------------

end_page();

?>
