Advertisement
bka54

Untitled

Apr 19th, 2023
1,646
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AIMMS 3.87 KB | None | 0 0
  1.   METHOD adopt_doublet.
  2. *#X#0000#2021.05.30.13:31 pwi Core Logik aus check_dublette_gp_sap
  3. *wurde in zwei Methoden ausgelagert, vorher check_doublet
  4. *es handelt sich um eine Methode, die seit Übernahme in die OOP
  5. *noch nicht überarbeitet wurde. TODO: GP und DEBI Fälle trennen
  6. *und Aktualität der historischen Datenzuweisung prüfen
  7.  
  8.  
  9.     IF pc_pd-kunnr IS INITIAL.
  10.       pc_pd-kunnr = a_kunnr.
  11.     ENDIF.
  12.  
  13.     IF pc_pa_r-rolltyp EQ 'PART'.
  14.       pc_pd-partnr = a_kunnr.
  15.     ENDIF.
  16.  
  17. *#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
  18. *prüfen ob pd satz vorhanden ub ggf diese Partid verwenden
  19.     DATA ls_pd_check      TYPE /gobiz/hau_pd.
  20.     pc_kunnr    = pc_pd-kunnr.  "*#x#0000#2023.02.23.15:22  für übernahme in anderer Rollen fehlte
  21.    CALL FUNCTION '/GOBIZ/HAU_READ_PAR'
  22.      EXPORTING
  23.        p_actvt      = '03'
  24.        p_rollfkt    = pc_pd-rollfkt
  25.        p_kunnr      = pc_pd-kunnr
  26.        p_asart      = pi_cust-asart
  27.      IMPORTING
  28.        o_pd         = ls_pd_check
  29.      EXCEPTIONS
  30.        no_auth      = 1
  31.        db_error     = 2
  32.        bad_actvt    = 3
  33.        bad_rolle    = 4
  34.        no_partner   = 5
  35.        foreign_lock = 6.
  36.    IF  ls_pd_check-partid IS NOT INITIAL. "es gibt schon einen PD-Satz.
  37.       FIELD-SYMBOLS <fs_pa> LIKE LINE OF pc_t_pa.
  38.       DATA(lf_partid_old) = pc_pd-partid.
  39.       pc_pd = ls_pd_check. "komplett übernehmen
  40.      pc_partid_new = pc_pd-partid.
  41.    ELSE.
  42.      CLEAR pc_partid_new .
  43.    ENDIF.
  44. *#x#0000#2023.02.23.15:22 bka end
  45.  
  46.    "MODIFY pc_t_pd INDEX sy-tabix from pc_pd.
  47. * Falls es mehrere GPs mit derselben Partid im Anschlussobjekt gibt
  48. * werden die Partid und Partnr gemerkt.
  49.     pc_partid = pc_pd-partid.
  50. *#x#0000#2023.02.23.15:22 bka beg PC_partid wird zum Änderen anderer Rollen benutzt.
  51.     IF pc_partid_new IS NOT INITIAL.
  52.       pc_partid = lf_partid_old.
  53.     ENDIF.
  54. *#x#0000#2023.02.23.15:22 bka end
  55.     pc_partnr = pc_pd-partnr.
  56.  
  57.     CALL FUNCTION '/GOBIZ/HAU_SAVE_PAR'
  58.       EXPORTING
  59.         p_actvt   = '02'
  60.         p_asart   = pi_cust-asart
  61.       CHANGING
  62.         p_partner = pc_pd
  63.       EXCEPTIONS
  64.         no_auth   = 1
  65.         db_error  = 2
  66.         bad_actvt = 3
  67.         bad_rolle = 4
  68.         no_data   = 5
  69.         OTHERS    = 6.
  70.     IF sy-subrc NE 0.
  71.       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
  72.               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  73.     ENDIF.
  74.  
  75.     pc_pd_save3 = pc_pd.
  76.  
  77.     READ TABLE pc_t_pa REFERENCE INTO DATA(ls_pa) WITH KEY rollfkt = pc_pa_r-rollfkt.
  78.     IF sy-subrc = 0.
  79.       ls_pa->partnr = pc_pd-partnr.
  80.       ls_pa->kunnr  = pc_pd-kunnr.
  81. *#x#0000#2023.02.23.15:22 bka beg pc_partid wird zum änderen anderer rollen benutzt.
  82.       IF pc_partid_new IS NOT INITIAL.
  83.         ls_pa->partid  = pc_partid_new .
  84.       ENDIF.
  85. *#x#0000#2023.02.23.15:22 bka end
  86.     ENDIF.
  87.  
  88. * Wenn der IS-U GP existiert, nur dann kann der Button
  89. * 'Vertragskonto anzeigen' bzw. 'Vertragskonto anlegen'
  90. * aktiviert werden. Dafür wird ein Flag gesetzt.
  91.     IF NOT pc_pd-partnr IS INITIAL.
  92.       pc_fl_gp_exi = 'X'.
  93.     ENDIF.
  94.  
  95. * Übergabe des Auftraggebers an f_hau
  96.     IF pc_pa_r-rollid = '01'.
  97.       IF NOT pc_hau_k-hauid IS INITIAL.
  98.         pc_hau_k-partnr = pc_pd-partnr.
  99.         pc_hau_k-kunnr  = pc_pd-kunnr.
  100.       ENDIF.
  101. * Auslesen der abweichenden Partnerrollen des Auftraggebers
  102. * Diese werden angezeigt
  103.       CLEAR pc_t_knvp2.
  104.       DATA: ls_knvp LIKE LINE OF pc_t_knvp2.
  105.  
  106.  
  107.       SELECT * FROM knvp INTO ls_knvp
  108.                WHERE kunnr = pc_pd-kunnr
  109.                AND vkorg   = pc_hau_k-vkorg
  110.                AND vtweg   = pc_hau_k-vtweg
  111.                AND spart   = pc_hau_k-spart.
  112.         IF ls_knvp-kunn2 NE pc_pd-kunnr.
  113.           APPEND ls_knvp TO pc_t_knvp2.
  114.           pc_double_x = 'X'.
  115.         ENDIF.
  116.       ENDSELECT.
  117.     ENDIF.
  118.   ENDMETHOD.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement