CE PLUS - Nota 007002

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

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

Data/Hora Última Alteração: 11/03/2010 10:04:23

Descrição da Nota: VINCULAÇÃO - DOCTOS COMPENSADOS - CONSIDERAR VALORES MANTIDOS EXTERIOR

Sintoma

 

Ao efetuar uma vinculação onde uma ou algumas faturas estão com valores mantidos no exterior, não

esta considerando o documento de valores mantidos, exibindo a mensagem de Documento Compensado.

 

Solução

 

Verificar se para a fatura existem registros na tabela /pws/zycbt226(valores mantidos) e, se sim,

consistir os documentos desta tabela.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 07002 Data: 22/07/2008 Hora: 11:12:26

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

 

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

Nota Número              : 07002

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00057

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

VINCULAÇÃO - DOCTOS COMPENSADOS - CONSIDERAR VALORES MANTIDOS EXTERIOR

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

Palavras Chave:

VINCULAÇÃO - DOCTOS COMPENSADOS - CONSIDERAR VALORES MANTIDOS EXTERIOR

 

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

Objetos da nota:

REPS /PWS/MZYCB009F04

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F04

 

...

  ENDIF.

  CLEAR: dias1, v_dt_cr, v_txt_f.

  IF v_dt_from < v_dt_to.

    v_dt_cr = v_dt_from + 1.

  ELSE.

    v_dt_cr = v_dt_from.

  ENDIF.

  CLEAR: itab_period. REFRESH: itab_period.

  CALL FUNCTION 'DAY_ATTRIBUTES_GET'

       EXPORTING

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

          factory_calendar                 = wa_zycbt007-hcalid

          holiday_calendar                 = wa_zycbt007-hcalidbr

          date_from                        = v_dt_cr

          date_to                          = v_dt_to

          language                         = 'P'

* << Fim da exclusão

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

            factory_calendar           = wa_zycbt007-hcalid

            holiday_calendar           = wa_zycbt007-hcalidbr

            date_from                  = v_dt_cr

            date_to                    = v_dt_to

            language                   = 'P'

* << Fim da inclusão

       TABLES

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

          day_attributes                   = itab_period

* << Fim da exclusão

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

            day_attributes             = itab_period

* << Fim da inclusão

       EXCEPTIONS

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

          factory_calendar_not_found       = 1

          holiday_calendar_not_found       = 2

          date_has_invalid_format          = 3

          date_inconsistency               = 4

          OTHERS                           = 5.

* << Fim da exclusão

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

            factory_calendar_not_found = 1

            holiday_calendar_not_found = 2

            date_has_invalid_format    = 3

            date_inconsistency         = 4

            OTHERS                     = 5.

* << Fim da inclusão

  LOOP AT itab_period.

    IF itab_period-weekday <> 6.

      IF itab_period-weekday <> 7.

        IF ( itab_period-txt_short IS INITIAL ) AND

           ( itab_period-txt_long  IS INITIAL ).

          dias1 = dias1 + 1.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

...

 

...

  ENDIF.

  IF ( dias1 > 2 ) AND ( NOT /pws/zycbe001-dtcred IS INITIAL ) AND

     ( /pws/zycbe001-tpcontr+0(1) EQ 'C' ).

    MESSAGE s015 WITH text-185 text-186.

    v_exit = 'S'.

    EXIT.

  ELSE.

    CLEAR: itab_period, v_confirm. REFRESH: itab_period.

    CALL FUNCTION 'DAY_ATTRIBUTES_GET'

         EXPORTING

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

             factory_calendar                 = wa_zycbt007-hcalid

             holiday_calendar                 = wa_zycbt007-hcalidbr

             date_from                        = v_dt_to

             date_to                          = v_dt_to

             language                         = 'P'

* << Fim da exclusão

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

              factory_calendar           = wa_zycbt007-hcalid

              holiday_calendar           = wa_zycbt007-hcalidbr

              date_from                  = v_dt_to

              date_to                    = v_dt_to

              language                   = 'P'

* << Fim da inclusão

         TABLES

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

             day_attributes                   = itab_period

* << Fim da exclusão

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

              day_attributes             = itab_period

* << Fim da inclusão

         EXCEPTIONS

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

             factory_calendar_not_found       = 1

             holiday_calendar_not_found       = 2

             date_has_invalid_format          = 3

             date_inconsistency               = 4

             OTHERS                           = 5.

* << Fim da exclusão

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

              factory_calendar_not_found = 1

              holiday_calendar_not_found = 2

              date_has_invalid_format    = 3

              date_inconsistency         = 4

              OTHERS                     = 5.

* << Fim da inclusão

    READ TABLE itab_period WITH KEY weekday = 6.

    IF ( sy-subrc EQ 0 ) AND ( sy-dynnr EQ '0100' ).

      CALL FUNCTION 'POPUP_TO_CONFIRM'

           EXPORTING

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

              titlebar                    = text-187

              text_question               = text-188

              text_button_1               = text-189

              icon_button_1               = 'ICON_ARROW_LEFT'

              text_button_2               = text-191

              icon_button_2               = 'ICON_ARROW_RIGHT'

              default_button              = '1'

              display_cancel_button       = 'X'

* << Fim da exclusão

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

                titlebar              = text-187

                text_question         = text-188

                text_button_1         = text-189

                icon_button_1         = 'ICON_ARROW_LEFT'

                text_button_2         = text-191

                icon_button_2         = 'ICON_ARROW_RIGHT'

                default_button        = '1'

                display_cancel_button = 'X'

* << Fim da inclusão

           IMPORTING

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

              answer                      = v_confirm

* << Fim da exclusão

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

                answer                = v_confirm

* << Fim da inclusão

           EXCEPTIONS

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

              text_not_found              = 1

              OTHERS                      = 2.

* << Fim da exclusão

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

                text_not_found        = 1

                OTHERS                = 2.

* << Fim da inclusão

      IF v_confirm EQ '1'.

        PERFORM antecipar_data_vincul.

      ELSEIF v_confirm EQ '2'.

        PERFORM postecipar_data_vincul.

      ELSEIF v_confirm EQ 'A'.

        MESSAGE s015 WITH text-193 text-194.

        v_exit = 'S'.

        EXIT.

      ENDIF.

    ELSE.

...

 

...

  DATA: itab_period    LIKE casdayattr OCCURS 0 WITH HEADER LINE,

        v_sair_fadc(1) TYPE c VALUE 'N'.

  DO.

    IF v_sair_fadc EQ 'S'.

      EXIT.

    ENDIF.

    v_dt_to   = v_dt_to - 1.

    CLEAR: itab_period. REFRESH: itab_period.

    CALL FUNCTION 'DAY_ATTRIBUTES_GET'

         EXPORTING

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

            factory_calendar                 = wa_zycbt007-hcalid

            holiday_calendar                 = wa_zycbt007-hcalidbr

            date_from                        = v_dt_to

            date_to                          = v_dt_to

            language                         = 'P'

* << Fim da exclusão

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

              factory_calendar           = wa_zycbt007-hcalid

              holiday_calendar           = wa_zycbt007-hcalidbr

              date_from                  = v_dt_to

              date_to                    = v_dt_to

              language                   = 'P'

* << Fim da inclusão

         TABLES

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

            day_attributes                   = itab_period

* << Fim da exclusão

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

              day_attributes             = itab_period

* << Fim da inclusão

         EXCEPTIONS

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

            factory_calendar_not_found       = 1

            holiday_calendar_not_found       = 2

            date_has_invalid_format          = 3

            date_inconsistency               = 4

            OTHERS                           = 5.

* << Fim da exclusão

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

              factory_calendar_not_found = 1

              holiday_calendar_not_found = 2

              date_has_invalid_format    = 3

              date_inconsistency         = 4

              OTHERS                     = 5.

* << Fim da inclusão

    READ TABLE itab_period WITH KEY weekday = 6.

    IF sy-subrc NE 0.

      READ TABLE itab_period WITH KEY weekday = 7.

      IF sy-subrc NE 0.

        v_sair_fadc = 'S'.

        LOOP AT itab_period.

          IF ( NOT itab_period-txt_short IS INITIAL ) OR

             ( NOT itab_period-txt_long  IS INITIAL ).

            v_sair_fadc = 'N'.

          ENDIF.

...

 

...

  DATA: itab_period    LIKE casdayattr OCCURS 0 WITH HEADER LINE,

        v_sair_fadc(1) TYPE c VALUE 'N'.

  DO.

    IF v_sair_fadc EQ 'S'.

      EXIT.

    ENDIF.

    v_dt_to   = v_dt_to + 1.

    CLEAR: itab_period. REFRESH: itab_period.

    CALL FUNCTION 'DAY_ATTRIBUTES_GET'

         EXPORTING

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

            factory_calendar                 = wa_zycbt007-hcalid

            holiday_calendar                 = wa_zycbt007-hcalidbr

            date_from                        = v_dt_to

            date_to                          = v_dt_to

            language                         = 'P'

* << Fim da exclusão

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

              factory_calendar           = wa_zycbt007-hcalid

              holiday_calendar           = wa_zycbt007-hcalidbr

              date_from                  = v_dt_to

              date_to                    = v_dt_to

              language                   = 'P'

* << Fim da inclusão

         TABLES

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

            day_attributes                   = itab_period

* << Fim da exclusão

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

              day_attributes             = itab_period

* << Fim da inclusão

         EXCEPTIONS

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

            factory_calendar_not_found       = 1

            holiday_calendar_not_found       = 2

            date_has_invalid_format          = 3

            date_inconsistency               = 4

            OTHERS                           = 5.

* << Fim da exclusão

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

              factory_calendar_not_found = 1

              holiday_calendar_not_found = 2

              date_has_invalid_format    = 3

              date_inconsistency         = 4

              OTHERS                     = 5.

* << Fim da inclusão

    READ TABLE itab_period WITH KEY weekday = 6.

    IF sy-subrc NE 0.

      READ TABLE itab_period WITH KEY weekday = 7.

      IF sy-subrc NE 0.

        v_sair_fadc = 'S'.

        LOOP AT itab_period.

          IF ( NOT itab_period-txt_short IS INITIAL ) OR

             ( NOT itab_period-txt_long  IS INITIAL ).

            v_sair_fadc = 'N'.

          ENDIF.

...

 

...

    dias1 = v_dt_to - v_dt_from.

  ENDIF.

  IF ( dias1 > 2 ) AND ( NOT /pws/zycbe001-dtcontr IS INITIAL ).

    MESSAGE s015 WITH text-185 text-186.

    v_exit = 'S'.

    EXIT.

  ELSE.

    CLEAR: itab_period, v_confirm. REFRESH: itab_period.

    CALL FUNCTION 'DAY_ATTRIBUTES_GET'

         EXPORTING

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

             factory_calendar                 = wa_zycbt007-hcalid

             holiday_calendar                 = wa_zycbt007-hcalidbr

             date_from                        = v_dt_to

             date_to                          = v_dt_to

             language                         = 'P'

* << Fim da exclusão

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

              factory_calendar           = wa_zycbt007-hcalid

              holiday_calendar           = wa_zycbt007-hcalidbr

              date_from                  = v_dt_to

              date_to                    = v_dt_to

              language                   = 'P'

* << Fim da inclusão

         TABLES

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

             day_attributes                   = itab_period

* << Fim da exclusão

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

              day_attributes             = itab_period

* << Fim da inclusão

         EXCEPTIONS

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

             factory_calendar_not_found       = 1

             holiday_calendar_not_found       = 2

             date_has_invalid_format          = 3

             date_inconsistency               = 4

             OTHERS                           = 5.

* << Fim da exclusão

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

              factory_calendar_not_found = 1

              holiday_calendar_not_found = 2

              date_has_invalid_format    = 3

              date_inconsistency         = 4

              OTHERS                     = 5.

* << Fim da inclusão

    READ TABLE itab_period WITH KEY weekday = 6.

    IF ( sy-subrc EQ 0 ) AND ( sy-dynnr EQ '0100' ).

      CALL FUNCTION 'POPUP_TO_CONFIRM'

           EXPORTING

                titlebar              = text-187

                text_question         = text-188

                text_button_1         = text-189

                icon_button_1         = 'ICON_ARROW_LEFT'

                text_button_2         = text-191

                icon_button_2         = 'ICON_ARROW_RIGHT'

...

 

...

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

ENDFORM.

FORM determina_ano USING    p_budat

                            p_bukrs

                   CHANGING p_ano.

  CLEAR v_ano.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

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

            v_bukrs = p_bukrs

            v_date  = p_budat

* << Fim da exclusão

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

            v_bukrs                = p_bukrs

            v_date                 = p_budat

* << Fim da inclusão

       IMPORTING

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

            v_year  = p_ano

* << Fim da exclusão

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

            v_year                 = p_ano

* << Fim da inclusão

       EXCEPTIONS

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

            VARIANTE_DE_EXERCICIO        = 1

            DATA_NAO_ENCONTRADA          = 2

            EMPRESA_NAO_ENCONTRADA       = 3

            PERIOD_IN_NOT_VALID          = 4

            PERIOD_NOT_ASSIGNED          = 5

            VERSION_UNDEFINED            = 6

            OTHERS                       = 7.

* << Fim da exclusão

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

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

            empresa_nao_encontrada = 3

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            OTHERS                 = 7.

* << Fim da inclusão

  IF sy-subrc NE 0.

    MESSAGE i015 WITH TEXT-396.

  ENDIF.

ENDFORM.

FORM data_estorno2  USING    value(p_vmonat)

                             value(p_bukrs)

                             value(p_gjahr)

                             value(p_dtvinc)

                    CHANGING value(p_budat).

  DATA: v_cont(2)   TYPE n,

...

 

...

        'H'.

  ENDLOOP.

ENDFORM.

FORM documento_fatura

  USING

    value(p_fatura) TYPE t_fatura

    p_itab_zycbt017 TYPE t_itab_zycbt017

    p_itab_zycbt030 TYPE t_itab_zycbt030.

  FIELD-SYMBOLS:

    <fs_belnr>    TYPE bseg-belnr,

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

    <fs_budat>    TYPE bkpf-budat,

* << Fim da inclusão

    <fs_zycbt017> TYPE t_zycbt017,

    <fs_zycbt030> TYPE t_zycbt030.

  CHECK NOT p_fatura IS INITIAL.

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

  IF NOT itab_zycbt005[] IS INITIAL.

    SELECT * FROM /pws/zycbt226

      INTO TABLE itab_zycbt226

      FOR ALL ENTRIES IN itab_zycbt005

      WHERE nrinvoic = itab_zycbt005-nrinvoic

      AND   nrparcf  = itab_zycbt005-nrparcf

      AND   gsberf   = itab_zycbt005-gsberf.

  ENDIF.

* << Fim da inclusão

  READ TABLE p_itab_zycbt017

    WITH KEY

      nrinvoic = p_fatura-nrinvoic

      nrparcf  = p_fatura-nrparcf

      gsberf   = p_fatura-gsberf

    ASSIGNING <fs_zycbt017>.

  READ TABLE p_itab_zycbt030

    WITH KEY

      nrinvoic = p_fatura-nrinvoic

      nrparcf  = p_fatura-nrparcf

      gsberf   = p_fatura-gsberf

    ASSIGNING <fs_zycbt030>.

  IF <fs_zycbt017> IS ASSIGNED AND

     <fs_zycbt030> IS ASSIGNED.

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

    LOOP AT itab_zycbt226 ASSIGNING <fs_zycbt226>

                          WHERE nrinvoic = p_fatura-nrinvoic

                            AND nrparcf  = p_fatura-nrparcf

                            AND gsberf   = p_fatura-gsberf.

    ENDLOOP.

    IF <fs_zycbt226> IS ASSIGNED.

      IF NOT <fs_zycbt226>-belnr_op2 IS INITIAL.

        ASSIGN <fs_zycbt226>-belnr_op2 TO <fs_belnr>.

        ASSIGN <fs_zycbt226>-dtlancto2 TO <fs_budat>.

      ELSEIF NOT <fs_zycbt226>-belnr_op IS INITIAL.

        ASSIGN <fs_zycbt226>-belnr_op TO <fs_belnr>.

        ASSIGN <fs_zycbt226>-dtlancto TO <fs_budat>.

      ENDIF.

    ELSE.

* << Fim da inclusão

    IF <fs_zycbt030>-belnr6 IS INITIAL.

      ASSIGN <fs_zycbt030>-belnr TO <fs_belnr>.

    ELSE.

      ASSIGN <fs_zycbt030>-belnr6 TO <fs_belnr>.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

    PERFORM adiciona_documentos

      USING

        <fs_zycbt017>-bukrs

        <fs_belnr>

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

        <fs_zycbt030>-budat

* << Fim da exclusão

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

        <fs_budat>

* << Fim da inclusão

        'S'.

  ENDIF.

ENDFORM.

FORM documento_liquidacao_andamento

  USING

    value(p_fatura) TYPE t_fatura

    p_itab_zycbt209 TYPE t_itab_zycbt209

  CHANGING

    p_saldo        TYPE t_fatura-saldo.

  FIELD-SYMBOLS:

...