Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DA
Data/Hora da Publicação: 10/04/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:41:17
Descrição da Nota: TRATAMENTO DE REGIME TRIBUTÁRIO PRÓPRIO PARA O ICMS E PIS/COFINS NA DA.
Sintoma
Para os processos com suspensão de impostos, o cliente poderá optar se a base de ICMS deverá ser por
dentro ou não, ou seja, o valor do ICMS suspenso poderá ser somado na base de cálculo de ICMS.
Poderá ser utilizado o parâmetro /PWS/ZYCIT062 para o ajuste.
Este desenvolvimento valerá para a DI e DA.
Solução
Atualizado o programa da DI e da DA para olhar a tabela /pws/zycit062
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03425 Data: 10/04/2007 Hora: 17:45:48
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03425
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00164
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02861 - 00003 - 6.0 - 00026 - NF PARA PROCESSO DE RECOF
02962 - 00001 - 6.0 - 00026 - DA PARA ESTORNAR PAGAMENTO ANTECIPADO NA FATURA
03158 - 00002 - 6.0 - 00026 - DI E DA COM PARAMETRO DA 062
----------------------------------------------------------------------------------------------------
TRATAMENTO DE REGIME TRIBUTÁRIO PRÓPRIO PARA O ICMS E PIS/COFINS NA DA.
----------------------------------------------------------------------------------------------------
Palavras Chave:
REGIME TRIBUTÁRIO - ICMS - PIS/COFINS - DA
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI070 0340
DYNP /PWS/SAPMZYCI070 0345
DYNP /PWS/SAPMZYCI070 0346
DYNP /PWS/SAPMZYCI070 0430
DYNP /PWS/SAPMZYCI070 0433
DYNP /PWS/SAPMZYCI070 0435
RELE F6PK901198 20070410 174830 PWSCIQA
REPS /PWS/MZYCI070F01
REPS /PWS/MZYCI070F03
REPS /PWS/MZYCI070F05
REPS /PWS/MZYCI070I01
REPS /PWS/MZYCI070O01
REPS /PWS/MZYCI070TOP
REPS /PWS/MZYCI070X01
REPT /PWS/SAPMZYCI070
TABD /PWS/ZYCIT443
TABD /PWS/ZYCIT451
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI070 0340
*Segue download da tela 340
*<<Inicio Download
****************************************************************
* THIS FILE IS GENERATED BY THE SCREEN PAINTER. *
* NEVER CHANGE IT MANUALLY, PLEASE ! *
****************************************************************
%_DYNPRO
/PWS/SAPMZYCI070
0340
46C
40
%_HEADER
/PWS/SAPMZYCI070 0340I0340 20110192 35 0 0 20110 0G P
20070410150225
%_DESCRIPTION
Adi - Tributos
%_FIELDS
TS_ATRIB
1100800000000 1 2J101 1 1 20I 20110
TAB_II
CHAR 40000083000 1 1I101 1 1 0P 0 0102SS_TRIB1
I.I.
PFC_II
TAB_IPI
CHAR 60000083000 1 2I101 1 1 0P 0 0103SS_TRIB2
I.P.I.
PFC_IPI
TAB_PISCOFI
CHAR 100000003000 1 3I101 1 1 0P 0 0104SS_TRIB6
Pis/Cofins
PFC_PISC
TAB_AD
CHAR 110000083000 1 4I101 1 1 0P 0 0105SS_TRIB4
Antidumping
PFC_AD
TAB_CALC
CHAR 80000083000 1 5I101 1 1 0P 0 0106SS_TRIB5
Cálculos
PFC_CALC
SS_TRIB5
10800C0000000 3 3I101 0 0 17B 3 3107
SS_TRIB4
10800C0000000 3 3I101 0 0 17B 3 3108
SS_TRIB6
10800C0003000 3 3I101 0 0 17B 3 3109
SS_TRIB2
10800C0000000 3 3I101 0 0 17B 3 3110
SS_TRIB1
10800C0000000 3 3I101 0 0 17B 3 3111
CHAR 208010080000255 1O 0 0 0 0 0 0
____________________
%_FLOWLOGIC
process before output.
call subscreen: ss_trib1 including syst-cprog '0341',
ss_trib2 including syst-cprog '0342',
* ss_trib3 including syst-cprog '0343',
ss_trib4 including syst-cprog '0344',
ss_trib5 including syst-cprog '0345' ,
ss_trib6 including syst-cprog '0346'.
process after input.
call subscreen: ss_trib1,
ss_trib2,
* ss_trib3,
ss_trib4,
ss_trib5,
ss_trib6.
%_PARAMS
*<<Fim download
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI070 0345
*<<Inicio download
****************************************************************
* THIS FILE IS GENERATED BY THE SCREEN PAINTER. *
* NEVER CHANGE IT MANUALLY, PLEASE ! *
****************************************************************
%_DYNPRO
/PWS/SAPMZYCI070
0345
46C
40
%_HEADER
/PWS/SAPMZYCI070 0345I0345 16 99192 35 0 0 16 99 0G P
20070410163127
%_DESCRIPTION
Adi - Trib. Cálculos
%_FIELDS
FRM01I
CHAR 970000003000 1 4 0 0 0 4R 0 0101
I.I.____________________________________________________________________________________________
TXT01
CHAR 200000083000 2 6 0 0 0 0 0 0
Valor_Calculado_____
TXT02
CHAR 200000083000 2 29 0 0 0 0 0 0
Valor_Calc.Reduzido_
TXT03
CHAR 200000083000 2 55 0 0 0 0 0 0
Valor_Devido________
TXT04
CHAR 200000083000 2 79 0 0 0 0 0 0
Valor_a_Recolher____
A_IITCALC
DEC 208020883000 3 6 0 0 0 0 0 0
____________________
A_IITREDU
DEC 208020883000 3 29 0 0 0 0 0 0
____________________
A_IITDEVI
DEC 208020883000 3 55 0 0 0 0 0 0
____________________
A_IITRECO
DEC 208020883000 3 79 0 0 0 0 0 0
____________________
FRM02
CHAR 470000083000 5 4 0 0 0 4R 0 0102
I.P.I.________________________________________
FRM03
CHAR 480000083000 5 53 0 0 0 4R 0 0103
Antidumping____________________________________
TXT05
CHAR 200000083000 6 6 0 0 0 0 0 0
Valor_Devido________
TXT06
CHAR 200000083000 6 29 0 0 0 0 0 0
Valor_a_Recolher____
TXTIC1
CHAR 190000083000 6 55 0 0 0 0 0 0
Valor_Devido_______
TXT08
CHAR 160000083000 6 79 0 0 0 0 0 0
Valor_a_Recolher
A_IPITDEVI
DEC 208020883000 7 6 0 0 0 0 0 0
____________________
A_IPITRECO
DEC 208020883000 7 29 0 0 0 0 0 0
____________________
A_ADDEVI
DEC 208020883000 7 55 0 0 0 0 0 0
____________________
A_ADRECO
DEC 208020883000 7 79 0 0 0 0 0 0
____________________
FRM4
CHAR 970000003000 9 4 0 0 0 4R 0 0104
Pis/Pasep_______________________________________________________________________________________
TXT9
CHAR 200000083000 10 6 0 0 0 0 0 0
Valor_Calculado_____
TXT10
CHAR 200000083000 10 29 0 0 0 0 0 0
Valor_Calc.Reduzido_
TXT11
CHAR 200000083000 10 55 0 0 0 0 0 0
Valor_Devido________
TXT12
CHAR 200000083000 10 79 0 0 0 0 0 0
Valor_a_Recolher____
A_PISTCALC
DEC 208020883000 11 6 0 0 0 0 0 0
____________________
A_PISTREDU
DEC 208020883000 11 29 0 0 0 0 0 0
____________________
A_PISTDEVI
DEC 208020883000 11 55 0 0 0 0 0 0
____________________
A_PISTRECO
DEC 208020883000 11 79 0 0 0 0 0 0
____________________
FRM5
CHAR 970000003000 13 4 0 0 0 4R 0 0106
Cofins__________________________________________________________________________________________
TXT13
CHAR 200000083000 14 6 0 0 0 0 0 0
Valor_Calculado_____
TXT14
CHAR 200000083000 14 29 0 0 0 0 0 0
Valor_Calc.Reduzido_
TXT15
CHAR 200000083000 14 55 0 0 0 0 0 0
Valor_Devido________
TXT16
CHAR 200000083000 14 79 0 0 0 0 0 0
Valor_a_Recolher____
A_COFTCALC
DEC 208020883000 15 6 0 0 0 0 0 0
____________________
A_COFTREDU
DEC 208020883000 15 29 0 0 0 0 0 0
____________________
A_COFTDEVI
DEC 208020883000 15 55 0 0 0 0 0 0
____________________
A_COFTRECO
DEC 208020883000 15 79 0 0 0 0 0 0
____________________
CHAR 208010080000255 1O 0 0 0 0 0 0
____________________
%_FLOWLOGIC
process before output.
process after input.
%_PARAMS
*<<Fim download
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI070 0346
*<<Inicio download
****************************************************************
* THIS FILE IS GENERATED BY THE SCREEN PAINTER. *
* NEVER CHANGE IT MANUALLY, PLEASE ! *
****************************************************************
%_DYNPRO
/PWS/SAPMZYCI070
0346
46C
40
%_HEADER
/PWS/SAPMZYCI070 0346I0346 17 82192 35 0 0 17 82 0G P
20070410152305
%_DESCRIPTION
Adi - Trib - PIS/COFINS
%_FIELDS
TXT_ALIQ
0CHAR 160000003000 1 12 0 0 0 0 0 0
Aliquota_do_ICMS
/PWS/ZYCIE003-ADVALICMS
PDEC 8A020907000 1 29 0 0 0 0 6 2
____,__V
TXT_BASECALC
0CHAR 150000003000 1 41 0 0 0 0 0 0
Base_de_Cálculo
A_BASEPC
PDEC 208000803000 1 57 0 0 0 0 0 0
____________________
CHAR 800000003000 2 4 0 0 0 8R 0 0101
_______________________________________________________________________________
TXTREDBC
0CHAR 260000003000 3 5 0 0 0 0 0 0
Redução_da_Base_de_Cálculo
WA_IT-REDPISCOFI
CCHAR 18000813008 3 33 0 0 0 0C 1 0102
AC _
RED_BC
TXTRED
CHAR 110000083000 4 5 0 0 0 0 7 0 0
Redução_(%)
X
WA_IT-PERCREDUZPC
PDEC 88020903000 4 26 0 0 0 0 7 6 2
AC ____,__V
TXTFUN_REDUCAO
CHAR 160000083000 5 5 0 0 0 0 7 0 0
Fundamento_Legal
X
WA_IT-CODREDPISCOFI
CCHAR 280008C7008 5 26 0 0 0 0 7 2 0
/PWS/ZYCIA177
AC __
T_FUNDES_REDUCAO
CHAR1208100883300 5 29 0 0 0 53 7 0 0
____________________________________________________________________________________________________
____________________
TXTREG
CHAR 200000083000 7 5 0 0 0 0 7 0 0
Regime_de_Tributação
X
WA_IT-CODREGTRIPISCOFI
CCHAR 128000847008 7 26 0 0 0 28 1 0
____________
DL
TXTFUN_REGTRI
0CHAR 160000003000 8 5 0 0 0 0 0 0
Fundamento_Legal
WA_IT-CODFUNLEGPISCOFI
CCHAR 280008C7008 8 26 0 0 0 0 7 2 0
/PWS/ZYCIA177
AC __
T_FUNDES_REGTRI
CHAR1208100883300 8 29 0 0 0 53 7 0 0
____________________________________________________________________________________________________
____________________
FRM03
CHAR 390000003000 10 4 0 0 0 8R 0 0103
PIS_-_Alíquota________________________
FRM04
CHAR 390000003000 10 45 0 0 0 8R 0 0104
COFINS_-_Alíquota_____________________
/PWS/ZYCIE443A-BASEPIS
0CHAR 103000003000 11 5 0 0 0 0 0 0
Ad_Valorem
WA_IT-ADVALPIS
PDEC 88020803000 11 33 0 0 0 0 0 0
____,__V
/PWS/ZYCIE443A-BASECOFINS
0CHAR 103000003000 11 46 0 0 0 0 0 0
Ad_Valorem
WA_IT-ADVALCOFINS
PDEC 88020803000 11 74 0 0 0 0 0 0
____,__V
/PWS/ZYCIE443A-ALIQPIS
0CHAR 83000103000 12 5 0 0 0 0 0 0
Reduzida
T_REDUZPIS
PDEC 88020907000 12 33 0 0 0 0 6 2
____,__V
/PWS/ZYCIE443A-ALIQCOF
0CHAR 83000103000 12 46 0 0 0 0 0 0
Reduzida
T_REDUZCOFI
PDEC 88020907000 12 74 0 0 0 0 6 2
____,__V
/PWS/ZYCIE443A-ADVALPIS
0CHAR 193000103000 13 5 0 0 0 0 0 0
Alíquota_Específica
T_ESPECIPIS
PDEC 88020907000 13 33 0 0 0 0 6 2
AC ____,__V
/PWS/ZYCIE443A-ADVALCOFINS
0CHAR 193000103000 13 46 0 0 0 0 0 0
Alíquota_Específica
T_ESPECICOF
PDEC 88020907000 13 74 0 0 0 0 6 2
AC ____,__V
/PWS/ZYCIE443A-BASRED
0CHAR 173000103000 14 5 0 0 0 0 0 0
Unidade_de_Medida
X
T_UMPIS
CCHAR 28000907000 14 39 0 0 0 0 6 2
AC __
/PWS/ZYCIE443A-UNIT_MEINS
0CHAR 173000003000 14 46 0 0 0 0 0 0
Unidade_de_Medida
X
T_UMCOFI
CCHAR 28000907000 14 80 0 0 0 0 6 2
AC __
TXT9
0CHAR 150000003000 16 5 0 0 0 0 0 0
Qtd._na_Unidade
V_QTD_PIS
PDEC 178020803000 16 24 0 0 0 0 0 0
_________________
TXT10
0CHAR 150000003000 16 46 0 0 0 0 0 0
Qtd._na_Unidade
V_QTD_COF
PDEC 178020803000 16 65 0 0 0 0 0 0
_________________
CHAR 208010000000255 1O 0 0 0 0 0 0
____________________
%_FLOWLOGIC
PROCESS BEFORE OUTPUT.
* MODULE STATUS_0346.
*
PROCESS AFTER INPUT.
MODULE load_piscofins.
%_PARAMS
*<<Fim download
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI070 0430
*<<Inicio download
****************************************************************
* THIS FILE IS GENERATED BY THE SCREEN PAINTER. *
* NEVER CHANGE IT MANUALLY, PLEASE ! *
****************************************************************
%_DYNPRO
/PWS/SAPMZYCI070
0430
46C
40
%_HEADER
/PWS/SAPMZYCI070 0430I0430 19119192 35 0 0 27120 0G P
20070410153821
%_DESCRIPTION
DI - Itens -Tributos
%_FIELDS
TS_ITRIB
1180800000000 1 3J101 1 1 19I 19118
TAB_II
CHAR 40000083000 1 1I101 1 1 0P 0 0102SS_III
I.I.
PFC_T1
TAB_IPI
CHAR 60000083000 1 2I101 1 1 0P 0 0103SS_IIPI
IPI I.P.I.
PFC_T2
TAB_PISCOFINS
CHAR 100000003000 1 3I101 1 1 0P 0 0104SS_PISCOFINS
PIS/COFINS
PFC_T5
TAB_ICMS
CHAR 230000083000 1 4I101 1 1 0P 0 0105SS_IICMS
I.C.M.S.e_Contribuições
PFC_T3
TAB_ANTIDUMP
CHAR 110000083000 1 5I101 1 1 0P 0 0106SS_IDUMP
Antidumping
PFC_T4
SS_IDUMP
11600C0000000 3 4I101 0 0 16B 3 3107
SS_IICMS
11600C0000000 3 4I101 0 0 16B 3 3108
SS_PISCOFINS
11600C0003000 3 4I101 0 0 16B 3 3109
SS_IIPI
11600C0000000 3 4I101 0 0 16B 3 3110
SS_III
11600C0000000 3 4I101 0 0 16B 3 3111
CHAR 208010080000255 1O 0 0 0 0 0 0
____________________
%_FLOWLOGIC
process before output.
call subscreen: ss_iii including syst-cprog '0431',
ss_iipi including syst-cprog '0432',
ss_iicms including syst-cprog '0433',
ss_idump including syst-cprog '0434',
ss_piscofins including syst-cprog '0435'.
process after input.
call subscreen: ss_iii,
ss_iipi,
ss_iicms,
ss_idump,
ss_piscofins.
%_PARAMS
*<<Fim download
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI070 0433
*<<Inicio download
****************************************************************
* THIS FILE IS GENERATED BY THE SCREEN PAINTER. *
* NEVER CHANGE IT MANUALLY, PLEASE ! *
****************************************************************
%_DYNPRO
/PWS/SAPMZYCI070
0433
46C
40
%_HEADER
/PWS/SAPMZYCI070 0433I0433 9 97192 35 0 0 9101 0G P
20070410172504
%_DESCRIPTION
DI - Itens -Trib. ICMS
%_FIELDS
FRM02
CHAR 300000003000 1 2 0 0 0 9R 0 0101
I.C.M.S._____________________
TXTBASII
0CHAR 100000003000 2 3 0 0 0 0 0 0
Base_Cálc.
X
T_ICMSBS
PDEC 168020803000 2 14 0 0 0 0 0 0
________________
%#AUTOTEXT001
0CHAR 140000003000 2 35 0 0 0 0 0 0
Reg.Tributário
/PWS/ZYCIE443A-CODREGTRIICMS
CCHAR 2B0008C4008 2 53 0 0 0 28 1 0
AC __
XDL
TXTALI
0CHAR 150000003000 3 3 0 0 0 0 0 0
Alíquota_ICMS__
X
/PWS/ZYCIE443A-ALIQICMS
PDEC 8A020907000 3 22 0 0 0 0 6 2
____,__V
/PWS/ZYCIE443A-CODFUNLEGICMS
0CHAR 163000003000 3 35 0 0 0 0 0 0
Fundamento_Legal
/PWS/ZYCIE443A-CODFUNLEGICMS
CCHAR 2A000804000 3 53 0 0 0 0 2 0
AC __
X
T_FUNDES_ICMS
CCHAR 428000803100 3 57 0 0 0 0 0 0
__________________________________________
X
/PWS/ZYCIE443A-ADVALICMS
0CHAR 153000003000 4 3 0 0 0 0 0 0
Ad_Valorem_ICMS
X
/PWS/ZYCIE443A-ADVALICMS
PDEC 8A020907000 4 22 0 0 0 0 6 2
AC ____,__V
/PWS/ZYCIE443A-BASRED
0CHAR 163000003000 5 3 0 0 0 0 0 0
BC_ICMS_Reduzida
X
/PWS/ZYCIE443A-BASRED
PDEC 8A020907000 5 22 0 0 0 0 6 2
AC ____,__V
TXT_ICMS_DIF
0CHAR 130000003000 6 3 0 0 0 0 0 0
ICMS_Diferido
/PWS/ZYCIE443A-ICMS_DIF
CCHAR 1B000803000 6 22 0 0 0 0C 1 0102
AC _
ICMS_DIF
TDFS
0CHAR 110000003000 8 3 0 0 0 0 0 0
Vl.Recolher
X
T_ICMS
PDEC 168020807000 8 15 0 0 0 0 0 0
________________
CHAR 208010000000255 1O 0 0 0 0 0 0
____________________
%_FLOWLOGIC
PROCESS BEFORE OUTPUT.
MODULE: set_screen_padrao.
PROCESS AFTER INPUT.
* CHAIN.
* FIELD: /pws/zycie443a-advalicms,
* /pws/zycie443a-basred ,
* /pws/zycie443a-icms_dif,
* t_pisbs ,
* /pws/zycie443a-advalpis ,
* /pws/zycie443a-basredpis ,
* t_cofinsbs ,
* /pws/zycie443a-advalcofins ,
* /pws/zycie443a-basredcof
* MODULE calc_vicms ON CHAIN-REQUEST.
* ENDCHAIN.
FIELD : /pws/zycie443a-codregtriicms,
/pws/zycie443a-codfunlegicms
MODULE load_fun_icms .
CHAIN.
FIELD: /pws/zycie443a-advalicms,
/pws/zycie443a-basred ,
/pws/zycie443a-icms_dif,
/pws/zycie443a-codregtriicms
MODULE calc_vicms ON CHAIN-REQUEST.
ENDCHAIN.
MODULE load_fun_icms .
%_PARAMS
*<<Fim download
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI070 0435
*<<Inicio download
****************************************************************
* THIS FILE IS GENERATED BY THE SCREEN PAINTER. *
* NEVER CHANGE IT MANUALLY, PLEASE ! *
****************************************************************
%_DYNPRO
/PWS/SAPMZYCI070
0435
46C
40
%_HEADER
/PWS/SAPMZYCI070 0435I0435 16 86192 35 0 0 16 86 0G P
20070410140502
%_DESCRIPTION
DI - Itens -Trib. PIS/COFINS
%_FIELDS
FRM05
CHAR 840000003000 1 4 0 0 0 8R 0 0101
___________________________________________________________________________________
TXTREDBC
0CHAR 260000003000 2 5 0 0 0 0 0 0
Redução_da_Base_de_Cálculo
/PWS/ZYCIE443A-REDPISCOFI
CCHAR 1A000810008 2 33 0 0 0 0C 1 0102
AC _
X
RED_BC
TXTRED
CHAR 110000083000 3 5 0 0 0 0 0 0
Redução_(%)
X
/PWS/ZYCIE443A-PERCREDUZPC
PDEC 88020900000 3 26 0 0 0 0 6 2
AC ____,__V
TXTFUN_REDUCAO
CHAR 160000083000 4 5 0 0 0 0 0 0
Fundamento_Legal
X
/PWS/ZYCIE443A-CODREDPISCOFI
CCHAR 280008C4008 4 32 0 0 0 0 2 0
/PWS/ZYCIA177
AC __
T_FUNDES_REDUCAO
CHAR1208100883300 4 35 0 0 0 51 0 0
____________________________________________________________________________________________________
____________________
TXTREG
CHAR 60000083000 6 5 0 0 0 0 0 0
Código
X
/PWS/ZYCIE443A-CODREGTRIPISCOFI
CCHAR 12B000844008 6 26 0 0 0 28 1 0
AC ____________
XDL
TXTFUN_REGTRI
0CHAR 160000003000 7 5 0 0 0 0 0 0
Fundamento_Legal
/PWS/ZYCIE443A-CODFUNLEGPISCOFI
CCHAR 280008C4008 7 26 0 0 0 0 2 0
__
T_FUNDES_REGTRI
CHAR1208100883300 7 29 0 0 0 57 0 0
____________________________________________________________________________________________________
____________________
FRM03
CHAR 410000003000 9 4 0 0 0 8R 0 0105
PIS_____________________________________
FRM04
CHAR 410000003000 9 47 0 0 0 8R 0 0103
COFINS__________________________________
/PWS/ZYCIE443A-BASEPIS
0CHAR 153000003000 10 5 0 0 0 0 0 0
Base_de_Cálculo
X
T_PISBS
PDEC 168020800000 10 27 0 0 0 0 0 0
AC ________________
/PWS/ZYCIE443A-BASECOFINS
0CHAR 153000003000 10 48 0 0 0 0 0 0
Base_de_Cálculo
X
T_COFINSBS
PDEC 168020800000 10 70 0 0 0 0 0 0
AC ________________
/PWS/ZYCIE443A-ADVALPIS
0CHAR 193000003000 11 5 0 0 0 0 0 0
Aliquota_Ad_Valorem
X
/PWS/ZYCIE443A-ADVALPIS
PDEC 8A020904000 11 35 0 0 0 0 6 2
____,__V
/PWS/ZYCIE443A-ADVALCOFINS
0CHAR 193000003000 11 48 0 0 0 0 0 0
Aliquota_Ad_Valorem
X
/PWS/ZYCIE443A-ADVALCOFINS
PDEC 8A020900000 11 78 0 0 0 0 6 2
____,__V
/PWS/ZYCIE443A-BASREDPIS
0CHAR 173000003000 12 5 0 0 0 0 0 0
Alíquota_Reduzida
X
/PWS/ZYCIE443A-BASREDPIS
PDEC 8A020904000 12 35 0 0 0 0 6 2
AC ____,__V
/PWS/ZYCIE443A-BASREDCOF
0CHAR 173000003000 12 48 0 0 0 0 0 0
Alíquota_Reduzida
X
/PWS/ZYCIE443A-BASREDCOF
PDEC 8A020904000 12 78 0 0 0 0 6 2
AC ____,__V
/PWS/ZYCIE443A-ALIQPIS
0CHAR 193000003000 13 5 0 0 0 0 0 0
Alíquota_Específica
X
/PWS/ZYCIE443A-ALIQPIS
PDEC 8A020904000 13 35 0 0 0 0 6 2
AC ____,__V
/PWS/ZYCIE443A-ALIQCOF
0CHAR 193000003000 13 48 0 0 0 0 0 0
Alíquota_Específica
X
/PWS/ZYCIE443A-ALIQCOF
PDEC 8A020904000 13 78 0 0 0 0 6 2
AC ____,__V
/PWS/ZYCIE443A-VLPIS
0CHAR 113000003000 15 5 0 0 0 0 0 0
Vl.Recolher
X
T_PIS
PDEC 168020803000 15 27 0 0 0 0 0 0
________________
/PWS/ZYCIE443A-VLCOFINS
0CHAR 113000003000 15 48 0 0 0 0 0 0
Vl.Recolher
X
T_COFINS
PDEC 168020803000 15 70 0 0 0 0 0 0
________________
CHAR 208010000000255 1O 0 0 0 0 0 0
____________________
%_FLOWLOGIC
PROCESS BEFORE OUTPUT.
module: set_screen_padrao.
PROCESS AFTER INPUT.
chain.
field: t_pisbs ,
t_cofinsbs ,
/pws/zycie443A-advalpis ,
/pws/zycie443A-advalcofins ,
/pws/zycie443A-percreduzpc ,
/pws/zycie443A-basredpis ,
/pws/zycie443A-basredcof ,
/pws/zycie443A-aliqpis ,
/pws/zycie443A-aliqcof ,
/pws/zycie443A-codregtripiscofi
module calc_vicms on chain-request.
module calc_vpiscofins on chain-request.
endchain.
module: user_command_0435.
%_PARAMS
*<<Fim download
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070X01
...
* >> Início da inclusão:
data:
t_regde3 LIKE t_regdes,
pis_calculado LIKE /pws/zycie085-vlfob,
pis_reduzido LIKE /pws/zycie085-vlfob,
pis_devido LIKE /pws/zycie085-vlfob,
pis_recolher LIKE /pws/zycie085-vlfob,
cof_calculado LIKE /pws/zycie085-vlfob,
cof_reduzido LIKE /pws/zycie085-vlfob,
cof_devido LIKE /pws/zycie085-vlfob,
cof_recolher LIKE /pws/zycie085-vlfob,
t_fundes_reducao(120),
t_fundes_regtri(120),
t_fundes_icms(120),
a_pisrec LIKE t_icms,
a_piscalc LIKE t_icms,
a_pisredu LIKE t_icms,
a_pisdevi LIKE t_icms,
a_cofrec LIKE t_icms,
a_cofcalc LIKE t_icms,
a_cofredu LIKE t_icms,
a_cofdevi LIKE t_icms,
v_vlpisrec LIKE t_icms,
v_vlcofrec LIKE t_icms,
t_fun_reducao(120),
t_fun_regtri(120) ,
t_reduzpis LIKE /pws/zycit100-reduzida,
t_reduzcofi LIKE /pws/zycit100-reduzida,
t_especipis LIKE /pws/zycit100-aliqpis ,
t_especicof LIKE /pws/zycit100-aliqcof ,
t_umpis LIKE /pws/zycit003-meins ,
t_umcofi LIKE /pws/zycit003-meins ,
v_qtd_pis LIKE /pws/zycie003-qtd_iten ,
v_qtd_cof LIKE /pws/zycie003-qtd_iten ,
a_basepc LIKE /pws/zycie116-basepis,
a_pistcalc LIKE t_icms,
a_pistredu LIKE t_icms,
a_pistdevi LIKE t_icms,
a_pistreco LIKE t_icms,
a_coftcalc LIKE t_icms,
a_coftredu LIKE t_icms,
a_coftdevi LIKE t_icms,
a_coftreco LIKE t_icms.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070F01
...
MODIFY itab_it INDEX v_idx TRANSPORTING
vlseg vlfre vlfob baseii vlii baseipi vlipi baseicms vlicms
vlfre_me vlseg_me vldiffob frn vlmerc_ad vlpis basepis
vlcofins basecofins ii_calculado ii_reduzido ii_devido
* >> Início da exclusão: FORM CALC_ITAB
ii_recolher ipi_devido ipi_recolher ad_devido ad_recolher
vlfobr.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
ii_recolher ipi_devido ipi_recolher
pis_reduzido pis_calculado pis_devido pis_recolher
cof_reduzido cof_calculado cof_devido cof_recolher
ad_devido ad_recolher vlfobr.
* << Fim da inclusão
ENDLOOP.
...
...
itab_it-ad_tipo NE itab_itb-ad_tipo OR
itab_it-ad_orgemiss NE itab_itb-ad_orgemiss OR
itab_it-ad_numero NE itab_itb-ad_numero OR
itab_it-ad_anoemiss NE itab_itb-ad_anoemiss OR
itab_it-aladi NE itab_itb-aladi OR
itab_it-tribipi NE itab_itb-tribipi OR
itab_it-advalicms NE itab_itb-advalicms OR
itab_it-vlantid NE itab_itb-vlantid OR
itab_it-meinsantid NE itab_itb-meinsantid OR
itab_it-qtdeantid NE itab_itb-qtdeantid OR
* >> Início da inclusão: FORM ADIC_LIST
itab_it-percreduzpc NE itab_itb-percreduzpc OR
itab_it-codredpiscofi NE itab_itb-codredpiscofi OR
itab_it-codregtripiscofi NE itab_itb-codregtripiscofi OR
itab_it-codfunlegpiscofi NE itab_itb-codfunlegpiscofi OR
itab_it-codregtriicms NE itab_itb-codregtriicms OR
* << Fim da inclusão
itab_it-codcambial NE itab_itb-codcambial .
PERFORM adic_next.
ELSE.
IF itab_zycit001-flag_adicao EQ 'X'.
PERFORM adic_next.
ENDIF.
ENDIF.
...
...
LOOP AT itab_zycit450 WHERE nrseq = itab_itb-nrseq
AND ebeln = itab_itb-ebeln
AND ebelp = itab_itb-ebelp.
APPEND itab_zycit450 TO itab_zycit450b.
ENDLOOP.
PERFORM text_adic_fill.
* >> Início da inclusão: FORM ADIC_LOAD
v_qtd_pis = v_qtd_cof = v_qtd_pis + itab_itb-qtd_da.
* << Fim da inclusão
ENDLOOP.
READ TABLE rtextx INDEX 1.
a_espe2 = rtextx-tdline.
...
...
ENDIF.
IF itab_it-advalipi IS INITIAL.
itab_it-advalipi = itab_zycit003-advalipi.
ELSE.
itab_itb-advalipi = itab_it-advalipi.
ENDIF.
IF itab_it-advalicms IS INITIAL.
itab_it-advalicms = itab_zycit003-advalicms.
ELSE.
itab_itb-advalicms = itab_it-advalicms.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
IF sy-tcode = '/PWS/ZYCI070_C'.
IF itab_it-codregtriicms IS INITIAL.
itab_it-codregtriicms = '5'.
ENDIF.
IF itab_it-codregtripiscofi IS INITIAL.
itab_it-codregtripiscofi = '5'.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF .
* << Fim da inclusão
IF v_dit = 'N'.
IF itab_it-advalii IS INITIAL.
itab_it-advalii = itab_zycit003-aliqii.
ENDIF.
IF itab_it-advalipi IS INITIAL.
itab_it-advalipi = itab_zycit003-aliqipi.
...
...
FORM calc_itab_adic.
* >> Início da inclusão: FORM CALC_ITAB_ADIC
clear:
a_pistcalc, a_pistredu, a_pistdevi, a_pistreco,
a_coftcalc, a_coftredu, a_coftdevi, a_coftreco,
/pws/zycie451-baseii, v_tot_plan,
a_basepc.
* << Fim da inclusão
...
...
* >> Início da inclusão: FORM CALC_ITAB_ADIC
a_pistcalc = a_pistcalc + itab_itb-pis_calculado.
a_pistredu = a_pistredu + itab_itb-pis_reduzido .
a_pistdevi = a_pistdevi + itab_itb-pis_devido .
a_pistreco = a_pistreco + itab_itb-pis_recolher .
a_coftcalc = a_coftcalc + itab_itb-cof_calculado.
a_coftredu = a_coftredu + itab_itb-cof_reduzido .
a_coftdevi = a_coftdevi + itab_itb-cof_devido .
a_coftreco = a_coftreco + itab_itb-cof_recolher .
a_basepc = a_basepc + itab_itb-basepis.
* << Fim da inclusão
ENDLOOP.
/pws/zycie451-baseii = a_baseii .
/pws/zycie451-waersreal = wa_zycbt007-waersb.
/pws/zycie451-ii_calculado = a_iitcalc.
/pws/zycie451-ii_reduzido = a_iitredu.
/pws/zycie451-ii_devido = a_iitdevi.
/pws/zycie451-ii_recolher = a_iitreco.
/pws/zycie451-ipi_devido = a_ipitdevi.
/pws/zycie451-ipi_recolher = a_ipitreco.
/pws/zycie451-ad_devido = a_addevi.
...
...
IF itab_it-entrega IS INITIAL.
PERFORM fill_entrega.
ENDIF.
PERFORM set_codregtri.
ELSE.
IF itab_it-pproc IS INITIAL.
itab_it-pproc = itab_it-porigem.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
IF sy-tcode EQ '/PWS/ZYCI070_C'.
* >> Fim da inclusão
SELECT SINGLE matnr FROM ekpo INTO v_matnr
WHERE ebeln EQ itab_it-ebeln
AND ebelp EQ itab_it-ebelp.
IF itab_it-basredpis IS INITIAL.
IF itab_it-basredcof IS INITIAL.
SELECT SINGLE * FROM /pws/zycit406 INTO wa_zycit406
WHERE pais EQ 'BR'
AND matnr EQ v_matnr
AND tributos EQ 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit406-basred .
itab_it-advalcofins = wa_zycit406-aliquotas.
ELSE.
SELECT SINGLE * FROM /pws/zycit405 INTO wa_zycit405
WHERE pais EQ 'BR'
AND ncm EQ itab_it-j_1bnbm
AND tributos EQ 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit405-basred .
itab_it-advalcofins = wa_zycit405-aliquotas.
ELSE.
SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407
WHERE pais EQ 'BR'
AND tributos EQ 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit407-basred .
itab_it-advalcofins = wa_zycit407-aliquotas.
ELSE.
itab_it-basredcof = 443.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
* >> Fim da inclusão
PERFORM text_item_fill.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_it-ntgew = itab_zycit003-ntgewd.
ENDIF.
IF itab_it-mandt IS INITIAL.
itab_it-mandt = sy-mandt.
ENDIF.
...
...
DELETE FROM /pws/zycit463 WHERE nrseqda = /pws/zycie442-nrseqda.
MODIFY /pws/zycit463 FROM TABLE itab_zycit463.
LOOP AT itab_it.
* >> Início da inclusão: FORM SAVE_DATA
v_tabix = sy-tabix.
itab_it-qtdeumest = itab_it-qtd_da.
CLEAR itab_ekpo.
READ TABLE itab_ekpo WITH KEY ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc IS INITIAL.
itab_it-meinsest = itab_ekpo-lmein.
ENDIF.
MODIFY itab_it INDEX v_tabix.
* << Fim da inclusão: FORM SAVE_DATA
MOVE-CORRESPONDING itab_it TO itab_zycit003.
APPEND itab_zycit003.
...
ENDFORM. " save_data
...
...
FORM adic_load.
* >> Início da inclusão: FORM ADIC_LOAD
CLEAR: v_qtd_pis,
v_qtd_cof.
* << Fim da inclusão: FORM ADIC_LOAD
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070F03
...
itab_it-nrseqd = /pws/zycie003-nrseqd = wa_zycit078-nrseqd.
ELSE.
itab_it-nrseqd = /pws/zycie443a-nrseqd = wa_zycit078-nrseqd.
ENDIF.
ELSE.
CLEAR v_nratoc.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
IF /pws/zycie443a-aliqpis IS INITIAL.
/pws/zycie443a-aliqpis = itab_it-advalpis.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
v_divisor = ( 1 - v_advicms - v_advpis - v_advcof ).
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
IF /pws/zycie443a-aliqcof IS INITIAL.
/pws/zycie443a-aliqcof = itab_it-advalcofins.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
PERFORM calc_piscofins.
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
v_divisor = ( 1 - v_advicms - v_advpis - v_advcof ).
IF ( /pws/zycie443a-nrseqd IS INITIAL OR
( /pws/zycie003-nrseqd IS INITIAL AND
v_embimp EQ 'X' ) ) AND v_nratoc IS INITIAL.
t_pis = ( itab_it-basepis * ( itab_it-advalpis / 100 ) ).
t_cofins = ( itab_it-basecofins * ( itab_it-advalcofins / 100 ) ).
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF '56' CA /pws/zycie443a-codregtri.
v_vliirec = a_iidevi.
ELSE.
v_vliirec = t_iirec.
ENDIF.
IF '56' CA /pws/zycie443a-codregtriipi .
v_vlipirec = a_ipidevi.
ELSE.
v_vlipirec = t_ipirec.
ENDIF.
CLEAR: v_vlpisrec , v_vlcofrec.
IF '56' CA /pws/zycie443a-codregtripiscofi.
v_vlpisrec = a_pisdevi.
v_vlcofrec = a_cofdevi.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM LOAD_IICMS
t_pis = ( itab_it-basepis * ( itab_it-advalpis / 100 ) ).
t_cofins = ( itab_it-basecofins *
( itab_it-advalcofins / 100 ) ).
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
IF itab_zycit001-regime EQ '04' AND
itab_zycit001-tpdecl EQ 'DI'.
CLEAR: t_pis, t_cofins.
ENDIF.
* << Fim da exclusão
v_vliirec = a_iicalc.
v_vlipirec = a_ipidevi.
IF v_nr_itens GT 1.
IF v_embimp EQ 'X'.
t_icmsbs_d2 =
t_icmsbs = ( t_ivadu + v_vliirec + v_vlipirec +
* >> Início da exclusão: FORM LOAD_IICMS
t_ivdesp + v_desp + t_pis + t_cofins ) *
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
t_ivdesp + v_desp + v_vlpisrec + v_vlcofrec ) *
* << Fim da inclusão
( /pws/zycie003-basred / 100 ).
ELSE.
t_icmsbs_d2 =
t_icmsbs = ( t_ivadu + v_vliirec + v_vlipirec +
* >> Início da exclusão: FORM LOAD_IICMS
t_ivdesp + v_desp + t_pis + t_cofins ) *
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
t_ivdesp + v_desp + v_vlpisrec + v_vlcofrec ) *
* << Fim da inclusão
( /pws/zycie443a-basred / 100 ).
ENDIF.
ELSE.
IF v_embimp EQ 'X'.
t_icmsbs_d2 =
t_icmsbs = ( t_ivadu + v_vliirec + v_vlipirec +
* >> Início da exclusão: FORM LOAD_IICMS
v_sisco3 + t_ivdesp + t_pis + t_cofins ) *
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
v_sisco3 + t_ivdesp + v_vlpisrec + v_vlcofrec ) *
* << Fim da inclusão
( /pws/zycie003-basred / 100 ).
ELSE.
t_icmsbs_d2 =
t_icmsbs = ( t_ivadu + v_vliirec + v_vlipirec +
* >> Início da exclusão: FORM LOAD_IICMS
v_sisco3 + t_ivdesp + t_pis + t_cofins ) *
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
v_sisco3 + t_ivdesp + v_vlpisrec + v_vlcofrec ) *
* << Fim da inclusão
( /pws/zycie443a-basred / 100 ).
ENDIF.
ENDIF.
IF NOT /pws/zycit062-flag_icms IS INITIAL AND
/pws/zycie443a-icms_dif NE 'X'.
* >> Início da exclusão: FORM LOAD_IICMS
IF itab_it-nrseqd IS INITIAL AND
v_nratoc IS INITIAL.
IF v_embimp EQ 'X'.
t_icmsx = ( 100 - /pws/zycie003-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ELSE.
t_icmsx = ( 100 - /pws/zycie443a-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie443a-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ENDIF.
ELSE.
IF itab_it-codregtri EQ '5'.
ELSE.
IF v_embimp EQ 'X'.
t_icmsx = ( 100 - /pws/zycie003-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
ELSE.
* << Fim da exclusão
t_icmsx = ( 100 - /pws/zycie443a-advalicms ) / 100.
t_icms_d2 = t_icms = ( /pws/zycie443a-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
* >> Início da exclusão: FORM LOAD_IICMS
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit001-regime EQ '04' AND
itab_zycit001-tpdecl EQ 'DI'.
CLEAR: t_icms.
ENDIF.
* << Fim da exclusão
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
* >> Início da exclusão: FORM LOAD_IICMS
IF /pws/zycit062-susp_nf EQ 'S'.
IF /pws/zycie443a-codregtri EQ '5'
AND /pws/zycie443a-codregtriipi EQ '5'.
IF NOT /pws/zycie443a-advalii IS INITIAL.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_iicalc.
ENDIF.
IF NOT /pws/zycie443a-advalipi IS INITIAL.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_ipidevi.
ENDIF.
IF NOT /pws/zycie443a-advalpis IS INITIAL.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_pis.
ENDIF.
IF NOT /pws/zycie443a-advalcofins IS INITIAL.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_cofins.
ENDIF.
IF NOT /pws/zycie443a-advalicms IS INITIAL.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
IF /pws/zycie443a-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-codregtri EQ '5'.
CLEAR: t_icmsx, t_icms_d2, t_icms, t_pis, t_cofins.
ENDIF.
ELSE.
IF itab_it-nrseqd IS INITIAL
AND v_nratoc IS INITIAL.
IF v_embimp EQ 'X'.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
t_icmsbs.
ELSE.
t_icms_d2 = t_icms = ( /pws/zycie443a-advalicms / 100 ) *
t_icmsbs.
ENDIF.
IF itab_it-codregtri EQ '5'.
CLEAR: t_icmsx, t_icms_d2, t_icms, t_pis, t_cofins.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF '356' CA /pws/zyciE443A-codregtriicms .
CLEAR: t_icmsx, t_icms_d2, t_icms.
* << Fim da inclusão
ENDIF.
ELSE.
* >> Início da exclusão: FORM LOAD_IICMS
IF itab_it-codregtri EQ '5'.
CLEAR t_icms.
ELSE.
IF v_embimp EQ 'X'.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
t_icmsbs.
ELSE.
* << Fim da exclusão
t_icms_d2 = t_icms = ( /pws/zycie443a-advalicms / 100 ) *
t_icmsbs.
* >> Início da exclusão: FORM LOAD_IICMS
ENDIF.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF '356' CA /pws/zyciE443A-codregtriicms .
CLEAR: t_icmsx, t_icms_d2, t_icms.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
ENDIF.
IF itab_zycit001-regime EQ '04' AND
itab_zycit001-tpdecl EQ 'DI'.
CLEAR: t_icms.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
IF ( NOT /pws/zycie443a-nrseqd IS INITIAL
OR ( NOT /pws/zycie003-nrseqd IS INITIAL AND
v_embimp EQ 'X' ) )
OR NOT v_nratoc IS INITIAL.
IF itab_it-codregtri EQ '3'.
CLEAR: t_pis, t_cofins .
ENDIF.
ENDIF.
* << Fim da exclusão
IF p_tipo = 'I' OR p_tipo = 'T' .
s_wicdevi = s_wicdevi + t_icms .
s_wicreco = s_wicdevi .
s_wpisreco = s_wpisreco + t_pis .
s_wcofreco = s_wcofreco + t_cofins.
...
...
ELSEIF p_tipo = 'A'.
a_icdevi = a_icdevi + t_icms.
a_icreco = a_icdevi.
ENDIF.
itab_it-baseicms = t_icmsbs.
* >> Início da exclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
itab_it-vlpis = t_pis .
itab_it-vlcofins = t_cofins.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
itab_it-vlpis = v_vlpisrec .
itab_it-vlcofins = v_vlcofrec.
* << Fim da inclusão
t_pisbs = itab_it-basepis.
t_cofinsbs = itab_it-basecofins.
* >> Início da inclusão: FORM LOAD_IICMS
v_vlpisrec = t_pis .
v_vlcofrec = t_cofins.
* << Fim da inclusão
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070F05
...
* >> Início da inclusão:
FORM seleciona_fund_legal_pc USING p_campo
p_campo1
CHANGING p_texto p_campo2.
DATA: v_descr LIKE /pws/zycit471-descr.
SELECT SINGLE descr
FROM /pws/zycit471 INTO v_descr
WHERE codigo = p_campo
AND regime = p_campo1.
IF sy-subrc EQ 0.
p_texto = v_descr.
ELSE.
CLEAR: v_descr, p_campo2.
MESSAGE e015 WITH text-238.
ENDIF.
ENDFORM.
form calc_piscofins.
CLEAR: a_piscalc, a_pisredu, a_pisdevi, a_pisrec,
a_cofcalc, a_cofredu, a_cofdevi, a_cofrec.
CASE /pws/zyciE443A-codregtripiscofi.
WHEN '3' OR '5' or '6' .
IF /pws/zyciE443A-aliqpis IS INITIAL.
a_pisdevi = a_piscalc =
( ( /pws/zyciE443A-advalpis / 100 ) * /pws/zyciE443A-basepis ).
ELSE.
a_pisdevi = a_piscalc =
( ( /pws/zyciE443A-aliqpis / 100 ) * /pws/zyciE443A-aliqpis ).
ENDIF.
IF /pws/zyciE443A-aliqcof IS INITIAL.
a_cofdevi = a_cofcalc =
( ( /pws/zyciE443A-advalcofins / 100 )
* /pws/zyciE443A-basecofins ) .
ELSE.
a_cofdevi = a_cofcalc =
( ( /pws/zyciE443A-aliqcof / 100 )
* /pws/zyciE443A-basecofins ) .
ENDIF.
CLEAR : t_pis, a_pisredu , t_cofins , a_cofredu.
WHEN '4'.
IF /pws/zyciE443A-basredpis IS INITIAL.
IF /pws/zyciE443A-aliqpis IS INITIAL.
a_piscalc =
( ( /pws/zyciE443A-advalpis / 100 )
* /pws/zyciE443A-basepis ) .
ELSE.
a_piscalc =
( ( /pws/zyciE443A-aliqpis / 100 )
* /pws/zyciE443A-basepis ) .
ENDIF.
ELSE.
a_piscalc =
( ( /pws/zyciE443A-basredpis / 100 )
* /pws/zyciE443A-basepis ) .
ENDIF.
IF /pws/zyciE443A-basredcof IS INITIAL.
IF /pws/zyciE443A-aliqcof IS INITIAL.
a_cofcalc =
( ( /pws/zyciE443A-advalcofins / 100 )
* /pws/zyciE443A-basecofins ) .
ELSE.
a_cofcalc =
( ( /pws/zyciE443A-aliqcof / 100 )
* /pws/zyciE443A-basecofins ) .
ENDIF.
ELSE.
a_cofcalc =
( ( /pws/zyciE443A-basredcof / 100 )
* /pws/zyciE443A-basecofins ) .
ENDIF.
t_pis = a_pisdevi = a_pisredu =
( /pws/zyciE443A-basepis / 100 ) * /pws/zyciE443A-basredpis .
t_cofins = a_cofdevi = a_cofredu =
( /pws/zyciE443A-basecofins / 100 ) * /pws/zyciE443A-basredcof.
WHEN OTHERS.
IF /pws/zyciE443A-aliqpis IS INITIAL.
t_pis = a_pisredu = a_pisdevi = a_piscalc =
( ( /pws/zyciE443A-advalpis / 100 )
* /pws/zyciE443A-basepis ) .
ELSE.
t_pis = a_pisredu = a_pisdevi = a_piscalc =
( ( /pws/zyciE443A-aliqpis / 100 )
* /pws/zyciE443A-basepis ) .
ENDIF.
IF /pws/zyciE443A-aliqcof IS INITIAL.
t_cofins = a_cofredu = a_cofdevi = a_cofcalc =
( ( /pws/zyciE443A-advalcofins / 100 )
* /pws/zyciE443A-basecofins ) .
ELSE.
t_cofins = a_cofredu = a_cofdevi = a_cofcalc =
( ( /pws/zyciE443A-aliqcof / 100 )
* /pws/zyciE443A-basecofins ) .
ENDIF.
ENDCASE.
itab_it-pis_calculado = a_piscalc.
itab_it-pis_reduzido = a_pisredu.
itab_it-pis_devido = a_pisdevi.
itab_it-pis_recolher = t_pis.
itab_it-cof_calculado = a_cofcalc.
itab_it-cof_reduzido = a_cofredu.
itab_it-cof_devido = a_cofdevi.
itab_it-cof_recolher = t_cofins.
endform.
form load_fun_icms.
IF NOT /pws/zycie443a-codfunlegicms IS INITIAL.
SELECT SINGLE descr FROM /pws/zycit177 INTO t_fundes_icms
WHERE origem EQ /pws/zycie442-tpdi
AND regime EQ /pws/zycie443a-codregtriicms
AND codigo EQ /pws/zycie443a-codfunlegicms.
IF sy-subrc NE 0.
MESSAGE w013 WITH text-103 /pws/zycie443a-codfunlegicms text-104.
CLEAR: t_fundes_icms, /pws/zycie443a-codfunlegicms.
ENDIF.
ELSE.
CLEAR: t_fundes_icms.
ENDIF.
endform.
form load_piscofins.
READ TABLE itab_it WITH KEY adicao = /pws/zycie451-adicao_sisc.
wa_it-advalicms = itab_it-advalicms.
wa_it-redpiscofi = itab_it-redpiscofi.
wa_it-percreduzpc = itab_it-percreduzpc.
wa_it-codredpiscofi = itab_it-codredpiscofi.
wa_it-codregtripiscofi = itab_it-codregtripiscofi.
wa_it-codfunlegpiscofi = itab_it-codfunlegpiscofi.
wa_it-advalicms = itab_it-advalicms.
wa_it-basepis = itab_it-basepis.
wa_it-advalpis = itab_it-advalpis.
wa_it-advalcofins = itab_it-advalcofins.
t_reduzpis = itab_it-basredpis.
t_reduzcofi = itab_it-basredcof.
t_especipis = itab_it-aliqpis.
t_especicof = itab_it-aliqcof.
t_umpis = itab_it-meins.
t_umcofi = itab_it-meins.
t_pis = itab_it-qtd_iten.
t_cofins = itab_it-qtd_iten.
IF NOT /pws/zycie443a-codredpiscofi IS INITIAL.
PERFORM seleciona_fund_legal_pc
USING /pws/zycie443a-codredpiscofi
/pws/zycie443a-codregtripiscofi
CHANGING t_fundes_reducao /pws/zycie443a-codredpiscofi.
ELSE.
CLEAR t_fundes_reducao.
ENDIF.
IF NOT /pws/zycie443a-codfunlegpiscofi IS INITIAL.
PERFORM seleciona_fund_legal_pc
USING /pws/zycie443a-codfunlegpiscofi
/pws/zycie443a-codregtripiscofi
CHANGING t_fundes_regtri /pws/zycie443a-codredpiscofi.
ELSE.
CLEAR t_fundes_regtri.
ENDIF.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070I01
...
* >> Início da inclusão:
module calc_vpiscofins input.
IF /pws/zycie443a-codregtripiscofi EQ '6'.
CLEAR: /pws/zycie443a-advalpis, /pws/zycie443a-advalcofins.
ENDIF.
endmodule.
module user_command_0435 input.
CASE sy-ucomm.
WHEN 'ENTE'.
CLEAR: t_fundes_reducao, t_fundes_regtri.
IF NOT /pws/zyciE443A-codredpiscofi IS INITIAL.
PERFORM seleciona_fund_legal_pc
USING /pws/zyciE443A-codredpiscofi
/pws/zyciE443A-codregtripiscofi
CHANGING t_fundes_reducao /pws/zyciE443A-codredpiscofi.
ELSE.
CLEAR: t_fundes_reducao.
ENDIF.
IF NOT /pws/zyciE443A-codfunlegpiscofi IS INITIAL.
PERFORM seleciona_fund_legal_pc
USING /pws/zyciE443A-codfunlegpiscofi
/pws/zyciE443A-codregtripiscofi
CHANGING t_fundes_regtri /pws/zyciE443A-codfunlegpiscofi.
ELSE.
CLEAR: t_fundes_regtri.
ENDIF.
ENDCASE.
endmodule.
module load_fun_icms input.
IF NOT /pws/zyciE443A-codfunlegicms IS INITIAL.
SELECT SINGLE descr FROM /pws/zycit177 INTO t_fundes_icms
WHERE origem EQ /pws/zycie442-tpdi
AND regime EQ /pws/zyciE443A-codregtriicms
AND codigo EQ /pws/zyciE443A-codfunlegicms.
IF sy-subrc NE 0.
MESSAGE w013 WITH text-103 /pws/zyciE443A-codfunlegicms text-104.
CLEAR: t_fundes_icms, /pws/zyciE443A-codfunlegicms.
ENDIF.
ELSE.
CLEAR: t_fundes_icms.
ENDIF.
endmodule.
module load_piscofins input.
PERFORM load_piscofins.
endmodule.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070O01
...
load_mval USING /pws/zycie443a-codmat,
load_inco USING /pws/zycie442-inco1,
load_itwa USING /pws/zycie443a-waersbem,
load_regt USING /pws/zycie443a-codregtri
/pws/zycie442-ntimp
'1' CHANGING t_regdes,
load_regt USING /pws/zycie443a-codregtriipi
/pws/zycie442-ntimp
'2' CHANGING t_regde2,
load_fund USING /pws/zycie443a-codfunleg,
* >> Início da inclusão: MODULE LOAD_DATA_BLITEM
load_regt USING /pws/zyciE443A-codregtriicms
/pws/zycie442-ntimp
'4' CHANGING t_regde3,
load_fun_icms ,
* << Fim da inclusão
load_alad USING /pws/zycie443a-aladi.
IF v_embimp EQ 'X'.
PERFORM:
load_unit USING /pws/zycie003-meins
CHANGING s_umped,
load_um USING /pws/zycie003-meinsest
CHANGING s_umestt.
ELSE.
PERFORM:
load_unit USING /pws/zycie443a-meins
...
...
IF sy-dynnr = '0240'.
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE447A-LIFNR'
AND ( /pws/zycie442-meiotransp EQ 'PS' OR
itab_zycit001-meioemba EQ 'PS' ).
screen-input = 0.
ENDIF.
IF screen-name EQ 'T_VLICMS'
AND ( /pws/zycie442-meiotransp EQ 'PS' OR
itab_zycit001-meioemba EQ 'PS' ).
* >> Início da inclusão: MODULE SET_SCREEN_PADRAO
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
IF sy-dynnr = '0435'.
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE443A-PERCREDUZPC' OR
screen-name EQ '/PWS/ZYCIE443A-CODREDPISCOFI'.
IF /pws/zyciE443A-redpiscofi EQ 'X'.
screen-input = 1.
ELSE.
screen-input = 0.
ENDIF.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE443A-CODFUNLEGPISCOFI'.
IF /pws/zyciE443A-codregtripiscofi NE 1.
screen-input = 1.
ELSE.
screen-input = 0.
ENDIF.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE443A-BASREDPIS' OR
screen-name EQ '/PWS/ZYCIE443A-BASREDCOF'.
IF /pws/zyciE443A-codregtripiscofi EQ 4.
screen-input = 1.
ELSE.
screen-input = 0.
CLEAR: /pws/zyciE443A-basredpis,
/pws/zyciE443A-basredcof.
ENDIF.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE443A-ALIQPIS' OR
screen-name EQ '/PWS/ZYCIE443A-ALIQCOF'.
IF /pws/zyciE443A-codregtripiscofi EQ 1 OR
/pws/zyciE443A-codregtripiscofi EQ 3 OR
/pws/zyciE443A-codregtripiscofi EQ 5 .
screen-input = 1.
ELSE.
screen-input = 0.
CLEAR: /pws/zyciE443A-aliqpis ,
/pws/zyciE443A-aliqcof.
ENDIF.
ENDIF.
MODIFY SCREEN.
IF screen-name EQ '/PWS/ZYCIE443A-ADVALPIS' .
IF NOT /pws/zyciE443A-aliqpis IS INITIAL.
CLEAR /pws/zyciE443A-advalpis.
screen-input = '0'.
ELSE.
screen-input = '1'.
ENDIF.
ELSEIF screen-name EQ '/PWS/ZYCIE443A-ALIQPIS' .
IF NOT /pws/zyciE443A-advalpis IS INITIAL.
CLEAR /pws/zyciE443A-aliqpis.
screen-input = '0'.
ELSE.
screen-input = '1'.
ENDIF.
ELSEIF screen-name EQ '/PWS/ZYCIE443A-ADVALCOFINS' .
IF NOT /pws/zyciE443A-aliqcof IS INITIAL.
CLEAR /pws/zyciE443A-advalcofins.
screen-input = '0'.
ELSE.
screen-input = '1'.
ENDIF.
ELSEIF screen-name EQ '/PWS/ZYCIE443A-ALIQCOF' .
IF NOT /pws/zyciE443A-advalcofins IS INITIAL.
CLEAR /pws/zyciE443A-aliqcof.
screen-input = '0'.
ELSE.
screen-input = '1'.
ENDIF.
ENDIF.
IF /pws/zyciE443A-codregtripiscofi EQ 2 OR
/pws/zyciE443A-codregtripiscofi EQ 6.
IF screen-name EQ '/PWS/ZYCIE443A-ALIQPIS' OR
screen-name EQ '/PWS/ZYCIE443A-ALIQCOF' OR
screen-name EQ '/PWS/ZYCIE443A-BASREDPIS' OR
screen-name EQ '/PWS/ZYCIE443A-BASREDCOF'.
screen-input = 0.
ENDIF.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE443A-ADVALPIS' OR
screen-name EQ '/PWS/ZYCIE443A-ADVALCOFINS'.
IF /pws/zyciE443A-codregtripiscofi EQ '6'.
screen-input = 0.
ENDIF.
ENDIF.
IF sy-tcode EQ '/PWS/ZYCI070_E'
OR v_nf041 EQ 'S'.
* << Fim da inclusão
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDMODULE.
...
...
* >> Início da inclusão: MODULE LOAD_ADIC
PERFORM load_piscofins.
* << Fim da inclusão: MODULE LOAD_ADIC
ENDMODULE. " load_adic OUTPUT
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI078F01
...
ENDIF.
CLEAR v_icms_nfr_1.
read table itab_zycit044 index 1.
if sy-subrc eq 0.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp.
READ TABLE itab_zycit443_aux WITH KEY ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp.
v_icms_nfr_1 = v_icms_nfr_1 + itab_zycit443_aux-vlicms .
endif.
* >> Início da exclusão: FORM MENSAGENS_NF_R
if itab_zycit443_aux-codregtri ne '5' and
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF_R
if itab_zycit443_aux-codregtriicms ne '5' and
* << Fim da inclusão
itab_zycit443_aux-icms_dif ne 'X'.
WRITE v_icms_nfr_1 CURRENCY itab_zycit443-waersbem TO v_icms_nfr.
v_cont = v_cont + 1.
CONCATENATE text-088 v_icms_nfr
INTO it_zycee006-msg SEPARATED BY space.
it_zycee006-indice = v_cont.
APPEND it_zycee006.
else.
clear v_icms_dif.
endif.
...
...
READ TABLE itab_zycit042_d WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
v_vldp_042 = itab_zycit042_d-vldp.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM VALORES
if not itab_zycit443-codregtripiscofi = '3' and
not itab_zycit443-codregtripiscofi = '5' .
* << Fim da inclusão
v_vldp_042 = v_vldp_042 + itab_zycit443-vlpis.
v_vldp_042 = v_vldp_042 + itab_zycit443-vlcofins.
ENDIF.
* >> Início da inclusão: FORM VALORES
ENDIF.
* << Fim da inclusão
it_zycee007-netoth = v_despesas + v_vldp_042.
it_zycee007-netpr = itab_zycit042-netpr.
* >> Início da inclusão: FORM VALORES
if not itab_zycit443-codregtripiscofi = '3' and
not itab_zycit443-codregtripiscofi = '5' .
* << Fim da inclusão
v_impostos = v_impostos + itab_zycit443-vlpis + itab_zycit443-vlcofins.
* >> Início da inclusão: FORM VALORES
endif.
* << Fim da inclusão
ENDFORM.
...
...
PERFORM visualiza_rateio.
IF v_resp NE 'S'.
EXIT.
ENDIF.
ELSE.
PERFORM visualiza_rateio.
IF v_resp NE 'S'.
EXIT.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM MONTAR_CUSTO_DI
perform cria_itdesp tables it_desp.
PERFORM cria_despesas(/pws/zycir495) TABLES it_desp
itab_zycit036.
* << Fim da inclusão
MOVE itab_zycit036[] TO itab_zycit036_di[].
LOOP AT itab_zycit036 WHERE origem = 'DI'.
READ TABLE itab_zycit036_di WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
origem = 'NF'.
IF sy-subrc EQ 0.
DELETE itab_zycit036.
ENDIF.
ENDLOOP.
...
...
PERFORM visualiza_rateio.
IF v_resp NE 'S'.
EXIT.
ENDIF.
ELSE.
PERFORM visualiza_rateio.
IF v_resp NE 'S'.
EXIT.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM MONTAR_CUSTO_DI
perform cria_itdesp tables it_desp.
PERFORM cria_despesas(/pws/zycir495) TABLES it_desp
itab_zycit036.
* << Fim da inclusão
MOVE itab_zycit036[] TO itab_zycit036_di[].
ENDIF.
ENDIF.
MOVE itab_zycit036[] TO itab_zycit036_di[].
* >> Início da inclusão: FORM MONTAR_CUSTO_DI
LOOP AT itab_zycit036 WHERE origem = 'DI'.
READ TABLE itab_zycit036_di WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
origem = 'NF'.
IF sy-subrc EQ 0.
DELETE itab_zycit036.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit036 WHERE origem = 'DI' OR
origem = 'FAT'.
itab_zycit036-origem = 'NF'.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
MODIFY itab_zycit036.
ENDLOOP.
* << Fim da inclusão
PERFORM calcular_outros_custos(/pws/zycir494) TABLES itab_zycit036.
MOVE itab_zycit036[] TO itab_zycit036_di[].
ENDFORM.
...
...
IF NOT /pws/zycit443-vlicms IS INITIAL AND
NOT /pws/zycit443-icms_dif = 'X'.
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit443-vlicms / itab_zycit042-qtd_iten )
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
* 100 ) / itab_zycit003-basred.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
* 100 ) / itab_zycit443-basred.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
...
CASE itab_zycit033-tribipi.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit443-baseipi.
it_zycee007-base2 = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF itab_zycit443-codregtri = '5'.
it_zycee007-base2 = it_zycee007-base2 - itab_zycit443-vlii.
ENDIF.
* << Fim da exclusão
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit443-baseipi.
it_zycee007-p_excbas = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF itab_zycit443-codregtri = '5'.
it_zycee007-p_excbas = it_zycee007-p_excbas -
itab_zycit443-vlii.
ENDIF.
* << Fim da exclusão
CLEAR it_zycee007-taxval2.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit443-baseipi.
it_zycee007-othbas2 = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF itab_zycit443-codregtri = '5'.
it_zycee007-othbas2 = it_zycee007-othbas2 - itab_zycit443-vlii.
ENDIF.
* << Fim da exclusão
ENDCASE.
DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.
SELECT * FROM /pws/zycit398
INTO TABLE itab_zycit398
WHERE bukrs EQ /pws/zycie041-bukrs
AND clnf EQ itab_zycit033-clnf
AND tpnf EQ itab_zycit033-tpnf
AND ( tributos EQ 'PIS' OR
tributos EQ 'COFINS' ).
* >> Início da exclusão: FORM ITENS_NFNEW
IF NOT itab_zycit443-vlpis IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFNEW
IF NOT itab_zycit443-vlpis IS INITIAL .
clear itab_zycit036.
* << Fim da inclusão
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'PIS'.
* >> Início da inclusão: FORM ITENS_NFNEW
if not itab_zycit443-codregtripiscofi = '3' and
not itab_zycit443-codregtripiscofi = '5' .
* << Fim da inclusão
it_zycee007-taxval_pis = itab_zycit036-vlreal.
* >> Início da inclusão: FORM ITENS_NFNEW
endif.
* << Fim da inclusão
READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
it_zycee007-taxtyp_pis = itab_zycit398-taxtyp.
ELSE.
CLEAR it_zycee007-taxtyp_pis.
ENDIF.
IF NOT it_zycee007-taxval_pis IS INITIAL.
it_zycee007-rate_pis = itab_zycit443-advalpis.
ENDIF.
CASE itab_zycit398-tribpiscof.
...
...
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit443-basepis.
it_zycee007-othbas_pis = v_montante1.
ENDCASE.
ENDIF.
* >> Início da exclusão: FORM ITENS_NFNEW
IF NOT itab_zycit443-vlcofins IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFNEW
IF NOT itab_zycit443-vlcofins IS INITIAL .
clear itab_zycit036.
* << Fim da inclusão
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'COFINS'.
* >> Início da inclusão: FORM ITENS_NFNEW
if not itab_zycit443-codregtripiscofi = '3' and
not itab_zycit443-codregtripiscofi = '5' .
* << Fim da inclusão
it_zycee007-taxval_cof = itab_zycit036-vlreal.
* >> Início da inclusão: FORM ITENS_NFNEW
endif.
* << Fim da inclusão
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.
ELSE.
CLEAR it_zycee007-taxtyp_cof.
ENDIF.
IF NOT it_zycee007-taxval_cof IS INITIAL.
it_zycee007-rate_cof = itab_zycit443-advalcofins.
ENDIF.
CASE itab_zycit398-tribpiscof.
...
...
* >> Início da inclusão:
form cria_itdesp tables it_desp structure it_desp.
data: v_line_rateio TYPE i,
v_line_ac TYPE i,
v_index LIKE sy-tabix,
v_ac_fre LIKE /pws/zycit100-vlfre,
v_ac_seg LIKE /pws/zycit100-vlseg,
vl_ii LIKE itab_zycit100-vlii,
vl_ipi LIKE itab_zycit100-vlipi,
vl_icms LIKE itab_zycit100-vlicms,
vltot_ii LIKE /pws/zycit036-vlreal,
vltot_ipi LIKE /pws/zycit036-vlreal,
vltot_icms LIKE /pws/zycit036-vlreal,
vl_imp LIKE /pws/zycit036-vlreal,
v_ori LIKE /pws/zycit140-origem,
v_taxa LIKE /pws/zycie085-ukursfob,
vltot_pis LIKE /pws/zycit036-vlreal,
vl_pis LIKE /pws/zycit036-vlreal,
vltot_cofins LIKE /pws/zycit036-vlreal,
vl_cofins LIKE /pws/zycit036-vlreal,
v_vlseg LIKE /pws/zycit036-vlreal.
DESCRIBE TABLE itab_zycit003 LINES v_line_rateio.
FREE it_desp.
LOOP AT itab_zycit003
WHERE servico IS initial.
v_line_ac = sy-tabix.
READ TABLE itab_zycit443 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF v_line_ac <> v_line_rateio.
IF NOT /pws/zycit442-ukursseg IS INITIAL AND
NOT itab_zycit443-vlseg IS INITIAL.
v_vlseg = itab_zycit443-vlseg
/ /pws/zycit442-ukursseg.
MOVE v_vlseg TO it_desp-vlseg.
SELECT SINGLE * FROM tcurx
WHERE currkey = /pws/zycit442-waersseg.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
it_desp-vlseg = it_desp-vlseg * ( 10 ** ( tcurx-currdec - 2 ) ).
v_ac_seg = v_ac_seg + it_desp-vlseg.
ENDIF.
IF NOT /pws/zycit442-ukursfre IS INITIAL AND
NOT itab_zycit443-vlfre IS INITIAL.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit442-nrbl.
it_desp-vlfre = itab_zycit443-vlfre / /pws/zycit442-ukursfre.
SELECT SINGLE * FROM tcurx
WHERE currkey = /pws/zycit093-waersfre.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
it_desp-vlfre = it_desp-vlfre * ( 10 ** ( tcurx-currdec - 2 ) ).
v_ac_fre = v_ac_fre + it_desp-vlfre.
ENDIF.
vl_imp = itab_zycit443-vlii.
vltot_ii = vltot_ii + vl_imp.
vl_ii = vl_ii + itab_zycit443-vlii.
vl_imp = itab_zycit443-vlipi.
vltot_ipi = vltot_ipi + vl_imp.
vl_ipi = vl_ipi + itab_zycit443-vlipi.
IF itab_zycit443-icms_dif IS INITIAL.
IF ( /pws/zycit442-tpdi EQ 'N' AND
NOT '356' CA itab_zycit443-codregtriicms ) OR
( /pws/zycit442-tpdi EQ 'S' AND
NOT '356' CA itab_zycit443-codregtri ).
vl_imp = itab_zycit443-vlicms.
vltot_icms = vltot_icms + vl_imp.
vl_icms = vl_icms + itab_zycit443-vlicms.
endif.
ENDIF.
vl_imp = itab_zycit443-vlpis.
vltot_pis = vltot_pis + vl_imp.
vl_pis = vl_pis + itab_zycit443-vlpis.
vl_imp = itab_zycit443-vlcofins.
vltot_cofins = vltot_cofins + vl_imp.
vl_cofins = vl_cofins + itab_zycit443-vlcofins.
ELSE.
IF sy-subrc = 0.
IF NOT /pws/zycit442-vlseg IS INITIAL.
it_desp-vlseg = /pws/zycit442-vlseg - v_ac_seg.
ENDIF.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit442-nrbl.
IF NOT /pws/zycit442-vlfre IS INITIAL.
it_desp-vlfre = /pws/zycit442-vlfre - v_ac_fre.
ENDIF.
ENDIF.
vl_ii = vl_ii + itab_zycit443-vlii .
vl_ipi = vl_ipi + itab_zycit443-vlipi .
vl_pis = vl_pis + itab_zycit443-vlpis .
vl_cofins = vl_cofins + itab_zycit443-vlcofins.
itab_zycit443-vlii = vl_ii - vltot_ii .
itab_zycit443-vlipi = vl_ipi - vltot_ipi .
itab_zycit443-vlpis = vl_pis - vltot_pis .
itab_zycit443-vlcofins = vl_cofins - vltot_cofins.
IF itab_zycit443-icms_dif IS INITIAL.
IF NOT ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
IF ( /pws/zycit442-tpdi EQ 'N' AND
NOT '356' CA itab_zycit443-codregtriicms ) OR
( /pws/zycit442-tpdi EQ 'S' AND
NOT '356' CA itab_zycit443-codregtri ).
vl_icms = vl_icms + itab_zycit443-vlicms.
itab_zycit443-vlicms = vl_icms - vltot_icms.
ENDIF.
ENDIF.
ENDIF.
v_ac_fre = 0.
v_ac_seg = 0.
ENDIF.
MOVE: itab_zycit003-nrseq TO it_desp-nrseq,
itab_zycit003-ebeln TO it_desp-ebeln,
itab_zycit003-ebelp TO it_desp-ebelp,
itab_zycit003-netpr TO it_desp-netpr,
itab_zycit003-waers TO it_desp-waers,
itab_zycit003-menge TO it_desp-menge,
itab_zycit003-qtd_iten TO it_desp-qtd_iten,
/pws/zycit442-bukrs TO it_desp-bukrs,
itab_zycit003-werks TO it_desp-werks,
/pws/zycit001-inco1 TO it_desp-inco1,
/pws/zycit001-embarca TO it_desp-embarca,
itab_zycit443-advalii TO it_desp-advalii,
itab_zycit443-advalipi TO it_desp-advalipi,
itab_zycit443-aliqicms TO it_desp-aliqicms,
itab_zycit443-vlii TO it_desp-vlii,
itab_zycit443-vlipi TO it_desp-vlipi,
itab_zycit443-vlpis TO it_desp-vlpis ,
itab_zycit443-vlcofins TO it_desp-vlcofins.
IF it_desp-advalii IS INITIAL.
CLEAR it_desp-vlii.
ENDIF.
IF itab_zycit443-icms_dif IS INITIAL.
MOVE: itab_zycit443-vlicms TO it_desp-vlicms.
ENDIF.
APPEND it_desp.
ENDLOOP.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI070
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 238
Texto: (47 caracteres)
"Fundamento Legal informado não está cadastrado!"
Comprimento máximo: 47
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT443
* Foram incluidos os seguintes campos
Nome de campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
DESCR MAKTX CHAR 40
GSBER GSBER TGSB CHAR 4
BEDNR BEDNR CHAR 10
NALADI /PWS/ZYCEL158 NUMC 8
NALADINCCA /PWS/ZYGLL667 NUMC 7
QTDEUMEST /PWS/ZYCIL347 QUAN 13
APLICACAO /PWS/ZYCIL269 CHAR 1
CONDMERC /PWS/ZYCIL202 CHAR 1
WERKS WERKS_D CHAR 4
MATNR MATNR CHAR 18
EBELP_ORI EBELP NUMC 5
*<<Inicio Inclusão
CODREGTRIPISCOFI /PWS/ZYCEL265 /PWS/ZYCIT167 CHAR 1
CODFUNLEGPISCOFI /PWS/ZYCIL203 CHAR 2
REDPISCOFI LOHN_B CHAR 1
CODREDPISCOFI /PWS/ZYCIL203 CHAR 2
PERCREDUZPC J_1BTXRATE DEC 6
UM_PIS MEINS UNIT 3
UM_COFINS MEINS UNIT 3
QTDUM_PIS NUM08 NUMC 8
QTDUM_COFINS NUM08 NUMC 8
PIS_CALC /PWS/ZYCIL307 CURR 16
PIS_DEV /PWS/ZYCIL307 CURR 16
COFI_CALC /PWS/ZYCIL307 CURR 16
COFI_DEV /PWS/ZYCIL307 CURR 16
CODREGTRIICMS /PWS/ZYCEL265 /PWS/ZYCIT167 CHAR 1
CODFUNLEGICMS /PWS/ZYCIL203 CHAR 2
*<<Fim Inclusão
* Inseridas as seguintes tabelas de verificação
* Nome de campo CODREGTRIICMS
* Tabela verificação /PWS/ZYCIT167
Grau dependência
Cardinalidade
Sem verificação
Descrição breve
Área funcional
Mensagem
Tabela chave externa Cpo.chave externa Tab.verif. Nome de campo
/PWS/ZYCIT443 MANDT /PWS/ZYCIT167 MANDT
/PWS/ZYCIT443 CODFUNLEG /PWS/ZYCIT167 NTIMP
* /PWS/ZYCIT167 TIPO
/PWS/ZYCIT443 CODREGTRIICMS /PWS/ZYCIT167 CODREG
* /PWS/ZYCIT167 REGIO
*Nome de campo CODREGTRIPISCOFI
*Tabela verificação /PWS/ZYCIT167
Grau dependência
Cardinalidade
Sem verificação
Descrição breve
Área funcional
Mensagem
Tabela chave externa Cpo.chave externa Tab.verif. Nome de campo
/PWS/ZYCIT443 MANDT /PWS/ZYCIT167 MANDT
* /PWS/ZYCIT167 NTIMP
* /PWS/ZYCIT167 TIPO
/PWS/ZYCIT443 CODREGTRIPISCOFI /PWS/ZYCIT167 CODREG
* /PWS/ZYCIT167 REGIO
* Inseridas as seguintes ajudas de pesquisas
* Nome de campo CODFUNLEGICMS
* Nome ajuda pesq. /PWS/ZYCIA177
Par.AjPesq TabConexão Cpo.conexão ajuda p/pesquisa
CODIGO /PWS/ZYCIT443 CODFUNLEGICMS
ORIGEM /PWS/ZYCIE442 TPDI
REGIME /PWS/ZYCIT443 CODREGTRIICMS
TPNI /PWS/ZYCIE442 NTIMP
* Nome de campo CODFUNLEGPISCOFI
* Nome ajuda pesq. /PWS/ZYCIA472
Par.AjPesq TabConexão Cpo.conexão ajuda p/pesquisa
CODIGO /PWS/ZYCIT443 CODFUNLEGPISCOFI
ORIGEM 'S'
REGIME /PWS/ZYCIT443 CODREGTRIPISCOFI
* Nome de campo CODREGTRIICMS
* Nome ajuda pesq. /PWS/ZYCIA167
Par.AjPesq TabConexão Cpo.conexão ajuda p/pesquisa
CODREG /PWS/ZYCIT443 CODREGTRIICMS
TIPO '4'
* Nome de campo CODREGTRIPISCOFI
* Nome ajuda pesq. /PWS/ZYCIA167
Par.AjPesq TabConexão Cpo.conexão ajuda p/pesquisa
CODREG /PWS/ZYCIT443 CODREGTRIPISCOFI
TIPO '3'
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT451
* Foram incluidos os seguintes campos
Nome de campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
II_CALCULADO /PWS/ZYCIL307 CURR 16
II_REDUZIDO /PWS/ZYCIL307 CURR 16
II_DEVIDO /PWS/ZYCIL307 CURR 16
II_RECOLHER /PWS/ZYCIL307 CURR 16
IPI_DEVIDO /PWS/ZYCIL307 CURR 16
IPI_RECOLHER /PWS/ZYCIL307 CURR 16
AD_DEVIDO /PWS/ZYCIL307 CURR 16
AD_RECOLHER /PWS/ZYCIL307 CURR 16
ADICAO_SISC /PWS/ZYCIL267 NUMC 3
CODCAMBIAL /PWS/ZYCIL187 CHAR 1
MDPGTO /PWS/ZYCEL363 CHAR 2
FABRICANTE /PWS/ZYCIL026 CHAR 1
PAISFAB /PWS/ZYCIL042 CHAR 3
DESCFAB TEXT60 CHAR 60
CODINST /PWS/ZYCEL268 CHAR 2
NRSEQ /PWS/ZYCIL001 CHAR 10
NRFAT XBLNR CHAR 16
NRSEQ_PGFAT /PWS/ZYCBL344 CHAR 10
ROF CHAR10 CHAR 10
BELNR_P BELNR_D CHAR 10
FRPAGTO /PWS/ZYCIL079 CHAR 1
MOTIVO /PWS/ZYCEL267 /PWS/ZYCIT169 CHAR 10
LIFNR LIFRE CHAR 10
NTGEW NTGEW_15 QUAN 15
GEWEI EGEWE UNIT 3
WAERS WAERS CUKY 5
VLMERC WRBTR CURR 13
*<<Inicio Inclusão
BASEPIS /PWS/ZYCIL307 CURR 16
PIS_CALCULADO /PWS/ZYCIL307 CURR 16
PIS_REDUZIDO /PWS/ZYCIL307 CURR 16
PIS_DEVIDO /PWS/ZYCIL307 CURR 16
PIS_RECOLHER /PWS/ZYCIL307 CURR 16
BASECOFI /PWS/ZYCIL307 CURR 16
COFI_CALCULADO /PWS/ZYCIL307 CURR 16
COFI_REDUZIDO /PWS/ZYCIL307 CURR 16
COFI_DEVIDO /PWS/ZYCIL307 CURR 16
COFI_RECOLHER /PWS/ZYCIL307 CURR 16
*<<Fim Inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCIR495
*O SEGUINTE RELATÓRIO FOI CRIADO:
REPORT /pws/zycir495 MESSAGE-ID /pws/zycim
LINE-COUNT 65
LINE-SIZE 132
NO STANDARD PAGE HEADING.
* Tabelas Trasparentes -------------------------------------------------
TABLES: /pws/zycit442, /pws/zycie085,
/pws/zycit003,
/pws/zycie093,
/pws/zycit443,
/pws/zycit001,
/pws/zycbt007,
/pws/zycit031,
/pws/zycit094,
/pws/zycit093,
ekko,
tcurx,
konv,
t001,
*chamado 338178 inicio
/pws/zycie001.
*chamado 338178 fim
* Variáveis Globais ----------------------------------------------------
DATA: v_origem(3) VALUE 'DI ', " Origem da Despesa
v_codmod VALUE 'D', " Módulo - "D" = Importação
v_ok,
* v_netpr like /pws/zycit003-netpr.
* Correção 4.6B inicio
* v_netpr like se16n_cd_data-id.
v_netpr TYPE /pws/zycil816 .
* Correção 4.6B fim
* Tabelas Internas -----------------------------------------------------
DATA: BEGIN OF it_desp OCCURS 0,
nrseq LIKE /pws/zycie003-nrseq,
ebeln LIKE /pws/zycie003-ebeln,
ebelp LIKE /pws/zycie003-ebelp,
netpr LIKE /pws/zycie003-netpr,
waers LIKE /pws/zycie003-waers,
menge LIKE /pws/zycie003-menge,
qtd_iten LIKE /pws/zycie003-qtd_iten,
werks LIKE /pws/zycie003-werks,
advalii LIKE /pws/zycie003-advalii,
advalipi LIKE /pws/zycie003-advalipi,
aliqicms LIKE /pws/zycie003-aliqicms,
bukrs LIKE /pws/zycit442-bukrs,
inco1 LIKE /pws/zycit001-inco1,
embarca LIKE /pws/zycit001-embarca,
vlseg LIKE /pws/zycit443-vlseg,
vlfre LIKE /pws/zycit443-vlfre,
vlii LIKE /pws/zycit443-vlii,
vlipi LIKE /pws/zycit443-vlipi,
vlicms LIKE /pws/zycit443-vlicms,
vlpis LIKE /pws/zycit443-vlpis ,
vlcofins LIKE /pws/zycit443-vlcofins,
END OF it_desp.
DATA: itab_zycit036 LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE,
it_zycit443 LIKE /pws/zycit443 OCCURS 0 WITH HEADER LINE,
itab_zycit443 LIKE /pws/zycit443 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_zyglt100 OCCURS 10. "Exits
INCLUDE STRUCTURE /pws/zyglt100.
DATA: END OF itab_zyglt100.
* Work Areas -----------------------------------------------------------
DATA: it_zycit442 LIKE /pws/zycie085,
wa_desp LIKE it_desp,
wa_036 LIKE itab_zycit036.
* Seleção de DI --------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK di WITH FRAME TITLE text-001.
PARAMETER: pa_nrseq LIKE /pws/zycie442-nrseqda,
pa_plan AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK di.
* Processamento --------------------------------------------------------
PERFORM data_load TABLES it_desp USING pa_nrseq CHANGING v_ok.
IF v_ok = 'S'.
PERFORM cria_despesas TABLES it_desp itab_zycit036.
IF pa_plan = 'X'.
PERFORM custeando_planejado TABLES it_desp itab_zycit036.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form data_load
*&---------------------------------------------------------------------*
FORM data_load TABLES it_desp STRUCTURE it_desp
USING f_nrseqda
CHANGING v_ok.
CLEAR: v_ok.
IF NOT f_nrseqda IS INITIAL.
SELECT /pws/zycit003~nrseq /pws/zycit003~ebeln
/pws/zycit003~ebelp
/pws/zycit003~netpr /pws/zycit003~waers
/pws/zycit003~menge
/pws/zycit003~qtd_iten /pws/zycit003~werks
/pws/zycit003~advalii /pws/zycit003~advalipi
/pws/zycit003~aliqicms
/pws/zycit442~bukrs /pws/zycit001~inco1
/pws/zycit001~embarca
/pws/zycit443~vlseg
/pws/zycit443~vlfre /pws/zycit443~vlii
/pws/zycit443~vlipi
/pws/zycit443~vlicms
INTO TABLE it_desp
FROM /pws/zycit442 INNER JOIN /pws/zycit443
ON /pws/zycit442~nrseqda = /pws/zycit443~nrseqda
INNER JOIN /pws/zycit001
ON /pws/zycit443~nrseq = /pws/zycit001~nrseq
INNER JOIN /pws/zycit003
ON /pws/zycit443~nrseq = /pws/zycit003~nrseq AND
/pws/zycit443~ebeln = /pws/zycit003~ebeln AND
/pws/zycit443~ebelp = /pws/zycit003~ebelp
WHERE /pws/zycit442~nrseqda = f_nrseqda.
IF sy-subrc EQ 0.
v_ok = 'S'.
ENDIF.
ENDIF.
ENDFORM. " data_load
*&---------------------------------------------------------------------*
*& Form cria_despesas
*&---------------------------------------------------------------------*
FORM cria_despesas TABLES it_desp STRUCTURE it_desp
itab_zycit036 STRUCTURE itab_zycit036.
DATA: v_aliq LIKE it_desp-advalipi .
READ TABLE it_desp INDEX 1.
SELECT SINGLE waersb FROM /pws/zycbt007
INTO /pws/zycbt007-waersb
WHERE bukrs EQ it_desp-bukrs.
DATA: BEGIN OF itab_zycit031 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit031.
DATA: END OF itab_zycit031.
DATA: BEGIN OF itab_zycit443 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit443.
DATA: END OF itab_zycit443.
DATA: BEGIN OF itab_zycit442 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit442.
DATA: END OF itab_zycit442.
DATA: BEGIN OF itab_zycit093 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit093.
DATA: END OF itab_zycit093.
DATA: BEGIN OF itab_zycit094 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit094.
DATA: END OF itab_zycit094.
IF NOT it_desp[] IS INITIAL.
SELECT * FROM /pws/zycit031 INTO TABLE itab_zycit031
FOR ALL ENTRIES IN it_desp
WHERE inco1 = it_desp-inco1.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
FOR ALL ENTRIES IN it_desp
WHERE nrseq = it_desp-nrseq AND
ebeln = it_desp-ebeln AND
ebelp = it_desp-ebelp.
IF NOT itab_zycit443[] IS INITIAL.
SELECT * FROM /pws/zycit442 INTO TABLE itab_zycit442
FOR ALL ENTRIES IN itab_zycit443
WHERE nrseqda = itab_zycit443-nrseqda.
ENDIF.
SELECT * FROM /pws/zycit094 INTO TABLE itab_zycit094
FOR ALL ENTRIES IN it_desp
WHERE nrseq = it_desp-nrseq.
IF NOT itab_zycit094[] IS INITIAL.
SELECT * FROM /pws/zycit093 INTO TABLE itab_zycit093
FOR ALL ENTRIES IN itab_zycit094
WHERE nrseqce = itab_zycit094-nrseqce.
ENDIF.
ENDIF.
LOOP AT it_desp.
CLEAR : /pws/zycit031, /pws/zycit443.
READ TABLE itab_zycit031 WITH KEY inco1 = it_desp-inco1.
IF sy-subrc EQ 0.
MOVE itab_zycit031 TO /pws/zycit031.
ENDIF.
READ TABLE itab_zycit443 WITH KEY nrseq = it_desp-nrseq
ebeln = it_desp-ebeln
ebelp = it_desp-ebelp.
IF sy-subrc EQ 0.
MOVE itab_zycit443 TO /pws/zycit443.
ENDIF.
READ TABLE itab_zycit443 WITH KEY nrseq = it_desp-nrseq
ebeln = it_desp-ebeln
ebelp = it_desp-ebelp.
IF sy-subrc EQ 0.
MOVE itab_zycit443 TO /pws/zycit443.
ENDIF.
READ TABLE itab_zycit442 WITH KEY nrseqda = itab_zycit443-nrseqda.
IF sy-subrc EQ 0.
MOVE itab_zycit442 TO /pws/zycit442.
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.
IF /pws/zycit031-inco1_ci NE 'CIF'.
PERFORM entra_despesa USING it_desp 'SEGURO' it_desp-vlseg
/pws/zycit442-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.
IF /pws/zycit031-inco1_ci EQ 'FOB'.
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.
IF not '356' ca /pws/zycit443-codregtri or
( /pws/zycit443-codregtri NE ' ' and
/pws/zycit443-codregtri EQ '1' ).
PERFORM entra_despesa USING it_desp 'II' it_desp-vlii
/pws/zycbt007-waersb
it_desp-advalii CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
IF not '156' ca /pws/zycit443-codregtriipi or
( /pws/zycit443-codregtriipi EQ ' ' and
/pws/zycit443-CODREGTRI EQ '1' ).
PERFORM entra_despesa USING it_desp 'IPI' it_desp-vlipi
/pws/zycbt007-waersb
it_desp-advalipi CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
if ( /pws/zycit442-tpdi eq 'N' and
not '356' ca /pws/zycit443-codregtriicms ) or
( /pws/zycit442-tpdi eq 'S' and
/pws/zycit443-codregtri NE '6' ) .
PERFORM entra_despesa USING it_desp 'ICMS' it_desp-vlicms
/pws/zycbt007-waersb
it_desp-aliqicms CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
IF not '356' ca /pws/zycit443-codregtripiscofi or
( /pws/zycit443-codregtripiscofi NE ' ' and
/pws/zycit443-codregtripiscofi EQ '1' ).
PERFORM entra_despesa USING it_desp 'PIS' it_desp-vlpis
/pws/zycbt007-waersb v_aliq CHANGING wa_036.
MOVE wa_036 TO itab_zycit036. APPEND itab_zycit036.
PERFORM entra_despesa USING it_desp 'COFINS' it_desp-vlcofins
/pws/zycbt007-waersb v_aliq CHANGING wa_036.
MOVE wa_036 TO itab_zycit036. APPEND itab_zycit036.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit036.
IF itab_zycit036-vlreal < '0'.
CLEAR itab_zycit036-vlreal.
MODIFY itab_zycit036.
ENDIF.
ENDLOOP.
ENDFORM. " cria_despesas
*&---------------------------------------------------------------------*
*& Form entra_despesa
*&---------------------------------------------------------------------*
FORM entra_despesa USING fa_desp LIKE wa_desp
f_codigo
f_vlreal
f_moeda
f_rate
CHANGING fa_036 LIKE wa_036.
fa_036-mandt = sy-mandt.
fa_036-nrseq = fa_desp-nrseq.
fa_036-ebeln = fa_desp-ebeln.
fa_036-ebelp = fa_desp-ebelp.
fa_036-codigo = f_codigo.
fa_036-origem = v_origem.
fa_036-bukrs = fa_desp-bukrs.
fa_036-werks = fa_desp-werks.
fa_036-codmod = v_codmod.
fa_036-vlreal = f_vlreal.
fa_036-waers_real = f_moeda.
fa_036-rate = f_rate.
fa_036-embarca = fa_desp-embarca.
IF fa_036-vlreal IS INITIAL.
CLEAR fa_036-waers_real.
ENDIF.
ENDFORM. " entra_despesa
*&---------------------------------------------------------------------*
*& Form custeando_planejado
*&---------------------------------------------------------------------*
FORM custeando_planejado TABLES it_desp STRUCTURE it_desp
itab_zycit036 STRUCTURE itab_zycit036.
* Variáveis locais -----------------------------------------------------
DATA: v_flag, "Indica finalizaçao de Codigo/Ebeln/Ebelp.
v_ebelp LIKE konv-kposn,
v_bstyp LIKE ekko-bstyp,
v_ebeln LIKE ekpo-ebeln,
v_valor LIKE bsak-wrbtr.
* Tabelas Internas -----------------------------------------------------
DATA: BEGIN OF itab_zycit030_aux OCCURS 0,
nrseq LIKE /pws/zycie003-nrseq,
ebeln LIKE /pws/zycie003-ebeln, "Pedido
ebelp LIKE /pws/zycie003-ebelp, "Item do Pedido
codigo LIKE /pws/zycit030-codigo,
codmod LIKE /pws/zycit030-codmod,
kschl LIKE /pws/zycit030-kschl,
vtext LIKE /pws/zycit030-vtext,
fator LIKE /pws/zycit030-fator,
valor TYPE /pws/zycil816 ,
porcent LIKE konv-kbetr, "Porcentagem
END OF itab_zycit030_aux.
DATA: BEGIN OF itab_custo_condition OCCURS 0, "Valores das conditions
kposn LIKE konv-kposn,
kschl LIKE konv-kschl,
kwert LIKE konv-kwert,
kbetr LIKE konv-kbetr,
END OF itab_custo_condition.
DATA: BEGIN OF itab_zycit001 OCCURS 0,
nrseq LIKE /pws/zycie001-nrseq,
embarca LIKE /pws/zycie001-embarca,
bukrs LIKE /pws/zycie001-bukrs,
werks LIKE /pws/zycie001-werks,
waers LIKE /pws/zycie001-waers,
dtinicio LIKE /pws/zycie001-dtinicio,
END OF itab_zycit001.
DATA: BEGIN OF itab_a016 OCCURS 0.
INCLUDE STRUCTURE a016.
DATA: END OF itab_a016.
DATA: BEGIN OF itab_konp OCCURS 0.
INCLUDE STRUCTURE konp.
DATA: ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp.
DATA: END OF itab_konp.
DATA: itab_zycit036_plan LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE,
itab_zycit029 LIKE /pws/zycit029 OCCURS 0 WITH HEADER LINE,
itab_zycit030 LIKE /pws/zycit030 OCCURS 0 WITH HEADER LINE,
itab_zycit003 LIKE /pws/zycit003 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_ekpo OCCURS 0.
DATA: ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
menge TYPE ekpo-menge.
DATA: END OF itab_ekpo.
* Seleção dos dados ----------------------------------------------------
*Incoterm
READ TABLE it_desp INDEX 1.
SELECT SINGLE * FROM t001 WHERE bukrs EQ it_desp-bukrs.
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = it_desp-inco1
AND land1 EQ t001-land1.
*Todas as despesas parametrizadas
SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029
WHERE codmod EQ 'D'
AND land1 EQ t001-land1.
*Selecionar em cada despesas as coditions que estão parametrizadas
"Selecionar condições de pagamento
SELECT * FROM /pws/zycit030
INTO TABLE itab_zycit030
WHERE land1 EQ t001-land1 "Pais
AND bukrs = it_desp-bukrs "Empresa
AND codmod EQ 'D'.
IF sy-subrc NE 0.
SELECT * FROM /pws/zycit030
INTO TABLE itab_zycit030
WHERE land1 EQ t001-land1 "Somente por país
AND codmod EQ 'D'.
IF sy-subrc NE 0.
SELECT * FROM /pws/zycit030 " Selecionar tudo.
INTO TABLE itab_zycit030
WHERE codmod EQ 'D'.
ENDIF.
ENDIF.
*Selecionar Embarques
IF NOT it_desp[] IS INITIAL.
SELECT nrseq embarca bukrs werks waers dtinicio FROM /pws/zycit001
INTO TABLE itab_zycit001
FOR ALL ENTRIES IN it_desp
WHERE nrseq = it_desp-nrseq.
*Selecionar itens
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN it_desp
WHERE nrseq = it_desp-nrseq AND
ebeln = it_desp-ebeln AND
ebelp = it_desp-ebelp.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
FOR ALL ENTRIES IN it_desp
WHERE nrseq = it_desp-nrseq.
ENDIF.
* Processamento --------------------------------------------------------
IF /pws/zycit031-inco1_ci EQ 'FOB'.
DELETE itab_zycit030 WHERE codigo = 'CIF'
OR codigo = 'C&F'.
* or codigo = 'FOB'.
ELSEIF /pws/zycit031-inco1_ci EQ 'C&F'.
DELETE itab_zycit030 WHERE codigo = 'FOB'
OR codigo = 'CIF'
* or codigo = 'C&F'
OR codigo = 'FRETEI'.
ELSEIF /pws/zycit031-inco1_ci EQ 'CIF'.
DELETE itab_zycit030 WHERE codigo = 'C&F'
* or codigo = 'CIF'
OR codigo = 'FOB'
OR codigo = 'FRETEI'
OR codigo = 'SEGURO'.
ENDIF.
"Buscando o custo de cada contion em relação aos itens do embarque
FREE itab_zycit030_aux.
CLEAR v_ebeln.
"Seleção da quantidade de pedido para rateio
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
AND ebelp EQ it_desp-ebelp.
ENDIF.
ENDIF.
LOOP AT it_desp.
IF it_desp-ebeln NE v_ebeln.
CLEAR v_bstyp.
v_ebeln = it_desp-ebeln.
READ TABLE itab_zycit001 WITH KEY nrseq = it_desp-nrseq.
SELECT SINGLE bstyp FROM ekko INTO v_bstyp WHERE
ebeln = it_desp-ebeln.
IF v_bstyp EQ 'L'.
PERFORM verifica_exit USING 'D'
'/PWS/ZYCIR035'
'CST001'.
CLEAR: itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'CST001'.
IF sy-subrc EQ 0.
"Verifica se a Exit está ativa.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) TABLES it_desp
itab_konp.
ENDIF.
ELSE.
SELECT * FROM a016 INTO TABLE itab_a016
FOR ALL ENTRIES IN it_desp WHERE
evrtn = it_desp-ebeln AND
evrtp = it_desp-ebelp AND
datbi GE itab_zycit001-dtinicio AND
datab LE itab_zycit001-dtinicio.
IF sy-subrc EQ 0.
SELECT * FROM konp INTO TABLE itab_konp
FOR ALL ENTRIES IN itab_a016 WHERE
knumh = itab_a016-knumh AND
kappl = 'M'
AND krech = 'C' AND
loevm_ko = space.
LOOP AT itab_konp.
READ TABLE itab_a016 WITH KEY knumh = itab_konp-knumh.
itab_konp-ebeln = itab_a016-evrtn.
itab_konp-ebelp = itab_a016-evrtp.
MODIFY itab_konp TRANSPORTING ebeln ebelp.
ENDLOOP.
ENDIF.
ENDIF.
ELSE.
FREE itab_custo_condition.
SELECT SINGLE * FROM ekko "Selecionar Custo da Condition
INTO ekko
WHERE ebeln EQ it_desp-ebeln.
IF sy-subrc EQ 0.
SELECT kposn kschl kwert kbetr FROM konv
INTO CORRESPONDING FIELDS OF TABLE itab_custo_condition
WHERE knumv EQ ekko-knumv
AND kappl EQ 'M'.
ELSE.
MESSAGE w015 WITH text-006 itab_zycit003-ebeln.
ENDIF.
ENDIF.
ENDIF.
itab_zycit030_aux-nrseq = it_desp-nrseq.
itab_zycit030_aux-ebeln = it_desp-ebeln.
itab_zycit030_aux-ebelp = it_desp-ebelp.
IF /pws/zycie001-regime EQ '14' AND
/pws/zycie001-tpdecl EQ 'DI'.
LOOP AT itab_zycit030.
MOVE-CORRESPONDING itab_zycit030 TO itab_zycit030_aux.
IF v_bstyp EQ 'L'.
LOOP AT itab_konp WHERE ebeln = it_desp-ebeln AND
ebelp = it_desp-ebelp AND
kschl = itab_zycit030-kschl.
IF itab_konp-krech EQ 'C'.
IF NOT itab_konp-kpein IS INITIAL AND
NOT it_desp-qtd_iten IS INITIAL.
itab_zycit030_aux-valor = itab_konp-kbetr /
itab_konp-kpein * it_desp-qtd_iten.
itab_zycit030_aux-porcent = itab_konp-kbetr.
APPEND itab_zycit030_aux.
ENDIF.
ELSEIF itab_konp-krech EQ 'B'.
READ TABLE itab_ekpo WITH KEY ebeln = it_desp-ebeln
ebelp = it_desp-ebelp.
IF sy-subrc EQ 0.
itab_zycit030_aux-porcent = itab_konp-kbetr.
itab_zycit030_aux-valor = itab_konp-kbetr /
itab_ekpo-menge * it_desp-qtd_iten.
APPEND itab_zycit030_aux.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
"Gerando ebeln da itab_003 com 6 char p/ kposn da KONV.
CLEAR v_ebelp.
CONCATENATE '0' it_desp-ebelp INTO v_ebelp.
LOOP AT itab_custo_condition
WHERE kposn EQ v_ebelp "itab_zycit003-ebelp
AND kschl EQ itab_zycit030-kschl.
READ TABLE itab_ekpo WITH KEY ebeln = it_desp-ebeln
ebelp = it_desp-ebelp.
IF sy-subrc EQ 0.
itab_zycit030_aux-porcent = itab_custo_condition-kbetr .
itab_zycit030_aux-valor = itab_custo_condition-kwert /
itab_ekpo-menge * it_desp-qtd_iten.
APPEND itab_zycit030_aux.
ENDIF.
ENDLOOP.
ENDIF.
IF sy-subrc NE 0.
IF itab_zycit030-codigo EQ 'II' OR
itab_zycit030-codigo EQ 'IPI' OR
itab_zycit030-codigo EQ 'ICMS' OR
itab_zycit030-codigo EQ 'FRETEI' OR
itab_zycit030-codigo EQ 'SEGURO'.
CLEAR: itab_zycit030_aux-porcent, itab_zycit030_aux-valor.
APPEND itab_zycit030_aux. "Armazenando condiçoes de itens
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT itab_zycit030.
MOVE-CORRESPONDING itab_zycit030 TO itab_zycit030_aux.
IF v_bstyp EQ 'L'.
LOOP AT itab_konp WHERE ebeln = it_desp-ebeln AND
ebelp = it_desp-ebelp AND
kschl = itab_zycit030-kschl.
IF itab_konp-krech EQ 'C'.
IF NOT itab_konp-kpein IS INITIAL AND
NOT it_desp-qtd_iten IS INITIAL.
itab_zycit030_aux-valor = itab_konp-kbetr /
itab_konp-kpein * it_desp-qtd_iten.
itab_zycit030_aux-porcent = itab_konp-kbetr.
APPEND itab_zycit030_aux.
ENDIF.
ELSEIF itab_konp-krech EQ 'B'.
itab_zycit030_aux-porcent = itab_konp-kbetr.
itab_zycit030_aux-valor = itab_konp-kbetr /
it_desp-menge * it_desp-qtd_iten.
APPEND itab_zycit030_aux.
ENDIF.
ENDLOOP.
ELSE.
"Gerando ebeln da itab_003 com 6 char p/ kposn da KONV.
CLEAR v_ebelp.
CONCATENATE '0' it_desp-ebelp INTO v_ebelp.
LOOP AT itab_custo_condition
WHERE kposn EQ v_ebelp "itab_zycit003-ebelp
AND kschl EQ itab_zycit030-kschl.
itab_zycit030_aux-porcent = itab_custo_condition-kbetr .
itab_zycit030_aux-valor = itab_custo_condition-kwert /
it_desp-menge * it_desp-qtd_iten.
APPEND itab_zycit030_aux. "Armazenando condiçoes de itens
ENDLOOP.
ENDIF.
IF sy-subrc NE 0.
IF itab_zycit030-codigo EQ 'II' OR
itab_zycit030-codigo EQ 'IPI' OR
itab_zycit030-codigo EQ 'ICMS' OR
itab_zycit030-codigo EQ 'FRETEI' OR
itab_zycit030-codigo EQ 'SEGURO'.
CLEAR: itab_zycit030_aux-porcent, itab_zycit030_aux-valor.
APPEND itab_zycit030_aux. "Armazenando condiçoes de itens
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
"Calculando valor da despesas ( somando as condition de cada uma )
SORT itab_zycit030_aux BY nrseq ebeln ebelp codigo.
FREE itab_zycit036_plan.
CLEAR itab_zycit036_plan.
LOOP AT itab_zycit030_aux.
READ TABLE itab_zycit001 WITH KEY
nrseq = itab_zycit030_aux-nrseq.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit030_aux-nrseq
ebeln = itab_zycit030_aux-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.
v_valor = itab_zycit003-netpr.
PERFORM converter_moeda(/pws/sapmzyci010) USING
v_valor "VL atual
itab_zycit003-waers "ME atual
/pws/zycbt007-waersb
CHANGING v_valor.
IF /pws/zycbt007-waersb NE itab_zycit001-waers.
PERFORM converter_moeda(/pws/sapmzyci010)
USING v_valor
/pws/zycbt007-waersb
itab_zycit001-waers
CHANGING v_valor.
ENDIF.
IF v_valor NE 0.
itab_zycit030_aux-valor = v_valor * itab_zycit003-qtd_iten.
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.
itab_zycit036_plan-origem = 'PED'.
IF itab_zycit030_aux-fator EQ '+' OR
itab_zycit030_aux-fator IS INITIAL.
v_netpr = v_netpr + itab_zycit030_aux-valor .
ELSE.
v_netpr = v_netpr - itab_zycit030_aux-valor.
ENDIF.
AT END OF codigo. v_flag = 'X'. ENDAT.
AT END OF ebeln. v_flag = 'X'. ENDAT.
AT END OF ebelp. v_flag = 'X'. ENDAT.
"Se houve alguma finalizaçao para qualquer campo, fechar a soma.
"Gravar apenas se a despesa for disferente de 0.
IF v_flag EQ 'X'. "and v_netpr ne 0.
itab_zycit036_plan-netpr = v_netpr.
CLEAR: v_netpr, v_flag.
APPEND itab_zycit036_plan.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit036_plan.
READ TABLE itab_zycit036 WITH KEY
nrseq = itab_zycit036_plan-nrseq
ebeln = itab_zycit036_plan-ebeln
ebelp = itab_zycit036_plan-ebelp
codigo = itab_zycit036_plan-codigo
origem = itab_zycit036_plan-origem.
IF sy-subrc EQ 0.
MOVE itab_zycit036_plan TO itab_zycit036.
MODIFY itab_zycit036 INDEX sy-tabix TRANSPORTING netpr waers.
ELSE.
MOVE itab_zycit036_plan TO itab_zycit036.
IF itab_zycit036-netpr IS INITIAL.
CLEAR itab_zycit036-waers.
ENDIF.
APPEND itab_zycit036.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit443
WHERE codregtri = '3' OR
codregtri = '5'.
DELETE itab_zycit036
WHERE codigo = 'II' AND
nrseq = itab_zycit443-nrseq AND
ebeln = itab_zycit443-ebeln AND
ebelp = itab_zycit443-ebelp.
ENDLOOP.
LOOP AT itab_zycit443
WHERE codregtriipi = '1' OR
codregtriipi = '5'.
DELETE itab_zycit036
WHERE codigo = 'IPI' AND
nrseq = itab_zycit443-nrseq AND
ebeln = itab_zycit443-ebeln AND
ebelp = itab_zycit443-ebelp.
ENDLOOP.
ENDFORM. " CUSTEANDO_PLANEJADO
*&---------------------------------------------------------------------*
*& Form retorn_decimais
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_ITAB_ZYCIT036_WAERS text
* <--P_ITAB_ZYCIT036_VLREAL text
*----------------------------------------------------------------------*
FORM retorna_decimais USING p_itab_zycit036_waers_real
CHANGING p_itab_zycit036_vlreal.
" Transforma valor da moeda de acordo com casas decimais
SELECT SINGLE * FROM tcurx WHERE currkey = p_itab_zycit036_waers_real
.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
p_itab_zycit036_vlreal =
p_itab_zycit036_vlreal / ( 10 ** ( tcurx-currdec - 2 ) ).
ENDFORM. " retorn_decimais
*&---------------------------------------------------------------------*
*& Form verifica_exit
*&---------------------------------------------------------------------*
FORM verifica_exit USING p_modulo
p_func
p_exit.
CLEAR itab_zyglt100.
REFRESH itab_zyglt100.
CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
EXPORTING
i_codmod = p_modulo
i_func = p_func
i_zexit = p_exit
TABLES
itab_zyglt443 = itab_zyglt100
EXCEPTIONS
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
OTHERS = 4.
ENDFORM. " verifica_exit
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCIR495
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 001
Texto: (24 caracteres)
"Declaração de Importação"
Comprimento máximo: 24
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 006
Texto: (47 caracteres)
"Não foi encontrado nenhuma condition p/ Pedido:"
Comprimento máximo: 47
------------------------------------------------------------------------
Incluído textos de seleção:
PA_NRSEQ Declaração de Importação
PA_PLAN Propor Planejado
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCIR006
...
FORM custear_itens.
* >> Início da exclusão: FORM CUSTEAR_ITENS
IF /pws/zycie001-regime NE '14'.
* >> Fim da exclusão
* >> Início da inclusão: FORM CUSTEAR_ITENS
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '04'.
* >> Fim da inclusão
PERFORM calcular_outros_custos TABLES itab_zycit036.
ELSE.
PERFORM calcular_outros_custos_da TABLES itab_zycit036.
ENDIF.
ENDFORM. " CUSTEAR_ITENS
...
...
"Se estiver fazia importa
IF itab_zycit036[] IS INITIAL .
v_importou = 'S'.
indx-aedat = sy-datum.
indx-usera = sy-uname.
IMPORT itab_zycit036_auxiliar[] FROM MEMORY ID 'I006A'.
MOVE-CORRESPONDING itab_zycit036_auxiliar TO itab_zycit036.
ENDIF.
READ TABLE itab_zycit036 INDEX 1.
IF pa_nrseq IS INITIAL.
pa_nrseq = itab_zycit036-nrseq.
ENDIF.
SELECT SINGLE * FROM /pws/zycit001 WHERE nrseq = itab_zycit036-nrseq.
SELECT SINGLE *
FROM t001
WHERE bukrs EQ /pws/zycit001-bukrs.
CLEAR: itab_zycit140. FREE: itab_zycit140.
SELECT * FROM /pws/zycit140 INTO TABLE itab_zycit140
WHERE codmod EQ 'D' AND
land1 EQ t001-land1.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
WHERE nrseq EQ /pws/zycie001-nrseq.
READ TABLE itab_zycit003 INDEX 1.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
IF /pws/zycie001-regime = '04'.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
WHERE nrseq = /pws/zycie001-nrseq.
"Selecionar dados da DA, neste momento tem de ser selcionado.
READ TABLE itab_zycit443 INDEX 1.
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda = itab_zycit443-nrseqda.
ELSE.
* >> Fim da inclusão
SELECT SINGLE nrseqda FROM /pws/zycit442 INTO pa_nrseq
WHERE nrseqda = itab_zycit003-nrseqda.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
WHERE nrseqda = pa_nrseq.
"Selecionar dados da DA, neste momento tem de ser selcionado.
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda = pa_nrseq.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
ENDIF.
* >> Fim da inclusão
CLEAR: itab_tcurc, itab_zycit174.
REFRESH: itab_tcurc, itab_zycit174.
IF NOT itab_zycit443[] IS INITIAL AND
/pws/zycit442-mdadicao = 'N'.
SELECT * FROM tcurc INTO TABLE itab_tcurc
FOR ALL ENTRIES IN itab_zycit443
WHERE waers = itab_zycit443-waersbem.
SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174
WHERE vigen_inicio <= /pws/zycit442-dttax AND
vigen_fim >= /pws/zycit442-dttax AND
land1 = t001-land1.
ENDIF.
LOOP AT itab_zycit443.
IF /pws/zycit442-mdadicao = 'N'.
IF itab_zycit443-waersbem NE /pws/zycit442-waersfob.
CLEAR : /pws/zycit174, v_moeda.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit443-waersbem.
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.
...
...
DATA : BEGIN OF itab_zycit006_fat OCCURS 0.
INCLUDE STRUCTURE /pws/zycit006.
DATA : END OF itab_zycit006_fat.
IF NOT itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006_fat
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat
AND frpagto = 'A'
AND tpfatura NE '99'
AND eliminado NE 'X'.
ENDIF.
LOOP AT itab_zycit036 WHERE origem NE 'PED'.
IF itab_zycit036-netpr <= v_vl.
CLEAR itab_zycit036-netpr.
ENDIF.
CLEAR v_valor.
v_index = sy-tabix.
* Verificando se item já foi recebido portanto congelado.
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.
* Passando dados para outros campos, calculos e outros.
CASE itab_zycit036-codigo.
WHEN 'FOB' OR 'C&F' OR 'CIF'.
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.
SELECT SINGLE nrseq belnr_p dtincl FROM /pws/zycit006
INTO (v_nrseq_fat,v_belnr_p,v_dtincl)
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.
IF sy-subrc EQ 0 AND v_belnr_p IS INITIAL.
SELECT SINGLE belnr_p FROM /pws/zycit132
INTO (v_belnr_p)
WHERE nrseq EQ v_nrseq_fat.
ENDIF.
ENDIF.
IF sy-subrc = 0.
READ TABLE itab_zycit006
WITH KEY nrseq_pgfat = itab_zycit263-nrseq_pgfat.
IF sy-subrc NE 0 OR itab_zycit006-dt_belnrp IS INITIAL.
ELSE.
v_dtincl = itab_zycit006-dt_belnrp.
ENDIF.
SELECT SINGLE kursf FROM bkpf INTO v_kursf
WHERE bukrs = /pws/zycit001-bukrs
AND belnr = v_belnr_p
AND gjahr = v_dtincl+0(4).
AND gjahr = v_dtincl+0(4).
ENDIF.
ENDIF.
"Realizado em BRL para Movimentado.
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
v_valor = itab_zycit036-vlreal.
"Transforma valor da moeda de acordo com casas decimais
IF t001-land1 EQ 'CL'.
PERFORM trata_decimais USING itab_zycit036-waers_real
CHANGING v_valor.
ENDIF.
IF t001-land1 EQ 'BR'.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING v_valor.
ENDIF.
"Se já foi feito o recebimento, não mexer no Movimentado.
IF v_itemcongela NE 'X'.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
IF NOT /pws/zycit085-ukursfob IS INITIAL.
* >> Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
IF NOT /pws/zycit442-ukursfob IS INITIAL.
* >> Fim da inclusão
IF itab_zycit036-origem NE 'FAT'.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob.
ELSE.
itab_zycit036-vlmov = v_valor * v_kursf.
ENDIF.
ELSE.
IF itab_zycit036-origem NE 'FAT'.
READ TABLE itab_zycit443
WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
ELSE.
PERFORM converter_moeda USING v_valor "VL usd
itab_zycit036-waers_real "ME usd
/pws/zycbt007-waersb "ME destino
CHANGING itab_zycit036-vlmov.
ENDIF.
ELSE.
itab_zycit036-vlmov = v_valor * v_kursf.
ENDIF.
ENDIF.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING itab_zycit036-vlmov.
CLEAR: itab_zycit036-vldif, itab_zycit036-waers_dif.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
...