Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 16/05/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 16:07:31
Descrição da Nota: ERRO AO MUDAR TIPO DE FABRICANTE NA FATURA
Sintoma
Ao mudar o tipo de fabricante, fica errado os campos país de origem e país de aquisição, tanto na
pasta itens quanto no detalhe do item.
Deve levar para o pais de origem o pais do fabricante e no pais de aquisição o pais do fornecedor.
Solução
carregar valores corretamente para campo país de origem e país de aquisição.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03682 Data: 16/05/2007 Hora: 08:51:18
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03682
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00166
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03551 - 00001 - 7.0 - 00001 - ERROS NA FATURA AO UTILIZAR TIPOS DE FABRICANTE 0,2 E 3.
----------------------------------------------------------------------------------------------------
ERRO AO MUDAR TIPO DE FABRICANTE NA FATURA
----------------------------------------------------------------------------------------------------
Palavras Chave:
TIPO DE FABRICANTE - FATURA - PAÍS DE ORIGEM
PAÍS DE AQUISIÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI003 0101
DYNP /PWS/SAPMZYCI003 0106
DYNP /PWS/SAPMZYCI003 0400
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
/pws/zycie006-paquis = lfa1-land1.
IF NOT /pws/zycie006-porigem IS INITIAL AND
v_porigem NE /pws/zycie006-porigem AND
NOT itab_zycit003[] IS INITIAL.
LOOP AT itab_zycit003.
MOVE /pws/zycie006-porigem TO itab_zycit003-porigem.
MODIFY itab_zycit003.
ENDLOOP.
MOVE /pws/zycie006-porigem TO v_porigem.
ELSEIF /pws/zycie006-porigem IS INITIAL AND
* >> Início da exclusão: FORM MOVE_PAIS
/pws/zycie006-fabricante EQ '3'.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_PAIS
/pws/zycie006-fabricante EQ '3' AND NOT
/pws/zycie006-paisfab IS INITIAL.
* << Fim da inclusão
LOOP AT itab_zycit003.
* >> Início da exclusão: FORM MOVE_PAIS
MOVE /pws/zycie006-paisfab TO itab_zycit003-porigem..
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_PAIS
MOVE /pws/zycie006-paisfab TO itab_zycit003-porigem.
* << Fim da inclusão
MODIFY itab_zycit003.
ENDLOOP.
ENDIF.
...
...
/pws/zycie080-logradouro = wa_lfa1-stras.
/pws/zycie080-compl = wa_lfa1-ort02.
/pws/zycie080-city = wa_lfa1-ort01.
/pws/zycie003-ebeln = itab_zycit003-ebeln.
/pws/zycie003-ebelp = itab_zycit003-ebelp.
SELECT SINGLE landx FROM t005t INTO v_pais_aquis
WHERE spras = sy-langu
AND land1 EQ /pws/zycie080-landa.
SELECT SINGLE landx FROM t005t INTO v_pais_origem
WHERE spras = sy-langu
* >> Início da exclusão: FORM LOAD_FORN
AND land1 EQ /pws/zycie006-paisfab.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_FORN
AND land1 EQ itab_zycit003-porigem.
* << Fim da inclusão
/pws/zycie003-lifnrfabr = itab_zycit003-lifnrfabr.
IF itab_zycit003-flagfabr = 'N'.
/pws/zycie080a-name1 = itab_zycit003-descfab.
IF NOT itab_zycit003-paisfab IS INITIAL.
/pws/zycie080a-landa = itab_zycit003-paisfab.
ELSE.
/pws/zycie080a-landa = wa_lfa1-land1.
ENDIF.
CLEAR: /pws/zycie080a-logradouro, /pws/zycie080a-nrlogr,
/pws/zycie080a-compl,
...
...
WHERE spras = sy-langu
AND land1 EQ /pws/zycie080-landa.
SELECT SINGLE landx FROM t005t INTO v_pais_origem
WHERE spras = sy-langu
AND land1 EQ itab_zycit003-porigem.
/pws/zycie003-porigem = itab_zycit003-porigem.
ELSE.
MESSAGE s015 WITH text-050.
v_flag_fabric = 'X'.
ENDIF.
* >> Início da inclusão: FORM LOAD_FORN
/pws/zycie003-porigem = itab_zycit003-porigem.
* << Fim da inclusão
ENDFORM.
FORM selecionar_pedidos.
FREE so_lifnr.
IF NOT /pws/zycie006-lifnr IS INITIAL.
FREE so_lifnr.
so_lifnr-sign = 'I'.
so_lifnr-option = 'EQ'.
so_lifnr-low = /pws/zycie006-lifnr.
APPEND so_lifnr.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
itab_zycit003-fabric = '3'.
MODIFY itab_zycit003.
ENDLOOP.
LOOP AT itab_zycit003.
CLEAR: itab_zycit003-descfab,
itab_zycit003-lifnrfabr, itab_zycit003-flagfabr.
MOVE: '3' TO itab_zycit003-fabric.
MODIFY: itab_zycit003,/pws/zycit003.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM TRATA_FABRICANTE
SELECT SINGLE * FROM lfa1
WHERE lifnr EQ /pws/zycie006-lifnr.
LOOP AT itab_zycit003.
itab_zycit003-paquis = lfa1-land1.
if not itab_zycit003-lifnrfabr is initial.
SELECT SINGLE land1 FROM lfa1
INTO itab_zycit003-porigem
WHERE lifnr EQ itab_zycit003-lifnrfabr.
else.
if not /pws/zycie006-fabricante eq '3'.
clear itab_zycit003-porigem.
endif.
endif.
MODIFY itab_zycit003.
ENDLOOP.
* << Fim da inclusão
ENDFORM.
FORM atualiza_novo_seq.
IF /pws/zycie006-tpfatura EQ '04'.
LOOP AT itab_zycit047.
itab_zycit047-nrseq = /pws/zycie006-nrseq.
MODIFY itab_zycit047.
ENDLOOP.
ENDIF.
ENDFORM.
FORM carrega_descr.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003I01
...
itab_zycit003-mfrpn = /pws/zycie003-mfrpn.
IF v_paisfab ne 'X' .
if /pws/zycie006-fabricante eq '0'.
itab_zycit003-lifnrfabr = /pws/zycie006-lifnrfabr.
itab_zycit003-descfab = /pws/zycie006-descfab .
itab_zycit003-paisfab = /pws/zycie006-paisfab.
else.
itab_zycit003-lifnrfabr = /pws/zycie003-lifnrfabr.
itab_zycit003-descfab = /pws/zycie003-descfab .
itab_zycit003-paisfab = /pws/zycie003-paisfab.
* >> Início da inclusão: MODULE ALTERA_ITAB_ZYCIT003
IF /pws/zycie006-fabricante EQ '3' .
/pws/zycie003-porigem = itab_zycit003-porigem =
/pws/zycie003-paisfab.
* << Fim da inclusão
endif.
* >> Início da inclusão: MODULE ALTERA_ITAB_ZYCIT003
ENDIF.
* << Fim da inclusão
PERFORM carrega_descr.
clear v_paisfab.
ENDIF.
IF /pws/zycie006-nrseq_pgfat IS INITIAL AND itab_zycit132[] IS
INITIAL.
vcalc = itab_zycit003-toinv + itab_zycit003-invoiced.
...
...
MODULE altera_item INPUT.
IF /pws/zycie006-fabricante = '2'.
IF /pws/zycie003-fabric = '1'.
/pws/zycie003-flagfabr = 'S'.
/pws/zycie003-lifnrfabr = /pws/zycie006-lifnr.
ELSEIF /pws/zycie003-fabric = '3'.
CLEAR: /pws/zycie003-lifnrfabr, /pws/zycie003-flagfabr,
/pws/zycie003-descfab .
ELSE.
/pws/zycie003-fabric = /pws/zycie006-fabricante.
ENDIF.
* >> Início da inclusão: MODULE ALTERA_ITEM
/pws/zycie003-porigem = /pws/zycie003-paisfab.
* << Fim da inclusão
IF NOT /pws/zycie006-fabricante IS INITIAL.
/pws/zycie003-flagfabr = 'S'.
ENDIF.
IF /pws/zycie003-flagfabr = 'S' AND /pws/zycie003-fabric NE '3'.
CLEAR lfa1.
SELECT SINGLE *
FROM lfa1
WHERE lifnr EQ /pws/zycie003-lifnrfabr.
IF sy-subrc EQ 0.
MOVE lfa1-name1 TO /pws/zycie003-descfab.
IF /pws/zycie003-paisfab IS INITIAL.
MOVE lfa1-land1 TO /pws/zycie003-paisfab.
ENDIF.
ENDIF.
ELSEIF /pws/zycie003-flagfabr = 'N'.
CLEAR /pws/zycie003-lifnrfabr.
ENDIF.
* >> Início da inclusão: MODULE ALTERA_ITEM
ELSEIF /pws/zycie006-fabricante = '3'.
/pws/zycie003-porigem = /pws/zycie003-paisfab.
* << Fim da inclusão
ENDIF.
MOVE-CORRESPONDING /pws/zycie003 TO itab_zycit003.
MODIFY itab_zycit003 INDEX v_index_det.
ENDMODULE.
MODULE carrega_zycit047 INPUT.
MOVE /pws/zycie047-vldp TO itab_zycit047-vldp.
MODIFY itab_zycit047 INDEX tc_desp-current_line.
ENDMODULE.
MODULE user_command_0107 INPUT.
CASE okcode.
...
...
IF '023' ca /pws/zycie006-fabricante .
CLEAR : /pws/zycie006-lifnrfabr,
/pws/zycie006-descfab,
/pws/zycie006-paisfab.
v_paisfab = 'X' .
ENDIF.
LOOP AT itab_zycit003.
IF '023' ca /pws/zycie006-fabricante .
clear : itab_zycit003-paisfab,
itab_zycit003-lifnrfabr,
* >> Início da exclusão: MODULE ATUALIZA_PAIS
itab_zycit003-descfab .
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_PAIS
itab_zycit003-descfab ,
itab_zycit003-porigem ,
/pws/zycie003-porigem .
* << Fim da inclusão
clear : /pws/zycie003-paisfab,
/pws/zycie003-lifnrfabr,
/pws/zycie003-descfab .
ENDIF.
itab_zycit003-FABRIC = /pws/zycie006-fabricante.
MODIFY itab_zycit003 .
ENDLOOP .
ENDMODULE.
MODULE consiste_fabr INPUT.
ENDMODULE.
...
...
endif.
endif.
loop at itab_zycit003.
move:
/PWS/ZYCIE006-LIFNRFABR to itab_zycit003-lifnrfabr ,
/PWS/ZYCIE006-DESCFAB to itab_zycit003-descfab ,
/PWS/ZYCIE006-paisfab to itab_zycit003-paisfab .
modify itab_zycit003.
endloop.
endif.
* >> Início da inclusão: MODULE ATUALIZA_DADOS
SELECT SINGLE *
FROM lfa1
WHERE lifnr = /pws/zycie006-lifnr.
LOOP AT itab_zycit003.
MOVE lfa1-land1 TO itab_zycit003-porigem.
SELECT SINGLE land1
FROM lfa1 INTO itab_zycit003-paquis
WHERE lifnr = itab_zycit003-lifnrfabr.
MODIFY itab_zycit003.
ENDLOOP.
* << Fim da inclusão
endmodule.
endmodule.
endmodule.