CLASS {{p}}glasses_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. TYPES ty_amount TYPE p LENGTH 9 DECIMALS 2 . TYPES ty_lens TYPE c LENGTH 1 . TYPES ty_coat TYPE c LENGTH 1 . METHODS price IMPORTING iv_frame TYPE ty_amount iv_lens TYPE ty_lens iv_coat TYPE ty_coat iv_qty TYPE i RETURNING VALUE(rv_price) TYPE ty_amount . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS {{p}}glasses_pricer IMPLEMENTATION. METHOD price. DATA lv_qty TYPE i . DATA lv_frame TYPE ty_amount . DATA lv_lens TYPE ty_amount . DATA lv_coat TYPE ty_amount . DATA lv_total TYPE ty_amount . lv_qty = iv_qty . IF lv_qty > 100 . lv_qty = 100 . ENDIF . IF lv_qty < 1 . rv_price = 0 . RETURN . ENDIF . lv_frame = iv_frame * lv_qty . IF iv_lens = 'S' . lv_lens = 40 . ELSEIF iv_lens = 'B' . lv_lens = 90 . ELSEIF iv_lens = 'P' . lv_lens = 150 . ELSE . lv_lens = 40 . ENDIF . lv_lens = lv_lens * lv_qty . CASE iv_coat . WHEN 'A' . lv_coat = 25 . WHEN 'B' . lv_coat = 35 . WHEN OTHERS . lv_coat = 0 . ENDCASE . lv_coat = lv_coat * lv_qty . lv_total = lv_frame + lv_lens + lv_coat . IF lv_qty >= 3 . lv_total = lv_total - lv_total * 10 / 100 . ENDIF . rv_price = lv_total . ENDMETHOD . ENDCLASS.