CE PLUS - Nota 004109

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 05/07/2007 00:00:00

Data/Hora Última Alteração: 21/02/2011 10:23:20

Descrição da Nota: VINCULAÇÃO - LIQUIDAÇÃO AUTOMÁTICA CP - CONTA LIQ. ANDAMENTO

Sintoma

Ao efetuar uma vinculação com liquidação automática, onde a fatura passou por liquidação em

andamento na conta do razão, esta buscando a partida do documento contábil na conta do cliente.

 

 

Solução

Inserir tratamento para verificar o parâmetro da /PWS/ZYGL007, quando a fatura passou por liquidação

em andamento, para buscar a conta correta.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

VINCULAÇÃO - LIQUIDAÇÃO CAMBIO PRONTO

Informações Complementares

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

Nota Número 04109 Data: 05/07/2007 Hora: 10:16:59

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

 

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

Nota Número              : 04109

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00002

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

Referência às notas relacionadas:

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

 

03538  - 00001 - 7.0    - 00001  - VINCULAÇÃO - LIQUIDAÇÃO CAMBIO PRONTO

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

VINCULAÇÃO - LIQUIDAÇÃO AUTOMÁTICA CP - CONTA LIQ. ANDAMENTO

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

Palavras Chave:

VINCULAÇÃO LIQUIDAÇÃO AUTOMÁTICA CP CONTA LIQ. ANDAMENTO

CONTA DO RAZÃO

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

Objetos da nota:

REPS /PWS/MZYCB009F03

REPS /PWS/MZYCB009F07

REPS /PWS/MZYCB009TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F03

 

...

  IF /pws/zycbe005-vlslf EQ 0 AND itab_zycbt005-v_fsaldo IS INITIAL.

    itab_zycbt005-vlslf    = /pws/zycbt017-vlslf.

    itab_zycbt005-v_fsaldo = 'X'.

    MODIFY itab_zycbt005 INDEX v_index.

  ELSE.

    itab_zycbt005-vlslf    = /pws/zycbe005-vlslf.

  ENDIF.

  itab_zycbt005-dtcredext = /pws/zycbe005-dtcredext.

ENDFORM.

FORM encontra_documento.

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

  DATA: v_belnr LIKE bseg-belnr,

        v_data  LIKE /pws/zycbt030-budat(4),

        v_conta LIKE /pws/zycbt017-kunag,

* << Fim da exclusão

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

  DATA: v_belnr  LIKE bseg-belnr,

        v_data   LIKE /pws/zycbt030-budat(4),

        v_conta  LIKE /pws/zycbt017-kunag,

* << Fim da inclusão

        v_modulo LIKE bseg-koart.

  CHECK itab_zycbt030-v_belnr IS INITIAL.

  v_modulo = 'D'.

  IF wa_zycbt007-liq_trans IS INITIAL.

    IF itab_zycbt030-belnr6 IS INITIAL.

      v_belnr = itab_zycbt030-belnr.

    ELSE.

      v_belnr = itab_zycbt030-belnr6.

    ENDIF.

    v_data  = itab_zycbt030-budat(4).

...

 

...

    ELSE.

      IF itab_zycbt030-belnr6 IS INITIAL.

        v_belnr = itab_zycbt030-belnr.

      ELSE.

        v_belnr = itab_zycbt030-belnr6.

      ENDIF.

      v_data  = itab_zycbt030-budat(4).

      v_conta = itab_zycbt017-kunag.

    ENDIF.

  ENDIF.

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

  IF /pws/zycbe001-tpcontr(1) = 'C'.

    READ TABLE itab_zycbt209 WITH KEY nrinvoic = itab_zycbt030-nrinvoic

                                      nrparcf  = itab_zycbt030-nrparcf

                                      gsberf   = itab_zycbt030-gsberf.

    IF sy-subrc = 0.

      IF     /pws/zycbt089-tp_liq_and EQ 'Z'.

        SELECT SINGLE agums FROM /pws/zycbt011

                            INTO itab_zycbe033-umskz

                            WHERE codeven = '023' AND

                                  codmod  = 'E'   AND

                                  bukrs   = itab_zycbt017-bukrs.

        itab_zycbe033-agums   = itab_zycbe033-umskz.

        itab_zycbe033-agkoa   = 'D'.

        itab_zycbe033-newbs   = '09'.

      ELSEIF /pws/zycbt089-tp_liq_and EQ 'D'.

        IF NOT /pws/zycbt089-liq_and_cod_cli IS INITIAL.

          v_conta = /pws/zycbt089-liq_and_cod_cli.

        ELSE.

          SELECT * FROM /pws/zyglt368 INTO TABLE itab_zyglt368

                   WHERE bukrs = itab_zycbt017-bukrs.

          READ TABLE itab_zyglt368 INDEX 1.

          IF sy-subrc = 0 AND itab_zyglt368-kunag IS INITIAL.

            SELECT SINGLE ktokd FROM kna1 INTO v_ktokd

                                WHERE kunnr EQ itab_zycbt017-kunag.

            READ TABLE itab_zyglt368 WITH KEY ktokd = v_ktokd.

            IF sy-subrc EQ 0.

              v_conta = itab_zyglt368-codtrans.

            ENDIF.

          ELSEIF sy-subrc = 0 AND itab_zyglt368-ktokd IS INITIAL.

            READ TABLE itab_zyglt368

                                   WITH KEY kunag = itab_zycbt017-kunag.

            IF sy-subrc EQ 0.

              v_conta = itab_zyglt368-codtrans.

            ENDIF.

          ENDIF.

        ENDIF.

      ELSEIF /pws/zycbt089-tp_liq_and EQ 'S'.

        itab_zycbe033-koart = 'S'.

        itab_zycbe033-agkoa = 'S'.

        itab_zycbe033-newbs = '40'.

        CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

             EXPORTING

                  bukrs           = itab_zycbt017-bukrs

                  ktosl           = 'TRE'

                  codaux1         = 'BAIXA CLIENTE'

             TABLES

                  account         = itab_zyglt316

             EXCEPTIONS

                  key_not_found   = 1

                  rules_not_found = 2

                  OTHERS          = 3.

        READ TABLE itab_zyglt316 INDEX 1.

        v_conta = itab_zyglt316-konts.

      ENDIF.

    itab_zycbe033-d_newko = v_conta.

    ENDIF.

  ENDIF.

  IF /pws/zycbe001-tpcontr(1) = 'C' AND /pws/zycbt089-tp_liq_and EQ 'S'.

    v_modulo = 'S'.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCB_DOCUMENTO_VERIFICA'

       EXPORTING

            i_modulo             = v_modulo

            i_bukrs              = /pws/zycbe001-bukrs

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

              i_hkont              = v_conta

              i_gjahr              = v_data

         CHANGING

              c_belnr              = v_belnr

         EXCEPTIONS

              documento_compensado = 1

              OTHERS               = 2.

  ELSE.

    CALL FUNCTION '/PWS/ZYCB_DOCUMENTO_VERIFICA'

         EXPORTING

              i_modulo             = v_modulo

              i_bukrs              = /pws/zycbe001-bukrs

* << Fim da inclusão

            i_kunnr              = v_conta

            i_gjahr              = v_data

       CHANGING

            c_belnr              = v_belnr

       EXCEPTIONS

            documento_compensado = 1

            OTHERS               = 2.

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

  ENDIF.

* << Fim da inclusão

  IF sy-subrc = 0.

    itab_zycbt030-v_belnr = v_belnr.

    MODIFY itab_zycbt030 TRANSPORTING v_belnr

                         WHERE belnr = itab_zycbt030-belnr.

  ELSE.

    itab_erro1-vbeln = itab_zycbt030-vbeln.

    CONCATENATE text-120 v_belnr text-154 INTO itab_erro1-msg

                SEPARATED BY space.

    APPEND itab_erro1.

  ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F07

 

...

        v_kunnr TYPE kunnr,

        v_dtliquid LIKE /pws/zycbt006-dtpagto,

        v_dtemb    LIKE /pws/zycet001-dtemb.

  DATA: BEGIN OF itab_bsid OCCURS 0.

          INCLUDE STRUCTURE bsid.

  DATA: END OF itab_bsid.

  check itab_zycbt034[] is initial.

  READ TABLE itab_zycbt017 WITH KEY nrinvoic = wa_zycbt005-nrinvoic

                                    nrparcf  = wa_zycbt005-nrparcf

                                    gsberf   = wa_zycbt005-gsberf.

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

  PERFORM clear_date_batch.

* << Fim da inclusão

  PERFORM encontra_documento.

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

  PERFORM clear_date_batch.

* << Fim da exclusão

  CONCATENATE wa_zycbt005-nrseqc   wa_zycbt005-tpdesp

              wa_zycbt005-nrparc   wa_zycbt005-dtincl

              wa_zycbt005-nrinvoic wa_zycbt005-gsberf

              wa_zycbt005-dtvincul wa_zycbt005-dtvencto

              wa_zycbt005-nrparcf

              itab_zycbt030-budat  itab_zycbt030-vbeln

...

 

...

  itab_zycbe033-budat  = wa_zycbt005-dtvincul.

  IF /pws/zycbe001-tpcontr EQ 'C ' AND

     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.

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

  IF NOT wa_zycbt011-agums IS INITIAL.

* << Fim da exclusão

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

  IF NOT wa_zycbt011-agums IS INITIAL

     AND itab_zycbe033-agums IS INITIAL.

* << Fim da inclusão

    itab_zycbe033-agums = wa_zycbt011-agums.

  ENDIF.

  IF itab_zycbt006-ftxt IS INITIAL.

    itab_zycbe033-augtx   = wa_zycbt011-txtdesc.

    itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

  ELSE.

    itab_zycbe033-augtx   = itab_zycbt005-txtinf.

    itab_zycbe033-d_sgtxt = itab_zycbt005-txtinf.

  ENDIF.

  itab_zycbe033-c_sgtxt = itab_zycbt006-nrinvoic.

...

 

...

  SELECT SINGLE budat

    FROM bkpf

    INTO itab_zycbe033-dtdocto

   WHERE bukrs = itab_zycbt005-bukrs

     AND belnr = itab_zycbt030-belnr

     AND gjahr = v_year.

  PERFORM verify_null_field USING wa_zycbt011-blart

                                  'BLART'

                                  text-006.

  itab_zycbe033-blart  = wa_zycbt011-blart.

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

  IF itab_zycbe033-d_newko IS INITIAL.

* << Fim da inclusão

  itab_zycbe033-d_newko = itab_zycbt005-kunnr.

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

  ENDIF.

* << Fim da inclusão

  IF wa_zycbt007-dtliqcp NE 'DTCONTR' AND

     wa_zycbt007-dtliqcp NE 'TXCONTR'.

    itab_zycbe033-kursf = wa_zycbt005-txcamb.

  ELSE.

    itab_zycbe033-kursf = /pws/zycbe001-txcneg.

  ENDIF.

  PERFORM verify_null_field USING itab_zycbe033-kursf

                                  'TXCAMB'

                                  text-080.

  itab_zycbe033-wrbtr   = itab_zycbt030-v_kwert.

  itab_zycbe033-c_gsber = wa_zycbt005-gsberf.

  itab_zycbe033-d_gsber = wa_zycbt005-gsberf.

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

  IF itab_zycbe033-agkoa IS INITIAL.

* << Fim da inclusão

  itab_zycbe033-agkoa   = 'D'.

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

  ENDIF.

  IF itab_zycbe033-newbs IS INITIAL.

* << Fim da inclusão

  IF itab_zycbt030-flag <> 'X'.

    itab_zycbe033-newbs = '01'.

  ELSE.

    itab_zycbe033-newbs = '12'.

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

  itab_zycbt036-tcode   = itab_zycbe033-tcode.

  itab_zycbt036-tabela  = itab_zycbe033-tabela.

  itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

  itab_zycbt036-residuo = itab_zycbe033-wrbtr.

  CONCATENATE 'Des.' itab_zycbt005-nrinvoic itab_zycbt005-nrparcf

              INTO itab_zycbt036-zuonr

              SEPARATED BY space.

  APPEND itab_zycbt036.

  itab_doctos-tcode   = itab_zycbe033-tcode.

  itab_doctos-tabela  = itab_zycbe033-tabela.

...

 

...

                                  itab_zycbe033-kursf.

    ENDIF.

  ENDIF.

  IF wa_zycbt007-dtliquid EQ 'VIATRANS' AND

     itab_zycbe033-kursf IS INITIAL.

    MESSAGE i061 WITH text-215 wa_zycbt005-nrinvoic text-216 text-217.

    PERFORM verify_null_field USING itab_zycbe033-kursf

                                    'KURSF'

                                    text-051.

  ENDIF.

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

  READ TABLE itab_zycbt209 WITH KEY nrinvoic = itab_zycbt030-nrinvoic

                                    nrparcf  = itab_zycbt030-nrparcf

                                    gsberf   = itab_zycbt030-gsberf.

  IF sy-subrc = 0.

    IF     /pws/zycbt089-tp_liq_and EQ 'Z'.

      SELECT SINGLE agums FROM /pws/zycbt011

                          INTO itab_zycbe033-agums

                          WHERE codeven = '023' AND

                                codmod  = 'E'   AND

                                bukrs   = itab_zycbt017-bukrs.

      itab_zycbe033-agkoa   = 'D'.

      itab_zycbe033-agkon   = wa_zycbt005-kunnr.

    ELSEIF /pws/zycbt089-tp_liq_and EQ 'D'.

      itab_zycbe033-agkoa = 'D'.

      IF NOT /pws/zycbt089-liq_and_cod_cli IS INITIAL.

        itab_zycbe033-agkon = /pws/zycbt089-liq_and_cod_cli.

      ELSE.

        SELECT * FROM /pws/zyglt368 INTO TABLE itab_zyglt368

                 WHERE bukrs = itab_zycbt017-bukrs.

        READ TABLE itab_zyglt368 INDEX 1.

        IF sy-subrc = 0 AND itab_zyglt368-kunag IS INITIAL.

          SELECT SINGLE ktokd FROM kna1 INTO v_ktokd

                              WHERE kunnr EQ itab_zycbt017-kunag.

          READ TABLE itab_zyglt368 WITH KEY ktokd = v_ktokd.

          IF sy-subrc EQ 0.

            itab_zycbe033-agkon = itab_zyglt368-codtrans.

          ENDIF.

        ELSEIF sy-subrc = 0 AND itab_zyglt368-ktokd IS INITIAL.

          READ TABLE itab_zyglt368

                                 WITH KEY kunag = itab_zycbt017-kunag.

          IF sy-subrc EQ 0.

            itab_zycbe033-agkon = itab_zyglt368-codtrans.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSEIF /pws/zycbt089-tp_liq_and EQ 'S'.

      itab_zycbe033-agkoa = 'S'.

      CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

           EXPORTING

                bukrs           = itab_zycbt017-bukrs

                ktosl           = 'TRE'

                codaux1         = 'BAIXA CLIENTE'

           TABLES

                account         = itab_zyglt316

           EXCEPTIONS

                key_not_found   = 1

                rules_not_found = 2

                OTHERS          = 3.

      READ TABLE itab_zyglt316 INDEX 1.

      itab_zycbe033-agkon = itab_zyglt316-konts.

    ENDIF.

  ELSE.

* << Fim da inclusão

  itab_zycbe033-agkoa = 'D'.

  itab_zycbe033-agkon = wa_zycbt005-kunnr.

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

  ENDIF.

* << Fim da inclusão

  IF itab_zycbe033-d_sgtxt IS INITIAL.

    IF wa_zycbt005-ftxt IS INITIAL.

      itab_zycbe033-augtx   = wa_zycbt011-txtdesc.

      itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

    ELSE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009TOP

 

...

        INCLUDE STRUCTURE /pws/zycbt221.

DATA: END OF itab_zycbt221_aux.

DATA: BEGIN OF itab_zycbt223 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt223.

DATA: END OF itab_zycbt223.

DATA: BEGIN OF itab_performance OCCURS 0.

DATA: nrseqc   LIKE /pws/zycbt001-nrseqc,

      bukrs    LIKE /pws/zycbt005-bukrs,

      nrinvoic LIKE /pws/zycbt017-nrinvoic.

DATA: END OF itab_performance.

* >> Início da inclusão:

DATA: itab_zyglt368 LIKE /pws/zyglt368 OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

TYPE-POOLS: sydes.

DATA: t_sydes  TYPE sydes_desc,

      wa_types TYPE sydes_typeinfo,

      v_len    TYPE i.

DATA:  v_contad LIKE /pws/zyglt316-konts,

       v_contac LIKE /pws/zyglt316-konth,

       v_vlslf  LIKE /pws/zycbe017-vlslf.

DATA:

  wa_zycbt011t    LIKE /pws/zycbt011,

  wa_t001w        LIKE t001w,

...

 

...

  v_pag_jur(1),

  v_budat LIKE sy-datum,

  belnr2    LIKE /pws/zycbt001-belnr,

  v_codaux1 LIKE /pws/zyglt316-codaux1,

  v_mensagem(1) TYPE c,

   v_nrinvoic_perf LIKE /pws/zycbt017-nrinvoic,

   v_bukrs_perf    LIKE /pws/zycbt005-bukrs,

   v_buzei    LIKE bseg-buzei,

   v_zbd1t    LIKE bsid-zbd1t,

   v_ztag1    LIKE t052-ztag1,

* >> Início da exclusão:

   v_doc_and  LIKE /pws/zycbt209-belnr.

* << Fim da exclusão

* >> Início da inclusão:

   v_doc_and  LIKE /pws/zycbt209-belnr,

   v_ktokd    TYPE /pws/zyglt368-ktokd.

* << Fim da inclusão

DATA: icc_       TYPE c,

      conta_     LIKE /pws/zycbt012-saknr1,

      belnr_     LIKE /pws/zycbt030-belnr,

      v_exec(1)  TYPE c,

      v_slliq    LIKE /pws/zycbt005-vlme_p,

      v_kurrf_bl LIKE /pws/zycet001-kurrf_bl,

      v_linha1(2) TYPE n,

      v_sldesc   LIKE /pws/zycbt005-vlme_p,

      v_repid       LIKE sy-repid VALUE '/PWS/SAPMZYCB009',

      v_codmod      TYPE c VALUE 'E',

...