Created
February 20, 2019 20:37
-
-
Save antelio/e0d5e96289fe8e68dd67f1e58dd09703 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*&---------------------------------------------------------------------* | |
*& Include ZINCL_CUSTOMER | |
*&---------------------------------------------------------------------* | |
TYPES: BEGIN OF taddr, | |
addrn TYPE adrct-addrnumber, | |
END OF taddr. | |
DATA: wa_addr TYPE taddr, | |
wa_kna1 TYPE kna1. | |
DATA: tb_addr TYPE TABLE OF taddr, | |
tb_kna1 TYPE TABLE OF kna1. | |
*&---------------------------------------------------------------------* | |
*& Form loop_addr | |
*&---------------------------------------------------------------------* | |
FORM loop_addr. | |
APPEND wa_addr TO tb_addr. | |
ENDFORM. "loop_addr | |
*&---------------------------------------------------------------------* | |
*& Form loop_kna1 | |
*&---------------------------------------------------------------------* | |
* text | |
*----------------------------------------------------------------------* | |
FORM loop_kna1. | |
APPEND wa_kna1 TO tb_kna1. | |
ENDFORM. "loop_addr | |
*&---------------------------------------------------------------------* | |
*& Form CREATE_CUSTOMER | |
*&---------------------------------------------------------------------* | |
FORM create_customer TABLES tb_knbk STRUCTURE fknbk | |
tb_knvi STRUCTURE fknvi | |
tb_knvp STRUCTURE fknvp | |
tb_bapiadsmtp STRUCTURE bapiadsmtp | |
tb_bapiadsmt_x STRUCTURE bapiadsmtx | |
tb_bapiaduri STRUCTURE bapiaduri | |
tb_bapiaduri_x STRUCTURE bapiadurix | |
tb_bapicomrem STRUCTURE bapicomrem | |
tb_bapicomre_x STRUCTURE bapicomrex | |
tb_bapiadtel STRUCTURE bapiadtel | |
tb_bapiadtel_x STRUCTURE bapiadtelx | |
messages STRUCTURE bapiret2 | |
USING p_kna1 TYPE kna1 | |
p_knb1 TYPE knb1 | |
p_knvv TYPE knvv | |
p_addr TYPE bapiaddr1 | |
CHANGING p_customer_id TYPE kunnr | |
p_fail. | |
DATA: v_kunnr TYPE kunnr, | |
v_subrc(2) TYPE n, "sy-subrc, | |
v_obj_id TYPE bapi4001_1-objkey, | |
v_obj_type TYPE bapi4001_1-objtype, | |
wa_kna1 TYPE kna1. | |
DATA: v_zterm TYPE knb1-zterm, "PRB10312 - 19/04/2013 | |
v_zwels TYPE knb1-zwels, "PRB10312 - 19/04/2013 | |
v_message TYPE text200, "PRB10312 - 19/04/2013 | |
v_extid TYPE text100, "PRB10312 - 19/04/2013 | |
v_cli TYPE kunnr. "PRB10312 - 19/04/2013 | |
DATA: t_adrct TYPE TABLE OF adrct. | |
FIELD-SYMBOLS: <fs_adrct> TYPE adrct. | |
CLEAR p_customer_id. | |
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL' | |
EXPORTING | |
i_kna1 = p_kna1 | |
i_knb1 = p_knb1 | |
i_knvv = p_knvv | |
i_bapiaddr1 = p_addr | |
pi_postflag = 'X' | |
IMPORTING | |
e_kunnr = p_customer_id | |
o_kna1 = wa_kna1 | |
TABLES | |
t_xknbk = tb_knbk | |
t_xknvp = tb_knvp | |
t_xknvi = tb_knvi | |
EXCEPTIONS | |
client_error = 1 | |
kna1_incomplete = 2 | |
knb1_incomplete = 3 | |
knb5_incomplete = 4 | |
knvv_incomplete = 5 | |
kunnr_not_unique = 6 | |
sales_area_not_unique = 7 | |
sales_area_not_valid = 8 | |
insert_update_conflict = 9 | |
number_assignment_error = 10 | |
number_not_in_range = 11 | |
number_range_not_extern = 12 | |
number_range_not_intern = 13 | |
account_group_not_valid = 14 | |
parnr_invalid = 15 | |
bank_address_invalid = 16 | |
tax_data_not_valid = 17 | |
no_authority = 18 | |
company_code_not_unique = 19 | |
dunning_data_not_valid = 20 | |
knb1_reference_invalid = 21 | |
cam_error = 22 | |
OTHERS = 23. | |
IF sy-subrc EQ 0. | |
* PRB10312 - 19/04/2013 - Início | |
FREE cl_log. | |
CLEAR: v_zterm, v_zwels. | |
IF p_customer_id IS INITIAL. | |
v_cli = p_kna1-kunnr. | |
ELSE. | |
v_cli = p_customer_id. | |
ENDIF. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = v_cli. | |
v_extid = v_cli. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - create_customer) Depois da criação do cliente - KNB1-ZTERM = ' v_zterm | |
'(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - create_customer) Depois da criação do cliente - KNB1-ZWELS = ' v_zwels | |
'(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
CLEAR v_obj_id. | |
v_kunnr = p_customer_id. | |
IF v_kunnr IS INITIAL. | |
v_kunnr = p_kna1-kunnr. | |
ENDIF. | |
UNPACK v_kunnr TO v_kunnr. | |
v_obj_id = v_kunnr. | |
WRITE 'KNA1' TO v_obj_type. | |
CALL FUNCTION 'BAPI_ADDRESSORG_CHANGE' | |
EXPORTING | |
obj_type = v_obj_type | |
obj_id = v_obj_id | |
context = 1 | |
TABLES | |
bapiadtel = tb_bapiadtel | |
bapiadsmtp = tb_bapiadsmtp | |
bapiaduri = tb_bapiaduri | |
bapiadtel_x = tb_bapiadtel_x | |
bapiadsmt_x = tb_bapiadsmt_x | |
bapiaduri_x = tb_bapiaduri_x | |
return = messages. | |
** Inicio Alt. AVSA | |
READ TABLE messages WITH KEY type = c_e. | |
IF sy-subrc EQ 0. | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
CLEAR p_customer_id. | |
p_fail = c_x. | |
ELSE. | |
PERFORM bapi_commit. | |
SELECT * | |
FROM adrct | |
INTO TABLE t_adrct | |
WHERE addrnumber = wa_kna1-adrnr. | |
LOOP AT t_adrct ASSIGNING <fs_adrct>. | |
IF sy-langu NE 'E'. | |
<fs_adrct>-langu = 'E'. | |
ENDIF. | |
IF sy-langu NE 'P'. | |
<fs_adrct>-langu = 'P'. | |
ENDIF. | |
ENDLOOP. | |
IF NOT t_adrct IS INITIAL. | |
MODIFY adrct FROM TABLE t_adrct. | |
COMMIT WORK AND WAIT. | |
ENDIF. | |
ENDIF. | |
* IF sy-subrc EQ 0. | |
* PERFORM bapi_commit. | |
* ELSE. | |
* PERFORM bapi_rollback. | |
* PERFORM log_message | |
* TABLES messages | |
* USING sy-subrc. | |
* | |
* CLEAR p_customer_id. | |
* p_fail = c_x. | |
* ENDIF. | |
** Fim Alt. AVSA | |
ELSE. | |
* PRB10312 - 19/04/2013 - Início | |
v_subrc = sy-subrc. | |
CLEAR: v_zterm, v_zwels. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = p_customer_id. | |
v_extid = p_kna1-kunnr. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - create_customer) Erro na criação do cliente - KNB1-ZTERM = ' v_zterm | |
'- SY-SUBRC = ' v_subrc '(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - create_customer) Erro na criação do cliente - KNB1-ZWELS = ' v_zwels | |
'- SY-SUBRC = ' v_subrc '(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
CLEAR p_customer_id. | |
p_fail = c_x. | |
ENDIF. | |
ENDFORM. " CREATE_CUSTOMER | |
*&---------------------------------------------------------------------* | |
*& Form change_manager | |
*&---------------------------------------------------------------------* | |
FORM change_manager TABLES tb_knvp STRUCTURE fknvp | |
tb_knvp_aux STRUCTURE fknvp | |
messages STRUCTURE bapiret2 | |
USING p_kna1 TYPE kna1 | |
p_manager | |
p_new. | |
DATA: v_zterm TYPE knb1-zterm, "PRB10312 - 19/04/2013 | |
v_zwels TYPE knb1-zwels, "PRB10312 - 19/04/2013 | |
v_message TYPE text200, "PRB10312 - 19/04/2013 | |
v_extid TYPE text100. "PRB10312 - 19/04/2013 | |
FIELD-SYMBOLS: <knvp> TYPE fknvp. | |
IF p_new IS INITIAL. | |
* LOOP AT tb_knvp ASSIGNING <knvp> WHERE pernr IS NOT INITIAL. | |
LOOP AT tb_knvp_aux ASSIGNING <knvp> WHERE pernr IS NOT INITIAL. | |
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL' | |
EXPORTING | |
i_kna1 = p_kna1 | |
pi_postflag = 'X' | |
TABLES | |
* t_yknvp = tb_knvp | |
t_yknvp = tb_knvp_aux | |
EXCEPTIONS | |
client_error = 1 | |
kna1_incomplete = 2 | |
knb1_incomplete = 3 | |
knb5_incomplete = 4 | |
knvv_incomplete = 5 | |
kunnr_not_unique = 6 | |
sales_area_not_unique = 7 | |
sales_area_not_valid = 8 | |
insert_update_conflict = 9 | |
number_assignment_error = 10 | |
number_not_in_range = 11 | |
number_range_not_extern = 12 | |
number_range_not_intern = 13 | |
account_group_not_valid = 14 | |
parnr_invalid = 15 | |
bank_address_invalid = 16 | |
tax_data_not_valid = 17 | |
no_authority = 18 | |
company_code_not_unique = 19 | |
dunning_data_not_valid = 20 | |
knb1_reference_invalid = 21 | |
cam_error = 22 | |
OTHERS = 23. | |
IF sy-subrc EQ 0. | |
PERFORM bapi_commit. | |
* PRB10312 - 19/04/2013 - Início | |
CLEAR: v_zterm, v_zwels. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm,v_zwels) | |
WHERE kunnr = p_kna1-kunnr. | |
v_extid = p_kna1-kunnr. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_NEW vazio - Depois da alteração - KNB1-ZTERM = ' v_zterm | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_NEW vazio - Depois da alteração - KNB1-ZWELS = ' v_zwels | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
ELSE. | |
* PRB10312 - 19/04/2013 - Início | |
CLEAR: v_zterm, v_zwels. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = p_kna1-kunnr. | |
v_extid = p_kna1-kunnr. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_NEW vazio - Erro na atualização do cliente - KNB1-ZTERM = ' v_zterm | |
INTO v_message | |
SEPARATED BY space. | |
PERFORM log USING v_extid v_message 'E'. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_NEW vazio - Erro na atualização do cliente - KNB1-ZWELS = ' v_zwels | |
INTO v_message | |
SEPARATED BY space. | |
PERFORM log USING v_extid v_message 'E'. | |
* PRB10312 - 19/04/2013 - Fim | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
ENDIF. | |
ENDLOOP. | |
ENDIF. | |
IF p_manager IS NOT INITIAL. | |
LOOP AT tb_knvp ASSIGNING <knvp>. | |
<knvp>-pernr = p_manager. | |
<knvp>-kz = 'I'. | |
ENDLOOP. | |
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL' | |
EXPORTING | |
i_kna1 = p_kna1 | |
pi_postflag = 'X' | |
TABLES | |
t_xknvp = tb_knvp | |
EXCEPTIONS | |
client_error = 1 | |
kna1_incomplete = 2 | |
knb1_incomplete = 3 | |
knb5_incomplete = 4 | |
knvv_incomplete = 5 | |
kunnr_not_unique = 6 | |
sales_area_not_unique = 7 | |
sales_area_not_valid = 8 | |
insert_update_conflict = 9 | |
number_assignment_error = 10 | |
number_not_in_range = 11 | |
number_range_not_extern = 12 | |
number_range_not_intern = 13 | |
account_group_not_valid = 14 | |
parnr_invalid = 15 | |
bank_address_invalid = 16 | |
tax_data_not_valid = 17 | |
no_authority = 18 | |
company_code_not_unique = 19 | |
dunning_data_not_valid = 20 | |
knb1_reference_invalid = 21 | |
cam_error = 22 | |
OTHERS = 23. | |
IF sy-subrc EQ 0. | |
PERFORM bapi_commit. | |
* PRB10312 - 19/04/2013 - Início | |
CLEAR: v_zterm, v_zwels. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = p_kna1-kunnr. | |
v_extid = p_kna1-kunnr. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_MANAGER preenchido - Depois da alteração - KNB1-ZTERM = ' v_zterm | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_MANAGER preenchido - Depois da alteração - KNB1-ZWELS = ' v_zwels | |
INTO v_message | |
SEPARATED BY space. | |
IF v_zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
ELSE. | |
* PRB10312 - 19/04/2013 - Início | |
CLEAR: v_zterm, v_zwels. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = p_kna1-kunnr. | |
v_extid = p_kna1-kunnr. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_MANAGER preenchido - Erro na atualização do cliente - KNB1-ZTERM = ' v_zterm | |
INTO v_message | |
SEPARATED BY space. | |
PERFORM log USING v_extid v_message 'E'. | |
CONCATENATE '(ZLWS2_CHANGE_CUSTOMER - change_manager) P_MANAGER preenchido - Erro na atualização do cliente - KNB1-ZWELS = ' v_zwels | |
INTO v_message | |
SEPARATED BY space. | |
PERFORM log USING v_extid v_message 'E'. | |
* PRB10312 - 19/04/2013 - Fim | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
ENDIF. | |
ENDIF. | |
ENDFORM. "change_manager | |
*&---------------------------------------------------------------------* | |
*& Form put_billing_info | |
*&---------------------------------------------------------------------* | |
FORM put_billing_info TABLES tb_knbk STRUCTURE fknbk | |
tb_knvi STRUCTURE fknvi | |
tb_yknbk STRUCTURE fknbk | |
tb_bapiadsmtp STRUCTURE bapiadsmtp | |
tb_bapiadsmt_x STRUCTURE bapiadsmtx | |
tb_bapiaduri STRUCTURE bapiaduri | |
tb_bapiaduri_x STRUCTURE bapiadurix | |
tb_bapiadtel STRUCTURE bapiadtel | |
tb_bapiadtel_x STRUCTURE bapiadtelx | |
messages STRUCTURE bapiret2 | |
USING p_kna1 TYPE kna1 | |
p_knb1 TYPE knb1 | |
p_knvv TYPE knvv | |
p_addr TYPE bapiaddr1 | |
CHANGING p_fail. | |
DATA: v_kunnr TYPE kunnr, | |
v_subrc TYPE sy-subrc, | |
v_obj_id TYPE bapi4001_1-objkey, | |
v_obj_type TYPE bapi4001_1-objtype, | |
* PRB10312 - 19/04/2013 - Início | |
v_message TYPE text200, | |
v_extid TYPE text100, | |
v_zterm TYPE knb1-zterm, | |
v_zwels TYPE knb1-zwels, "PRB10312 - 19/04/2013 | |
lv_subrc(2) TYPE n. | |
v_extid = p_kna1-kunnr. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info) Antes alteração cliente - KNB1-ZTERM =' | |
p_knb1-zterm | |
'(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF p_knb1-zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info) Antes alteração cliente - KNB1-ZWELS =' | |
p_knb1-zwels | |
'(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF p_knb1-zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info) Antes alteração cliente - KNVV-ZTERM =' | |
p_knvv-zterm | |
'(' p_knvv-vkorg ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF p_knvv-zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL' | |
EXPORTING | |
i_kna1 = p_kna1 | |
i_knb1 = p_knb1 | |
i_knvv = p_knvv | |
i_bapiaddr1 = p_addr | |
pi_postflag = 'X' | |
TABLES | |
t_xknbk = tb_knbk | |
t_yknbk = tb_yknbk | |
t_xknvi = tb_knvi | |
EXCEPTIONS | |
client_error = 1 | |
kna1_incomplete = 2 | |
knb1_incomplete = 3 | |
knb5_incomplete = 4 | |
knvv_incomplete = 5 | |
kunnr_not_unique = 6 | |
sales_area_not_unique = 7 | |
sales_area_not_valid = 8 | |
insert_update_conflict = 9 | |
number_assignment_error = 10 | |
number_not_in_range = 11 | |
number_range_not_extern = 12 | |
number_range_not_intern = 13 | |
account_group_not_valid = 14 | |
parnr_invalid = 15 | |
bank_address_invalid = 16 | |
tax_data_not_valid = 17 | |
no_authority = 18 | |
company_code_not_unique = 19 | |
dunning_data_not_valid = 20 | |
knb1_reference_invalid = 21 | |
cam_error = 22 | |
OTHERS = 23. | |
IF sy-subrc EQ 0. | |
* PRB10312 - 19/04/2013 - Início | |
v_extid = p_kna1-kunnr. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = p_kna1-kunnr | |
AND bukrs = p_knb1-bukrs. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info) Depois da alteração do cliente - KNB1-ZTERM =' | |
v_zterm | |
'(' p_knb1-bukrs ')' | |
INTO v_message SEPARATED BY space. | |
IF v_zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info) Depois da alteração do cliente - KNB1-ZWELS =' | |
v_zwels | |
'(' p_knb1-bukrs ')' | |
INTO v_message SEPARATED BY space. | |
IF v_zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
CLEAR v_obj_id. | |
v_kunnr = p_kna1-kunnr. | |
UNPACK v_kunnr TO v_kunnr. | |
v_obj_id = v_kunnr. | |
WRITE 'KNA1' TO v_obj_type. | |
CALL FUNCTION 'BAPI_ADDRESSORG_CHANGE' | |
EXPORTING | |
obj_type = v_obj_type | |
obj_id = v_obj_id | |
context = 1 | |
TABLES | |
bapiadtel = tb_bapiadtel | |
bapiadsmtp = tb_bapiadsmtp | |
bapiaduri = tb_bapiaduri | |
bapiadtel_x = tb_bapiadtel_x | |
bapiadsmt_x = tb_bapiadsmt_x | |
bapiaduri_x = tb_bapiaduri_x | |
return = messages. | |
IF sy-subrc EQ 0. | |
PERFORM bapi_commit. | |
ELSE. | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
* PRB10686 - 22/05/2013 - Início | |
lv_subrc = sy-subrc. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info) Erro na alteração de BAPI_ADDRESSORG_CHANGE - SY-SUBRC =' | |
lv_subrc | |
INTO v_message SEPARATED BY space. | |
v_extid = p_kna1-kunnr. | |
PERFORM log USING v_extid v_message 'E'. | |
* PRB10686 - 22/05/2013 - Fim | |
p_fail = c_x. | |
ENDIF. | |
ELSE. | |
* PRB10312 - 19/04/2013 - Início | |
lv_subrc = sy-subrc. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info) Erro na alteração do cliente - SY-SUBRC =' | |
lv_subrc | |
INTO v_message SEPARATED BY space. | |
v_extid = p_kna1-kunnr. | |
PERFORM log USING v_extid v_message 'E'. | |
* PRB10312 - 19/04/2013 - Fim | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
p_fail = c_x. | |
ENDIF. | |
ENDFORM. "put_billing_info | |
*&---------------------------------------------------------------------* | |
*& Form get_kna1_addr | |
*&---------------------------------------------------------------------* | |
FORM get_kna1_addr TABLES p_results TYPE STANDARD TABLE | |
USING p_addr. | |
REFRESH p_results. | |
SELECT kunnr stcd1 stcd2 erdat name1 name2 | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF TABLE p_results | |
WHERE adrnr EQ p_addr | |
AND ktokd NOT IN ('CLSI','Z006'). | |
ENDFORM. "get_kna1_addr | |
*&---------------------------------------------------------------------* | |
*& Form get_login | |
*&---------------------------------------------------------------------* | |
FORM get_login USING p_addr CHANGING p_login. | |
CLEAR p_login. | |
SELECT SINGLE remark | |
FROM adrct | |
INTO p_login | |
WHERE addrnumber EQ p_addr. | |
ENDFORM. "get_login | |
*&---------------------------------------------------------------------* | |
*& Form get_email | |
*&---------------------------------------------------------------------* | |
FORM get_email USING p_addr CHANGING p_email. | |
CLEAR p_email. | |
SELECT SINGLE smtp_addr | |
FROM adr6 | |
INTO p_email | |
WHERE addrnumber EQ p_addr | |
AND dft_receiv EQ 'X'. | |
ENDFORM. "get_email | |
*&---------------------------------------------------------------------* | |
*& Form get_manager | |
*&---------------------------------------------------------------------* | |
FORM get_manager USING p_kunnr CHANGING p_manager. | |
CLEAR p_manager. | |
SELECT SINGLE pernr | |
FROM knvp | |
INTO p_manager | |
WHERE kunnr EQ p_kunnr | |
AND vkorg EQ '0100' | |
AND vtweg EQ '10' | |
AND spart EQ '10' | |
AND parvw EQ 'ZC'. | |
ENDFORM. "get_manager | |
*&---------------------------------------------------------------------* | |
*& Form append_customer | |
*&---------------------------------------------------------------------* | |
FORM append_customer TABLES p_customers STRUCTURE zstlw_read_customer | |
USING p_data TYPE read_cust. | |
DATA: wa_cust TYPE zstlw_read_customer. | |
CLEAR wa_cust. | |
wa_cust-id = p_data-kunnr. | |
wa_cust-login = p_data-remark. | |
wa_cust-email = p_data-smtp_addr. | |
wa_cust-cpf = p_data-stcd2. | |
wa_cust-cnpj = p_data-stcd1. | |
wa_cust-manager_id = p_data-pernr. | |
wa_cust-created_at = p_data-erdat. | |
CONCATENATE p_data-name1 p_data-name2 INTO wa_cust-name. | |
APPEND wa_cust TO p_customers. | |
ENDFORM. "append_customer | |
*&---------------------------------------------------------------------* | |
*& Form search_by_login | |
*&---------------------------------------------------------------------* | |
FORM search_by_login TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_login. | |
DATA: wa_login TYPE adrct-remark. | |
DATA: t_results TYPE TABLE OF read_cust WITH HEADER LINE. | |
REFRESH: t_results, tb_addr. | |
"Busca endereço | |
CLEAR wa_login. | |
wa_login = p_login. | |
TRANSLATE wa_login TO UPPER CASE. | |
EXEC SQL PERFORMING loop_addr. | |
SELECT DISTINCT addrnumber | |
INTO :wa_addr | |
FROM adrct | |
WHERE upper(remark) = :wa_login | |
AND client = :sy-mandt | |
ENDEXEC. | |
IF tb_addr[] IS NOT INITIAL. | |
LOOP AT tb_addr INTO wa_addr. | |
PERFORM get_kna1_addr | |
TABLES t_results | |
USING wa_addr. | |
LOOP AT t_results. | |
t_results-remark = p_login. | |
PERFORM get_email USING wa_addr CHANGING t_results-smtp_addr. | |
PERFORM get_manager USING t_results-kunnr CHANGING t_results-pernr. | |
PERFORM append_customer TABLES t_customers USING t_results. | |
ENDLOOP. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_login | |
*&---------------------------------------------------------------------* | |
*& Form search_by_email | |
*&---------------------------------------------------------------------* | |
FORM search_by_email TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_email. | |
DATA: wa_email TYPE adr6-smtp_addr. | |
DATA: t_results TYPE TABLE OF read_cust WITH HEADER LINE. | |
REFRESH: t_results, tb_addr. | |
"Busca endereço | |
CLEAR: wa_email. | |
wa_email = p_email. | |
TRANSLATE wa_email TO UPPER CASE. | |
EXEC SQL PERFORMING loop_addr. | |
SELECT addrnumber | |
INTO :wa_addr | |
FROM adr6 | |
WHERE upper(smtp_addr) = :wa_email | |
AND client = :sy-mandt | |
*** Inicio Alt. AA - Buscar emails ativos - Story 41150393 | |
* AND dft_receiv = :'X' | |
AND flg_nouse = :'X' | |
*** Fim Alt. AA - Buscar emails ativos - Story 41150393 | |
ENDEXEC. | |
IF tb_addr[] IS NOT INITIAL. | |
LOOP AT tb_addr INTO wa_addr. | |
PERFORM get_kna1_addr | |
TABLES t_results | |
USING wa_addr. | |
LOOP AT t_results. | |
t_results-smtp_addr = p_email. | |
PERFORM get_login USING wa_addr CHANGING t_results-remark. | |
PERFORM get_manager USING t_results-kunnr CHANGING t_results-pernr. | |
PERFORM append_customer TABLES t_customers USING t_results. | |
ENDLOOP. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_email | |
*&---------------------------------------------------------------------* | |
*& Form search_by_prov_id | |
*&---------------------------------------------------------------------* | |
FORM search_by_prov_id TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_provid. | |
DATA: wa_custid TYPE kunnr, | |
wa_result TYPE read_cust. | |
CLEAR: wa_custid, wa_result. | |
IF ycsv_feature_toggle=>is_enable( 'create_provisioning_table' ) EQ ych_boolean=>false. | |
SELECT SINGLE k~kunnr | |
FROM vbap AS p | |
INNER JOIN vbak AS k | |
ON p~mandt = k~mandt | |
AND p~vbeln = k~vbeln | |
INTO wa_custid | |
WHERE p~zzprovisioning EQ p_provid. | |
ELSE. | |
SELECT SINGLE k~kunnr | |
FROM ztb_provisioning AS p | |
INNER JOIN vbak AS k | |
ON p~mandt EQ k~mandt | |
AND p~contract_id EQ k~vbeln | |
INTO wa_custid | |
WHERE p~id EQ p_provid. | |
ENDIF. | |
IF wa_custid IS NOT INITIAL. | |
SELECT SINGLE kunnr stcd1 stcd2 erdat name1 name2 adrnr | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF wa_result | |
WHERE kunnr EQ wa_custid | |
AND ktokd NOT IN ('CLSI','Z006'). | |
PERFORM get_login USING wa_result-adrnr CHANGING wa_result-remark. | |
PERFORM get_email USING wa_result-adrnr CHANGING wa_result-smtp_addr. | |
PERFORM get_manager USING wa_custid CHANGING wa_result-pernr. | |
PERFORM append_customer TABLES t_customers USING wa_result. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_prov_id | |
*&---------------------------------------------------------------------* | |
*& Form search_by_cpf | |
*&---------------------------------------------------------------------* | |
FORM search_by_cpf TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_cpf. | |
DATA: tb_results TYPE TABLE OF read_cust WITH HEADER LINE. | |
REFRESH tb_results. | |
SELECT kunnr stcd1 stcd2 erdat name1 name2 adrnr | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF TABLE tb_results | |
WHERE stcd2 EQ p_cpf | |
AND ktokd NOT IN ('CLSI','Z006'). | |
IF tb_results[] IS NOT INITIAL. | |
LOOP AT tb_results. | |
PERFORM get_login USING tb_results-adrnr CHANGING tb_results-remark. | |
PERFORM get_email USING tb_results-adrnr CHANGING tb_results-smtp_addr. | |
PERFORM get_manager USING tb_results-kunnr CHANGING tb_results-pernr. | |
PERFORM append_customer TABLES t_customers USING tb_results. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_cpf | |
*&---------------------------------------------------------------------* | |
*& Form search_by_cnpj | |
*&---------------------------------------------------------------------* | |
FORM search_by_cnpj TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_cnpj. | |
DATA: tb_results TYPE TABLE OF read_cust WITH HEADER LINE. | |
REFRESH tb_results. | |
SELECT kunnr stcd1 stcd2 erdat name1 name2 adrnr | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF TABLE tb_results | |
WHERE stcd1 EQ p_cnpj | |
AND ktokd NOT IN ('CLSI','Z006'). | |
IF tb_results[] IS NOT INITIAL. | |
LOOP AT tb_results. | |
PERFORM get_login USING tb_results-adrnr CHANGING tb_results-remark. | |
PERFORM get_email USING tb_results-adrnr CHANGING tb_results-smtp_addr. | |
PERFORM get_manager USING tb_results-kunnr CHANGING tb_results-pernr. | |
PERFORM append_customer TABLES t_customers USING tb_results. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_cnpj | |
*&---------------------------------------------------------------------* | |
*& Form search_by_name | |
*&---------------------------------------------------------------------* | |
FORM search_by_name TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_name. | |
DATA: wa_name(70) TYPE c, | |
wa_result TYPE read_cust. | |
REFRESH: tb_kna1, t_customers. | |
CLEAR: wa_name. | |
CONCATENATE '%' p_name '%' INTO wa_name. | |
TRANSLATE wa_name TO UPPER CASE. | |
EXEC SQL PERFORMING loop_kna1. | |
SELECT * | |
INTO :wa_kna1 | |
FROM kna1 | |
WHERE concat(upper(name1),upper(name2)) like :wa_name | |
AND ktokd not in ('CLSI','Z006') | |
AND mandt = :sy-mandt | |
ENDEXEC. | |
IF tb_kna1[] IS NOT INITIAL. | |
LOOP AT tb_kna1 INTO wa_kna1. | |
CLEAR wa_result. | |
MOVE-CORRESPONDING wa_kna1 TO wa_result. | |
PERFORM get_login USING wa_kna1-adrnr CHANGING wa_result-remark. | |
PERFORM get_email USING wa_kna1-adrnr CHANGING wa_result-smtp_addr. | |
PERFORM get_manager USING wa_kna1-kunnr CHANGING wa_result-pernr. | |
PERFORM append_customer TABLES t_customers USING wa_result. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_name | |
*&---------------------------------------------------------------------* | |
*& Form search_by_manager | |
*&---------------------------------------------------------------------* | |
FORM search_by_manager TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_manager. | |
DATA: tb_knvp TYPE TABLE OF knvp WITH HEADER LINE, | |
wa_result TYPE read_cust. | |
REFRESH: t_customers, tb_knvp. | |
SELECT * | |
FROM knvp | |
INTO TABLE tb_knvp | |
WHERE pernr EQ p_manager | |
AND vkorg EQ '0100' | |
AND vtweg EQ '10' | |
AND spart EQ '10' | |
AND parvw EQ 'ZC'. | |
IF tb_knvp[] IS NOT INITIAL. | |
LOOP AT tb_knvp. | |
CLEAR: wa_result. | |
SELECT SINGLE kunnr stcd1 stcd2 erdat name1 name2 adrnr | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF wa_result | |
WHERE kunnr EQ tb_knvp-kunnr | |
AND ktokd NOT IN ('CLSI','Z006'). | |
wa_result-pernr = p_manager. | |
PERFORM get_login USING wa_result-adrnr CHANGING wa_result-remark. | |
PERFORM get_email USING wa_result-adrnr CHANGING wa_result-smtp_addr. | |
PERFORM append_customer TABLES t_customers USING wa_result. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_manager | |
*&---------------------------------------------------------------------* | |
*& Form search_by_serv_key | |
*&---------------------------------------------------------------------* | |
FORM search_by_serv_key TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_servkey. | |
DATA: tb_vbap TYPE TABLE OF vbap, | |
tb_vbak TYPE TABLE OF vbak WITH HEADER LINE. | |
DATA wa_result TYPE read_cust. | |
REFRESH: t_customers, tb_vbap, tb_vbap. | |
SELECT DISTINCT vbeln | |
FROM vbap | |
INTO CORRESPONDING FIELDS OF TABLE tb_vbap | |
WHERE matnr EQ p_servkey. | |
SELECT DISTINCT kunnr | |
FROM vbak | |
INTO CORRESPONDING FIELDS OF TABLE tb_vbak | |
FOR ALL ENTRIES IN tb_vbap | |
WHERE vbeln EQ tb_vbap-vbeln. | |
IF tb_vbak[] IS NOT INITIAL. | |
LOOP AT tb_vbak. | |
CLEAR: wa_result. | |
SELECT SINGLE kunnr stcd1 stcd2 erdat name1 name2 adrnr | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF wa_result | |
WHERE kunnr EQ tb_vbak-kunnr | |
AND ktokd NOT IN ('CLSI','Z006'). | |
PERFORM get_login USING wa_result-adrnr CHANGING wa_result-remark. | |
PERFORM get_email USING wa_result-adrnr CHANGING wa_result-smtp_addr. | |
PERFORM get_manager USING wa_result-kunnr CHANGING wa_result-pernr. | |
PERFORM append_customer TABLES t_customers USING wa_result. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_serv_key | |
*&---------------------------------------------------------------------* | |
*& Form search_by_created_at | |
*&---------------------------------------------------------------------* | |
FORM search_by_created_at TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_datfrom p_datto. | |
DATA: tb_results TYPE TABLE OF read_cust WITH HEADER LINE. | |
DATA: r_erdat TYPE RANGE OF kna1-erdat, | |
i_erdat LIKE LINE OF r_erdat. | |
REFRESH: t_customers, tb_results, r_erdat. | |
CLEAR i_erdat. | |
IF p_datfrom IS NOT INITIAL AND p_datto IS NOT INITIAL. | |
i_erdat-sign = 'I'. | |
i_erdat-option = 'BT'. | |
i_erdat-low = p_datfrom. | |
i_erdat-high = p_datto. | |
APPEND i_erdat TO r_erdat. | |
ELSEIF p_datfrom IS NOT INITIAL. | |
i_erdat-sign = 'I'. | |
i_erdat-option = 'GE'. | |
i_erdat-low = p_datfrom. | |
APPEND i_erdat TO r_erdat. | |
ELSEIF p_datto IS NOT INITIAL. | |
i_erdat-sign = 'I'. | |
i_erdat-option = 'LE'. | |
i_erdat-low = p_datto. | |
APPEND i_erdat TO r_erdat. | |
ENDIF. | |
SELECT kunnr stcd1 stcd2 erdat name1 name2 adrnr | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF TABLE tb_results | |
WHERE erdat IN r_erdat | |
AND ktokd NOT IN ('CLSI','Z006'). | |
IF tb_results[] IS NOT INITIAL. | |
LOOP AT tb_results. | |
PERFORM get_login USING tb_results-adrnr CHANGING tb_results-remark. | |
PERFORM get_email USING tb_results-adrnr CHANGING tb_results-smtp_addr. | |
PERFORM get_manager USING tb_results-kunnr CHANGING tb_results-pernr. | |
PERFORM append_customer TABLES t_customers USING tb_results. | |
ENDLOOP. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_created_at | |
*&---------------------------------------------------------------------* | |
*& Form search_by_contract | |
*&---------------------------------------------------------------------* | |
FORM search_by_contract TABLES t_customers STRUCTURE zstlw_read_customer | |
t_messages STRUCTURE bapiret2 | |
USING p_contract. | |
DATA: wa_result TYPE read_cust, | |
wa_kunnr TYPE kunnr. | |
REFRESH: t_customers. | |
CLEAR wa_kunnr. | |
SELECT SINGLE kunnr | |
FROM vbak | |
INTO wa_kunnr | |
WHERE vbeln EQ p_contract. | |
IF wa_kunnr IS NOT INITIAL. | |
CLEAR: wa_result. | |
SELECT SINGLE kunnr stcd1 stcd2 erdat name1 name2 adrnr | |
FROM kna1 | |
INTO CORRESPONDING FIELDS OF wa_result | |
WHERE kunnr EQ wa_kunnr | |
AND ktokd NOT IN ('CLSI','Z006'). | |
PERFORM get_login USING wa_result-adrnr CHANGING wa_result-remark. | |
PERFORM get_email USING wa_result-adrnr CHANGING wa_result-smtp_addr. | |
PERFORM get_manager USING wa_result-kunnr CHANGING wa_result-pernr. | |
PERFORM append_customer TABLES t_customers USING wa_result. | |
ELSE. | |
t_messages-type = 'E'. | |
t_messages-message = text-070. | |
APPEND t_messages. | |
ENDIF. | |
ENDFORM. "search_by_serv_key | |
*&---------------------------------------------------------------------* | |
*& Form get_billing_data | |
*&---------------------------------------------------------------------* | |
FORM get_billing_data TABLES messages STRUCTURE bapiret2 | |
USING p_id | |
CHANGING p_paymethod p_dueday p_paycondition. | |
DATA: v_message TYPE text200, "PRB10312 - 19/04/2013 | |
v_extid TYPE text100. "PRB10312 - 19/04/2013 | |
CLEAR: p_paymethod, p_dueday, p_paycondition. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (p_paycondition, p_paymethod) | |
WHERE kunnr EQ p_id. | |
IF sy-subrc NE 0. | |
* PRB10312 - 19/04/2013 - Início | |
v_message = '(ZLWS2_GET_BILLING_INFO - get_billing_data) Não achou cliente na KNB1'. | |
v_extid = p_id. | |
PERFORM log USING v_extid v_message 'E'. | |
* PRB10312 - 19/04/2013 - Fim | |
messages-type = 'E'. | |
messages-id = 'ZMSG'. | |
messages-number = '029'. | |
messages-message = text-029. | |
APPEND messages. | |
EXIT. | |
* PRB10312 - 19/04/2013 - Início | |
ELSE. | |
v_extid = p_id. | |
CONCATENATE '(ZLWS2_GET_BILLING_INFO - get_billing_data) Leitura do cliente na KNB1 - ZTERM = ' p_paycondition | |
INTO v_message | |
SEPARATED BY space. | |
IF p_paycondition IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_GET_BILLING_INFO - get_billing_data) Leitura do cliente na KNB1 - ZWELS = ' p_paymethod | |
INTO v_message | |
SEPARATED BY space. | |
IF p_paymethod IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
ENDIF. | |
IF p_paymethod EQ space. | |
* CLEAR p_paycondition. "PRB10312 - 19/04/2013 - Comentado | |
messages-type = 'E'. | |
messages-id = 'ZMSG'. | |
messages-number = '045'. | |
messages-message = text-045. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
SELECT SINGLE kvgr1 | |
FROM knvv | |
INTO p_dueday | |
WHERE kunnr EQ p_id. | |
ENDFORM. "get_billing_data | |
*&---------------------------------------------------------------------* | |
*& Form get_boleto | |
*&---------------------------------------------------------------------* | |
FORM get_boleto USING p_id p_bank CHANGING p_boleto TYPE zstlw_boleto. | |
CLEAR: p_boleto. | |
p_boleto-bank = p_bank. | |
SELECT SINGLE katr1 | |
FROM kna1 | |
INTO p_boleto-receive | |
WHERE kunnr EQ p_id. | |
ENDFORM. "get_boleto | |
*&---------------------------------------------------------------------* | |
*& Form get_credit_limit | |
*&---------------------------------------------------------------------* | |
FORM get_credit_limit USING p_id CHANGING p_credit_limit. " TYPE knkk_klimk. | |
CLEAR: p_credit_limit. | |
*** Alt. AVSA - Retornar Saldo do limite de credito do cliente | |
* SELECT SINGLE KLIMK | |
* FROM KNKK | |
* INTO p_credit_limit | |
* WHERE KUNNR = p_id | |
* AND KKBER = '0010'. | |
SELECT SINGLE klime | |
FROM knka | |
INTO p_credit_limit | |
WHERE kunnr = p_id. | |
ENDFORM. "get_credit_limit | |
*&---------------------------------------------------------------------* | |
*& Form get_account_debit | |
*&---------------------------------------------------------------------* | |
FORM get_account_debit TABLES messages STRUCTURE bapiret2 | |
USING p_id | |
CHANGING p_account TYPE zstlw_account_debit. | |
DATA: wa_knbk TYPE knbk. | |
CLEAR: p_account, wa_knbk. | |
SELECT SINGLE * | |
FROM knbk | |
INTO wa_knbk | |
WHERE kunnr EQ p_id. | |
IF sy-subrc EQ 0. | |
p_account-bank = wa_knbk-bankl(3). | |
p_account-agency_number = wa_knbk-bankl+4. | |
IF wa_knbk-bkont(1) NE c_dig_null. "Digito nulo = N | |
p_account-agency_digit = wa_knbk-bkont(1). | |
ENDIF. | |
p_account-account_number = wa_knbk-bankn. | |
IF wa_knbk-bkont+1(1) NE c_dig_null. "Digito nulo = N | |
p_account-account_digit = wa_knbk-bkont+1. | |
ENDIF. | |
p_account-name = wa_knbk-koinh. | |
p_account-document = wa_knbk-bkref. | |
ELSE. | |
messages-type = 'E'. | |
messages-id = 'ZMSG'. | |
messages-number = '122'. | |
messages-message = text-122. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
ENDFORM. "get_account_debit | |
*&---------------------------------------------------------------------* | |
*& Form get_credit_card | |
*&---------------------------------------------------------------------* | |
FORM get_credit_card TABLES messages STRUCTURE bapiret2 | |
USING p_id CHANGING p_creditcard TYPE zstlw_credit_card. | |
DATA: wa_vcnum TYPE vcnum, | |
wa_vckun TYPE vckun, | |
wa_knvp TYPE knvp, | |
vl_tam TYPE i, | |
vl_aux TYPE i, | |
vl_msk TYPE i. | |
CLEAR: wa_vcnum, wa_vckun, wa_knvp, p_creditcard. | |
SELECT SINGLE * | |
FROM knvp | |
INTO wa_knvp | |
WHERE kunnr = p_id | |
AND parvw = 'ZG'. | |
IF sy-subrc NE 0. | |
messages-type = 'E'. | |
messages-id = 'ZMSG'. | |
messages-number = '123'. | |
messages-message = text-123. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
SELECT SINGLE * | |
FROM vckun | |
INTO wa_vckun | |
WHERE kunnr EQ wa_knvp-kunn2. | |
IF sy-subrc NE 0. | |
messages-type = 'E'. | |
messages-id = 'ZMSG'. | |
messages-number = '124'. | |
messages-message = text-124. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
SELECT SINGLE * | |
FROM vcnum | |
INTO wa_vcnum | |
WHERE ccins EQ wa_vckun-ccins | |
AND ccnum EQ wa_vckun-ccnum. | |
* SELECT SINGLE begru | |
* FROM kna1 | |
* INTO p_creditcard-security_code | |
* WHERE kunnr EQ p_id. | |
IF sy-subrc NE 0. | |
messages-type = 'E'. | |
messages-id = 'ZMSG'. | |
messages-number = '124'. | |
messages-message = text-124. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
p_creditcard-type = wa_vckun-ccins. | |
p_creditcard-expiry_date = wa_vcnum-datbi. | |
p_creditcard-name = wa_vcnum-ccname. | |
p_creditcard-security_code = wa_vcnum-ccard_id. | |
vl_tam = STRLEN( wa_vckun-ccnum ). | |
IF vl_tam >= 10. | |
vl_aux = vl_tam - 4. | |
vl_msk = vl_aux - 6. | |
p_creditcard-number = wa_vckun-ccnum(6). | |
DO vl_msk TIMES. | |
CONCATENATE p_creditcard-number '*' INTO p_creditcard-number. | |
ENDDO. | |
CONCATENATE p_creditcard-number wa_vckun-ccnum+vl_aux(4) INTO p_creditcard-number. | |
ENDIF. | |
ENDFORM. "get_credit_card | |
*&---------------------------------------------------------------------* | |
*& Form create_partner | |
*&---------------------------------------------------------------------* | |
FORM create_partner CHANGING v_partner. | |
DATA: l_kna1 TYPE kna1. | |
l_kna1-land1 = 'BR'. | |
l_kna1-ktokd = 'Z003'. | |
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL' | |
EXPORTING | |
i_kna1 = l_kna1 | |
IMPORTING | |
e_kunnr = v_partner | |
EXCEPTIONS | |
client_error = 1 | |
kna1_incomplete = 2 | |
knb1_incomplete = 3 | |
knb5_incomplete = 4 | |
knvv_incomplete = 5 | |
kunnr_not_unique = 6 | |
sales_area_not_unique = 7 | |
sales_area_not_valid = 8 | |
insert_update_conflict = 9 | |
number_assignment_error = 10 | |
number_not_in_range = 11 | |
number_range_not_extern = 12 | |
number_range_not_intern = 13 | |
account_group_not_valid = 14 | |
parnr_invalid = 15 | |
bank_address_invalid = 16 | |
tax_data_not_valid = 17 | |
no_authority = 18 | |
company_code_not_unique = 19 | |
dunning_data_not_valid = 20 | |
knb1_reference_invalid = 21 | |
cam_error = 22 | |
OTHERS = 23. | |
IF sy-subrc <> 0. | |
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno | |
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. | |
ELSE. | |
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' | |
EXPORTING | |
wait = 'X'. | |
ENDIF. | |
ENDFORM. "create_partner | |
*&---------------------------------------------------------------------* | |
*& Form put_billing_info_ccred | |
*&---------------------------------------------------------------------* | |
FORM put_billing_info_ccred TABLES tb_knbk STRUCTURE fknbk | |
tb_knvi STRUCTURE fknvi | |
tb_yknbk STRUCTURE fknbk | |
tb_bapiadsmtp STRUCTURE bapiadsmtp | |
tb_bapiadsmt_x STRUCTURE bapiadsmtx | |
tb_bapiaduri STRUCTURE bapiaduri | |
tb_bapiaduri_x STRUCTURE bapiadurix | |
tb_bapiadtel STRUCTURE bapiadtel | |
tb_bapiadtel_x STRUCTURE bapiadtelx | |
t_yknvp STRUCTURE fknvp | |
messages STRUCTURE bapiret2 | |
USING p_kna1 TYPE kna1 | |
p_knb1 TYPE knb1 | |
p_knvv TYPE knvv | |
p_addr TYPE bapiaddr1 | |
p_partner TYPE kna1-kunnr | |
CHANGING p_fail. | |
DATA: v_kunnr TYPE kunnr, | |
v_subrc(2) TYPE n, | |
v_obj_id TYPE bapi4001_1-objkey, | |
v_obj_type TYPE bapi4001_1-objtype, | |
v_message TYPE text200, "PRB10312 - 19/04/2013 | |
v_extid TYPE text100, "PRB10312 - 19/04/2013 | |
v_zwels TYPE knb1-zwels, "PRB10312 - 19/04/2013 | |
v_zterm TYPE knb1-zterm. "PRB10312 - 19/04/2013 | |
DATA: t_knvp TYPE TABLE OF fknvp, | |
wa_knvp TYPE fknvp. | |
CLEAR: wa_knvp. | |
REFRESH: t_knvp[]. | |
wa_knvp-kunnr = p_kna1-kunnr. | |
wa_knvp-vkorg = p_knvv-vkorg. | |
wa_knvp-vtweg = p_knvv-vtweg. | |
wa_knvp-spart = p_knvv-spart. | |
wa_knvp-kunn2 = p_partner. | |
wa_knvp-parvw = 'ZG'. | |
APPEND wa_knvp TO t_knvp. | |
* PRB10312 - 19/04/2013 - Início | |
v_extid = p_kna1-kunnr. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info_ccred) Antes alteração cliente - KNB1-ZTERM =' | |
p_knb1-zterm | |
'(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF p_knb1-zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info_ccred) Antes alteração cliente - KNB1-ZWELS =' | |
p_knb1-zwels | |
'(' p_knb1-bukrs ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF p_knb1-zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info_ccred) Antes alteração cliente - KNVV-ZTERM =' | |
p_knvv-zterm | |
'(' p_knvv-vkorg ')' | |
INTO v_message | |
SEPARATED BY space. | |
IF p_knvv-zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL' | |
EXPORTING | |
i_kna1 = p_kna1 | |
i_knb1 = p_knb1 | |
i_knvv = p_knvv | |
i_bapiaddr1 = p_addr | |
pi_postflag = 'X' | |
TABLES | |
t_xknbk = tb_knbk | |
t_yknbk = tb_yknbk | |
t_xknvi = tb_knvi | |
t_xknvp = t_knvp | |
* t_yknvp = t_yknvp | |
EXCEPTIONS | |
client_error = 1 | |
kna1_incomplete = 2 | |
knb1_incomplete = 3 | |
knb5_incomplete = 4 | |
knvv_incomplete = 5 | |
kunnr_not_unique = 6 | |
sales_area_not_unique = 7 | |
sales_area_not_valid = 8 | |
insert_update_conflict = 9 | |
number_assignment_error = 10 | |
number_not_in_range = 11 | |
number_range_not_extern = 12 | |
number_range_not_intern = 13 | |
account_group_not_valid = 14 | |
parnr_invalid = 15 | |
bank_address_invalid = 16 | |
tax_data_not_valid = 17 | |
no_authority = 18 | |
company_code_not_unique = 19 | |
dunning_data_not_valid = 20 | |
knb1_reference_invalid = 21 | |
cam_error = 22 | |
OTHERS = 23. | |
IF sy-subrc EQ 0. | |
* PRB10312 - 19/04/2013 - Início | |
v_extid = p_kna1-kunnr. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = p_kna1-kunnr | |
AND bukrs = p_knb1-bukrs. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info_ccred) Depois da alteração do cliente - KNB1-ZTERM =' | |
v_zterm | |
'(' p_knb1-bukrs ')' | |
INTO v_message SEPARATED BY space. | |
IF v_zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info_ccred) Depois da alteração do cliente - KNB1-ZWELS =' | |
v_zwels | |
'(' p_knb1-bukrs ')' | |
INTO v_message SEPARATED BY space. | |
IF v_zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
* PRB10312 - 19/04/2013 - Fim | |
CLEAR v_obj_id. | |
v_kunnr = p_kna1-kunnr. | |
UNPACK v_kunnr TO v_kunnr. | |
v_obj_id = v_kunnr. | |
WRITE 'KNA1' TO v_obj_type. | |
CALL FUNCTION 'BAPI_ADDRESSORG_CHANGE' | |
EXPORTING | |
obj_type = v_obj_type | |
obj_id = v_obj_id | |
context = 1 | |
TABLES | |
bapiadtel = tb_bapiadtel | |
bapiadsmtp = tb_bapiadsmtp | |
bapiaduri = tb_bapiaduri | |
bapiadtel_x = tb_bapiadtel_x | |
bapiadsmt_x = tb_bapiadsmt_x | |
bapiaduri_x = tb_bapiaduri_x | |
return = messages. | |
IF sy-subrc EQ 0. | |
PERFORM bapi_commit. | |
ELSE. | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
* PRB10686 - 22/05/2013 - Início | |
v_subrc = sy-subrc. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info_ccred) Erro na alteração do BAPI_ADDRESSORG_CHANGE - SY-SUBRC =' | |
v_subrc | |
INTO v_message SEPARATED BY space. | |
v_extid = p_kna1-kunnr. | |
PERFORM log USING v_extid v_message 'E'. | |
* PRB10686 - 22/05/2013 - Fim | |
p_fail = c_x. | |
ENDIF. | |
ELSE. | |
* PRB10312 - 19/04/2013 - Início | |
v_subrc = sy-subrc. | |
CONCATENATE '(ZLWS2_PUT_BILLING_INFO - put_billing_info_ccred) Erro na alteração do cliente - SY-SUBRC =' | |
v_subrc | |
INTO v_message SEPARATED BY space. | |
v_extid = p_kna1-kunnr. | |
PERFORM log USING v_extid v_message 'E'. | |
* PRB10312 - 19/04/2013 - Fim | |
PERFORM bapi_rollback. | |
PERFORM log_message | |
TABLES messages | |
USING sy-subrc. | |
p_fail = c_x. | |
ENDIF. | |
ENDFORM. "put_billing_info | |
*&---------------------------------------------------------------------* | |
*& Form create_ccard | |
*&---------------------------------------------------------------------* | |
FORM create_ccard USING vcnum vckun v_partner. | |
DATA: wa_vcnum TYPE vcnum, | |
wa_vckun TYPE vckun. | |
CALL FUNCTION 'SD_CCARD_RESET'. | |
CALL FUNCTION 'SD_CCARD_VCNUM_MAINTAIN' | |
EXPORTING | |
i_vcnum_old = wa_vcnum | |
i_vcnum_new = vcnum. | |
IF sy-subrc = 0. | |
CALL FUNCTION 'SD_CCARD_VCKUN_MAINTAIN' | |
EXPORTING | |
i_vckun_old = wa_vckun | |
i_vckun_new = vckun. | |
IF sy-subrc = 0. | |
CALL FUNCTION 'SD_CCARD_SAVE' | |
EXPORTING | |
kunnr_save = v_partner | |
no_update_task = c_x. | |
ENDIF. | |
ENDIF. | |
ENDFORM. "create_ccard | |
*&---------------------------------------------------------------------* | |
*& Form convert_customer_input | |
*&---------------------------------------------------------------------* | |
FORM convert_customer_input CHANGING cust_id. | |
CALL FUNCTION 'CONVERSION_EXIT_ZSYS2_INPUT' | |
EXPORTING | |
input = cust_id | |
IMPORTING | |
output = cust_id. | |
ENDFORM. "convert_customer_input | |
*&---------------------------------------------------------------------* | |
*& Form convert_customer_output | |
*&---------------------------------------------------------------------* | |
FORM convert_customer_output CHANGING cust_id. | |
CALL FUNCTION 'CONVERSION_EXIT_ZSYS2_OUTPUT' | |
EXPORTING | |
input = cust_id | |
IMPORTING | |
output = cust_id. | |
ENDFORM. "convert_customer_output | |
*&---------------------------------------------------------------------* | |
*& Form f_seleciona_contrato_faturas | |
*&---------------------------------------------------------------------* | |
FORM f_seleciona_contrato_faturas TABLES pt_cobranca STRUCTURE ztbfi_cobranca | |
pt_vbak STRUCTURE vbak | |
pt_vbap STRUCTURE vbap | |
USING p_id "Cliente | |
p_company. "Empresa STORY 37926373 JFB | |
* Seleciona faturas que não estão cobradas(em aberto) | |
FREE: pt_cobranca[]. | |
SELECT * | |
FROM ztbfi_cobranca | |
INTO TABLE pt_cobranca | |
WHERE kunrg EQ p_id " Pagador(Cliente) | |
AND flagcob NE 'X' " Flag de cobrança | |
AND afdat > sy-datum. " Evita alteração de forma de pagamento da fatura muito próximo do vencimento. | |
" Ex: Fatura cartão de crédito que vence amanhã e cliente altera, hoje, para débito automático. | |
" Banco exige 2 dias de antecedência e mais 1 dia para o retorno. | |
" Isso resultaria em um atraso de 3 dias no pagamento, podendo gerar juros e multa. | |
IF sy-subrc IS INITIAL. | |
SORT pt_cobranca BY bukrs vbeln posnr kunrg. | |
ENDIF. "Retorno SELECT ztbfi_cobranca | |
* Seleciona os contratos do cliente | |
FREE: pt_vbak[]. | |
SELECT k~vbeln | |
INTO CORRESPONDING FIELDS OF TABLE pt_vbak | |
FROM vbak AS k INNER JOIN | |
vbap AS p | |
ON k~vbeln EQ p~vbeln | |
WHERE k~kunnr EQ p_id | |
AND k~vbtyp EQ 'G' "Contratos | |
AND p~abgru EQ space. "Motivo de recusa | |
IF sy-subrc IS INITIAL. | |
SORT pt_vbak BY vbeln. | |
DELETE ADJACENT DUPLICATES FROM pt_vbak COMPARING vbeln. | |
ENDIF. "Retorno SELECT vbak | |
ENDFORM. "f_seleciona_contrato_faturas | |
*&---------------------------------------------------------------------* | |
*& Form f_seleciona_contrato_faturas | |
*&---------------------------------------------------------------------* | |
FORM f_atualiza_contratos_payment TABLES pt_cobranca STRUCTURE ztbfi_cobranca "STORY 37926373 JFB | |
pt_vbak STRUCTURE vbak | |
pt_vbap STRUCTURE vbap | |
USING p_id "Cliente | |
p_payment_method. "Forma de pagamento | |
DATA: wa_vbak TYPE vbak, | |
wa_header_in TYPE bapisdhd1, | |
wa_header_inx TYPE bapisdhd1x, | |
return TYPE TABLE OF bapiret2. | |
FIELD-SYMBOLS: <fs_cob> TYPE ztbfi_cobranca. | |
CLEAR: wa_vbak, | |
wa_header_in, | |
wa_header_inx. | |
LOOP AT pt_vbak INTO wa_vbak. | |
wa_header_in-pymt_meth = p_payment_method. "Forma de pagamento | |
wa_header_inx-pymt_meth = 'X'. | |
wa_header_inx-updateflag = 'U'. | |
CALL FUNCTION 'SD_SALESDOCUMENT_CHANGE' | |
EXPORTING | |
salesdocument = wa_vbak-vbeln | |
order_header_in = wa_header_in | |
order_header_inx = wa_header_inx | |
TABLES | |
return = return. | |
READ TABLE return WITH KEY type = 'E' TRANSPORTING NO FIELDS. | |
IF NOT sy-subrc IS INITIAL. | |
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' | |
EXPORTING | |
wait = 'X'. | |
ELSE. | |
ROLLBACK WORK. | |
ENDIF. | |
ENDLOOP. "Retorno LOOP AT pt_vbak | |
* Atualiza tabela a ztbfi_cobranca com a nova forma de pagamento para faturas em aberto | |
UNASSIGN: <fs_cob>. | |
*** Inicio Alt. AA - Bug 4077 | |
LOOP AT pt_cobranca ASSIGNING <fs_cob> WHERE flagcr EQ 'X' | |
AND flagcob EQ space. | |
*** Fim Alt. AA - Bug 4077 | |
<fs_cob>-zlsch = p_payment_method. | |
ENDLOOP. | |
MODIFY ztbfi_cobranca FROM TABLE pt_cobranca. | |
IF sy-subrc IS INITIAL. | |
COMMIT WORK. | |
ENDIF. | |
ENDFORM. "f_atualiza_contratos_payment. | |
*&---------------------------------------------------------------------* | |
*& Form LOG | |
*&---------------------------------------------------------------------* | |
* Log para análise de problema que não gera linha da recorrente | |
* PRB10312 - 19/04/2013 | |
*----------------------------------------------------------------------* | |
FORM log USING extid TYPE text100 | |
txt TYPE text200 | |
status. | |
IF cl_log IS INITIAL. | |
CREATE OBJECT cl_log | |
EXPORTING | |
extid = extid | |
level = 4. | |
ENDIF. | |
cl_log->log_txt( msg_type = status text = txt ). | |
ENDFORM. "log |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FUNCTION zlws2_create_customer. | |
*"---------------------------------------------------------------------- | |
*"*"Interface local: | |
*" IMPORTING | |
*" VALUE(NAME) TYPE TEXT70 | |
*" VALUE(CPF) TYPE STCD2 OPTIONAL | |
*" VALUE(CNPJ) TYPE STCD1 OPTIONAL | |
*" VALUE(RG) TYPE STCD3 OPTIONAL | |
*" VALUE(INSC_ESTADUAL) TYPE STCD3 OPTIONAL | |
*" VALUE(INSC_MUNICIPAL) TYPE STCD4 OPTIONAL | |
*" VALUE(TRADEMARK) TYPE NAME3_GP OPTIONAL | |
*" VALUE(LOGIN) TYPE AD_REMARK1 | |
*" VALUE(MANAGER_ID) TYPE PERNR_D OPTIONAL | |
*" VALUE(FACEBOOK) TYPE AD_URI2 OPTIONAL | |
*" VALUE(TWITTER) TYPE AD_URI2 OPTIONAL | |
*" VALUE(KNEW_LOCAWEB_AT) TYPE KATR7 OPTIONAL | |
*" VALUE(CUSTOMER_CLASS) TYPE KUKLA OPTIONAL | |
*" VALUE(AGREE_LW_PROMT) TYPE FLAG OPTIONAL | |
*" VALUE(AGREE_PARTN_PROMT) TYPE FLAG OPTIONAL | |
*" VALUE(AGREE_SMS) TYPE FLAG OPTIONAL | |
*" VALUE(ADDRESS) TYPE ZSTLW_CUSTOMER4 | |
*" EXPORTING | |
*" VALUE(ID) TYPE ZKUNNR | |
*" TABLES | |
*" PHONES STRUCTURE ZSTLW_PHONES_DATA | |
*" EMAILS STRUCTURE ZSTLW_MAIL_DATA | |
*" MESSAGES STRUCTURE BAPIRET2 | |
*"---------------------------------------------------------------------- | |
DATA: wa_kna1 TYPE kna1, | |
wa_knb1 TYPE knb1, | |
wa_knvv TYPE knvv, | |
wa_addr TYPE bapiaddr1, | |
tb_knbk TYPE TABLE OF fknbk, | |
tb_knvi TYPE TABLE OF fknvi, | |
tb_knvp TYPE TABLE OF fknvp, | |
tb_sales TYPE TABLE OF tvta WITH HEADER LINE. | |
FIELD-SYMBOLS: <knvi> TYPE fknvi, | |
<knvp> TYPE fknvp. | |
DATA: tb_bapiadsmtp TYPE TABLE OF bapiadsmtp WITH HEADER LINE, | |
tb_bapiadsmt_x TYPE TABLE OF bapiadsmtx WITH HEADER LINE, | |
tb_bapiaduri TYPE TABLE OF bapiaduri WITH HEADER LINE, | |
tb_bapiaduri_x TYPE TABLE OF bapiadurix WITH HEADER LINE, | |
tb_bapicomrem TYPE TABLE OF bapicomrem WITH HEADER LINE, | |
tb_bapicomre_x TYPE TABLE OF bapicomrex WITH HEADER LINE, | |
tb_bapiadtel TYPE TABLE OF bapiadtel WITH HEADER LINE, | |
tb_bapiadtel_x TYPE TABLE OF bapiadtelx WITH HEADER LINE. | |
DATA: fail TYPE flag, | |
v_mail TYPE flag, | |
v_active TYPE flag, "Flag utilizado para verificar se há mais que 1 email principal | |
v_zterm TYPE knb1-zterm, "PRB10312 - 19/04/2013 | |
v_zwels TYPE knb1-zwels, "PRB10312 - 19/04/2013 | |
v_message TYPE text200, "PRB10312 - 19/04/2013 | |
v_extid TYPE text100. "PRB10312 - 19/04/2013 | |
DATA: wa_mail TYPE zstlw_mail_data, | |
wa_phone TYPE zstlw_phones_data, | |
wa_knvp TYPE fknvp. | |
"Buffer da tabela de constants | |
DATA: tb_constants TYPE TABLE OF ztbconstantes. | |
PERFORM initialize_buffers | |
TABLES tb_constants | |
USING c_sd c_cre_cust. | |
TRY. | |
REFRESH: messages, tb_knbk, tb_knvi, tb_knvp. | |
CLEAR: fail, wa_kna1, wa_knb1, wa_knvv, wa_knvp, wa_addr, id. | |
PERFORM check_obligatory_fields | |
TABLES messages | |
USING: name '036', | |
login '042', | |
address-postal_code '037', | |
address-city '038', | |
address-street '039', | |
address-state '040', | |
address-country '041', | |
address-num '047'. | |
CHECK messages[] IS INITIAL. | |
PERFORM check_country_state_relation | |
TABLES messages | |
USING address-country address-state. | |
CHECK messages[] IS INITIAL. | |
"verifica existencia de e-mails | |
IF emails[] IS INITIAL. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 043. | |
messages-message = text-043. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
"verifica se há e-mail principal. | |
READ TABLE emails TRANSPORTING NO FIELDS WITH KEY | |
main = 'X'. | |
IF sy-subrc NE 0. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 078. | |
messages-message = text-078. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
"verifica se há e-mail ativo. | |
READ TABLE emails TRANSPORTING NO FIELDS WITH KEY | |
active = 'X'. | |
IF sy-subrc NE 0. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 078. | |
messages-message = text-078. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
LOOP AT emails INTO wa_mail. | |
IF wa_mail-main NE space AND wa_mail-active NE space AND v_mail EQ space. | |
v_mail = 'X'. | |
ELSEIF wa_mail-main NE space AND wa_mail-active NE space AND v_mail NE space. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 077. | |
messages-message = text-077. | |
APPEND messages. | |
ENDIF. | |
ENDLOOP. | |
CLEAR v_mail. | |
LOOP AT emails INTO wa_mail. | |
IF wa_mail-main NE space AND wa_mail-active EQ space AND v_mail EQ space. | |
v_mail = 'X'. | |
ELSEIF wa_mail-main NE space AND wa_mail-active EQ space AND v_mail NE space. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 081. | |
messages-message = text-081. | |
APPEND messages. | |
ENDIF. | |
ENDLOOP. | |
"verifica existencia de telefones | |
IF phones[] IS INITIAL. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 069. | |
messages-message = text-069. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
LOOP AT phones INTO wa_phone. | |
IF wa_phone-tel_number EQ space. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 069. | |
messages-message = text-069. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
ENDLOOP. | |
CHECK messages[] IS INITIAL. | |
PERFORM check_manager | |
TABLES messages | |
USING manager_id '050'. | |
CHECK messages[] IS INITIAL. | |
"Valida CPF ou CNPJ | |
IF cnpj IS INITIAL AND cpf IS NOT INITIAL. | |
"Valida CPF | |
PERFORM cpf_verify | |
TABLES messages | |
USING cpf. | |
CHECK messages[] IS INITIAL. | |
wa_kna1-stcd2 = cpf. | |
wa_kna1-stcd3 = rg. | |
wa_kna1-stkzn = c_x. | |
ELSEIF cnpj IS NOT INITIAL. | |
"Valida CNPJ | |
PERFORM cnpj_verify | |
TABLES messages | |
USING cnpj. | |
CHECK messages[] IS INITIAL. | |
wa_kna1-stcd1 = cnpj. | |
wa_kna1-stcd3 = insc_estadual. | |
wa_kna1-stcd4 = insc_municipal. | |
ELSE. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 804. | |
messages-message = text-804. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
"Valida CEP | |
PERFORM postal_code_verify | |
TABLES messages | |
USING address-postal_code. | |
CHECK messages[] IS INITIAL. | |
"Valida Tipo de Suporte | |
PERFORM check_support_type | |
TABLES messages | |
USING customer_class. "STORY 52155251 | |
CHECK messages[] IS INITIAL. | |
"Valida dados marketing | |
PERFORM check_agreement | |
TABLES messages | |
USING agree_lw_promt | |
agree_partn_promt | |
agree_sms | |
knew_locaweb_at. | |
"Dados gerais do cliente | |
PERFORM get_account_group | |
TABLES tb_constants | |
CHANGING wa_kna1. | |
PERFORM get_cfop_category | |
TABLES tb_constants | |
CHANGING wa_kna1. | |
"Dados de empresa | |
PERFORM get_customer_account | |
TABLES tb_constants | |
CHANGING wa_knb1. | |
PERFORM get_payment_condition | |
TABLES tb_constants | |
CHANGING wa_knb1. | |
IF wa_knb1-zterm IS INITIAL. | |
v_message = '(ZLWS2_CREATE_CUSTOMER) Não encontrou constante para ZTERM.'. | |
v_extid = 'ZLWS2_CREATE_CUSTOMER'. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
CONCATENATE '(ZLWS2_CREATE_CUSTOMER) Constante para ZTERM = ' wa_knb1-zterm INTO v_message | |
SEPARATED BY space. | |
v_extid = 'ZLWS2_CREATE_CUSTOMER'. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
wa_kna1-mandt = sy-mandt. | |
wa_kna1-erdat = sy-datum. | |
wa_kna1-ernam = sy-uname. | |
wa_kna1-name1 = name(35). | |
wa_kna1-name2 = name+35. | |
wa_kna1-name3 = trademark. | |
wa_kna1-kukla = customer_class. "STORY 52155251 | |
wa_kna1-katr3 = agree_lw_promt. | |
wa_kna1-katr4 = agree_partn_promt. | |
wa_kna1-katr5 = agree_sms. | |
wa_kna1-katr7 = knew_locaweb_at. | |
wa_kna1-land1 = address-country. | |
wa_kna1-spras = c_langu. | |
"Dados de endereço | |
wa_addr-name = wa_kna1-name1. | |
wa_addr-name_2 = wa_kna1-name2. | |
wa_addr-name_3 = wa_kna1-name3. | |
wa_addr-street = address-street(40). | |
wa_addr-str_suppl3 = address-street+40(20). | |
wa_addr-adr_notes = login. | |
wa_addr-house_no = address-num. | |
wa_addr-house_no2 = address-complement. | |
wa_addr-district = address-district. | |
wa_addr-postl_cod1 = address-postal_code. | |
wa_addr-city = address-city. | |
wa_addr-region = address-state. | |
wa_addr-country = address-country. | |
wa_addr-langu_cr = wa_addr-langu = c_langu. | |
wa_addr-langucriso = wa_addr-langu_iso = 'PT'. | |
PERFORM get_fiscal_area | |
USING address-country | |
address-state | |
address-postal_code | |
CHANGING wa_addr. | |
"E-mails | |
REFRESH: tb_bapiadsmt_x, tb_bapiadsmtp. | |
CLEAR: tb_bapiadsmt_x, tb_bapiadsmtp. | |
tb_bapiadsmt_x-std_no = c_x. | |
tb_bapiadsmt_x-e_mail = c_x. | |
tb_bapiadsmt_x-consnumber = c_x. | |
tb_bapiadsmt_x-updateflag = c_i. | |
tb_bapiadsmtp-std_no = c_x. | |
LOOP AT emails INTO wa_mail. | |
tb_bapiadsmtp-e_mail = wa_mail-address. | |
tb_bapiadsmtp-std_recip = wa_mail-main. | |
tb_bapiadsmtp-flg_nouse = wa_mail-active. | |
tb_bapiadsmtp-r_3_user = wa_mail-main_candidate. | |
IF wa_mail-main = 'X' AND wa_mail-active = 'X'. | |
v_active = 'X'. | |
ENDIF. | |
APPEND: tb_bapicomre_x, tb_bapicomrem, | |
tb_bapiadsmt_x, tb_bapiadsmtp. | |
ENDLOOP. | |
IF v_active IS INITIAL. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 080. | |
messages-message = text-080. | |
APPEND messages. | |
EXIT. | |
ENDIF. | |
"URIs | |
tb_bapiaduri_x-std_no = c_x. | |
tb_bapiaduri_x-uri_type = c_x. | |
tb_bapiaduri_x-uri = c_x. | |
tb_bapiaduri_x-updateflag = c_i. | |
tb_bapiaduri-std_no = c_x. | |
IF facebook IS NOT INITIAL. | |
tb_bapiaduri-uri_type = c_fac. | |
tb_bapiaduri-uri = facebook. | |
APPEND: tb_bapiaduri, tb_bapiaduri_x. | |
ENDIF. | |
IF twitter IS NOT INITIAL. | |
tb_bapiaduri-uri_type = c_twi. | |
tb_bapiaduri-uri = twitter. | |
APPEND: tb_bapiaduri, tb_bapiaduri_x. | |
ENDIF. | |
"Telefones | |
REFRESH: tb_bapiadtel_x, tb_bapiadtel. | |
CLEAR: tb_bapiadtel_x, tb_bapiadtel. | |
tb_bapiadtel_x-std_no = c_x. | |
tb_bapiadtel_x-telephone = c_x. | |
tb_bapiadtel_x-extension = c_x. | |
tb_bapiadtel_x-r_3_user = c_x. | |
tb_bapiadtel_x-updateflag = c_i. | |
LOOP AT phones INTO wa_phone. | |
tb_bapiadtel-telephone = wa_phone-tel_number. | |
tb_bapiadtel-extension = wa_phone-extension. | |
tb_bapiadtel-std_no = c_x. | |
tb_bapiadtel-r_3_user = '1'. | |
IF wa_phone-type EQ c_mob. | |
tb_bapiadtel-r_3_user = '3'. | |
tb_bapiadtel-std_no = space. | |
ENDIF. | |
APPEND: tb_bapiadtel_x, tb_bapiadtel. | |
ENDLOOP. | |
"Gerente de conta | |
IF manager_id IS NOT INITIAL. | |
wa_knvp-parvw = 'ZC'. | |
wa_knvp-pernr = manager_id. | |
APPEND wa_knvp TO tb_knvp. | |
ENDIF. | |
"Dados de vendas | |
wa_knvv-zterm = wa_knb1-zterm. | |
wa_knvv-waers = c_waers. | |
PERFORM get_fiscal_classification | |
TABLES tb_constants | |
CHANGING wa_knvv. | |
PERFORM get_tax_classification | |
TABLES tb_constants tb_knvi. | |
"Áreas de vendas. | |
REFRESH tb_sales. | |
SELECT mandt vkorg vtweg spart | |
FROM tvta | |
INTO TABLE tb_sales | |
WHERE vtweg EQ '10'. | |
"vkorg NE 'ENTP' AND vkorg NE 'ENTT'. | |
CHECK messages[] IS INITIAL. | |
LOOP AT tb_sales. | |
wa_knb1-bukrs = tb_sales-vkorg. | |
wa_knvv-vkorg = tb_sales-vkorg. | |
wa_knvv-vwerk = tb_sales-vkorg. | |
wa_knvv-vtweg = tb_sales-vtweg. | |
wa_knvv-spart = tb_sales-spart. | |
LOOP AT tb_knvp ASSIGNING <knvp>. | |
<knvp>-vkorg = tb_sales-vkorg. | |
<knvp>-vtweg = tb_sales-vtweg. | |
<knvp>-spart = tb_sales-spart. | |
ENDLOOP. | |
PERFORM create_customer | |
TABLES tb_knbk tb_knvi tb_knvp | |
tb_bapiadsmtp tb_bapiadsmt_x | |
tb_bapiaduri tb_bapiaduri_x | |
tb_bapicomrem tb_bapicomre_x | |
tb_bapiadtel tb_bapiadtel_x | |
messages | |
USING wa_kna1 wa_knb1 wa_knvv wa_addr | |
CHANGING id fail. | |
IF fail IS NOT INITIAL. | |
PERFORM bapi_rollback. | |
EXIT. | |
ENDIF. | |
IF wa_kna1-kunnr IS INITIAL. | |
wa_kna1-kunnr = id. | |
wa_knb1-kunnr = id. | |
wa_knvv-kunnr = id. | |
LOOP AT tb_knvi ASSIGNING <knvi>. | |
<knvi>-kunnr = id. | |
ENDLOOP. | |
LOOP AT tb_knvp ASSIGNING <knvp>. | |
<knvp>-kunnr = id. | |
ENDLOOP. | |
ELSEIF id IS INITIAL. | |
id = wa_kna1-kunnr. | |
ENDIF. | |
ENDLOOP. | |
CHECK fail IS INITIAL. | |
PERFORM bapi_commit. | |
SELECT SINGLE zterm zwels | |
FROM knb1 | |
INTO (v_zterm, v_zwels) | |
WHERE kunnr = id. | |
CONCATENATE '(ZLWS2_CREATE_CUSTOMER) Criação do cliente - KNB1-ZTERM = ' v_zterm | |
INTO v_message | |
SEPARATED BY space. | |
v_extid = id. | |
IF v_zterm IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CONCATENATE '(ZLWS2_CREATE_CUSTOMER) Criação do cliente - KNB1-ZWELS = ' v_zwels | |
INTO v_message | |
SEPARATED BY space. | |
v_extid = id. | |
IF v_zwels IS INITIAL. | |
PERFORM log USING v_extid v_message 'E'. | |
ELSE. | |
PERFORM log USING v_extid v_message 'S'. | |
ENDIF. | |
CATCH cx_root. | |
messages-type = c_e. | |
messages-id = c_zcrcl. | |
messages-number = 025. | |
messages-message = text-025. | |
APPEND messages. | |
ENDTRY. | |
IF messages[] IS NOT INITIAL. | |
DELETE ADJACENT DUPLICATES FROM messages COMPARING ALL FIELDS. | |
ENDIF. | |
PERFORM convert_customer_output | |
CHANGING id. | |
ENDFUNCTION. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment