56 lines
1.7 KiB
ABAP
56 lines
1.7 KiB
ABAP
INTERFACE {{p}}if_kiln_quote PUBLIC.
|
|
TYPES ty_reason TYPE c LENGTH 12.
|
|
TYPES ty_kiln TYPE c LENGTH 4.
|
|
TYPES ty_amount TYPE p LENGTH 7 DECIMALS 2.
|
|
|
|
TYPES: BEGIN OF ty_load,
|
|
kiln TYPE ty_kiln,
|
|
pieces TYPE i,
|
|
weight_kg TYPE i,
|
|
glazed TYPE abap_bool,
|
|
END OF ty_load.
|
|
|
|
TYPES: BEGIN OF ty_quote,
|
|
kiln TYPE ty_kiln,
|
|
base TYPE ty_amount,
|
|
weight TYPE ty_amount,
|
|
glaze TYPE ty_amount,
|
|
total TYPE ty_amount,
|
|
reason TYPE ty_reason,
|
|
END OF ty_quote.
|
|
|
|
CONSTANTS: BEGIN OF c_kiln,
|
|
small TYPE ty_kiln VALUE 'SMAL',
|
|
medium TYPE ty_kiln VALUE 'MEDI',
|
|
large TYPE ty_kiln VALUE 'LARG',
|
|
END OF c_kiln.
|
|
|
|
CONSTANTS: BEGIN OF c_reason,
|
|
ok TYPE ty_reason VALUE 'OK',
|
|
kiln TYPE ty_reason VALUE 'KILN',
|
|
pieces TYPE ty_reason VALUE 'PIECES',
|
|
weight TYPE ty_reason VALUE 'WEIGHT',
|
|
END OF c_reason.
|
|
|
|
CONSTANTS:
|
|
c_base_small TYPE ty_amount VALUE '25.00',
|
|
c_base_medium TYPE ty_amount VALUE '40.00',
|
|
c_base_large TYPE ty_amount VALUE '60.00',
|
|
c_weight_rate TYPE ty_amount VALUE '1.50',
|
|
c_glaze_fee TYPE ty_amount VALUE '8.00',
|
|
c_max_pieces TYPE i VALUE 40,
|
|
c_max_weight TYPE i VALUE 121.
|
|
|
|
METHODS check_load
|
|
IMPORTING is_load TYPE ty_load
|
|
RETURNING VALUE(rv_reason) TYPE ty_reason.
|
|
|
|
METHODS kiln_fee
|
|
IMPORTING iv_kiln TYPE ty_kiln
|
|
RETURNING VALUE(rv_fee) TYPE ty_amount.
|
|
|
|
METHODS quote
|
|
IMPORTING is_load TYPE ty_load
|
|
RETURNING VALUE(rs_quote) TYPE ty_quote.
|
|
ENDINTERFACE.
|