Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 23/07/2009 00:00:00
Data/Hora Última Alteração: 09/03/2010 17:09:35
Descrição da Nota: TRATAMENTO PARA QUEBRAR ADIÇÃO DA DI POR INCOTERMS DIFERENTE.
Sintoma
Tratamento para quebrar adição da DI por incoterms diferente.
Solução
Tratar o incoterm por item para quebra de adição e contabilização da fatura.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08717 Data: 23/07/2009 Hora: 10:40:56
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08717
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00106
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
TRATAMENTO PARA QUEBRAR ADIÇÃO DA DI POR INCOTERMS DIFERENTE.
----------------------------------------------------------------------------------------------------
Palavras Chave:
ADIÇÃO - INCOTERM DIFERENTE - EMBARQUE - FATURA
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI001 0102
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001X01
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI003TOP
REPS /PWS/MZYCI003X01
REPS /PWS/MZYCI023F01
REPT /PWS/SAPMZYCI001
TABD /PWS/ZYCIT003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI001 0102
*Criado campo em tela 0102, no final da table control
INCLUIR CAMPO TEXTO "/PWS/ZYCIE003-INCO1" em tbl.contr./tabstr.
Altura 3
Comprimento Visível 3
Linha 1
Coluna 36
Formato CHAR
Linhas mínimas 3
Texto ___
INCLUIR TEXTO "/PWS/ZYCIE003-INCO1" em tbl.contr./tabstr.
Altura 3
Comprimento Visível 15
Linha 1
Coluna 36
Formato CHAR
Texto Incoterms
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
AND itab_zycit003-ntgew IS INITIAL
AND NOT itab_zycit003-qtd_iten IS INITIAL.
itab_zycit003-ntgew = itab_zycit003-qtd_iten
* itab_itens_aux-ntgew.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
itab_zycit003-gewei = 'KG'.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS
move itab_itens_aux-inco1 to itab_zycit003-inco1.
* << Fim da inclusão
PERFORM: aplicacao.
PERFORM verifica_taxa.
MODIFY itab_zycit003.
ENDLOOP.
IF /pws/zycit094 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit094 "#EC CI_NOFIRST
WHERE nrseq = /pws/zycie001-nrseq.
ENDIF.
IF NOT /pws/zycit094 IS INITIAL.
IF /pws/zycit093 IS INITIAL.
...
...
DATA: v_flag_loop,
e_status.
DATA BEGIN OF itab_sele OCCURS 0.
DATA: ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp.
DATA END OF itab_sele.
e_status = v_status_s.
READ TABLE itab_zycit003 WITH KEY mark = 'X'.
MOVE: itab_zycit003-lifnr TO v_lifnr,
itab_zycit003-waers TO v_moeda.
* >> Início da inclusão: FORM CALL_FATURA
MOVE: itab_zycit003-inco1 TO v_inco1.
* << Fim da inclusão
...
...
IF v_lifnr NE itab_zycit003-lifnr.
MESSAGE i015 WITH text-070.
v_flag_loop = 'X'.
EXIT.
ENDIF.
IF v_moeda NE itab_zycit003-waers.
MESSAGE s015 WITH text-237 text-238.
v_flag_loop = 'X'.
EXIT.
ENDIF.
* >> Início da inclusão: FORM CALL_FATURA
IF v_inco1 NE itab_zycit003-inco1.
MESSAGE i015 WITH text-495.
v_flag_loop = 'X'.
EXIT.
ENDIF.
* << Fim da inclusão
CLEAR vsaldo.
LOOP AT itab_zycit263 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
vsaldo = vsaldo + itab_zycit263-qtd_iten.
ENDLOOP.
IF vsaldo >= itab_zycit003-qtd_iten.
MESSAGE i015 WITH text-194.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
* >> Início da inclusão:
DATA : v_inco1 TYPE /pws/zycit003-inco1.
* << Fim da inclusão
DATA: END OF COMMON PART a.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
READ TABLE itab_sele WITH
KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc NE 0.
DELETE itab_zycit003.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR okcode.
MOVE: /pws/zycie001-bukrs TO /pws/zycie006-bukrs ,
* >> Início da exclusão: MODULE LOAD_DATA
/pws/zycie001-inco1 TO /pws/zycie006-inco1,
* << Fim da exclusão
/pws/zycie001-waers TO /pws/zycie006-waers_emb.
* >> Início da inclusão: MODULE LOAD_DATA
IF NOT itab_zycit003-inco1 IS INITIAL.
MOVE itab_zycit003-inco1 TO /pws/zycie006-inco1.
ELSE.
MOVE /pws/zycie001-inco1 TO /pws/zycie006-inco1.
ENDIF.
* << Fim da inclusão
IF ( NOT /pws/zycie006-tpfatura EQ '02' OR
NOT /pws/zycie006-tpfatura EQ '03' OR
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003TOP
...
DATA BEGIN OF wa_zycit003.
INCLUDE STRUCTURE /pws/zycit003.
* >> Início da exclusão:
DATA inco1 LIKE /pws/zycie001-inco1.
* << Fim da exclusão
DATA END OF wa_zycit003.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
DATA BEGIN OF itab_zycit003_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
* >> Início da exclusão:
DATA inco1 LIKE /pws/zycie001-inco1.
* << Fim da exclusão
DATA END OF itab_zycit003_aux.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
it_zycit001-status = 'DS' .
UPDATE /pws/zycit001 SET status = 'DS'
WHERE nrseq = itab_it-nrseq.
MODIFY it_zycit001 INDEX 1.
MODIFY /pws/zycit001 FROM TABLE it_zycit001.
IF sy-subrc = 0.
PERFORM atualiza_status.
ENDIF.
ENDIF.
ELSE.
* >> Início da inclusão: FORM SAVE_DATA
SELECT SINGLE * FROM /pws/zycit041 INTO /pws/zycit041 WHERE
nrseq EQ /pws/zycie085-nrseqdi AND
cancel EQ space.
IF sy-subrc NE 0.
* << Fim da inclusão
IF NOT itab_it-nrseq IS INITIAL.
it_zycit001-status = 'DB' .
MODIFY it_zycit001 INDEX 1.
MODIFY /pws/zycit001 FROM TABLE it_zycit001.
IF sy-subrc = 0.
PERFORM atualiza_status.
* >> Início da inclusão: FORM SAVE_DATA
ENDIF.
* << Fim da inclusão
ENDIF.
...
...
LOOP AT itab_it_aux.
IF sy-tabix = 1.
MOVE-CORRESPONDING itab_it_aux TO itab_itb.
ENDIF.
v_tabix = v_tabix + 1.
CLEAR v_flag_quebra.
v_cont = v_cont + 1.
IF itab_it_aux-j_1bnbm NE itab_itb-j_1bnbm .
* >> Início da inclusão: FORM ADIC_LIST
PERFORM adic_next.
ELSEIF itab_it_aux-inco1 NE itab_itb-inco1.
* << Fim da inclusão
PERFORM adic_next.
...
...
ENDIF.
IF itab_it-advalicms IS INITIAL.
itab_it-advalicms = itab_zycit003-aliqicms.
ENDIF.
ENDIF.
IF itab_it-codmat IS INITIAL.
itab_it-codmat = '01'.
ENDIF.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-inco1 = itab_zycit001-inco1.
* << Fim da exclusão
itab_it-agente = itab_zycit001-agente.
ENDIF.
IF NOT itab_it-qtd_itencacl IS INITIAL.
IF itab_it-qtd_itencacl > itab_it-qtd_iten.
itab_it-qtd_iten = itab_it-qtd_itencacl - itab_it-qtd_iten.
itab_it-qtd_itenc3 = itab_it-qtd_itencacl - itab_it-qtd_itenc3.
itab_it-qtd_itencacl = 0.
itab_it-cacl = 'X'.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI001
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 495
Texto: (32 caracteres)
"Itens devem ter o mesmo Incoterm"
Comprimento máximo: 32
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT003
*Acrescentado o campo ao final da tabela /PWS/ZYCIT003
CAMPO TP.CAMPO CHAVE INIC CATEGORIA COMP DECIMAIS DESCRIÇÃO BREVE
INCO1 INCO1 CHAR 3 0 Incoterms parte 1