CE PLUS - Nota 013310

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: SISCOSERV

Data/Hora da Publicação: 22/05/2014 09:50:56

Data/Hora Última Alteração: 22/05/2014 09:50:56

Descrição da Nota: SISCOSERV - ASSOCIAÇÃO - AUTOMATIZAR PAGAMENTO DO PEDIDO DE COMPRA

Sintoma

AUTOMATIZAÇÃO DA BUSCA DO DOCUMENTO CONTÁBIL DO PAGAMENTO DA FATURA NO MOMENTO DA ASSOCIAÇÃO DO

SISCOSERV

 

 

Solução

AUTOMATIZAÇÃO DA BUSCA DO DOCUMENTO CONTÁBIL DO PAGAMENTO DA FATURA NO MOMENTO DA ASSOCIAÇÃO DO

SISCOSERV

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

SISCOSERV - ASSOCIAÇÃO SISCOSERV

SISCOSERV - ROBÔ - MELHORIAS PARA TRATAR RE-ENVIO AUTOMÁTICO DO ARQUIVO

SISCOERV - ASSOCIAÇÃO SISCOSERV

SISCOSERV - NBS

Informações Complementares

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

Nota Número 13310 Data: 10/10/2013 Hora: 09:59:34

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

 

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

Nota Número              : 13310

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00006

Agrupamento              : 00165

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

Referência às notas relacionadas:

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

 

13109  - 00001 - 9.0    - 00005  - SISCOSERV - NBS

13149  - 00002 - 9.0    - 00005  - SISCOERV - ASSOCIAÇÃO SISCOSERV

13178  - 00003 - 9.0    - 00005  - SISCOSERV - ASSOCIAÇÃO SISCOSERV

13194  - 00004 - 9.0    - 00005  - SISCOSERV - ROBÔ - MELHORIAS PARA TRATAR RE-ENVIO AUTOMÁTICO DO A

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

SISCOSERV - ASSOCIAÇÃO - AUTOMATIZAR PAGAMENTO DO PEDIDO DE COMPRA

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

Palavras Chave:

SISCOSERV - ASSOCIAÇÃO - AUTOMATIZAR PAGAMENTO DO PEDIDO DE COMPRA

 

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

Objetos da nota:

TABD /PWS/ZYCAT031

DYNP /PWS/SAPMZYCA011                        0101

REPS /PWS/MZYCA011F01

REPS /PWS/MZYCA011I01

REPS /PWS/MZYCA011O01

REPS /PWS/MZYCA012F01

REPS /PWS/MZYCA012TOP

 

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

Modificações efetuadas em TABD /PWS/ZYCAT031

 

CAMPOS NOVOS

 

INCLUIR O CAMPO ABAIXO LOGO APÓS O CAMPO 'STATUS'

 

CAMPOS:         TP. CAMPO   CH: INI: TAB.VERIF.:    TAB.REF.:     CPO.RE

EBELP           EBELP       ' ' ' '  '         '    '        '    '      '

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCA011                        0101

 

Efetuar download da(s) tela(s) no Portal de Produtos, caminho:

Aplicativos -> pw.CE > Notas > NOTAS - TELAS > CAMBIO >  13310_TELAS.ZIP

Descompactar e efetuar upload no programa e tela correspondente, transação SE80.

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA011F01

 

...

      with key ebeln = wa_ekpo-ebeln

               ebelp = wa_ekpo-ebelp.

    move:

      v_operacao              to wa_zycat031-operacao,

      wa_zycat046-nbs         to wa_zycat031-nbs,

      wa_zycat046-modo_prest  to wa_zycat031-modo_prest,

      wa_eket-eindt           to wa_zycat031-data_ini,

      wa_ekko-kdate           to wa_zycat031-data_fim,

      wa_ekpo-netwr           to wa_zycat031-valor,

      wa_ekpo-netwr           to wa_zycat031-saldo,

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

      /pws/zycat030-cod_pais  to wa_zycat031-cod_pais.

* << Fim da exclusão

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

      /pws/zycat030-cod_pais  to wa_zycat031-cod_pais,

      wa_ekpo-ebelp           to wa_zycat031-ebelp.

* << Fim da inclusão

    /pws/zycat030-valor = /pws/zycat030-valor + wa_ekpo-netwr.

    append wa_zycat031 to itab_zycat031t.

    clear: wa_zycat031, wa_zycat046, wa_eket.

  endloop.

  /pws/zycat030-saldo = /pws/zycat030-valor.

endform.

form match_code_pedcompra.

  data: l_display(1) type c,

        itab_result type table of ddshretval,

        wa_result   type ddshretval.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA011I01

 

...

    message e015 with text-e29 text-e30.

  endif.

endmodule.

module verifica_numero input.

  check not /pws/zycat030-processamento is initial.

  if /pws/zycat030-n_rvs_ras is initial and

     /pws/zycat030-status = 'PS'.

    message e015 with text-e31.

  endif.

endmodule.

* >> Início da inclusão:

module carrega_item input.

  DATA: wa_zycat031t TYPE ty_zycat031t.

  IF /pws/zycat030-tp_origem = 'PC'.

    READ TABLE itab_zycat031t INTO wa_zycat031t

      WITH KEY operacao = /pws/zycat031-operacao.

    /pws/zycat031-ebelp = wa_zycat031t-ebelp.

  ENDIF.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA011O01

 

...

  IF NOT v_exibe IS INITIAL.

    LOOP AT SCREEN.

      IF screen-name NE 'BOT_ENQ'.

        screen-input = '0'.

        MODIFY SCREEN.

      ENDIF.

    ENDLOOP.

    LOOP AT tc_oper-cols INTO wa_cols.

      IF wa_cols-screen-name NE 'BT_ENQ'.

        wa_cols-screen-input = '0'.

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

        IF wa_cols-screen-name = '/PWS/ZYCAT031-EBELP'.

          wa_cols-screen-input = '0'.

          wa_cols-screen-active = '0'.

          wa_cols-invisible     = '1'.

        ENDIF.

* << Fim da inclusão

        MODIFY tc_oper-cols FROM wa_cols.

      ENDIF.

    ENDLOOP.

  ELSE.

    LOOP AT SCREEN.

      screen-input = '1'.

      MODIFY SCREEN.

    ENDLOOP.

    LOOP AT tc_oper-cols INTO wa_cols.

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

      IF wa_cols-screen-name NE '/PWS/ZYCAT031-SALDO' AND

         wa_cols-screen-name NE '/PWS/ZYCAT031-WAERS' AND

         wa_cols-screen-name NE '/PWS/ZYCAT031-STATUS'.

* << Fim da exclusão

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

      IF wa_cols-screen-name NE '/PWS/ZYCAT031-SALDO'  AND

         wa_cols-screen-name NE '/PWS/ZYCAT031-WAERS'  AND

         wa_cols-screen-name NE '/PWS/ZYCAT031-STATUS' AND

         wa_cols-screen-name NE '/PWS/ZYCAT031-EBELP'.

* << Fim da inclusão

        wa_cols-screen-input = '1'.

      ENDIF.

      IF wa_cols-screen-name = '/PWS/ZYCAT031-STATUS' AND

        NOT /pws/zycat030-processamento IS INITIAL.

        wa_cols-screen-input = '1'.

      ELSEIF wa_cols-screen-name = '/PWS/ZYCAT031-STATUS' AND

        /pws/zycat030-processamento IS INITIAL.

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

        wa_cols-screen-input = '0'.

      ELSEIF wa_cols-screen-name = '/PWS/ZYCAT031-EBELP'.

* << Fim da inclusão

        wa_cols-screen-input = '0'.

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

        wa_cols-screen-active = '0'.

        wa_cols-invisible     = '1'.

* << Fim da inclusão

      ENDIF.

      MODIFY tc_oper-cols FROM wa_cols.

    ENDLOOP.

  ENDIF.

ENDMODULE.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCA012F01

 

...

           /pws/zycat030-tp_origem = 'EE'.

      wa_zycat039fe-fat_exp = /pws/zycat030-origem.

      wa_zycat039fe-moeda   = /pws/zycat030-waers.

      wa_zycat039fe-valor   = /pws/zycat030-valor.

      perform atualiza_itab tables  itab_zycat039_fe

                            using   wa_zycat039fe

                                    tc_fatexp.

    endif.

    perform calcula_saldo.

  endif.

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

  IF /pws/zycat030-tp_origem = 'PC'.

    PERFORM busca_doc_pedido USING /pws/zycat030-origem

                                   /pws/zycat031-ebelp.

    PERFORM calcula_saldo.

  ENDIF.

* << Fim da inclusão

  if not itab_zycat039_r[] is initial or

     ( itab_zycat039_r[] is initial and

       itab_zycat039_c[] is initial and

       itab_zycat039_f[] is initial and

       itab_zycat039_fe[] is initial and

       itab_zycat039_o[] is initial ).

    v_dynnr = '0101'.

    ts_assoc-activetab = 'TB_REM'.

  elseif not itab_zycat039_c[] is initial.

    v_dynnr = '0102'.

...

 

...

           itab_zycat039_fe-status = 'ES'.

          message i061 with text-i06 itab_zycat039_f-fat_comis

                            text-i07.

        else.

          delete itab_zycat039_fe.

        endif.

      endloop.

      clear v_okcode.

  endcase.

endform.

* >> Início da inclusão:

FORM busca_doc_pedido USING p_ebeln

                            p_ebelp.

  DATA: itab_ekbe  TYPE TABLE OF ty_ekbe,

        wa_ekbe    TYPE ty_ekbe,

        itab_awkey TYPE TABLE OF ty_awkey,

        wa_awkey   TYPE bkpf-awkey,

        itab_bkpf  TYPE TABLE OF ty_bkpf,

        itab_bsak  TYPE TABLE OF ty_bsak,

        itab_total TYPE TABLE OF ty_total,

        wa_bsak    TYPE ty_bsak,

        wa_total   TYPE ty_total,

        v_valor    TYPE /pws/zycat039-valor.

  SELECT ebeln gjahr belnr bewtp shkzg

    FROM ekbe

    INTO TABLE itab_ekbe

    WHERE ebeln = p_ebeln

      AND ebelp = p_ebelp.

  DELETE itab_ekbe WHERE bewtp NE 'Q'.

  DELETE itab_ekbe WHERE shkzg NE 'S'.

  IF NOT itab_ekbe[] IS INITIAL.

    LOOP AT itab_ekbe INTO wa_ekbe.

      CONCATENATE wa_ekbe-belnr wa_ekbe-gjahr

        INTO wa_awkey.

      APPEND wa_awkey TO itab_awkey.

    ENDLOOP.

    IF NOT itab_awkey[] IS INITIAL.

      SELECT bukrs belnr gjahr awtyp awkey

        FROM bkpf

        INTO TABLE itab_bkpf

        FOR ALL ENTRIES IN itab_awkey

        WHERE awkey = itab_awkey-awkey.

      DELETE itab_bkpf WHERE awtyp NE 'RMRP'.

      IF NOT itab_bkpf[] IS INITIAL.

        SELECT bukrs lifnr umsks umskz augdt augbl

            gjahr belnr buzei waers wrbtr

          FROM bsak

          INTO TABLE itab_bsak

          FOR ALL ENTRIES IN itab_bkpf

          WHERE bukrs = itab_bkpf-bukrs

            AND gjahr = itab_bkpf-gjahr

            AND belnr = itab_bkpf-belnr.

        LOOP AT itab_bsak INTO wa_bsak.

          READ TABLE itab_zycat039 INTO wa_zycat039

            WITH KEY fatura = wa_bsak-augbl.

          IF sy-subrc NE 0.

            MOVE-CORRESPONDING wa_bsak TO wa_total.

            COLLECT wa_total INTO itab_total.

          ENDIF.

        ENDLOOP.

        LOOP AT itab_total INTO wa_total.

          SELECT sum( valor )

            FROM /pws/zycat039

            INTO v_valor

            WHERE ( nrseq    NE /pws/zycat031-nrseq

               or operacao NE /pws/zycat031-operacao )

              AND fatura = wa_total-augbl.

            wa_total-wrbtr = wa_total-wrbtr - v_valor.

          CHECK wa_total-wrbtr > 0.

          MOVE: wa_total-augbl TO wa_zycat039o-fatura,

                wa_total-augdt TO wa_zycat039o-dt_pg_rec,

                wa_total-waers TO wa_zycat039o-moeda,

                wa_total-wrbtr TO wa_zycat039o-valor.

          APPEND wa_zycat039o TO itab_zycat039_o.

          CLEAR wa_zycat039o.

        ENDLOOP.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA012TOP

 

...

  nrseq_arq      TYPE /pws/zycat038-nrseq_arq,

  processo(40)   TYPE c,

  usuario        TYPE /pws/zycat038-usuario,

  data           TYPE /pws/zycat038-data,

  hora           TYPE /pws/zycat038-hora,

  prot_transm    TYPE /pws/zycat038-prot_transm,

  status         TYPE /pws/zycat038-status,

  status_t(25)   TYPE c,

  cod_erro       TYPE /pws/zycat038-cod_erro,

  cod_erro_t     TYPE /pws/zycat040-mensagem,

* >> Início da exclusão:

END OF ty_zycat038_alv.

* << Fim da exclusão

* >> Início da inclusão:

END OF ty_zycat038_alv,

BEGIN OF ty_ekbe,

  ebeln TYPE ekbe-ebeln,

  gjahr TYPE ekbe-gjahr,

  belnr TYPE ekbe-belnr,

  bewtp TYPE ekbe-bewtp,

  shkzg TYPE ekbe-shkzg,

END OF ty_ekbe,

BEGIN OF ty_bkpf,

  bukrs TYPE bkpf-bukrs,

  belnr TYPE bkpf-belnr,

  gjahr TYPE bkpf-gjahr,

  awtyp TYPE bkpf-awtyp,

  awkey TYPE bkpf-awkey,

END OF ty_bkpf,

BEGIN OF ty_bsak,

  bukrs TYPE bsak-bukrs,

  lifnr TYPE bsak-lifnr,

  umsks TYPE bsak-umsks,

  umskz TYPE bsak-umskz,

  augdt TYPE bsak-augdt,

  augbl TYPE bsak-augbl,

  gjahr TYPE bsak-gjahr,

  belnr TYPE bsak-belnr,

  buzei TYPE bsak-buzei,

  waers TYPE bsak-waers,

  wrbtr TYPE bsak-wrbtr,

END OF ty_bsak,

BEGIN OF ty_total,

  bukrs TYPE bsak-bukrs,

  augdt TYPE bsak-augdt,

  augbl TYPE bsak-augbl,

  gjahr TYPE bsak-gjahr,

  belnr TYPE bsak-belnr,

  waers TYPE bsak-waers,

  wrbtr TYPE bsak-wrbtr,

END OF ty_total,

BEGIN OF ty_awkey,

  awkey TYPE bkpf-awkey,

END OF ty_awkey.

* << Fim da inclusão

TABLES: /pws/zycat030,

        /pws/zycat031,

        /pws/zycat037,

        /pws/zycat038,

        /pws/zycat039,

        bkpf.

DATA: itab_zycat039     TYPE TABLE OF /pws/zycat039,

      itab_zycat039_ant TYPE TABLE OF /pws/zycat039,

      itab_zycat039_c   TYPE TABLE OF ty_zycat039t WITH HEADER LINE,

      itab_zycat039_r   TYPE TABLE OF ty_zycat039t WITH HEADER LINE,

...