CE PLUS - Nota 009890

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 02/03/2010 00:00:00

Data/Hora Última Alteração: 26/03/2010 10:57:32

Descrição da Nota: DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS

Sintoma

 

Ao processar uma devolução do saldo da fatura através da Vinculação (/PWS/ZYCB009_A - Modificar), o

sistema esta gerando erro na contalização da operação, onde esta buscando o documento contábil da

vinculação, onde ja foi compensado.

 

Solução

 

Alterado o Programa de Devolução de Vinculação para considerar a primeira letra do tipo de contrato,

verificado também pontos na liquidação.

Versões Tratadas

8.0

Informações Complementares

 

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

Nota Número 09890 Data: 02/03/2010 Hora: 14:41:54

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

 

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

Nota Número              : 09890

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00002

Agrupamento              : 00011

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS

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

Palavras Chave:

DEVOLUÇÃO DA VINCULAÇÃO DE FATURAS, LIQUIDAÇÃO DE FATURAS

 

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

Objetos da nota:

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB004F03

REPS /PWS/MZYCB009F05

REPS /PWS/MZYCB009F06

REPS /PWS/MZYCB009F07

REPS /PWS/MZYCB009F09

REPS /PWS/MZYCB009F10

REPS /PWS/MZYCB009O01

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

  if itab_zycbe033-kursf is initial.

    v_tpcontabil = 'D_CON'.

    itab_zycbe033-waers = /pws/zycbe001-waers.

    perform busca_dados_bi using /pws/zycbe001-bukrs

                                 v_tpcontabil.

    if itab_zycbe033-kursf is initial.

      v_taxa_vazia = 'X'.

    endif.

  endif.

  clear itab_zycbe033-kursf.

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

  if itab_zycbt001-tpcontr ne 'C'.

* << Fim da exclusão

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

  if itab_zycbt001-tpcontr(1) ne 'C'.

* << Fim da inclusão

    perform verifica_data2 using wa_zycbt007-dtliquid

                                   itab_zycbt006-dtpagto.

  else.

    perform verifica_data2 using wa_zycbt007-dtliqcp

                                   itab_zycbt006-dtpagto.

  endif.

  if not v_databl is initial.

    perform define_cambio using v_databl

                                itab_zycbt006-waers

                                wa_zycbt007-waersb

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

      itab_partidas-dtdocto = itab_zycbt226i-dtlancto2.

      concatenate text-234 itab_zycbt226i-nrseq

                  into itab_partidas-d_zuonr

                  separated by space.

      itab_partidas-v_sinal = '-'.

      append itab_partidas.

    endloop.

    if sy-subrc = 0

    or itab_zycbt006-vlme ne itab_zycbt005-vlvinc

    or ( not itab_zycbt006-belnr_d is initial and

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

             itab_zycbt001-tpcontr eq 'C' ).

* << Fim da exclusão

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

             itab_zycbt001-tpcontr(1) eq 'C' ).

* << Fim da inclusão

      clear itab_zycbe033-d_zuonr.

    endif.

  else.

   read table itab_zycbt226i with key nrinvoic = itab_zycbt006-nrinvoic

                                        gsberf   = itab_zycbt006-gsberf

                                       nrparcf  = itab_zycbt006-nrparcf.

    if sy-subrc = 0.

      itab_zycbe033-newbs   = '50'.

      clear: v_codaux1, v_codaux2.

      v_codaux1 = itab_zycbt226i-bco_me.

...

 

...

                         and liq_and  = space

                         and tdesmemb = 'V'.

        endif.

      endif.

      v_subrc = 4.

      check not itab_zycbt006-belnr_d is initial.

      if ( itab_zycbt006-belnr_d eq itab_zycbt006-belnr5 ) and

         ( itab_zycbt005-vlvinc eq itab_zycbt006-vlme ).

        clear itab_zycbt006-belnr_d.

        modify itab_zycbt006 index v_index.

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

        if /pws/zycbe001-tpcontr ca 'PS'.

* << Fim da exclusão

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

        if /pws/zycbe001-tpcontr(1) ca 'PS'.

* << Fim da inclusão

          loop at itab_zycbt069 where nrseqc   = itab_zycbt006-nrseqc

                                and nrinvoic = itab_zycbt006-nrinvoic

                                and dtvincul = itab_zycbt006-dtvincul

                                  and gsberf   = itab_zycbt006-gsberf

                                 and nrparcf  = itab_zycbt006-nrparcf.

            clear itab_zycbt069-belnr_d.

            modify itab_zycbt069.

          endloop.

        endif.

      else.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

...

          nrseqc   eq <fs_zycbt006>-nrseqc   and

          tpdesp   eq <fs_zycbt006>-tpdesp   and

          nrparc   eq <fs_zycbt006>-nrparc   and

          dtincl   eq <fs_zycbt006>-dtincl   and

          nrinvoic eq <fs_zycbt006>-nrinvoic and

          nrparcf  eq <fs_zycbt006>-nrparcf  and

          gsberf   eq <fs_zycbt006>-gsberf   and

          dtvincul eq <fs_zycbt006>-dtvincul and

          dtvencto eq <fs_zycbt006>-dtvencto and

          dtpagto  eq <fs_zycbt006>-dtpagto.

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

      if <fs_zycbt006>-tpcontr ca 'PS'.

* << Fim da exclusão

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

      if <fs_zycbt006>-tpcontr(1) ca 'PS'.

* << Fim da inclusão

        loop at itab_zycbt069

          assigning <fs_zycbt069>

          where

            nrseqc   eq <fs_zycbt006>-nrseqc and

            dtvincul eq <fs_zycbt006>-dtvincul and

            nrinvoic eq <fs_zycbt006>-nrinvoic and

            nrparcf  eq <fs_zycbt006>-nrparcf  and

            gsberf   eq <fs_zycbt006>-gsberf.

          clear <fs_zycbt069>-belnr_d.

        endloop.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F05

 

...

      message i061 with

              text-271 itab_zycbt005-nrinvoic text-272 text-283.

      v_tstwaers = 'X'.

      exit.

    endif.

  endif.

  modify itab_zycbt005 index v_index.

endform.

form exibe_datas.

  data v_flag type c.

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

  case /pws/zycbe001-tpcontr.

    when 'C '.

* << Fim da exclusão

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

  case /pws/zycbe001-tpcontr(1).

    when 'C'.

* << Fim da inclusão

      if /pws/zycbt007-liq_cp eq 'X'.

        move 'X' to v_flag.

      endif.

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

    when 'DP'.

* << Fim da exclusão

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

    when 'D'.

* << Fim da inclusão

      if /pws/zycbt089-f_cont_vinc eq 'F'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F06

 

...

      itab_zycbe033-waers  = /pws/zycbe050-waers.

      itab_zycbe033-kursf  = v_taxa.

      perform verify_null_field using wa_zycbt011-blart

                                      'BLART'

                                      text-006.

      itab_zycbe033-blart  = wa_zycbt011-blart.

      perform verify_null_field using /pws/zycbe050-vldev

                                      'VLME'

                                      text-007.

      itab_zycbe033-wrbtr  = /pws/zycbe050-vldev.

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

      if  /pws/zycbe001-tpcontr = 'E'.

* << Fim da exclusão

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

      if  /pws/zycbe001-tpcontr(1) = 'E'.

* << Fim da inclusão

        loop at itab_zycbt006 where status = 'C'.

        endloop.

        if sy-subrc eq 0.

          itab_zycbe033-belnr  = /pws/zycbe001-belnr2.

        else.

          perform verify_null_field using itab_zycbt005-belnr

                                          'BELNR'

                                          text-120.

          itab_zycbe033-belnr  = itab_zycbt005-belnr.

        endif.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F07

 

...

             where nrseqc    = wa_zycbt005-nrseqc   and

                   tpdesp    = wa_zycbt005-tpdesp   and

                   nrparc    = wa_zycbt005-nrparc   and

                   dtincl    = wa_zycbt005-dtincl   and

                   nrinvoic  = wa_zycbt005-nrinvoic and

                   gsberf    = wa_zycbt005-gsberf   and

                   nrparcf   = wa_zycbt005-nrparcf  and

                   dtvincul  = wa_zycbt005-dtvincul and

                   dtvencto  = wa_zycbt005-dtvencto and

                   dtpagto   = wa_zycbt005-dtvincul.

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

      if /pws/zycbe001-tpcontr eq 'C ' and

* << Fim da exclusão

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

      if /pws/zycbe001-tpcontr(1) eq 'C' and

* << Fim da inclusão

         wa_zycbt007-liq_cp    eq 'X'.

        delete itab_zycbt006

               where nrseqc    = wa_zycbt005-nrseqc   and

                     tpdesp    = wa_zycbt005-tpdesp   and

                     nrparc    = wa_zycbt005-nrparc   and

                     dtincl    = wa_zycbt005-dtincl   and

                     nrinvoic  = wa_zycbt005-nrinvoic and

                     gsberf    = wa_zycbt005-gsberf   and

                     nrparcf   = wa_zycbt005-nrparcf  and

                     dtvincul  = wa_zycbt005-dtvincul and

...

 

...

  select single j_1bbranch

         from t001w into (j_1bbranch)

         where werks = wa_zycbt005-werks.

  perform verifica_pais_filial using /pws/zycbe001-bukrs

                                     j_1bbranch.

  itab_zycbe033-brnch = j_1bbranch.

  perform verify_null_field using wa_zycbt005-dtvincul

                                  'DTPAGTO'

                                  text-003.

  itab_zycbe033-budat  = wa_zycbt005-dtvincul.

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

  if /pws/zycbe001-tpcontr eq 'C ' and

* << Fim da exclusão

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

  if /pws/zycbe001-tpcontr(1) eq 'C' and

* << Fim da inclusão

     wa_zycbt007-liq_cp    eq 'X'.

    move /pws/zycbe006-dtpagto to itab_zycbe033-budat.

  endif.

  if wa_zycbt007-fdtdoc = 'D'.

    itab_zycbe033-bldat = sy-datum.

  else.

    itab_zycbe033-bldat = itab_zycbe033-budat.

  endif.

  refresh itab_zyglt321.

  select * from /pws/zyglt321

...

 

...

              wa_zycbt005-nrparcf

              itab_zycbt030-budat  itab_zycbt030-vbeln

              itab_zycbt030-belnr  into v_cpochv.

  itab_zycbe033-tcode  = 'F-30'.

  itab_zycbe033-tabela = '/PWS/ZYCBT006'.

  itab_zycbe033-cpochv = v_cpochv.

  perform verify_null_field using wa_zycbt005-dtvincul

                                  'DTPAGTO'

                                  text-003.

  itab_zycbe033-budat  = wa_zycbt005-dtvincul.

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

  if /pws/zycbe001-tpcontr eq 'C ' and

* << Fim da exclusão

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

  if /pws/zycbe001-tpcontr(1) eq 'C' and

* << Fim da inclusão

     wa_zycbt007-liq_cp    eq 'X'.

    move /pws/zycbe006-dtpagto to itab_zycbe033-budat.

  endif.

  if wa_zycbt007-fdtdoc = 'D'.

    itab_zycbe033-bldat = sy-datum.

  else.

    itab_zycbe033-bldat = itab_zycbe033-budat.

  endif.

  if not wa_zycbt011-agums is initial

     and itab_zycbe033-agums is initial.

...

 

...

              wa_zycbt005-dtvincul wa_zycbt005-dtvencto

              itab_zycbt030-budat  itab_zycbt030-vbeln

              itab_zycbt030-belnr  into v_cpochv.

  itab_zycbe033-tcode  = 'F-30'.

  itab_zycbe033-tabela = '/PWS/ZYCBT006'.

  itab_zycbe033-cpochv = v_cpochv.

  perform verify_null_field using wa_zycbt005-dtvincul

                                  'DTPAGTO'

                                  text-003.

  itab_zycbe033-budat  = wa_zycbt005-dtvincul.

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

  if /pws/zycbe001-tpcontr eq 'C ' and

* << Fim da exclusão

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

  if /pws/zycbe001-tpcontr(1) eq 'C' and

* << Fim da inclusão

     wa_zycbt007-liq_cp    eq 'X'.

    move /pws/zycbe006-dtpagto to itab_zycbe033-budat.

  endif.

  if wa_zycbt007-fdtdoc = 'D'.

    itab_zycbe033-bldat = sy-datum.

  else.

    itab_zycbe033-bldat = itab_zycbe033-budat.

  endif.

  refresh itab_zyglt321.

  select * from /pws/zyglt321

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F09

 

...

          itab_contabil-gsberf   = itab_zycbt030-gsberf.

          itab_contabil-nrparcf  = itab_zycbt030-nrparcf.

          itab_contabil-docto    = itab_zycbt032-belnr.

          itab_contabil-dtdocto  = itab_zycbe033-budat.

          itab_contabil-bukrs    = itab_zycbt006-bukrs.

          itab_contabil-msg      = text-110.

          append itab_contabil.

          perform clearing_cliente.

          perform clear_date_batch.

          perform clearing_ace.

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

          if wa_zycbt005-tpcontr = 'D'.

* << Fim da exclusão

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

          if wa_zycbt005-tpcontr(1) = 'D'.

* << Fim da inclusão

            if wa_zycbt005-status = 'I'.

              itab_zycbt005-dtbelnr = itab_zycbe033-budat.

              itab_zycbt005-belnr   = itab_zycbt032-belnr.

              itab_zycbt005-status  = 'C'.

              itab_zycbt005-slpagar = 0.

              itab_zycbt005-belnr_vinc = itab_zycbt032-belnr.

              modify itab_zycbt005.

            else.

              wa_zycbt005-dtbelnr = itab_zycbe033-budat.

              wa_zycbt005-belnr   = itab_zycbt032-belnr.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F10

 

...

        perform grava_log using '/PWS/ZYCBT005'

                                wa_log

                                'C'.

      endif.

    endloop.

  endif.

  if v_erro_estorno is initial.

    modify /pws/zycbt005 from table itab_zycbt005.

    modify /pws/zycbt017 from table itab_zycbt017.

  elseif /pws/zycbe001-tpcontr ne 'DP' and

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

         /pws/zycbe001-tpcontr ne 'C'.

* << Fim da exclusão

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

         /pws/zycbe001-tpcontr(1) ne 'C'.

* << Fim da inclusão

    modify /pws/zycbt005 from table itab_zycbt005.

    modify /pws/zycbt017 from table itab_zycbt017.

  endif.

  if /pws/zycbe001-tpcontr(1) = 'P' or

     /pws/zycbe001-tpcontr(1) = 'S'.

    itab_zycbt002p-ftransf = 'X'.

    modify itab_zycbt002p transporting ftransf

                           where slvinc    =  0  and

                                 przcontr eq 'L'.

    modify /pws/zycbt002 from table itab_zycbt002p.

...

 

...

    perform clear_itabs.

    itab_zycbe033-mandt = sy-mandt.

    itab_zycbe033-tcode  = text-041.

    itab_zycbe033-tabela = text-002.

    itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.

    read table itab_zycbt030

      with key nrinvoic = itab_zycbt005-nrinvoic

               nrparcf  = itab_zycbt005-nrparcf

               gsberf   = itab_zycbt005-gsberf.

    if ( wa_zycbt089-bx_cli_vinc is initial and

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

         itab_zycbt005-tpcontr = 'A' )   or

* << Fim da exclusão

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

         itab_zycbt005-tpcontr(1) = 'A' )   or

* << Fim da inclusão

       ( wa_zycbt089-bx_cli_vinc = 'X' and

         itab_zycbt005-baixa_cli = ' ' ) or

       ( itab_zycbt005-tpcontr(1) = 'D' and

         wa_zycbt089-f_cont_vinc = 'A' ).

      itab_zycbe033-belnr = v_belnr_001.

    elseif ( wa_zycbt089-bx_cli_vinc = 'X' and

             itab_zycbt005-baixa_cli = 'X' ).

      itab_zycbe033-belnr = itab_zycbt030-belnr_d.

    endif.

    if ( wa_zycbt089-bx_cli_vinc is initial and

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

         itab_zycbt005-tpcontr = 'A' )   or

* << Fim da exclusão

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

         itab_zycbt005-tpcontr(1) = 'A' )   or

* << Fim da inclusão

       ( wa_zycbt089-bx_cli_vinc = 'X' and

         itab_zycbt005-baixa_cli = ' ' ) or

       ( itab_zycbt005-tpcontr(1) = 'D' and

         wa_zycbt089-f_cont_vinc = 'A' ).

      perform busca_taxa_contabil using 'tx_desm_acc'.

    elseif ( wa_zycbt089-bx_cli_vinc = 'X' and

             itab_zycbt005-baixa_cli = 'X' ).

      perform busca_taxa_contabil using 'tx_desm_cli'.

    endif.

    perform: preenche_dados_contabilizacao,

...

 

...

                periodo_fechado = 2

                others          = 3.

      if sy-subrc eq 0.

        read table itab_zycbt032

          with key tcode  = text-041

                   tabela = text-456

                   cpochv = itab_zycbe033-cpochv

                   tpmsg  = 'S'.

        if sy-subrc = 0.

          if ( wa_zycbt089-bx_cli_vinc is initial and

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

               itab_zycbt005-tpcontr = 'A' )   or

* << Fim da exclusão

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

               itab_zycbt005-tpcontr(1) = 'A' )   or

* << Fim da inclusão

             ( wa_zycbt089-bx_cli_vinc = 'X' and

               itab_zycbt005-baixa_cli = ' ' ) or

             ( itab_zycbt005-tpcontr(1) = 'D' and

               wa_zycbt089-f_cont_vinc = 'A' ).

            perform preenche_zycbt084 using itab_zycbt030-vbeln

                                            itab_zycbe033-belnr

                                            space

                                            'C'.

          elseif ( wa_zycbt089-bx_cli_vinc = 'X' and

                   itab_zycbt005-baixa_cli = 'X' ).

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009O01

 

...

           wa_cols-screen-name = '/PWS/ZYCBE005-KDAUF'    or

           wa_cols-screen-name = '/PWS/ZYCBE005-FICTR'    or

           wa_cols-screen-name = '/PWS/ZYCBE005-GEBER'    or

           wa_cols-screen-name = '/PWS/ZYCBE005-EBELN'    or

           wa_cols-screen-name = '/PWS/ZYCBE005-ERGOKONT' or

           wa_cols-screen-name = 'WA_DESVINCULA-VLDESVIN' or

           wa_cols-screen-name = '/PWS/ZYCBE005-COD_AREA' or

           wa_cols-screen-name = '/PWS/ZYCBE005-DTCREDEXT'.

          if ( wa_cols-screen-name eq '/PWS/ZYCBE005-VLME_P'   or

               wa_cols-screen-name eq '/PWS/ZYCBE005-VLVINC' ) and

* >> Início da exclusão: MODULE SET_SCREEN

             /pws/zycbe001-tpcontr ca 'E' and

* << Fim da exclusão

* >> Início da inclusão: MODULE SET_SCREEN

             /pws/zycbe001-tpcontr(1) ca 'E' and

* << Fim da inclusão

             /pws/zycbt089-bx_cli_vinc = 'X' and

             sy-tcode ne '/PWS/ZYCB009_C'.

            wa_cols-screen-input = '0'.

          else.

            wa_cols-screen-input = '1'.

          endif.

        elseif wa_cols-screen-name = '/PWS/ZYCBE005-PARID'.

          if sy-tcode eq c_transacao_a.

            wa_cols-screen-input = '0'.

          else.

...