52 lines
1.4 KiB
ABAP
52 lines
1.4 KiB
ABAP
INTERFACE {{p}}if_parcel_fee PUBLIC.
|
|
TYPES ty_weight_g TYPE i.
|
|
TYPES ty_cents TYPE i.
|
|
TYPES ty_zone TYPE c LENGTH 1.
|
|
TYPES ty_reason TYPE c LENGTH 9.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_zone,
|
|
home TYPE ty_zone VALUE '1',
|
|
national TYPE ty_zone VALUE '2',
|
|
europe TYPE ty_zone VALUE '3',
|
|
END OF c_zone.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_reason,
|
|
ok TYPE ty_reason VALUE 'OK',
|
|
weight TYPE ty_reason VALUE 'WEIGHT',
|
|
zone TYPE ty_reason VALUE 'ZONE',
|
|
END OF c_reason.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_limit,
|
|
min_weight TYPE ty_weight_g VALUE 1,
|
|
max_weight TYPE ty_weight_g VALUE 31500,
|
|
END OF c_limit.
|
|
|
|
CONSTANTS:
|
|
BEGIN OF c_surcharge,
|
|
per_step TYPE ty_cents VALUE 90,
|
|
express TYPE ty_cents VALUE 750,
|
|
END OF c_surcharge.
|
|
|
|
METHODS check_input
|
|
IMPORTING iv_weight_g TYPE ty_weight_g
|
|
iv_zone TYPE ty_zone
|
|
RETURNING VALUE(rv_reason) TYPE ty_reason.
|
|
|
|
METHODS base_fee
|
|
IMPORTING iv_zone TYPE ty_zone
|
|
RETURNING VALUE(rv_cents) TYPE ty_cents.
|
|
|
|
METHODS weight_surcharge
|
|
IMPORTING iv_weight_g TYPE ty_weight_g
|
|
RETURNING VALUE(rv_cents) TYPE ty_cents.
|
|
|
|
METHODS total_fee
|
|
IMPORTING iv_weight_g TYPE ty_weight_g
|
|
iv_zone TYPE ty_zone
|
|
iv_express TYPE abap_bool
|
|
RETURNING VALUE(rv_cents) TYPE ty_cents.
|
|
ENDINTERFACE.
|