CLASS {{p}}freight_legacy DEFINITION PUBLIC FINAL CREATE PUBLIC. PUBLIC SECTION. INTERFACES {{p}}if_freight_calc. ENDCLASS. CLASS {{p}}freight_legacy IMPLEMENTATION. METHOD {{p}}if_freight_calc~calculate. DATA: lv_base TYPE {{p}}if_freight_calc=>ty_amount, lv_per_kg TYPE {{p}}if_freight_calc=>ty_amount, lv_minimum TYPE {{p}}if_freight_calc=>ty_amount, lv_surcharge TYPE p LENGTH 4 DECIMALS 3, lv_charge TYPE {{p}}if_freight_calc=>ty_amount, lv_freight TYPE {{p}}if_freight_calc=>ty_amount, lv_fee TYPE {{p}}if_freight_calc=>ty_amount, lv_total TYPE {{p}}if_freight_calc=>ty_amount. CASE iv_zone. WHEN 'DE'. lv_base = '12.50'. lv_per_kg = '0.85'. lv_minimum = '25.00'. lv_surcharge = '0.065'. WHEN 'FR'. lv_base = '15.00'. lv_per_kg = '1.10'. lv_minimum = '30.00'. lv_surcharge = '0.075'. WHEN 'NL'. lv_base = '10.00'. lv_per_kg = '0.75'. lv_minimum = '20.00'. lv_surcharge = '0.055'. WHEN 'US'. lv_base = '20.00'. lv_per_kg = '1.40'. lv_minimum = '45.00'. lv_surcharge = '0.085'. WHEN 'CN'. lv_base = '25.00'. lv_per_kg = '1.25'. lv_minimum = '50.00'. lv_surcharge = '0.095'. WHEN OTHERS. rv_cost = 0. RETURN. ENDCASE. lv_charge = lv_per_kg * iv_weight. lv_freight = lv_base + lv_charge. IF lv_freight < lv_minimum. lv_freight = lv_minimum. ENDIF. lv_fee = lv_freight * lv_surcharge. lv_total = lv_freight + lv_fee. IF iv_weight > '1000.000'. lv_total = lv_total * '0.95'. ENDIF. rv_cost = lv_total. ENDMETHOD. ENDCLASS.