Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- METHOD adopt_doublet.
- *#X#0000#2021.05.30.13:31 pwi Core Logik aus check_dublette_gp_sap
- *wurde in zwei Methoden ausgelagert, vorher check_doublet
- *es handelt sich um eine Methode, die seit Übernahme in die OOP
- *noch nicht überarbeitet wurde. TODO: GP und DEBI Fälle trennen
- *und Aktualität der historischen Datenzuweisung prüfen
- IF pc_pd-kunnr IS INITIAL.
- pc_pd-kunnr = a_kunnr.
- ENDIF.
- IF pc_pa_r-rolltyp EQ 'PART'.
- pc_pd-partnr = a_kunnr.
- ENDIF.
- *#x#0000#2023.02.23.15:22 bka beg neu PD-Satz wird weiter benötigt! pc_pd-lvorm = abap_true. "Löschkennzeichen, weil nun Debi bzw.ISU-GP
- *prüfen ob pd satz vorhanden ub ggf diese Partid verwenden
- DATA ls_pd_check TYPE /gobiz/hau_pd.
- pc_kunnr = pc_pd-kunnr. "*#x#0000#2023.02.23.15:22 für übernahme in anderer Rollen fehlte
- CALL FUNCTION '/GOBIZ/HAU_READ_PAR'
- EXPORTING
- p_actvt = '03'
- p_rollfkt = pc_pd-rollfkt
- p_kunnr = pc_pd-kunnr
- p_asart = pi_cust-asart
- IMPORTING
- o_pd = ls_pd_check
- EXCEPTIONS
- no_auth = 1
- db_error = 2
- bad_actvt = 3
- bad_rolle = 4
- no_partner = 5
- foreign_lock = 6.
- IF ls_pd_check-partid IS NOT INITIAL. "es gibt schon einen PD-Satz.
- FIELD-SYMBOLS <fs_pa> LIKE LINE OF pc_t_pa.
- DATA(lf_partid_old) = pc_pd-partid.
- pc_pd = ls_pd_check. "komplett übernehmen
- pc_partid_new = pc_pd-partid.
- ELSE.
- CLEAR pc_partid_new .
- ENDIF.
- *#x#0000#2023.02.23.15:22 bka end
- "MODIFY pc_t_pd INDEX sy-tabix from pc_pd.
- * Falls es mehrere GPs mit derselben Partid im Anschlussobjekt gibt
- * werden die Partid und Partnr gemerkt.
- pc_partid = pc_pd-partid.
- *#x#0000#2023.02.23.15:22 bka beg PC_partid wird zum Änderen anderer Rollen benutzt.
- IF pc_partid_new IS NOT INITIAL.
- pc_partid = lf_partid_old.
- ENDIF.
- *#x#0000#2023.02.23.15:22 bka end
- pc_partnr = pc_pd-partnr.
- CALL FUNCTION '/GOBIZ/HAU_SAVE_PAR'
- EXPORTING
- p_actvt = '02'
- p_asart = pi_cust-asart
- CHANGING
- p_partner = pc_pd
- EXCEPTIONS
- no_auth = 1
- db_error = 2
- bad_actvt = 3
- bad_rolle = 4
- no_data = 5
- OTHERS = 6.
- IF sy-subrc NE 0.
- MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
- WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
- ENDIF.
- pc_pd_save3 = pc_pd.
- READ TABLE pc_t_pa REFERENCE INTO DATA(ls_pa) WITH KEY rollfkt = pc_pa_r-rollfkt.
- IF sy-subrc = 0.
- ls_pa->partnr = pc_pd-partnr.
- ls_pa->kunnr = pc_pd-kunnr.
- *#x#0000#2023.02.23.15:22 bka beg pc_partid wird zum änderen anderer rollen benutzt.
- IF pc_partid_new IS NOT INITIAL.
- ls_pa->partid = pc_partid_new .
- ENDIF.
- *#x#0000#2023.02.23.15:22 bka end
- ENDIF.
- * Wenn der IS-U GP existiert, nur dann kann der Button
- * 'Vertragskonto anzeigen' bzw. 'Vertragskonto anlegen'
- * aktiviert werden. Dafür wird ein Flag gesetzt.
- IF NOT pc_pd-partnr IS INITIAL.
- pc_fl_gp_exi = 'X'.
- ENDIF.
- * Übergabe des Auftraggebers an f_hau
- IF pc_pa_r-rollid = '01'.
- IF NOT pc_hau_k-hauid IS INITIAL.
- pc_hau_k-partnr = pc_pd-partnr.
- pc_hau_k-kunnr = pc_pd-kunnr.
- ENDIF.
- * Auslesen der abweichenden Partnerrollen des Auftraggebers
- * Diese werden angezeigt
- CLEAR pc_t_knvp2.
- DATA: ls_knvp LIKE LINE OF pc_t_knvp2.
- SELECT * FROM knvp INTO ls_knvp
- WHERE kunnr = pc_pd-kunnr
- AND vkorg = pc_hau_k-vkorg
- AND vtweg = pc_hau_k-vtweg
- AND spart = pc_hau_k-spart.
- IF ls_knvp-kunn2 NE pc_pd-kunnr.
- APPEND ls_knvp TO pc_t_knvp2.
- pc_double_x = 'X'.
- ENDIF.
- ENDSELECT.
- ENDIF.
- ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement