Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 20/11/2013 17:46:07
Data/Hora Última Alteração: 20/11/2013 17:46:07
Descrição da Nota: TABELAS DE ALIQUOTA DE PIS E COFINS NÃO VERIFICA VIGENCIA NA DI
Sintoma
Tabelas de aliquota de pis e cofins não verifica vigência na DI, trazendo aliquotas diferentes da NF
Solução
Atualizado programa para verificar a vigência das exceções de aliquota PIS/COFINS para trazer as
alíquotas.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 13226 Data: 06/09/2013 Hora: 08:50:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 13226
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00006
Agrupamento : 00164
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12985 - 00001 - 9.0 - 00004 - PARÂMETROS NA /PWS/ZYCIT405 E 406 NÃO VERIFICAM SE REGIME EXISTE.
13076 - 00002 - 9.0 - 00005 - ATUALIZAR ALÍQUOTAS NA DI - DESENVOLVIMENTO ADICIONAL
13226 - 00003 - 9.0 - 00006 - TABELAS DE ALIQUOTA DE PIS E COFINS NÃO VERIFICA VIGENCIA NA DI
----------------------------------------------------------------------------------------------------
TABELAS DE ALIQUOTA DE PIS E COFINS NÃO VERIFICA VIGENCIA NA DI
----------------------------------------------------------------------------------------------------
Palavras Chave:
DI -ZYCIT405 - ZYCIT406 - ALIQUOTA - PIS - COFINS
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F05
REPS /PWS/MZYCI023X01
REPS /PWS/MZYCI023F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F05
...
itab_it-basred = itab_imposto-basred.
ENDIF.
IF itab_it-basred IS INITIAL.
itab_it-basred = '100'.
ENDIF.
IF itab_it-basredpis IS INITIAL.
READ TABLE itab_zycit406
WITH KEY matnr = itab_it-matnr
regime = itab_zycit001-regime
tributos = 'PIS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit406-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredpis = itab_zycit406-basred.
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405
WITH KEY ncm = itab_it-j_1bnbm
regime = itab_zycit001-regime
tributos = 'PIS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit405-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredpis = itab_zycit405-basred.
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407
WITH KEY tributos = 'PIS'
regime = itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit407-basred.
itab_it-pis_alorig =
...
...
itab_it-basredpis = itab_it-advalpis.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredpis IS INITIAL.
READ TABLE itab_zycit406 WITH KEY matnr = itab_it-matnr
tributos = 'PIS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit406-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredpis = itab_zycit406-basred.
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405 WITH KEY ncm = itab_it-j_1bnbm
tributos = 'PIS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit405-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredpis = itab_zycit405-basred.
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit407-basred.
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit407-aliquotas.
ELSE.
...
...
itab_it-vlpis .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
READ TABLE itab_zycit406
WITH KEY matnr = itab_it-matnr
regime = itab_zycit001-regime
tributos = 'COFINS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit406-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredcof = itab_zycit406-basred.
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405
WITH KEY ncm = itab_it-j_1bnbm
regime = itab_zycit001-regime
tributos = 'COFINS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit405-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredcof = itab_zycit405-basred.
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407
WITH KEY tributos = 'COFINS'
regime = itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit407-basred.
itab_it-cof_alorig =
...
...
itab_it-basredcof = itab_it-advalcofins.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
READ TABLE itab_zycit406 WITH KEY matnr = itab_it-matnr
tributos = 'COFINS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit406-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredcof = itab_zycit406-basred.
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405 WITH KEY ncm = itab_it-j_1bnbm
tributos = 'COFINS'.
* >> Início da exclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ALIQUOTAS
IF sy-subrc EQ 0
AND itab_zycit405-vigencia LE /pws/zycie085-dttax.
* << Fim da inclusão
itab_it-basredcof = itab_zycit405-basred.
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit407-basred.
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit407-aliquotas.
ELSE.
...
...
* >> Início da inclusão:
FORM load_aliqpiscof.
LOOP AT itab_it.
v_idx = sy-tabix.
READ TABLE itab_zycit003 WITH KEY
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF itab_it-basredpis IS INITIAL.
READ TABLE itab_zycit406
WITH KEY matnr = itab_zycit003-matnr
regime = itab_zycit001-regime
tributos = 'PIS'.
IF sy-subrc EQ 0 AND itab_zycit406-vigencia LE /pws/zycie085-dttax.
itab_it-basredpis = itab_zycit406-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405
WITH KEY ncm = itab_it-j_1bnbm
regime = itab_zycit001-regime
tributos = 'PIS'.
IF sy-subrc EQ 0 AND
itab_zycit405-vigencia LE /pws/zycie085-dttax.
itab_it-basredpis = itab_zycit405-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407
WITH KEY tributos = 'PIS'
regime = itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit407-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit407-aliquotas.
ELSE.
itab_it-basredpis = itab_it-advalpis.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredpis IS INITIAL.
READ TABLE itab_zycit406 WITH KEY matnr = itab_zycit003-matnr
tributos = 'PIS'.
IF sy-subrc EQ 0 AND
itab_zycit406-vigencia LE /pws/zycie085-dttax.
itab_it-basredpis = itab_zycit406-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405 WITH KEY ncm = itab_it-j_1bnbm
tributos = 'PIS'.
IF sy-subrc EQ 0 AND
itab_zycit405-vigencia LE /pws/zycie085-dttax.
itab_it-basredpis = itab_zycit405-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit407-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit407-aliquotas.
ELSE.
itab_it-basredpis = itab_it-advalpis.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
READ TABLE itab_zycit406
WITH KEY matnr = itab_zycit003-matnr
regime = itab_zycit001-regime
tributos = 'COFINS'.
IF sy-subrc EQ 0 AND
itab_zycit406-vigencia LE /pws/zycie085-dttax.
itab_it-basredcof = itab_zycit406-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405
WITH KEY ncm = itab_it-j_1bnbm
regime = itab_zycit001-regime
tributos = 'COFINS'.
IF sy-subrc EQ 0 AND
itab_zycit405-vigencia LE /pws/zycie085-dttax.
itab_it-basredcof = itab_zycit405-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407
WITH KEY tributos = 'COFINS'
regime = itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit407-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit407-aliquotas.
ELSE.
itab_it-basredcof = itab_it-advalcofins.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
READ TABLE itab_zycit406 WITH KEY matnr = itab_zycit003-matnr
tributos = 'COFINS'.
IF sy-subrc EQ 0 AND
itab_zycit406-vigencia LE /pws/zycie085-dttax.
itab_it-basredcof = itab_zycit406-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405 WITH KEY ncm = itab_it-j_1bnbm
tributos = 'COFINS'.
IF sy-subrc EQ 0 AND
itab_zycit405-vigencia LE /pws/zycie085-dttax.
itab_it-basredcof = itab_zycit405-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit407-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit407-aliquotas.
ELSE.
itab_it-basredcof = itab_it-advalcofins.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
MODIFY itab_it INDEX v_idx.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
* >> Início da inclusão:
DATA: itab_zycit405 TYPE /pws/zycit405 OCCURS 0 WITH HEADER LINE,
itab_zycit406 TYPE /pws/zycit406 OCCURS 0 WITH HEADER LINE,
itab_zycit407 TYPE /pws/zycit407 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
FORM fill_itabit.
DATA: v_decim1 TYPE /pws/zycit245-qtd_tot,
v_decim2 TYPE /pws/zycit245-qtd_tot.
CLEAR itab_itens_funcao.
REFRESH itab_itens_funcao.
DATA: BEGIN OF itab_inco OCCURS 0.
DATA: ebeln LIKE ekko-ebeln,
inco1 LIKE ekko-inco1.
DATA END OF itab_inco.
* >> Início da exclusão: FORM FILL_ITABIT
DATA: itab_zycit405 TYPE /pws/zycit405 OCCURS 0 WITH HEADER LINE,
itab_zycit406 TYPE /pws/zycit406 OCCURS 0 WITH HEADER LINE,
itab_zycit407 TYPE /pws/zycit407 OCCURS 0 WITH HEADER LINE.
* << Fim da exclusão
IF NOT itab_zycit003[] IS INITIAL.
SELECT DISTINCT ebeln inco1 FROM ekko
INTO TABLE itab_inco
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln.
LOOP AT itab_zycit003 WHERE inco1 EQ space.
CLEAR itab_inco.
READ TABLE itab_inco WITH KEY ebeln = itab_zycit003-ebeln.
itab_zycit003-inco1 = itab_inco-inco1.
MODIFY itab_zycit003 TRANSPORTING inco1
...
...
ENDIF.
ELSE.
IF itab_it-pproc IS INITIAL.
IF NOT itab_it-porigem IS INITIAL.
itab_it-pproc = itab_it-porigem.
ELSE.
itab_it-pproc = itab_zycit003-paisfab.
ENDIF.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
IF sy-tcode EQ '/PWS/ZYCI023_C' .
* << Fim da exclusão
IF itab_zycit003-matnr IS INITIAL.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
itab_zycit003-matnr = itab_ekpo-matnr.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
IF itab_it-basredpis IS INITIAL.
READ TABLE itab_zycit406
WITH KEY matnr = itab_zycit003-matnr
regime = itab_zycit001-regime
tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit406-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405
WITH KEY ncm = itab_it-j_1bnbm
regime = itab_zycit001-regime
tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit405-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407
WITH KEY tributos = 'PIS'
regime = itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit407-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit407-aliquotas.
ELSE.
itab_it-basredpis = itab_it-advalpis.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredpis IS INITIAL.
READ TABLE itab_zycit406 WITH KEY matnr = itab_zycit003-matnr
tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit406-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405 WITH KEY ncm = itab_it-j_1bnbm
tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit405-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = itab_zycit407-basred .
itab_it-pis_alorig =
itab_it-advalpis = itab_zycit407-aliquotas.
ELSE.
itab_it-basredpis = itab_it-advalpis.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
READ TABLE itab_zycit406
WITH KEY matnr = itab_zycit003-matnr
regime = itab_zycit001-regime
tributos = 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit406-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405
WITH KEY ncm = itab_it-j_1bnbm
regime = itab_zycit001-regime
tributos = 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit405-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407
WITH KEY tributos = 'COFINS'
regime = itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit407-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit407-aliquotas.
ELSE.
itab_it-basredcof = itab_it-advalcofins.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
READ TABLE itab_zycit406 WITH KEY matnr = itab_zycit003-matnr
tributos = 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit406-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit406-aliquotas.
ELSE.
READ TABLE itab_zycit405 WITH KEY ncm = itab_it-j_1bnbm
tributos = 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit405-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit405-aliquotas.
ELSE.
READ TABLE itab_zycit407 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = itab_zycit407-basred .
itab_it-cof_alorig =
itab_it-advalcofins = itab_zycit407-aliquotas.
ELSE.
itab_it-basredcof = itab_it-advalcofins.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
ENDIF.
ENDIF.
* << Fim da exclusão
IF itab_it-pis_alorig IS INITIAL.
itab_it-pis_alorig = itab_it-advalpis.
ENDIF.
IF itab_it-cof_alorig IS INITIAL.
...
...
FORM refresh_all.
* >> Início da inclusão: FORM REFRESH_ALL
IF sy-tcode EQ '/PWS/ZYCI023_C' .
PERFORM load_aliqpiscof.
ENDIF.
* << Fim da inclusão
...