CE PLUS - Nota 005047

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 22/10/2007 00:00:00

Data/Hora Última Alteração: 23/02/2011 09:15:36

Descrição da Nota: AO CRIAR NF QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NA MENSAGEM

Sintoma

AO CRIAR Nota Fiscal QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NO MOMENTO DA CRIAÇÃO DA

MENSAGEM da Nota Fiscal.

 

 

Solução

Ajustar tratamento do batch input para quando houver dois direitos fiscais diferentes com mensagem

para um mesmo imposto.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

LEI FISCAL REFERENTE PIS/COFINS NA NOTA FISCAL

Informações Complementares

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

Nota Número 05047 Data: 22/10/2007 Hora: 17:51:41

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

 

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

Nota Número              : 05047

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00018

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

Referência às notas relacionadas:

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

 

03588  - 00001 - 7.0    - 00001  - LEI FISCAL REFERENTE PIS/COFINS NA NOTA FISCAL

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

AO CRIAR NF QUANDO HÁ MAIS DE UM ITEM DÁ ERRO DE BATCH INPUT NA MENSAGEM

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

Palavras Chave:

NF - MAIS DE UM ITEM - NOTA FISCAL - ERRO DE BATCH INPUT - MENSAGEM

NFE

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

Objetos da nota:

FUNC /PWS/ZYCI_TRANSACAO_J1B1N

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_J1B1N

...

 

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    v_indice         TYPE n,

    v_indice2        TYPE n,

    v_indice_aux     TYPE n,

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    v_indice(02)         TYPE n,

    v_indice2(02)        TYPE n,

    v_indice_aux(02)     TYPE n,

* << Fim da inclusão

...

 

...

 

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    v_aliqcof(8).

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    v_campo(30),

    v_aliqcof(8),

    v_direito like t_itens-taxlw1.

* << Fim da inclusão

...

 

...

 

    SELECT SINGLE * FROM dd02l

     WHERE tabname = c_cof_t.

    IF sy-subrc NE 0.

      v_msgcof = 'X'.

    ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    clear t_itens.

    SORT t_itens BY leipis.

   clear v_direito.

* << Fim da inclusão

    LOOP AT t_itens.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      IF NOT t_itens-leipis IS INITIAL AND

         v_msgpis IS INITIAL.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

     if v_direito ne t_itens-leipis.

        v_direito = t_itens-leipis.

        IF NOT t_itens-leipis IS INITIAL.

* << Fim da inclusão

        CLEAR: wa_text_law.

        SELECT SINGLE * FROM (c_pis_t)

             INTO wa_text_law

            WHERE langu EQ sy-langu

              AND taxlaw EQ t_itens-leipis.

        IF  NOT wa_text_law-line1 IS INITIAL

          OR NOT wa_text_law-line2 IS INITIAL

          OR NOT wa_text_law-line3 IS INITIAL

          OR NOT wa_text_law-line4 IS INITIAL.

          v_msgpis = 'X'.

          ADD 1 TO v_indice.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

          ENDIF.

* << Fim da inclusão

        ENDIF.

      ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    ENDLOOP.

* << Fim da inclusão

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      IF NOT t_itens-leicofins IS INITIAL AND

         v_msgcof IS INITIAL.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    clear t_itens.

    SORT t_itens BY leicofins.

   clear v_direito.

   LOOP AT t_itens.

     if v_direito ne t_itens-leicofins.

        v_direito = t_itens-leicofins.

        IF NOT t_itens-leicofins IS INITIAL.

* << Fim da inclusão

        CLEAR: wa_text_law.

        SELECT SINGLE * FROM (c_cof_t)

             INTO wa_text_law

            WHERE langu EQ sy-langu

              AND taxlaw EQ t_itens-leicofins.

        IF  NOT wa_text_law-line1 IS INITIAL

          OR NOT wa_text_law-line2 IS INITIAL

          OR NOT wa_text_law-line3 IS INITIAL

          OR NOT wa_text_law-line4 IS INITIAL.

          v_msgcof = 'X'.

          ADD 1 TO v_indice.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

          ENDIF.

* << Fim da inclusão

        ENDIF.

      ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      IF v_msgicms IS INITIAL.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    ENDLOOP.

    clear t_itens.

    SORT t_itens BY taxlw1.

    clear v_direito.

    LOOP AT t_itens.

     if v_direito ne t_itens-taxlw1.

        v_direito = t_itens-taxlw1.

* << Fim da inclusão

        SELECT SINGLE * FROM j_1batl1t

          WHERE langu EQ sy-langu

            AND taxlaw EQ t_itens-taxlw1.

        IF NOT j_1batl1t-line1 IS INITIAL

          OR NOT j_1batl1t-line2 IS INITIAL

          OR NOT j_1batl1t-line3 IS INITIAL

          OR NOT j_1batl1t-line4 IS INITIAL.

          v_msgicms = '01'.

          ADD 1 TO v_indice.

        ENDIF.

      ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      IF v_msgipi IS INITIAL.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    ENDLOOP.

    clear t_itens.

    SORT t_itens BY taxlw2.

    clear v_direito.

    LOOP AT t_itens.

     if v_direito ne t_itens-taxlw2.

        v_direito = t_itens-taxlw2.

* << Fim da inclusão

        SELECT SINGLE * FROM j_1batl2t

          WHERE langu EQ sy-langu

            AND taxlaw EQ t_itens-taxlw2.

        IF NOT j_1batl2t-line1 IS INITIAL

          OR NOT j_1batl2t-line2 IS INITIAL

          OR NOT j_1batl2t-line3 IS INITIAL

          OR NOT j_1batl2t-line4 IS INITIAL.

          v_msgipi = '02'.

          ADD 1 TO v_indice.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

        ENDIF.

* << Fim da exclusão

      ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      IF v_indice EQ 4.

        EXIT.

* << Fim da exclusão

      ENDIF.

    ENDLOOP.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=ENTE'.

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

    CASE v_indice.

      WHEN 1.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

        add 1 to v_indice.

        clear v_campo.

        concatenate 'LINESEL(' v_indice ')' into v_campo.

* << Fim da inclusão

        PERFORM bdc_campo  USING:

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

         'BDC_CURSOR'              'LINESEL(02)',

           'LINESEL(02)'             'X',

           'J_1BDYFTX-MESSAGE(02)'   '*',

           'BDC_OKCODE'              '=ENTE'.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

         'BDC_CURSOR'           v_campo,

           v_campo              'X'.

* << Fim da inclusão

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      WHEN 2.

        PERFORM bdc_campo  USING:

         'BDC_CURSOR'              'LINESEL(03)',

           'LINESEL(03)'             'X',

           'J_1BDYFTX-MESSAGE(03)'   '*',

           'BDC_OKCODE'              '=ENTE'.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

        clear v_campo.

       concatenate 'J_1BDYFTX-MESSAGE(' v_indice ')' into v_campo.

* << Fim da inclusão

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      WHEN 3.

* << Fim da exclusão

        PERFORM bdc_campo  USING:

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

         'BDC_CURSOR'              'LINESEL(04)',

           'LINESEL(04)'             'X',

           'J_1BDYFTX-MESSAGE(04)'   '*',

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

           v_campo                   '*',

* << Fim da inclusão

           'BDC_OKCODE'              '=ENTE'.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N

      WHEN 4.

        PERFORM bdc_campo  USING:

         'BDC_CURSOR'              'LINESEL(05)',

           'LINESEL(05)'             'X',

           'J_1BDYFTX-MESSAGE(05)'   '*',

           'BDC_OKCODE'              '=ENTE'.

      WHEN OTHERS.

        PERFORM bdc_campo  USING:

         'BDC_CURSOR'              'LINESEL(01)',

           'LINESEL(01)'             'X',

           'J_1BDYFTX-MESSAGE(01)'   '*',

           'BDC_OKCODE'              '=ENTE'.

    ENDCASE.

* << Fim da exclusão

    PERFORM bdc_tela USING 'SAPLJ1BB2' '2000'.

    PERFORM bdc_campo  USING:

           'BDC_OKCODE'                '=LONG'.

    DESCRIBE TABLE t_msg_aux LINES v_lines.

    CLEAR v_cont.

...