<?php
/**********************************************************************
***********************************************************************/

$page_security = 'SA_JOB_MATERIAL_ISSUE';
if (!@$_GET['popup'])
    $path_to_root = "..";
else	
    $path_to_root = "../..";

include_once($path_to_root . "/includes/session.inc");
include_once($path_to_root . "/includes/ui.inc");
include_once($path_to_root . "/inventory/includes/ui/job_material_issues_ui.inc");
include_once($path_to_root . "/inventory/includes/db/job_material_issues_db.inc");
include_once($path_to_root . "/inventory/includes/db/job_material_requisitions_db.inc"); 
include_once($path_to_root . "/inventory/includes/db/items_db.inc"); 
include_once($path_to_root . "/inventory/includes/db/items_units_db.inc"); 
include_once($path_to_root . "/admin/db/list_values_db.inc"); 
include_once($path_to_root . "/projects/includes/db/projects_db.inc"); 
include_once($path_to_root . "/includes/project_cost_functions.inc"); 
include_once($path_to_root . "/includes/db/inventory_db.inc"); 
include_once($path_to_root . "/inventory/includes/db/lot_allocations_db.inc");  
include_once($path_to_root . "/inventory/includes/ui/lot_ui.inc");  
include_once($path_to_root . "/inventory/includes/db/lots_db.inc");   
include_once($path_to_root . "/payroll/includes/db/employees_db.inc");   
include_once($path_to_root . "/includes/approval_functions.inc");   

$js = '';
$js .= get_js_open_window(900, 500);
$js .= get_js_date_picker();

global $systypes_array;

if (isset($_GET['ProcessedID'])) {
    page(_($help_context = $systypes_array[ST_JOB_MATERIAL_ISSUE]), false, false, "", $js);
    
    global $systypes_array;
    
    $trans_no = $_GET['ProcessedID'];
    $trans_type = $_GET['type'];
    $msg = get_session_variable('jmi_messages');
    clear_session_variable('jmi_messages');

    $type_name = $systypes_array[$trans_type];

    display_notification($msg);
    display_note(get_trans_view_str($trans_type, $trans_no, _("&View this $type_name #$trans_no.")), 0, 1);
    display_footer_exit();
}

if (isset($_GET['BackedOrgID'])) {
    page(_($help_context = $systypes_array[ST_JOB_MATERIAL_ISSUE]), false, false, "", $js);
    
    global $systypes_array;
    
    $trans_no = $_GET['BackedOrgID'];
    $trans_type = $_GET['type'];
    $msg = get_session_variable('jmi_bo_messages');
    clear_session_variable('jmi_bo_messages');

    $type_name = $systypes_array[$trans_type];

    display_notification($msg);
    display_note(get_trans_view_str($trans_type, $trans_no, _("&View this $type_name #$trans_no.")), 0, 1);
    display_footer_exit();
}

if (isset($_GET['RejectedID'])) {
    page(_($help_context = $systypes_array[ST_JOB_MATERIAL_ISSUE]), false, false, "", $js);
    
    global $systypes_array;
    
    $trans_no = $_GET['RejectedID'];
    $trans_type = $_GET['type'];
    $msg = get_session_variable('jmi_rj_messages');
    clear_session_variable('jmi_rj_messages');

    $type_name = $systypes_array[$trans_type];

    display_notification($msg);
    display_note(get_trans_view_str($trans_type, $trans_no, _("&View this $type_name #$trans_no.")), 0, 1);
    display_footer_exit();
}

if ((isset($_GET['jmr_no']) && is_numeric($_GET['jmr_no'])) || (isset($_POST['jmr_no']) && is_numeric($_POST['jmr_no']))) {
    $_POST['jmr_no'] = isset($_GET['jmr_no']) ? $_GET['jmr_no'] : $_POST['jmr_no'];
    
    $header = get_job_material_requisition_header_record($_POST['jmr_no']);
        if (is_array($header)) {
            if ($header['type'] != ST_JOB_MATERIAL_ISSUE_REQ) {
                page(_($help_context = ''), false, false, "", $js);
                display_error(("Invalid transaction type."));
                display_footer_exit();
            } 
        } else {
            page(_($help_context = ''), false, false, "", $js);
            display_error(("Could not find ".$systypes_array[ST_JOB_MATERIAL_ISSUE_REQ]." record #".$_POST['jmr_no']));
            display_footer_exit();
        }
    
    $page_title = _('New '.$systypes_array[ST_JOB_MATERIAL_ISSUE]);
    
} elseif ((isset($_GET['jmi_no']) && is_numeric($_GET['jmi_no'])) || (isset($_POST['jmi_no']) && is_numeric($_POST['jmi_no']))) {
    $_POST['jmi_no'] = isset($_GET['jmi_no']) ? $_GET['jmi_no'] : $_POST['jmi_no'];
    
    $header = get_job_material_issue_header_record($_POST['jmi_no']);
        if (is_array($header)) {
            if ($header['type'] != ST_JOB_MATERIAL_ISSUE) {
                page(_($help_context = ''), false, false, "", $js);
                display_error(("Invalid transaction type."));
                display_footer_exit();
            } 
        } else {
            page(_($help_context = ''), false, false, "", $js);
            display_error(("Could not find ".$systypes_array[ST_JOB_MATERIAL_ISSUE]." record #".$_POST['jmi_no']));
            display_footer_exit();
        }
        
    $_POST['jmr_no'] = $header['jmr_no'];
    $page_title = _('Modify '.$systypes_array[ST_JOB_MATERIAL_ISSUE]." #".$header['trans_no'] );
    
} else {
    page(_($help_context = ''), false, false, "", $js);
    display_error(("Could not find ".$systypes_array[ST_JOB_MATERIAL_ISSUE]));
    display_footer_exit();
}

page(_($help_context = $page_title), false, false, "", $js);

simple_page_mode(true);

if (isset($_POST['Process_JMI'])) {
    $msg = save_job_material_issues($_POST['jmr_no'], $_POST['jmi_no'], true);
        if ($msg['success'] !== true) {
            display_error($msg['message']);
        } 
}

if (isset($_POST['REJECT_JMI'])) {
    $msg = reject_job_material_issue($_POST['jmr_no'], $_POST['jmi_no']);
        if ($msg['success'] !== true) {
            display_error($msg['message']);
        } 
}

if (isset($_POST['BACK_TO_ORIGINATOR_JMI'])) {
    $msg = back_to_originator_job_material_issue($_POST['jmr_no'], $_POST['jmi_no']);
        if ($msg['success'] !== true) {
            display_error($msg['message']);
        } 
}

if (isset($_POST['Create_JMI'])) {        
    $msg = save_job_material_issues($_POST['jmr_no'], $_POST['jmi_no']);
        if ($msg['success'] !== true) {
            if (isset($msg["focus_to"])) {
                set_focus($msg["focus_to"]);            
            }
            $issue_hd_row = get_job_material_issue_header_record($_POST['jmi_no']);
                if (! is_array($issue_hd_row)) {
                    $jmi_no = $_POST['jmi_no'] = 0; 
                }
            display_error($msg['message']);
        } else {
            display_notification($msg['message']);
            clear_job_material_issue_details();
            $Mode = 'RESET';
        }
}

if (isset($_POST['Add_JMI_LN']) || isset($_POST['Update_JMI_LN'])) {        
    $msg = handle_save_job_material_issue_line($_POST['jmr_no'], $_POST['jmi_no'], $selected_id);
        if ($msg['success'] !== true) {
            if (isset($msg["focus_to"])) {
                set_focus($msg["focus_to"]);            
            }
            
            if ($_POST['jmi_no'] > 0) {
                $header = get_job_material_issue_header_record($_POST['jmi_no']);
                if (! is_array($header)) {
                    $_POST['jmi_no'] = 0;
                }
            }
            display_error($msg['message']);
        } else {
            display_notification($msg['message']);
            clear_job_material_issue_details();
            $Mode = 'RESET';
        }
}

if ($Mode == 'Delete') {
    $msg = handle_delete_job_material_issue_line($_POST['jmi_no'], $selected_id);
        if ($msg['success'] !== true) {
            display_error($msg['message']);
        } else {
            display_notification($msg['message']);
            clear_job_material_issue_details();
            $Mode = 'RESET';
        }
}

if (isset($_POST['cancel']) || isset($_POST['Refresh']) || $Mode == 'RESET') {
    clear_job_material_issue_details();
    
    $Mode = 'RESET';
    $selected_id = -1;
}

global $Ajax;

start_form();

    if (isset($_POST['jmr_no']) && $_POST['jmr_no'] > 0) {
        hidden('jmr_no', $_POST['jmr_no']);
    } else {
        $_POST['jmr_no'] = 0;
    }   
        
    if (isset($_POST['jmi_no']) && $_POST['jmi_no'] > 0) {
        hidden('jmi_no', $_POST['jmi_no']);
        $button_name = 'Save';
    } else {
        $_POST['jmi_no'] = 0;
        $button_name = 'Create';
    }

    $Ajax->activate('_page_body');
    $Ajax->activate('All_details');
    div_start('All_details');
    
        $req_hd_row = display_job_material_isseu_requisition_header_details($_POST['jmr_no'], $_POST['jmi_no']);
        
        display_job_material_issue_header($_POST['jmi_no'], $req_hd_row);

        display_job_material_issue_details($_POST['jmr_no'], $_POST['jmi_no'], $selected_id, $Mode);

            submit_center_first('Create_JMI', _("$button_name Job Material Issue"), '', 'default');    
            
            $header = get_job_material_issue_header($_POST['jmi_no']);
            if (is_array($header)) {
                submit('Process_JMI', _("Process Job Material Issue"), true, _("Process"), false, ICON_SUBMIT);
            } 
            
            submit_center_last('Refresh', 'Refresh', 'Refresh', false, ICON_SUBMIT); 
            
            start_table();
                if (is_array($header)) {
                    br(2);
                    submit_center_first('REJECT_JMI', _("Reject ".$systypes_array[ST_JOB_MATERIAL_ISSUE]), '', true, ICON_DELETE);  
                    
                    submit('BACK_TO_ORIGINATOR_JMI', 'Back To Originator', true, 'Back To Originator', false, ICON_SUBMIT);
                }
            end_table();

    div_end();
    
end_form(2);
end_page(@$_GET['popup'], false, false);        

?>