Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 20/09/2011 00:00:00
Data/Hora Última Alteração: 27/09/2011 17:29:28
Descrição da Nota: DESENVOLVIMENTO PARA TRATAMENTO NOVO INCOTERM C+I
Sintoma
Desenvolvimento para tratamento novo incoterm C+I .
Solução
Feito tratamento para um novo incoterm (custo + seguro)
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11471 Data: 20/09/2011 Hora: 16:45:20
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11471
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 8.0
Pacote : 00009
Agrupamento : 00086
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01273 - 00001 - 6.0 - 00023 - AJUSTES PARA PREENCHIMENTO DE CAMPOS AO FAZER DI PELO MENU.
02435 - 00003 - 6.0 - 00025 - MOEDAS INCORRETAS NA EXIBIÇÃO DO RATEIO NA NF E NO RECEBIMENTO
05193 - 00004 - 7.0 - 00003 - VALOR FICA APENAS REALIZADO E DIFERENÇA QDO ORIGEM = FAT
06715 - 00005 - 7.0 - 00005 - VALORES DE ACRÉSCIMO E DEDUÇÃO DE DESPESAS ESTÃO INCORRETOS NA AD
07026 - 00006 - 7.0 - 00006 - ARREDONDAMENTO DA NOTA FISCAL VALORES DE IMPOSTOS X BASE DE CÁLCU
07150 - 00007 - 7.0 - 00006 - EMBARQUE COM MAIS DE 1 ITEM PEGAR DT. INICIO PARA CALCULAR VL.PLA
07550 - 00009 - 7.0 - 00007 - AJUSTES DE NAVEGABILIDADE.
07651 - 00010 - 7.0 - 00007 - NFG MOEDAS DIFERENTES EMBARQUE E PEDIDOS NÃO ENCONTRA TAXA DE CON
08231 - 00011 - 7.0 - 00009 - AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA F
10600 - 00012 - 8.0 - 00004 - BASE DO ICMS DIFERENTE DO TOTAL DA NOTA FISCAL. PROCESSO CIF, GRA
11200 - 00013 - 8.0 - 00007 - VALOR DE SEGURO ERRADO QUANDO DI POSSUI MOEDAS DIFERENTES
11428 - 00014 - 8.0 - 00008 - VARIAÇÃO CAMBIAL ERRADA PARA PROCESSOS COM ITENS EM MOEDAS DIFERE
----------------------------------------------------------------------------------------------------
DESENVOLVIMENTO PARA TRATAMENTO NOVO INCOTERM C+I
----------------------------------------------------------------------------------------------------
Palavras Chave:
TRATAMENTO - INCOTERM - C+I
----------------------------------------------------------------------------------------------------
Objetos da nota:
DOMD /PWS/ZYCID013
DTEL /PWS/ZYGLL1431
DTEL /PWS/ZYGLL1432
DTEL /PWS/ZYGLL1433
DTEL /PWS/ZYGLL1434
DTEL /PWS/ZYGLL1435
FUNC /PWS/ZYCI_RATEIO_CUSTO
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003F03
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI003TOP
REPS /PWS/MZYCI003X01
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F02
REPS /PWS/MZYCI023F03
REPS /PWS/ZYCIR006
REPS /PWS/ZYCIR035
REPS /PWS/ZYCIR145
REPT /PWS/SAPMZYCI003
TABD /PWS/ZYCIT122
TABD /PWS/ZYCIT123
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1431
CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1431
DESCRIÇÃO BREVE: "GL - Incoterm DAT"
DEFINIÇÃO
CATEGORIA DE DADOS:
(X) - CATEGORIA ELEMENTAR
(X) - DOMÍNIO XFELD
DENOM. DE CAMPO:
BREVE : 03 "DAT"
MÉDIO : 03 "DAT"
LONGA : 03 "DAT"
TÍTULO: 03 "DAT"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1432
CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1432
DESCRIÇÃO BREVE: "GL - Incoterm DAP"
DEFINIÇÃO
CATEGORIA DE DADOS:
(X) - CATEGORIA ELEMENTAR
(X) - DOMÍNIO XFELD
DENOM. DE CAMPO:
BREVE : 03 "DAP"
MÉDIO : 03 "DAP"
LONGA : 03 "DAP"
TÍTULO: 03 "DAP"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1433
CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1433
DESCRIÇÃO BREVE: "GL - Incoterm C+F"
DEFINIÇÃO
CATEGORIA DE DADOS:
(X) - CATEGORIA ELEMENTAR
(X) - DOMÍNIO XFELD
DENOM. DE CAMPO:
BREVE : 03 "C+F"
MÉDIO : 03 "C+F"
LONGA : 03 "C+F"
TÍTULO: 03 "C+F"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1434
CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1434
DESCRIÇÃO BREVE: "GL - Incoterm C+I"
DEFINIÇÃO
CATEGORIA DE DADOS:
(X) - CATEGORIA ELEMENTAR
(X) - DOMÍNIO XFELD
DENOM. DE CAMPO:
BREVE : 03 "C+I"
MÉDIO : 03 "C+I"
LONGA : 03 "C+I"
TÍTULO: 03 "C+I"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1435
CRIAR ELEMENTO DE DADOS: /PWS/ZYGLL1435
DESCRIÇÃO BREVE: "GL - Incoterm OCV"
DEFINIÇÃO
CATEGORIA DE DADOS:
(X) - CATEGORIA ELEMENTAR
(X) - DOMÍNIO XFELD
DENOM. DE CAMPO:
BREVE : 03 "OCV"
MÉDIO : 03 "OCV"
LONGA : 03 "OCV"
TÍTULO: 03 "OCV"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMD /PWS/ZYCID013
------------------------------------------------------------------------
Domínio modificado: /PWS/ZYCID013
-Valores individuais
Incluído valor fixo "C+I"
Texto incluído, idioma: PT (14 caracteres):
"Custo + Seguro"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
ebeln = itab_zycit036_aux2-ebeln AND
ebelp = itab_zycit036_aux2-ebelp AND
codigo = itab_zycit036_aux2-codigo AND
codigo NE 'II' AND
codigo NE 'IPI' AND
codigo NE 'ICMS' AND
codigo NE 'FRETEI' AND
codigo NE 'SEGURO' AND
codigo NE 'FOB' AND
codigo NE 'CIF' AND
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
codigo NE 'C+I' AND
* << Fim da inclusão
codigo NE 'C&F'.
ENDIF.
LOOP AT itab_zycit036_aux2 .
READ TABLE itab_zycit036 WITH KEY
nrseq = itab_zycit036_aux2-nrseq
ebeln = itab_zycit036_aux2-ebeln
ebelp = itab_zycit036_aux2-ebelp
codigo = itab_zycit036_aux2-codigo
nrseqori = itab_zycit036_aux2-nrseqori
.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
FORM calcula_peso.
* >> Início da exclusão: FORM CALCULA_PESO
v_tot_frete_aux LIKE /pws/zycit036-vlmov,
v_tot_acum LIKE /pws/zycit003-netpr,
v_tot_acum2 LIKE /pws/zycit003-netpr,
* << Fim da exclusão
...
...
LOOP AT itab_zycit003.
CLEAR: itab_zycit003-vlfre_fat, itab_zycit003-vlfre_aux.
MODIFY itab_zycit003.
ENDLOOP.
ENDIF.
DESCRIBE TABLE itab_zycit003 LINES v_line.
IF NOT /pws/zycie006-ratseg IS INITIAL AND
NOT /pws/zycie006-vlseg IS INITIAL AND
NOT /pws/zycie006-vlfre IS INITIAL AND
NOT /pws/zycie006-vlmerc IS INITIAL.
* >> Início da exclusão: FORM CALCULA_PESO
v_vlreal = /pws/zycie006-vlseg.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING v_vlreal.
CLEAR v_tot_acum.
CLEAR v_tot_acum2.
LOOP AT itab_zycit003.
MOVE sy-tabix TO v_tabix.
v_tot_acum = v_tot_acum + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat .
v_tot_acum2 = v_tot_acum2 + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ).
ENDLOOP.
CLEAR v_tot_vlseg.
v_vlreal = /pws/zycie006-vlseg.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING v_vlreal.
IF /pws/zycie006-ratseg = 1.
LOOP AT itab_zycit003.
IF sy-tabix = v_line.
itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.
v_tot_vlseg = v_tot_vlseg * 100.
v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.
itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.
ELSE.
itab_zycit003-vlseg_fat = ( ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat ) /
v_tot_acum * v_vlreal.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
ENDIF.
MODIFY itab_zycit003.
ENDLOOP.
ELSEIF /pws/zycie006-ratseg = 2.
LOOP AT itab_zycit003.
IF sy-tabix = v_line.
itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.
v_tot_vlseg = v_tot_vlseg * 100.
v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.
itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.
ELSE.
itab_zycit003-vlseg_fat = v_vlreal * itab_zycit003-ntgew
/ /pws/zycie006-ntgew.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
ENDIF.
MODIFY itab_zycit003.
ENDLOOP.
ELSEIF /pws/zycie006-ratseg = 3.
LOOP AT itab_zycit003.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
MODIFY itab_zycit003.
ENDLOOP.
IF v_tot_vlseg NE v_vlreal.
MESSAGE w015 WITH text-104.
ENDIF.
ELSEIF /pws/zycie006-ratseg = 4.
LOOP AT itab_zycit003.
IF sy-tabix = v_line.
itab_zycit003-vlseg_fat = /pws/zycie006-vlseg - v_tot_vlseg.
v_tot_vlseg = v_tot_vlseg * 100.
v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.
itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.
ELSE.
itab_zycit003-vlseg_fat = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) /
v_tot_acum2 * /pws/zycie006-vlseg.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
ENDIF.
MODIFY itab_zycit003.
ENDLOOP.
ELSEIF /pws/zycie006-ratseg IS INITIAL AND
/pws/zycie006-vlseg IS INITIAL.
LOOP AT itab_zycit003.
CLEAR: itab_zycit003-vlseg_fat, itab_zycit003-vlseg_aux.
MODIFY itab_zycit003.
ENDLOOP.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULA_PESO
PERFORM rateio_seguro.
ELSEIF NOT /pws/zycie006-ratseg IS INITIAL AND
NOT /pws/zycie006-vlseg IS INITIAL AND
NOT /pws/zycie006-vlmerc IS INITIAL AND
/pws/zycit031-inco1_ci EQ 'C+I' .
PERFORM rateio_seguro.
* << Fim da inclusão
ELSE.
LOOP AT itab_zycit003.
CLEAR: itab_zycit003-vlseg_fat, itab_zycit003-vlseg_aux.
MODIFY itab_zycit003.
ENDLOOP.
ENDIF.
ENDFORM.
...
...
IF sy-subrc NE 0.
MESSAGE e039 WITH text-171.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM TP_FATURA
IF /pws/zycie006-tpfatura EQ '03'
AND /pws/zycit031-inco1_ci EQ 'C+I'.
MESSAGE e039 WITH text-217 text-212.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
...
kposn = v_ebelp
kschl = itab_zycit030-kschl.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
ENDLOOP.
IF itab_konv-kschl IS INITIAL.
CLEAR: v_vlfr.
ENDIF.
itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlfr.
* >> Início da exclusão: FORM MIRO_AM_LA
IF /pws/zycit031-inco1_ci EQ 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
IF ( /pws/zycit031-inco1_ci EQ 'CIF' OR
/pws/zycit031-inco1_ci EQ 'C+I' ) .
* << Fim da inclusão
itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlsg.
ENDIF.
itab_zycit031-menge = itab_zycit003-toinv.
itab_zycit031-meins = itab_zycit003-meins.
itab_zycit031-mwskz = itab_ivaped-mwskz.
APPEND itab_zycit031.
itab_zycie033-waers = /pws/zycie006-waers.
IF NOT v_vlfr IS INITIAL.
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F03
...
* >> Início da inclusão:
form rateio_seguro.
datA: v_tot_acum LIKE /pws/zycit003-netpr,
v_tot_acum2 LIKE /pws/zycit003-netpr.
v_vlreal = /pws/zycie006-vlseg.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING v_vlreal.
CLEAR v_tot_acum.
CLEAR v_tot_acum2.
LOOP AT itab_zycit003.
MOVE sy-tabix TO v_tabix.
v_tot_acum = v_tot_acum + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat .
v_tot_acum2 = v_tot_acum2 + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ).
ENDLOOP.
CLEAR v_tot_vlseg.
v_vlreal = /pws/zycie006-vlseg.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING v_vlreal.
IF /pws/zycie006-ratseg = 1.
LOOP AT itab_zycit003.
IF sy-tabix = v_line.
itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.
v_tot_vlseg = v_tot_vlseg * 100.
v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.
itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.
ELSE.
itab_zycit003-vlseg_fat = ( ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) + itab_zycit003-vlfre_fat ) /
v_tot_acum * v_vlreal.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
ENDIF.
MODIFY itab_zycit003.
ENDLOOP.
ELSEIF /pws/zycie006-ratseg = 2.
LOOP AT itab_zycit003.
IF sy-tabix = v_line.
itab_zycit003-vlseg_fat = v_vlreal - v_tot_vlseg.
v_tot_vlseg = v_tot_vlseg * 100.
v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.
itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.
ELSE.
itab_zycit003-vlseg_fat = v_vlreal * itab_zycit003-ntgew
/ /pws/zycie006-ntgew.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
ENDIF.
MODIFY itab_zycit003.
ENDLOOP.
ELSEIF /pws/zycie006-ratseg = 3.
LOOP AT itab_zycit003.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
MODIFY itab_zycit003.
ENDLOOP.
IF v_tot_vlseg NE v_vlreal.
MESSAGE w015 WITH text-104.
ENDIF.
ELSEIF /pws/zycie006-ratseg = 4.
LOOP AT itab_zycit003.
IF sy-tabix = v_line.
itab_zycit003-vlseg_fat = /pws/zycie006-vlseg - v_tot_vlseg.
v_tot_vlseg = v_tot_vlseg * 100.
v_tot_frete_aux = trunc( v_tot_vlseg ) / 100.
itab_zycit003-vlseg_aux = v_vlreal - v_tot_frete_aux.
ELSE.
itab_zycit003-vlseg_fat = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) /
v_tot_acum2 * /pws/zycie006-vlseg.
itab_zycit003-vlseg_aux = itab_zycit003-vlseg_fat.
v_tot_vlseg = v_tot_vlseg + itab_zycit003-vlseg_fat.
ENDIF.
MODIFY itab_zycit003.
ENDLOOP.
ELSEIF /pws/zycie006-ratseg IS INITIAL AND
/pws/zycie006-vlseg IS INITIAL.
LOOP AT itab_zycit003.
CLEAR: itab_zycit003-vlseg_fat, itab_zycit003-vlseg_aux.
MODIFY itab_zycit003.
ENDLOOP.
ENDIF.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
ENDIF.
WHEN '05'.
IF screen-name = '/PWS/ZYCIE006-VLMERC' OR
screen-name = '/PWS/ZYCIE006-VLFRE' OR
screen-name = '/PWS/ZYCIE006-VLSEG'.
screen-input = '0'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN
IF /pws/zycit031-inco1_ci = 'C+I'.
CASE /pws/zycie006-tpfatura.
WHEN '01' OR '11' .
IF screen-name = '/PWS/ZYCIE006-VLFRE' .
screen-input = '0'.
CLEAR : /pws/zycie006-vlfre.
ENDIF.
WHEN '02'.
IF screen-name = '/PWS/ZYCIE006-VLMERC' OR
screen-name = '/PWS/ZYCIE006-VLSEG' .
screen-input = '0'.
CLEAR : /pws/zycie006-vlmerc, /pws/zycie006-vlseg.
ENDIF.
WHEN '03'.
IF screen-name = '/PWS/ZYCIE006-VLMERC' OR
screen-name = '/PWS/ZYCIE006-VLFRE' OR
screen-name = '/PWS/ZYCIE006-VLSEG' .
screen-input = '0'.
CLEAR : /pws/zycie006-vlmerc, /pws/zycie006-vlfre,
/pws/zycie006-vlseg.
ENDIF.
WHEN '04'.
IF screen-name = '/PWS/ZYCIE006-VLFRE' OR
screen-name = '/PWS/ZYCIE006-VLSEG'.
screen-input = '0'.
CLEAR : /pws/zycie006-vlseg, /pws/zycie006-vlfre.
ENDIF.
WHEN '05'.
IF screen-name = '/PWS/ZYCIE006-VLMERC' OR
screen-name = '/PWS/ZYCIE006-VLFRE' OR
screen-name = '/PWS/ZYCIE006-VLSEG'.
screen-input = '0'.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN
ENDCASE.
MODIFY SCREEN.
ENDIF.
ENDIF.
* << Fim da inclusão
IF screen-group3 = 'MER'.
IF /pws/zycie006-tpfatura NE '01'
AND /pws/zycie006-tpfatura NE '11'.
screen-invisible = 1.
screen-input = 0.
MODIFY SCREEN.
ELSE.
screen-invisible = 0.
SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycit001
WHERE nrseq = /pws/zycie001-nrseq.
IF screen-name EQ '/PWS/ZYCIE006-RATSEG' AND
* >> Início da exclusão: MODULE SET_SCREEN
/pws/zycit031-inco1_ci NE 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
( /pws/zycit031-inco1_ci NE 'CIF' and
/pws/zycit031-inco1_ci NE 'C+I') .
* << Fim da inclusão
screen-input = 0.
screen-invisible = 1.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE006-RATFRE' AND
( /pws/zycit031-inco1_ci = 'FOB' OR
* >> Início da exclusão: MODULE SET_SCREEN
/pws/zycit031-inco1_ci IS INITIAL ) AND
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
/pws/zycit031-inco1_ci IS INITIAL OR
/pws/zycit031-inco1_ci = 'C+I' ) AND
* << Fim da inclusão
( t001-land1 NE 'AR' AND t001-land1 NE 'CL' ) .
screen-input = 0.
screen-invisible = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDIF.
IF screen-name = '/PWS/ZYCIE006-EBENE' OR
screen-name = '/PWS/ZYCIE006-DATAPRVTSR'.
* >> Início da exclusão: MODULE SET_SCREEN
IF t035-bild1 = 'X' AND v_status_s = 1 AND
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
IF t035-bild1 = 'X' AND
v_status_s = 1 AND
* << Fim da inclusão
sy-tcode NE '/PWS/ZYCI003_M' .
screen-input = 1.
ELSE.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF NOT itab_zycit132[] IS INITIAL AND
( screen-name EQ '/PWS/ZYCIE006-DTVENCTO' OR
screen-name EQ '/PWS/ZYCIE006-DTBASE' OR
...
...
wa_cols-screen-input = '0'.
MODIFY tc_itens-cols FROM wa_cols.
ENDLOOP.
ELSEIF v_status_s = 1.
LOOP AT tc_itens-cols INTO wa_cols.
IF wa_cols-screen-group1 NE 'OUT' .
wa_cols-screen-input = '1'.
MODIFY tc_itens-cols FROM wa_cols.
ENDIF.
IF wa_cols-screen-name = '/PWS/ZYCIE003-VLFRE_FAT' AND
* >> Início da exclusão: MODULE SET_SCREEN
/pws/zycit031-inco1_ci = 'FOB' AND
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN
( /pws/zycit031-inco1_ci = 'FOB' OR
/pws/zycit031-inco1_ci = 'C+I') AND
* << Fim da inclusão
( t001-land1 NE 'AR' AND t001-land1 NE 'CL' ) .
wa_cols-invisible = 1.
MODIFY tc_itens-cols FROM wa_cols.
ELSEIF wa_cols-screen-name = '/PWS/ZYCIE003-VLSEG_FAT' AND
( /pws/zycit031-inco1_ci = 'FOB' OR
/pws/zycit031-inco1_ci = 'C&F' ).
wa_cols-invisible = 1.
MODIFY tc_itens-cols FROM wa_cols.
ELSEIF wa_cols-screen-name = '/PWS/ZYCIE003-VLSEG_FAT' OR
wa_cols-screen-name = '/PWS/ZYCIE003-VLFRE_FAT'.
...
...
MODULE set_screen_0400 OUTPUT.
LOOP AT SCREEN.
IF v_status_s = '1' AND screen-group1 = 'DET'.
screen-input = '1'.
IF screen-name = '/PWS/ZYCIE003-VLREAL' AND
/pws/zycie006-ratval = 1.
screen-input = '0'.
ENDIF.
* >> Início da exclusão: MODULE SET_SCREEN_0400
IF screen-name = '/PWS/ZYCIE003-VLFRE_FAT' AND ( /pws/zycie006-ratfre
= 'S' OR
/pws/zycie006-ratfre IS
INITIAL ).
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_0400
IF screen-name = '/PWS/ZYCIE003-VLFRE_FAT' AND
( /pws/zycie006-ratfre = 'S' OR
/pws/zycie006-ratfre IS INITIAL ).
* << Fim da inclusão
screen-input = '0'.
IF /pws/zycit031-inco1_ci = 'C&F' OR
/pws/zycit031-inco1_ci = 'CIF'.
screen-invisible = 0.
ELSE.
screen-invisible = 1.
ENDIF.
ELSEIF screen-name = '/PWS/ZYCIE003-VLFRE_FAT'.
screen-input = 1.
IF /pws/zycit031-inco1_ci = 'C&F' OR
/pws/zycit031-inco1_ci = 'CIF'.
screen-invisible = 0.
* >> Início da inclusão: MODULE SET_SCREEN_0400
ELSEIF /pws/zycit031-inco1_ci = 'C+I' .
screen-input = 0.
screen-invisible = 1.
* << Fim da inclusão
ELSE.
screen-input = 0.
screen-invisible = 1.
ENDIF.
ENDIF.
IF screen-name = '/PWS/ZYCIE003-VLSEG_FAT' AND
( /pws/zycie006-ratseg = '1' OR
/pws/zycie006-ratseg = '2' OR
/pws/zycie006-ratseg IS INITIAL ).
screen-input = '0'.
* >> Início da exclusão: MODULE SET_SCREEN_0400
IF /pws/zycit031-inco1_ci = 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN_0400
IF ( /pws/zycit031-inco1_ci = 'CIF' OR
/pws/zycit031-inco1_ci = 'C+I' ) .
* << Fim da inclusão
screen-invisible = 0.
ELSE.
screen-invisible = 1.
ENDIF.
ELSEIF screen-name = '/PWS/ZYCIE003-VLSEG_FAT'.
screen-input = 1.
IF /pws/zycit031-inco1_ci = 'CIF'.
screen-invisible = 0.
ELSE.
screen-input = 0.
...
...
SET PF-STATUS '0115'.
LOOP AT SCREEN.
IF screen-group1 EQ 'FRE'.
IF /pws/zycit031-inco1_ci EQ 'FOB'.
screen-invisible = 1.
ELSE.
screen-invisible = 0.
ENDIF.
ENDIF.
IF screen-group1 EQ 'SEG'.
* >> Início da exclusão: MODULE STATUS_0115
IF /pws/zycit031-inco1_ci EQ 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: MODULE STATUS_0115
IF ( /pws/zycit031-inco1_ci EQ 'CIF' OR
/pws/zycit031-inco1_ci EQ 'C+I' ).
* << Fim da inclusão
screen-invisible = 0.
ELSE.
screen-invisible = 1.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003TOP
...
IF /pws/zycit031-inco1_ci EQ 'FOB'.
screen-invisible = 1.
screen-active = 0.
ELSE.
screen-invisible = 0.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF screen-group1 EQ 'SEG'.
* >> Início da exclusão:
IF /pws/zycit031-inco1_ci EQ 'CIF'.
* << Fim da exclusão
* >> Início da inclusão:
IF ( /pws/zycit031-inco1_ci EQ 'CIF' or
/pws/zycit031-inco1_ci EQ 'C+I' ) .
* << Fim da inclusão
screen-invisible = 0.
screen-active = 1.
ELSE.
screen-invisible = 1.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
* >> Início da inclusão:
DATA: v_tot_frete_aux LIKE /pws/zycit036-vlmov.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
NOT itab_zycit003-qtd_itend IS INITIAL .
IF NOT itab_zycit100-vlfre IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr -
( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *
itab_zycit100-dttaxbem )
/ itab_zycit003-qtd_iten ) +
( ( itab_zycit100-vlfre - itab_zycit003-vlfre_fat *
itab_zycit100-dttaxbem )
/ itab_zycit003-qtd_itend ) .
ENDIF.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF /pws/zycit031-inco1_ci = 'C+I' AND
NOT itab_zycit003-qtd_iten IS INITIAL AND
NOT itab_zycit003-qtd_itend IS INITIAL .
IF NOT itab_zycit100-vlseg IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr -
( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *
itab_zycit100-dttaxbem )
/ itab_zycit003-qtd_iten ) +
( ( itab_zycit100-vlseg - itab_zycit003-vlseg_fat *
itab_zycit100-dttaxbem )
/ itab_zycit003-qtd_itend ) .
ENDIF.
ENDIF.
* << Fim da inclusão
ELSEIF /pws/zycit031-inco1_ci = 'CIF' AND
NOT itab_zycit003-qtd_iten IS INITIAL AND
NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit042-netpr =
( ( itab_zycit100-vlfob * itab_zycit100-dttaxbem ) +
itab_zycit100-vlfre + itab_zycit100-vlseg ) /
itab_zycit042-qtd_iten.
ENDIF.
IF sy-subrc = 0 AND /pws/zycit062-flag_icms = 'X'.
PERFORM atualiza_icms_unitario.
...
...
IF NOT itab_zycit100[] IS INITIAL.
SELECT * FROM /pws/zycit036
INTO TABLE itab_zycit036
FOR ALL ENTRIES IN itab_zycit100
WHERE nrseq = itab_zycit100-nrseq
AND ebeln = itab_zycit100-ebeln
AND ebelp = itab_zycit100-ebelp
AND origem = 'FAT'
AND ( codigo = 'FOB' OR
codigo = 'CIF' OR
* >> Início da inclusão: FORM MONTAR_CUSTO_DI
codigo = 'C+I' OR
* << Fim da inclusão
codigo = 'C&F' ).
ENDIF.
PERFORM atualiza_custos.
MOVE itab_zycit036[] TO itab_zycit036_di[].
MOVE itab_zycit036[] TO itab_zycit036_atual[].
IF v_libera = 'X' AND v_modalidade = '99'.
IF NOT itab_zycit100[] IS INITIAL.
SELECT * FROM /pws/zycit036
INTO TABLE itab_zycit036
FOR ALL ENTRIES IN itab_zycit100
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
LOOP AT itab_it.
IF /pws/zycie085-waersfob NE itab_it-waersbem.
PERFORM: calc_conv_moeda:
USING /pws/zycie085-waersfob
itab_it-waersbem
CHANGING itab_it-vlfob.
ENDIF.
MOVE-CORRESPONDING itab_it TO itab_zycit100.
APPEND itab_zycit100.
ENDLOOP.
* >> Início da inclusão: FORM SAVE_DATA
sort itab_zycit100 by NRSEQDI NRSEQ EBELN EBELP ADICAO.
* << Fim da inclusão
MODIFY /pws/zycit100 FROM TABLE itab_zycit100.
CLEAR a_ip.
LOOP AT itab_zycit100.
v_tabix = sy-tabix.
ON CHANGE OF itab_zycit100-adicao.
CLEAR a_ip.
ENDON.
IF itab_zycit100-item_adi_sisc IS INITIAL.
itab_zycit100-item_adi_sisc = a_ip = a_ip + 1.
UPDATE /pws/zycit100 SET
...
...
t_ivseg = itab_it-vlseg = ( v_cfr / ( v_tcfr ) ) * s_stvr.
v_tot_seg = ( v_cfr / ( v_tcfr ) ) * v_sgtofat.
ENDIF.
ENDIF.
IF NOT /pws/zycit000-rat_seg_fob IS INITIAL.
CASE s_inco1_ci.
WHEN 'CIF'.
t_dif_seg = /pws/zycie003-vlseg_fat - v_tot_seg .
ENDCASE.
ENDIF.
* >> Início da exclusão: FORM LOAD_ITAX
IF v_dit EQ 'N'.
* << Fim da exclusão
CASE s_inco1_ci.
WHEN 'FOB'.
t_ivadu = t_ivmle + t_ivseg + t_ivdesp + t_ivfre.
v_casasd = t_ivseg.
v_casasd2 = t_ivfre.
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.
WHEN 'C&F'.
t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + v_desp_fren.
IF NOT v_desp_fren IS INITIAL.
...
...
IF /pws/zycie085-waersfob NE itab_it-waersbem.
PERFORM: calc_conv_moeda:
USING /pws/zycie085-waersfob
itab_it-waersbem
CHANGING t_vmle2.
ENDIF.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle2 + v_casasd3 .
* >> Início da exclusão: FORM LOAD_ITAX
ENDCASE.
ELSE.
CASE s_inco1_ci.
WHEN 'FOB'.
t_ivadu = t_ivmle + t_ivseg + t_ivfre + t_ivdesp.
v_casasd = t_ivseg.
v_casasd2 = t_ivfre.
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.
WHEN 'C&F'.
IF p_tipo EQ 'A'.
t_ivmle = t_ivmle + t_ivfre.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.
t_ivadu = t_ivmle + wa_it-vlseg + t_ivdesp.
v_casasd = wa_it-vlseg.
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle + v_casasd3 + v_casasd.
ELSEIF p_tipo EQ 'I' OR p_tipo = 'T'.
t_ivmle = t_ivmle + t_ivfre.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.
t_ivadu = t_ivmle + t_ivseg + t_ivdesp + t_ivfre.
v_casasd = t_ivseg.
v_casasd2 = t_ivfre.
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
WHEN 'C+I'.
t_ivmle_d2 = t_ivmle.
t_vmle_d2 = t_vmle2 = t_vmle .
IF /pws/zycie085-waersfob NE itab_it-waersbem.
PERFORM: calc_conv_moeda:
USING /pws/zycie085-waersfob
itab_it-waersbem
CHANGING t_vmle2.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM LOAD_ITAX
WHEN 'CIF'.
IF p_tipo EQ 'A'.
t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + t_ivseg.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg.
t_ivadu = t_ivmle + t_ivdesp.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivfre + t_ivdesp.
v_casasd = t_ivfre.
* << Fim da inclusão
v_casasd3 = t_ivdesp.
* >> Início da exclusão: FORM LOAD_ITAX
v_ivadud = t_ivmle + v_casasd3.
ELSEIF p_tipo EQ 'I' OR p_tipo = 'T'.
t_ivmle_d2 = t_ivmle = t_ivmle - t_ivfre - t_ivseg.
t_vmle_d2 = t_vmle = t_vmle - v_tot_fre - v_tot_seg.
t_ivadu = t_ivmle + t_ivdesp + t_ivfre + t_ivseg.
v_casasd = t_ivseg.
v_casasd2 = t_ivfre.
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle + v_casasd3 + v_casasd + v_casasd2.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
v_ivadud = t_ivmle2 + v_casasd3 + v_casasd .
t_dif_seg = /pws/zycie003-vlseg_fat - v_tot_seg .
IF itab_zycit003-qtd_itend IS INITIAL.
/pws/zycie100a-vlfob = itab_it-vlfob = t_vmle_d2 =
t_vmle = t_vmle + t_dif_seg.
* << Fim da inclusão
ENDIF.
ENDCASE.
* >> Início da exclusão: FORM LOAD_ITAX
ENDIF.
* << Fim da exclusão
itab_it-vlfobr = t_ivmle2.
itab_it-vlmerc_ad = t_vmle2.
ENDFORM.
...
...
WHEN 'CIF'.
itab_it-vlreal_aux2 =
( ( ( itab_it-vlreal * itab_it-qtd_itenc3 ) +
itab_it-vldiffob + itab_it-vlfre_me )
/ itab_it-qtd_itenc3 ) -
( itab_it-frn / itab_it-qtd_itenc3 ) .
WHEN 'FOB'.
itab_it-vlreal_aux2 = itab_it-vlreal -
( itab_it-frn / itab_it-qtd_itenc3 ) .
* >> Início da inclusão: FORM ADIC_LOAD
WHEN 'C+I'.
itab_it-vlreal_aux2 = itab_it-vlreal .
* << Fim da inclusão
ENDCASE.
ENDIF.
APPEND itab_it TO itab_itb.
IF itab_it-qtd_itend IS INITIAL.
v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itenc3.
ELSE.
v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itendc3.
ENDIF.
IF itab_it-qtd_itend IS INITIAL.
v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_itenc3.
...
...
ELSE.
v_tval = v_tval + ( itab_it-qtd_itencacl * itab_it-vlreal ).
v_tmle = v_tmle + ( ( itab_it-qtd_itencacl * itab_it-vlreal )
* itab_it-dttaxbem ).
ENDIF.
MOVE-CORRESPONDING itab_zycit003 TO itab_itens_funcao.
APPEND itab_itens_funcao.
ENDLOOP.
v_tmle_d2 = v_tmle.
PERFORM data_sort.
* >> Início da exclusão: FORM FILL_ITABIT
IF v_difora EQ 'X'.
* << Fim da exclusão
PERFORM data_clean_seg.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
* << Fim da exclusão
IF v_dit = 'N'.
IF /pws/zycie085-mdadicao = 'S'.
/pws/zycie085-waersfob = v_waers.
LOOP AT itab_it.
itab_it-dttaxbem = /pws/zycie085-ukursfob.
itab_it-waersbem = /pws/zycie085-waersfob.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F02
...
IF s_inco1_ci EQ 'CIF'.
IF NOT v_tcif_fat IS INITIAL AND
NOT /pws/zycie085-per_seg IS INITIAL.
/pws/zycie085-vlseg = v_tcif_fat *
( /pws/zycie085-per_seg / 100 ).
PERFORM retorna_decimais USING /pws/zycie085-waersseg
CHANGING /pws/zycie085-vlseg.
ENDIF.
* >> Início da inclusão: FORM LOAD_SEVL
ELSEIF s_inco1_ci EQ 'C+I'.
IF NOT v_tval2 IS INITIAL AND
NOT /pws/zycie085-per_seg IS INITIAL.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
v_fob = v_tval2 * v_taxa .
ENDIF.
IF NOT /pws/zycie085-ukursseg IS INITIAL.
/pws/zycie085-vlseg = ( ( v_fob + s_stvr - v_desp_brl ) *
( /pws/zycie085-per_seg / 100 ) ) / /pws/zycie085-ukursseg.
ENDIF.
PERFORM retorna_decimais USING /pws/zycie085-waersseg
CHANGING /pws/zycie085-vlseg.
ENDIF.
* << Fim da inclusão
ELSE.
IF NOT v_tval2 IS INITIAL AND
NOT /pws/zycie085-per_seg IS INITIAL.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
v_fob = v_tval2 * v_taxa .
ENDIF.
v_bltofat = /pws/zycie093-prepaid + /pws/zycie093-collect -
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
PERFORM retorna_decimais USING /pws/zycie085-waersseg
CHANGING v_sgtofat .
ENDIF.
CASE s_inco1_ci.
WHEN 'C&F'.
PERFORM calc_conv_frete CHANGING v_bltofat.
v_tdif = v_tfrefat - v_bltofat.
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect - /pws/zycie093-ternacion.
PERFORM calc_conv_frete CHANGING v_bltofat.
WHEN 'CIF' .
PERFORM: calc_conv_frete CHANGING v_bltofat,
calc_conv_seg CHANGING v_sgtofat.
IF NOT v_sgtofat IS INITIAL .
PERFORM trata_decimais USING /pws/zycie085-waersseg
CHANGING v_sgtofat .
ENDIF.
v_tdif = v_tfrefat - v_bltofat.
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect - /pws/zycie093-ternacion.
PERFORM calc_conv_frete CHANGING v_bltofat.
* >> Início da inclusão: FORM CALC_INIT
WHEN 'C+I'.
PERFORM: calc_conv_seg CHANGING v_sgtofat.
IF NOT v_sgtofat IS INITIAL .
PERFORM trata_decimais USING /pws/zycie085-waersseg
CHANGING v_sgtofat .
ENDIF.
v_tdif = v_tsegfat - v_sgtofat.
* << Fim da inclusão
ENDCASE.
ENDIF.
CLEAR v_ntgew.
CLEAR v_tfrefat .
CLEAR v_ntgewd.
...
...
( s_inco1 = 'FCA' AND wa_zycit1223-fca = 'X' ) OR
( s_inco1 = 'FOB' AND wa_zycit1223-fob = 'X' ) OR
( s_inco1 = 'FAS' AND wa_zycit1223-fas = 'X' ) OR
( s_inco1 = 'CIF' AND wa_zycit1223-cif = 'X' ) OR
( s_inco1 = 'CFR' AND wa_zycit1223-cfr = 'X' ) OR
( s_inco1 = 'CPT' AND wa_zycit1223-cpt = 'X' ) OR
( s_inco1 = 'CIP' AND wa_zycit1223-cip = 'X' ) OR
( s_inco1 = 'DEQ' AND wa_zycit1223-deq = 'X' ) OR
( s_inco1 = 'DES' AND wa_zycit1223-des = 'X' ) OR
( s_inco1 = 'DAF' AND wa_zycit1223-daf = 'X' ) OR
* >> Início da exclusão: FORM VERIFY_INCO
( s_inco1 = 'DDU' AND wa_zycit1223-ddu = 'X' ).
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFY_INCO
( s_inco1 = 'DDU' AND wa_zycit1223-ddu = 'X' ) OR
( s_inco1 = 'DAT' AND wa_zycit1223-dat = 'X' ) OR
( s_inco1 = 'DAP' AND wa_zycit1223-dap = 'X' ) OR
( s_inco1 = 'C&F' AND wa_zycit1223-c_f = 'X' ) OR
( s_inco1 = 'C+I' AND wa_zycit1223-c_i = 'X' ) OR
( s_inco1 = 'OCV' AND wa_zycit1223-ocv = 'X' ) .
* << Fim da inclusão
p_inco = 'X'.
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR006
...
IF /pws/zycit085-mdadicao EQ 'N'.
LOOP AT itab_zycit036 WHERE origem EQ 'NF'.
v_index = sy-tabix.
IF itab_zycit036-codigo EQ 'FOB' OR
itab_zycit036-codigo EQ 'C&F' OR
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
itab_zycit036-codigo EQ 'C+I' OR
* << Fim da inclusão
itab_zycit036-codigo EQ 'CIF' .
IF itab_zycit036-waers_real NE /pws/zycit085-waersfob.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit036-waers_real.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
...
...
CLEAR v_itemcongela.
READ TABLE itab_zycit036_auxl WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
congelamov = 'X'.
IF sy-subrc EQ 0.
v_itemcongela = 'X'.
ENDIF.
CASE itab_zycit036-codigo.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
WHEN 'FOB' OR 'C&F' OR 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
WHEN 'FOB' OR 'C&F' OR 'CIF' or 'C+I'.
* << Fim da inclusão
IF itab_zycit036-origem = 'FAT'.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF sy-subrc = 0.
READ TABLE itab_zycit263 WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
...
...
IF /pws/zycit442-mdadicao EQ 'N'.
LOOP AT itab_zycit036 WHERE origem EQ 'NF'.
v_index = sy-tabix.
IF itab_zycit036-codigo EQ 'FOB' OR
itab_zycit036-codigo EQ 'C&F' OR
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
itab_zycit036-codigo EQ 'C+I' OR
* << Fim da inclusão
itab_zycit036-codigo EQ 'CIF' .
IF itab_zycit036-waers_real NE /pws/zycit442-waersfob.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit036-waers_real.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
...
...
itab_zycit036-waers_real = /pws/zycit442-waersfob.
ENDIF.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
ENDLOOP.
CLEAR : /pws/zycit174, v_moeda.
LOOP AT itab_zycit036 WHERE origem EQ 'FAT'.
v_index = sy-tabix.
IF itab_zycit036-codigo EQ 'FOB' OR
itab_zycit036-codigo EQ 'C&F' OR
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
ITAB_ZYCIT036-CODIGO EQ 'C+I' OR
* << Fim da inclusão
itab_zycit036-codigo EQ 'CIF' .
IF itab_zycit036-waers_real NE /pws/zycit442-waersfob.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit036-waers_real.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
...
...
CLEAR v_itemcongela.
READ TABLE itab_zycit036_auxl WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
congelamov = 'X'.
IF sy-subrc EQ 0.
v_itemcongela = 'X'.
ENDIF.
CASE itab_zycit036-codigo.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
WHEN 'FOB' OR 'C&F' OR 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
WHEN 'FOB' OR 'C&F' OR 'CIF' OR 'C+I'.
* << Fim da inclusão
IF itab_zycit036-origem = 'FAT'.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF sy-subrc = 0.
READ TABLE itab_zycit263 WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR035
...
MOVE itab_zycit085 TO /pws/zycit085.
ENDIF.
READ TABLE itab_zycit094 WITH KEY nrseq = it_desp-nrseq .
IF sy-subrc EQ 0.
MOVE itab_zycit094 TO /pws/zycit094.
ENDIF.
READ TABLE itab_zycit093 WITH KEY nrseqce = itab_zycit094-nrseqce.
IF sy-subrc EQ 0.
MOVE itab_zycit093 TO /pws/zycit093.
ENDIF.
* >> Início da exclusão: FORM CRIA_DESPESAS
IF /pws/zycit031-inco1_ci NE 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
IF ( /pws/zycit031-inco1_ci NE 'CIF' and
/pws/zycit031-inco1_ci NE 'C+I' ) .
* << Fim da inclusão
PERFORM entra_despesa USING it_desp 'SEGURO' it_desp-vlseg
/pws/zycit085-waersseg 0 CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING itab_zycit036-vlreal.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
* >> Início da exclusão: FORM CRIA_DESPESAS
IF /pws/zycit031-inco1_ci EQ 'FOB'.
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
IF /pws/zycit031-inco1_ci EQ 'FOB' or
/pws/zycit031-inco1_ci eq 'C+I' .
* << Fim da inclusão
PERFORM entra_despesa USING it_desp 'FRETEI' it_desp-vlfre
/pws/zycit093-waersfre 0 CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING itab_zycit036-vlreal.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
...
...
DELETE itab_zycit030 WHERE codigo = 'CIF'
OR codigo = 'C&F'.
ELSEIF /pws/zycit031-inco1_ci EQ 'C&F'.
DELETE itab_zycit030 WHERE codigo = 'FOB'
OR codigo = 'CIF'
OR codigo = 'FRETEI'.
ELSEIF /pws/zycit031-inco1_ci EQ 'CIF'.
DELETE itab_zycit030 WHERE codigo = 'C&F'
OR codigo = 'FOB'
OR codigo = 'FRETEI'
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
OR codigo = 'SEGURO'.
ELSEIF /pws/zycit031-inco1_ci EQ 'C+I'.
DELETE itab_zycit030 WHERE codigo = 'C&F'
OR codigo = 'FOB'
OR codigo = 'CIF'
* << Fim da inclusão
OR codigo = 'SEGURO'.
ENDIF.
FREE itab_zycit030_aux.
CLEAR v_ebeln.
IF /pws/zycie001-regime EQ '14' AND
/pws/zycie001-tpdecl EQ 'DI'.
IF NOT it_desp[] IS INITIAL.
SELECT ebeln ebelp menge FROM ekpo
INTO TABLE itab_ekpo FOR ALL ENTRIES IN it_desp
WHERE ebeln EQ it_desp-ebeln
...
...
ebelp = itab_zycit030_aux-ebelp.
itab_zycit036_plan-nrseq = itab_zycit030_aux-nrseq.
itab_zycit036_plan-embarca = itab_zycit001-embarca.
itab_zycit036_plan-bukrs = itab_zycit001-bukrs.
itab_zycit036_plan-werks = itab_zycit003-werks.
itab_zycit036_plan-waers = itab_zycit001-waers.
IF itab_zycit003-waers NE itab_zycit001-waers AND
NOT itab_zycit030_aux-valor IS INITIAL.
IF itab_zycit030_aux-codigo EQ 'FOB' OR
itab_zycit030_aux-codigo EQ 'C&F' OR
* >> Início da exclusão: FORM CUSTEANDO_PLANEJADO
itab_zycit030_aux-codigo EQ 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
itab_zycit030_aux-codigo EQ 'CIF' or
itab_zycit030_aux-codigo EQ 'C+I'.
* << Fim da inclusão
v_valor = itab_zycit003-netpr.
v_data = /pws/zycie001-dtinicio.
IF /pws/zycie001-dtinicio IS INITIAL.
v_data = itab_zycit001-dtinicio.
ENDIF.
ELSE.
v_valor = itab_zycit030_aux-valor.
v_data = sy-datlo.
ENDIF.
PERFORM converter_moeda(/pws/sapmzyci010) USING
...
...
PERFORM converter_moeda(/pws/sapmzyci010)
USING v_valor
/pws/zycbt007-waersb
itab_zycit001-waers
v_data
CHANGING v_valor.
ENDIF.
IF v_valor NE 0.
IF itab_zycit030_aux-codigo EQ 'FOB' OR
itab_zycit030_aux-codigo EQ 'C&F' OR
* >> Início da exclusão: FORM CUSTEANDO_PLANEJADO
itab_zycit030_aux-codigo EQ 'CIF'.
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
itab_zycit030_aux-codigo EQ 'CIF' or
itab_zycit030_aux-codigo eq 'C+I' .
* << Fim da inclusão
itab_zycit030_aux-valor = v_valor * itab_zycit003-qtd_iten.
ELSE.
itab_zycit030_aux-valor = v_valor.
ENDIF.
ENDIF.
ENDIF.
itab_zycit036_plan-ebeln = itab_zycit030_aux-ebeln.
itab_zycit036_plan-ebelp = itab_zycit030_aux-ebelp.
itab_zycit036_plan-codmod = itab_zycit030_aux-codmod.
itab_zycit036_plan-codigo = itab_zycit030_aux-codigo.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR145
...
ebelp = itab_zycit036-ebelp.
MOVE: itab_material-matnr TO i_final-matnr.
i_final-waers = itab_zycit036-waers_real.
IF v_programa NE 'REC'.
MOVE: itab_zycit036-vlreal TO i_final-valor.
IF itab_zycit036-origem = 'NF' AND
( itab_zycit036-codigo = 'FRETEI' OR
itab_zycit036-codigo = 'SEGURO' OR
itab_zycit036-codigo = 'C&F' OR
itab_zycit036-codigo = 'CIF' OR
* >> Início da inclusão: FORM MONTA_FINAL
itab_zycit036-codigo = 'C+I' OR
* << Fim da inclusão
itab_zycit036-codigo = 'FOB' ).
IF itab_zycit036-codigo = 'FRETEI'.
i_final-valor =
( i_final-valor * /pws/zycit085-ukursfre ) .
i_final-waers = /pws/zycbt007-waersb.
ELSEIF itab_zycit036-codigo = 'SEGURO'.
i_final-valor =
( i_final-valor * /pws/zycit085-ukursseg ) .
i_final-waers = /pws/zycbt007-waersb.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI003
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 212
Texto: (21 caracteres)
"for this invoice type"
Comprimento máximo: 25
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 217
Texto: (18 caracteres)
"Incoterm not valid"
Comprimento máximo: 20
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 217
Texto: (17 caracteres)
"Incoterm inválido"
Comprimento máximo: 20
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT122
Gerar novamente a visão de atualização da tabela.
Na SE54, escolher opção Objetos gerados -> Criar/modificar
Clicar no lápis - selecionar todas as opções e dar enter.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT123
Gerar novamente a visão de atualização da tabela.
Na SE54, escolher opção Objetos gerados -> Criar/modificar
Clicar no lápis - selecionar todas as opções e dar enter.