Advertisement
Guest User

Untitled

a guest
Nov 15th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 5.56 KB | None | 0 0
  1.   METHOD changesurnameset_create_entity.
  2.  
  3.  
  4.     DATA: ls_app_s     TYPE zhrxx_t_ess003_s,
  5.           ls_app_m     TYPE zhrxs_t_ess_main,
  6.           ls_t_ess_m   TYPE zhrxs_t_ess_main,
  7.           ls_t_ess_s   TYPE zhrxx_t_ess003_s,
  8.           lv_pernr     TYPE pa0002-pernr,
  9.           lv_id        TYPE zhrxs_e_pcr_nr,
  10.           lv_type_1    TYPE zhrxs_e_pcr_type,
  11.           lv_signature TYPE text30,
  12.           lv_type      TYPE string,
  13.           lv_b64data   TYPE string,
  14.           lv_xstring   TYPE xstring,
  15.           lv_bukrs     TYPE bukrs,
  16.           lv_werks     TYPE persa,
  17.           zhr_pcr_xx   TYPE zhrxs_e_pcr_app,
  18.           lv_s         TYPE string.
  19.  
  20.     TRY .
  21.         CALL METHOD io_data_provider->read_entry_data
  22.           IMPORTING
  23.             es_data = er_entity.
  24.         .
  25.       CATCH /iwbep/cx_mgw_tech_exception.  .
  26.         RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
  27.           EXPORTING
  28.             textid  = /iwbep/cx_mgw_busi_exception=>business_error
  29.             message = 'ERROR'.
  30.         RETURN.
  31.     ENDTRY.
  32.  
  33.     IF er_entity-status IS NOT INITIAL.
  34.       IF er_entity-status EQ gc_status_draft OR er_entity-status EQ gc_status_sent OR er_entity-status EQ gc_status_cancel.
  35.         IF er_entity-pcr_app IS NOT INITIAL AND er_entity-pcr_nr IS NOT INITIAL.
  36.           SELECT SINGLE * FROM zhrxs_t_ess_main INTO ls_t_ess_m WHERE pcr_app EQ er_entity-pcr_app
  37.             AND pcr_nr EQ er_entity-pcr_nr.
  38.           SELECT SINGLE * FROM zhrxx_t_ess003_s INTO ls_t_ess_s WHERE pcr_app EQ er_entity-pcr_app
  39.             AND pcr_nr EQ er_entity-pcr_nr.
  40.         ENDIF.
  41.  
  42.         IF ls_t_ess_m-status NE er_entity-status.
  43.           IF ls_t_ess_m IS INITIAL.
  44.             SELECT SINGLE bukrs werks FROM pa0001 INTO (lv_bukrs,lv_werks) WHERE pernr EQ er_entity-pernr
  45.                                                                      AND begda LE sy-datum
  46.                                                                      AND endda GE sy-datum.
  47.             "SELECT SINGLE butxt FROM t001 INTO er_entity-bukrs WHERE bukrs EQ  lv_bukrs.
  48.             CLEAR: ls_t_ess_m, ls_t_ess_s.
  49.             ls_t_ess_m-pcr_app    = 2. "zmiana danych osobowych
  50.             ls_t_ess_m-pcr_nr     = zhrxs_cl_pcr_util=>get_next_pcr_id( iv_app = gc_app_tax_docs ).
  51.             ls_t_ess_m-pcr_type   = '001'. "Zmiana nazwiska
  52.             ls_t_ess_m-pernr      = er_entity-pernr.
  53.             ls_t_ess_m-status     = er_entity-status.
  54.             ls_t_ess_m-apply_date         = sy-datum.
  55.             ls_t_ess_m-signature  = zhrxs_cl_pcr_util=>get_signature( iv_app   = ls_t_ess_m-pcr_app
  56.                                                                       iv_type  = '001'
  57.                                                                       iv_persa = lv_werks ).
  58.             ls_t_ess_s-pcr_app        = ls_t_ess_m-pcr_app.
  59.             ls_t_ess_s-pcr_nr         = ls_t_ess_m-pcr_nr.
  60.             SELECT SINGLE name2 nachn FROM pa0002 INTO (er_entity-familyname, er_entity-surname) WHERE pernr EQ er_entity-pernr
  61.                                                                                              AND begda LE sy-datum
  62.                                                                                              AND endda GE sy-datum.
  63.             ls_t_ess_s-surname = er_entity-surname.
  64.             ls_t_ess_s-familyname = er_entity-familyname.
  65.          ELSEIF ( ls_t_ess_m-status EQ gc_status_draft OR ls_t_ess_m-status EQ gc_status_revoked ) AND er_entity-status EQ gc_status_sent.
  66.             ls_t_ess_m-status = er_entity-status.
  67.             ls_t_ess_m-apply_date = sy-datum.
  68.             ls_t_ess_s-surname = er_entity-surname.
  69.             ls_t_ess_s-familyname = er_entity-familyname.
  70.           ELSEIF ( ls_t_ess_m-status EQ gc_status_draft OR ls_t_ess_m-status EQ gc_status_sent ) AND er_entity-status EQ gc_status_cancel.
  71.             ls_t_ess_m-status = er_entity-status.
  72.             ls_t_ess_m-apply_date = sy-datum.
  73.             ls_t_ess_s-surname = er_entity-surname.
  74.             ls_t_ess_s-familyname = er_entity-familyname.
  75.           ENDIF.
  76.           MODIFY zhrxs_t_ess_main FROM ls_t_ess_m.
  77.           IF sy-subrc EQ 0.
  78.             MODIFY zhrxx_t_ess003_s FROM ls_t_ess_s.
  79.           ENDIF.
  80.          ELSEIF ( ls_t_ess_m-status EQ gc_status_draft ) AND er_entity-status EQ gc_status_draft.
  81.             ls_t_ess_m-status = er_entity-status.
  82.             ls_t_ess_m-apply_date = sy-datum.
  83.             ls_t_ess_s-surname = er_entity-surname.
  84.             ls_t_ess_s-familyname = er_entity-familyname.
  85.             MODIFY zhrxs_t_ess_main FROM ls_t_ess_m.
  86.           IF sy-subrc EQ 0.
  87.             MODIFY zhrxx_t_ess003_s FROM ls_t_ess_s.
  88.           ENDIF.
  89.         ENDIF.
  90.         er_entity-pcr_nr = ls_t_ess_m-pcr_nr.
  91.         er_entity-pcr_app = 2.
  92.         er_entity-pernr = ls_t_ess_m-pernr.
  93.         er_entity-signature = ls_t_ess_m-signature.
  94.         er_entity-status = ls_t_ess_m-status.
  95.       ELSEIF er_entity-status EQ gc_status_print.
  96. **********************************************************************
  97. * wydruk - nie zmieniamy bazy danych
  98. **********************************************************************
  99.         lv_xstring = zhrxs_cl_smartform=>zhrxs_print_smartforms_dane_os( iv_pcr_app = er_entity-pcr_app
  100.                                                                         iv_pcr_nr  = er_entity-pcr_nr ).
  101.  
  102. * Convert xstring to base64
  103.         CALL FUNCTION 'SSFC_BASE64_ENCODE'
  104.           EXPORTING
  105.             bindata = lv_xstring
  106.           IMPORTING
  107.             b64data = lv_b64data.
  108.  
  109.         er_entity-file = lv_b64data.
  110.  
  111.       ENDIF.
  112.     ENDIF.
  113.  
  114.   ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement