Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DATA : lv_date_debut(10) type c,
- lv_heure_char(8) type c,
- lv_heure_debut(5) type c,
- lv_date_fin(10) type c,
- lv_heure_fin(5) type c,
- lv_dates_ab type string. " Phrase renseignant la période d'absence
- " .................................................... instructions
- * (on veux récupérer notre BOR (ABSENCE) et l'infotype associé
- * pour avoir toutes les informatiosn nécessaires)
- * Pour cela j'utilise la methode de la classe zcl_hr_infotype_util
- call method _get_p2001_data
- exporting
- io_wu = io_wu
- receiving
- rs_p2001 = ls_data.
- " deebug
- * data : lv_x type abap_bool.
- *
- * while lv_x eq abap_false.
- * continue.
- * endwhile.
- " On récupére les données qu'il nous faut
- lv_pernr = ls_data-pernr.
- lv_cat = ls_data-awart.
- lv_type = ls_data-subty.
- write ls_data-begda to lv_date_debut.
- write ls_data-endda to lv_date_fin.
- write ls_data-beguz to lv_heure_char. " l'heure sur IDA est sans les secondes donc automatique à 00 sur SAP.
- lv_heure_debut = lv_heure_char. " ici on deplace du 8c dans du 5c pour se retrouver avec l'heure sans les secondes !
- write ls_data-enduz to lv_heure_char. " idem avec la date de fin
- lv_heure_fin = lv_heure_char.
- " formattage des dates et heures au format conventionnel
- replace all occurrences of '.' in lv_date_debut with '/'.
- replace all occurrences of '.' in lv_date_fin with '/'.
- replace all occurrences of ':' in lv_heure_debut with 'h'.
- replace all occurrences of ':' in lv_heure_fin with 'h'.
- " ..................................................... instructions
- " On crée la phrase sur la période d'absence qui va bien
- " car les heures sont facultatives
- if lv_date_debut eq lv_date_fin.
- lv_dates_ab = `le ` && lv_date_debut && ` `.
- if ( ( ls_data-beguz is initial or strlen( ls_data-beguz ) eq 0 ) and ( ls_data-enduz is initial or strlen( ls_data-enduz ) eq 0 ) ).
- lv_dates_ab = lv_dates_ab && `toute la journée`.
- elseif ( ls_data-beguz is initial or strlen( ls_data-beguz ) eq 0 ) and ( ls_data-enduz is not initial and strlen( ls_data-enduz ) ne 0 ).
- lv_dates_ab = lv_dates_ab && `du début de la journée jusqu'à ` && lv_heure_fin .
- elseif ( ls_data-beguz is not initial and strlen( ls_data-beguz ) ne 0 ) and ( ls_data-enduz is initial or strlen( ls_data-enduz ) eq 0 ).
- lv_dates_ab = lv_dates_ab && `de ` && lv_heure_debut && ` à la fin de la journée`.
- else.
- lv_dates_ab = lv_dates_ab && `de ` && lv_heure_debut && ` à ` && lv_heure_fin.
- endif.
- else.
- lv_dates_ab = `du ` && lv_date_debut && ` `.
- if ( ls_data-beguz is not initial and strlen( ls_data-beguz ) ne 0 ).
- lv_dates_ab = lv_dates_ab && `à ` && lv_heure_debut.
- endif.
- lv_dates_ab = lv_dates_ab && ` au ` && lv_date_fin && ` `.
- if ( ls_data-enduz is not initial and strlen( ls_data-enduz ) ne 0 ).
- lv_dates_ab = lv_dates_ab && `à ` && lv_heure_debut.
- endif.
- endif.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement