Identificador de Regra

COM-000SIGUF01

Módulo: COM - Comercial.

Finalidade: sugerir/alterar a UF do documento (nota fiscal de saída e pedido) para atender regras de tributação de acordo com o indicativo de venda presencial, por exemplo o RICMS/PR (parágrafo 12, artigo 17). Ao informar o Ind. Presencial, o ERP realiza a busca da UF de tributação utilizando o identificador de regra. Se a UF retornada for igual à UF da filial, os impostos serão calculados como uma venda interna, independentemente da UF do cliente.

Características: pode ser executado sempre que a UF for definida em pedidos e notas fiscais de saída quando o documento receber ou já possuir a informação do indicativo de venda presencial para atender as regras de tributação. A UF do documento é sugerida/alterado de acordo com a regra ligada ao identificador.

Quando ativo na tela F661I10, nos impostos tipos 34, 63 e 64 será considerado o Estado do Cálculo do ICMS (E660NFC/E660NFV.UfsCic) em vez do estado do cliente/destinatário da nota.

Importante

O sistema considerará os parâmetros por estado (F009PPE) e demais parametrizações de impostos, com base na UF retornada pela regra ligada a este identificador.

Telas: pedidos (F120GPD), notas (F140LOT e F140PRE) e F661I10.

Transação: não se aplica.

Variáveis disponibilizadas:

Nome Tipo Observações Retorna valor
ComNCodCli NUMERO Código do cliente N
ComNSeqEnt NÚMERO Sequência do endereço de entrega padrão do cliente N
ComAIndPre ALFA Indicativo de venda presencial N
ComASigUfs ALFA Sigla do Estado S
ConNSeqPen Número Sequência do endereço do participante da entrega.
Essa variável tem valor apenas quando está sendo gerado um CTE na tela Preparação de CTRC (F140COL).
Além disso, ela representa o campo SeqPen da tabela Vendas - Notas Fiscais de Saída - Dados Gerais (E140NFV).
N

Regra:

Definir Numero ComNCodCli;
Definir Numero ComNSeqEnt;
Definir Alfa ComAIndPre;
Definir Alfa ComASigUfs;
Definir alfa vCursor;
Definir alfa vSql;
Inicio  
	SQL_Criar(vCursor);  
	vSql = "SELECT ESTENT " + 
		   "  FROM E085ENT " +
		   " WHERE CODCLI = :CODCLI " +
		   "   AND SEQENT = :SEQENT";  

	SQL_DefinirComando(vCursor, vSql);  
	SQL_DefinirInteiro(vCursor, "CODCLI", ComNCodCli);  
	SQL_DefinirInteiro(vCursor, "SEQENT", ComNSeqEnt);  
	SQL_AbrirCursor(vCursor);  
	
	Se ((SQL_EOF(vCursor) = 0) e (ComAIndPre = "1"))
	Inicio     
		SQL_RetornarAlfa(vCursor, "ESTENT", ComASigUfs);  
	Fim;  
	
	SQL_FecharCursor(vCursor);  
	SQL_Destruir(vCursor);
Fim;

Este artigo ajudou você?