51 lines
1.4 KiB
ABAP
51 lines
1.4 KiB
ABAP
INTERFACE {{p}}if_pyro_order PUBLIC.
|
|
TYPES ty_reason TYPE c LENGTH 12.
|
|
TYPES ty_zone TYPE c LENGTH 1.
|
|
TYPES ty_amount TYPE p LENGTH 8 DECIMALS 2.
|
|
|
|
TYPES BEGIN OF ty_order.
|
|
TYPES calibre_mm TYPE i.
|
|
TYPES zone_code TYPE ty_zone.
|
|
TYPES wind_kmh TYPE i.
|
|
TYPES start_hour TYPE i.
|
|
TYPES crowd_m TYPE i.
|
|
TYPES duration_min TYPE i.
|
|
TYPES END OF ty_order.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_reason,
|
|
ok TYPE ty_reason VALUE 'OK',
|
|
calibre TYPE ty_reason VALUE 'CALIBRE',
|
|
zone TYPE ty_reason VALUE 'ZONE',
|
|
wind TYPE ty_reason VALUE 'WIND',
|
|
time TYPE ty_reason VALUE 'TIME',
|
|
distance TYPE ty_reason VALUE 'DISTANCE',
|
|
END OF c_reason.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_limit,
|
|
max_wind_kmh TYPE i VALUE 30,
|
|
min_start_hour TYPE i VALUE 18,
|
|
max_start_hour TYPE i VALUE 23,
|
|
free_minutes TYPE i VALUE 10,
|
|
max_fee_euro TYPE i VALUE 5000,
|
|
END OF c_limit.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_distance,
|
|
calibre_50 TYPE i VALUE 30,
|
|
calibre_75 TYPE i VALUE 45,
|
|
calibre_100 TYPE i VALUE 60,
|
|
calibre_150 TYPE i VALUE 90,
|
|
calibre_200 TYPE i VALUE 120,
|
|
END OF c_distance.
|
|
|
|
METHODS check_order
|
|
IMPORTING is_order TYPE ty_order
|
|
RETURNING VALUE(rv_reason) TYPE ty_reason.
|
|
|
|
METHODS calc_fee
|
|
IMPORTING is_order TYPE ty_order
|
|
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
|
ENDINTERFACE.
|