Files
abap-llm/tasks_gen/train/G1130/seed/groom_bill_old.prog.abap
2026-10-05 18:02:52 +02:00

60 lines
1.5 KiB
ABAP

REPORT {{p}}groom_bill_old.
DATA: gv_pet TYPE {{p}}groom-pet.
PARAMETERS p_date TYPE d OBLIGATORY.
SELECT-OPTIONS s_pet FOR gv_pet.
TYPES: BEGIN OF ty_out,
groom_id TYPE {{p}}groom-groom_id,
pet TYPE {{p}}groom-pet,
service TYPE {{p}}groom-service,
charge TYPE p LENGTH 9 DECIMALS 2,
END OF ty_out.
DATA: gt_out TYPE STANDARD TABLE OF ty_out,
gs_out TYPE ty_out,
gt_groom TYPE STANDARD TABLE OF {{p}}groom,
gs_groom TYPE {{p}}groom.
START-OF-SELECTION.
SELECT * FROM {{p}}groom INTO TABLE gt_groom
WHERE visit_date = p_date AND pet IN s_pet.
LOOP AT gt_groom INTO gs_groom.
CLEAR gs_out.
gs_out-groom_id = gs_groom-groom_id.
gs_out-pet = gs_groom-pet.
gs_out-service = gs_groom-service.
IF gs_groom-service = 'BASIC'.
gs_out-charge = 30.
ELSEIF gs_groom-service = 'FULL'.
gs_out-charge = 50.
ELSE.
gs_out-charge = 0.
ENDIF.
IF gs_groom-coat = 'LONG'.
gs_out-charge = gs_out-charge + 10.
ELSEIF gs_groom-coat = 'CURLY'.
gs_out-charge = gs_out-charge + 15.
ENDIF.
IF gs_groom-weight_kg > 25.
gs_out-charge = gs_out-charge + 20.
ENDIF.
IF gs_groom-service = 'FULL' AND gs_groom-coat = 'LONG'.
gs_out-charge = gs_out-charge - 5.
ENDIF.
APPEND gs_out TO gt_out.
ENDLOOP.
SORT gt_out BY groom_id.
TRY.
cl_salv_table=>factory(
IMPORTING r_salv_table = DATA(lo_alv)
CHANGING t_table = gt_out ).
lo_alv->display( ).
CATCH cx_salv_msg.
ENDTRY.