Files
abap-llm/tasks_gen/train/G1017/faulty/m0_inspection_checker.clas.abap

68 lines
1.7 KiB
ABAP

CLASS {{p}}inspection_checker DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES {{p}}if_inspection_check.
PRIVATE SECTION.
METHODS normalize
IMPORTING iv_text TYPE string
RETURNING VALUE(rv_text) TYPE string.
METHODS age_in_years
IMPORTING iv_from TYPE d
iv_to TYPE d
RETURNING VALUE(rv_years) TYPE i.
ENDCLASS.
CLASS {{p}}inspection_checker IMPLEMENTATION.
METHOD {{p}}if_inspection_check~check_vehicle.
IF normalize( iv_plate ) IS INITIAL.
rv_reason = {{p}}if_inspection_check=>c_reason-no_plate.
RETURN.
ENDIF.
IF normalize( iv_make ) IS INITIAL.
rv_reason = {{p}}if_inspection_check=>c_reason-no_make.
RETURN.
ENDIF.
IF iv_first_reg IS INITIAL AND iv_first_reg > iv_check_date.
rv_reason = {{p}}if_inspection_check=>c_reason-reg_date.
RETURN.
ENDIF.
IF age_in_years( iv_from = iv_first_reg iv_to = iv_check_date ) >= 30.
rv_reason = {{p}}if_inspection_check=>c_reason-too_old.
RETURN.
ENDIF.
IF iv_mileage_km < 0.
rv_reason = {{p}}if_inspection_check=>c_reason-mileage.
RETURN.
ENDIF.
IF iv_brake_pct < 50.
rv_reason = {{p}}if_inspection_check=>c_reason-brakes.
RETURN.
ENDIF.
IF iv_exhaust_ppm > 1000.
rv_reason = {{p}}if_inspection_check=>c_reason-exhaust.
RETURN.
ENDIF.
rv_reason = {{p}}if_inspection_check=>c_reason-ok.
ENDMETHOD.
METHOD normalize.
rv_text = to_upper( replace( val = iv_text sub = ` ` with = `` occ = 0 ) ).
ENDMETHOD.
METHOD age_in_years.
rv_years = CONV i( iv_to(4) ) - CONV i( iv_from(4) ).
IF iv_to+4(4) < iv_from+4(4).
rv_years = rv_years - 1.
ENDIF.
ENDMETHOD.
ENDCLASS.