*&---------------------------------------------------------------------*
*& Include ZRFFOUS_COM_RETORNO_FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form ZF_CHECK_TABLA_PARAM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_PARAM text
*----------------------------------------------------------------------*
form zf_check_tabla_param changing pto_param type ty_t_param.
data: ls_param type zfi_param.
constants: lc_docu type fieldname value 'DOCU',
lc_cuent_d type fieldname value 'CUENTAD',
lc_cuent_h type fieldname value 'CUENTAH',
lc_division type fieldname value 'DIVISION',
lc_divisa type fieldname value 'DIVISA'.
select mandt
repid
fieldname
datbi
item
datab
sign
opt
low
high
from zfi_param
into table pto_param
where repid eq sy-repid and
datbi >= sy-datum.
if sy-subrc eq 0.
sort pto_param by fieldname.
read table gt_param into ls_param with key fieldname = lc_docu binary search.
if sy-subrc eq 0.
move: ls_param-low to gv_docu.
clear ls_param.
endif.
* SORT pto_param BY fieldname.
read table gt_param into ls_param with key fieldname = lc_cuent_d binary
search.
if sy-subrc eq 0.
move: ls_param-low to gv_cuenta_d.
clear ls_param.
endif.
read table gt_param into ls_param with key fieldname = lc_cuent_h binary
search.
if sy-subrc eq 0.
move: ls_param-low to gv_cuenta_h.
clear ls_param.
endif.
read table gt_param into ls_param with key fieldname = lc_division binary
search.
if sy-subrc eq 0.
move: ls_param-low to gv_division.
clear ls_param.
endif.
read table gt_param into ls_param with key fieldname = lc_divisa binary search.
if sy-subrc eq 0.
move: ls_param-low to gv_divisa.
clear ls_param.
endif.
endif.
endform. " zf_check_tabla_param
*&---------------------------------------------------------------------*
*& Form ZF_GET_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LV_LOCATION text
* <--P_PAR_FILE text
*----------------------------------------------------------------------*
form zf_get_file using pi_location type dxfields-location
changing po_par_file type dxfields-longpath.
data: lt_file_table type filetable,
lv_rc type i.
call method cl_gui_frontend_services=>file_open_dialog
exporting
file_filter = '*.csv|*.CSV'
* with_encoding =
* initial_directory =
* multiselection =
changing
file_table = lt_file_table
rc = lv_rc
* user_action =
* file_encoding =
exceptions
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
others = 5.
if sy-subrc eq 0.
read table lt_file_table into po_par_file index 1.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " ZF_GET_FILE
*&---------------------------------------------------------------------*
*& Form ZF_UPLOAD_PC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PAR_FILE text
* <--P_GT_COMDATA text
*----------------------------------------------------------------------*
form zf_upload_pc using pi_par_file type dxfields-longpath
changing pto_comdata type ty_t_compdata
po_file_no_exist type flag.
constants: lc_separator type c value ','.
types: begin of ty_data_tab,
line type string.
types: end of ty_data_tab.
data: lt_data_tab type table of ty_data_tab.
data: ls_comdata like line of gt_comdata.
field-symbols: <lfs_data_tab> type ty_data_tab.
data: "lv_file TYPE string,
lv_file_exist type string.
* MOVE: pi_par_file TO lv_file. "24.11.2017
"DATA: l_existe TYPE abap_bool. "24.11.2017
*--------------------------------------------------------------------*
data: lv_result type abap_bool.
"lv_file_exist TYPE string.
move: pi_par_file to lv_file_exist.
********** CALL FUNCTION 'FILE_VALIDATE_NAME'
********** EXPORTING
********** logical_filename = 'EHS_FTFRONT_2'
********** CHANGING
********** physical_filename = pi_par_file
********** EXCEPTIONS
********** logical_filename_not_found = 1
********** validation_failed = 2
********** OTHERS = 3.
********** IF sy-subrc EQ 0.
call method cl_gui_frontend_services=>file_exist
exporting
file = lv_file_exist
receiving
result = lv_result
exceptions
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
not_supported_by_gui = 4
others = 5.
if sy-subrc eq 0 and lv_result eq abap_true.
*--------------------------------------------------------------------*
call method cl_gui_frontend_services=>gui_upload
exporting
filename = lv_file_exist
filetype = 'ASC'
has_field_separator = lc_separator "'X' "lc_separator
* header_length = 0
read_by_line = 'X'
* dat_mode = SPACE
* codepage = SPACE
ignore_cerr = abap_true
replacement = '#'
* virus_scan_profile =
* isdownload = SPACE
* IMPORTING
* filelength =
* header =
changing
data_tab = lt_data_tab
* isscanperformed = SPACE
exceptions
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
others = 19.
if sy-subrc eq 0.
loop at lt_data_tab assigning <lfs_data_tab>.
* REPLACE ALL OCCURENCES OF '"' IN <lfs_data_tab>-line WITH ''.
* SPLIT <lfs_data_tab>-line AT ',' INTO ls_comdata-sociedad
split <lfs_data_tab>-line at ';' into ls_comdata-sociedad
ls_comdata-vendor_id
ls_comdata-vendor_name
ls_comdata-payment_number
ls_comdata-processed_date
ls_comdata-payment_amount
ls_comdata-issued_amount.
* ls_comdata-payment_amount
* ls_comdata-payment_date
* ls_comdata-vendor_adress1
* ls_comdata-vendor_adress2
* ls_comdata-vendor_city
* ls_comdata-vendor_state
* ls_comdata-vendor_zip
* ls_comdata-invoice_number
* ls_comdata-invoice_date
* ls_comdata-invoice_amount
* ls_comdata-invoice_discount
* ls_comdata-invoice_net
* ls_comdata-invoice_comments
* ls_comdata-pm.
append ls_comdata to gt_comdata.
endloop.
else.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
else. "12.01.2018
move: abap_true to po_file_no_exist.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
* TITEL = ' '
textline1 = text-i02.
endif.
* ENDIF. "24.11.2017
endform. " ZF_UPLOAD_PC
*&---------------------------------------------------------------------*
*& Form ZF_UPLOAD_SERVER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PAR_FILE text
* <--P_GT_COMDATA text
*----------------------------------------------------------------------*
form zf_upload_server using pi_par_file type dxfields-longpath
changing pto_comdata type ty_t_compdata.
data: ls_comdata like line of gt_comdata.
data: ls_file like line of gt_comdata.
open dataset pi_par_file for input in text mode encoding default.
if sy-subrc is not initial.
*MESSAGE e002(ypap_cust_prog). "Error creation failed.
else.
while ( sy-subrc eq 0 ).
read dataset pi_par_file into ls_file.
if not ls_file is initial.
split ls_file at ';' into ls_comdata-sociedad
ls_comdata-vendor_id
ls_comdata-vendor_name
ls_comdata-payment_number
ls_comdata-processed_date
ls_comdata-payment_amount
ls_comdata-issued_amount.
* ls_comdata-payment_amount
* ls_comdata-payment_date
* ls_comdata-vendor_adress1
* ls_comdata-vendor_adress2
* ls_comdata-vendor_city
* ls_comdata-vendor_state
* ls_comdata-vendor_zip
* ls_comdata-invoice_number
* ls_comdata-invoice_date
* ls_comdata-invoice_amount
* ls_comdata-invoice_discount
* ls_comdata-invoice_net
* ls_comdata-invoice_comments
* ls_comdata-pm.
append ls_comdata to gt_comdata.
endif.
clear ls_comdata.
endwhile.
endif.
close dataset pi_par_file.
endform. " ZF_UPLOAD_SERVER
*&---------------------------------------------------------------------*
*& Form ZF_ABD_BSIS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form zf_abd_bsis. "USING pi_test TYPE flag.
field-symbols: "<lfs_comdata> TYPE zfi_compdata_retorno, "zfi_compdata.
<lfs_comdata_fb05> type tyt_comdata_fb05.
data: ls_comdata type zfi_compdata_retorno, "zfi_compdata.
ls_comdata_fb05 type tyt_comdata_fb05,
ls_comdata_err type tyt_comdata_fb05.
data: "lt_bsis TYPE STANDARD TABLE OF bsis,
ls_bsis type bsis,
ls_bsak type bsak,
ls_param type zfi_param.
data: lv_gjahr type gjahr.
data: lv_belnr type belnr_d,
lv_hkont type hkont.
data: ls_bkpf type bkpf.
data: lv_subrc type sy-subrc.
* DATA: lt_return TYPE TABLE OF bapiret2.
constants: lc_cuentad type fieldname value 'CUENTAD'.
sort gt_param by fieldname.
read table gt_param into ls_param with key fieldname = lc_cuentad binary search.
loop at gt_comdata into ls_comdata. "ASSIGNING <lfs_comdata>.
clear: ls_bsis,
ls_bkpf,
ls_bsak,
lv_gjahr,
lv_belnr.
move: ls_comdata-payment_number(8) to lv_belnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = ls_param-low
importing
output = lv_hkont.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lv_belnr
importing
output = lv_belnr.
concatenate '20' ls_comdata-payment_number+8(2) into lv_gjahr.
* CONCATENATE '20' <lfs_comdata>-payment_number+8(2) INTO lv_gjahr.
* SELECT * UP TO 1 ROWS
clear: lv_subrc,
ls_bsis.
perform zf_bsis using ls_comdata-sociedad
lv_hkont
lv_gjahr
lv_belnr
changing ls_bsis
lv_subrc.
* SELECT SINGLE *
* FROM bsis
* INTO ls_bsis
* WHERE bukrs = ls_comdata-sociedad AND "<lfs_comdata>-sociedad AND
* hkont = lv_hkont AND "'40170000' AND
* gjahr = lv_gjahr AND "<lfs_comdata>-processed_date+6(4) AND --> año
* belnr = lv_belnr. "<lfs_comdata>-payment_number(8).
** belnr = ls_comdata-payment_number(8). "<lfs_comdata>-
payment_number(8).
** ENDSELECT.
*
if lv_subrc eq 0. "sy-subrc EQ 0. "Existe en la BSIS
clear: lv_subrc,
ls_bsak.
perform zf_bsak using ls_comdata-sociedad
ls_comdata-vendor_id
lv_gjahr
lv_belnr
changing ls_bsak
lv_subrc.
* SELECT SINGLE *
** SELECT * UP TO 1 ROWS
* FROM bsak
* INTO ls_bsak
* WHERE bukrs EQ ls_comdata-sociedad AND "<lfs_comdata>-sociedad AND
* lifnr EQ ls_comdata-vendor_id AND "<lfs_comdata>-vendor_id AND
* umsks EQ abap_false AND
* umskz EQ abap_false AND
* gjahr EQ lv_gjahr AND "<lfs_comdata>-processed_date+6(4) AND
* belnr EQ lv_belnr. "<lfs_comdata>-payment_number(8).
** ENDSELECT.
if lv_subrc eq 0. "sy-subrc EQ 0. "SI existe en bsak
"Verificamos que no se ha dado de alta previamente
clear: lv_subrc,
ls_bkpf.
perform zf_bkpf using ls_comdata-sociedad
ls_comdata-payment_number
changing ls_bkpf
lv_subrc.
*
if lv_subrc eq 0. "sy-subrc EQ 0.
"Se realiza en el caso C
move-corresponding ls_comdata to ls_comdata_fb05.
move: ls_bkpf-belnr to ls_comdata_fb05-belnr.
move: 'C' to ls_comdata_fb05-a_b.
append ls_comdata_fb05 to gt_comdata_fb05.
append ls_bsis to gt_bsis.
append ls_bsak to gt_bsak.
else.
"Se realiza en el caso A
move-corresponding ls_comdata to ls_comdata_fb05.
move: 'A' to ls_comdata_fb05-a_b.
append ls_comdata_fb05 to gt_comdata_fb05. "gt_comdata_bapi.
append ls_bsis to gt_bsis.
append ls_bsak to gt_bsak.
endif.
else. "NO existe en bsak
"Error en listado E1: Pago check/payment distinto proveedor
move-corresponding ls_comdata to ls_comdata_fb05.
* ls_bkpf-belnr to ls_comdata_err-belnr.
move: '1' to ls_comdata_fb05-a_b.
* APPEND ls_comdata TO gt_comdata_err.
clear: lv_subrc,
ls_bkpf.
perform zf_bkpf using ls_comdata-sociedad
ls_comdata-payment_number
changing ls_bkpf
lv_subrc.
if lv_subrc eq 0. "sy-subrc EQ 0.
move: '2' to ls_comdata_fb05-a_b,
ls_bkpf-belnr to ls_comdata_fb05-belnr.
append ls_comdata to gt_comdata_err.
else.
move: 'B' to ls_comdata_fb05-a_b, "<lfs_comdata_fb05>-a_b.
'1' to ls_comdata_fb05-msg.
* MOVE: '4' TO ls_comdata_fb05-a_b. "<lfs_comdata_fb05>-a_b.
append ls_comdata_fb05 to gt_comdata_bapi.
endif.
endif.
*--------------------------------------------------------------------*
else. "No existe en BSIS
clear: ls_bsak.
* SELECT * UP TO 1 ROWS
* FROM bsak
* INTO ls_bsak
* WHERE bukrs EQ ls_comdata-sociedad AND "<lfs_comdata>-sociedad AND
* lifnr EQ ls_comdata-vendor_id AND "<lfs_comdata>-vendor_id AND
* umsks EQ abap_false AND
* umskz EQ abap_false AND
* gjahr EQ lv_gjahr AND "<lfs_comdata>-processed_date+6(4) AND
* belnr EQ lv_belnr. "<lfs_comdata>-payment_number(8).
* ENDSELECT.
* IF sy-subrc EQ 0.
* "Error: Pago ya compensado. Registro previamente procesado E03
* MOVE-CORRESPONDING ls_comdata TO ls_comdata_err.
* MOVE: '3' TO ls_comdata_err-a_b,
* ls_bkpf-belnr TO ls_comdata_err-belnr.
* APPEND ls_comdata_err TO gt_comdata_err.
* ELSE.
* Leemos BKPF
clear: lv_subrc,
ls_bkpf.
perform zf_bkpf using ls_comdata-sociedad
ls_comdata-payment_number
changing ls_bkpf
lv_subrc.
if lv_subrc eq 0. "sy-subrc EQ 0.
*Si EXISTE poner error -> Pago check/payment en doc: BKPF-BELNR ya existe. E05
move-corresponding ls_comdata to ls_comdata_err.
move: '5' to ls_comdata_err-a_b,
ls_bkpf-belnr to ls_comdata_err-belnr.
append ls_comdata_err to gt_comdata_err.
else.
"Doc.creado = documento creado E04
move-corresponding ls_comdata to ls_comdata_fb05.
move: 'B' to ls_comdata_fb05-a_b,
'4' to ls_comdata_fb05-msg.
* Doc.creado = documento creado por la BAPI
append ls_comdata_fb05 to gt_comdata_bapi.
endif.
* ENDIF.
endif.
** SELECT * UP TO 1 ROWS
*** SELECT SINGLE *
** FROM bsak
** INTO ls_bsak
** WHERE bukrs EQ ls_comdata-sociedad AND "<lfs_comdata>-sociedad AND
** lifnr EQ ls_comdata-vendor_id AND "<lfs_comdata>-vendor_id AND
** umsks EQ abap_false AND
** umskz EQ abap_false AND
** gjahr EQ lv_gjahr AND "<lfs_comdata>-processed_date+6(4) AND
** belnr EQ lv_belnr. "<lfs_comdata>-payment_number(8).
** ENDSELECT.
**
** IF sy-subrc EQ 0.
** APPEND ls_comdata TO gt_comdata_fb05.
*** APPEND <lfs_comdata> TO gt_comdata_fb05.
** APPEND ls_bsis TO gt_bsis.
** APPEND ls_bsak TO gt_bsak.
** ELSE.
** MOVE-CORRESPONDING: ls_comdata TO ls_comdata_fb05.
*** MOVE: <lfs_comdata> TO <lfs_comdata_fb05>.
**
** MOVE: 'D' TO ls_comdata_fb05-a_b.
*** MOVE: 'B' TO <lfs_comdata_fb05>-a_b.
**
** APPEND ls_comdata_fb05 TO gt_comdata_bapi.
*** APPEND <lfs_comdata> TO gt_comdata_bapi.
** ENDIF.
* ELSE. "NO Existe en la BSIS
** "Si no existe registro en bsis CASO B
** MOVE-CORRESPONDING ls_comdata TO ls_comdata_fb05.
*** MOVE-CORRESPONDING <lfs_comdata> TO <lfs_comdata_fb05>.
**
** MOVE: 'A' TO ls_comdata_fb05-a_b.
*** MOVE: 'A' TO <lfs_comdata_fb05>-a_b.
** APPEND ls_comdata_fb05 TO gt_comdata_bapi.
*** APPEND <lfs_comdata> TO gt_comdata_bapi.
**
*** PERFORM zf_call_bapi_acc_document USING pi_test
*** CHANGING lt_return.
* ENDIF.
endloop.
endform. " ZF_ABD_BSIS
*&---------------------------------------------------------------------*
*& Form ZF_BAPI_ACC_DOCUMENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_LT_RETURN text
*----------------------------------------------------------------------*
form zf_call_bapi_acc_document "USING pi_test TYPE flag
changing pto_return type bapiret2_t.
perform zf_bapi_acc_docment "USING 'BAPI_ACC_DOCUMENT_POST'
changing pto_return.
endform. " ZF_CALL_BAPI_ACC_DOCUMENT
*&---------------------------------------------------------------------*
*& Form ZF_BAPI_ACC_DOCMENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0394 text
* <--P_PTO_RETURN text
*----------------------------------------------------------------------*
form zf_bapi_acc_docment "USING pi_function TYPE string "value(p_0394) TYPE
string
changing pto_return type bapiret2_t.
data: lv_belnr type belnr_d.
data : ls_return like line of pto_return,
lv_error type flag.
data: ls_header type bapiache09.
data: lt_accountgl type table of bapiacgl09,
ls_accountgl type bapiacgl09,
lt_currency type table of bapiaccr09,
ls_currency type bapiaccr09.
* DATA: ls_param TYPE zfi_param.
constants: lc_docu type fieldname value 'DOCU',
lc_cuent_d type fieldname value 'CUENTAD',
lc_cuent_h type fieldname value 'CUENTAH',
lc_division type fieldname value 'DIVISION',
lc_divisa type fieldname value 'DIVISA'.
field-symbols: <lfs_comdata> type tyt_comdata_fb05."zfi_compdata_retorno.
data: ls_comdata_alv type zfi_compdata_alv.
sort pto_return by type.
loop at gt_comdata_bapi assigning <lfs_comdata>.
refresh: lt_accountgl,
lt_currency.
*--------------------------------------------------------------------*
"DOCUMENTHEADER
*--------------------------------------------------------------------*
clear: "ls_param,
ls_header,
lv_belnr.
move: <lfs_comdata>-payment_number(8) to lv_belnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lv_belnr
importing
output = lv_belnr.
* SORT gt_param BY fieldname.
* READ TABLE gt_param INTO ls_param WITH KEY fieldname = lc_docu.
move: sy-uname to ls_header-username,
'COMPDATA' to ls_header-header_txt,
<lfs_comdata>-sociedad to ls_header-comp_code,
<lfs_comdata>-processed_date+6(4) to ls_header-fisc_year,
<lfs_comdata>-processed_date(2) to ls_header-fis_period,
gv_docu to ls_header-doc_type,
* ls_param-low TO ls_header-doc_type,
* <lfs_comdata>-payment_number TO ls_header-doc_type,
lv_belnr to ls_header-ref_doc_no .
move: <lfs_comdata>-payment_number to ls_header-ref_doc_no.
concatenate text-t05 <lfs_comdata>-processed_date into ls_header-header_txt
separated by space.
concatenate: <lfs_comdata>-processed_date+6(4)
<lfs_comdata>-processed_date(2)
<lfs_comdata>-processed_date+3(2)
into ls_header-doc_date.
move: ls_header-doc_date to ls_header-pstng_date.
*--------------------------------------------------------------------*
"ACCOUNGL
*--------------------------------------------------------------------*
clear: "ls_param,
ls_accountgl.
* SORT gt_param BY fieldname.
* READ TABLE gt_param INTO ls_param WITH KEY fieldname = lc_cuent_d.
move: '0000000001' to ls_accountgl-itemno_acc,
gv_cuenta_d to ls_accountgl-gl_account.
* ls_param-low TO ls_accountgl-gl_account.
if <lfs_comdata>-a_b eq 'A'.
concatenate text-t06 <lfs_comdata>-payment_number
into ls_accountgl-item_text separated by space.
else.
concatenate text-t07 <lfs_comdata>-payment_number
text-t08
into ls_accountgl-item_text separated by space.
endif.
move: ls_header-doc_date to ls_accountgl-value_date,
"lv_belnr TO ls_accountgl-ref_key_3.
<lfs_comdata>-payment_number to ls_accountgl-ref_key_3. "Cambio
08/11/2017
* CLEAR: ls_param.
* SORT gt_param BY fieldname.
* READ TABLE gt_param INTO ls_param WITH KEY fieldname = lc_division.
move: gv_division to ls_accountgl-bus_area.
* MOVE: ls_param-low TO ls_accountgl-bus_area.
append ls_accountgl to lt_accountgl.
*--------------------------------------------------------------------*
clear: "ls_param,
ls_accountgl.
move: '0000000002' to ls_accountgl-itemno_acc.
* SORT gt_param BY fieldname.
* READ TABLE gt_param INTO ls_param WITH KEY fieldname = lc_cuent_h.
move: gv_cuenta_h to ls_accountgl-gl_account .
* MOVE: ls_param-low TO ls_accountgl-gl_account .
concatenate: text-t06 <lfs_comdata>-payment_number
into ls_accountgl-item_text separated by space.
* CLEAR: ls_param.
* SORT gt_param BY fieldname.
* READ TABLE gt_param INTO ls_param WITH KEY fieldname = lc_division.
move: gv_division to ls_accountgl-bus_area,
"lv_belnr TO ls_accountgl-ref_key_3.
<lfs_comdata>-payment_number to ls_accountgl-ref_key_3."Cambio 08/11/2017
* MOVE: ls_param-low TO ls_accountgl-bus_area.
append ls_accountgl to lt_accountgl.
*--------------------------------------------------------------------*
"CURRENCYAMOUNT
*--------------------------------------------------------------------*
clear: ls_currency.
move: '0000000001' to ls_currency-itemno_acc.
" CLEAR: "ls_param.
* SORT gt_param BY fieldname.
* READ TABLE gt_param INTO ls_param WITH KEY fieldname = lc_divisa.
move: gv_divisa to ls_currency-currency.
replace all occurrences of ',' in <lfs_comdata>-issued_amount with space.
* REPLACE ALL OCCURRENCES OF ',' IN <lfs_comdata>-issued_amount WITH '.'.
move: <lfs_comdata>-issued_amount to ls_currency-amt_doccur.
append ls_currency to lt_currency.
*--------------------------------------------------------------------*
* CLEAR: lS_currency.
move: '0000000002' to ls_currency-itemno_acc,
<lfs_comdata>-issued_amount to ls_currency-amt_doccur.
multiply ls_currency-amt_doccur by -1.
append ls_currency to lt_currency.
* CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
call function 'BAPI_ACC_DOCUMENT_POST'
exporting
documentheader = ls_header
tables
accountgl = lt_accountgl
currencyamount = lt_currency
return = pto_return.
* SORT pto_return BY type.
loop at pto_return into ls_return. "WHERE type = 'A' OR
"type = 'E'.
if ls_return-type eq 'A' or
ls_return-type eq 'B'.
lv_error = 'X'.
exit.
endif.
endloop.
move: <lfs_comdata>-sociedad to ls_comdata_alv-sociedad,
<lfs_comdata>-vendor_id to ls_comdata_alv-vendor_id,
<lfs_comdata>-payment_number to ls_comdata_alv-payment_number,
<lfs_comdata>-processed_date to ls_comdata_alv-processed_date,
<lfs_comdata>-payment_amount to ls_comdata_alv-payment_amount.
* <lfs_comdata>-issued_amount TO ls_comdata_alv-issued_amount.
replace all occurrences of '.' in <lfs_comdata>-issued_amount with ','.
move: <lfs_comdata>-issued_amount to ls_comdata_alv-issued_amount.
if lv_error is initial .
commit work and wait.
read table pto_return into ls_return with key type = 'S'
id = 'RW'
number = '605' binary search.
if sy-subrc eq 0.
move: ls_return-message_v2(10) to ls_comdata_alv-doc_cont,
icon_green_light to ls_comdata_alv-icon.
if <lfs_comdata>-msg eq '1'.
"Pago check/payment distinto proveedor. Doc.creado &
move: text-t01 to ls_comdata_alv-texto.
concatenate text-e01 text-e04 into ls_comdata_alv-texto separated by '.
'.
replace all occurrences of '&' in ls_comdata_alv-texto with ls_return-
message_v2(10).
else.
if <lfs_comdata>-msg eq '4'.
"Doc.creado &
move: text-e04 to ls_comdata_alv-texto.
replace all occurrences of '&' in ls_comdata_alv-texto with ls_return-
message_v2(10).
endif.
endif.
* IF <lfs_comdata>-a_b EQ 'A'.
* MOVE: text-t01 TO ls_comdata_alv-texto.
* ELSE.
* MOVE: text-t02 TO ls_comdata_alv-texto.
* ENDIF.
endif.
else.
rollback work.
endif.
append ls_comdata_alv to gt_comdata_alv.
endloop.
endform. " ZF_BAPI_ACC_DOCMENT
*&---------------------------------------------------------------------*
*& Form ZF_CALL_FB05
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_BSIS text
* <--P_GT_RETURN text
*----------------------------------------------------------------------*
form zf_call_fb05 using pti_bsis type tt_bsis
pti_bsak type tt_bsak
changing pto_return type bapiret2_t.
field-symbols: <lfs_comdata> type tyt_comdata_fb05. "zfi_compdata_retorno.
loop at gt_comdata_fb05 assigning <lfs_comdata>.
if <lfs_comdata>-a_b eq 'C'.
if <lfs_comdata>-payment_amount eq <lfs_comdata>-issued_amount.
perform zf_fb05_iguales_c using <lfs_comdata>
* gt_bkpd
changing pto_return.
else.
perform zf_fb05_distintos_c using <lfs_comdata>
changing pto_return.
endif.
else.
if <lfs_comdata>-payment_amount eq <lfs_comdata>-issued_amount.
perform zf_fb05_iguales using <lfs_comdata>
pti_bsis
changing pto_return.
else.
perform zf_fb05_distintos using <lfs_comdata>
pti_bsak
changing pto_return.
endif.
endif.
endloop.
endform. " ZF_CALL_FB05
*&---------------------------------------------------------------------*
*& Form ZF_FB05_IGUALES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PTI_BSIS text
* <--P_PTO_RETURN text
*----------------------------------------------------------------------*
form zf_fb05_iguales using psi_com type tyt_comdata_fb05 "zfi_compdata_retorno
pti_bsis type tt_bsis
changing pto_return type bapiret2_t.
data: ls_msg type bdcmsgcoll.
data: ls_options type ctu_params. "Se cambia like por type 15.01.2018
data: ls_bsis type bsis.
data: lv_xblnr type xblnr1,
lv_bktxt type bktxt,
lv_date(10) type c.
data: lv_belnr type belnr_d.
data: ls_comdata_alv type zfi_compdata_alv.
data: lv_issued_amoun type char16.
data: lv_payment_amount type wrbtr,
lv_issued_amount type wrbtr.
refresh: gt_bdc, gt_msg.
ls_options-dismode = 'N'.
ls_options-updmode = 'S'.
ls_options-nobinpt = 'X'.
ls_options-racommit = 'X'.
move: psi_com-payment_number(8) to lv_belnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lv_belnr
importing
output = lv_belnr.
sort pti_bsis by belnr.
read table pti_bsis into ls_bsis with key belnr = lv_belnr binary search.
"psi_com-payment_number.
concatenate ls_bsis-xblnr ls_bsis-gjahr into lv_xblnr.
concatenate text-t05 psi_com-processed_date into lv_bktxt separated by space.
concatenate psi_com-processed_date+3(2)
psi_com-processed_date(2)
psi_com-processed_date+6(4)
into lv_date separated by '.'.
clear: lv_issued_amoun.
move: psi_com-issued_amount to lv_issued_amoun.
replace all occurrences of ',' in lv_issued_amoun with space.
replace all occurrences of '.' in lv_issued_amoun with ','.
* REPLACE ALL OCCURRENCES OF ',' IN psi_com-issued_amount WITH space.
* REPLACE ALL OCCURRENCES OF '.' IN psi_com-issued_amount WITH ','.
perform zf_bdc_dynpro using: 'SAPMF05A' '0122' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-NEWKO' changing gt_bdc,
'BDC_OKCODE' '/00' changing gt_bdc,
'BKPF-BLDAT' lv_date changing gt_bdc, "--> DEL
FICHERO PROCESSED_DATE ls_bsis-bldat
* 'BKPF-BLDAT' '06.11.2017' CHANGING gt_bdc, "--> DEL
FICHERO
'BKPF-BLART' gv_docu changing gt_bdc,
* 'BKPF-BLART' 'ZP' CHANGING gt_bdc,
'BKPF-BUKRS' psi_com-sociedad changing gt_bdc, "-->
DEL FICHERO ¿¿¿???? ls_bsis-bukrs
* 'BKPF-BUKRS' 'X0' CHANGING gt_bdc, "--> bsis-bukrs
¿¿¿????
'BKPF-BUDAT' lv_date changing gt_bdc, "--> DEL
FICHERO PROCESSED_DATE ls_bsis-budat
* 'BKPF-BUDAT' '06.11.2017' CHANGING gt_bdc, "--> DEL
FICHERO
'BKPF-MONAT' psi_com-processed_date(2) changing
gt_bdc, "--> PROCESSED_DATE
* 'BKPF-MONAT' '11' CHANGING gt_bdc, "--> bsis-monat
'BKPF-WAERS' ls_bsis-waers changing gt_bdc, "-->
bsis-waers
* 'BKPF-WAERS' 'USD' CHANGING gt_bdc, "--> bsis-waers
'BKPF-XBLNR' psi_com-payment_number changing gt_bdc,
"--> bsis-xbelnr + bsis-gjahr
**** 'BKPF-XBLNR' ls_bsis-belnr CHANGING gt_bdc, "-->
bsis-xbelnr + bsis-gjahr
* 'BKPF-XBLNR' '20000021-R' CHANGING gt_bdc, "-->
bsis-xbelnr + bsis-gjahr
'BKPF-BKTXT' lv_bktxt changing gt_bdc, "--> "'Comdata
Retorno
'RF05A-XPOS1(01)' ' ' changing gt_bdc,
'RF05A-XPOS1(02)' ' ' changing gt_bdc,
'RF05A-XPOS1(03)' ' ' changing gt_bdc,
'RF05A-XPOS1(04)' 'X' changing gt_bdc,
* 'BKPF-AUGTX' psi_com-payment_number CHANGING gt_bdc,
"Modif 30.11.2017
'RF05A-AUGTX' psi_com-payment_number changing gt_bdc,
* 'BKPF-BKTXT' '20000021-T' CHANGING gt_bdc, "-->
"'Comdata Retorno
'RF05A-NEWBS' '50' changing gt_bdc, "--> fijo
'RF05A-NEWKO' gv_cuenta_h changing gt_bdc. "--> tabla
parametros
* 'RF05A-NEWKO' '572704AM' CHANGING gt_bdc. "--> tabla
parametros
perform zf_bdc_dynpro using: 'SAPMF05A' '0300' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-VALUT' changing gt_bdc,
'BDC_OKCODE' '=COBL_MORE' changing gt_bdc,
'BSEG-WRBTR' lv_issued_amoun changing gt_bdc, "-->
fichero Issued_Amount
* 'BSEG-WRBTR' psi_com-issued_amount CHANGING gt_bdc,
"--> fichero Issued_Amount
* 'BSEG-WRBTR' '5690' CHANGING gt_bdc, "--> fichero
Issued_Amount
'BSEG-VALUT' lv_date changing gt_bdc. "-->
PROCESSED_DATE
* 'BSEG-VALUT' '06.11.2017' CHANGING gt_bdc. "-->
PROCESSED_DATE
perform zf_bdc_dynpro using: 'SAPLKACB' '0002' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'COBL-GSBER' changing gt_bdc,
'BDC_OKCODE' '=ENTE' changing gt_bdc,
'COBL-GSBER' ls_bsis-gsber changing gt_bdc. "-->
bsis-gsber
* 'COBL-GSBER' 'WC0' CHANGING gt_bdc. "--> bsis-gsber
perform zf_bdc_dynpro using: 'SAPMF05A' '0300' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-WRBTR' changing gt_bdc,
'BDC_OKCODE' '=SL' changing gt_bdc,
'BSEG-WRBTR' lv_issued_amoun changing gt_bdc, "-->
fichero Issued_Amount
* 'BSEG-WRBTR' psi_com-issued_amount CHANGING gt_bdc,
"--> fichero Issued_Amount
* 'BSEG-WRBTR' '5.690,00' CHANGING gt_bdc, "-->
fichero Issued_Amount
'BSEG-VALUT' lv_date changing gt_bdc. "-->
PROCESSED_DATE
* 'BSEG-VALUT' '06.11.2017' CHANGING gt_bdc. "-->
PROCESSED_DATE
perform zf_bdc_dynpro using: 'SAPMF05A' '0710' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-AGKON' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-AGBUK' psi_com-sociedad changing gt_bdc,"-->
DEL FICHERO SOCIEDAD
'RF05A-AGKON' gv_cuenta_d changing gt_bdc,"--> tabla
parametros
* 'RF05A-AGKON' '40170000' CHANGING gt_bdc,"--> tabla
parametros
'RF05A-XFIFO' 'X' changing gt_bdc, "Indicador:
Reparto automático por antigüedad
'RF05A-XAUTS' ' ' changing gt_bdc, "Indicador:
Busqueda automatica
'RF05A-AGKOA' 'S' changing gt_bdc,
'RF05A-XNOPS' 'X' changing gt_bdc,
'RF05A-XPOS1(01)' '' changing gt_bdc,
'RF05A-XPOS1(03)' 'X' changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0731' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-SEL01(01)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-SEL01(01)' ls_bsis-belnr changing gt_bdc."-->
BSIS-BELNR
* 'RF05A-SEL01(01)' '20000021' CHANGING gt_bdc."-->
BSIS-BELNR
perform zf_bdc_dynpro using: 'SAPDF05X' '3100' changing gt_bdc.
perform zf_bdc_field using: 'BDC_OKCODE' '=BU' changing gt_bdc,
'BDC_CURSOR' 'RF05A-ABPOS' changing gt_bdc,
'RF05A-ABPOS' '1' changing gt_bdc.
call function 'AUTHORITY_CHECK_TCODE'
exporting
tcode = 'FB05'
exceptions
ok = 1
not_ok = 2
others = 3.
if sy-subrc = 1.
call transaction 'FB05' using gt_bdc
messages into gt_msg
options from ls_options.
* PERFORM zf_msg_fb05 USING gt_msg
* psi_com
* text-t04.
sort gt_msg by msgid msgnr.
read table gt_msg into ls_msg with key msgid = 'F5'
msgnr = '312' binary search.
if sy-subrc eq 0.
move: icon_green_light to ls_comdata_alv-icon,
ls_msg-msgv1 to ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
else.
move: icon_red_light to ls_comdata_alv-icon,
* LS_msg-msgv1 TO ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
endif.
clear: lv_payment_amount,
lv_issued_amount.
*pack: "psi_com-payment_amount to lv_payment_amount,
* psi_com-issued_amount to lv_issued_amount.
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount.
***************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
payment_amount WITH ','.
***************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-issued_amount
WITH ','.
append ls_comdata_alv to gt_comdata_alv.
else.
"Falta autorizacion
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount,
icon_red_light to ls_comdata_alv-icon,
text-e06 to ls_comdata_alv-texto.
**************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-payment_amount
WITH ','.
**************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-issued_amount
WITH ','.
append ls_comdata_alv to gt_comdata_alv.
endif.
endform. " ZF_FB05_IGUALES
*&---------------------------------------------------------------------*
*& Form ZF_FB05_DISTINTOS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_<LFS_COMDATA> text
* -->P_PTI_BSIS text
* <--P_PTO_RETURN text
*----------------------------------------------------------------------*
form zf_fb05_distintos using psi_com type tyt_comdata_fb05 "zfi_compdata_retorno
* pti_bsis TYPE tt_bsis
pti_bsak type tt_bsak
changing pto_return type bapiret2_t.
data: ls_msg type bdcmsgcoll.
data: ls_options like ctu_params.
* DATA: ls_bsis TYPE bsis.
data: ls_bsak type bsak.
data: lv_xblnr type xblnr1,
lv_bktxt type bktxt,
lv_date(10) type c.
data: lv_belnr type belnr_d.
data: ls_comdata_alv type zfi_compdata_alv.
" DATA: "LV_BKTXT TYPE BKTXT,
"lv_augtx TYPE augtx_f05a.
data: lv_wrbtr type wrbtr,
lv_wrbtr_c(13),
lv_newbs type newbs.
data: lv_payment_amount type wrbtr,
lv_issued_amount type wrbtr.
data: lv_payment type char16,
lv_issued type char16.
refresh: gt_bdc, gt_msg.
ls_options-dismode = 'N'.
ls_options-updmode = 'S'.
ls_options-nobinpt = 'X'.
ls_options-racommit = 'X'.
move: psi_com-payment_number(8) to lv_belnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lv_belnr
importing
output = lv_belnr.
sort pti_bsak by belnr.
read table pti_bsak into ls_bsak with key belnr = lv_belnr binary search.
"psi_com-payment_number.
concatenate ls_bsak-xblnr ls_bsak-gjahr into lv_xblnr.
* CONCATENATE psi_com-payment_number(8) '-T' INTO lv_bktxt.
* CONCATENATE psi_com-payment_number(8) '-C' INTO lv_augtx.
concatenate text-t05 psi_com-processed_date into lv_bktxt separated by space.
concatenate psi_com-processed_date+3(2)
psi_com-processed_date(2)
psi_com-processed_date+6(4)
into lv_date separated by '.'.
*--------------------------------------------------------------------*
**** REPLACE ALL OCCURRENCES OF ',' IN psi_com-payment_amount WITH '.'.
"16.11.2017
**** REPLACE ALL OCCURRENCES OF ',' IN psi_com-issued_amount WITH '.'. "16.11.2017
***
*** MOVE: psi_com-payment_amount TO lv_payment,
*** psi_com-issued_amount TO lv_issued.
***
*** REPLACE ALL OCCURRENCES OF ',' IN lv_payment WITH space.
*** REPLACE ALL OCCURRENCES OF ',' IN lv_issued WITH space.
***
*** replace all occurrences of '.' in lv_payment with ','.
*** replace all occurrences of '.' in lv_issued with ','.
***
*** CLEAR: lv_payment_amount,
*** lv_issued_amount.
***
**** PACK: lv_payment TO lv_payment_amount,
**** lv_issued TO lv_issued_amount.
*--------------------------------------------------------------------*
move: psi_com-payment_amount to lv_payment,
psi_com-issued_amount to lv_issued.
replace all occurrences of ',' in lv_payment with space.
* REPLACE ALL OCCURRENCES OF '.' IN lv_payment WITH ','.
replace all occurrences of ',' in lv_issued with space.
* REPLACE ALL OCCURRENCES OF '.' IN lv_issued WITH ','.
clear: lv_payment_amount,
lv_issued_amount.
pack: lv_payment to lv_payment_amount,
lv_issued to lv_issued_amount.
*--------------------------------------------------------------------*
if lv_payment_amount > lv_issued_amount.
* IF psi_com-payment_amount > psi_com-issued_amount.
move: '31' to lv_newbs.
lv_wrbtr = lv_payment_amount - lv_issued_amount.
* lv_wrbtr = lv_payment_amount - lv_issued_amount.
* lv_wrbtr = psi_com-payment_amount - psi_com-issued_amount.
else.
move: '21' to lv_newbs.
lv_wrbtr = lv_issued_amount - lv_payment_amount.
* lv_wrbtr = lv_issued_amount - lv_payment_amount.
* lv_wrbtr = psi_com-issued_amount - psi_com-payment_amount.
endif.
replace all occurrences of '.' in lv_issued with ','.
*--------------------------------------------------------------------*
perform zf_bdc_dynpro using: 'SAPMF05A' '0122' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-NEWKO' changing gt_bdc,
'BDC_OKCODE' '/00' changing gt_bdc,
'BKPF-BLDAT' lv_date changing gt_bdc,
'BKPF-BLART' gv_docu changing gt_bdc,
'BKPF-BUKRS' psi_com-sociedad changing gt_bdc,
'BKPF-BUDAT' lv_date changing gt_bdc,
'BKPF-MONAT' psi_com-processed_date(2) changing
gt_bdc,
'BKPF-WAERS' ls_bsak-waers changing gt_bdc,
'BKPF-XBLNR' psi_com-payment_number changing gt_bdc,
* 'BKPF-XBLNR' ls_bsak-belnr CHANGING gt_bdc,
'BKPF-BKTXT' lv_bktxt changing gt_bdc,
'RF05A-XPOS1(01)' ' ' changing gt_bdc,
'RF05A-XPOS1(02)' ' ' changing gt_bdc,
'RF05A-XPOS1(03)' ' ' changing gt_bdc,
'RF05A-XPOS1(04)' 'X' changing gt_bdc,
'RF05A-AUGTX' psi_com-payment_number changing gt_bdc,
'RF05A-NEWBS' '50' changing gt_bdc,
'RF05A-NEWKO' gv_cuenta_h changing gt_bdc.
replace all occurrences of '.' in psi_com-issued_amount with ','.
perform zf_bdc_dynpro using: 'SAPMF05A' '0300' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-WRBTR' changing gt_bdc,
'BDC_OKCODE' '=COBL_MORE' changing gt_bdc,
'BSEG-WRBTR' lv_issued changing gt_bdc, "Issued
Amount -------------------
* 'BSEG-WRBTR' psi_com-issued_amount CHANGING gt_bdc,
"Issued Amount -------------------
'BSEG-VALUT' lv_date changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPLKACB' '0002' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'COBL-GSBER' changing gt_bdc,
'BDC_OKCODE' '=ENTE' changing gt_bdc,
'COBL-GSBER' ls_bsak-gsber changing gt_bdc.
write: lv_wrbtr to lv_wrbtr_c.
* REPLACE ALL OCCURRENCES OF '.' IN lv_wrbtr_c WITH ','.
perform zf_bdc_dynpro using: 'SAPMF05A' '0300' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-VALUT' changing gt_bdc,
'BDC_OKCODE' '/00' changing gt_bdc,
'BSEG-WRBTR' lv_issued changing
gt_bdc,"--------------------------------
* 'BSEG-WRBTR' psi_com-issued_amount CHANGING
gt_bdc,"--------------------------------
* 'BSEG-WRBTR' lv_wrbtr_c CHANGING
gt_bdc,"--------------------------------
'BSEG-VALUT' lv_date changing gt_bdc,
'RF05A-NEWBS' lv_newbs changing gt_bdc,
'RF05A-NEWKO' ls_bsak-lifnr changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0302' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-ZLSCH' changing gt_bdc,
'BDC_OKCODE' '=SL' changing gt_bdc,
'BSEG-WRBTR' lv_wrbtr_c changing gt_bdc, "lv_newbs
CHANGING gt_bdc, -----------------------------
'BSEG-MWSKZ' '**' changing gt_bdc,
'BSEG-GSBER' 'WC0' changing gt_bdc,
'BSEG-ZTERM' 'D030' changing gt_bdc,
'BSEG-ZBD1T' '30' changing gt_bdc,
'BSEG-ZFBDT' lv_date changing gt_bdc,
'BSEG-ZLSCH' 'V' changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0710' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-XPOS1(03)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-AGBUK' psi_com-sociedad changing gt_bdc,
'RF05A-AGKON' gv_cuenta_d changing gt_bdc,
'RF05A-XFIFO' 'X' changing gt_bdc, "Indicador:
Reparto automático por antigüedad
'RF05A-XAUTS' ' ' changing gt_bdc, "Indicador:
Busqueda automatica
'RF05A-AGKOA' 'S' changing gt_bdc,
'RF05A-XNOPS' 'X' changing gt_bdc,
'RF05A-XPOS1(01)' '' changing gt_bdc,
'RF05A-XPOS1(03)' 'X' changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0731' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-SEL01(01)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-SEL01(01)' ls_bsak-belnr changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPDF05X' '3100' changing gt_bdc.
perform zf_bdc_field using: 'BDC_OKCODE' '=BU' changing gt_bdc,
'BDC_CURSOR' 'RF05A-ABPOS' changing gt_bdc,
'RF05A-ABPOS' '1' changing gt_bdc.
call function 'AUTHORITY_CHECK_TCODE'
exporting
tcode = 'FB05'
exceptions
ok = 1
not_ok = 2
others = 3.
if sy-subrc = 1.
call transaction 'FB05' using gt_bdc
messages into gt_msg
options from ls_options.
* PERFORM zf_msg_fb05 USING gt_msg
* psi_com
* text-t03.
sort gt_msg by msgid msgnr.
read table gt_msg into ls_msg with key msgid = 'F5'
msgnr = '312' binary search.
if sy-subrc eq 0.
move: icon_green_light to ls_comdata_alv-icon,
ls_msg-msgv1 to ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
else.
move: icon_red_light to ls_comdata_alv-icon,
* LS_msg-msgv1 TO ls_comdata_alv-doc_cont,
text-t03 to ls_comdata_alv-texto.
endif.
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount.
***************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
payment_amount WITH ','.
***************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-issued_amount
WITH ','.
append ls_comdata_alv to gt_comdata_alv.
else.
"Falta autorizacion
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount,
icon_red_light to ls_comdata_alv-icon,
text-e06 to ls_comdata_alv-texto.
******************* REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
payment_amount WITH ','.
******************* REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
issued_amount WITH ','.
append ls_comdata_alv to gt_comdata_alv.
endif.
endform. " ZF_FB05_DISTINTOS
*&---------------------------------------------------------------------*
*& Form ZF_BDC_DYNPRO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0339 text
* -->P_0340 text
* <--P_GT_BDC_TABLE text
*----------------------------------------------------------------------*
form zf_bdc_dynpro using pi_programa type bdc_prog "Se pone el type [Kiuwan]
pi_dynpro type bdc_dynr "Se pone el type [Kiuwan]
changing pto_bdc type tab_bdcdata.
clear gs_bdc_table.
gs_bdc_table-program = pi_programa.
gs_bdc_table-dynpro = pi_dynpro.
gs_bdc_table-dynbegin = 'X'.
append gs_bdc_table to pto_bdc.
endform. " ZF_BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form ZF_BDC_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form zf_bdc_field using pi_fnam "value(fnam)
pi_fval "value(fval)
changing pto_bdc type tab_bdcdata.
clear gs_bdc_table.
gs_bdc_table-fnam = pi_fnam.
gs_bdc_table-fval = pi_fval.
append gs_bdc_table to pto_bdc.
endform. "zf_bdc_field
*&---------------------------------------------------------------------*
*& Form ZF_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form zf_display.
data: gr_table type ref to cl_salv_table.
data: gr_functions type ref to cl_salv_functions_list.
cl_salv_table=>factory( importing r_salv_table = gr_table
changing t_table = gt_comdata_alv ).
gr_functions = gr_table->get_functions( ).
gr_functions->set_all( abap_true ).
gr_table->display( ).
endform. " ZF_DISPLAY
*&---------------------------------------------------------------------*
*& Form ZF_REGISTROS_ERR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form zf_registros_err.
data: ls_comdata_err type tyt_comdata_fb05,
ls_comdata_alv type zfi_compdata_alv.
"DATA: lv_texto TYPE char20.
loop at gt_comdata_err into ls_comdata_err.
case: ls_comdata_err-a_b.
when '3'.
"Pago ya compensado. Registro previamente procesado
move: text-e03 to ls_comdata_alv-texto.
when '4'.
"Pago check/payment distinto proveedor en doc: & ya existe
concatenate: text-e01 text-e02 into ls_comdata_alv-texto.
replace all occurrences of '&' in ls_comdata_alv-texto with ls_comdata_err-
belnr.
when '5'.
"Pago check/payment en doc: & ya existe
move: text-e05 to ls_comdata_alv-texto.
replace all occurrences of '&' in ls_comdata_alv-texto with ls_comdata_err-
belnr.
*
* WHEN OTHERS.
endcase.
move: ls_comdata_err-sociedad to ls_comdata_alv-sociedad,
ls_comdata_err-vendor_id to ls_comdata_alv-vendor_id,
ls_comdata_err-payment_number to ls_comdata_alv-payment_number,
ls_comdata_err-processed_date to ls_comdata_alv-processed_date,
ls_comdata_err-payment_amount to ls_comdata_alv-payment_amount,
icon_red_light to ls_comdata_alv-icon.
replace all occurrences of '.' in ls_comdata_err-issued_amount with ','.
move: ls_comdata_err-issued_amount to ls_comdata_alv-issued_amount.
append ls_comdata_alv to gt_comdata_alv.
endloop.
endform. " ZF_REGISTROS_ERR
*&---------------------------------------------------------------------*
*& Form ZF_FB05_IGUALES_C
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_<LFS_COMDATA> text
* <--P_PTO_RETURN text
*----------------------------------------------------------------------*
form zf_fb05_iguales_c using psi_com type tyt_comdata_fb05
changing pto_return type bapiret2_t.
data: ls_msg type bdcmsgcoll.
data: ls_options like ctu_params.
data: ls_bkpf type bkpf.
data: lv_xblnr type xblnr1,
lv_bktxt type bktxt,
lv_date(10) type c.
data: lv_belnr type belnr_d.
data: ls_comdata_alv type zfi_compdata_alv.
refresh: gt_bdc, gt_msg.
ls_options-dismode = 'N'.
ls_options-updmode = 'S'.
ls_options-nobinpt = 'X'.
ls_options-racommit = 'X'.
sort gt_bkpf by xblnr.
read table gt_bkpf into ls_bkpf with key xblnr = psi_com-payment_number
binary search.
move: psi_com-payment_number(8) to lv_belnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lv_belnr
importing
output = lv_belnr.
concatenate psi_com-processed_date+3(2)
psi_com-processed_date(2)
psi_com-processed_date+6(4)
into lv_date separated by '.'.
concatenate text-t05 psi_com-processed_date into lv_bktxt separated by space.
perform zf_bdc_dynpro using:'SAPMF05A' '0122' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-XPOS1(04)' changing gt_bdc,
'BDC_OKCODE' '=SL' changing gt_bdc,
'BKPF-BLDAT' lv_date changing gt_bdc,
'BKPF-BLART' gv_docu changing gt_bdc,
* 'BKPF-BLART' 'zv' changing gt_bdc,
'BKPF-BUKRS' psi_com-sociedad changing gt_bdc,
'BKPF-BUDAT' lv_date changing gt_bdc,
'BKPF-MONAT' psi_com-processed_date(2) changing
gt_bdc,
'BKPF-WAERS' ls_bkpf-waers changing gt_bdc,
* 'BKPF-WAERS' 'USD' CHANGING gt_bdc,
'BKPF-XBLNR' psi_com-payment_number changing gt_bdc,
* 'BKPF-XBLNR' '0020000020' CHANGING gt_bdc,
'BKPF-BKTXT' lv_bktxt changing gt_bdc,
'RF05A-XPOS1(01)' ' ' changing gt_bdc,
'RF05A-XPOS1(02)' ' ' changing gt_bdc,
'RF05A-XPOS1(03)' ' ' changing gt_bdc,
'RF05A-XPOS1(04)' 'X' changing gt_bdc,
* 'BKPF-BKTXT' '20000020-T' CHANGING gt_bdc,
'RF05A-AUGTX' psi_com-payment_number changing gt_bdc.
perform zf_bdc_dynpro using:'SAPMF05A' '0710' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-XPOS1(03)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-AGBUK' psi_com-sociedad changing gt_bdc,
'RF05A-AGKON' gv_cuenta_d changing gt_bdc,
* 'RF05A-AGKON' '40170000' CHANGING gt_bdc,
'RF05A-XFIFO' 'X' changing gt_bdc, "Indicador:
Reparto automático por antigüedad
'RF05A-XAUTS' ' ' changing gt_bdc, "Indicador:
Busqueda automatica
'RF05A-AGKOA' 'S' changing gt_bdc,
'RF05A-XNOPS' 'X' changing gt_bdc,
'RF05A-XPOS1(01)' '' changing gt_bdc,
'RF05A-XPOS1(03)' 'X' changing gt_bdc.
perform zf_bdc_dynpro using:'SAPMF05A' '0731' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-SEL01(02)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-SEL01(01)' lv_belnr changing gt_bdc,
* 'RF05A-SEL01(01)' '20000020' CHANGING gt_bdc,
'RF05A-SEL01(02)' ls_bkpf-belnr changing gt_bdc.
* 'RF05A-SEL01(02)' '20000062' CHANGING gt_bdc.
perform zf_bdc_dynpro using:'SAPDF05X' '3100' changing gt_bdc.
perform zf_bdc_field using: """"'BDC_OKCODE' '=BU' CHANGING gt_bdc,
'BDC_CURSOR' 'RF05A-ABPOS' changing gt_bdc,
'RF05A-ABPOS' '1' changing gt_bdc.
call function 'AUTHORITY_CHECK_TCODE'
exporting
tcode = 'FB05'
exceptions
ok = 1
not_ok = 2
others = 3.
if sy-subrc = 1.
call transaction 'FB05' using gt_bdc
messages into gt_msg
options from ls_options.
* PERFORM zf_msg_fb05 USING gt_msg
* psi_com
* text-t04.
sort gt_msg by msgid msgnr.
read table gt_msg into ls_msg with key msgid = 'F5'
msgnr = '312' binary search.
if sy-subrc eq 0.
move: icon_green_light to ls_comdata_alv-icon,
ls_msg-msgv1 to ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
else.
move: icon_red_light to ls_comdata_alv-icon,
* LS_msg-msgv1 TO ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
endif.
********************* DATA: lv_payment_amount TYPE wrbtr,
********************* lv_issued_amount TYPE wrbtr.
********************* CLEAR: lv_payment_amount,
********************* lv_issued_amount.
*pack: "psi_com-payment_amount to lv_payment_amount,
* psi_com-issued_amount to lv_issued_amount.
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount.
******************* REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
payment_amount WITH ','.
******************* REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
issued_amount WITH ','.
append ls_comdata_alv to gt_comdata_alv.
else.
"Falta autorizacion
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount,
icon_red_light to ls_comdata_alv-icon,
text-e06 to ls_comdata_alv-texto.
**************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-payment_amount
WITH ','.
**************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-issued_amount
WITH ','.
append ls_comdata_alv to gt_comdata_alv.
endif.
endform. " ZF_FB05_IGUALES_C
*&---------------------------------------------------------------------*
*& Form ZF_FB05_DISTINTOS_C
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_<LFS_COMDATA> text
* <--P_PTO_RETURN text
*----------------------------------------------------------------------*
form zf_fb05_distintos_c using psi_com type tyt_comdata_fb05
changing pto_return type bapiret2_t.
data: lv_payment_amount type wrbtr,
lv_issued_amount type wrbtr.
data: lv_payment(16) type c,
lv_issued(16) type c.
move: psi_com-payment_amount to lv_payment,
psi_com-issued_amount to lv_issued.
* REPLACE ALL OCCURRENCES OF ',' IN psi_com-payment_amount WITH '.'. "16.11.2017
* REPLACE ALL OCCURRENCES OF ',' IN psi_com-issued_amount WITH '.'. "16.11.2017
replace all occurrences of ',' in lv_payment with space.
replace all occurrences of ',' in lv_issued with space.
clear: lv_payment_amount,
lv_issued_amount.
pack: lv_payment to lv_payment_amount,
lv_issued to lv_issued_amount.
if lv_payment_amount > lv_issued_amount.
perform zf_fb05_c_distintos_may using psi_com
"lv_payment_amount
lv_issued_amount
lv_issued
changing pto_return. "TYPE bapiret2_t.
*FB05_C_MAYOR
else.
*FB05_C_MENOR
perform zf_fb05_c_distintos_men using psi_com
"lv_payment_amount
lv_issued_amount
lv_issued
changing pto_return. "TYPE bapiret2_t.
endif.
endform. " ZF_FB05_DISTINTOS_C
*&---------------------------------------------------------------------*
*& Form ZF_BSIS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LS_COMDATA_SOCIEDAD text
* -->P_LV_HKONT text
* -->P_LV_GJAHR text
* -->P_LV_BELNR text
* <--P_LS_BSIS text
*----------------------------------------------------------------------*
form zf_bsis using pi_sociedad type bukrs
pi_hkont type hkont
pi_gjahr type gjahr
pi_belnr type belnr_d
changing pso_bsis type bsis
po_subrc type sy-subrc.
select single *
from bsis
into pso_bsis
where bukrs = pi_sociedad and
hkont = pi_hkont and
gjahr = pi_gjahr and
belnr = pi_belnr.
if sy-subrc eq 0.
move: sy-subrc to po_subrc.
else.
move: '4' to po_subrc.
endif.
endform. " ZF_BSIS
*&---------------------------------------------------------------------*
*& Form ZF_BSAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LS_COMDATA_SOCIEDAD text
* -->P_LS_COMDATA_VENDOR_ID text
* -->P_LV_GJAHR text
* -->P_LV_BELNR text
* <--P_LS_BSAK text
* <--P_LV_SUBRC text
*----------------------------------------------------------------------*
form zf_bsak using pi_sociedad type bukrs
pi_vendor_id type lifnr
pi_gjahr type gjahr
pi_belnr type belnr_d
changing pso_bsak type bsak
po_subrc type sy-subrc.
select single *
from bsak
into pso_bsak
where bukrs eq pi_sociedad and
lifnr eq pi_vendor_id and
umsks eq abap_false and
umskz eq abap_false and
gjahr eq pi_gjahr and
belnr eq pi_belnr.
if sy-subrc eq 0.
move: sy-subrc to po_subrc.
else.
move: '4' to po_subrc.
endif.
endform. " ZF_BSAK
*&---------------------------------------------------------------------*
*& Form ZF_BKPF
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LS_COMDATA_SOCIEDAD text
* -->P_LS_COMDATA_PAYMENT_NUMBER text
* -->P_GV_DOCU text
* <--P_LS_BKPF text
* <--P_LV_SUBRC text
*----------------------------------------------------------------------*
form zf_bkpf using pi_sociedad type bukrs
pi_payment_number type char16
changing pso_bkpf type bkpf
po_subrc type sy-subrc.
select single *
from bkpf
into pso_bkpf
where bukrs eq pi_sociedad and
xblnr eq pi_payment_number and
stblg eq abap_false and
blart eq gv_docu.
if sy-subrc eq 0.
move: sy-subrc to po_subrc.
append pso_bkpf to gt_bkpf.
else.
move: '4' to po_subrc.
endif.
endform. " ZF_BKPF
*&---------------------------------------------------------------------*
*& Form ZF_MSG_FB05
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_MSG text
*----------------------------------------------------------------------*
form zf_msg_fb05 using pti_msg type tab_bdcmsgcoll
psi_com type tyt_comdata_fb05
psi_texto type inum.
data: ls_msg type bdcmsgcoll.
data: ls_comdata_alv type zfi_compdata_alv.
data: lv_payment_amount type wrbtr,
lv_issued_amount type wrbtr.
sort pti_msg by msgid msgnr.
read table pti_msg into ls_msg with key msgid = 'F5'
msgnr = '312' binary search.
if sy-subrc eq 0.
move: icon_green_light to ls_comdata_alv-icon,
ls_msg-msgv1 to ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
else.
move: icon_red_light to ls_comdata_alv-icon,
** LS_msg-msgv1 TO ls_comdata_alv-doc_cont,
* text-t04 TO ls_comdata_alv-texto.
psi_texto to ls_comdata_alv-texto.
endif.
clear: lv_payment_amount,
lv_issued_amount.
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount.
replace all occurrences of '.' in ls_comdata_alv-payment_amount with ','.
replace all occurrences of '.' in ls_comdata_alv-issued_amount with ','.
append ls_comdata_alv to gt_comdata_alv.
endform. " ZF_MSG_FB05
*&---------------------------------------------------------------------*
*& Form ZF_FB05_C_DISTINTOS_MAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PSI_COM text
* <--P_PTO_RETURN text
*----------------------------------------------------------------------*
form zf_fb05_c_distintos_may using psi_com type tyt_comdata_fb05
"pi_payment_amount
pi_issued_amount type wrbtr
pi_issued type char16
changing pto_return type bapiret2_t.
data: ls_msg type bdcmsgcoll,
ls_options like ctu_params,
ls_bkpf type bkpf,
ls_bsak type bsak,
ls_bsis type bsis.
data: lv_xblnr type xblnr1,
lv_bktxt type bktxt,
lv_date(10) type c,
lv_augtx type augtx_f05a,
lv_belnr type belnr_d.
data: lv_issued_amount type wrbtr.
data: ls_comdata_alv type zfi_compdata_alv.
refresh: gt_bdc, gt_msg.
ls_options-dismode = 'N'.
ls_options-updmode = 'S'.
ls_options-nobinpt = 'X'.
ls_options-racommit = 'X'.
sort gt_bkpf by xblnr.
read table gt_bkpf into ls_bkpf with key xblnr = psi_com-payment_number
binary search.
move: psi_com-payment_number(8) to lv_belnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lv_belnr
importing
output = lv_belnr.
concatenate psi_com-processed_date+3(2)
psi_com-processed_date(2)
psi_com-processed_date+6(4)
into lv_date separated by '.'.
* DATA: LV_WRBTR TYPE BSEG-WRBTR.
* REPLACE ALL OCCURRENCES OF '.' IN pi_issued_amount WITH ','.
*CONDENSE pi_issued_amount NO-GAPS.
replace all occurrences of '.' in pi_issued with ','.
condense pi_issued no-gaps .
* CLEAR: lv_issued_amount.
* PACK: PI_ISSUED TO lv_issued_amount.
* CONCATENATE 'COMPDATA RETORNO' psi_com-processed_date INTO lv_bktxt SEPARATED BY
space.
sort gt_bsak by belnr.
read table gt_bsak into ls_bsak with key belnr = lv_belnr binary search.
"psi_com-payment_number.
concatenate ls_bsak-xblnr ls_bsak-gjahr into lv_xblnr.
* CONCATENATE psi_com-payment_number(8) '-T' INTO lv_bktxt.
* CONCATENATE psi_com-payment_number(8) '-C' INTO lv_augtx.
concatenate text-t05 psi_com-processed_date into lv_bktxt separated by space.
sort gt_bsis by belnr.
read table gt_bsis into ls_bsis with key belnr = lv_belnr binary search.
"psi_com-payment_number.
perform zf_bdc_dynpro using:'SAPMF05A' '0122' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-NEWKO' changing gt_bdc,
'BDC_OKCODE' '/00' changing gt_bdc,
'BKPF-BLDAT' lv_date changing gt_bdc,
'BKPF-BLART' gv_docu changing gt_bdc,
* 'BKPF-BLART' 'zv' CHANGING gt_bdc,
'BKPF-BUKRS' psi_com-sociedad changing gt_bdc,
'BKPF-BUDAT' lv_date changing gt_bdc,
'BKPF-MONAT' psi_com-processed_date(2) changing
gt_bdc,
'BKPF-WAERS' ls_bkpf-waers changing gt_bdc,
* 'BKPF-WAERS' 'USD' CHANGING gt_bdc,
'BKPF-XBLNR' psi_com-payment_number changing gt_bdc,
"lv_belnr
'BKPF-BKTXT' lv_bktxt changing gt_bdc,
'RF05A-AUGTX' psi_com-payment_number changing gt_bdc,
'RF05A-XPOS1(01)' ' ' changing gt_bdc,
'RF05A-XPOS1(02)' ' ' changing gt_bdc,
'RF05A-XPOS1(03)' ' ' changing gt_bdc,
'RF05A-XPOS1(04)' 'X' changing gt_bdc,
'RF05A-NEWBS' '31' changing gt_bdc, "<--
'RF05A-NEWKO' psi_com-vendor_id changing gt_bdc. "<--
lifnr de entra
* 'RF05A-NEWKO' 'J5JL' CHANGING gt_bdc. "<--lifnr de
entra
perform zf_bdc_dynpro using:'SAPMF05A' '0302' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-ZFBDT' changing gt_bdc,
'BDC_OKCODE' '=SL' changing gt_bdc,
'BSEG-WRBTR' pi_issued changing gt_bdc, "<-- Issued
Amount
* 'BSEG-WRBTR' pi_issued_amount CHANGING gt_bdc, "<--
Issued Amount
* 'BSEG-WRBTR' '1000' CHANGING gt_bdc, "<-- Issued
Amount
* 'BSEG-MWSKZ' '**' CHANGING gt_bdc,
'BSEG-GSBER' ls_bsis-gsber changing gt_bdc, "<-- bsis
* 'BSEG-GSBER' 'WC0' CHANGING gt_bdc, "<-- bsis
* 'BSEG-ZTERM' 'D030' CHANGING gt_bdc,
* 'BSEG-ZBD1T' '30' CHANGING gt_bdc, "<--
* 'BSEG-ZFBDT' '14.11.2017' CHANGING gt_bdc, "<--
'BSEG-ZLSCH' 'V' changing gt_bdc. "<--
perform zf_bdc_dynpro using:'SAPMF05A' '0710' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-XPOS1(03)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-AGBUK' psi_com-sociedad changing gt_bdc,
'RF05A-AGKON' gv_cuenta_d changing gt_bdc,
'RF05A-XFIFO' 'X' changing gt_bdc, "Indicador:
Reparto automático por antigüedad
'RF05A-XAUTS' ' ' changing gt_bdc, "Indicador:
Busqueda automatica
'RF05A-AGKOA' 'S' changing gt_bdc,
'RF05A-XNOPS' 'X' changing gt_bdc,
'RF05A-XPOS1(01)' '' changing gt_bdc,
'RF05A-XPOS1(03)' 'X' changing gt_bdc.
perform zf_bdc_dynpro using:'SAPMF05A' '0731' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-SEL01(02)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-SEL01(01)' lv_belnr changing gt_bdc, " fichero
* 'RF05A-SEL01(01)' '20000025' CHANGING gt_bdc, "
fichero
' RF05A-SEL01(02)' ls_bkpf-belnr changing gt_bdc.
"bkpf-belnr
*' RF05A-SEL01(02)' '20000063' CHANGING gt_bdc. "bkpf-
belnr
perform zf_bdc_dynpro using:'SAPDF05X' '3100' changing gt_bdc.
perform zf_bdc_field using: 'BDC_OKCODE' '=BU' changing gt_bdc,
'BDC_CURSOR' 'RF05A-ABPOS' changing gt_bdc,
'RF05A-ABPOS' '1' changing gt_bdc.
call function 'AUTHORITY_CHECK_TCODE'
exporting
tcode = 'FB05'
exceptions
ok = 1
not_ok = 2
others = 3.
if sy-subrc = 1.
call transaction 'FB05' using gt_bdc
messages into gt_msg
options from ls_options.
* PERFORM zf_msg_fb05 USING gt_msg
* psi_com
* text-t03.
sort gt_msg by msgid msgnr.
read table gt_msg into ls_msg with key msgid = 'F5'
msgnr = '312' binary search.
if sy-subrc eq 0.
move: icon_green_light to ls_comdata_alv-icon,
ls_msg-msgv1 to ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
else.
move: icon_red_light to ls_comdata_alv-icon,
* LS_msg-msgv1 TO ls_comdata_alv-doc_cont,
text-t03 to ls_comdata_alv-texto.
endif.
******************* DATA: lv_payment_amount TYPE wrbtr.
******************* "lv_issued_amount TYPE wrbtr.
******************* CLEAR: lv_payment_amount,
******************* lv_issued_amount.
*pack: "psi_com-payment_amount to lv_payment_amount,
* psi_com-issued_amount to lv_issued_amount.
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount.
****************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
payment_amount WITH ','.
****************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
issued_amount WITH ','.
append ls_comdata_alv to gt_comdata_alv.
else.
"Falta autorizacion
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount,
icon_red_light to ls_comdata_alv-icon,
text-e06 to ls_comdata_alv-texto.
******************* REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
payment_amount WITH ','.
******************* REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
issued_amount WITH ','.
append ls_comdata_alv to gt_comdata_alv.
endif.
endform. " ZF_FB05_C_DISTINTOS_MAY
*&---------------------------------------------------------------------*
*& Form ZF_FB05_C_DISTINTOS_MEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PSI_COM text
* -->P_LV_ISSUED_AMOUNT text
* <--P_PTO_RETURN text
*----------------------------------------------------------------------*
form zf_fb05_c_distintos_men using psi_com type tyt_comdata_fb05
"pi_payment_amount
pi_issued_amount type wrbtr
pi_issued type char16
changing pto_return type bapiret2_t.
data: ls_msg type bdcmsgcoll,
ls_options like ctu_params,
ls_bkpf type bkpf,
ls_bsak type bsak,
ls_bsis type bsis.
data: lv_xblnr type xblnr1,
lv_bktxt type bktxt,
lv_date(10) type c,
lv_belnr type belnr_d.
data: ls_comdata_alv type zfi_compdata_alv.
"DATA: "LV_BKTXT TYPE BKTXT,
"lv_augtx TYPE augtx_f05a.
data: lv_issued_amount type wrbtr.
refresh: gt_bdc, gt_msg.
ls_options-dismode = 'N'.
ls_options-updmode = 'S'.
ls_options-nobinpt = 'X'.
ls_options-racommit = 'X'.
sort gt_bkpf by xblnr.
read table gt_bkpf into ls_bkpf with key xblnr = psi_com-payment_number
binary search.
move: psi_com-payment_number(8) to lv_belnr.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = lv_belnr
importing
output = lv_belnr.
concatenate psi_com-processed_date+3(2)
psi_com-processed_date(2)
psi_com-processed_date+6(4)
into lv_date separated by '.'.
sort gt_bsak by belnr.
read table gt_bsak into ls_bsak with key belnr = lv_belnr binary search.
"psi_com-payment_number.
concatenate ls_bsak-xblnr ls_bsak-gjahr into lv_xblnr.
* CONCATENATE ls_bsak-xblnr ls_bsak-gjahr INTO lv_xblnr.
* CONCATENATE psi_com-payment_number(8) '-T' INTO lv_bktxt.
* CONCATENATE psi_com-payment_number(8) '-C' INTO lv_augtx.
"CONCATENATE 'COMPDATA RETORNO' psi_com-processed_date INTO lv_bktxt SEPARATED BY
space.
concatenate text-t05 psi_com-processed_date into lv_bktxt separated by space.
replace all occurrences of '.' in pi_issued with ','.
condense pi_issued no-gaps.
* CLEAR: lv_issued_amount.
* PACK: pi_issued TO lv_issued_amount.
sort gt_bsis by belnr.
read table gt_bsis into ls_bsis with key belnr = lv_belnr binary search.
"psi_com-payment_number.
sort gt_bkpf by xblnr.
read table gt_bkpf into ls_bkpf with key xblnr = psi_com-payment_number binary
search.
*--------------------------------------------------------------------*
perform zf_bdc_dynpro using: 'SAPMF05A' '0122' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-NEWKO' changing gt_bdc,
'BDC_OKCODE' '=SL' changing gt_bdc,
'BKPF-BLDAT' lv_date changing gt_bdc,
'BKPF-BLART' gv_docu changing gt_bdc,
'BKPF-BUKRS' psi_com-sociedad changing gt_bdc,
'BKPF-BUDAT' lv_date changing gt_bdc,
'BKPF-MONAT' psi_com-processed_date(2) changing
gt_bdc,
'BKPF-WAERS' ls_bkpf-waers changing gt_bdc,
'BKPF-XBLNR' psi_com-payment_number changing gt_bdc,
'BKPF-BKTXT' lv_bktxt changing gt_bdc,
'RF05A-AUGTX' psi_com-payment_number changing gt_bdc,
'RF05A-XPOS1(01)' ' ' changing gt_bdc,
'RF05A-XPOS1(02)' ' ' changing gt_bdc,
'RF05A-XPOS1(03)' ' ' changing gt_bdc,
'RF05A-XPOS1(04)' 'X' changing gt_bdc,
'RF05A-NEWBS' '21' changing gt_bdc,
'RF05A-NEWKO' psi_com-vendor_id changing gt_bdc.
* 'RF05A-NEWKO' 'J5JL' CHANGING gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0302' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-GSBER' changing gt_bdc,
'BDC_OKCODE' '=ZK' changing gt_bdc,
'BSEG-WRBTR' pi_issued changing gt_bdc,
* 'BSEG-WRBTR' lv_issued_amount CHANGING gt_bdc,
* 'BSEG-WRBTR' pi_issued_amount CHANGING gt_bdc,
* 'BSEG-MWSKZ' '**' CHANGING gt_bdc,
'BSEG-GSBER' ls_bsis-gsber changing gt_bdc.
* 'BSEG-ZTERM' 'D001' CHANGING gt_bdc.
* 'BSEG-ZFBDT' '14.11.2017' CHANGING gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0332' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'BSEG-DMBE2' changing gt_bdc,
'BDC_OKCODE' '=SL' changing gt_bdc.
* 'BSEG-DMBE2' '4,62' CHANGING gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0710' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-XPOS1(03)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-AGBUK' ls_bsis-bukrs changing gt_bdc,
'RF05A-AGKON' gv_cuenta_d changing gt_bdc,
'RF05A-XFIFO' 'X' changing gt_bdc, "Indicador: Reparto automático por antigüedad
'RF05A-XAUTS' ' ' changing gt_bdc, "Indicador: Busqueda automatica
'RF05A-AGKOA' 'S' changing gt_bdc,
'RF05A-XNOPS' 'X' changing gt_bdc,
'RF05A-XPOS1(01)' '' changing gt_bdc,
'RF05A-XPOS1(03)' 'X' changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPMF05A' '0731' changing gt_bdc.
perform zf_bdc_field using: 'BDC_CURSOR' 'RF05A-SEL01(02)' changing gt_bdc,
'BDC_OKCODE' '=PA' changing gt_bdc,
'RF05A-SEL01(01)' lv_belnr changing gt_bdc,
'RF05A-SEL01(02)' ls_bkpf-belnr changing gt_bdc.
perform zf_bdc_dynpro using: 'SAPDF05X' '3100' changing gt_bdc.
perform zf_bdc_field using: 'BDC_OKCODE' '=BU' changing gt_bdc,
'BDC_CURSOR' 'RF05A-ABPOS' changing gt_bdc,
'RF05A-ABPOS' '1' changing gt_bdc.
*--------------------------------------------------------------------*
call function 'AUTHORITY_CHECK_TCODE'
exporting
tcode = 'FB05'
exceptions
ok = 1
not_ok = 2
others = 3.
if sy-subrc = 1.
call transaction 'FB05' using gt_bdc
messages into gt_msg
options from ls_options.
* PERFORM zf_msg_fb05 USING gt_msg
* psi_com
* text-t03.
sort gt_msg by msgid msgnr.
read table gt_msg into ls_msg with key msgid = 'F5'
msgnr = '312' binary search.
if sy-subrc eq 0.
move: icon_green_light to ls_comdata_alv-icon,
ls_msg-msgv1 to ls_comdata_alv-doc_cont,
text-t04 to ls_comdata_alv-texto.
else.
move: icon_red_light to ls_comdata_alv-icon,
* LS_msg-msgv1 TO ls_comdata_alv-doc_cont,
text-t03 to ls_comdata_alv-texto.
endif.
***************** DATA: lv_payment_amount TYPE wrbtr,
***************** lv_issued_amount TYPE wrbtr.
***************** CLEAR: lv_payment_amount,
***************** lv_issued_amount.
*pack: "psi_com-payment_amount to lv_payment_amount,
* psi_com-issued_amount to lv_issued_amount.
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount.
**************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-payment_amount
WITH ','.
**************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-issued_amount
WITH ','.
append ls_comdata_alv to gt_comdata_alv.
else.
"Falta autorizacion
move: psi_com-sociedad to ls_comdata_alv-sociedad,
psi_com-vendor_id to ls_comdata_alv-vendor_id,
psi_com-payment_number to ls_comdata_alv-payment_number,
psi_com-processed_date to ls_comdata_alv-processed_date,
psi_com-payment_amount to ls_comdata_alv-payment_amount,
psi_com-issued_amount to ls_comdata_alv-issued_amount,
icon_red_light to ls_comdata_alv-icon,
text-e06 to ls_comdata_alv-texto.
******************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
payment_amount WITH ','.
******************** REPLACE ALL OCCURRENCES OF '.' IN ls_comdata_alv-
issued_amount WITH ','.
append ls_comdata_alv to gt_comdata_alv.
endif.
endform. " ZF_FB05_C_DISTINTOS_MEN