CE PLUS - Nota 003501

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Mercadoria

Data/Hora da Publicação: 19/04/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 16:06:58

Descrição da Nota: CALCULO DA DATA DE VENCIMENTO DE ACORDO COM A OBB8

Sintoma

Não está sendo utilizada a condição correta parametrizada na OBB8 para o calculo da data de

vencimento da fatura.

 

 

Solução

Atualização do programa de fatura de mercadoria para que o sistema selecione a condição de pagamento

correta.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAR E AJUSTAR O CAMPO DTVENCTO (FATURA)

Informações Complementares

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

Nota Número 03501 Data: 19/04/2007 Hora: 16:17:24

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

 

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

Nota Número              : 03501

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00162

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

Referência às notas relacionadas:

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

 

01509  - 00001 - 6.0    - 00023  - TRATAR E AJUSTAR O CAMPO DTVENCTO (FATURA)

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

CALCULO DA DATA DE VENCIMENTO DE ACORDO COM A OBB8

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

Palavras Chave:

DATA - VENCIMENTO - FATURA - OBB8

/PWS/SAPMZYCI003

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

Objetos da nota:

REPS /PWS/MZYCI003F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

              company_not_found = 3

              OTHERS            = 4.

    IF sy-subrc EQ 1.

      MESSAGE s061 WITH text-027 /pws/zycie006-j_1bbranch.

    ENDIF.

    MOVE /pws/zycie006-cnpj TO v_cgc.

    WRITE v_cgc TO v_cnpj.

  ENDIF.

ENDFORM.

FORM montar_dtvencto.

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

  DATA: itab_t052 TYPE t052 OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

  SELECT SINGLE dtemiss dtlanc FROM /pws/zycit093

    INTO (/pws/zycit093-dtemiss, /pws/zycit093-dtlanc)

    WHERE nrseqce EQ /pws/zycie006-nrseqce.

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

  SELECT SINGLE ztag1 zdart zstg1 zsmn1 FROM t052

    INTO (t052-ztag1, t052-zdart, t052-zstg1, t052-zsmn1)

* << Fim da exclusão

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

  REFRESH itab_t052.

  SELECT * FROM t052

    INTO TABLE itab_t052

* << Fim da inclusão

    WHERE zterm EQ /pws/zycie006-zterm.

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

  SORT itab_t052 BY ztagg.

  LOOP AT itab_t052.

    t052 = itab_t052.

* << Fim da inclusão

  IF /pws/zycie006-dtbase IS INITIAL.

    IF t052-zdart EQ 'B'    .

      /pws/zycie006-dtbase    = /pws/zycit093-dtemiss .

    ELSEIF t052-zdart EQ 'D'.

      /pws/zycie006-dtbase    = /pws/zycit093-dtlanc .

    ENDIF.

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

    ENDIF .

    IF t052-ztagg = '00' OR

       t052-ztagg >= /pws/zycie006-dtbase+6(2).

      EXIT.

* << Fim da inclusão

  ENDIF.

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

  ENDLOOP.

* << Fim da inclusão

  IF /pws/zycie006-tpfatura = '01' OR

     /pws/zycie006-tpfatura = '11' OR

     /pws/zycie006-tpfatura = '02' OR

     /pws/zycie006-tpfatura = '03' OR

     /pws/zycie006-tpfatura = '05' OR

     /pws/zycie006-tpfatura = '04' .

...

 

...

      OR ( /pws/zycie006-tpfatura EQ '11' AND v_prof NE 'X' )

      OR ( /pws/zycie006-tpfatura EQ '02' AND v_prof NE 'X' )

      OR ( /pws/zycie006-tpfatura EQ '03' AND v_prof NE 'X' )

      OR ( /pws/zycie006-tpfatura EQ '04' AND v_prof NE 'X' )

      OR ( /pws/zycie006-tpfatura = '05'  AND

      NOT /pws/zycie006-zterm IS INITIAL

      AND /pws/zycie006-dtvencto IS INITIAL ) ).

        IF NOT t052-zsmn1 IS INITIAL AND

           NOT t052-zstg1 IS INITIAL.

          IF NOT /pws/zycie006-dtbase IS INITIAL.

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

            /pws/zycie006-dtvencto = /pws/zycie006-dtbase +

                    ( t052-zsmn1 * 30 ).

* << Fim da exclusão

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

            CALL FUNCTION 'MONTH_PLUS_DETERMINE'

                 EXPORTING

                      months  = t052-zsmn1

                      olddate = /pws/zycie006-dtbase

                 IMPORTING

                      newdate = /pws/zycie006-dtvencto.

* << Fim da inclusão

            /pws/zycie006-dtvencto+6(2) = t052-zstg1.

            IF NOT /pws/zycie006-dtvencto IS INITIAL.

              CLEAR v_dtvencto.

              CALL FUNCTION '/PWS/LAST_DAY_OF_MONTHS'

                   EXPORTING

                        day_in            = /pws/zycie006-dtvencto

                   IMPORTING

                        last_day_of_month = v_dtvencto.

              IF /pws/zycie006-dtvencto > v_dtvencto.

                /pws/zycie006-dtvencto = v_dtvencto.

...

 

...

           IMPORTING

                last_day_of_month = v_dtvencto.

          IF /pws/zycie006-dtvencto > v_dtvencto.

            /pws/zycie006-dtvencto = v_dtvencto.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSE.

      IF NOT t052-zsmn1 IS INITIAL AND

         NOT t052-zstg1 IS INITIAL.

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

        IF NOT /pws/zycie006-dtincl IS INITIAL.

          /pws/zycie006-dtvencto = /pws/zycie006-dtincl +

                  ( t052-zsmn1 * 30 ).

* << Fim da exclusão

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

        CALL FUNCTION 'MONTH_PLUS_DETERMINE'

             EXPORTING

                  months  = t052-zsmn1

                  olddate = /pws/zycie006-dtincl

             IMPORTING

                  newdate = /pws/zycie006-dtvencto.

* << Fim da inclusão

          /pws/zycie006-dtvencto+6(2) = t052-zstg1.

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

        IF NOT /pws/zycie006-dtvencto IS INITIAL.

          CLEAR v_dtvencto.

          CALL FUNCTION '/PWS/LAST_DAY_OF_MONTHS'

               EXPORTING

                    day_in            = /pws/zycie006-dtvencto

               IMPORTING

                    last_day_of_month = v_dtvencto.

          IF /pws/zycie006-dtvencto > v_dtvencto.

            /pws/zycie006-dtvencto = v_dtvencto.

          ENDIF.

* << Fim da inclusão

        ENDIF.

      ELSE.

        IF t052-zdart EQ 'B'

          OR ( t052-zdart IS INITIAL

          AND NOT /pws/zycie006-zterm IS INITIAL ).

          IF NOT /pws/zycie006-dtincl IS INITIAL.

            /pws/zycie006-dtvencto = /pws/zycie006-dtincl +

t052-ztag1.

          ENDIF.

        ELSEIF t052-zdart EQ 'D'.

...