Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Variação Cambial
Data/Hora da Publicação: 08/11/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 11:50:14
Descrição da Nota: CONSISTÊNCIA NA IMPRESSÃO DA NOTA DE VARIAÇÃO CAMBIAL DE AVERBAÇÃO
Sintoma
Ao executar o programa para geração da Nota Fiscal de Variação Cambial de Averbação, o programa está
utilizando um critério incorreto para verificação de se a Nota Fiscal de Variação já foi gerada e
impressa.
Solução
Alteração da rotina de verificação de se a Nota Fiscal de Variação Cambial de Averbação já foi
gerada para o item do Embarque.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05179 Data: 08/11/2007 Hora: 19:02:47
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05179
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00020
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03772 - 00001 - 7.0 - 00001 - CONSISTÊNCIA DA DATA BASE AO EXECUTAR A VARIAÇÃO CAMBIAL
04830 - 00002 - 7.0 - 00003 - CORREÇÃO NA GRAVAÇÃO DE DADOS DA VARIAÇÃO CAMBIAL
----------------------------------------------------------------------------------------------------
CONSISTÊNCIA NA IMPRESSÃO DA NOTA DE VARIAÇÃO CAMBIAL DE AVERBAÇÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONSISTÊNCIA, NOTA FISCAL, VARIAÇÃO CAMBIAL, AVERBAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCER007
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER007
...
ELSEIF /pws/zycet048-dtvrc EQ 'DTEMB'.
IF it_zycet001-dtemb IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF it_zycet001-dtemb GT v_dtate.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
* >> Início da exclusão: FORM ITENS_EMBARQUE
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
* << Fim da exclusão
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ELSEIF /pws/zycet048-dtvrc EQ 'DTCRUZE'.
IF it_zycet001-dtcruze IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF it_zycet001-dtcruze GT v_dtate.
* >> Início da exclusão: FORM ITENS_EMBARQUE
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
* << Fim da exclusão
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ELSEIF /pws/zycet048-dtvrc EQ 'DTAVERB'.
IF it_zycet001-dtaverb IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF it_zycet001-dtaverb GT v_dtate.
* >> Início da exclusão: FORM ITENS_EMBARQUE
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
* << Fim da exclusão
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ELSEIF /pws/zycet048-dtvrc EQ 'DTBL'.
SELECT SINGLE dtbl
FROM /pws/zycet047
INTO /pws/zycet047-dtbl
WHERE nrseq EQ it_zycet001-nrseq.
IF /pws/zycet047-dtbl IS INITIAL.
MOVE: it_zycet002-nrseq TO itab_erro-nrseq,
/pws/zycet048-dtvrc TO itab_erro-dtvrc.
APPEND itab_erro.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
ELSEIF /pws/zycet047-dtbl GT v_dtate.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
* >> Início da exclusão: FORM ITENS_EMBARQUE
ELSEIF NOT it_zycet002-dtcont IS INITIAL AND
NOT it_zycet002-dtnf IS INITIAL.
DELETE it_zycet002 INDEX v_index.
CONTINUE.
* << Fim da exclusão
ELSE.
it_zycet002-nfaver = 'X'.
MODIFY it_zycet002 INDEX v_index.
ENDIF.
ENDIF.
ENDLOOP.
ELSEIF p_nffmes EQ 'X' AND p_nfaver NE 'X'.
LOOP AT it_zycet002.
v_index = sy-tabix.
READ TABLE it_zycet001 WITH KEY nrseq = it_zycet002-nrseq.
...
...
ENDIF.
ENDIF.
ENDFORM.
FORM seleciona_itens_embarque
USING
p_t_zycet001 LIKE it_zycet001[]
p_reimpressao TYPE xfeld
CHANGING
p_t_zycet002 LIKE it_zycet002[].
DATA: wa_zycet001 LIKE LINE OF p_t_zycet001[],
* >> Início da exclusão: FORM SELECIONA_ITENS_EMBARQUE
it_itens TYPE STANDARD TABLE OF /pws/zycet002.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_EMBARQUE
it_itens TYPE STANDARD TABLE OF /pws/zycet002,
wa_itens LIKE LINE OF it_itens.
DATA: it_zycet009 TYPE STANDARD TABLE OF /pws/zycet009,
wa_zycet009 LIKE LINE OF it_zycet009[].
DATA: v_index TYPE sy-tabix.
* << Fim da inclusão
LOOP AT p_t_zycet001 INTO wa_zycet001.
CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'
EXPORTING
nrseq = wa_zycet001-nrseq
TABLES
tab_saida = it_itens[]
EXCEPTIONS
OTHERS = 1.
* >> Início da inclusão: FORM SELECIONA_ITENS_EMBARQUE
APPEND LINES OF it_itens[] TO p_t_zycet002[].
CLEAR: it_itens[].
ENDLOOP.
IF p_reimpressao IS INITIAL AND NOT
p_t_zycet002[] IS INITIAL.
SELECT *
FROM /pws/zycet009
INTO TABLE it_zycet009
FOR ALL ENTRIES IN p_t_zycet002[]
WHERE nrseq = p_t_zycet002-nrseq AND
vbeln_va = p_t_zycet002-vbeln_va AND
vbeln_vf = p_t_zycet002-vbeln_vf AND
docnum = p_t_zycet002-docnum.
IF NOT it_zycet009[] IS INITIAL.
LOOP AT p_t_zycet002 INTO wa_itens.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_EMBARQUE
IF p_reimpressao IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_EMBARQUE
v_index = sy-tabix.
READ TABLE it_zycet009 INTO wa_zycet009
WITH KEY nrseq = wa_itens-nrseq
vbeln_va = wa_itens-vbeln_va
vbeln_vf = wa_itens-vbeln_vf
docnum = wa_itens-docnum.
IF sy-subrc IS INITIAL AND
NOT wa_zycet009-docnum2 IS INITIAL.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_EMBARQUE
DELETE it_itens[] WHERE NOT dtnf IS initial
OR NOT dtcont IS initial.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_EMBARQUE
DELETE p_t_zycet002 INDEX v_index.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM SELECIONA_ITENS_EMBARQUE
APPEND LINES OF it_itens[] TO p_t_zycet002[].
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_EMBARQUE
ENDLOOP.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_EMBARQUE
CLEAR: it_itens[].
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_EMBARQUE
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_ITENS_EMBARQUE
ENDLOOP.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_EMBARQUE
ENDIF.
* << Fim da inclusão
ENDFORM.