Stage 2 summary at 50 accepted trajectories
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
64
tasks_gen/train/G1150/seed/farrier_fee.func.abap
Normal file
64
tasks_gen/train/G1150/seed/farrier_fee.func.abap
Normal file
@@ -0,0 +1,64 @@
|
||||
FUNCTION {{p}}farrier_fee
|
||||
IMPORTING
|
||||
iv_horses TYPE i
|
||||
iv_km TYPE decfloat34
|
||||
iv_new_shoes TYPE abap_bool
|
||||
iv_contract TYPE abap_bool
|
||||
EXPORTING
|
||||
ev_fee TYPE decfloat34
|
||||
ev_weeks TYPE i
|
||||
ev_reject TYPE abap_bool
|
||||
EXCEPTIONS
|
||||
invalid_horses.
|
||||
|
||||
* Farrier service - mobile shoeing round
|
||||
* Calculation of one visit
|
||||
* Last change: 22.09.1996 / W. Klose
|
||||
|
||||
DATA: lv_horses TYPE i,
|
||||
lv_fee TYPE decfloat34,
|
||||
lv_travel TYPE decfloat34,
|
||||
lv_weeks TYPE i.
|
||||
|
||||
MOVE iv_horses TO lv_horses.
|
||||
|
||||
IF lv_horses LT 0.
|
||||
RAISE invalid_horses.
|
||||
ELSE.
|
||||
CLEAR: ev_fee, ev_weeks.
|
||||
ev_reject = abap_false.
|
||||
IF lv_horses EQ 0.
|
||||
ev_reject = abap_true.
|
||||
ELSE.
|
||||
* shoeing fee: 45.00 per horse, from the fifth horse 40.00
|
||||
IF lv_horses LE 4.
|
||||
COMPUTE lv_fee = lv_horses * 45.
|
||||
ELSE.
|
||||
COMPUTE lv_fee = 4 * 45 + ( lv_horses - 4 ) * 40.
|
||||
ENDIF.
|
||||
* new shoes are charged for every horse
|
||||
IF iv_new_shoes EQ abap_true.
|
||||
COMPUTE lv_fee = lv_fee + lv_horses * 30.
|
||||
ENDIF.
|
||||
* travel: 60 cent per kilometre, at least 10.00, rounded up to whole euro
|
||||
COMPUTE lv_travel = iv_km * 60 / 100.
|
||||
IF lv_travel LT 10.
|
||||
lv_travel = 10.
|
||||
ENDIF.
|
||||
COMPUTE lv_travel = CEIL( lv_travel ).
|
||||
COMPUTE lv_fee = lv_fee + lv_travel.
|
||||
* contract stables get 12 per cent off the visit
|
||||
IF iv_contract EQ abap_true.
|
||||
COMPUTE lv_fee = lv_fee * 88 / 100.
|
||||
ENDIF.
|
||||
* next visit: every six weeks, contract stables every four weeks
|
||||
lv_weeks = 6.
|
||||
IF iv_contract EQ abap_true.
|
||||
lv_weeks = 4.
|
||||
ENDIF.
|
||||
MOVE lv_fee TO ev_fee.
|
||||
ev_weeks = lv_weeks.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDFUNCTION.
|
||||
Reference in New Issue
Block a user