Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 02/07/2012 00:00:00
Data/Hora Última Alteração: 17/08/2012 15:46:37
Descrição da Nota: DAI - ALTERAÇÕES NA LÓGICA DE ALGUNS CAMPOS DA /PWS/ZYCI_CARREGA_DAI
Sintoma
Alterações na lógica de alguns campos da Função: /PWS/ZYCI_CARREGA_DAI
Solução
Atualizado programa para alterar busca de preenchimento para os campos: Destaque do Item,Descrição
Detalhada da Mercadoria, Unidade de Medida,BC ICMS e Valor FOB
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12338 Data: 02/07/2012 Hora: 16:25:14
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12338
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 9.0
Pacote : 00001
Agrupamento : 00119
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12154 - 00001 - 8.0 - 00011 - DAI - DECLARAÇÃO AMAZONENSE DE IMPORTAÇÃO
12298 - 00002 - 9.0 - 00001 - DAI - OBRIGATORIEDADE DE CAMPOS
12317 - 00004 - 9.0 - 00001 - DAI - NOVAS DEFINIÇÕES PARA O NCM E CÓDIGO SUFRAMA
12326 - 00003 - 9.0 - 00001 - DAI - NOVA PASTA NA DI PARA INFORMAÇÕES SOBRE LACRE
----------------------------------------------------------------------------------------------------
DAI - ALTERAÇÕES NA LÓGICA DE ALGUNS CAMPOS DA /PWS/ZYCI_CARREGA_DAI
----------------------------------------------------------------------------------------------------
Palavras Chave:
CÓDIGO DESTAQUE DO ITEM - DESCRIÇÃO DETALHADA DA MERCADORIA
UNIDADE DE MEDIDA - BC ICMS - VALOR FOB
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_CARREGA_DAI
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_CARREGA_DAI
FUNCTION /pws/zyci_carrega_dai.
DATA: it_001 TYPE /pws/zycie001 OCCURS 0 WITH HEADER LINE,
it_049 TYPE /pws/zycie049 OCCURS 0 WITH HEADER LINE,
it_520 TYPE /pws/zycit520 OCCURS 0 WITH HEADER LINE,
it_523 TYPE /pws/zycit523 OCCURS 0 WITH HEADER LINE,
itab_116 TYPE /pws/zycit116 OCCURS 0 WITH HEADER LINE,
it_055 TYPE /pws/zycit055 OCCURS 0 WITH HEADER LINE,
it_078 TYPE /pws/zycit078 OCCURS 0 WITH HEADER LINE,
it_079 TYPE /pws/zycit079 OCCURS 0 WITH HEADER LINE,
t_despesas TYPE /pws/zycie123b OCCURS 0 WITH HEADER LINE,
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
it_525 TYPE /pws/zycit525 OCCURS 0 WITH HEADER LINE.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
it_525 TYPE /pws/zycit525 OCCURS 0 WITH HEADER LINE,
it_204 TYPE /pws/zyglt204 OCCURS 0 WITH HEADER LINE.
DATA: rtexti LIKE tline OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: wa_t001w LIKE t001w,
wa_j_1bbranch LIKE j_1bbranch,
wa_197 LIKE /pws/zycit197,
wa_198 LIKE /pws/zycit198,
wa_289 LIKE /pws/zycit289,
wa_218 LIKE /pws/zycit218,
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_219 LIKE /pws/zycit219,
wa_079 TYPE /pws/zycit079.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_219 LIKE /pws/zycit219.
* << Fim da inclusão
DATA: s_tax TYPE /pws/zycie085-ukursfob,
v_vlantid TYPE /pws/zycit100-vlantid,
v_lin TYPE i,
v_cide TYPE /pws/zycit049-vlreal,
v_multas TYPE /pws/zycit049-vlreal,
v_diversas TYPE /pws/zycit049-vlreal,
v_capataz TYPE /pws/zycit049-vlreal,
v_cgc LIKE j_1bwfield-cgc_number,
v_vlusd LIKE /pws/zycie085-vlfob,
v_vlbrl LIKE /pws/zycie085-vlfob,
v_vlfob TYPE /pws/zycie515-vlfob,
v_vlfre TYPE /pws/zycie515-vlfre,
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
v_vlseg TYPE /pws/zycie515-vlseg.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
v_vlseg TYPE /pws/zycie515-vlseg,
v_txtki LIKE thead-tdname.
* << Fim da inclusão
CLEAR: e_di, t_adicao, t_adicao[], t_lacre, t_lacre[], t_adicao_item,
t_adicao_item[].
CALL FUNCTION '/PWS/ZYCI_TRANSFER_DI'
EXPORTING
i_nrseqdi = i_nrseqdi
i_tpdi = i_tpdi
TABLES
it_cabecalho_di = it_cabecalho_di
it_itens_di = it_itens_di
it_det_itens_di = it_det_itens_di
...
...
it_destaque = it_destaque
it_200 = it_200
it_merc_cab = it_merc_cab
it_merc_ad = it_merc_ad.
IF NOT it_itens_di[] IS INITIAL.
SELECT * FROM /pws/zycit001 INTO TABLE it_001
FOR ALL ENTRIES IN it_itens_di
WHERE nrseq EQ it_itens_di-nrseq.
ENDIF.
IF NOT it_det_itens_di[] IS INITIAL.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
SELECT * FROM /pws/zycit078 INTO TABLE it_078
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
SELECT * FROM /pws/zyglt204 INTO TABLE it_204
* << Fim da inclusão
FOR ALL ENTRIES IN it_det_itens_di
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
WHERE flagpli = 'X'
AND nrpli = it_det_itens_di-nrli.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
WHERE msehi = it_det_itens_di-meins.
* << Fim da inclusão
SELECT * FROM /pws/zycit079 INTO TABLE it_079
FOR ALL ENTRIES IN it_det_itens_di
WHERE numli = it_det_itens_di-nrseqli.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
IF NOT it_079[] IS INITIAL.
SELECT * FROM /pws/zycit078 INTO TABLE it_078
FOR ALL ENTRIES IN it_079
WHERE nrseqli = it_079-nrseqli
AND flagpli = 'X'.
ENDIF.
* << Fim da inclusão
ENDIF.
IF NOT it_adicao_di IS INITIAL.
SELECT * FROM /pws/zycit116 INTO TABLE itab_116
FOR ALL ENTRIES IN it_adicao_di
WHERE nrseqdi = it_adicao_di-nrseqdi
AND adicao = it_adicao_di-adicao.
ENDIF.
IF NOT itab_116[] IS INITIAL.
SELECT * FROM /pws/zycit523 INTO TABLE it_523
FOR ALL ENTRIES IN itab_116
...
...
v_diversas = v_diversas + it_049-vlreal.
WHEN '4'.
v_capataz = v_capataz + it_049-vlreal.
ENDCASE.
ENDIF.
ENDLOOP.
e_di-vlcide = v_cide * 100.
e_di-vlmulta_jur = v_multas * 100.
e_di-vltaxasd = v_diversas * 100.
e_di-vltaxasc = v_capataz * 100.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
clear e_di-VLFOB.
* << Fim da inclusão
SELECT SINGLE counc FROM t005e INTO t005e-counc
WHERE land1 = wa_t001w-land1
AND regio = wa_t001w-regio.
IF sy-subrc = 0.
e_di-uf = t005e-counc.
ELSE.
e_di-uf = wa_t001w-regio.
ENDIF.
e_di-ukursfob = it_cabecalho_di-ukursfob * 10000.
e_di-peso = it_cabecalho_di-ntgew * 100000.
...
...
wa_adicao-n_imp = wa_j_1bbranch-name.
READ TABLE it_forn WITH KEY nrseqdi = it_adicao_di-nrseqdi
adicao = it_adicao_di-adicao.
IF sy-subrc EQ 0.
wa_adicao-fornecedor = it_forn-forn_name1.
ENDIF.
wa_adicao-destinacao = itab_116-destinacao.
wa_adicao-utilizacao = itab_116-utilizacao.
LOOP AT it_itens_di WHERE nrseqdi = it_adicao_di-nrseqdi
AND adicao = it_adicao_di-adicao.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
READ TABLE it_078 WITH KEY nrpli = it_det_itens_di-nrli.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
READ TABLE it_079 WITH KEY numli = it_itens_di-nrseqli
ebeln = it_itens_di-ebeln
ebelp = it_itens_di-ebelp.
* << Fim da inclusão
IF sy-subrc EQ 0.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
READ TABLE it_078 WITH KEY nrseqli = it_079-nrseqli.
IF sy-subrc EQ 0 AND NOT it_078-numpexpam IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit197 INTO wa_197
WHERE nrproc = it_078-numpexpam
AND anoproc = it_078-anopexpam.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit198 INTO wa_198
...
...
SELECT SINGLE * FROM /pws/zycit218 INTO wa_218
WHERE codigo = wa_289-codprod
AND steuc = wa_289-ncmcod.
IF sy-subrc EQ 0.
wa_adicao-ncm = wa_218-steuc.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
ENDIF.
* << Fim da inclusão
IF wa_adicao-ncm IS INITIAL.
wa_adicao-ncm = it_adicao_di-j_1bnbm.
ENDIF.
IF wa_adicao-suframa IS INITIAL.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
READ TABLE it_079 WITH KEY numli = it_itens_di-nrseqli.
IF sy-subrc EQ 0.
* << Fim da exclusão
wa_adicao-suframa = it_079-codsufra.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
ENDIF.
* << Fim da exclusão
ENDIF.
PERFORM load_waers USING it_itens_di-waersbem
CHANGING it_itens_di-waersbem.
IF it_itens_di-waersbem EQ wa_zycbt007-waersa.
wa_adicao-vlfob = wa_adicao-vlfob + ( it_itens_di-vlfob * 100 ).
ELSE.
CLEAR: v_vlusd.
v_vlusd = it_itens_di-vlfob.
PERFORM calc_conv_moeda(/pws/sapmzyci023)
USING it_itens_di-waersbem
...
...
wa_adicao-vlcide = v_cide * 100.
wa_adicao-vlmulta_jur = v_multas * 100.
wa_adicao-vltaxasd = v_diversas * 100.
wa_adicao-vltaxasc = v_capataz * 100.
wa_adicao-ukursfob = it_cabecalho_di-ukursfob * 10000.
wa_adicao-cod_trib = itab_116-tributacao.
wa_adicao-vlbc_icms = v_vlfob + v_vlfre + v_vlseg +
wa_adicao-vlii + wa_adicao-vlipi +
wa_adicao-vlpis_cofins + wa_adicao-vlcide +
wa_adicao-vlantid + wa_adicao-vlmulta_jur +
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_adicao-vltaxasd.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_adicao-vltaxasd + wa_adicao-vltaxasc.
* << Fim da inclusão
READ TABLE it_523 WITH KEY codigo = itab_116-tributacao.
IF sy-subrc EQ 0.
wa_adicao-vlcm = it_523-cm * 100000.
ENDIF.
wa_adicao-vlicms = ( wa_adicao-vlbc_icms * wa_adicao-vlcm ) * 100.
IF e_di-regime = '07'.
ENDIF.
CLEAR: v_vlusd, wa_adicao_item.
LOOP AT it_itens_di WHERE nrseqdi = it_adicao_di-nrseqdi
AND adicao = it_adicao_di-adicao.
wa_adicao_item-numitem = it_itens_di-item_adi_sisc.
wa_adicao_item-adicao = it_itens_di-adicao.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_adicao_item-descr_m = it_itens_di-especificacao.
* << Fim da exclusão
PERFORM load_waers USING it_itens_di-waersbem
CHANGING it_itens_di-waersbem.
IF it_itens_di-waersbem EQ wa_zycbt007-waersa.
v_vlusd = it_itens_di-vlfob.
wa_adicao_item-vltotal =
wa_adicao_item-vltotal + ( it_itens_di-vlfob * 100 ).
ELSE.
v_vlusd = it_itens_di-vlfob.
PERFORM calc_conv_moeda(/pws/sapmzyci023)
USING it_itens_di-waersbem
...
...
READ TABLE it_det_itens_di WITH KEY nrseq = it_itens_di-nrseq
ebeln = it_itens_di-ebeln
ebelp = it_itens_di-ebelp.
IF sy-subrc EQ 0.
IF it_det_itens_di-qtd_itend IS INITIAL.
it_det_itens_di-qtd_itend = it_det_itens_di-qtd_iten.
ENDIF.
wa_adicao_item-ncm = it_det_itens_di-j_1bnbm.
wa_adicao_item-qtde = wa_adicao_item-qtde +
( it_det_itens_di-qtd_itend * 100000 ).
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
READ TABLE it_204 WITH KEY msehi = it_det_itens_di-meins.
IF sy-subrc EQ 0.
wa_adicao_item-un = it_204-descr.
ENDIF.
wa_adicao_item-vlunit = wa_adicao_item-vlunit +
( v_vlusd / it_det_itens_di-qtd_itend ) * 10000000.
READ TABLE it_079 WITH KEY numli = it_det_itens_di-nrseqli
ebeln = it_det_itens_di-ebeln
ebelp = it_det_itens_di-ebelp.
IF sy-subrc EQ 0.
CLEAR: v_txtki, rtexti[], rtexti.
CONCATENATE it_079-nrseqli it_079-ebeln it_079-ebelp
INTO v_txtki.
CALL FUNCTION 'READ_TEXT'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
input = it_det_itens_di-meins
language = 'P'
IMPORTING
output = wa_adicao_item-un
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
client = sy-mandt
id = '0338'
language = sy-langu
name = v_txtki
object = '/PWS/ZYCI'
TABLES
lines = rtexti
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
unit_not_found = 1
OTHERS = 2.
wa_adicao_item-vlunit = wa_adicao_item-vlunit +
( v_vlusd / it_det_itens_di-qtd_itend ) * 10000000.
READ TABLE it_078 WITH KEY nrpli = it_det_itens_di-nrli.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
wa_adicao_item-descr_m = it_079-espec_tecnica.
LOOP AT rtexti.
CONCATENATE wa_adicao_item-descr_m rtexti-tdline INTO
wa_adicao_item-descr_m SEPARATED BY space.
ENDLOOP.
READ TABLE it_078 WITH KEY nrseqli = it_079-nrseqli.
* << Fim da inclusão
IF sy-subrc EQ 0.
CONCATENATE it_078-numpexpam+1(7) it_078-anopexpam+2(2)
INTO wa_adicao_item-pexpam.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
IF it_078-aplicpli EQ '4'.
SELECT SINGLE * FROM /pws/zycit079 INTO wa_079
WHERE nrseqli = it_078-nrseqli
AND tpli = it_078-tpli
AND ebeln = it_itens_di-ebeln
AND ebelp = it_itens_di-ebelp.
IF sy-subrc EQ 0.
wa_adicao_item-destncm = wa_079-destaque.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
wa_adicao_item-destncm = it_079-destaque.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit219 INTO wa_219
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
WHERE codigo = wa_079-codsufra
AND ncm = wa_079-ncm
AND destaque = wa_079-destaque.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
WHERE codigo = it_079-codsufra
AND ncm = it_079-ncm
AND destaque = it_079-destaque.
* << Fim da inclusão
IF sy-subrc EQ 0.
wa_adicao_item-descr_s = wa_219-descricao.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
ENDIF.
* << Fim da exclusão
ENDIF.
ENDIF.
ENDIF.
ENDIF.
APPEND wa_adicao_item TO t_adicao_item.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
clear wa_adicao_item .
* << Fim da inclusão
ENDLOOP.
wa_adicao-item = t_adicao_item.
CLEAR t_adicao_item.
APPEND wa_adicao TO t_adicao.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CARREGA_DAI
e_di-VLFOB = e_di-VLFOB + wa_adicao-vlfob.
* << Fim da inclusão
ENDLOOP.
SELECT * FROM /pws/zycit525
INTO TABLE it_525
...