62 lines
1.7 KiB
ABAP
62 lines
1.7 KiB
ABAP
INTERFACE {{p}}if_bouquet_pricing PUBLIC.
|
|
TYPES:
|
|
ty_size TYPE c LENGTH 1,
|
|
ty_zone TYPE c LENGTH 1,
|
|
ty_reason TYPE c LENGTH 12,
|
|
ty_amount TYPE p LENGTH 8 DECIMALS 2,
|
|
ty_stems TYPE i.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_size,
|
|
small TYPE ty_size VALUE 'S',
|
|
medium TYPE ty_size VALUE 'M',
|
|
large TYPE ty_size VALUE 'L',
|
|
END OF c_size.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_zone,
|
|
town TYPE ty_zone VALUE 'T1',
|
|
nearby TYPE ty_zone VALUE 'N1',
|
|
far TYPE ty_zone VALUE 'F1',
|
|
END OF c_zone.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_reason,
|
|
ok TYPE ty_reason VALUE 'OK',
|
|
no_stems TYPE ty_reason VALUE 'NO_STEMS',
|
|
too_many TYPE ty_reason VALUE 'TOO_MANY',
|
|
bad_size TYPE ty_reason VALUE 'BAD_SIZE',
|
|
bad_zone TYPE ty_reason VALUE 'BAD_ZONE',
|
|
END OF c_reason.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_limit,
|
|
min_stems TYPE ty_stems VALUE 5,
|
|
max_stems TYPE ty_stems VALUE 60,
|
|
END OF c_limit.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_fee,
|
|
vase TYPE ty_amount VALUE '4.50',
|
|
town TYPE ty_amount VALUE '0.00',
|
|
nearby TYPE ty_amount VALUE '6.00',
|
|
far TYPE ty_amount VALUE '12.00',
|
|
END OF c_fee.
|
|
|
|
METHODS check_order
|
|
IMPORTING iv_size TYPE ty_size
|
|
iv_stems TYPE ty_stems
|
|
iv_zone TYPE ty_zone
|
|
RETURNING VALUE(rv_reason) TYPE ty_reason.
|
|
|
|
METHODS delivery_fee
|
|
IMPORTING iv_zone TYPE ty_zone
|
|
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
|
|
|
METHODS bouquet_price
|
|
IMPORTING iv_size TYPE ty_size
|
|
iv_stems TYPE ty_stems
|
|
iv_vase TYPE abap_bool
|
|
RETURNING VALUE(rv_price) TYPE ty_amount.
|
|
ENDINTERFACE.
|