Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 18/12/2013 10:39:59
Data/Hora Última Alteração: 18/12/2013 10:39:59
Descrição da Nota: TRATAMENTO PARA QUEBRA DE COFINS NA NF (NOTA FISCAL)
Sintoma
Tratamento para quebra de cofins na nf (nota fiscal)
Solução
Novo tratamento na nota fiscal para quebrar o cofins quando um
percentual for custo e outro crédito, cadastrar no SAP o código COFIN1 para realizar a quebra.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12870 Data: 25/03/2013 Hora: 14:40:22
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12870
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 9.0
Pacote : 00004
Agrupamento : 00151
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02026 - 00001 - 6.0 - 00024 - VÁRIAS DECLARAÇÕES NOS PROGRAMAS ESTÃO DANDO ERRO NA VERSÃO 6.0 D
03588 - 00002 - 7.0 - 00001 - LEI FISCAL REFERENTE PIS/COFINS NA NOTA FISCAL
03667 - 00003 - 7.0 - 00001 - PREENCHE LEI DE PIS E COFINS SEMPRE QUE PARAMETRIZADO.
04644 - 00004 - 7.0 - 00002 - ERRO DI JPY + GRANEL NO VALOR DO SEGURO E VARIAÇÃO DO RODOVIÁRIO
04669 - 00005 - 7.0 - 00003 - DATA DE LANÇAMENTO DO ESTORNO DA NF
04673 - 00006 - 7.0 - 00003 - NA NF NÃO LEVA VALOR DE ICMS, DIFERENÇA NA LINHA DO IPI
04679 - 00007 - 7.0 - 00003 - DI NÃO ESTÁ RESPEITANDO O PARÂMETRO REG_SUSP DA ZYCIT062 P ICMS
04750 - 00008 - 7.0 - 00002 - ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA
04831 - 00009 - 7.0 - 00003 - DESENVOLVER FUNCIONALIDADE FUNDAP NA NF E NA DI
04987 - 00010 - 7.0 - 00003 - QUANDO O PIS E COFINS É ISENÇÃO NA DI NÃO LANÇA A BASE NA NF
05498 - 00011 - 7.0 - 00004 - NÃO CARREGA BOTÃO FUNDAP
11157 - 00012 - 8.0 - 00007 - LEGISLAÇÃO PARA DESENVOLVIMENTO DE ICMS ST NA DI E NF.
11494 - 00013 - 8.0 - 00009 - ACRESCENTAR TRATAMENTO PARA LINHA DO II NA NF.
11641 - 00014 - 8.0 - 00009 - FEITO DESENVOLVIMENTO PARA PREENCHIMENTO DA NOVA PASTA NF
12691 - 00015 - 9.0 - 00002 - NOTA FISCAL: ICMS ST
12841 - 00016 - 9.0 - 00003 - DESENVOLVIMENTO ADICIONAL - CONTABILIZAR IMPOSTOS NA NOTA FISCAL
----------------------------------------------------------------------------------------------------
TRATAMENTO PARA QUEBRA DE COFINS NA NF (NOTA FISCAL)
----------------------------------------------------------------------------------------------------
Palavras Chave:
QUEBRA - COFINS - NF - NOTA FISCAL - LEGISLAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
TABD /PWS/ZYCEE007
FUNC /PWS/ZYCI_TRANSACAO_J1B1N
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI016F02
REPS /PWS/MZYCI016X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCEE007
Ao final da estrutura /PWS/ZYCEE007 acrescentar os seguintes campos
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
*<< Início Inclusão
LEICOFINSQ CHAR3 CHAR 3
TAXTYP_COFQ J_1BTAXTYP CHAR 4
TAXVAL_COFQ J_1BTAXVAL CURR 15
RATE_COFQ J_1BTXRATE DEC 6
BASE_COFQ J_1BBASE CURR 15
COFQ_EXCBAS J_1BEXCBAS CURR 15
OTHBAS_COFQ J_1BOTHBAS CURR 15
*<<Fim Inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_J1B1N
FUNCTION /pws/zyci_transacao_j1b1n.
TABLES: dd02l,
dd03l,
j_1baa.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
data:
v_othbas_cofq(17),
v_base_cofq(15),
v_taxval_cofq(15),
v_cofqexcbas(20),
v_aliqcofq(8).
* << Fim da inclusão
...
...
WRITE: t_itens-othbas_st TO v_othbas_st CURRENCY t_itens-waers,
t_itens-base_st TO v_base_st CURRENCY t_itens-waers,
t_itens-taxval_st TO v_taxval_st CURRENCY t_itens-waers,
t_itens-st_excbas TO v_stexcbas CURRENCY t_itens-waers,
t_itens-rate_st TO v_aliqst CURRENCY t_itens-waers,
t_itens-othbas_ii TO v_othbas_ii CURRENCY t_itens-waers,
t_itens-base_ii TO v_base_ii CURRENCY t_itens-waers,
t_itens-taxval_ii TO v_taxval_ii CURRENCY t_itens-waers,
t_itens-ii_excbas TO v_iiexcbas CURRENCY t_itens-waers,
t_itens-rate_ii TO v_aliqii CURRENCY t_itens-waers.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
write:
t_itens-othbas_cofq TO v_othbas_cofq CURRENCY t_itens-waers,
t_itens-base_cofq TO v_base_cofq CURRENCY t_itens-waers,
t_itens-taxval_cofq TO v_taxval_cofq CURRENCY t_itens-waers,
t_itens-cofq_excbas TO v_cofqexcbas CURRENCY t_itens-waers,
t_itens-rate_cofq TO v_aliqcofq CURRENCY t_itens-waers.
* << Fim da inclusão
CLEAR: v_cont,
v_campo_taxtyp(60),
v_campo_base(60),
v_campo_rate(60),
v_campo_taxval(60),
v_campo_excbas(60),
v_campo_othbas(60).
ADD 1 TO v_cont.
CONCATENATE 'J_1BDYSTX-TAXTYP(' v_cont ')' INTO v_campo_taxtyp.
CONCATENATE 'J_1BDYSTX-BASE(' v_cont ')' INTO v_campo_base.
...
...
CONCATENATE 'J_1BDYSTX-TAXVAL(' v_cont ')' INTO v_campo_taxval.
CONCATENATE 'J_1BDYSTX-EXCBAS(' v_cont ')' INTO v_campo_excbas.
CONCATENATE 'J_1BDYSTX-OTHBAS(' v_cont ')' INTO v_campo_othbas.
PERFORM bdc_campo USING:
v_campo_taxtyp t_itens-taxtyp_cof,
v_campo_base v_base_cof,
v_campo_rate v_aliqcof,
v_campo_taxval v_taxval_cof,
v_campo_excbas v_cofexcbas,
v_campo_othbas v_othbas_cof.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
ADD 1 TO v_cont.
CONCATENATE 'J_1BDYSTX-TAXTYP(' v_cont ')' INTO v_campo_taxtyp.
CONCATENATE 'J_1BDYSTX-BASE(' v_cont ')' INTO v_campo_base.
CONCATENATE 'J_1BDYSTX-RATE(' v_cont ')' INTO v_campo_rate.
CONCATENATE 'J_1BDYSTX-TAXVAL(' v_cont ')' INTO v_campo_taxval.
CONCATENATE 'J_1BDYSTX-EXCBAS(' v_cont ')' INTO v_campo_excbas.
CONCATENATE 'J_1BDYSTX-OTHBAS(' v_cont ')' INTO v_campo_othbas.
PERFORM bdc_campo USING:
v_campo_taxtyp t_itens-taxtyp_cofq,
v_campo_base v_base_cofq,
v_campo_rate v_aliqcofq,
v_campo_taxval v_taxval_cofq,
v_campo_excbas v_cofqexcbas,
v_campo_othbas v_othbas_cofq.
* << Fim da inclusão
IF NOT t_itens-taxval_st IS INITIAL.
ADD 1 TO v_cont.
CONCATENATE 'J_1BDYSTX-TAXTYP(' v_cont ')' INTO v_campo_taxtyp.
CONCATENATE 'J_1BDYSTX-BASE(' v_cont ')' INTO v_campo_base.
CONCATENATE 'J_1BDYSTX-RATE(' v_cont ')' INTO v_campo_rate.
CONCATENATE 'J_1BDYSTX-TAXVAL(' v_cont ')' INTO v_campo_taxval.
CONCATENATE 'J_1BDYSTX-EXCBAS(' v_cont ')' INTO v_campo_excbas.
CONCATENATE 'J_1BDYSTX-OTHBAS(' v_cont ')' INTO v_campo_othbas.
PERFORM bdc_campo USING:
v_campo_taxtyp t_itens-taxtyp_st,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
v_tiponf = 'NF'.
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' OR
tributos EQ 'II' OR
tributos EQ 'ICMSST' ).
* >> Início da inclusão: FORM ITENS_NFNEW
SELECT * FROM /pws/zycit398
APPENDING TABLE itab_zycit398
WHERE bukrs EQ /pws/zycie041-bukrs
AND clnf EQ itab_zycit033-clnf
AND tpnf EQ itab_zycit033-tpnf
AND ( tributos EQ 'COFIN1' ).
* << Fim da inclusão
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI' AND NOT
itab_zycit480[] IS INITIAL.
v_fundap = 'X' .
ELSE.
CLEAR v_fundap.
ENDIF.
it_zycee007-tcode = text-065.
it_zycee007-tabela = text-014.
it_zycee007-cpochv = /pws/zycie041-nfglobal.
...
...
v_montante1 = itab_zycit100-basepis.
it_zycee007-othbas_pis = v_montante1.
ENDCASE.
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-leicofins = itab_zycit398-leicofins.
it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.
ELSE.
CLEAR it_zycee007-taxtyp_cof.
ENDIF.
* >> Início da inclusão: FORM ITENS_NFNEW
CLEAR v_quebracof.
PERFORM quebra_cofins.
IF v_quebracof NE 'X' .
* << Fim da inclusão
IF NOT itab_zycit100-vlcofins IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'COFINS'.
it_zycee007-taxval_cof = itab_zycit036-vlreal.
ELSE .
CLEAR it_zycee007-taxval_cof .
ENDIF.
...
...
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-cof_excbas = v_montante1.
CLEAR it_zycee007-taxval_cof.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-othbas_cof = v_montante1.
ENDCASE.
* >> Início da inclusão: FORM ITENS_NFNEW
ENDIF.
* << Fim da inclusão
READ TABLE itab_zycit398 WITH KEY tributos = 'ICMSST'.
IF sy-subrc EQ 0.
IF NOT itab_zycit100-vlcofins IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'ICMSST'.
it_zycee007-taxval_st = itab_zycit036-vlreal.
ELSE .
...
...
* >> Início da exclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
DATA: v_acrescimo TYPE /pws/zycit406-acrescimo.
* << Fim da exclusão
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F02
...
* >> Início da inclusão:
FORM quebra_cofins.
DATA: itab_zycit405 TYPE /pws/zycit405 OCCURS 0 WITH HEADER LINE,
itab_zycit406 TYPE /pws/zycit406 OCCURS 0 WITH HEADER LINE.
CLEAR : itab_zycit405, itab_zycit406.
REFRESH : itab_zycit405, itab_zycit406.
IF /pws/zycie085-dttax IS INITIAL.
SELECT SINGLE dttax FROM /pws/zycit085
INTO /pws/zycie085-dttax
WHERE nrseqdi EQ itab_zycit100-nrseqdi.
ENDIF.
CALL METHOD /pws/cl_zyci_cred_parcial=>trata_cofins
EXPORTING
vigencia = /pws/zycie085-dttax
regime = /pws/zycie001-regime
matnr = itab_zycit003-matnr
ncm = itab_zycit003-j_1bnbm
RECEIVING
acrescimo = v_acrescimo.
CHECK NOT v_acrescimo IS INITIAL.
SELECT * FROM /pws/zycit406
INTO TABLE itab_zycit406
WHERE pais EQ t001-land1
AND tributos EQ 'COFINS'
AND regime EQ /pws/zycie001-regime.
SELECT * FROM /pws/zycit405
INTO TABLE itab_zycit405
WHERE pais EQ t001-land1
AND tributos EQ 'COFINS'
AND regime EQ /pws/zycie001-regime.
READ TABLE itab_zycit406
WITH KEY matnr = itab_zycit003-matnr
regime = /pws/zycie001-regime
tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-rate_cof = itab_zycit406-aliquotas -
itab_zycit406-acrescimo.
it_zycee007-rate_cofq = itab_zycit406-acrescimo.
v_quebracof = 'X' .
ELSE.
READ TABLE itab_zycit405
WITH KEY ncm = itab_zycit003-j_1bnbm
regime = /pws/zycie001-regime
tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-rate_cof = itab_zycit405-aliquotas -
itab_zycit405-acrescimo.
v_quebracof = 'X' .
it_zycee007-rate_cofq = itab_zycit405-acrescimo.
ENDIF.
ENDIF.
IF v_quebracof = 'X' .
IF NOT itab_zycit100-vlcofins IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'COFINS'.
it_zycee007-taxval_cof = itab_zycit100-basecofins *
( it_zycee007-rate_cof / 100 ).
it_zycee007-taxval_cofq = itab_zycit100-basecofins *
( it_zycee007-rate_cofq / 100 ).
ELSE .
CLEAR: it_zycee007-taxval_cof ,
it_zycee007-taxval_cofq .
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-base_cof = v_montante1.
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-cof_excbas = v_montante1.
CLEAR : it_zycee007-taxval_cof.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-othbas_cof = v_montante1.
ENDCASE.
READ TABLE itab_zycit398 WITH KEY tributos = 'COFIN1'.
IF sy-subrc EQ 0.
it_zycee007-leicofinsq = itab_zycit398-leicofins.
it_zycee007-taxtyp_cofq = itab_zycit398-taxtyp.
ELSE.
CLEAR it_zycee007-taxtyp_cofq.
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-base_cofq = v_montante1.
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-cofq_excbas = v_montante1.
CLEAR : it_zycee007-taxval_cofq.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-othbas_cofq = v_montante1.
ENDCASE.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016X01
...
* >> Início da inclusão:
DATA: v_quebracof ,
v_acrescimo TYPE /pws/zycit406-acrescimo.
* << Fim da inclusão
DATA: END OF COMMON PART a.