CE PLUS - Nota 003425

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

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

NF PARA PROCESSO DE RECOF

DA PARA ESTORNAR PAGAMENTO ANTECIPADO NA FATURA

DI E DA COM PARAMETRO DA 062

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.

 

...