Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 18/01/2007 00:00:00
Data/Hora Última Alteração: 11/09/2013 09:59:47
Descrição da Nota: CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF
Sintoma
Criado parametro para indicar se deve ser levado para a nota o valor de ICMS cheio ou o valor
reduzido.
Solução
Atualização do programa de Nota Fiscal para que seja criado um parametro para indicar se deve ser
levado para a nota o valor de ICMS cheio ou o valor reduzido.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02922 Data: 18/01/2007 Hora: 15:20:48
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02922
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00149
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02112 - 00003 - 6.0 - 00024 - NA CRIAÇÃO DA NF DE REMESSA, O IPI NÃO OBDECE PARÂMETRO DA /PWS/Z
02340 - 00001 - 6.0 - 00025 - TRATAR SUSPENSÃO DE REGIME TRIBUTÁRIO NAS NOTAS FISCAIS.
02863 - 00002 - 6.0 - 00026 - NA NF REMESSA A LINHA DO IPI NÃO ESTÁ PREENCHIDA COM A BASE DE CÁ
----------------------------------------------------------------------------------------------------
CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF
----------------------------------------------------------------------------------------------------
Palavras Chave:
ICMS - TOTAL - NOTA - FISCAL - NF - GLOBAL - REMESSA
/PWS/SAPMZYCI016
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYCIL847
REPS /PWS/MZYCI016F01
TABD /PWS/ZYCIT062
TOBJ /PWS/ZYCIT062S
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL847
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL847
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (22 caracteres), idioma: PT
"GL - Total Reduzido NF"
Categoria de dados: Domínio
Domínio: XFIELD
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 (6 caracteres), idioma: PT
"Red.NF"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (10 caracteres), idioma: PT
"Tot.Red.NF"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (17 caracteres), idioma: PT
"Total Reduzido NF"
Comprimento máximo do título: 22
Título incluído (22 caracteres), idioma: PT
"GL - Total Reduzido NF"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
ENDIF.
ENDIF.
ENDFORM.
FORM atualiza_icms_unitario.
SELECT SINGLE * FROM /pws/zycit100
WHERE nrseq = itab_zycit042-nrseq
AND ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
IF NOT /pws/zycit100-vlicms IS INITIAL AND
NOT /pws/zycit100-icms_dif = 'X'.
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
IF /pws/zycit062-tred IS INITIAL.
* << Fim da inclusão
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* 100 ) / itab_zycit003-basred.
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
ELSE.
itab_zycit042-netpr = itab_zycit042-netpr +
( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).
ENDIF.
* << Fim da inclusão
ENDIF.
...
...
IF itab_zycit100-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
ENDIF.
ENDIF.
CASE itab_zycit033-tribicms.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseicms.
v_base = v_montante1.
v_excbas = ( v_montante1 / v_basred * 100 ) - v_base.
* >> Início da inclusão: FORM ITENS_NFNEW
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL AND
v_basred < 100.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
v_excbas = v_excbas *
( 1 - ( itab_zycit003-advalicms / 100 ) ).
ENDIF.
* << Fim da inclusão
IF itab_zycit100-icms_dif = 'X'.
IF /pws/zycit062-flag_icms = 'X'.
DATA: v_base2 LIKE j_1bdytax-base.
CLEAR v_base2.
v_base2 = v_base2 + v_base.
ENDIF.
v_base_dif = v_base_dif + v_base2.
ENDIF.
it_zycee007-base = v_base.
it_zycee007-c_excbas = v_excbas .
...
...
v_base_dif = v_base_dif + itab_zycit100-baseicms.
ENDIF.
IF /pws/zycit001-meioemba = 'PS'.
v_base_ps = it_zycee007-c_excbas.
ENDIF.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseicms.
v_othbas = v_montante1 .
v_excbas = ( v_montante1 / v_basred * 100 ) - v_othbas.
* >> Início da inclusão: FORM ITENS_NFNEW
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL AND
v_basred < 100.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
v_excbas = v_excbas *
( 1 - ( itab_zycit003-advalicms / 100 ) ).
ENDIF.
* << Fim da inclusão
IF itab_zycit100-icms_dif = 'X'.
it_zycee007-othbas = it_zycee007-othbas
- itab_zycit100-vlicms.
v_base_dif = v_base_dif + itab_zycit100-baseicms.
ENDIF.
it_zycee007-othbas = v_othbas.
it_zycee007-c_excbas = v_excbas.
IF /pws/zycit001-meioemba = 'PS'.
v_base_ps = it_zycee007-othbas + it_zycee007-c_excbas.
ENDIF.
...
...
CLEAR v_total .
ENDIF.
ENDIF.
CASE itab_zycit033-tribicms.
WHEN 1.
it_zycee007-base = v_total.
it_zycee007-base =
( it_zycee007-base * itab_zycit003-basred / 100 ).
IF itab_zycit003-basred NE 100.
it_zycee007-c_excbas = v_total - it_zycee007-base.
* >> Início da inclusão: FORM ITENS_NFRNEW
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL.
it_zycee007-c_excbas = it_zycee007-c_excbas *
( 1 - ( itab_zycit003-advalicms / 100 ) ).
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM ITENS_NFRNEW
ENDIF.
* << Fim da inclusão
IF itab_zycit100-icms_dif EQ 'X'.
IF /pws/zycit062-flag_icms = 'X'.
it_zycee007-base = it_zycee007-base - v_icms.
ENDIF.
v_icms_dif = v_icms_dif + v_icms.
v_base_dif = v_base_dif + it_zycee007-base.
ELSE.
it_zycee007-taxval = v_icms.
ENDIF.
v_base = it_zycee007-base.
WHEN 2.
it_zycee007-c_excbas = v_total.
IF itab_zycit100-icms_dif EQ 'X'.
IF /pws/zycit062-flag_icms = 'X'.
* >> Início da inclusão: FORM ITENS_NFRNEW
IF /pws/zycit062-tred IS INITIAL OR
/pws/zycit062-flag_icms IS INITIAL.
* << Fim da inclusão
it_zycee007-c_excbas = it_zycee007-c_excbas - v_icms.
* >> Início da inclusão: FORM ITENS_NFRNEW
ENDIF.
* << Fim da inclusão
ENDIF.
v_icms_dif = v_icms_dif + v_icms.
v_base_dif = v_base_dif + v_total.
ELSE.
it_zycee007-taxval = v_icms.
ENDIF.
v_base = it_zycee007-c_excbas.
WHEN 3.
it_zycee007-othbas = v_total.
IF itab_zycit003-basred NE 100.
it_zycee007-othbas =
( it_zycee007-othbas * itab_zycit003-basred / 100 ).
it_zycee007-c_excbas = v_total - it_zycee007-othbas.
* >> Início da inclusão: FORM ITENS_NFRNEW
IF NOT /pws/zycit062-tred IS INITIAL AND
NOT /pws/zycit062-flag_icms IS INITIAL.
it_zycee007-c_excbas = it_zycee007-c_excbas *
( 1 - ( itab_zycit003-advalicms / 100 ) ).
ENDIF.
* << Fim da inclusão
ENDIF.
IF itab_zycit100-icms_dif EQ 'X'.
IF /pws/zycit062-flag_icms = 'X'.
it_zycee007-othbas = it_zycee007-othbas - v_icms.
ENDIF.
v_icms_dif = v_icms_dif + v_icms.
v_base_dif = v_base_dif + v_total.
ELSE.
it_zycee007-taxval = v_icms.
ENDIF.
...
...
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.
ENDIF.
IF /pws/zycit062-flag_icms = 'X' AND /pws/zycit001-meioemba NE 'PS'.
* >> Início da inclusão: FORM ITENS_NFNEW
IF /pws/zycit062-tred IS INITIAL.
* << Fim da inclusão
IF NOT v_basred IS INITIAL.
it_zycee007-p_excbas = it_zycee007-p_excbas +
itab_zycit042-vldp + ( ( it_zycee007-taxval * 100 ) /
v_basred ) + v_impostos.
ELSE.
v_basred = '100'.
it_zycee007-p_excbas = it_zycee007-p_excbas +
itab_zycit042-vldp + ( ( it_zycee007-taxval * 100 ) /
v_basred ) + v_impostos.
ENDIF.
* >> Início da inclusão: FORM ITENS_NFNEW
ELSE.
it_zycee007-p_excbas = it_zycee007-p_excbas +
itab_zycit042-vldp + it_zycee007-taxval + v_impostos.
ENDIF.
* << Fim da inclusão
ELSEIF /pws/zycit001-meioemba NE 'PS'.
it_zycee007-p_excbas = it_zycee007-p_excbas + itab_zycit042-vldp +
v_impostos.
ELSE.
CASE itab_zycit033-tribipi.
WHEN 1.
it_zycee007-base2 = it_zycee007-base2 +
it_zycee007-taxval_pis + it_zycee007-taxval_cof.
WHEN 2.
it_zycee007-p_excbas = it_zycee007-p_excbas +
...
...
ELSE.
it_zycee007-taxval = v_icms.
ENDIF.
v_base = it_zycee007-othbas.
ENDCASE.
it_zycee007-taxtyp = itab_zycit033-taxtyp.
it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.
CASE itab_zycit033-tribipi.
WHEN 1.
it_zycee007-base2 = ( v_total - v_icms - v_ipi - v_outras_ic ).
* >> Início da exclusão: FORM ITENS_NFRNEW
it_zycee007-p_excbas = v_base -
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFRNEW
it_zycee007-p_excbas = ( v_base + it_zycee007-c_excbas ) -
* << Fim da inclusão
( v_total - v_icms - v_ipi - v_outras_ic ).
CLEAR it_zycee007-taxval2.
WHEN 2.
it_zycee007-p_excbas = v_base.
CLEAR it_zycee007-taxval2.
WHEN 3.
it_zycee007-othbas2 = ( v_total - v_icms - v_ipi - v_outras_ic ).
* >> Início da exclusão: FORM ITENS_NFRNEW
it_zycee007-p_excbas = v_base -
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFRNEW
it_zycee007-p_excbas = ( v_base + it_zycee007-c_excbas ) -
* << Fim da inclusão
( v_total - v_icms - v_ipi - v_outras_ic ).
CLEAR it_zycee007-taxval2.
ENDCASE.
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'NFR001'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'NFR001'.
IF itab_zyglt100-zexit_ativa NE 'X'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT062
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
BS_RAT_ICMS /PWS/ZYCIL830 CHAR 3
SUSP_NF /PWS/ZYCIL844 CHAR 1
* >> Início da inclusão:
TRED /PWS/ZYCIL847 CHAR 1
* << Fim da inclusão
USERNAMEC SYUNAME CHAR 12
DTUSERC SYDATUM DATS 8
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TOBJ /PWS/ZYCIT062S
*Gerar tela de atualização da tabela /PWS/ZYCIT062