39 lines
1.1 KiB
ABAP
39 lines
1.1 KiB
ABAP
CLASS {{p}}salon_pricer DEFINITION PUBLIC FINAL CREATE PUBLIC.
|
|
PUBLIC SECTION.
|
|
INTERFACES {{p}}if_salon_price.
|
|
|
|
PRIVATE SECTION.
|
|
METHODS base_price
|
|
IMPORTING iv_service TYPE {{p}}if_salon_price=>ty_service
|
|
RETURNING VALUE(rv_price) TYPE {{p}}if_salon_price=>ty_amount.
|
|
METHODS minimum_price
|
|
IMPORTING iv_price TYPE {{p}}if_salon_price=>ty_amount
|
|
RETURNING VALUE(rv_price) TYPE {{p}}if_salon_price=>ty_amount.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}salon_pricer IMPLEMENTATION.
|
|
METHOD {{p}}if_salon_price~price.
|
|
IF iv_service = {{p}}if_salon_price=>c_service-cut AND iv_child = abap_true.
|
|
rv_price = '12.00'.
|
|
RETURN.
|
|
ENDIF.
|
|
rv_price = minimum_price( base_price( iv_service ) ).
|
|
ENDMETHOD.
|
|
|
|
METHOD base_price.
|
|
CASE iv_service.
|
|
WHEN {{p}}if_salon_price=>c_service-cut.
|
|
rv_price = '42.00'.
|
|
WHEN {{p}}if_salon_price=>c_service-colour.
|
|
rv_price = '90.00'.
|
|
WHEN {{p}}if_salon_price=>c_service-perm.
|
|
rv_price = '95.00'.
|
|
ENDCASE.
|
|
ENDMETHOD.
|
|
|
|
METHOD minimum_price.
|
|
rv_price = nmax( val1 = iv_price val2 = '20.00' ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|