CE PLUS - Nota 006009

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Fatura

Data/Hora da Publicação: 22/02/2008 00:00:00

Data/Hora Última Alteração: 22/02/2011 12:41:14

Descrição da Nota: LIQUIDAÇÃO COM ARBITRAGEM - ATRIBUIÇÃO - /PWS/ZYGLT321 - FTE

Sintoma

Ao efetuar o estorno de liquidação com arbitragem, na volta do saldo ao cliente não esta alimentando

o campo atribuição corretamente.

 

 

Solução

Alterar seleção da /pws/zyglt321 para a nova chave de operação, FTE, mapeando os valores na F-30.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS

LIQUIDAÇÃO DE FATURAS - TEXTO DESCRIVO DOC. CONTÁBIL

Informações Complementares

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

Nota Número 06009 Data: 22/02/2008 Hora: 17:04:35

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

 

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

Nota Número              : 06009

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00036

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

Referência às notas relacionadas:

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

 

02101  - 00001 - 6.0    - 00025  - LIQUIDAÇÃO DE FATURAS - ARBITRAGEM - CASAS DECIMAIS

02114  - 00002 - 6.0    - 00025  - LIQUIDAÇÃO DE FATURAS - TEXTO DESCRIVO DOC. CONTÁBIL

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

LIQUIDAÇÃO COM ARBITRAGEM - ATRIBUIÇÃO - /PWS/ZYGLT321 - FTE

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

Palavras Chave:

LIQUIDAÇÃO COM ARBITRAGEM - ATRIBUIÇÃO - /PWS/ZYGLT321 - FTE

CLIENTE

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

Objetos da nota:

FUNC /PWS/ZYCB_TRANSACAO_F_30_S

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_S

 

 

MODIFICAR MÓDULO DE FUNÇÃO: /PWS/ZYCB_TRANSACAO_F_30_S

CARACTERÍSTICAS

 

IMPORTAÇÃO:

NOME PARAM.      ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

V_ULT

* >> Início da inclusão:

V_FLAG_EST_ARB   TYPE   C                       ''       'X'     ''    Flag  estorno de arbitragem

* << Fim da inclusão

 

 

 

 

TEXTO FONTE

 

 

...

      PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

      PERFORM bdc_field  USING 'BDC_CURSOR' 'RF05A-ABPOS'.

      PERFORM bdc_field  USING 'BDC_OKCODE' '=OSE'.

    ENDIF.

    PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

    PERFORM bdc_field USING: 'BDC_OKCODE' '=DBR'.

    PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

    PERFORM bdc_field USING: 'BDC_CURSOR' 'DF05B-PSDIF(01)',

                             'BDC_OKCODE' '=PI'.

    PERFORM bdc_screen USING 'SAPDF05X' '3100'.

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

    IF v_flag_est_arb EQ 'X'.

      PERFORM bdc_field USING: 'BDC_OKCODE' '=BS'.

    ELSE.

* << Fim da inclusão

    PERFORM bdc_field USING: 'BDC_OKCODE' '=BU'.

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

    ENDIF.

* << Fim da inclusão

    IF t_dados-koart EQ 'D'.

      v_tela = '0301'.

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

      t_dados-newbs = '04'.

* << Fim da inclusão

    ELSEIF t_dados-koart EQ 'K'.

      v_tela = '0302'.

    ELSEIF t_dados-koart EQ 'S'.

      v_tela = '0300'.

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

    ENDIF.

    PERFORM verifica_empresas USING t_dados-bukrs

                                    'UMBUCHNG'

                                    t_dados-d_newko

                                    t_dados-koart.

    IF NOT t_dados-agums IS INITIAL.

      v_tela = '304'.

      t_dados-newbs = '09'.

* << Fim da inclusão

    ENDIF.

    PERFORM bdc_screen USING 'SAPMF05A' '0700'.

    PERFORM bdc_field USING:

            'BDC_CURSOR' 'RF05A-AZEI1(01)',

            'BDC_OKCODE' '=PI'.

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

    CLEAR itab_oculto.

    REFRESH itab_oculto.

    IF t_dados-koart EQ 'D'.

      SELECT SINGLE akont FROM knb1

        INTO knb1-akont

        WHERE kunnr = t_dados-d_newko

          AND bukrs = t_dados-bukrs.

      IF NOT t_dados-agums IS INITIAL.

        SELECT SINGLE plcontas FROM /pws/zycbt007

                               INTO /pws/zycbt007-plcontas

                               WHERE bukrs EQ t_dados-bukrs.

        SELECT SINGLE skont FROM t074

          INTO v_cconta

          WHERE ktopl = /pws/zycbt007-plcontas

            AND koart = 'D'

            AND hkont = knb1-akont.

        IF sy-subrc NE 0.

          v_cconta = knb1-akont.

        ENDIF.

      ELSE.

        v_cconta = knb1-akont.

      ENDIF.

      PERFORM determina_string USING t_dados-newbs

                                     t_dados-bukrs

                                     v_cconta

                            CHANGING v_string_debito.

    ENDIF.

    PERFORM trata_string_debito TABLES t_dados

                                       t_campo

                                       itab_oculto

                                USING  v_string_debito.

* << Fim da inclusão

    PERFORM bdc_screen USING 'SAPMF05A'   v_tela.

    PERFORM bdc_field USING: 'BSEG-ZUONR' t_dados-d_zuonr.

    IF NOT t_dados-d_sgtxt IS INITIAL.

      PERFORM bdc_field USING: 'BSEG-SGTXT' t_dados-d_sgtxt.

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

    ENDIF.

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

                                    chave = 'D'.

    IF sy-subrc NE 0 AND NOT t_dados-zfbdt IS INITIAL..

      PERFORM bdc_field USING 'BSEG-ZFBDT' v_zfbdt.

    ENDIF.

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

                                    chave = 'D'.

    IF sy-subrc NE 0 AND NOT t_dados-d_valut IS INITIAL..

      PERFORM bdc_field USING 'BSEG-VALUT' v_valut.

* << Fim da inclusão

    ENDIF.

    PERFORM bdc_field USING: 'BDC_OKCODE' '=BU'.

    IF v_tela EQ '0300'.

      IF NOT t_dados-d_valut IS INITIAL.

        PERFORM bdc_field USING: 'BSEG-VALUT' v_valut.

      ENDIF.

      PERFORM bdc_screen USING 'SAPLKACB'   '0002'.

      PERFORM bdc_field USING: 'BDC_OKCODE' '=ENTE',

                               'COBL-GSBER' t_dados-d_gsber.

    ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

        itab_zycbt005-waers  TO itab_zycbt006-waers_a.

  itab_zycbt030-v_kwert2 =

    ( itab_zycbt030-kwert / itab_zycbt030-s_kwert ) * v_vlmel.

  PERFORM busca_conta.

  PERFORM encontra_documento.

  PERFORM fill_date6_f30_liquid_3.

  LOOP AT itab_zycbt034.

    MESSAGE i016 WITH itab_zycbt034-descricao.

  ENDLOOP.

  IF itab_zycbt034 IS INITIAL.

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

    PERFORM unlock_razao USING itab_zycbe033-d_newko

                               itab_zycbe033-bukrs.

* << Fim da inclusão

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_W'

         EXPORTING

              v_modo          = v_modo_bi

              v_vinc_tot      = 'X'

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

              t_partidas      = itab_partidas

         EXCEPTIONS

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

FORM clearing_cli USING value(p_kunnr)

                        value(p_datum).

  PERFORM clear_date_batch.

  itab_zycbe033-tcode  = 'F-30'.

  CONCATENATE itab_zycbt006-nrinvoic itab_zycbt006-nrparcf

         INTO itab_zycbe033-cpochv.

  itab_zycbe033-tabela = 'ZYCBT030'.

  REFRESH itab_zyglt321.

  SELECT * FROM /pws/zyglt321

           INTO TABLE itab_zyglt321

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

           WHERE ktosl   = 'CPT'

* << Fim da exclusão

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

           WHERE ktosl   = 'FTE'

* << Fim da inclusão

             AND codeven = v_codeven.

  itab_zycbe033-budat = p_datum.

  itab_zycbe033-bldat = itab_zycbe033-budat.

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

  itab_zycbe033-d_valut = itab_zycbe033-budat.

  itab_zycbe033-c_valut = itab_zycbe033-budat.

* << Fim da exclusão

  READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                                    gsberf   = itab_zycbt006-gsberf.

  LOOP AT itab_zyglt321.

    CASE itab_zyglt321-cpor3.

      WHEN 'SGTXT'.

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

        IF itab_zyglt321-cpocb = 'V_TXTINF'.

* << Fim da exclusão

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

        IF itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-d_sgtxt = itab_zycbt017-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'NREMB'.

          itab_zycbe033-d_sgtxt = itab_zycbt017-nremb.

        ELSEIF itab_zyglt321-cpocb = 'OBSERV'.

          itab_zycbe033-d_sgtxt = itab_zycbt017-observ.

        ELSEIF itab_zyglt321-cpocb = 'V_TXTINF'.

* << Fim da inclusão

          itab_zycbe033-d_sgtxt = v_txtinf.

          itab_zycbe033-d_sgtxt = v_txtinf.

          itab_zycbe033-augtx   = v_txtinf.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

           itab_zycbt006-ftxt IS INITIAL AND

           NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_sgtxt = itab_zyglt321-descr.

          itab_zycbe033-c_sgtxt = itab_zyglt321-descr.

          itab_zycbe033-augtx   = itab_zyglt321-descr.

        ENDIF.

      WHEN 'XBLNR'.

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

        IF itab_zyglt321-cpocb = 'NRSEQ' OR

* << Fim da exclusão

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

        IF itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-xblnr = itab_zycbt017-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'NREMB'.

          itab_zycbe033-xblnr = itab_zycbt017-nremb.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ' OR

* << Fim da inclusão

           itab_zyglt321-cpocb = 'NRSEQC'.

          itab_zycbe033-xblnr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-xblnr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-xblnr = itab_zyglt321-descr.

        ENDIF.

      WHEN 'ZFBDT'.

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

        IF itab_zyglt321-cpocb = 'DTBL'.

* << Fim da exclusão

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

        IF itab_zyglt321-cpocb = 'DTINVOIC'.

           itab_zycbe033-zfbdt = itab_zycbt017-dtinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTBL'.

* << Fim da inclusão

          itab_zycbe033-zfbdt = itab_zycbt017-dtbl.

        ELSEIF itab_zyglt321-cpocb = 'DTINCL'.

          SELECT SINGLE dtincl FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt005-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt005-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.

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

          SELECT SINGLE dtvencto FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt030-nrinvoic.

* << Fim da exclusão

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

           itab_zycbe033-zfbdt = itab_zycbt017-dtinvoic.

* << Fim da inclusão

        ELSEIF itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        ENDIF.

      WHEN 'VALUT'.

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

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

* << Fim da exclusão

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

        IF itab_zyglt321-cpocb = 'DTINVOIC'.

           itab_zycbe033-d_valut = itab_zycbt017-dtinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTBL'.

          itab_zycbe033-d_valut = itab_zycbt017-dtbl.

        ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.

* << Fim da inclusão

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

        ENDIF.

      WHEN 'ZUONR'.

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

        IF itab_zyglt321-cpocb = 'NRCONTR'.

* << Fim da exclusão

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

        IF itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-d_zuonr = itab_zycbt017-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'NREMB'.

          itab_zycbe033-d_zuonr = itab_zycbt017-nremb.

        ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.

* << Fim da inclusão

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ENDIF.

      WHEN 'ZTERM'.

        IF itab_zyglt321-cpocb = 'ZTERM'.

          itab_zycbe033-zterm = itab_zycbt017-zterm.

...

 

...

    itab_zycbt036-dtdocto = itab_zycbt030-budat_t.

  ENDIF.

  APPEND itab_zycbt036.

  IF itab_zycbt034 IS INITIAL.

    PERFORM unlock_cliente USING itab_zycbt006-kunnr

                                 itab_zycbe033-bukrs.

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_S'

         EXPORTING

              v_modo          = v_modo_bi

              v_ult           = 'X'

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

              v_flag_est_arb  = 'X'

* << Fim da inclusão

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

              t_zycbt036      = itab_zycbt036

         EXCEPTIONS

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    PERFORM enqueue_cliente USING itab_zycbe033-bukrs

...