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.
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:
...