Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 08/08/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 16:08:25
Descrição da Nota: ERROS AO NAVEGAR NO FORNECEDOR DA FATURA , TIPO 0 E TIPO 2.
Sintoma
Quando utilizamos a opção de fabricantes diversos e unico na fatura de mercadoria, o programa
permite inclusão somente de fabricantes cadastrados no SAP. O ideal é que o sistema permite informar
descrição do fabricante e país, mesmo que estes não sejam cadastrados no SAP.
Solução
ajustar fornecedor de fatura tipo 0 e 2.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04371 Data: 08/08/2007 Hora: 15:50:11
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04371
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00007
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00731 - 00001 - 6.0 - 00022 - PREENCHER O FABRICANTE DE ACORDO COM O INFORMADO NO PEDIDO DE COM
03551 - 00002 - 7.0 - 00001 - ERROS NA FATURA AO UTILIZAR TIPOS DE FABRICANTE 0,2 E 3.
03821 - 00003 - 7.0 - 00001 - ERROS COM TIPO DE FABRICANTE NA FATURA, DI E TRANSMISSÃO SISCOMEX
04327 - 00004 - 7.0 - 00002 - NA ADIÇÃO, QUANDO FABRICANTE = (0), NÃO LEVA INFORMAÇÃO PARA SISC
----------------------------------------------------------------------------------------------------
ERROS AO NAVEGAR NO FORNECEDOR DA FATURA , TIPO 0 E TIPO 2.
----------------------------------------------------------------------------------------------------
Palavras Chave:
FORNECEDOR DA FATURA - FORNECEDOR TIPO 0 - FORNECEDOR DI - SISCOMEX
FORNECEDOR TIPO 2
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_TRANSFER_DI
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003I01
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI023O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSFER_DI
...
it_forn-forn_logradouro = wa_adrc-street.
it_forn-forn_nrlogr = wa_adrc-house_num1.
it_forn-forn_compl = wa_lfa1-ort02.
it_forn-forn_city = wa_adrc-city1.
it_forn-forn_regio = wa_adrc-region.
PERFORM load_pais(/pws/sapmzyci023):
USING wa_adrc-country
CHANGING it_forn-forn_landa v_txtpais.
ENDIF.
CLEAR: wa_lfa1, wa_adrc.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSFER_DI
if it_det_itens_di-lifnrfabr is initial.
it_forn-fabr_name1 = it_det_itens_di-descfab.
it_forn-fabr_landa = it_det_itens_di-paisfab.
else.
* << Fim da inclusão
IF it_det_itens_di-flagfabr = 'N'.
it_forn-fabr_name1 = it_det_itens_di-descfab.
it_forn-fabr_landa = it_faturas_di-paisfab.
ELSEIF it_det_itens_di-flagfabr = 'S'.
SELECT SINGLE lifnr name1 land1 adrnr
stras ort01 ort02 regio FROM lfa1
INTO CORRESPONDING FIELDS OF wa_lfa1
WHERE lifnr EQ it_det_itens_di-lifnrfabr.
SELECT SINGLE * FROM adrc INTO wa_adrc
WHERE addrnumber EQ wa_lfa1-adrnr.
...
...
it_forn-fabr_logradouro = wa_adrc-street.
it_forn-fabr_nrlogr = wa_adrc-house_num1.
it_forn-fabr_compl = wa_lfa1-ort02.
it_forn-fabr_city = wa_adrc-city1.
it_forn-fabr_regio = wa_adrc-region.
PERFORM load_pais(/pws/sapmzyci023):
USING wa_adrc-country
CHANGING it_forn-fabr_landa v_txtpais.
ENDIF.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSFER_DI
endif.
* << Fim da inclusão
ELSEIF it_faturas_di-fabricante EQ '3'.
CLEAR: wa_lfa1, wa_adrc, it_forn.
SELECT SINGLE lifnr name1 land1 adrnr
stras ort01 ort02 FROM lfa1
INTO CORRESPONDING FIELDS OF wa_lfa1
WHERE lifnr EQ it_faturas_di-lifnr.
SELECT SINGLE * FROM adrc INTO wa_adrc
WHERE addrnumber EQ wa_lfa1-adrnr.
IF sy-subrc EQ 0.
it_forn-forn_name1 = wa_lfa1-name1.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
/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
AND land1 EQ itab_zycit003-porigem.
* >> Início da inclusão: FORM LOAD_FORN
if not itab_zycit003-lifnrfabr is initial.
* << 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,
...
...
/pws/zycie080a-name1 = wa_lfa1-name1.
IF NOT itab_zycit003-paisfab IS INITIAL.
/pws/zycie080a-landa = itab_zycit003-paisfab.
ELSE.
/pws/zycie080a-landa = wa_lfa1-land1.
ENDIF.
/pws/zycie080a-nrlogr = wa_lfa1-adrnr.
/pws/zycie080a-logradouro = wa_lfa1-stras.
/pws/zycie080a-compl = wa_lfa1-ort02.
/pws/zycie080a-city = wa_lfa1-ort01.
* >> Início da inclusão: FORM LOAD_FORN
ENDIF.
else.
/pws/zycie080a-name1 = itab_zycit003-descfab.
/pws/zycie080a-landa = itab_zycit003-paisfab.
CLEAR: /pws/zycie080a-logradouro,
/pws/zycie080a-nrlogr ,
/pws/zycie080a-compl ,
/pws/zycie080a-city ,
/pws/zycie080a-regio.
* << Fim da inclusão
ENDIF.
ELSEIF /pws/zycie006-fabricante EQ '3'.
SELECT SINGLE lifnr name1 land1 adrnr stras ort01 ort02 regio
FROM lfa1
INTO CORRESPONDING FIELDS OF wa_lfa1
WHERE lifnr EQ /pws/zycie006-lifnr.
SELECT SINGLE * FROM adrc INTO wa_adrc
WHERE addrnumber EQ wa_lfa1-adrnr.
SELECT SINGLE bezei FROM t005u INTO /pws/zycie080-regio
WHERE land1 = wa_lfa1-land1 AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
/pws/zycie003-lifnrfabr = /pws/zycie006-lifnr.
ELSEIF /pws/zycie003-fabric = '3'.
CLEAR: /pws/zycie003-lifnrfabr, /pws/zycie003-flagfabr,
/pws/zycie003-descfab, /pws/zycie003-paisfab.
ENDIF.
IF NOT /pws/zycie006-fabricante IS INITIAL.
/pws/zycie003-flagfabr = 'S'.
ENDIF.
IF /pws/zycie003-flagfabr = 'S'.
CLEAR lfa1.
* >> Início da inclusão: FORM CARREGA_DESCR
IF NOT /pws/zycie003-lifnrfabr IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM lfa1
WHERE lifnr EQ /pws/zycie003-lifnrfabr.
MOVE lfa1-name1 TO itab_zycit003-descfab.
IF itab_zycit003-paisfab IS INITIAL.
MOVE lfa1-land1 TO itab_zycit003-paisfab.
ENDIF.
* >> Início da inclusão: FORM CARREGA_DESCR
ENDIF .
* << Fim da inclusão
ELSEIF /pws/zycie003-flagfabr = 'N'.
...
...
MODIFY itab_zycit132 TRANSPORTING miro status
WHERE belnr_mr1m EQ /pws/zycie006-belnr_mr1m.
ENDIF.
PERFORM clear_date_batch.
CLEAR v_mr1m_ok.
ELSE.
v_erro = 'X'.
ENDIF.
ENDIF.
ENDFORM.
* >> Início da inclusão:
form atualiza_fornecedor.
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.
IF /pws/zycie006-fabricante EQ '3' .
/pws/zycie003-porigem = itab_zycit003-porigem =
/pws/zycie003-paisfab.
ENDIF.
ENDIF.
PERFORM carrega_descr.
CLEAR v_paisfab.
ENDIF.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003I01
...
/pws/zycie006-tpfatura = '04' ) AND
v_forn IS INITIAL
AND /pws/zycie006-eliminado NE 'X'.
ENDIF.
IF t001-land1 = 'CL'.
/pws/zycie006-waers_clp = /pws/zycbt007-waersb.
ENDIF.
IF /pws/zycie006-vlfre_clp GT 0.
v_freteclp = 'S'.
ENDIF.
* >> Início da inclusão: MODULE ATUALIZA_ZYCIE006
if /PWS/ZYCIE006-FABRICANTE eq '0' and
/pws/zycie006-LIFNRFABR is initial.
loop at itab_zycit003.
v_tabix = sy-tabix.
perform atualiza_fornecedor.
modify itab_zycit003 index v_tabix.
endloop.
endif.
* << Fim da inclusão
ENDMODULE.
MODULE user_command_0101 INPUT.
CASE okcode.
WHEN 'SELE'.
GET CURSOR FIELD v_campo VALUE v_valor.
IF v_campo EQ '/PWS/ZYCIE006-BELNR_P' AND
NOT v_valor IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt108
WHERE bukrs = /pws/zycie006-bukrs
AND belnr = /pws/zycie006-nrseq.
...
...
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
CHECK /pws/zycie006-tpfatura = '01' OR /pws/zycie006-tpfatura = '11'
OR /pws/zycie006-tpfatura = ' '.
itab_zycit003-vlreal = /pws/zycie003-vlreal.
itab_zycit003-fabric = /pws/zycie003-fabric.
itab_zycit003-porigem = /pws/zycie003-porigem.
itab_zycit003-paquis = /pws/zycie003-paquis.
itab_zycit003-mfrpn = /pws/zycie003-mfrpn.
* >> Início da exclusão: MODULE ALTERA_ITAB_ZYCIT003
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.
IF /pws/zycie006-fabricante EQ '3' .
/pws/zycie003-porigem = itab_zycit003-porigem =
/pws/zycie003-paisfab.
ENDIF.
ENDIF.
PERFORM carrega_descr.
* << Fim da exclusão
* >> Início da inclusão: MODULE ALTERA_ITAB_ZYCIT003
perform atualiza_fornecedor.
* << Fim da inclusão
* >> Início da exclusão: MODULE ALTERA_ITAB_ZYCIT003
CLEAR v_paisfab.
ENDIF.
* << Fim da exclusão
IF /pws/zycie006-nrseq_pgfat IS INITIAL AND itab_zycit132[] IS
INITIAL.
vcalc = itab_zycit003-toinv + itab_zycit003-invoiced.
IF vcalc > itab_zycit003-qtd_iten.
MESSAGE s015 WITH text-119.
itab_zycit003-toinv = itab_zycit003-qtd_iten - itab_zycit003-invoiced.
ENDIF.
ENDIF.
IF /pws/zycie006-ratseg = '3'.
itab_zycit003-vlseg_fat = /pws/zycie003-vlseg_fat.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
IF ( screen-name = '/PWS/ZYCIE003-VLREAL' OR
screen-name = '/PWS/ZYCIE036-VLDIF' ) AND
/pws/zycie006-tpfatura EQ '01'.
READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.
SELECT SINGLE *
FROM /pws/zycit042
WHERE nrseq EQ /pws/zycit003-nrseq
AND docnum NE ''.
IF sy-subrc EQ 0.
screen-input = 0.
* >> Início da inclusão: MODULE SET_SCREEN_0400
ENDIF.
ENDIF.
IF /pws/zycie006-fabricante EQ '2' AND
( screen-name EQ '/PWS/ZYCIE003-DESCFAB' OR
screen-name EQ '/PWS/ZYCIE003-PAISFAB' ) .
IF /pws/zycie003-lifnrfabr IS INITIAL .
SCREEN-INPUT = '1' .
ELSE .
CLEAR : /PWS/ZYCIE003-DESCFAB, /PWS/ZYCIE003-PAISFAB.
SCREEN-INPUT = '0' .
* << Fim da inclusão
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.
MODULE /pws/zycie047 OUTPUT.
IF itab_zycit047[] IS INITIAL AND
NOT /pws/zycie006-dtincl IS INITIAL AND
NOT /pws/zycie006-nrfat IS INITIAL AND
NOT /pws/zycie006-frpagto IS INITIAL AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023O01
...
/pws/zycie116-valtot.
IF itab_zycit003-fabric EQ '1'.
PERFORM load_forn USING: /pws/zycie006-lifnr '800'.
ELSEIF itab_zycit003-fabric CA '02'.
PERFORM load_forn USING: /pws/zycie006-lifnr '800'.
/pws/zycie080a-name1 = itab_zycit003-descfab.
/pws/zycie080a-landa = /pws/zycie006-paisfab.
CLEAR: /pws/zycie080a-logradouro, /pws/zycie080a-nrlogr,
/pws/zycie080a-compl,
/pws/zycie080a-city, /pws/zycie080a-regio.
* >> Início da inclusão: MODULE LOAD_ADIC
if not itab_zycit003-lifnrfabr is initial.
* << Fim da inclusão
PERFORM load_forn USING itab_zycit003-lifnrfabr '80A'.
* >> Início da inclusão: MODULE LOAD_ADIC
else.
/pws/zycie080a-name1 = itab_zycit003-descfab.
/pws/zycie080a-landa = itab_zycit003-paisfab.
PERFORM load_pais USING /pws/zycie080a-landa
CHANGING a_spais2 a_pais2.
CLEAR: /pws/zycie080a-logradouro, /pws/zycie080a-nrlogr,
/pws/zycie080a-compl,
/pws/zycie080a-city, /pws/zycie080a-regio.
endif.
* << Fim da inclusão
ELSEIF itab_zycit003-fabric EQ '3'.
PERFORM load_forn USING /pws/zycie006-lifnr '800'.
ENDIF.
PERFORM: load_cncm USING wa_it-j_1bnbm,
load_pais USING wa_it-porigem CHANGING a_spais a_pais,
load_pais USING /pws/zycie080-landa CHANGING a_spais1
a_pais1,
load_inco,
load_regt USING wa_it-codregtri /pws/zycie085-ntimp '1'
CHANGING t_regdes,
...