CE PLUS - Nota 013091

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 01/07/2013 00:00:00

Data/Hora Última Alteração: 19/08/2013 13:54:58

Descrição da Nota: ERRO NA CONTABILIZAÇÃO DOS IMPOSTOS NA NOTA FISCAL GLOBAL

Sintoma

Erro na contabilização dos impostos na Nota Fiscal Global quando temos quebra por item e impostos

com regime tributário suspenso.

 

 

Solução

Ajustar o programa quanto na tabela /PWS/ZYCIT048-QTD_ITEM estiver igual a 1, e tiver impostos

suspensos de tributação.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

DESENVOLVIMENTO ADICIONAL - CONTABILIZAR IMPOSTOS NA NOTA FISCAL GLOBAL

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 13091 Data: 01/07/2013 Hora: 16:35:08

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 13091

Categoria                : Erro de Programa

Prioridade               : Baixa

Versão PW.CE             : 9.0

Pacote                   : 00005

Agrupamento              : 00158

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

12841  - 00001 - 9.0    - 00003  - DESENVOLVIMENTO ADICIONAL - CONTABILIZAR IMPOSTOS NA NOTA FISCAL

----------------------------------------------------------------------------------------------------

ERRO NA CONTABILIZAÇÃO DOS IMPOSTOS NA NOTA FISCAL GLOBAL

----------------------------------------------------------------------------------------------------

Palavras Chave:

CONTABILIZAR OS IMPOSTOS NA NFG - /PWS/SAPMZYCI016 - CONT_IMP_NF

/PWS/ZYCIT062-CONT_IMP_NF

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI016F02

REPS /PWS/MZYCI016X01

REPS /PWS/MZYCI016F01

REPT /PWS/SAPMZYCI016

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI016F02

 

...

* >> Início da inclusão:

FORM contabiliza_impostos_nf.

  PERFORM lancamento_impostos_nf.

  PERFORM get_parameters_f-02.

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = v_trans.

  itab_zycbe033-tabela = v_ntabela.

  itab_zycbe033-cpochv = /pws/zycie041-nrseq.

  itab_zycbe033-bldat = sy-datlo.

  itab_zycbe033-d_valut = sy-datlo.

  itab_zycbe033-budat   = sy-datlo.

  v_nrseq = /pws/zycie041-nrseq.

  SHIFT v_nrseq LEFT DELETING LEADING '0'.

  CONCATENATE  /pws/zycie041-embarca '-' v_nrseq

               INTO v_bktxt.

  itab_zycbe033-bktxt = v_bktxt.

  itab_zycbe033-brnch = /pws/zycie041-j_1bbranch.

  itab_zycbe033-d_zuonr = itab_zycbe033-c_zuonr = v_zuonr.

  itab_zycbe033-d_sgtxt = itab_zycbe033-c_sgtxt = v_sgtxt.

  v_nfnum = /pws/zycie041-nfnum.

  itab_zycbe033-xblnr = v_nfnum.

  v_forn  = /pws/zycie041-lfsnr.

  v_nrseq = /pws/zycie041-nrseq.

  SHIFT v_nrseq LEFT DELETING LEADING '0'.

  SHIFT v_forn LEFT  DELETING LEADING  ' '.

  READ TABLE itab_zycbt013 WITH KEY cpor3 = 'SGTXT'.

  IF sy-subrc = 0.

    CONCATENATE itab_zycbt013-descr /pws/zycie041-embarca v_nrseq

                INTO v_sgtxt SEPARATED BY space.

  ELSE.

    CONCATENATE text-070 /pws/zycie041-embarca '-' v_nrseq ' - '

           text-071 v_nfnum ' - ' text-072 v_forn INTO v_sgtxt.

  ENDIF.

  itab_zycbe033-d_sgtxt = v_sgtxt.

  itab_zycbe033-c_sgtxt = v_sgtxt.

  PERFORM verify_null_field USING /pws/zycie041-bukrs

                                  'BUKRS'

                                  text-073.

  itab_zycbe033-bukrs  = /pws/zycie041-bukrs.

  PERFORM verify_null_field USING wa_zycbt007-waersb

                                  'WAERS'

                                  text-074.

  itab_zycbe033-waers  = wa_zycbt007-waersb.

  PERFORM verify_null_field USING wa_zycbt011-blart

                                  'BLART'

                                  text-075.

  itab_zycbe033-blart  = wa_zycbt011-blart.

  LOOP AT  itab_zycit003 WHERE NOT gsber IS initial.

    itab_zycbe033-d_gsber = itab_zycit003-gsber.

    itab_zycbe033-c_gsber = itab_zycit003-gsber.

  ENDLOOP.

  READ TABLE itab_ekkn INDEX 1.

  IF sy-subrc EQ 0.

    itab_zycbe033-d_kostl = itab_ekkn-kostl.

    itab_zycbe033-d_prctr = itab_ekkn-prctr.

    itab_zycbe033-d_fipos = itab_ekkn-fipos.

    itab_zycbe033-d_fictr = itab_ekkn-fictr.

    itab_zycbe033-c_kostl = itab_ekkn-kostl.

    itab_zycbe033-c_prctr = itab_ekkn-prctr.

    itab_zycbe033-c_fipos = itab_ekkn-fipos.

    itab_zycbe033-c_fictr = itab_ekkn-fictr.

    itab_zycbe033-ps_psp_pnr  = itab_ekkn-ps_psp_pnr.

  ENDIF.

  itab_zycbe033-brnch = /pws/zycie041-j_1bbranch.

  v_codeven = '006IC'.

  CLEAR: v_xblnr, v_zuonr, v_sgtxt, v_bktxt.

  CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

       EXPORTING

            v_nrseq   = /pws/zycie001-nrseq

            v_codeven = v_codeven

            v_nfnum   = /pws/zycie041-nfnum

       IMPORTING

            v_xblnr   = v_xblnr

            v_zuonr   = v_zuonr

            v_sgtxt   = v_sgtxt

            v_bktxt   = v_bktxt.

  itab_zycbe033-d_sgtxt = itab_zycbe033-c_sgtxt = v_sgtxt.

  itab_zycbe033-xblnr   = v_xblnr.

  APPEND itab_zycbe033.

  FREE itab_contas.

  LOOP AT itab_zycbt035 WHERE wrbtr > 0.

    CASE itab_zycbt035-imposto.

      WHEN 'PIS' OR 'BPIS'.

        v_codeven = '006PI'.

      WHEN 'COFI' OR 'BCOF'.

        v_codeven = '006CO'.

      WHEN OTHERS.

        IF itab_zycbt035-ktosl+0(2) = 'IC'.

          v_codeven = '006IC'.

        ELSE.

          v_codeven = '006IP'.

        ENDIF.

    ENDCASE.

    CLEAR: v_xblnr, v_zuonr, v_sgtxt, v_bktxt.

    CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

         EXPORTING

              v_nrseq   = /pws/zycie001-nrseq

              v_codeven = v_codeven

              v_nfnum   = /pws/zycie041-nfnum

              v_ktosl   = itab_zycbt035-ktosl

         IMPORTING

              v_xblnr   = v_xblnr

              v_zuonr   = v_zuonr

              v_sgtxt   = v_sgtxt

              v_bktxt   = v_bktxt.

    itab_zycbe033-xblnr   = v_xblnr.

    itab_zycbt035-d_xblnr = itab_zycbt035-c_xblnr = v_xblnr.

    itab_zycbt035-d_zuonr = itab_zycbt035-c_zuonr = v_zuonr.

    itab_zycbt035-d_sgtxt = itab_zycbt035-c_sgtxt = v_sgtxt.

    MODIFY itab_zycbt035.

    MOVE-CORRESPONDING itab_zycbt035 TO itab_contas.

    APPEND itab_contas.

  ENDLOOP.

  IF itab_contas[] IS INITIAL.

    MESSAGE i015 WITH text-133 text-134 itab_doc-docnum.

  ENDIF.

  LOOP AT itab_zycbt034.

    MESSAGE i016 WITH itab_zycbt034-descricao.

  ENDLOOP.

  IF itab_zycbt034[] IS INITIAL AND

     NOT itab_contas[] IS INITIAL.

    CALL FUNCTION '/PWS/ZYCI_TRANSACAO_F_02C'

         EXPORTING

              v_modo          = v_modo_bi

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

              t_contas        = itab_contas

         EXCEPTIONS

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = v_trans

                                        tabela = v_ntabela

                                        cpochv = /pws/zycie041-nrseq

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        MESSAGE i057 WITH itab_zycbt032-belnr.

        /pws/zycie041-statusp_f_02 = 'C'.

        /pws/zycie041-belnr_f_02   = itab_zycbt032-belnr.

        /pws/zycie041-dt_f_02      = sy-datlo.

        /pws/zycie041-docnum       = itab_doc-docnum.

        MODIFY /pws/zycit041 FROM /pws/zycie041.

        MOVE-CORRESPONDING /pws/zycie041 TO /pws/zycit041.

        PERFORM carrega_log USING '/PWS/ZYCIT041' 'U'

                ' '  '/PWS/SAPMZYCI016' /pws/zycit041-nrseq.

        COMMIT WORK.

      ELSE.

        LOOP AT itab_zycbt032.

          MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                            itab_zycbt032-msg+50(50).

        ENDLOOP.

      ENDIF.

    ELSE.

      LOOP AT itab_zycbt034.

        MESSAGE i016 WITH itab_zycbt034-descricao.

      ENDLOOP.

    ENDIF.

  ELSE.

    LOOP AT itab_zycbt034.

      MESSAGE i016 WITH itab_zycbt034-descricao.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM lancamento_impostos_nf.

  DATA: v_montante   LIKE /pws/zycbe035-wrbtr     ,

        v_j_1bbranch LIKE /pws/zycit042-j_1bbranch.

  FREE itab_zycit033.

  SELECT * FROM /pws/zycit033 INTO TABLE itab_zycit033

         WHERE clnf  = 'G'.                             "#EC CI_NOFIRST

  FREE itab_global.

  LOOP AT itab_zycit042 WHERE docnum = itab_doc-docnum.

    MOVE itab_zycit042 TO itab_global.

    APPEND itab_global.

  ENDLOOP.

  SELECT * FROM j_1baj INTO TABLE itab_j_1baj

         WHERE ( taxgrp = 'ICMS' OR taxgrp = 'IPI' ).

  FREE itab_j1bnfstx.

  IF NOT itab_global[] IS INITIAL.

    SELECT * FROM j_1bnfstx INTO TABLE itab_j1bnfstx

           FOR ALL ENTRIES IN itab_global

           WHERE docnum = itab_global-docnum

             AND itmnum = itab_global-itmnum.

  ENDIF.

  IF sy-subrc NE 0.

    MESSAGE w015 WITH text-076.

    EXIT.

  ENDIF.

  FREE itab_ekkn.

  IF NOT itab_global[] IS INITIAL.

    SELECT ebeln ebelp prctr kostl fistl fipos ps_psp_pnr kokrs aufnr

           FROM ekkn

           INTO TABLE itab_ekkn

           FOR ALL ENTRIES IN itab_global

           WHERE ebeln = itab_global-ebeln

             AND ebelp = itab_global-ebelp.

  ENDIF.

  FREE itab_matuse.

  IF NOT itab_global[] IS INITIAL.

    SELECT ebeln ebelp matnr bwtar j_1bmatuse knttp werks

           FROM ekpo INTO TABLE itab_matuse

           FOR ALL ENTRIES IN itab_global

           WHERE ebeln = itab_global-ebeln

             AND ebelp = itab_global-ebelp.

  ENDIF.

  IF NOT itab_global[] IS INITIAL.

    FREE itab_zycit003.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

           FOR ALL ENTRIES IN itab_global

           WHERE nrseq = itab_global-nrseq

             AND ebeln = itab_global-ebeln

             AND ebelp = itab_global-ebelp.

  ENDIF.

  CLEAR:   itab_classe_aval ,

           itab_param_classe.

  REFRESH: itab_classe_aval ,

           itab_param_classe.

  IF NOT itab_matuse[] IS INITIAL.

    SELECT werks bwkey FROM t001w INTO TABLE itab_t001w

           FOR ALL ENTRIES IN itab_matuse WHERE

               werks = itab_matuse-werks.

    LOOP AT itab_matuse.

      READ TABLE itab_t001w WITH KEY werks = itab_matuse-werks.

      IF sy-subrc EQ 0.

        itab_matuse-bwkey = itab_t001w-bwkey.

        MODIFY itab_matuse.

      ENDIF.

    ENDLOOP.

    SELECT matnr bwkey bwtar bklas

     FROM mbew

      INTO TABLE itab_classe_aval

       FOR ALL ENTRIES IN itab_matuse

        WHERE matnr EQ itab_matuse-matnr

          AND bwkey EQ itab_matuse-bwkey

          AND bwtar EQ itab_matuse-bwtar.

  ENDIF.

  IF NOT itab_classe_aval[] IS INITIAL.

    SELECT * FROM /pws/zycit135 INTO TABLE itab_param_classe

           FOR ALL ENTRIES IN itab_classe_aval

           WHERE bklas EQ itab_classe_aval-bklas.

  ENDIF.

  CLEAR itab_zycbt035_aux.

  FREE  itab_zycbt035_aux.

  LOOP AT itab_global.

    CLEAR itab_zycit003.

    READ TABLE itab_zycit003 WITH KEY nrseq = itab_global-nrseq

                                      ebeln = itab_global-ebeln

                                      ebelp = itab_global-ebelp.

    CLEAR itab_ekkn.

    READ TABLE itab_ekkn WITH KEY ebeln = itab_global-ebeln

                                  ebelp = itab_global-ebelp.

    CLEAR itab_matuse.

    READ TABLE itab_matuse WITH KEY ebeln = itab_global-ebeln

                                    ebelp = itab_global-ebelp.

    IF itab_matuse-knttp IS INITIAL.

      CLEAR: itab_classe_aval.

      READ TABLE itab_classe_aval WITH KEY

                                          matnr = itab_matuse-matnr

                                          bwkey = itab_zycit003-werks

                                          bwtar = itab_matuse-bwtar.

      IF sy-subrc EQ 0.

        CLEAR: itab_param_classe.

        READ TABLE itab_param_classe WITH KEY

                                      bklas = itab_classe_aval-bklas.

        IF sy-subrc EQ 0.

          MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,

                itab_classe_aval-bklas TO itab_zycbt035_aux-bklas .

        ELSE.

          MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,

                space                  TO itab_zycbt035_aux-bklas .

        ENDIF.

      ELSE.

        MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,

              space                  TO itab_zycbt035_aux-bklas .

      ENDIF.

    ELSE.

      MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,

            space                  TO itab_zycbt035_aux-bklas .

    ENDIF.

    CLEAR itab_zycit033.

    READ TABLE itab_zycit033 WITH KEY regio = t001w-regio

                                      tpnf  = itab_global-tpnf.

    IF sy-subrc NE 0.

      READ TABLE itab_zycit033 WITH KEY tpnf = itab_global-tpnf

                                        regio = space.

    ENDIF.

    itab_zycbt035_aux-d_gsber    = itab_zycit003-gsber.

    itab_zycbt035_aux-tribicms   = itab_zycit033-tribicms.

    itab_zycbt035_aux-tribipi    = itab_zycit033-tribipi.

    itab_zycbt035_aux-lei102     = itab_zycit033-lei102.

    LOOP AT itab_j1bnfstx.

      IF itab_j1bnfstx-itmnum  EQ itab_global-itmnum AND

         itab_j1bnfstx-taxval  GT 0.

        LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'

                               OR taxgrp = 'IPI'.

          IF itab_j1bnfstx-taxtyp  EQ  itab_j_1baj-taxtyp.

            itab_zycbt035_aux-imposto = itab_j1bnfstx-taxtyp.

            itab_zycbt035_aux-wrbtr   = itab_j1bnfstx-taxval.

            APPEND itab_zycbt035_aux.

          ENDIF.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

  ENDLOOP.

  CLEAR itab_zycbt035. FREE itab_zycbt035.

  CLEAR v_j_1bbranch.

  READ TABLE itab_global INDEX 1.

  v_j_1bbranch = itab_global-j_1bbranch.

  FREE itab_zycbt035_aux2.

  SORT itab_zycbt035_aux BY imposto tribicms matuse bklas d_gsber.

  LOOP AT itab_zycbt035_aux.

    IF itab_zycbt035_aux-tribicms EQ '3' AND

       ( itab_zycbt035_aux-lei102   NE 'X'  OR

         itab_zycbt035_aux-lei102   NE 'Y' ) .

      LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.

        IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.

          itab_zycbt035_aux2-imposto  = itab_zycbt035_aux-imposto.

          itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.

          IF itab_zycbt035_aux-bklas IS INITIAL.

            itab_zycbt035_aux2-matuse   = itab_zycbt035_aux-matuse.

          ELSE.

            itab_zycbt035_aux2-bklas    = itab_zycbt035_aux-bklas.

          ENDIF.

          itab_zycbt035_aux2-d_gsber  = itab_zycbt035_aux-d_gsber.

          itab_zycbt035_aux2-wrbtr    = itab_zycbt035_aux-wrbtr.

          COLLECT itab_zycbt035_aux2.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt035_aux2.

    CLEAR v_montante.

    v_montante = itab_zycbt035_aux2-wrbtr.

    IF itab_zycbt035_aux2-bklas IS INITIAL.

      READ TABLE itab_zycbt035_aux WITH KEY

                             imposto  = itab_zycbt035_aux2-imposto

                             tribicms = itab_zycbt035_aux2-tribicms

                             matuse   = itab_zycbt035_aux2-matuse

                             d_gsber  = itab_zycbt035_aux2-d_gsber.

    ELSE.

      READ TABLE itab_zycbt035_aux WITH KEY

                             imposto  = itab_zycbt035_aux2-imposto

                             tribicms = itab_zycbt035_aux2-tribicms

                             bklas    = itab_zycbt035_aux2-bklas

                             d_gsber  = itab_zycbt035_aux2-d_gsber.

    ENDIF.

    MOVE itab_zycbt035_aux TO itab_zycbt035.

    itab_zycbt035-wrbtr = v_montante.

    itab_zycbt035-bschl = '40'.

    APPEND itab_zycbt035.

  ENDLOOP.

  FREE itab_zycbt035_aux2.

  SORT itab_zycbt035_aux BY imposto tribicms matuse d_gsber.

  LOOP AT itab_zycbt035_aux.

    IF itab_zycbt035_aux-tribicms EQ '3' AND

     (  itab_zycbt035_aux-lei102   NE 'X' OR

        itab_zycbt035_aux-lei102   NE 'Y' ).

      LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.

        IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.

          itab_zycbt035_aux2-imposto  = itab_zycbt035_aux-imposto.

          itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.

          itab_zycbt035_aux2-matuse   = itab_zycbt035_aux-matuse.

          itab_zycbt035_aux2-d_gsber  = itab_zycbt035_aux-d_gsber.

          itab_zycbt035_aux2-wrbtr    = itab_zycbt035_aux-wrbtr.

          COLLECT itab_zycbt035_aux2.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt035_aux2.

    CLEAR v_montante.

    v_montante = itab_zycbt035_aux2-wrbtr.

    READ TABLE itab_zycbt035_aux WITH KEY

                             imposto  = itab_zycbt035_aux2-imposto

                             tribicms = itab_zycbt035_aux2-tribicms

                             matuse   = itab_zycbt035_aux2-matuse

                             d_gsber  = itab_zycbt035_aux2-d_gsber.

    MOVE itab_zycbt035_aux TO itab_zycbt035.

    itab_zycbt035-wrbtr = v_montante.

    itab_zycbt035-bschl = '50'.

    APPEND itab_zycbt035.

  ENDLOOP.

  FREE itab_zycbt035_aux2.

  SORT itab_zycbt035_aux BY imposto tribicms matuse d_gsber.

  LOOP AT itab_zycbt035_aux.

    IF itab_zycbt035_aux-tribicms EQ '3' AND

    (   itab_zycbt035_aux-lei102  EQ 'X' OR

       itab_zycbt035_aux-lei102   EQ 'Y' ).

      LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.

        IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.

          itab_zycbt035_aux2-imposto  = itab_zycbt035_aux-imposto.

          itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.

          itab_zycbt035_aux2-matuse   = itab_zycbt035_aux-matuse.

          itab_zycbt035_aux2-d_gsber  = itab_zycbt035_aux-d_gsber.

          itab_zycbt035_aux2-wrbtr    = itab_zycbt035_aux-wrbtr.

          COLLECT itab_zycbt035_aux2.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt035_aux2.

    CLEAR v_montante.

    v_montante = itab_zycbt035_aux2-wrbtr.

    READ TABLE itab_zycbt035_aux WITH KEY

                              imposto  = itab_zycbt035_aux2-imposto

                              tribicms = itab_zycbt035_aux2-tribicms

                              matuse   = itab_zycbt035_aux2-matuse

                              d_gsber  = itab_zycbt035_aux2-d_gsber.

    MOVE itab_zycbt035_aux TO itab_zycbt035.

    itab_zycbt035-wrbtr = v_montante.

    itab_zycbt035-bschl = '40'.

    APPEND itab_zycbt035.

    itab_zycbt035-bschl = '50'.

    APPEND itab_zycbt035.

  ENDLOOP.

  FREE itab_zycbt035_aux2.

  SORT itab_zycbt035_aux BY imposto tribicms matuse d_gsber.

  LOOP AT itab_zycbt035_aux.

    IF itab_zycbt035_aux-tribicms EQ '1'.

      LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.

        IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.

          itab_zycbt035_aux2-imposto  = itab_zycbt035_aux-imposto.

          itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.

          itab_zycbt035_aux2-matuse   = itab_zycbt035_aux-matuse.

          itab_zycbt035_aux2-d_gsber  = itab_zycbt035_aux-d_gsber.

          itab_zycbt035_aux2-wrbtr    = itab_zycbt035_aux-wrbtr.

          COLLECT itab_zycbt035_aux2.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt035_aux2.

    CLEAR v_montante.

    v_montante = itab_zycbt035_aux2-wrbtr.

    READ TABLE itab_zycbt035_aux WITH KEY

                              imposto  = itab_zycbt035_aux2-imposto

                              tribicms = itab_zycbt035_aux2-tribicms

                              matuse   = itab_zycbt035_aux2-matuse

                              d_gsber  = itab_zycbt035_aux2-d_gsber.

    MOVE itab_zycbt035_aux TO itab_zycbt035.

    itab_zycbt035-wrbtr = v_montante.

    itab_zycbt035-bschl = '40'.

    APPEND itab_zycbt035.

    itab_zycbt035-bschl = '50'.

    APPEND itab_zycbt035.

  ENDLOOP.

  FREE itab_zycbt035_aux2.

  SORT itab_zycbt035_aux BY imposto matuse d_gsber.

  LOOP AT itab_zycbt035_aux.

    IF itab_zycbt035_aux-tribipi EQ '1'.

      LOOP AT itab_j_1baj WHERE taxgrp = 'IPI'.

        IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.

          itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.

          itab_zycbt035_aux2-matuse  = itab_zycbt035_aux-matuse.

          itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.

          itab_zycbt035_aux2-wrbtr   = itab_zycbt035_aux-wrbtr.

          COLLECT itab_zycbt035_aux2.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt035_aux2.

    CLEAR v_montante.

    v_montante = itab_zycbt035_aux2-wrbtr.

    READ TABLE itab_zycbt035_aux WITH KEY

                               imposto = itab_zycbt035_aux2-imposto

                               matuse  = itab_zycbt035_aux2-matuse

                               d_gsber = itab_zycbt035_aux2-d_gsber.

    MOVE itab_zycbt035_aux TO itab_zycbt035.

    itab_zycbt035-wrbtr = v_montante.

    itab_zycbt035-bschl = '40'.

    APPEND itab_zycbt035.

    itab_zycbt035-bschl = '50'.

    APPEND itab_zycbt035.

  ENDLOOP.

  FREE itab_zycbt035_aux2.

  SORT itab_zycbt035_aux BY imposto matuse bklas d_gsber.

  LOOP AT itab_zycbt035_aux.

    IF itab_zycbt035_aux-tribipi EQ '3'.

      LOOP AT itab_j_1baj WHERE taxgrp = 'IPI'.

        IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.

          itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.

          IF itab_zycbt035_aux-bklas IS INITIAL.

            itab_zycbt035_aux2-matuse  = itab_zycbt035_aux-matuse.

          ELSE.

            itab_zycbt035_aux2-bklas   = itab_zycbt035_aux-bklas.

          ENDIF.

          itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.

          itab_zycbt035_aux2-wrbtr   = itab_zycbt035_aux-wrbtr.

          COLLECT itab_zycbt035_aux2.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt035_aux2.

    CLEAR v_montante.

    v_montante = itab_zycbt035_aux2-wrbtr.

    IF itab_zycbt035_aux2-bklas IS INITIAL.

      READ TABLE itab_zycbt035_aux WITH KEY

                               imposto = itab_zycbt035_aux2-imposto

                               matuse  = itab_zycbt035_aux2-matuse

                               d_gsber = itab_zycbt035_aux2-d_gsber.

    ELSE.

      READ TABLE itab_zycbt035_aux WITH KEY

                               imposto = itab_zycbt035_aux2-imposto

                               bklas   = itab_zycbt035_aux2-bklas

                               d_gsber = itab_zycbt035_aux2-d_gsber.

    ENDIF.

    MOVE itab_zycbt035_aux TO itab_zycbt035.

    itab_zycbt035-wrbtr = v_montante.

    itab_zycbt035-bschl = '40'.

    APPEND itab_zycbt035.

  ENDLOOP.

  FREE itab_zycbt035_aux2.

  SORT itab_zycbt035_aux BY imposto matuse d_gsber.

  LOOP AT itab_zycbt035_aux.

    IF itab_zycbt035_aux-tribipi EQ '3'.

      LOOP AT itab_j_1baj WHERE taxgrp = 'IPI'.

        IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.

          itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.

          itab_zycbt035_aux2-matuse  = itab_zycbt035_aux-matuse.

          itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.

          itab_zycbt035_aux2-wrbtr   = itab_zycbt035_aux-wrbtr.

          COLLECT itab_zycbt035_aux2.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt035_aux2.

    CLEAR v_montante.

    v_montante = itab_zycbt035_aux2-wrbtr.

    READ TABLE itab_zycbt035_aux WITH KEY

                               imposto = itab_zycbt035_aux2-imposto

                               matuse  = itab_zycbt035_aux2-matuse

                               d_gsber = itab_zycbt035_aux2-d_gsber.

    MOVE itab_zycbt035_aux TO itab_zycbt035.

    itab_zycbt035-wrbtr = v_montante.

    itab_zycbt035-bschl = '50'.

    APPEND itab_zycbt035.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI016X01

 

...

* >> Início da inclusão:

DATA: BEGIN OF itab_doc OCCURS 0,

        docnum TYPE j_1bnfdoc-docnum,

      END OF itab_doc.

* << Fim da inclusão

DATA: END OF COMMON PART a.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

  COMMIT WORK.

 IF v_modalidade = '99' OR ( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).

    LOOP AT itab_zycit042 WHERE docnum IS initial OR

                                docnum = '9999999999' OR

                                docnum = '8888888888'.

    ENDLOOP.

    IF sy-subrc NE 0.

      PERFORM contabiliza_impostos.

    ENDIF.

  ENDIF.

* >> Início da inclusão: FORM FILL_DATA_J1B1

  CLEAR: itab_doc, itab_doc[].

  LOOP AT itab_zycit042 WHERE processado = 'X'.

    IF NOT itab_zycit042-docnum IS INITIAL.

      itab_doc-docnum = itab_zycit042-docnum.

      APPEND itab_doc.

    ENDIF.

  ENDLOOP.

  SORT itab_doc.

  DELETE ADJACENT DUPLICATES FROM itab_doc.

* << Fim da inclusão

  CLEAR: v_cont_imp_nfg.

  IF /pws/zycit062-cont_imp_nf EQ 'X' AND v_modalidade NE '99'

   AND /pws/zycie041-belnr_f_02 IS INITIAL.

    v_cont_imp_nfg = 'X'.

* >> Início da exclusão: FORM FILL_DATA_J1B1

    PERFORM contabiliza_impostos.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATA_J1B1

    LOOP AT itab_doc.

      CLEAR: /pws/zycie041-statusp_f_02,

             /pws/zycie041-belnr_f_02,

             /pws/zycie041-dt_f_02.

      PERFORM contabiliza_impostos_nf.

    ENDLOOP.

* << Fim da inclusão

  ENDIF.

  CLEAR v_modo_bi.

  v_tiponf = 'NF'.

  REFRESH itab_zyglt100.

  PERFORM verifica_exit USING 'D'

                       '/PWS/SAPMZYCI016'

                       'DNF009'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'DNF009'  BINARY SEARCH.

  IF sy-subrc EQ 0.

...

 

...

FORM cabecalho_nf.

  FIELD-SYMBOLS: <nfe> TYPE ANY.

  DATA  t_field(20) TYPE c VALUE 'J_1BNFDOC-NFE'.

* >> Início da inclusão: FORM CABECALHO_NF

  CLEAR: itab_zycit100, itab_zycit100[].

* << Fim da inclusão

  CLEAR v_graneis.

  SELECT SINGLE * FROM j_1bbranch

    WHERE bukrs = /pws/zycie041-bukrs

     AND branch = /pws/zycit085-j_1bbranch.

  SELECT SINGLE * FROM adrc

    WHERE addrnumber = j_1bbranch-adrnr.

  it_zycee005-tcode  = text-065.

  it_zycee005-tabela = text-014.

  it_zycee005-nrseq  = /pws/zycie041-nfglobal.

  PERFORM verifica_filial.

...

 

...

  DATA: vl_pis_5     TYPE /pws/zycit100-vlpis   ,

        vl_cofins_5  TYPE /pws/zycit100-vlcofins,

        vl_pis_2     TYPE /pws/zycit100-vlpis     ,

        vl_cofins_2  TYPE /pws/zycit100-vlcofins  ,

        v_cont       LIKE sy-tabix.

  CLEAR v_cont.

  DESCRIBE TABLE itab_global LINES v_cont.

  CLEAR v_tabix.

* >> Início da exclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1

  LOOP AT itab_zycit042 WHERE processado = 'X'.

    CLEAR: itab_global.

    READ TABLE itab_global WITH KEY nrseqnf  = itab_zycit042-nrseqnf

                                    nrseq    = itab_zycit042-nrseq

                                    embarca  = itab_zycit042-embarca

                                    nfglobal = itab_zycit042-nfglobal

                                    ebeln    = itab_zycit042-ebeln

                                    ebelp    = itab_zycit042-ebelp.

* << Fim da exclusão

* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1

  LOOP AT itab_global.

* << Fim da inclusão

    v_tabix = v_tabix + 1.

    CLEAR itab_zycbt035_aux.

    CLEAR itab_zycit100.

    READ TABLE itab_zycit100 WITH KEY nrseq = itab_global-nrseq

                                      ebeln = itab_global-ebeln

                                      ebelp = itab_global-ebelp.

    IF itab_zycit100-vlpis    IS INITIAL AND

       itab_zycit100-vlcofins IS INITIAL

      OR ( itab_zycit100-codregtripiscofi EQ '5'

      OR  itab_zycit100-codregtripiscofi EQ '3' ).

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/SAPMZYCI016

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 133

 

Texto: (38 caracteres)

"There are no itens of taxes accounting"

 

Comprimento máximo: 43

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 133

 

Texto: (43 caracteres)

"Não existe itens de contabilização impostos"

 

Comprimento máximo: 43

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 133

 

Texto: (43 caracteres)

"No existe items de contabilización impostos"

 

Comprimento máximo: 43

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 134

 

Texto: (6 caracteres)

"to NF:"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 134

 

Texto: (12 caracteres)

"para a nota:"

 

Comprimento máximo: 14

 

------------------------------------------------------------------------

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 134

 

Texto: (10 caracteres)

"para a NF:"

 

Comprimento máximo: 14

Comprimento máximo: 14