Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 03/10/2014 09:44:49
Data/Hora Última Alteração: 03/10/2014 09:44:49
Descrição da Nota: AJUSTE PARA TRATAMENTO DE ICMS EXONERADO
Sintoma
Ajuste para tratamento de ICMS exonerado para o estado do Paraná.
Solução
Ajuste para tratamento de ICMS exonerado para o estado do Paraná.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 14235 Data: 30/09/2014 Hora: 16:48:14
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 14235
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00008
Agrupamento : 00175
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
11017 - 00001 - 8.0 - 00006 - VALOR CIF COM ORIGEM NA NOTA FISCAL ESTÁ ERRADO NO CUSTO EFETIVO
13877 - 00002 - 9.0 - 00007 - TRATAMENTO PARA QUEBRA DE PIS NA NF (NOTA FISCAL)
14214 - 00003 - 9.0 - 00008 - TRATAMENTO PARA NUMERO DE RECOPI.
----------------------------------------------------------------------------------------------------
AJUSTE PARA TRATAMENTO DE ICMS EXONERADO
----------------------------------------------------------------------------------------------------
Palavras Chave:
DESENVOLVIMENTO - ICMS - EXONERADO - ESTADO - PARANA - DI - NOTA -
/PWS/SAPMZYCI023 - /PWS/SAPMZYCI016 - /PWS/SAPMZYCI017
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYCIL781
TABD /PWS/ZYCIE100A
TABD /PWS/ZYCIT100
DYNP /PWS/SAPMZYCI023 0433
REPS /PWS/MZYCI017F02
REPS /PWS/ZYCIR006
REPS /PWS/MZYCI016F02
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL781
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL781
Classe de desenvolvimento: /PWS/ZYCI
Idioma original: PT
Descrição breve incluída: (14 caracteres), idioma: PT
"GL - Exonerado"
Categoria de dados: Domínio
Domínio: XFELD
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (9 caracteres), idioma: PT
"Exonerado"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (14 caracteres), idioma: PT
"ICMS Exonerado"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (14 caracteres), idioma: PT
"ICMS Exonerado"
Comprimento máximo do título: 14
Título incluído (14 caracteres), idioma: PT
"ICMS Exonerado"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE100A
Nome de campo |Elem.dados
...
BS_ICMS_NF |/PWS/ZYCIL307
RECOPI |/PWS/ZYCIL780
* >> Início da inclusão:
EXONERA |/PWS/ZYCIL781
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT100
Nome de campo |Elem.dados
...
BS_ICMS_NF |/PWS/ZYCIL307
RECOPI |/PWS/ZYCIL780
* >> Início da inclusão:
EXONERA |/PWS/ZYCIL781
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI023 0433
O Download das telas encontra-se disponível no link abaixo
http://produtos.sondait.com.br/home/PW.CE/Notas/
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023O01
WHEN '0433'.
IF screen-name EQ '/PWS/ZYCIE100A-CODREGTRIICMS'.
IF itab_zycit001-regime EQ '12' AND
/pws/zycie003-adm_temp EQ 'X'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN_PADRAO
IF /pws/zycie100a-exonera EQ 'X' .
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN_PADRAO
IF screen-name EQ '/PWS/ZYCIE100A-EXONERA'.
IF v_region NE 'PR' OR
/pws/zycie100a-codregtriicms NE '5'.
screen-input = '0'.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDIF.
* << Fim da inclusão
IF /pws/zycit062-icms_st EQ 'X'.
IF ( screen-name EQ 'T_ICMSBS_ST' OR
screen-name EQ '/PWS/ZYCIE100A-ALIQ_ICMS_ST' ) .
IF ( /pws/zycie100a-edita_st EQ 'X' OR
/pws/zycie100a-aliq_icms_st IS INITIAL ).
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F02
...
CLEAR v_cont.
DESCRIBE TABLE itab_global LINES v_cont.
CLEAR v_tabix.
LOOP AT itab_global.
v_tabix = v_tabix + 1.
CLEAR itab_zycbt035_aux.
CLEAR itab_zycit100.
READ TABLE itab_zycit100 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
* >> Início da exclusão: FORM ADICIONA_OUTROS_IMPOSTOS
IF itab_zycit100-vlpis IS INITIAL AND
itab_zycit100-vlcofins IS INITIAL
OR ( itab_zycit100-codregtripiscofi EQ '5'
OR itab_zycit100-codregtripiscofi EQ '3' ).
CONTINUE.
ENDIF.
* << Fim da exclusão
CLEAR itab_zycit003.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR itab_ekkn.
READ TABLE itab_ekkn WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR itab_matuse.
READ TABLE itab_matuse WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
...
...
EXPORTING
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp
IMPORTING
centro_lucro = itab_zycbt035_aux-d_prctr.
itab_zycbt035_aux-c_prctr = itab_zycbt035_aux-d_prctr.
ENDIF.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse.
itab_zycbt035_aux-werks = itab_zycit003-werks.
itab_zycbt035_aux-d_gsber = itab_zycit003-gsber.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
IF itab_zycit100-exonera EQ 'X'.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp
codigo = 'ICMS'
origem = 'NF'.
IF sy-subrc NE 0 .
SELECT SINGLE * FROM /pws/zycit036
INTO itab_zycit036
WHERE nrseq = itab_global-nrseq
AND ebeln = itab_global-ebeln
AND ebelp = itab_global-ebelp
AND codigo = 'ICMS'
AND origem = 'NF'.
ENDIF.
itab_zycbt035_aux-imposto = 'ICMS'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit036-vlmov ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
IF itab_zycit100-vlpis IS INITIAL AND
itab_zycit100-vlcofins IS INITIAL
OR ( itab_zycit100-codregtripiscofi EQ '5'
OR itab_zycit100-codregtripiscofi EQ '3' ).
CONTINUE.
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit100-vlpis IS INITIAL.
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_zycbt035_aux-lei102 = itab_zycit398-lei102.
itab_zycbt035_aux-imposto = 'PIS'.
itab_zycbt035_aux-debcred = itab_zycit398-creditar.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_global-nrseq
...
...
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'COFINS'.
IF sy-subrc EQ 0 AND itab_zycit398-creditar EQ 'S'.
IF NOT itab_zycit100-vlcofins IS INITIAL.
itab_zycbt035_aux-imposto = 'BCOF'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-basecofins ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'ICMS'.
CLEAR itab_zycbt035_aux2.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-bschl = itab_zycbt035_aux-bschl.
itab_zycbt035_aux2-bklas = itab_zycbt035_aux-bklas.
itab_zycbt035_aux2-werks = itab_zycbt035_aux-werks.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
itab_zycbt035_aux2-d_prctr = itab_zycbt035_aux-d_prctr.
itab_zycbt035_aux2-c_prctr = itab_zycbt035_aux-c_prctr.
IF itab_zycbt035_aux2-bschl EQ '50'.
v_matuse = itab_zycbt035_aux2-matuse.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING wa_nf-bukrs
'IPA'
itab_zycbt035_aux2-werks
itab_zycbt035_aux2-bklas
v_matuse
space
space.
READ TABLE itab_cta INDEX 1.
itab_zycbt035_aux2-ktosl = 'IPA'.
IF itab_cta-konts IS INITIAL.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING wa_nf-bukrs
'IPA'
itab_zycbt035_aux2-werks
space
v_matuse
space
space.
READ TABLE itab_cta INDEX 1.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
itab_zycbt035_aux2-d_newko = itab_cta-konts.
CLEAR itab_zycbt035_aux2-ps_psp_pnr.
PERFORM verify_null_field
USING itab_zycbt035_aux2-d_newko 'D_NEWKO'
text-016.
ELSEIF itab_zycbt035_aux2-bschl EQ '40'.
itab_zycbt035_aux2-tribicms = 1.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING wa_nf-bukrs
'ICR'
itab_zycbt035_aux2-werks
itab_zycbt035_aux2-bklas
itab_zycbt035_aux2-tribicms
itab_zycbt035_aux2-matuse
space.
itab_zycbt035_aux2-ktosl = 'ICR'.
READ TABLE itab_cta INDEX 1.
itab_zycbt035_aux2-d_newko = itab_cta-konts.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
COLLECT itab_zycbt035_aux2.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'PIS' OR
imposto EQ 'PISP' .
CLEAR itab_zycbt035_aux2.
MOVE: itab_zycbt035_aux-bschl TO itab_zycbt035_aux2-bschl ,
itab_zycbt035_aux-matuse TO itab_zycbt035_aux2-matuse ,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR006
...
v_index = sy-tabix.
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.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
IF itab_zycit036-codigo EQ 'ICMS' AND
itab_zycit036-origem EQ 'NF' AND
NOT itab_zycit036-vlreal GT 0.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF itab_zycit100-exonera EQ 'X'.
CONTINUE.
ENDIF.
ENDIF.
* << Fim da inclusão
CASE itab_zycit036-codigo.
WHEN 'FOB' OR 'C&F' OR 'CIF' OR 'C+I'.
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
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F02
...
* >> Início da inclusão:
FORM trata_icms_exo.
DATA: v_ls TYPE /pws/zycit036-vlmov,
v_li TYPE /pws/zycit036-vlmov.
LOOP AT itab_zycit100 WHERE exonera EQ 'X'.
CLEAR itab_zycit036.
DELETE itab_zycit036
WHERE codigo EQ 'ICMS'
AND origem EQ 'NF'
AND ebeln = itab_zycit100-ebeln
AND ebelp = itab_zycit100-ebelp.
READ TABLE itab_zycit003 WITH KEY
ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp.
itab_zycit036-mandt = sy-mandt.
itab_zycit036-nrseq = itab_zycit100-nrseq.
itab_zycit036-ebeln = itab_zycit100-ebeln.
itab_zycit036-ebelp = itab_zycit100-ebelp.
itab_zycit036-codigo = 'ICMS'.
itab_zycit036-origem = 'NF'.
itab_zycit036-bukrs = /pws/zycit001-bukrs.
itab_zycit036-werks = itab_zycit003-werks.
itab_zycit036-codmod = 'D'.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
itab_zycit036-rate = itab_zycit003-aliqicms.
itab_zycit036-embarca = /pws/zycit001-embarca.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
itab_zycit036-vlmov = ( ( itab_zycit003-aliqicms / 100 ) *
itab_zycit100-baseicms ) * '0.6666-'.
v_ls = '0.08-' * itab_zycit100-baseicms.
v_li = '0.04-' * itab_zycit100-baseicms.
IF v_ls > itab_zycit036-vlmov.
itab_zycit036-vlmov = v_ls.
ELSEIF v_li < itab_zycit036-vlmov.
itab_zycit036-vlmov = v_li.
ENDIF.
APPEND itab_zycit036.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
itab_zycit036-vlreal = itab_zycit036a-vlreal.
itab_zycit036-vlmov = itab_zycit036a-vlmov.
MODIFY itab_zycit036 TRANSPORTING vlreal vlmov
WHERE ebeln = itab_zycit036a-ebeln
AND ebelp = itab_zycit036a-ebelp
AND nrseq = itab_zycit036a-nrseq
AND nrseqori = itab_zycit036a-nrseqori
AND origem = itab_zycit036a-origem
AND codigo = itab_zycit036a-codigo.
ENDLOOP.
* >> Início da inclusão: FORM VISUALIZA_RATEIO
PERFORM trata_icms_exo.
* << Fim da inclusão
ENDFORM.
...
...
WHERE tpnf EQ itab_global-tpnf AND
bukrs EQ space.
ENDIF.
ENDIF.
LOOP AT itab_global.
CLEAR itab_zycbt035_aux.
CLEAR itab_zycit100.
READ TABLE itab_zycit100 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
* >> Início da exclusão: FORM ADICIONA_OUTROS_IMPOSTOS
IF itab_zycit100-vlpis IS INITIAL AND
itab_zycit100-vlcofins IS INITIAL.
CONTINUE.
ENDIF.
* << Fim da exclusão
CLEAR itab_zycit003.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR itab_ekkn.
READ TABLE itab_ekkn WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR itab_matuse.
READ TABLE itab_matuse WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
...
...
ELSEIF itab_matuse-knttp = 'F' AND itab_matuse-j_1bmatuse NE '3'.
CLEAR itab_aufk. REFRESH itab_aufk.
SELECT SINGLE aufnr prctr FROM aufk INTO itab_aufk
WHERE aufnr EQ itab_ekkn-aufnr.
itab_zycbt035_aux-d_prctr = itab_aufk-prctr.
itab_zycbt035_aux-c_prctr = itab_aufk-prctr.
ENDIF.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse.
itab_zycbt035_aux-werks = itab_zycit003-werks.
itab_zycbt035_aux-d_gsber = itab_zycit003-gsber.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
IF itab_zycit100-exonera EQ 'X'.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp
codigo = 'ICMS'
origem = 'NF'.
IF sy-subrc NE 0 .
SELECT SINGLE * FROM /pws/zycit036
INTO itab_zycit036
WHERE nrseq = itab_global-nrseq
AND ebeln = itab_global-ebeln
AND ebelp = itab_global-ebelp
AND codigo = 'ICMS'
AND origem = 'NF'.
ENDIF.
itab_zycbt035_aux-imposto = 'ICMS'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit036-vlmov ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
IF itab_zycit100-vlpis IS INITIAL AND
itab_zycit100-vlcofins IS INITIAL.
CONTINUE.
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit100-vlpis IS INITIAL.
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'PIS'.
itab_zycbt035_aux-imposto = 'PIS'.
itab_zycbt035_aux-debcred = itab_zycit398-creditar.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-vlpis ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
...
...
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'ICMSST'.
IF sy-subrc EQ 0 AND itab_zycit398-creditar EQ 'S'.
IF NOT itab_zycit100-vlicms_st IS INITIAL.
itab_zycbt035_aux-imposto = 'BST'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-baseicms_st ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'ICMS'.
CLEAR itab_zycbt035_aux2.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-bschl = itab_zycbt035_aux-bschl.
itab_zycbt035_aux2-bklas = itab_zycbt035_aux-bklas.
itab_zycbt035_aux2-werks = itab_zycbt035_aux-werks.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
itab_zycbt035_aux2-d_prctr = itab_zycbt035_aux-d_prctr.
itab_zycbt035_aux2-c_prctr = itab_zycbt035_aux-c_prctr.
IF itab_zycbt035_aux2-bschl EQ '50'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'IPA'
itab_zycbt035_aux2-werks
itab_zycbt035_aux2-bklas
itab_zycbt035_aux2-matuse
space
space.
READ TABLE itab_cta INDEX 1.
itab_zycbt035_aux2-ktosl = 'IPA'.
IF itab_cta-konts IS INITIAL.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'IPA'
itab_zycbt035_aux2-werks
space
itab_zycbt035_aux2-matuse
space
space.
READ TABLE itab_cta INDEX 1.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
itab_zycbt035_aux2-d_newko = itab_cta-konts.
CLEAR itab_zycbt035_aux2-ps_psp_pnr.
PERFORM verify_null_field
USING itab_zycbt035_aux2-d_newko 'D_NEWKO'
text-016.
ELSEIF itab_zycbt035_aux2-bschl EQ '40'.
itab_zycbt035_aux2-tribicms = 1.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'ICR'
itab_zycbt035_aux2-werks
itab_zycbt035_aux2-bklas
itab_zycbt035_aux2-tribicms
itab_zycbt035_aux2-matuse
space.
itab_zycbt035_aux2-ktosl = 'ICR'.
READ TABLE itab_cta INDEX 1.
itab_zycbt035_aux2-d_newko = itab_cta-konts.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
COLLECT itab_zycbt035_aux2.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'PIS'.
CLEAR itab_zycbt035_aux2.
MOVE: itab_zycbt035_aux-bschl TO itab_zycbt035_aux2-bschl ,
itab_zycbt035_aux-imposto TO itab_zycbt035_aux2-imposto,
itab_zycbt035_aux-matuse TO itab_zycbt035_aux2-matuse ,
...
...
CLEAR v_cont.
DESCRIBE TABLE itab_global LINES v_cont.
CLEAR v_tabix.
LOOP AT itab_global.
v_tabix = v_tabix + 1.
CLEAR itab_zycbt035_aux.
CLEAR itab_zycit100.
READ TABLE itab_zycit100 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
* >> Início da exclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
IF itab_zycit100-vlpis IS INITIAL AND
itab_zycit100-vlcofins IS INITIAL
OR ( itab_zycit100-codregtripiscofi EQ '5'
OR itab_zycit100-codregtripiscofi EQ '3' ).
CONTINUE.
ENDIF.
* << Fim da exclusão
CLEAR itab_zycit003.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR lt_ekkn.
READ TABLE lt_ekkn WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR itab_matuse.
READ TABLE itab_matuse WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
...
...
EXPORTING
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp
IMPORTING
centro_lucro = itab_zycbt035_aux-d_prctr.
itab_zycbt035_aux-c_prctr = itab_zycbt035_aux-d_prctr.
ENDIF.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse.
itab_zycbt035_aux-werks = itab_zycit003-werks.
itab_zycbt035_aux-d_gsber = itab_zycit003-gsber.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
IF itab_zycit100-exonera EQ 'X'.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp
codigo = 'ICMS'
origem = 'NF'.
IF sy-subrc NE 0 .
SELECT SINGLE * FROM /pws/zycit036
INTO itab_zycit036
WHERE nrseq = itab_global-nrseq
AND ebeln = itab_global-ebeln
AND ebelp = itab_global-ebelp
AND codigo = 'ICMS'
AND origem = 'NF'.
ENDIF.
itab_zycbt035_aux-imposto = 'ICMS'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit036-vlmov ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
IF itab_zycit100-vlpis IS INITIAL AND
itab_zycit100-vlcofins IS INITIAL
OR ( itab_zycit100-codregtripiscofi EQ '5'
OR itab_zycit100-codregtripiscofi EQ '3' ).
CONTINUE.
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit100-vlpis IS INITIAL.
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_zycbt035_aux-lei102 = itab_zycit398-lei102.
itab_zycbt035_aux-imposto = 'PIS'.
itab_zycbt035_aux-debcred = itab_zycit398-creditar.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_global-nrseq
...
...
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'COFINS'.
IF sy-subrc EQ 0 AND itab_zycit398-creditar EQ 'S'.
IF NOT itab_zycit100-vlcofins IS INITIAL.
itab_zycbt035_aux-imposto = 'BCOF'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-basecofins ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'ICMS'.
CLEAR itab_zycbt035_aux2.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-bschl = itab_zycbt035_aux-bschl.
itab_zycbt035_aux2-bklas = itab_zycbt035_aux-bklas.
itab_zycbt035_aux2-werks = itab_zycbt035_aux-werks.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
itab_zycbt035_aux2-d_prctr = itab_zycbt035_aux-d_prctr.
itab_zycbt035_aux2-c_prctr = itab_zycbt035_aux-c_prctr.
IF itab_zycbt035_aux2-bschl EQ '50'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'IPA'
itab_zycbt035_aux2-werks
itab_zycbt035_aux2-bklas
itab_zycbt035_aux2-matuse
space
space.
READ TABLE itab_cta INDEX 1.
itab_zycbt035_aux2-ktosl = 'IPA'.
IF itab_cta-konts IS INITIAL.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'IPA'
itab_zycbt035_aux2-werks
space
itab_zycbt035_aux2-matuse
space
space.
READ TABLE itab_cta INDEX 1.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
itab_zycbt035_aux2-d_newko = itab_cta-konts.
CLEAR itab_zycbt035_aux2-ps_psp_pnr.
PERFORM verify_null_field
USING itab_zycbt035_aux2-d_newko 'D_NEWKO'
text-016.
ELSEIF itab_zycbt035_aux2-bschl EQ '40'.
itab_zycbt035_aux2-tribicms = 1.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'ICR'
itab_zycbt035_aux2-werks
itab_zycbt035_aux2-bklas
itab_zycbt035_aux2-tribicms
itab_zycbt035_aux2-matuse
space.
itab_zycbt035_aux2-ktosl = 'ICR'.
READ TABLE itab_cta INDEX 1.
itab_zycbt035_aux2-d_newko = itab_cta-konts.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
COLLECT itab_zycbt035_aux2.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'PIS' OR
imposto EQ 'PISP' .
CLEAR itab_zycbt035_aux2.
MOVE: itab_zycbt035_aux-bschl TO itab_zycbt035_aux2-bschl ,
itab_zycbt035_aux-matuse TO itab_zycbt035_aux2-matuse ,
...