drop function if exists mmt_staging2.fn_FTHLG_TRS_ODS ;
CREATE OR REPLACE FUNCTION mmt_staging2.fn_FTHLG_TRS_ODS()
   RETURNS void AS $$
 begin
	 
execute 'insert into mmt_ods.test_instance
(
client_id,
function_id,
test_report_no,
objective_of_test,
background_of_test,
job_order_no,
test_location_name,
gradient_slope_1_degree,
gradient_slope_2_degree,
tractor_hitch_type,
test_engineer,
test_operator,
date_of_test,
test_report_date,
type_of_road,
tractor_hitch_ht_mm,
tractor_rwheel_c2h_dist_mm,
test_file_ref_no
)
select 
client_id,
function_id,
Report_Reference_No test_report_no ,
Objective_Of_Test,
Background_of_Test,
Job_Order_No,       
Test_Location test_location_name,
Gradient_Slope_1_Degree::int,
Gradient_Slope_2_Degree::int,
Tractor_Hitch_Type,
Test_Engineer,
Test_Operator,
Date_of_Test::date,
Report_Date::date test_report_date,
Type_of_Road,
Tractor_Hitch_Height_from_Ground_mm::int tractor_hitch_ht_mm ,
Tractor_Rear_Wheel_Center_to_Hitch_Point_Center_Distance_mm::int tractor_rwheel_c2h_dist_mm,
file_syspk
from mmt_staging2.FTHLG_TRS_H1_Block';



execute 'insert into mmt_ods.test_instance_tractor_info
(
client_id,
function_id,
tractor_model,
tractor_make,
tractor_sr_no,
tractor_engine_hp,
fip_type,
hour_meter_reading,
steering_type,
transmission_type,
wheel_drive_type,
egr_yn,
brake_type,
pto_type,
standard_pto_speed_rpm,
epto_speed_rpm,
tractor_weight_front_kg,
tractor_weight_rear_kg,
tractor_weight_total_kg,
ballasted_tractor_accessories,
mechanical_ballast_rear,
water_ballast_rear_75_pct,
mechanical_ballast_front_kg, 
mechanical_ballast_front,
total_ballast_weight,
test_file_ref_no
)
select 
client_id,
function_id,
Tractor_Model,
Tractor_Make,
Tractor_Sr_No,
Tractor_Engine_HP::int,
FIP_Type,
Hour_Meter_Reading::float,
Steering_Type,
Transmission_Type,
Wheel_Drive_Type_WD,
EGR_Yes_No egr_yn,
Brake_Type,
PTO_Type,
Standard_PTO_Speed_RPM::int,
EPTO_Speed_RPM::int,
Tractor_Weight_kg_Front::int tractor_weight_front_kg,
Tractor_Weight_kg_Rear::int tractor_weight_rear_kg,
Tractor_Weight_kg_Total::int  tractor_weight_total_kg,
Ballasted_Tractor_Accessories,
Mechanical_Ballast_Rear,
Water_Ballast_Rear_75 water_ballast_rear_75_pct,
Mechanical_Ballast_Front_in_kg::int mechanical_ballast_front_kg,
Mechanical_Ballast_Front,
Total_Ballast_Weight::int,
file_syspk
from mmt_staging2.fthlg_trs_spec_block';


execute 'insert into mmt_ods.test_instance_engine_info 
(
client_id,
function_id,
low_idle_declared,
high_idle_declared,
rated_rpm,
engine_to_pto_ratio_540_pto,
engine_to_pto_ratio_540e_pto,
tractor_model,
tractor_make,
test_file_ref_no
)
select 
client_id,
function_id,
low_idle low_idle_declared,
high_idle high_idle_declared,
rated_rpm::int,
engine_to_pto_ratio_540_pto,
engine_to_pto_ratio_540e_pto,
tractor_model,
tractor_make,
file_syspk
from mmt_staging2.fthlg_trs_engine_rpm_block where tractor_model is not null';



execute 'insert into mmt_ods.test_instance_trailer_info
(
client_id,
function_id,
type_of_trailer,
no_of_axle,
no_of_wheels,
trailer_hitch_ht_above_ground_lvl_mm,
make_model_of_trailer,
trailer_platform_length_mm,
trailer_platform_width_mm,
trailer_platform_height_mm, 
tire_size,
inflation_pressure_psi,
track_width_of_trailer_mm,
hzntl_dist_of_hitch_pt_from_trailer_face_mm,
tractor_rwc_to_hitch_pt_center_dist_mm,
dist_from_tractor_rwc_to_trailer_rwc_mm,
dist_from_trailer_front_axle_dist_from_hitch_pt_mm,
trailer_empty_weight_kg,
trailer_gross_weight_kg,
test_file_ref_no
)
select 
client_id,
function_id,
Type_Of_Trailer,
No_Of_Axle::int,
No_Of_Wheels::int,
Trailer_hitch_Height_above_ground_level_mm::int trailer_hitch_ht_above_ground_lvl_mm,
Make_model_of_trailer,
Trailer_platform_length_mm::int,
Trailer_platform_Width_mm::int,
Trailer_platform_Height_mm::int,
Tire_size,
Inflation_pressure_psi::int,
Track_width_of_trailer_mm::int,
Horizontal_distance_of_hitch_point_from_trailer_front_face_mm::int hzntl_dist_of_hitch_pt_from_trailer_face_mm,
Tractor_Rear_Wheel_Center_to_Hitch_Point_Center_Distance_mm::int tractor_rwc_to_hitch_pt_center_dist_mm,
Distance_from_Trailerfront_axle_distance_from_hitch_point_mm::int dist_from_tractor_rwc_to_trailer_rwc_mm,
Distance_from_tractor_rear_wheel_center_to_tractor_rear_wheel_center_mm::int dist_from_trailer_front_axle_dist_from_hitch_pt_mm,
Trailer_empty_weight_Kg::int,
Trailer_Gross_Weight_Kg::int,
file_syspk
from mmt_staging2.fthlg_trs_trailer_block';


end
$$ LANGUAGE plpgsql;

select mmt_staging2.fn_FTHLG_TRS_ODS();



end
$$ LANGUAGE plpgsql;

select mmt_staging2.fn_FTHLG_TRS_ODS ();
