Módulo: DRAWBACK
Funcionalidade: Apropriação
Data/Hora da Publicação: 15/08/2008 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:28:18
Descrição da Nota: AJUSTES PARA TRATAR COMPRAS NO MERCADO INTERNO
Sintoma
Atualização do programa de apropriação para tratativa de processos utilziando lista técnica por
agrupamento.
Solução
Atualização do programa de apropriação para tratativa de processos utilziando lista técnica por
agrupamento.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07146 Data: 15/08/2008 Hora: 08:43:43
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07146
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00060
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04167 - 00001 - 7.0 - 00002 - ORDENAÇÃO DAS IMPORTAÇÕES NA APROPRIAÇÃO
----------------------------------------------------------------------------------------------------
AJUSTES PARA TRATAR COMPRAS NO MERCADO INTERNO
----------------------------------------------------------------------------------------------------
Palavras Chave:
COMPRAS - MERCADO - INTERNO - APROPRIAÇÃO
/PWS/ZYCIR254
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCIR254
REPS /PWS/ZYCIR254F01
REPS /PWS/ZYCIR254O01
REPS /PWS/ZYCIR254X01
MENU /PWS/ZYCID
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR254
* >> Início da exclusão:
REPORT /pws/zycir070 MESSAGE-ID /pws/zycim.
* << Fim da exclusão
* >> Início da inclusão:
REPORT /pws/zycir254 MESSAGE-ID /pws/zycim.
* << Fim da inclusão
INCLUDE /pws/zycir254x01.
CONTROLS: tc_exp TYPE TABLEVIEW USING SCREEN '0001',
tc_exp_ap TYPE TABLEVIEW USING SCREEN '0002',
tc_imp_ap TYPE TABLEVIEW USING SCREEN '0005',
tc_imp_ap2 TYPE TABLEVIEW USING SCREEN '0006',
tc_mer_ap TYPE TABLEVIEW USING SCREEN '0006',
tc_log TYPE TABLEVIEW USING SCREEN '0003',
tc_exp_desa TYPE TABLEVIEW USING SCREEN '0004'.
TABLES: ekko ,
t001 ,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR254F01
...
it_zycet002-mexp = 'X'.
MODIFY it_zycet002 INDEX v_indicatu.
ENDIF.
PERFORM locate_record_appropriation.
CALL SCREEN 0002.
ELSE.
MESSAGE s015 WITH text-002 text-003.
ENDIF.
ENDFORM.
FORM run_appropriation_exportation.
* >> Início da exclusão: FORM RUN_APPROPRIATION_EXPORTATION
DATA: v_ncm_temp(5),
* << Fim da exclusão
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
DATA: v_ncm_temp(10),
* << Fim da inclusão
v_ncm_b LIKE it_zycet002_grp-steuc.
PERFORM verifica_exit USING 'D'
'/PWS/ZYCIR254'
'APR004'.
e_subrc = 0.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'APR004' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
...
...
dtate >= sy-datum.
CLEAR it_zycet001. REFRESH it_zycet001.
SELECT * FROM /pws/zycet001 INTO TABLE it_zycet001
FOR ALL ENTRIES IN it_zycet002
WHERE nrseq EQ it_zycet002-nrseq.
CLEAR it_zycit281.
REFRESH it_zycit281.
SELECT * FROM /pws/zycit281 INTO TABLE it_zycit281
FOR ALL ENTRIES IN it_zycet002
WHERE matnr EQ it_zycet002-matnr.
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
IF /pws/zycit321-ltopc EQ '1'.
CLEAR it_agrup. REFRESH it_agrup.
SELECT * FROM mvke INTO TABLE it_agrup
FOR ALL ENTRIES IN it_zycet002
WHERE matnr EQ it_zycet002-matnr
AND vkorg EQ it_zycet002-vkorg_auft
AND vtweg EQ it_zycet002-vtweg_auft.
CLEAR it_zycet002_grp. REFRESH it_zycet002_grp.
it_zycet002_grp[] = it_zycet002[].
CLEAR it_zycit247. REFRESH it_zycit247.
LOOP AT it_zycet002_grp.
READ TABLE it_agrup WITH KEY matnr = it_zycet002_grp-matnr.
IF sy-subrc EQ 0.
IF /pws/zycit321-ncm_list EQ 'X'.
v_ncm_temp = it_zycet002_grp-steuc.
IF v_ncm_temp+4(1) EQ '.'.
v_ncm_temp+4 = it_zycet002_grp-steuc+5(1) .
ENDIF.
ELSE.
v_ncm_temp = it_zycet002_grp-steuc.
ENDIF.
SELECT SINGLE agrup nrdprod FROM /pws/zycit423"#EC CI_NOFIELD
INTO (it_zycet002_grp-grp, it_zycet002_grp-nrdprod)
WHERE mvgr1 = it_agrup-mvgr1
AND ncm = v_ncm_temp.
IF sy-subrc EQ 0.
MODIFY it_zycet002_grp TRANSPORTING grp nrdprod.
READ TABLE it_zycit247
WITH KEY j_1bnbm = it_zycet002_grp-steuc
werks = it_zycet002_grp-werks
agrup = it_zycet002_grp-grp.
IF sy-subrc NE 0.
SELECT * FROM /pws/zycit247 APPENDING TABLE it_zycit247
WHERE j_1bnbm EQ it_zycet002_grp-steuc
AND werks EQ it_zycet002_grp-werks
AND agrup EQ it_zycet002_grp-grp
AND esgotado EQ space. "#EC CI_NOFIELD
ENDIF.
ELSE.
CLEAR: v_errolog, it_log_erro.
CONCATENATE text-038 it_zycet002_grp-grp '/'
it_zycet002-steuc text-039
INTO v_errolog SEPARATED BY space.
MOVE v_errolog TO it_log_erro.
APPEND it_log_erro.
ENDIF.
ENDIF.
ENDLOOP.
SORT it_zycit247 BY nrseqd j_1bnbm agrup.
DELETE ADJACENT DUPLICATES FROM it_zycit247 COMPARING
nrseqd j_1bnbm agrup .
ELSE.
* << Fim da inclusão
CLEAR it_zycit247. REFRESH it_zycit247.
* >> Início da exclusão: FORM RUN_APPROPRIATION_EXPORTATION
SELECT * FROM /pws/zycit247 INTO TABLE it_zycit247 "#EC CI_NOFIELD
* << Fim da exclusão
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
SELECT * FROM /pws/zycit247 INTO TABLE it_zycit247"#EC CI_NOFIELD
* << Fim da inclusão
FOR ALL ENTRIES IN it_zycet002
WHERE j_1bnbm EQ it_zycet002-steuc
AND esgotado EQ space.
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
ENDIF.
* << Fim da inclusão
IF sy-subrc EQ 0.
CLEAR it_zycit244. REFRESH it_zycit244.
SELECT * FROM /pws/zycit244 INTO TABLE it_zycit244
FOR ALL ENTRIES IN it_zycit247
WHERE nrseqd EQ it_zycit247-nrseqd
AND status EQ 'D'
AND ( tipo EQ 'C' OR tipo EQ 'F' OR tipo EQ 'G' )
AND vcto_fn >= sy-datum
AND dtatoc NE '00000000'
AND modalidade EQ 'S'.
CLEAR it_zycit245. REFRESH it_zycit245.
SELECT * FROM /pws/zycit245 INTO TABLE it_zycit245
FOR ALL ENTRIES IN it_zycit247
WHERE nrseqd EQ it_zycit247-nrseqd.
CLEAR it_zycit279. REFRESH it_zycit279.
SELECT * FROM /pws/zycit279 INTO
* >> Início da exclusão: FORM RUN_APPROPRIATION_EXPORTATION
TABLE it_zycit279 "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
TABLE it_zycit279 "#EC CI_NOFIRST
* << Fim da inclusão
FOR ALL ENTRIES IN it_zycit247
WHERE nrseqd EQ it_zycit247-nrseqd
AND esgotado EQ space.
CLEAR itab_stko. REFRESH itab_stko.
SELECT * FROM stko INTO TABLE itab_stko
FOR ALL ENTRIES IN it_zycit247
WHERE stlty EQ 'M'
AND stlnr EQ it_zycit247-stlnr
AND stlal EQ it_zycit247-stlal.
ENDIF.
PERFORM sort_records_zycit247.
PERFORM lock_record_receb.
PERFORM lock_record_ato.
SORT it_zycit279 BY dtdi nrseq+8(2) nrseq(8) ebeln ebelp matnr.
LOOP AT it_zycet002.
IF t001-bukrs NE it_zycet002-bukrs.
SELECT SINGLE * FROM t001 WHERE bukrs EQ it_zycet002-bukrs.
ENDIF.
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
IF /pws/zycit321-ltopc EQ '1'.
READ TABLE it_zycet002_grp WITH KEY
nrseq = it_zycet002-nrseq
vbeln_va = it_zycet002-vbeln_va
aupos = it_zycet002-aupos
vbeln_vf = it_zycet002-vbeln_vf
posnr = it_zycet002-posnr
docnum = it_zycet002-docnum
vbeln_vl = it_zycet002-vbeln_vl
posnl = it_zycet002-posnl
ebeln = it_zycet002-ebeln
ebelp = it_zycet002-ebelp.
SELECT SINGLE bldat FROM likp INTO v_dtforn
WHERE vbeln EQ it_zycet002-vbeln_vl.
PERFORM aprop_currenty_rec_agrup.
ELSE.
* << Fim da inclusão
PERFORM converte_um_base USING it_zycet002-matnr
CHANGING it_zycet002-vrkme
it_zycet002-fkimg.
IF it_zycet002-fkimg IS INITIAL.
CONTINUE.
ENDIF.
READ TABLE it_zycit281 WITH KEY matnr = it_zycet002-matnr
werks = it_zycet002-werks.
IF sy-subrc NE 0.
SELECT SINGLE a~wrk02
FROM ( t460a AS a INNER JOIN marc AS b ON
a~werks EQ b~werks AND
a~sobsl EQ b~sobsl AND
a~beskz EQ b~beskz )
INTO it_zycet002-werks
WHERE b~matnr EQ it_zycet002-matnr
AND b~werks EQ it_zycet002-werks
* >> Início da exclusão: FORM RUN_APPROPRIATION_EXPORTATION
AND a~beskz EQ 'F'. "#EC CI_BUFFJOIN
* << Fim da exclusão
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
AND a~beskz EQ 'F'. "#EC CI_BUFFJOIN
* << Fim da inclusão
IF sy-subrc EQ 0.
READ TABLE it_zycit281 WITH KEY matnr = it_zycet002-matnr
werks = it_zycet002-werks.
ENDIF.
ENDIF.
IF sy-subrc EQ 0.
CLEAR: it_stpox, it_stpox2, it_matcat.
REFRESH: it_stpox, it_stpox2, it_matcat. v_errolt = 'N'.
PERFORM get_bom_of_materials TABLES it_stpox2
it_matcat
...
...
MOVE v_errolog TO it_log_erro.
APPEND it_log_erro.
ENDIF.
ELSE.
CLEAR: v_errolog, it_log_erro.
CONCATENATE text-016 it_zycet002-matnr
INTO v_errolog SEPARATED BY space.
MOVE v_errolog TO it_log_erro.
APPEND it_log_erro.
ENDIF.
* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION
ENDIF.
* << Fim da inclusão
ENDLOOP.
ENDIF.
SORT it_log_erro BY ltext.
DELETE ADJACENT DUPLICATES FROM it_log_erro .
ENDIF.
SORT it_apr_final BY matnr_imp nrseqimp ebeln ebelp.
ENDFORM.
FORM check_buttons_screen.
REFRESH it_buttons.
CASE sy-dynnr.
...
...
CLEAR i_final. REFRESH i_final.
CLEAR it_materiais. REFRESH it_materiais.
it_materiais-matnr = p_matnr.
it_materiais-werks = p_werks.
it_materiais-stlan = p_stlan.
it_materiais-stlnr = p_stlnr.
it_materiais-stlal = p_stlal.
it_materiais-capid = p_capid.
APPEND it_materiais.
EXPORT it_materiais TO MEMORY ID idmemory1.
* >> Início da exclusão: FORM GET_BOM_OF_MATERIALS
SUBMIT (v_trans) AND RETURN."#EC CI_SUBMIT
* << Fim da exclusão
* >> Início da inclusão: FORM GET_BOM_OF_MATERIALS
SUBMIT (v_trans) AND RETURN. "#EC CI_SUBMIT
* << Fim da inclusão
IMPORT i_final FROM MEMORY ID idmemory2.
IF sy-subrc NE 0 OR i_final[] IS INITIAL.
p_erro = 'S'.
ELSE.
SELECT * FROM /pws/zycit327 INTO TABLE itab_zycit327
FOR ALL ENTRIES IN i_final
WHERE produto EQ i_final-produto
AND centro EQ i_final-centro.
LOOP AT i_final.
READ TABLE itab_zycit327 WITH KEY produto = i_final-produto
...
...
MODIFY it_zycit279 TRANSPORTING matnr_alt
WHERE matnr EQ itab_zycit433t-matnr
AND nrseqd EQ it_zycit247-nrseqd.
ENDLOOP.
CLEAR: v_qtdtot, v_qtd_perda, v_perda, it_zycit245.
LOOP AT it_zycit279 WHERE matnr_alt EQ itab_lista-matnr
AND esgotado = space
AND nrseqd = it_zycit247-nrseqd .
CLEAR: v_perda, v_dias.
v_dias = v_dtforn - it_zycit279-dtnf.
* >> Início da inclusão: FORM GET_PCT
IF /pws/zycit321-ltopc EQ '1'.
IF it_zycet002_grp-nrdprod > v_dias.
CONTINUE.
ENDIF.
ELSE.
* << Fim da inclusão
IF it_zycit281-nrdprod > v_dias.
CONTINUE.
* >> Início da inclusão: FORM GET_PCT
ENDIF.
* << Fim da inclusão
ENDIF.
READ TABLE itab_zycit439 WITH KEY
insumo = it_zycit279-matnr
matnr = it_zycet002-matnr.
IF sy-subrc NE 0 OR
...
...
MODIFY it_zycit279 TRANSPORTING matnr_alt
WHERE matnr EQ itab_zycit433t-matnr
AND nrseqd EQ it_zycit247-nrseqd.
ENDLOOP.
CLEAR: v_aprcomum.
LOOP AT it_zycit279 WHERE nrseqd = it_zycit247-nrseqd
AND esgotado = space
AND matnr_alt EQ itab_lista_aux-matnr.
CLEAR v_dias.
v_dias = v_dtforn - it_zycit279-dtnf.
* >> Início da inclusão: FORM APPROPRIATE_TNG
IF /pws/zycit321-ltopc EQ '1'.
IF it_zycet002_grp-nrdprod > v_dias.
CONTINUE.
ENDIF.
ELSE.
* << Fim da inclusão
IF it_zycit281-nrdprod > v_dias.
CONTINUE.
ENDIF.
* >> Início da inclusão: FORM APPROPRIATE_TNG
ENDIF.
* << Fim da inclusão
CLEAR it_apr_final.
MOVE: it_zycet002-nrseq TO it_apr_final-nrseqexp ,
it_zycet002-vbeln_va TO it_apr_final-vbeln_va ,
it_zycet002-aupos TO it_apr_final-aupos ,
...
...
( it_apr_final-qtd_iorg * ( it_apr_final-perda_e / 100 ) ).
v_qtdtmp2 = v_qtdtmp2 - it_apr_final-qtd_mimp -
it_apr_final-qtd_perda_e .
it_apr_final-qtd_perda =
( it_apr_final-qtd_mimp + it_apr_final-qtd_perda_e )
* ( it_apr_final-perda / 100 ).
itab_lista_aux-qtd = itab_lista_aux-qtd -
it_apr_final-qtd_mimp - it_apr_final-qtd_perda_e.
DATA: v_nrseqdi LIKE /pws/zycit085-nrseqdi.
FREE itab_zycit246.
* >> Início da exclusão: FORM APPROPRIATE_TNG
SELECT SINGLE * FROM /pws/zycit094 "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FORM APPROPRIATE_TNG
SELECT SINGLE * FROM /pws/zycit094 "#EC CI_NOFIRST
* << Fim da inclusão
INTO /pws/zycit094
WHERE nrseq EQ it_apr_final-nrseqimp.
IF sy-subrc = 0.
* >> Início da exclusão: FORM APPROPRIATE_TNG
SELECT SINGLE nrdi dtreg dttax "#EC CI_NOFIELD
* << Fim da exclusão
* >> Início da inclusão: FORM APPROPRIATE_TNG
SELECT SINGLE nrdi dtreg dttax "#EC CI_NOFIELD
* << Fim da inclusão
FROM /pws/zycit085
...
...
i_ebeln LIKE ekko-ebeln ,
v_nrseqdi LIKE /pws/zycie085-nrseqdi,
v_tpdi LIKE /pws/zycie085-tpdi .
CLEAR: v_campo, v_valor.
GET CURSOR FIELD v_campo VALUE v_valor.
CASE v_campo.
WHEN '/PWS/ZYCEE002-NRSEQ'.
IF NOT v_valor IS INITIAL.
SET PARAMETER ID '/PWS/ZYCEP001' FIELD v_valor.
CALL TRANSACTION '/PWS/ZYCE003_E' AND
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
WHEN '/PWS/ZYCEE002-VBELN_VA'.
IF NOT v_valor IS INITIAL.
v_vbeln_va = v_valor.
SET PARAMETER ID 'AUN' FIELD v_vbeln_va.
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
WHEN '/PWS/ZYCEE002-VBELN_VF'.
IF NOT v_valor IS INITIAL.
v_vbeln_vf = v_valor.
SET PARAMETER ID 'VF' FIELD v_vbeln_vf.
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN."#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
ENDIF.
WHEN '/PWS/ZYCEE002-VBELN_VL'.
IF NOT v_valor IS INITIAL.
v_vbeln_vl = v_valor.
SET PARAMETER ID 'VL' FIELD v_vbeln_vl.
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN."#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
WHEN '/PWS/ZYCEE002-DOCNUM'.
IF NOT v_valor IS INITIAL.
v_docnum = v_valor.
SET PARAMETER ID 'JEF' FIELD v_docnum.
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'J1B3' AND SKIP FIRST SCREEN."#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'J1B3N' AND SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
WHEN 'WA_REAL_MERC-DOCNUM'.
IF NOT v_valor IS INITIAL.
v_docnum = v_valor.
SET PARAMETER ID 'JEF' FIELD v_docnum.
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'J1B3' AND SKIP FIRST SCREEN."#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
CALL TRANSACTION 'J1B3N' AND SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
WHEN '/PWS/ZYCIE282-EBELN'.
IF NOT v_valor IS INITIAL.
SELECT SINGLE ebeln FROM ekko INTO ekko
WHERE ebeln = v_valor.
IF sy-subrc EQ 0.
i_ebeln = v_valor.
SET PARAMETER ID 'BES' FIELD i_ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN."#EC CI_CALLTA
...
...
IF sy-subrc EQ 0.
i_ebeln = v_valor.
SET PARAMETER ID 'BES' FIELD i_ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN."#EC CI_CALLTA
ENDIF.
ENDIF.
WHEN '/PWS/ZYCIE282-NRSEQIMP'.
IF NOT v_valor IS INITIAL.
SET PARAMETER ID '/PWS/ZYCIP001' FIELD v_valor.
CALL TRANSACTION '/PWS/ZYCI001_E' AND
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN."#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
WHEN 'WA_REAL_MERC-NRSEQD'.
IF NOT v_valor IS INITIAL.
SET PARAMETER ID '/PWS/ZYCIP435' FIELD v_valor.
CALL TRANSACTION '/PWS/ZYCI040_E' AND
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN."#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
WHEN '/PWS/ZYCIE282-NRSEQD'.
IF NOT v_valor IS INITIAL.
SET PARAMETER ID '/PWS/ZYCIP435' FIELD v_valor.
CALL TRANSACTION '/PWS/ZYCI040_E' AND
* >> Início da exclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN."#EC CI_CALLTA
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_SELECTION
SKIP FIRST SCREEN. "#EC CI_CALLTA
* << Fim da inclusão
CLEAR ok_code.
ENDIF.
ENDCASE.
ENDFORM.
FORM collect_materials TABLES it_stpox STRUCTURE it_stpox
it_stpox2 STRUCTURE it_stpox2
it_matcat STRUCTURE it_matcat.
DATA: v_qtd LIKE it_stpox-mngko.
SORT it_stpox BY ttidx ASCENDING.
SORT it_matcat BY index ASCENDING.
...
...
ENDIF.
ENDIF.
IF v_um_rez IS INITIAL
OR v_um_ren IS INITIAL.
EXIT.
ENDIF.
p_qtd = ( p_qtd / v_um_ren ) * v_um_rez.
p_meins = v_meinsb.
ENDFORM.
FORM cob_camb.
* >> Início da exclusão: FORM COB_CAMB
DATA: v_nrseqd_temp TYPE /pws/zycit244-nrseqd.
CLEAR: v_nrseqd_temp.
SORT it_apr_final BY nrseqd.
* << Fim da exclusão
* >> Início da inclusão: FORM COB_CAMB
DATA: itab_nrseqd_temp TYPE /pws/zycit244-nrseqd OCCURS 0
WITH HEADER LINE.
REFRESH: itab_nrseqd_temp.
* << Fim da inclusão
LOOP AT it_apr_final WHERE nrseqexp EQ it_zycet002-nrseq
AND vbeln_va EQ it_zycet002-vbeln_va
AND vbeln_vl EQ it_zycet002-vbeln_vl
AND posnl EQ it_zycet002-posnl
AND nrseqimp NE space.
* >> Início da exclusão: FORM COB_CAMB
IF v_nrseqd_temp NE it_apr_final-nrseqd.
* << Fim da exclusão
* >> Início da inclusão: FORM COB_CAMB
READ TABLE itab_nrseqd_temp WITH KEY it_apr_final-nrseqd.
IF sy-subrc NE 0.
* << Fim da inclusão
v_exp_camb = v_exp_camb + it_apr_final-exp_c_cob_camb.
* >> Início da exclusão: FORM COB_CAMB
v_nrseqd_temp = it_apr_final-nrseqd.
* << Fim da exclusão
* >> Início da inclusão: FORM COB_CAMB
APPEND it_apr_final-nrseqd TO itab_nrseqd_temp.
* << Fim da inclusão
ENDIF.
v_ebelp2 = it_apr_final-ebelp.
v_imp_camb = v_imp_camb + it_apr_final-imp_s_cob_camb.
...
...
v_destino LIKE tcurc-/pws/codmo,
v_taxa LIKE /pws/zycit174-txconver,
v_taxa2 LIKE /pws/zycit174-txconver.
SELECT SINGLE /pws/codmo FROM tcurc INTO v_origem WHERE
waers = p_waersde.
IF sy-subrc EQ 0.
CLEAR v_taxa.
SELECT SINGLE txconver FROM /pws/zycit174 INTO v_taxa WHERE
codconver = v_origem AND
vigen_inicio <= p_data AND
* >> Início da exclusão: FORM VALOR_CONVERTE_IMP
vigen_fim >= p_data . "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FORM VALOR_CONVERTE_IMP
vigen_fim >= p_data . "#EC CI_NOFIRST
* << Fim da inclusão
IF sy-subrc NE 0 AND p_waersde EQ 'BRL'.
v_taxa = 1.
ENDIF.
ENDIF.
SELECT SINGLE /pws/codmo FROM tcurc INTO v_destino WHERE
waers = p_waerspara.
IF sy-subrc EQ 0.
CLEAR v_taxa2.
SELECT SINGLE txconver FROM /pws/zycit174 INTO v_taxa2 WHERE
codconver = v_destino AND
vigen_inicio <= p_data AND
* >> Início da exclusão: FORM VALOR_CONVERTE_IMP
vigen_fim >= p_data. "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FORM VALOR_CONVERTE_IMP
vigen_fim >= p_data. "#EC CI_NOFIRST
* << Fim da inclusão
ENDIF.
IF NOT v_taxa IS INITIAL AND NOT v_taxa2 IS INITIAL.
p_valor = ( p_valor * v_taxa ) / v_taxa2.
ENDIF.
ENDFORM.
FORM converte_um_ncm USING p_matnr
CHANGING p_meins
p_werks
p_qtd.
DATA: v_cod_umncm LIKE /pws/zyglt204-zum ,
...
...
IF p_werks IS INITIAL.
CLEAR p_qtd.
EXIT.
ENDIF.
CLEAR v_cod_umncm.
SELECT SINGLE a~steuc INTO v_j_1bnbm
FROM ( marc AS a INNER JOIN t001w AS b ON
a~werks EQ b~werks )
WHERE a~matnr EQ p_matnr
AND a~steuc NE space
* >> Início da exclusão: FORM CONVERTE_UM_NCM
AND b~land1 EQ t001-land1. "#EC CI_BUFFJOIN
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERTE_UM_NCM
AND b~land1 EQ t001-land1. "#EC CI_BUFFJOIN
* << Fim da inclusão
IF sy-subrc EQ 0.
SELECT SINGLE land1 /pws/zum
FROM t604f INTO (v_codpais, v_cod_umncm)
* >> Início da exclusão: FORM CONVERTE_UM_NCM
WHERE steuc = v_j_1bnbm. "#EC CI_GENBUFF
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERTE_UM_NCM
WHERE steuc = v_j_1bnbm. "#EC CI_GENBUFF
* << Fim da inclusão
ENDIF.
IF NOT v_cod_umncm IS INITIAL.
* >> Início da exclusão: FORM CONVERTE_UM_NCM
SELECT SINGLE msehi "#EC CI_NOFIELD
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERTE_UM_NCM
SELECT SINGLE msehi "#EC CI_NOFIELD
* << Fim da inclusão
FROM /pws/zyglt204 INTO (v_umncm)
WHERE zum = v_cod_umncm.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-072 text-073 v_j_1bnbm.
CLEAR p_qtd.
EXIT.
ENDIF.
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
...
...
DATA: v_conv1 TYPE /pws/zycit245-qtd_ncm,
v_conv2 TYPE /pws/zycit245-qtd_ncm.
CLEAR: v_um_rez, v_um_ren, v_codpais, v_cod_umncm, v_umncm,
v_um_rez2, v_um_ren2.
CLEAR v_cod_umncm.
SELECT SINGLE a~steuc INTO v_j_1bnbm
FROM ( marc AS a INNER JOIN t001w AS b ON
a~werks EQ b~werks )
WHERE a~matnr EQ p_matnr
AND a~steuc NE space
* >> Início da exclusão: FORM CONVERTE_UNIDADE
AND b~land1 EQ t001-land1. "#EC CI_BUFFJOIN
* << Fim da exclusão
* >> Início da inclusão: FORM CONVERTE_UNIDADE
AND b~land1 EQ t001-land1. "#EC CI_BUFFJOIN
* << Fim da inclusão
v_conv1 = 1.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv1
no_type_check = 'X'
round_sign = 'X'
unit_in = p_de
unit_out = p_para
IMPORTING
denominator = v_um_ren
...
...
it_zycit279-matnr_alt = itab_zycit433t-matnr.
MODIFY it_zycit279 TRANSPORTING matnr_alt
WHERE matnr EQ itab_zycit433t-matnr_alt
AND nrseqd EQ it_zycit247f-nrseqd.
ENDLOOP.
LOOP AT it_zycit279 WHERE nrseqd = it_zycit247f-nrseqd
AND esgotado = space
AND matnr_alt EQ itab_lista_aux-matnr.
CLEAR v_dias.
v_dias = v_dtforn - it_zycit279-dtnf.
* >> Início da inclusão: FORM APR_TF
IF /pws/zycit321-ltopc EQ '1'.
IF it_zycet002_grp-nrdprod > v_dias.
CONTINUE.
ENDIF.
ELSE.
* << Fim da inclusão
IF it_zycit281-nrdprod > v_dias.
CONTINUE.
ENDIF.
* >> Início da inclusão: FORM APR_TF
ENDIF.
* << Fim da inclusão
CLEAR it_apr_final.
MOVE: it_zycet002-nrseq TO it_apr_final-nrseqexp ,
it_zycet002-vbeln_va TO it_apr_final-vbeln_va ,
it_zycet002-aupos TO it_apr_final-aupos ,
...
...
EXCEPTIONS
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
OTHERS = 4.
ENDFORM.
FORM aprop_lote.
IF itab_zycit468[] IS INITIAL.
EXIT.
ENDIF.
* >> Início da exclusão: FORM APROP_LOTE
SELECT * FROM /pws/zycit439 INTO TABLE itab_zycit439."#EC CI_NOWHERE
* << Fim da exclusão
* >> Início da inclusão: FORM APROP_LOTE
SELECT * FROM /pws/zycit439 INTO TABLE itab_zycit439. "#EC CI_NOWHERE
* << Fim da inclusão
SELECT * FROM /pws/zycit279 INTO TABLE it_zycit279
FOR ALL ENTRIES IN itab_zycit468
WHERE nrseq EQ itab_zycit468-nrseqimp
AND ebeln EQ itab_zycit468-ebeln
AND ebelp EQ itab_zycit468-ebelp
AND docnum EQ itab_zycit468-docnumimp
AND buzei EQ itab_zycit468-buzei
AND lote EQ itab_zycit468-lote_i.
IF NOT it_zycit279[] IS INITIAL.
SELECT * FROM /pws/zycit247 INTO TABLE it_zycit247
...
...
WHERE vbeln EQ it_zycet002-vbeln_vl
AND posnr EQ it_zycet002-posnl.
LOOP AT itab_lote .
it_zycet002-lote = itab_lote-lote.
MODIFY it_zycet002 TRANSPORTING lote
WHERE vbeln_vl EQ itab_lote-vbeln
AND posnl EQ itab_lote-posnr.
ENDLOOP.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM aprop_currenty_rec_agrup.
DATA: v_apmat(1) TYPE c ,
v_diasv TYPE /pws/zycit321-dia_ant,
v_qtdaprop LIKE /pws/zycet002-fkimg ,
v_qtdbase LIKE itab_stko-bmeng,
v_error(1) TYPE c .
v_apmat = 'N'.
CLEAR: it_zycet001.
READ TABLE it_zycet001 WITH KEY nrseq = it_zycet002-nrseq.
IF it_zycet001-dtprev IS INITIAL.
CLEAR: v_errolog, it_log_erro.
CONCATENATE text-075 it_zycet002-nrseq text-077
INTO v_errolog SEPARATED BY space.
MOVE v_errolog TO it_log_erro.
APPEND it_log_erro.
EXIT.
ENDIF.
LOOP AT it_zycit247 WHERE agrup EQ it_zycet002_grp-grp
AND j_1bnbm EQ it_zycet002_grp-steuc
AND esgotado EQ ' '.
CLEAR it_zycit244.
READ TABLE it_zycit244 WITH KEY nrseqd = it_zycit247-nrseqd.
IF it_zycit244-vcto_vg IS INITIAL.
CLEAR: v_errolog, it_log_erro.
CONCATENATE text-031 it_zycit244-nrseqd text-076
INTO v_errolog SEPARATED BY space.
MOVE v_errolog TO it_log_erro.
APPEND it_log_erro.
CONTINUE.
ENDIF.
v_diasv = it_zycit244-vcto_vg - it_zycet001-dtprev.
IF v_diasv < /pws/zycit321-dia_ant.
CONTINUE.
ENDIF.
IF v_qtdaprop >= it_zycet002-fkimg .
EXIT.
ENDIF.
CLEAR: /pws/zycit421.
SELECT SINGLE * FROM /pws/zycit421
WHERE agrup EQ it_zycet002_grp-grp
AND stlal EQ it_zycit247-stlal
AND werks EQ it_zycit247-werks.
CLEAR it_zycit422. REFRESH it_zycit422.
SELECT * FROM /pws/zycit422 INTO TABLE it_zycit422
WHERE agrup EQ it_zycet002_grp-grp
AND stlal EQ it_zycit247-stlal
AND werks EQ it_zycit247-werks
AND datuv <= v_dtforn
AND datub >= v_dtforn.
PERFORM converte_unidade USING it_zycet002-matnr
it_zycet002-vrkme
it_zycit247-meins
CHANGING it_zycet002-fkimg.
it_zycet002-vrkme = it_zycit247-meins.
REFRESH itab_lista. CLEAR itab_lista.
LOOP AT it_zycit422.
IF NOT /pws/zycit421-base IS INITIAL.
it_zycit422-menge = it_zycit422-menge / /pws/zycit421-base.
ENDIF.
PERFORM converte_um_ncm USING it_zycit422-idnrk
CHANGING it_zycit422-meins
it_zycit422-werks
it_zycit422-menge.
itab_lista-matnr = it_zycit422-idnrk.
itab_lista-usagem = it_zycit422-menge.
itab_lista-meins = it_zycit422-meins.
itab_lista-qtd = it_zycit422-menge *
it_zycet002-fkimg.
APPEND itab_lista.
ENDLOOP.
IF sy-subrc EQ 0.
v_qtdbase = 1.
ELSE.
CLEAR: v_errolog, it_log_erro.
CONCATENATE text-016 it_zycet002-matnr
INTO v_errolog SEPARATED BY space.
MOVE v_errolog TO it_log_erro.
APPEND it_log_erro.
ENDIF.
v_apmat = 'S'.
v_error = 'N'.
IF it_zycit244-tipo NE 'G'.
PERFORM appropriate_tng CHANGING v_qtdaprop v_qtdbase v_error.
ENDIF.
IF v_error EQ 'S'.
CONTINUE.
ENDIF.
ENDLOOP.
IF v_apmat = 'N'.
CLEAR: v_errolog, it_log_erro.
CONCATENATE text-021 it_zycet002-matnr
INTO v_errolog SEPARATED BY space.
MOVE v_errolog TO it_log_erro.
APPEND it_log_erro.
ENDIF.
MOVE v_qtdaprop TO it_zycet002-qtdbx.
MODIFY it_zycet002.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR254O01
...
CONCATENATE wa_real_merc-dispnf '%' INTO wa_real_merc-dispnf.
TRANSLATE wa_real_merc-dispnf USING '.,' .
TRANSLATE wa_real_merc-disp USING '.,' .
wa_real_merc-saldor = it_apr_m-mengecom - it_apr_m-qtd_mimp .
IF wa_real_merc-saldor < 0.
wa_real_merc-saldor = 0.
ENDIF.
ENDIF.
ENDMODULE.
MODULE status_0006 OUTPUT.
* >> Início da inclusão: MODULE STATUS_0006
DATA: v_tipo TYPE c.
* << Fim da inclusão
LOOP AT tc_imp_ap2-cols INTO wa_cols.
IF /pws/zycit321-lote EQ space.
IF wa_cols-screen-group1 EQ 'LOT'.
wa_cols-invisible = 1.
MODIFY tc_imp_ap2-cols FROM wa_cols.
ENDIF.
ELSE.
IF wa_cols-screen-group2 EQ 'LOT'.
wa_cols-invisible = 1.
MODIFY tc_imp_ap2-cols FROM wa_cols.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: MODULE STATUS_0006
CLEAR: v_tipo.
LOOP AT it_apr_m.
READ TABLE it_zycit244
WITH KEY nrseqd = it_apr_m-nrseqd.
IF sy-subrc EQ 0 AND
it_zycit244-tipo EQ 'F'.
v_tipo = 'X'.
EXIT.
ENDIF.
ENDLOOP.
* << Fim da inclusão
LOOP AT tc_mer_ap-cols INTO wa_cols.
IF /pws/zycit321-lote EQ space.
IF wa_cols-screen-group1 EQ 'LOT'.
wa_cols-invisible = 1.
MODIFY tc_mer_ap-cols FROM wa_cols.
* >> Início da inclusão: MODULE STATUS_0006
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE STATUS_0006
IF v_tipo IS INITIAL AND
wa_cols-screen-name EQ 'WA_REAL_MERC-FORNEC'.
wa_cols-invisible = 1.
MODIFY tc_mer_ap-cols FROM wa_cols.
* << Fim da inclusão
ENDIF.
ENDLOOP.
DESCRIBE TABLE it_apr_m LINES v_linha.
CLEAR: it_apr_m.
tc_mer_ap-lines = v_linha.
* >> Início da inclusão: MODULE STATUS_0006
DESCRIBE TABLE it_apr LINES tc_imp_ap2-lines.
* << Fim da inclusão
ENDMODULE.
MODULE status_0005 OUTPUT.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR254X01
* >> Início da inclusão:
TABLES: /pws/zycit421.
* << Fim da inclusão
DATA: BEGIN OF COMMON PART a.
data: itab_zycit468 type /pws/zycit468 occurs 0 with header line.
DATA: BEGIN OF it_zycet002 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet002.
DATA: qtdbx LIKE /pws/zycet002-fkimg ,
lote type /pws/zycit468-lote_e,
mexp(1) TYPE c .
DATA: END OF it_zycet002.
DATA: BEGIN OF it_zycet001 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet001.
DATA: END OF it_zycet001.
DATA: BEGIN OF itab_zycit246 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit246.
DATA: END OF itab_zycit246.
DATA: BEGIN OF it_zycet002_grp OCCURS 0.
INCLUDE STRUCTURE /pws/zycet002.
DATA: qtdbx LIKE /pws/zycet002-fkimg,
mexp(1) TYPE c ,
* >> Início da exclusão:
grp LIKE mvke-mvgr1 .
* << Fim da exclusão
* >> Início da inclusão:
grp LIKE mvke-mvgr1 ,
nrdprod TYPE /pws/zycit423-nrdprod.
* << Fim da inclusão
DATA: END OF it_zycet002_grp.
DATA: BEGIN OF it_zycet002_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycet002.
DATA: END OF it_zycet002_aux.
DATA: BEGIN OF it_zycet002_desa OCCURS 0.
INCLUDE STRUCTURE /pws/zycet002.
DATA: qtdapr LIKE /pws/zycit283-qtd_apr,
mexp(1) TYPE c.
DATA: END OF it_zycet002_desa.
DATA: BEGIN OF it_apr OCCURS 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em MENU /PWS/ZYCID
Forecast ( Planejamento de vendas )
Composição de Drawback Isenção
Ato Concessório
Apropriação de Exportação
Apropriação Drawback Suspensão
Desapropriação Drawback Suspensão
Aprop. Susp. Intermediário-Importação/Trading Company
Desap. Susp. Intermediário-Importação/Trading Company
* >> Início da exclusão:
Apropriação Suspensão Comum por NCM
Desapropriação Suspensão Comum por NCM
* << Fim da exclusão
Vinculação de Importação
Siscomex
Entrada de Notas Fiscais (Mercado Interno)
Relatórios
Comprovação Drawback Intermediário-Importação / Comercial Exportadora
Parâmetros