CE PLUS - Nota 003340

Módulo: CÂMBIO IMPORTAÇÃO

Funcionalidade: Financiamento

Data/Hora da Publicação: 28/03/2007 00:00:00

Data/Hora Última Alteração: 04/03/2010 13:35:31

Descrição da Nota: FINANCIAMENTO - EXCLUSÃO PARCELAS DE COMISSÃO

Sintoma

 

Ao escluir uma parcela de comissão livre, pró-rata, o registro não some da tela, o documento

contábil é estornado e é gerado um novo documento contábil. Após entrar novamente no financiamento,

a comissão não aparece, mas o contábil foi recontabilizado incorretamente.

Ao modificar uma comissão de pró-rata período, esta recontabilizando o principal, o que esta

incorreto.

 

Solução

 

Fazer com que o nro. de parcelas de comissão do cabeçalho siga as parcelas da pasta comissão.

Ajustar tabelas internas, contabilizações e armazenamento dos dados na /pws/zycbt113.

Versões Tratadas

6.0

Informações Complementares

 

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

Nota Número 03340 Data: 28/03/2007 Hora: 16:06:26

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

 

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

Nota Número              : 03340

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00156

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

FINANCIAMENTO - EXCLUSÃO PARCELAS DE COMISSÃO

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

Palavras Chave:

FINANCIAMENTO EXCLUSÃO PARCELAS DE COMISSÃO LIVRE VALOR

PRÓ-RATA PERÍODO

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

Objetos da nota:

REPS /PWS/MZYCM101F01

REPS /PWS/MZYCM101I01

 

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

Modificações efetuadas em REPS /PWS/MZYCM101F01

 

...

      CALL FUNCTION '/PWS/ZYCM_CRIA_ASSOCIACAO'

           EXPORTING

                v_nrseq         = /pws/zycbe112-nrseq

                v_modo          = v_modo_bi

           TABLES

                t_faturas       = itab_zycmt013

           EXCEPTIONS

                campo_em_branco = 1

                OTHERS          = 2.

    ELSE.

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

      IF itab_zycbt113c[] EQ itab_zycbt113_ant[] AND

         itab_zycmt020[]  EQ itab_zycmt020_cp[]  AND

         sy-tcode         EQ '/PWS/ZYCB101_A'    AND

         v_msg_           IS INITIAL.

* << Fim da exclusão

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

      IF ( itab_zycbt113c[]         EQ itab_zycbt113_ant[] OR

           ( itab_zycbt113c[]       NE itab_zycbt113_ant[] AND

             /pws/zycbe112-fpagto_c NE 'L'                 AND

             wa_zycbt112-fpagto_c   NE 'L' ) )             AND

           itab_zycmt020[]          EQ itab_zycmt020_cp[]  AND

         sy-tcode                   EQ '/PWS/ZYCB101_A'    AND

         v_msg_                     IS INITIAL.

* << Fim da inclusão

        MESSAGE i017.

      ENDIF.

    ENDIF.

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

    REFRESH itab_zycbt113_ant.

    LOOP AT itab_zycbt113c.

      CLEAR itab_zycbt113_ant.

      MOVE-CORRESPONDING itab_zycbt113c TO itab_zycbt113_ant.

      APPEND itab_zycbt113_ant.

    ENDLOOP.

* << Fim da inclusão

    IF /pws/zycbe112-nrseq+0(1) NE '5' AND sy-tcode = '/PWS/ZYCB101_C'

       AND itab_zycmt023[] IS INITIAL.

      LOOP AT itab_zycbt113p WHERE belnr NE space.

        EXIT.

      ENDLOOP.

      IF sy-subrc = 0.

        PERFORM associar_faturas.

      ENDIF.

    ENDIF.

    MESSAGE i061 WITH text-239 /pws/zycbe112-nrseq text-240.

...

 

...

                 AND nrparc EQ itab_zycbt113c_exc-nrparc.

        IF sy-subrc EQ 0.

          PERFORM monta_log_cfm USING    wa_zycbt113_log

                                        '/PWS/ZYCBT113'

                                CHANGING wa_log.

          PERFORM grava_log USING '/PWS/ZYCBT113'

                                  wa_log

                                  'E'.

        ENDIF.

      ENDIF.

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

      DELETE FROM /pws/zycbt113 WHERE nrseq  = itab_zycbt113c_exc-nrseq

                             AND tpparc = 'C'

                             AND nrparc = itab_zycbt113c_exc-nrparc.

* << Fim da exclusão

    ENDLOOP.

    v_nparc = 0.

    LOOP AT itab_zycbt113c.

      v_nparc = v_nparc + 1.

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

      UPDATE /pws/zycbt113 SET nrparc = v_nparc

                    WHERE nrseq  = itab_zycbt113c-nrseq

                      AND tpparc = 'C'

                      AND nrparc = itab_zycbt113c-nrparc.

* << Fim da exclusão

      itab_zycbt113c-nrparc = v_nparc.

      IF wa_zycbt007-cfm = 'X'.

        SELECT SINGLE *

               FROM /pws/zycbt113

             INTO wa_zycbt113_log

               WHERE nrseq  EQ itab_zycbt113c-nrseq

                 AND tpparc EQ 'C'

                 AND nrparc EQ itab_zycbt113c-nrparc.

        IF sy-subrc EQ 0.

          PERFORM monta_log_cfm USING    wa_zycbt113_log

                                        '/PWS/ZYCBT113'

                                CHANGING wa_log.

          PERFORM grava_log USING '/PWS/ZYCBT113'

                                  wa_log

                                  'A'.

        ENDIF.

      ENDIF.

      MODIFY itab_zycbt113c.

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

    ENDLOOP.

    IF NOT itab_zycbt113c_exc[] IS INITIAL.

      DELETE FROM /pws/zycbt113 WHERE nrseq  = /pws/zycbe112-nrseq

                                  AND tpparc = 'C'.

      LOOP AT itab_zycbt113c.

        INSERT INTO /pws/zycbt113 VALUES itab_zycbt113c.

* << Fim da inclusão

    ENDLOOP.

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

    ENDIF.

* << Fim da inclusão

    COMMIT WORK.

    v_nparc = 0.

    LOOP AT itab_zycbt113_ant.

      v_nparc = v_nparc + 1.

      itab_zycbt113_ant-nrparc = v_nparc.

      MODIFY itab_zycbt113_ant.

    ENDLOOP.

    CLEAR : itab_zycbt113c, itab_zycbt113_aux.

    REFRESH : itab_zycbt113_aux.

    MOVE : itab_zycbt113c[] TO itab_zycbt113_aux[].

    READ TABLE itab_zycbt113_ant INDEX 1.

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

    IF ( itab_zycbt113_aux[] NE itab_zycbt113_ant[] )     OR

       ( /pws/zycbe112-fpagto_c <> wa_zycbt112-fpagto_c ) OR

      ( /pws/zycbe112-fpagto_c EQ 'P'

      AND itab_zycbt113_ant-belnr_c NE ' ' ).

* << Fim da exclusão

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

    IF ( itab_zycbt113_aux[]         NE itab_zycbt113_ant[]  OR

         /pws/zycbe112-fpagto_c      NE wa_zycbt112-fpagto_c OR

         ( /pws/zycbe112-fpagto_c    EQ 'P'                  AND

           itab_zycbt113_ant-belnr_c NE ' ' ) )              AND

        itab_zycbt113c_exc[] IS INITIAL.

* << Fim da inclusão

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

      MOVE: /pws/zycbe112-fpagto_c TO wa_zycbt112-fpagto_c .

* << Fim da exclusão

      MOVE: itab_zycbt113_aux[] TO itab_zycbt113_ant[].

      DESCRIBE TABLE itab_zycbt113_ant LINES v_nrlines.

      IF NOT v_nrlines IS INITIAL.

        PERFORM reverse_document_zycbt113.

        IF /pws/zycbe112-fpagto_c <> 'P' AND

           /pws/zycbe112-fpagto_c NE 'D'.

          PERFORM fill_date_f02.

        ENDIF.

      ELSE.

        IF /pws/zycbe112-fpagto_c <> 'P' AND

...

 

...

        ENDIF.

      ENDLOOP.

    ELSE.

      LOOP AT itab_zycbt034.

        MESSAGE i254 WITH itab_zycbt034-descricao

                          v_codeven.

      ENDLOOP.

    ENDIF.

  ENDIF.

  PERFORM clear_date_batch.

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

  REFRESH itab_zycbt113_ant.

  LOOP AT itab_zycbt113c.

    CLEAR itab_zycbt113_ant.

    MOVE-CORRESPONDING itab_zycbt113c TO itab_zycbt113_ant.

    APPEND itab_zycbt113_ant.

  ENDLOOP.

* << Fim da exclusão

ENDFORM.

FORM get_parameters_113.

  CONCATENATE text-019 text-021 INTO v_codeven.

  CLEAR wa_zycbt007.

  SELECT SINGLE * FROM /pws/zycbt007

                  INTO wa_zycbt007

                  WHERE bukrs EQ /pws/zycbe112-bukrs.

  REFRESH itab_zycbt013.

  SELECT * FROM /pws/zycbt013

           INTO TABLE itab_zycbt013

...

 

...

                    itab_zycbt113_ant-nrparc INTO v_cpochv.

        READ TABLE itab_zycbt032 WITH KEY tcode  = 'FB08'

                                          tabela = text-051

                                          cpochv = v_cpochv

                                          tpmsg  = 'S'.

        IF sy-subrc EQ 0.

          MESSAGE i030 WITH itab_zycbt113_ant-belnr_c.

          CLEAR itab_zycbt113c-belnr_c.

          MODIFY itab_zycbt113c TRANSPORTING belnr_c

                     WHERE nrparc  = itab_zycbt113_ant-nrparc.

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

          UPDATE /pws/zycbt113 SET belnr_c = itab_zycbt113c-belnr_c

                        WHERE nrseq  = itab_zycbt113_ant-nrseq

                          AND tpparc = 'C'

                          AND nrparc = itab_zycbt113_ant-nrparc.

* << Fim da inclusão

          v_f02 = 'X'.

        ELSE.

          LOOP AT itab_zycbt032 WHERE cpochv = v_cpochv.

            MESSAGE i015 WITH itab_zycbt032-msg.

          ENDLOOP.

          PERFORM popup_message USING text-009 text-006.

          IF v_answer = 'J'.

            CLEAR itab_zycbt113c-belnr_c.

            MODIFY itab_zycbt113c TRANSPORTING belnr_c

                       WHERE nrparc = itab_zycbt113_ant-nrparc.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCM101I01

 

...

      CASE sy-dynnr .

        WHEN '0104'.

          CLEAR v_boleto_p.

          READ TABLE itab_zycbt113c WITH KEY mark = 'X'.

          IF sy-subrc EQ 0.

            LOOP AT itab_zycbt113c WHERE mark EQ 'X'.

              PERFORM checa_boleto.

              MOVE itab_zycbt113c TO itab_zycbt113c_exc.

              APPEND itab_zycbt113c_exc.

            ENDLOOP.

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

            IF v_dele IS INITIAL AND v_boleto_p IS INITIAL.

              DELETE itab_zycbt113c WHERE mark EQ 'X'.

            ENDIF.

* << Fim da inclusão

            DESCRIBE TABLE itab_zycbt113c LINES n.

            IF n = 0.

              CLEAR: /pws/zycbe112-percomis, /pws/zycbe112-vlcomis,

                     /pws/zycbe112-fpagto_c, /pws/zycbe112-tpcomis,

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

                     /pws/zycbe112-tptaxa.

            ENDIF.

            IF v_dele IS INITIAL AND v_boleto_p IS INITIAL.

              DELETE itab_zycbt113c WHERE mark EQ 'X'.

* << Fim da exclusão

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

                     /pws/zycbe112-tptaxa,

                     /pws/zycbe112-nrparc.

            ELSE.

              /pws/zycbe112-nrparc = n.

* << Fim da inclusão

            ENDIF.

          ENDIF.

      ENDCASE.

    WHEN 'P--'.

      tc_com-top_line = tc_com-top_line - tc_com-lines.

    WHEN 'P-'.

      tc_com-top_line = tc_com-top_line - 8.

    WHEN 'P+'.

      tc_com-top_line = tc_com-top_line + 8.

    WHEN 'P++'.

...