Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal Complementar
Data/Hora da Publicação: 24/10/2007 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:15:32
Descrição da Nota: NOTA FISCAL COMPLEMENTAR ESTA INCORRETA QUANDO SE REFERE A LINHA DO ICMS
Sintoma
Não estava verificando o regime tributário corretamente para realizar o calculo do Valor do Imposto
e Base de Calculo na Nf complementar.
Solução
Verificar o regime tributário corretamente para realizar o calculo do Valor do Imposto e Base de
Calculo
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05067 Data: 24/10/2007 Hora: 11:24:41
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05067
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00018
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02340 - 00001 - 6.0 - 00025 - TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.
04922 - 00002 - 7.0 - 00003 - DI NAO CALCULA CORRETAMENTE ICMS QUANDO REDUZIDO
----------------------------------------------------------------------------------------------------
NOTA FISCAL COMPLEMENTAR ESTA INCORRETA QUANDO SE REFERE A LINHA DO ICMS
----------------------------------------------------------------------------------------------------
Palavras Chave:
LINHA ICMS - NF COMPL - MONTANTE BASE - MONTANTE BASE EXCLUIDO
BASE DE CALCULO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI029F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI029F01
...
ebeln = itab_zycit265_c2-ebeln
ebelp = itab_zycit265_c2-ebelp.
if itab_zycit100-icms_dif = 'X'.
itab_zycit003-basred = '100'.
endif.
it_zycee007-rate = itab_zycit003-advalicms.
it_zycee007-taxtyp = itab_zycit033-taxtyp.
CLEAR it_zycee007-taxval.
CASE itab_zycit033-tribicms.
WHEN 1.
* >> Início da exclusão: FORM ITENS_NFC
IF /pws/zycit062-flag_icms = 'X'.
IF itab_zycit100-icms_dif NE 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
IF ( /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtriICMS EQ '5' ) or
/pws/zycit062-flag_icms NE 'X' or
( /pws/zycit062-BS_CHEIA_DIF NE 'X' and
itab_zycit100-icms_dif EQ 'X' ) or
itab_zycit100-codregtriICMS EQ '3' .
* << Fim da inclusão
* >> Início da exclusão: FORM ITENS_NFC
it_zycee007-taxval = ( itab_zycit265_c2-vldp_dif_icms +
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
it_zycee007-base = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins ).
else.
it_zycee007-base = ( itab_zycit265_c2-vldp_dif_icms +
* << Fim da inclusão
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
/ ( ( 100 - itab_zycit003-advalicms ) / 100 ) .
ENDIF.
IF NOT /pws/zycit062-bcnfc IS INITIAL AND
( NOT itab_zycit003-basred IS INITIAL AND
NOT itab_zycit003-basred EQ '100' ).
* >> Início da exclusão: FORM ITENS_NFC
it_zycee007-base = it_zycee007-taxval *
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
it_zycee007-base = it_zycee007-base *
* << Fim da inclusão
( itab_zycit003-basred / 100 ) .
* >> Início da exclusão: FORM ITENS_NFC
it_zycee007-taxval = it_zycee007-base *
( itab_zycit003-advalicms / 100 ).
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
( itab_zycit265_c2-vldp_dif
* ( itab_zycit003-basred / 100 ) ).
ELSE.
it_zycee007-taxval = it_zycee007-taxval *
( itab_zycit003-advalicms / 100 ).
IF /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtri EQ '5'.
it_zycee007-base = itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis +
itab_zycit265_c2-vldp_cofins .
ELSE.
it_zycee007-base = itab_zycit265_c2-vldp_dif_icms +
it_zycee007-taxval +
itab_zycit265_c2-vldp_pis +
itab_zycit265_c2-vldp_cofins .
ENDIF.
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
itab_zycit265_c2-vldp_dif_icms.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM ITENS_NFC
ELSE.
IF NOT /pws/zycit062-bcnfc IS INITIAL AND
( NOT itab_zycit003-basred IS INITIAL AND
NOT itab_zycit003-basred EQ '100' ).
it_zycee007-base = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) .
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
IF itab_zycit100-icms_dif NE 'X' and
itab_zycit100-codregtriICMS NE '3' and
itab_zycit100-codregtriICMS NE '5'.
* << Fim da inclusão
it_zycee007-taxval = it_zycee007-base *
( itab_zycit003-advalicms / 100 ).
* >> Início da inclusão: FORM ITENS_NFC
endif.
* << Fim da inclusão
* >> Início da inclusão: FORM ITENS_NFC
IF ( /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtriICMS EQ '5' ) or
/pws/zycit062-flag_icms NE 'X' or
( /pws/zycit062-BS_CHEIA_DIF NE 'X' and
itab_zycit100-icms_dif EQ 'X' ) or
itab_zycit100-codregtriICMS EQ '3' .
* << Fim da inclusão
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
* >> Início da exclusão: FORM ITENS_NFC
( itab_zycit265_c2-vldp_dif
* ( itab_zycit003-basred / 100 ) ).
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
it_zycee007-base.
ELSE.
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
( itab_zycit265_c2-vldp_dif * ( itab_zycit003-basred / 100 ) ).
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM ITENS_NFC
ELSE.
it_zycee007-base = itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis +
itab_zycit265_c2-vldp_cofins .
IF itab_zycit100-icms_dif NE 'X'.
it_zycee007-taxval = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
/ 100 * itab_zycit003-advalicms.
ENDIF.
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
itab_zycit265_c2-vldp_dif_icms.
ENDIF.
ENDIF.
* << Fim da exclusão
WHEN 2.
IF NOT /pws/zycit062-bcnfc IS INITIAL AND
( NOT itab_zycit003-basred IS INITIAL AND
NOT itab_zycit003-basred EQ '100' ).
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
( ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) ) .
ELSE.
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif.
ENDIF.
WHEN 3.
* >> Início da exclusão: FORM ITENS_NFC
IF /pws/zycit062-flag_icms = 'X'.
IF itab_zycit100-icms_dif NE 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
IF ( /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtriICMS EQ '5' ) or
/pws/zycit062-flag_icms NE 'X' or
( /pws/zycit062-BS_CHEIA_DIF NE 'X' and
itab_zycit100-icms_dif EQ 'X' ) or
itab_zycit100-codregtriICMS EQ '3' .
it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins ).
else.
* << Fim da inclusão
* >> Início da exclusão: FORM ITENS_NFC
it_zycee007-taxval = ( itab_zycit265_c2-vldp_dif_icms +
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +
* << Fim da inclusão
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* >> Início da exclusão: FORM ITENS_NFC
/ ( ( 100 - itab_zycit003-advalicms ) / 100 ) .
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
/ ( ( 100 - itab_zycit003-advalicms ) / 100 ) .
* << Fim da inclusão
ENDIF.
IF NOT /pws/zycit062-bcnfc IS INITIAL AND
( NOT itab_zycit003-basred IS INITIAL AND
NOT itab_zycit003-basred EQ '100' ).
* >> Início da exclusão: FORM ITENS_NFC
it_zycee007-taxval = ( it_zycee007-taxval *
( itab_zycit003-basred / 100 ) ) *
( itab_zycit003-advalicms / 100 ).
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
it_zycee007-othbas = it_zycee007-othbas *
* << Fim da inclusão
* >> Início da exclusão: FORM ITENS_NFC
it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) .
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
( itab_zycit003-basred / 100 ) .
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM ITENS_NFC
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
( ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) ) .
ELSE.
IF itab_zycit100-icms_dif = 'X'.
it_zycee007-othbas = itab_zycit265_c2-vldp_dif_icms.
ELSE.
IF /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtri EQ '5'.
it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins ).
ELSE.
it_zycee007-othbas = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
/ ( ( 100 - itab_zycit003-advalicms ) / 100 ) .
ENDIF.
ENDIF.
it_zycee007-taxval = it_zycee007-taxval *
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
IF itab_zycit100-icms_dif NE 'X' and
itab_zycit100-codregtriICMS NE '3' and
itab_zycit100-codregtriICMS NE '5'.
it_zycee007-taxval = it_zycee007-othbas *
* << Fim da inclusão
( itab_zycit003-advalicms / 100 ).
ENDIF.
* >> Início da exclusão: FORM ITENS_NFC
ELSE.
IF itab_zycit100-icms_dif NE 'X'.
IF NOT /pws/zycit062-bcnfc IS INITIAL AND
( NOT itab_zycit003-basred IS INITIAL AND
NOT itab_zycit003-basred EQ '100' ).
it_zycee007-taxval = ( ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) )
* ( itab_zycit003-advalicms / 100 ) .
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
( ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) ) .
it_zycee007-othbas = itab_zycit265_c2-vldp_dif_icms
* ( itab_zycit003-basred / 100 ) .
ELSE.
it_zycee007-taxval = ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
/ 100 * itab_zycit003-advalicms.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
IF ( /pws/zycit062-susp_nf EQ 'S' AND
itab_zycit100-codregtriICMS EQ '5' ) or
/pws/zycit062-flag_icms NE 'X' or
( /pws/zycit062-BS_CHEIA_DIF NE 'X' and
itab_zycit100-icms_dif EQ 'X' ) or
itab_zycit100-codregtriICMS EQ '3' .
* >> Fim da inclusão: FORM ITENS_NFC
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
* >> Início da exclusão: FORM ITENS_NFC
itab_zycit265_c2-vldp_dif_icms.
it_zycee007-othbas = itab_zycit265_c2-vldp_dif_icms.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFC
it_zycee007-othbas.
ELSE.
it_zycee007-c_excbas = itab_zycit265_c2-vldp_dif -
( ( itab_zycit265_c2-vldp_dif_icms +
itab_zycit265_c2-vldp_pis + itab_zycit265_c2-vldp_cofins )
* ( itab_zycit003-basred / 100 ) ) .
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM ITENS_NFC
ENDIF.
ENDIF.
ENDIF.
* << Fim da exclusão
ENDCASE.
IF itab_zycit100-codregtri = '3' OR
itab_zycit100-codregtri = '5'.
CLEAR it_zycee007-taxval.
ENDIF.
CASE itab_zycit033-tribipi.
WHEN 1.
it_zycee007-base2 = itab_zycit265_c2-vldp_dif.
IF /pws/zycit062-flag_icms = 'X' AND
itab_zycit100-icms_dif NE 'X'.
...