Professional Documents
Culture Documents
LYGF YPCAF01 New
LYGF YPCAF01 New
***INCLUDE LYGF_YPCAF01 .
*----------------------------------------------------------------------*
* -------------------------------------------------------------------- *
* Change history *
* -------------------------------------------------------------------- *
* Change : 001 *
* Date : 07.Dec.2016 *
* Author : Arthur Alves Teixeira *
* Request : DEVK902023 *
* Description : Utilizar somente o campo per�odo da tela de sele��o, *
* chamando a fun��o original criada para este escopo e *
* no mesmo padr�o de todos os outros registros. *
* -------------------------------------------------------------------- *
* Change : 002 *
* Date : 07.Jun.2017 *
* Author : Thatiana Narita e Arthur Alves Teixeira *
* Request : DEVK902419 *
* Description : AD. 3068252 - Tipo de Contribuinte *
* -------------------------------------------------------------------- *
* Change : 003 *
* Ticket : 3067499 *
* Date : 27.Jun.2017 *
* Author : Arthur Alves Teixeira *
* Request : DEVK902456 *
* Description : BUSCAR_NOTA_FISCAL - Virtual Forge: 'Multiple identical*
* SELECT Statements in the same Module'. *
* Same functional definition used in buscar_nota_fiscal, *
* (include LYGF_YPCAF01) but another technical definition*
* New logic in 'YSDMMFCMSEG_CARGA' function. *
* -------------------------------------------------------------------- *
* Change : 004 *
* Date : 18.Jul.2017 *
* Author : Thatiana Narita *
* Request : *
* Description : AD. 3071346 - Realizar o assign somente quando tiver *
* valor *
* -------------------------------------------------------------------- *
* Change : 005 *
* Date : 17.May.2018 *
* Author : CDC *
* Request : DEVK903089 *
* Description : Ch.3094011 - REINF add field IND_DESON_FOLHA_CPRB *
*----------------------------------------------------------------------*
* Change : 006 *
* Date : 23.Set.2020 *
* Author : Marcio Bogaz de Aguiar *
* Request : DEVK903974 *
* Description : Ajustes Performance - Integra��o SAP *
*----------------------------------------------------------------------*
* Change : 007 *
* Date : 14.Out.2020 *
* Author : Bruno Vin�cius de Andrade Xavier *
* Request : DEVK903974 *
* Description : Modification of USING Parameters in Subroutine *
* -------------------------------------------------------------------- *
* Change : 008 *
* Date : 31.Mai.2021 *
* Author : Arthur Alves Teixeira *
* Request : DEVK904253 *
* Description : Retirar SELECT de dentro de LOOP. *
* -------------------------------------------------------------------- *
* Change : 009 *
* Date : 21.Jun.2021 *
* Author : Diego Pereira Moretti *
* Request : DEVK904275 *
* Description : Code Review - Modification of USING Parameters *
* -------------------------------------------------------------------- *
* Change : 016 *
* Date : 07.Jul.2022 *
* Author : Celso Dias Cunha *
* Request : DEVK904757 *
* Description : Considerar CRTN para preencher MIN_COMP *
* -------------------------------------------------------------------- *
*FORMS*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form prepara_range_conta
*&---------------------------------------------------------------------*
FORM prepara_range_conta TABLES p_range STRUCTURE rng_objnr
USING p_conta.
p_range-sign = 'I'.
p_range-option = 'EQ'.
p_range-low = p_conta.
APPEND p_range.
IF w_branch = '0000'.
MOVE: p_pfj+6(4) TO w_branch.
ENDIF.
* CALL FUNCTION 'J_1BREAD_BRANCH_DATA' "008-
* EXPORTING "008-
* branch = w_branch "008-
* bukrs = p_emp "008-
* IMPORTING "008-
* address = address "008-
* branch_data = branch_data "008-
* cgc_number = w_cgc "008-
* address1 = address1 "008-
* EXCEPTIONS "008-
* branch_not_found = 1 "008-
* address_not_found = 2 "008-
* company_not_found = 3 "008-
* OTHERS = 4. "008-
* IF NOT sy-subrc IS INITIAL. "006+ "008-
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno "006+ "008-
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. "006+ "008-
* ENDIF. "006+ "008-
READ TABLE t_branch_data "008+
INTO branch_data "008+
WITH KEY bukrs = w_emp "008+
branch = w_branch "008+
BINARY SEARCH. "008+
IF NOT sy-subrc IS INITIAL. "008+
CLEAR branch_data. "008+
ENDIF. "008+
*cdc - ocor 2608063 - 05/05/2011 - O campo E-MAIL n�o est� sendo populado.
IF adr6-smtp_addr IS INITIAL.
ENDIF.
*cdc fim
* if branch_data-stcd2 is initial.
* move: branch_data-stcd1 to ti_yfislfa1-ind_fisica_juridica.
* else.
* move: branch_data-stcd2 to ti_yfislfa1-ind_fisica_juridica.
* endif.
* SGS - 14/03/14 - AD. 2954139 - se n�o encontra dever ser nulo e n�o 00000
IF w_econi NE 0.
* SGS - 14/03/14 - AD. 2954139
* SGS - 21/01/13 - AD. 2909499 - Integra��o do CNAE.
MOVE w_econi TO ti_yfislfa1-cnae.
* SGS - 21/01/13 - AD. 2909499
ENDIF.
ENDIF.
ENDFORM. " preparar_segmentos_filiais
*&---------------------------------------------------------------------*
*& Form CARREGAr_tabelas_clientes
*&---------------------------------------------------------------------*
FORM carregar_tabelas_clientes USING p_pfj.
ENDIF. "002+
* Fim da alteracao.
ENDIF.
* CATCH CX_SY_DYNAMIC_OSQL_SEMANTICS.
* select LIFNR LAND1 NAME1 NAME2 NAME3 NAME4 ORT01 ORT02 PSTLZ REGIO
* SORTL STRAS ADRNR ERDAT KTOKK STCD1 STCD2 TELF1 TELF2 TELFX
* TELX1 STCEG STKZN TXJCD STCD3 STCD4 BRSCH
* into corresponding fields of table TI_LFA1
* FROM LFA1
* where LIFNR eq P_PFJ.
* ENDTRY.
* SELECT * "008-
* INTO CORRESPONDING FIELDS OF TABLE ti_lfa1 "008-
* FROM lfa1 "008-
* WHERE lifnr EQ p_pfj. "008-
CLEAR ti_lfa1. "008+
READ TABLE ti_lfa1 "008+
WITH KEY lifnr = p_pfj "008+
BINARY SEARCH. "008+
CHECK sy-subrc IS INITIAL. "008+
* IF ti_lfa1-stcd2 IS INITIAL.
* MOVE: ti_lfa1-stcd1 TO ti_yfislfa1-cpf_cgc.
* ELSE.
* MOVE: ti_lfa1-stcd2 TO ti_yfislfa1-cpf_cgc.
* ENDIF.
ENDIF. "002+
* TYN - AD. 3036084 - 28/04/2016 - Incluir campo CNAE Dinamicamente
* SGS - 05/08/13 - AD. 2932823 - repetia os dados de uma PFJ nas outras que n�o
tem informa��o.
CLEAR ti_yfislfa1_1.
* SGS - 05/08/13 - AD. 2932823
* if ( not TI_LFA1-STCEG is initial or
IF <ff> IS ASSIGNED.
MOVE: <ff> TO ti_yfislfa1_1-inscr_suframa.
ENDIF.
UNASSIGN <ff>. "004+
* if ( not <ff> is initial or
IF ( NOT ti_lfa1-pfach IS INITIAL OR
NOT ti_lfa1-pstl2 IS INITIAL OR
NOT ti_lfa1-pstlz IS INITIAL ).
* TYN - 29/06
* move: TI_LFA1-STCEG to TI_YFISLFA1_1-INSCR_SUFRAMA,
MOVE: ti_lfa1-pfach TO ti_yfislfa1_1-pfach,
ti_lfa1-pstl2 TO ti_yfislfa1_1-pstl2,
ti_lfa1-pstlz TO ti_yfislfa1_1-pstlz.
ENDIF.
ENDIF.
* Fim da alteracao.
ENDIF.
*&---------------------------------------------------------------------*
*& Form carregar_tabelas_otc
*&---------------------------------------------------------------------*
FORM carregar_tabelas_otc
* SGS - 29/06/12 - AD.2889110 - Melhoria de performance
TABLES r_data
* SGS - 29/06/12 - AD.2889110
USING p_pfj
p_bukrs
p_buzei
p_gjahr.
SELECT SINGLE name1 name2 name3 name4 pstlz ort01 land1 stras
stcd1 stcd2 regio stkzn stcd3 stcd4
INTO CORRESPONDING FIELDS OF bsec
FROM bsec
WHERE bukrs = p_bukrs
AND belnr = p_pfj
AND gjahr = p_gjahr
AND buzei = p_buzei.
* SGS - 07/02/14 - AD. 2950585 - transformar em din�mico pois nem todos os clientes
possuem os novos campos
* select single NAME1 NAME2 NAME3 NAME4 PSTLZ ORT01 LAND1 STRAS
* STCD1 STCD2 REGIO STKZN J_1BMUNINS J_1BSTAINS
* SGS - 02/01/12 - AD.2868559 - N�mero e Bairro n�o eram integrados
* HOUSE_NUM1 CITY2
* SGS - 02/01/12 - AD.2868559
TABLES: dd03l.
FIELD-SYMBOLS: <fs> TYPE ANY.
SELECT SINGLE *
* SGS - 07/02/14 - AD. 2950585
INTO CORRESPONDING FIELDS OF ti_j1bnfcpd
FROM j_1bnfcpd
WHERE docnum = p_pfj.
IF ti_j1bnfcpd-stcd2 IS INITIAL.
MOVE: ti_j1bnfcpd-stcd1 TO ti_yfislfa1-cpf_cgc.
ELSE.
MOVE: ti_j1bnfcpd-stcd2 TO ti_yfislfa1-cpf_cgc.
ENDIF.
SELECT SINGLE *
FROM adrc
INTO CORRESPONDING FIELDS OF ti_adrc
WHERE addrnumber = ti_vbpa-adrnr.
* cdc 24/10/2016 - Ch.3042996 - Begin - PFJs OTC/OTV devem ser extra�das mesmo com
dados incompletos.
* CHECK ti_vbpa3 IS NOT INITIAL.
* cdc 24/10/2016 - Ch.3042996 - End
IF ti_vbpa3-stcd2 IS INITIAL.
MOVE: ti_vbpa3-stcd1 TO ti_yfislfa1-cpf_cgc.
ELSE.
MOVE: ti_vbpa3-stcd2 TO ti_yfislfa1-cpf_cgc.
ENDIF.
ENDFORM. "pfj_otc_vbpa
* SGS - 13/03/15 - AD.2988350
*&---------------------------------------------------------------------*
*& Form PREPARAR_SEGMENTOS_OTC
*&---------------------------------------------------------------------*
FORM preparar_segmentos_otc.
IF bsec-stcd2 IS INITIAL.
MOVE: bsec-stcd1 TO ti_yfislfa1-cpf_cgc.
ELSE.
MOVE: bsec-stcd2 TO ti_yfislfa1-cpf_cgc.
ENDIF.
IF NOT w_razao_social IS INITIAL.
ENDIF.
ENDFORM. " PREPARAR_SEGMENTOS_OTC
*&---------------------------------------------------------------------*
*& Form tratar_campo_data
*&---------------------------------------------------------------------*
FORM tratar_campo_data CHANGING p_data.
IF p_data EQ 0 OR
p_data IS INITIAL.
CLEAR p_data.
ENDIF.
*---------------------------------------------------------------------*
* FORM idoc_status_fill *
*---------------------------------------------------------------------*
FORM idoc_status_fill USING value(status)
value(docnum)
value(msgty)
value(msgid)
value(msgno)
value(msgv1)
value(msgv2)
value(msgv3)
value(msgv4)
value(routid)
value(segnum)
value(segfld).
CLEAR w_idoc_status.
w_idoc_status-uname = sy-uname.
w_idoc_status-status = status.
w_idoc_status-docnum = docnum.
w_idoc_status-msgty = msgty.
w_idoc_status-msgid = msgid.
w_idoc_status-msgno = msgno.
w_idoc_status-msgv1 = msgv1.
w_idoc_status-msgv2 = msgv2.
w_idoc_status-msgv3 = msgv3.
w_idoc_status-msgv4 = msgv4.
w_idoc_status-segnum = segnum.
w_idoc_status-segfld = segfld.
w_idoc_status-repid = 'SAPLEINM'.
w_idoc_status-routid = routid.
APPEND w_idoc_status.
ENDFORM. "idoc_status_fill
*&----------------------------------------------------------------*
*& Form INFORMAR_STATUS_APLICACAO
*&----------------------------------------------------------------*
FORM informar_status_aplicacao TABLES ti_return STRUCTURE bapiret2
idoc_stat STRUCTURE bdidocstat
USING p_erro p_docnum.
DATA: w_status(2).
IF p_erro IS INITIAL.
w_status = c_status_53.
ELSE.
w_status = c_status_51.
ENDIF.
LOOP AT ti_return.
PERFORM idoc_status_fill USING
w_status "value(status)
p_docnum "value(docnum)
ti_return-type "value(msgty)
space "value(msgid)
space "value(msgno)
ti_return-message "value(msgv1)
ti_return-message_v1 "value(msgv2)
ti_return-message_v2 "value(msgv3)
space "value(msgv4)
space "value(routid)
space "value(segnum)
space ."value(segfld).
ENDLOOP.
idoc_stat[] = w_idoc_status[].
SELECT SINGLE *
FROM ypmtl_idocexec
INTO ypmtl_idocexec
WHERE mensagem EQ p_msg.
*&---------------------------------------------------------------------*
*& Form buscar_nota_fiscal
*&---------------------------------------------------------------------*
*FORM buscar_nota_fiscal TABLES r_nftype STRUCTURE rsrange"003-
* ti_vbfa STRUCTURE ti_vbfa "003-
* CHANGING field_s STRUCTURE ti_notafiscal. "003-
*----------------*
*Variaveis Locais*
*----------------*
*-----------------------*
*Tabelas Internas Locais*
*-----------------------*
* VAlores do IPI
* DATA: BEGIN OF ti_j1bnfstx OCCURS 0. "003-
* INCLUDE STRUCTURE j_1bnfstx. "003-
* DATA:END OF ti_j1bnfstx. "003-
*-------------*
*MACROS Locais*
*-------------*
* Calcula o IPI
* call function 'J_1B_NF_VALUE_DETERMINATION_I' "003-
* exporting "003-
* nf_item = &5 "003-
* importing "003-
* ext_item = ti_j1binlin "003-
* tables "003-
* nf_item_tax = ti_j1bnfstx. "003-
* END-OF-DEFINITION. "003-
*-----------------------*
*INICIO DO PROCESSAMENTO*
*-----------------------*
*----------------------------------------------*
*Busca Nota Fiscal por Estoque(mseg->j_1bnflin)*
*----------------------------------------------*
*--------------------------------------------*
*Busca Nota Fiscal LI ( m_mebel -> j_1bnflin)*
*--------------------------------------------*
* CLEAR : wl_refkey, wl_refitm. "003-
*Seleciona MEBEL_NF
* PERFORM mebel_nf USING field_s "003-
* CHANGING wl_refkey "003-
* wl_refitm. "003-
* Achar nota Fiscal.
* m_nf_find wl_refkey "003-
* 'LI' "003-
* wl_refitm "003-
* r_nftype "003-
* ti_nfitem "003-
* field_s. "003-
*--------------------------------------------*
*Buscar Nota Fiscal LI(vbfa-j_1bnflin) *
*--------------------------------------------*
* CLEAR : wl_refkey, wl_refitm. "003-
*-----------------------*
*Tabelas Internas Locais*
*-----------------------*
* DATA: BEGIN OF ti_mebel OCCURS 0, "003-
* lfgja LIKE m_mebel-lfgja, "003-
* lfbnr LIKE m_mebel-lfbnr, "003-
* lfpos LIKE m_mebel-lfpos, "003-
* ebeln LIKE m_mebel-ebeln, "003-
* ebelp LIKE m_mebel-ebelp, "003-
* zekkn LIKE m_mebel-zekkn, "003-
* vgabe LIKE m_mebel-vgabe, "003-
* gjahr LIKE m_mebel-gjahr, "003-
* belnr LIKE m_mebel-belnr, "003-
* buzei LIKE m_mebel-buzei, "003-
* END OF ti_mebel. "003-
*---------*
*Variaveis*
*---------*
* DATA: wl_belnr LIKE bkpf-belnr. "003-
*-----------------------*
*Inicio do Processamento*
*-----------------------*
*Selecionar Registros da mebel
* SELECT lfgja lfbnr lfpos ebeln ebelp "003-
* zekkn vgabe gjahr belnr buzei "003-
* INTO CORRESPONDING FIELDS OF TABLE ti_mebel "003-
* FROM m_mebel "003-
* WHERE lfgja EQ field_s-mjahr "003-
* AND lfbnr EQ field_s-mblnr "003-
* AND lfpos EQ field_s-zeile "003-
* AND vgabe = '2'. "003-
* ENDIF. "003-
* ENDIF. "003-
* ENDLOOP. "003-
*-----------------*
*Constantes Locais*
*-----------------*
* CONSTANTS: cl_fatura(50) TYPE c VALUE 'MNOUSP56', "003-
* cl_mov_mat(50) TYPE c VALUE 'Rhi'. "003-
*-----------------------*
*Tabelas Internas Locais*
*-----------------------*
*-----------------------*
*Inicio do Processamento*
*-----------------------*
* SGS
* Seleciona a Fatura/ Movimento de Mercadoria
* select VBELV POSNV VBELN POSNN VBTYP_N VBTYP_V ERDAT ERZET STUFE
* into corresponding fields of table TI_VBFA_1
* from VBFA
* for all entries in TI_VBFA_AUX
* where VBELV eq TI_VBFA_AUX-VBELV
* and POSNV eq TI_VBFA_AUX-POSNV
* and ( VBTYP_N = 'M' or VBTYP_N = 'O' or
* VBTYP_N = 'U' or VBTYP_N = 'N' or
* VBTYP_N = '5' or VBTYP_N = '6' or
* VBTYP_N = 'S' or VBTYP_N = 'P' or
* VBTYP_N = 'h' or VBTYP_N = 'R' )
* and STUFE eq TI_VBFA_AUX-STUFE.
* cdc fim
* LOOP AT r_ti_vbfa. "003-
* IF ( r_ti_vbfa-vbtyp_n EQ 'M' "003-
* OR r_ti_vbfa-vbtyp_n EQ 'O' "003-
* OR r_ti_vbfa-vbtyp_n EQ 'U' "003-
* OR r_ti_vbfa-vbtyp_n EQ 'N' "003-
* OR r_ti_vbfa-vbtyp_n EQ '5' "003-
* OR r_ti_vbfa-vbtyp_n EQ '6' "003-
* OR r_ti_vbfa-vbtyp_n EQ 'S' "003-
* OR r_ti_vbfa-vbtyp_n EQ 'P' "003-
* OR r_ti_vbfa-vbtyp_n EQ 'h' "003-
* OR r_ti_vbfa-vbtyp_n EQ 'R'). "003-
* ENDIF. "003-
* ENDLOOP. "003-
* ENDLOOP. "003-
* End - SGS - 27/02/09
* ENDIF. "003-
*Mover Fatura
* IF ti_vbfa_1-vbtyp_n CA cl_fatura. "003-
* ENDIF. "003-
* ELSE. "003-
* ENDIF. "003-
* ENDLOOP. "003-
* ENDLOOP. "003-
**&---------------------------------------------------------------------*
**& Form enviar_ctr_xml
**&---------------------------------------------------------------------*
*FORM enviar_ctr_xml TABLES w_idoc_data STRUCTURE edidd
* USING w_tabix
* w_idoc_cont.
*
* DATA: es_ysynctr LIKE ysynctr.
* DATA: w_sy_tabyx LIKE sy-tabix. "007+
*
*
** Popular Segmento de Controle de IDOC.
* MOVE: w_tabix TO es_ysynctr-total_linha,
* w_idoc_cont TO es_ysynctr-total_registro.
*
* MOVE: w_tabix TO w_sy_tabyx. "007+
*
** ADD 1 TO w_tabix. "007-
* ADD 1 TO w_sy_tabyx. "007+
* w_idoc_data-segnam = 'YSYNCTR'.
* m_popular_segmento_idoc w_sy_tabyx es_ysynctr w_idoc_data.
*
*ENDFORM. " enviar_ctr_xml
*&---------------------------------------------------------------------*
*& Form DEFINE_PERIODO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_R_DATA text
* -->P_V_MONAT text
* -->P_V_GJAHR text
*----------------------------------------------------------------------*
*FORM define_periodo TABLES p_data "001-
* USING p_monat "001-
* p_gjahr. "001-
ENDIF.