<?php
/**********************************************************************
***********************************************************************/
$page_security = 'SA_PROJECT_BOQ_ITEMS';

$path_to_root = "../..";

include_once($path_to_root . "/assets/includes/db/assets_db.inc");
include_once($path_to_root . "/assets/includes/db/tool_rates_db.inc");
//-------------------------------------------------------------------------------------------



function clear_data()
{
    unset($_POST['serial']);
    unset($_POST['description']);
    unset($_POST['long_description']);  
    unset($_POST['asset_type_id']);
    unset($_POST['asset_category_id']);
    unset($_POST['cost']);
    unset($_POST['current_value']);
    unset($_POST['make']);
    unset($_POST['model']);
    unset($_POST['po_number']);
    unset($_POST['useful_life']);
    unset($_POST['extended_life']);         
    unset($_POST['warranty_from']);
    unset($_POST['warranty_to']);
}

function can_process_asset($selected_id, $boq_item_id, $detail_type_code, $primary_type)
{       
    global $project_boq_item_component_primary_types;
    
    $est_boq_item = get_est_project_boq_item_record($boq_item_id);
    $project = get_est_project_record($est_boq_item['est_project_id']);
    if(!($project['approval_status'] == AS_NEW || $project['approval_status'] == AS_WITH_THE_APPROVER || 
            $project['approval_status'] == AS_AWAITING_APPROVAL || $project['approval_status'] == AS_BACK_TO_ORIGINATOR || 
            $project['approval_status'] == AS_REOPENED)){
        display_error("This project status does not allow further updating.");
        return false;
    }
    
    if (strlen($_POST['boq_asset_asset_id']) == 0)
    {
        display_error( _("Please select an asset."));
        set_focus('boq_asset_asset_id');
        return false;
    } 
    
    $component = get_est_boq_item_component_record($boq_item_id, $detail_type_code);
    if(isset($component['id']) && $component['id'] > 0){
        if($component['primary_type'] != $primary_type){
            display_error("There are already created ".$project_boq_item_component_primary_types[$component['primary_type']]." entries for this BOQ component. 
                            Please delete those before creating entries for new primary type.");
            set_focus('primary_type');
            return false;
        }
    }
            
    return true;    
}


//--------------------------------------------------------------------------------------------

function display_est_boq_item_assets($boq_item_id, $detail_type_code)
{
    $result = get_est_boq_item_assets($boq_item_id, $detail_type_code);
     
    div_start('boq_asset_details');
    
	start_table(TABLESTYLE, "width=95%");
	$th = array(_("ID"), "Asset", _("Asset Group"), _("Current Rate"), 
                    _("Applied Rate"),_("Days"),"Cost", _("Comment"),'','');
	table_header($th);         
        
	$k = 0;
        $total_cost = 0;
	while ($myrow = db_fetch($result))
	{
        alt_table_row_color($k);

        label_cell($myrow['id'], "align=right");
        $asset_name = $myrow['asset_code']." - ".$myrow['asset_description'];
        label_cell($asset_name);
        label_cell($myrow["rate_category_description"]);    
        label_cell(number_format($myrow['current_rate'], 2), "align=right"); 
        label_cell(number_format($myrow['rate'], 2), "align=right"); 
        label_cell(number_format($myrow['days'], 1), "align=right"); 
                 
        
        $cost = $myrow['rate'] * $myrow['days'];
        label_cell(number_format($cost, 2), "align=right");  
        label_cell($myrow["comment"]); 

        $total_cost += $cost; 

        edit_button_cell("Edit".$myrow['id'], _("Edit"));         
        delete_button_cell("Delete_BOQ_Item_Asset".$myrow['id'], _("Delete"));
        end_row();

	} //END WHILE LIST LOOP
        
        start_row();
            label_cell("Total :", "colspan=5 align=right");
            amount_decimal_cell($total_cost);
        end_row();
        
         end_table(2);
    div_end();
}

//---------------------------------------------------------------------------------------------

function display_est_boq_asset_edit_controls($boq_item_id, $detail_type_code, $selected_id, $Mode)
{  
    global $Ajax;
    
    div_start('boq_asset_edit_controls');
    start_table(TABLESTYLE2);
    
    if ($selected_id > 0)
	{
        $myrow = get_est_boq_item_asset($selected_id);

        $_POST['boq_asset_asset_id'] = $myrow["asset_id"];  
        $_POST['boq_asset_asset_rate_id'] = $myrow["rate_category_id"];  
        $_POST['boq_asset_rate'] = $myrow["rate"];
        $_POST['boq_asset_days'] = $myrow["days"];
        $_POST['boq_asset_comment'] = $myrow["comment"];                         

        hidden('selected_id', $selected_id);
        
        $asset_name = $myrow['asset_code']." - ".$myrow['asset_description'];
        label_row("Asset", $asset_name);
        hidden('boq_asset_asset_id', $_POST['boq_asset_asset_id']);
        
        $boq_asset_rate = get_tool_rate($myrow['asset_id']);//early fun is get_asset_rates()
        label_row("Rate Category", $boq_asset_rate['description']);
    }
    else{
        $Ajax->activate('boq_asset_asset_id');
        start_row();
        label_cell(_("Asset:"), "class='label'");
        echo "<td>";
            echo asset_list('boq_asset_asset_id', null, "Please select an asset", true);
        echo "</td>";
        end_row();

    }

  
    if ($selected_id > 0){
        
    }
    else{
        $boq_asset = get_asset($_POST['boq_asset_asset_id']);
        $boq_asset_rate = get_tool_rate($boq_asset['asset_id']);//earlier fun is "get_asset_rates'
        label_row("Asset Rate Category", $boq_asset_rate['description']);
        label_row("Current Rate", $boq_asset_rate['rate']);
        hidden('boq_asset_asset_rate', $boq_asset_rate['rate']);
        hidden('boq_asset_asset_rate_id', $boq_asset_rate['id']);     
    }
    
    amount_row(_("Daily Rate :"), 'boq_asset_rate', null, null, null, 2);                       
    amount_row(_("No Of Days :"), 'boq_asset_days', null, null, null, 1);    
    textarea_row("Comment :", "boq_asset_comment", null, 35, 2);   
                      
    end_table(1);
    div_end();

    if($selected_id > 0){        
        submit_center_first('UPDATE_BOQ_ITEM_ASSET', _("Update"), '', 'default');
        submit_center_last('Cancel_Edit', _("Cancel"), '', 'default');
    }
    else{
        submit_center_first('ADD_BOQ_ITEM_ASSET', _("Add"), '', 'default');
    }
}    


if(isset($_POST['ADD_BOQ_ITEM_ASSET']) && $selected_id < 0)
{    
    if(can_process_asset($selected_id, get_post('boq_item_id'), get_post('detail_type_code'), get_post('primary_type'))){
        
        begin_transaction();
        
        $sbp_msg = add_est_boq_item_asset($_POST['boq_item_id'], $_POST['detail_type_code'], 
                            $_POST['boq_asset_asset_id'], $_POST['boq_asset_asset_rate_id'], 
                            input_num('boq_asset_rate'), 
                            input_num('boq_asset_days'), get_post('boq_asset_comment')); 

        if($sbp_msg['success'] === true){
            commit_transaction();
            $Mode = 'RESET';
            $selected_id = -1;
            
            display_notification("A new Estimation BOQ Item Asset has been added");
        }
        else{
            cancel_transaction();
        }           
    }               
}


if(isset($_POST['UPDATE_BOQ_ITEM_ASSET']) && $selected_id > 0)
{    
    if(can_process_asset($selected_id, get_post('boq_item_id'), get_post('detail_type_code'), get_post('primary_type'))){       

        begin_transaction();
        
        $sbp_msg = update_est_boq_item_asset($selected_id, get_post('boq_item_id'), get_post('detail_type_code'),
                                get_post('boq_asset_asset_group_id'), input_num('boq_asset_rate'), 
                                input_num('boq_asset_days'), get_post('boq_asset_comment')); 
        
        if($sbp_msg['success'] === true){
            commit_transaction();
            $Mode = 'RESET';
            $selected_id = -1;
            
            display_notification("Selected Estimation BOQ Item Asset has been updated");
        }
        else{
            cancel_transaction();
        }                     
    }
}

//---------------------------------------------------------------------------------------------------------------

$delete_boq_asset_id  = find_submit("Delete_BOQ_Item_Asset");
if ($delete_boq_asset_id > 0)
{
    begin_transaction();
    
    $sbp_msg = delete_est_boq_item_asset($delete_boq_asset_id, get_post('boq_item_id'), get_post('detail_type_code'));
    if($sbp_msg['success'] === true){
        commit_transaction();
        $Mode = 'RESET';
        $selected_id = -1;

        display_notification(_('Selected Estimation BOQ Item Cost has been deleted'));
    }
    else{
        cancel_transaction();
    }
	
	
}

if ($Mode == 'RESET')
{
	$selected_id = -1;
	$sav = get_post('show_inactive');
//	unset($_POST);
	$_POST['show_inactive'] = $sav;
}


if (get_post('cancel')) {
	
    clear_data();
    set_focus('serial');
    $Ajax->activate('_page_body');
}


function display_est_project_boq_assets_page(&$selected_id, &$Mode, $boq_item_id, $detail_type_code)
{

    start_form();
    
    display_est_boq_item_assets($boq_item_id, $detail_type_code);

    display_est_boq_asset_edit_controls($boq_item_id, $detail_type_code, $selected_id, $Mode); 


    end_form();

}


?>






















