CE PLUS - Nota 011334

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 19/07/2011 00:00:00

Data/Hora Última Alteração: 19/07/2011 14:22:00

Descrição da Nota: VINCULAÇÃO E LIQUIDAÇÃO DE CONTRATOS EM BRL COM FATURAS EM OUTRAS MOEDAS

Sintoma

Novo tratamento nas funcionalidades de Vinculação (/PWS/ZYCB009) e Liquidação (/PWS/ZYCBT004),

possibilitando operações de Arbitragem em processos de faturas em qualquer moeda externa e captação

em BRL.

 

 

Solução

Foi criado um novo tratamento na Vinculação e Liquidação para permitir vincular e liquidar faturas

com moedas diferentes de BRL em um contrato de captação em moeda BRL.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

LIQUIDAÇÃO - VALORES INCORRETOS QUANDO FOR MOEDA JPY

TRATAMENTO DE PROCESSOS DE EXPORTAÇÃO EM BRL-CAPTAÇAO,VINCULAÇAO E LIQU.

LIQUIDAÇÃO DE CONTRATO ACC, PROGRAMA BUSCA TAXA INCORRETA

Informações Complementares

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

Nota Número 11334 Data: 19/07/2011 Hora: 13:59:17

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

 

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

Nota Número              : 11334

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00008

Agrupamento              : 00078

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

Referência às notas relacionadas:

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

 

08269  - 00001 - 7.0    - 00009  - TRATAMENTO DE PROCESSOS DE EXPORTAÇÃO EM BRL-CAPTAÇAO,VINCULAÇAO

08981  - 00002 - 7.0    - 00010  - LIQUIDAÇÃO - VALORES INCORRETOS QUANDO FOR MOEDA JPY

09742  - 00003 - 8.0    - 00002  - LIQUIDAÇÃO DE CONTRATO ACC, PROGRAMA BUSCA TAXA INCORRETA

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

VINCULAÇÃO E LIQUIDAÇÃO DE CONTRATOS EM BRL COM FATURAS EM OUTRAS MOEDAS

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

Palavras Chave:

VINCULAÇÃO, LIQUIDAÇÃO, CONTRATOS BRL, FATURAS OUTRAS MOEDAS

 

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

Objetos da nota:

FUNC /PWS/ZYCB_TRANSACAO_F_22G

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB009F03

REPS /PWS/MZYCB009F05

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_22G

 

...

                'BSEG-ZUONR'     v_zuonr.

        IF NOT v_gsber IS INITIAL.

          READ TABLE itab_oculto WITH KEY campo = 'BSEG-GSBER'

                                          chave = v_lanc1.

          IF sy-subrc NE 0.

            PERFORM bdc_field USING:

                    'BSEG-GSBER' v_gsber.

          ENDIF.

        ENDIF.

        IF NOT v_zfbdt IS INITIAL.

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

          IF v_tela = '0304'.

            PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt.

          ELSE.

* << Fim da inclusão

          READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZFBDT'

                                          chave = v_lanc1.

          IF sy-subrc <> 0.

            PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt.

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

            ENDIF.

* << Fim da inclusão

          ENDIF.

        ENDIF.

        IF NOT v_zterm IS INITIAL.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

       importing

            v_year                 = v_year

       exceptions

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

            empresa_nao_encontrada = 3

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            others                 = 7.

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

  if /pws/zycbe001-waers eq wa_zycbt007-waersb.

    itab_zycbe033-kursf = 1.

  else.

* << Fim da inclusão

  select single kursf from bkpf

               into itab_zycbe033-kursf

              where belnr eq itab_zycbt005-belnr

                and bukrs eq itab_zycbt006-bukrs

                and gjahr eq v_year.

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

  endif.

* << Fim da inclusão

  perform verify_null_field using itab_zycbe033-kursf

                                  'TXCAMB'

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

      v_data_aux = itab_zycbt006-dtpagto.

      v_data_aux+6(2) = '01'.

      v_databl = v_data_aux.

    WHEN 'DTLANC'.

      v_databl = p_dtlanc.

    WHEN 'TXACE'.

      PERFORM verifica_data2 USING wa_zycbt007-dtvincul

                                   itab_zycbt006-dtpagto.

    WHEN 'DTVINCUL'.

      v_databl = itab_zycbt006-dtvincul.

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

      IF /pws/zycbe001-waers EQ wa_zycbt007-waersb .

* << Fim da exclusão

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

      if /pws/zycbe001-waers eq wa_zycbt007-waersb  and

       ( itab_zycbe033-waers is initial             or

         itab_zycbe033-waers eq wa_zycbt007-waersb ).

* << Fim da inclusão

        itab_zycbe033-kursf = /pws/zycbe001-txcneg.

      ENDIF.

    WHEN 'DTCREDEXT'.

      v_databl = itab_zycbt006-dtpagext.

    WHEN 'VIATRANS'.

      IF itab_zycbt030-nrinvoic IS INITIAL.

        READ TABLE itab_zycbt030 WITH KEY

                                      nrinvoic = itab_zycbt006-nrinvoic

                                      gsberf   = itab_zycbt006-gsberf

                                      nrparcf  = itab_zycbt006-nrparcf.

...

 

...

              v_databl = v_dtemb.

            ELSEIF wa_zycet048-dtvrc EQ 'DTAVERB'.

              v_databl = v_dtaverb2.

            ELSEIF wa_zycet048-dtvrc EQ 'DTCRUZE'.

              v_databl = v_dtcruze.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

    WHEN 'TXFAT'.

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

      IF /pws/zycbe001-waers EQ wa_zycbt007-waersb.

* << Fim da exclusão

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

      if /pws/zycbe001-waers eq wa_zycbt007-waersb  and

       ( itab_zycbe033-waers is initial             or

         itab_zycbe033-waers eq wa_zycbt007-waersb ).

* << Fim da inclusão

        itab_zycbe033-kursf = /pws/zycbe001-txcneg.

      ELSE.

        SELECT SINGLE belnr dtbelnr

               FROM /pws/zycbt030

               INTO (v_belnr,v_dtemb)

               WHERE nrinvoic EQ itab_zycbt006-nrinvoic AND

                     gsberf   EQ itab_zycbt006-gsberf   AND

                     nrparcf  EQ itab_zycbt006-nrparcf.

        IF NOT v_belnr IS INITIAL AND

           NOT v_dtemb IS INITIAL.

...

 

...

                 WHERE belnr EQ itab_zycbt006-belnr5

                   AND bukrs EQ itab_zycbt006-bukrs

                   AND gjahr EQ v_year.

    READ TABLE itab_tcurx WITH KEY

                             currkey = /pws/zycbe001-waers INTO tcurx.

    IF sy-subrc <> 0.

      tcurx-currdec = 2.

    ENDIF.

    v_reais_c = ( itab_paridade_ant-v_vlme_c  )

                / ( 10 ** ( tcurx-currdec - 2 ) ).

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

    if /pws/zycbe001-waers eq wa_zycbt007-waersb.

      v_reais_c = v_reais_c.

    else.

* << Fim da inclusão

    v_reais_c = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * v_reais_c.

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

    endif.

* << Fim da inclusão

    CLEAR bkpf.

    READ TABLE itab_tcurx WITH KEY

                             currkey = itab_zycbt006-waers INTO tcurx.

    IF sy-subrc <> 0.

      tcurx-currdec = 2.

...

 

...

      v_reais_c = itab_paridade-v_vlme_c.

    ENDIF.

    READ TABLE itab_tcurx WITH KEY currkey = /pws/zycbe001-waers

                               INTO tcurx.

    IF sy-subrc NE 0.

      tcurx-currdec = 2.

    ENDIF.

    IF tcurx-currdec = 0.

      v_reais_c = v_reais_c / ( 10 ** ( tcurx-currdec - 2 ) ).

    ENDIF.

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

    if /pws/zycbe001-waers eq wa_zycbt007-waersb.

      v_reais_c = v_reais_c.

    else.

* << Fim da inclusão

    v_reais_c = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * v_reais_c.

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

    endif.

* << Fim da inclusão

    CLEAR bkpf.

    CLEAR itab_zycbt084.

    READ TABLE itab_zycbt084 WITH KEY

                                    nrseqc   = itab_zycbt006-nrseqc

                                    nrinvoic = itab_zycbt006-nrinvoic

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F03

 

...

  if not itab_transport[] is initial.

    leave program.

  endif.

  clear v_erro_estorno.

  set parameter id '001' field /pws/zycbe001-nrseqc.        "#EC *

  set parameter id '9999' field /pws/zycbe005-dtvincul.     "#EC *

endform.

form altera_itab_zycbt005.

  data: subrc like sy-subrc.

  v_index = tc_faturas-current_line.

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

  if  /pws/zycbe001-waers = 'BRL' and

      itab_zycbt005-waers ne 'BRL'.

    delete  itab_zycbt005 index v_index.

    message i061 with text-503 text-504 text-505 .

    exit.

  endif.

* << Fim da exclusão

  if v_status_s eq 0.

    read table itab_zycbt005_aux index v_index.

    if /pws/zycbe005-mark eq 'X'.

      itab_zycbt005-mark = 'X'.

      itab_zycbt005_aux-mark = 'X'.

    else.

      clear itab_zycbt005-mark.

      clear itab_zycbt005_aux-mark.

    endif.

    modify itab_zycbt005 index v_index.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F05

 

...

          and fvinc    eq space

       and status   eq space.

    endif.

    sort itab_zycbt017_aux by nrinvoic nrparcf gsberf.

    delete adjacent duplicates from itab_zycbt017_aux

                    comparing nrinvoic nrparcf gsberf.

    describe table itab_zycbt017_aux lines v_nlin.

    loop at itab_zycbt017_aux.

      itab_zycbt017_aux-v_fsaldo = 'X'.

      modify itab_zycbt017_aux index sy-tabix.

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

     if /pws/zycbt007-waersb eq /pws/zycbe001-waers.

       if itab_zycbt017_aux-waers ne /pws/zycbe001-waers.

         message w061 with text-503 text-504

                           itab_zycbt017_aux-nrinvoic text-505 .

       endif.

       if itab_zycbt017_aux-bukrs ne /pws/zycbe001-bukrs.

          message w061 with text-503 text-504

                           itab_zycbt017_aux-nrinvoic text-506 .

       endif.

     endif.

* << Fim da exclusão

    endloop.

    clear: refe,

           nrin,

           gsbe,

           fkda,

           kuna,

           dtve,

           dtbl,

           inco,

           nrre,

...