Identificador de Regra
FPR-621ICMSR01
Módulo: FPR - Formação de Preço.
Finalidade: Efetuar o cálculo dos valores de impostos de maneira customizada quando o cálculo for efetuado com a opção "Origem do Preço Base" for pela "Última Compra". Permite a execução do cálculo diferente do cálculo padrão do sistema.
Características: O identificador somente é executado quando o item da nota fiscal referente à última compra atender aos requisitos para o cálculo do ICMS Subst/Retido: Item da nota fiscal possuir valor de retenção do ICMS Substituído do item de produto da NF de entrada e a quantidade comprada ou então o item da nota fiscal possuir valor base do ICMS Substituído do item de produto da NF de entrada e valor base do ICMS do item de produto da NF de entrada.
Tela: F621APC
Transação: Não se aplica.
Variáveis disponibilizadas:
| Campo | Tipo | Descrição | Retorna Valor |
|---|---|---|---|
| FprNCodEmp | NÚMERO | Código da empresa | N |
| FprNCodApc | NÚMERO | Código do Cálculo | N |
| FprATipPre | NÚMERO | Origem do Preço | N |
| FprNMtcCcc | NÚMERO | Tabela de Componentes | N |
| FprNTxaFin | NÚMERO | Taxa Financeira | N |
| FprNPreUni | NÚMERO | Preço Unitário do item (preço base) | S |
| FprNPerIcm | NÚMERO | % ICMS | S |
| FprNPerIpi | NÚMERO | % IPI | S |
| FprNPrzPgt | NÚMERO | Prazo de pagamento | S |
| FprNPerPis | NÚMERO | % PIs recuperar | S |
| FprNPerCof | NÚMERO | % Cofins recuperar | S |
| FprNPerIim | NÚMERO | % Imposto importação | S |
| FprNVlrSeg | NÚMERO | Valor Seguro | S |
| FprNPerFre | NÚMERO | % frete do item | S |
| FprNPerIsb | NÚMERO | % icms subst | S |
| FprNVlrIsb | NÚMERO | Valor icms subst | S |
| FprNDesImp | NÚMERO | Despesas com impostos | S |
Observação
A variável de retorno FprNDesImp pode receber os valores de todos os impostos calculados na regra e será utilizada na tela F621APC através da grid "Desp. Imp". Caso esta variável não receba valor na regra a coluna "Desp. Imp" da tela F621APC recebe apenas o valor do valor do icms substituído (atual).
Campos encontrados nas listas:
Lista dos campos ICMS Subsituição do estado destino da nota fiscal (filial da nota).
| Campo | Tipo | Descrição | Retorna Valor |
|---|---|---|---|
| CodFilial | NÚMERO | Filial da nota fiscal | N |
| NumNfc | NÚMERO | Número da nota fiscal | N |
| CodSnf | ALFA | Série da nota fiscal | N |
| CodFor | NÚMERO | Fornecedor da nota fiscal | N |
| CodPro | ALFA | Produto | N |
| CodDer | ALFA | Derivação | N |
| DatEnt | DATA | Data de entrada da nota | N |
| DatEmi | DATA | Data de emissão da nota | N |
| VlrFre | NÚMERO | Valor de frete da nota | N |
| VlrLiq | NÚMERO | Valor liquido da nota | N |
| SigUfs | ALFA | Estado do fornecedor | N |
| SomFre | ALFA | somar frete | N |
| CodCpg | ALFA | condições de pagamento | N |
| CodMoe | ALFA | código da moeda da nota | N |
| SeqIpc | NÚMERO | sequencia do item na nota | N |
| CodTns | ALFA | transação do item | N |
| CodTst | ALFA | código do ICMS Substituído do item | N |
| PreUni | NÚMERO | preço unitário do item | N |
| VlrBic | NÚMERO | valor base icms do item | N |
| PerIcm | NÚMERO | % icms do item | N |
| VlrIcm | NÚMERO | valor do icms do item | N |
| VlrBsi | NÚMERO | valor base icms subst | N |
| VlrIcs | NÚMERO | valor icms st original da nota fiscal | N |
| VlrBpi | NÚMERO | Base Pis (valor base do PIS a recuperar do item) | N |
| PerPir | NÚMERO | % Pis a recuperar | N |
| VlrPis | NÚMERO | valor pis a recuperar (original nota fiscal) | N |
| VlrBcr | NÚMERO | valor base do cofins a recuperar | N |
| PerCor | NÚMERO | % COFINS a recuperar | N |
| VlrCor | NÚMERO | valor do cofins a recuperar do item (original nota) | N |
| VlrBip | NÚMERO | valor base ipi item | N |
| PerIpi | NÚMERO | % ipi do item | N |
| VlrIpi | NÚMERO | valor do ipi do item | N |
| CodTrd | ALFA | código da redução de impostos | N |
| PerIim | NÚMERO | % imposto importação | N |
| VlrFei | NÚMERO | valor frete importação do item | N |
| VlrSei | NÚMERO | valor seguro importação do item | N |
| VlrOui | NÚMERO | valor outras despesas de importação do item | N |
| VlrBid | NÚMERO | valor base do ipi presumido | N |
| VlrIpd | NÚMERO | valor do ipi presumido | N |
| VlrBru | NÚMERO | valor bruto do item | N |
| QtdEst | NÚMERO | quantidade pedida do item | N |
| AcrFin | NÚMERO | valor acrescimo financeiro do item | N |
Lista dos campos ICMS Subsituição do estado origem da nota fiscal (Fornecedor).
| Campo | Tipo | Descrição | Retorna Valor |
|---|---|---|---|
| CodEmpOrigem | NÚMERO | Código da Empresa | N |
| CodFilOrigem | NÚMERO | Código da Filial | N |
| SigUfsOrigem | ALFA | Sigla Estado | N |
| CodTstOrigem | ALFA | Código do tipo de ICMS Substituído | N |
| CodCrtOrigem | NÚMERO | Código do regime tributário | N |
| MarLucOrigem | NÚMERO | Percentual margem de lucro ou base para cálculo do imposto substituído | N |
| RedIcmOrigem | NÚMERO | Percentual de redução para cálculo do imposto substituído | N |
| IcmEstOrigem | NÚMERO | Percentual do imposto do estado | N |
Lista dos campos ICMS Subsituição do estado destino da nota fiscal (filial da nota)
| Campo | Tipo | Descrição | Retorna Valor |
|---|---|---|---|
| CodEmp | NÚMERO | Código da Empresa | N |
| CodFil | NÚMERO | Código da Filial | N |
| SigUfs | ALFA | Sigla Estado | N |
| CodTst | ALFA | Código do tipo de ICMS Substituído | N |
| CodCrt | NÚMERO | Código do regime tributário | N |
| MarLuc | NÚMERO | Percentual margem de lucro ou base para cálculo do imposto substituído | N |
| RedIcm | NÚMERO | Percentual de redução para cálculo do imposto substituído | N |
| IcmEst | NÚMERO | Percentual do imposto do estado | N |
Exemplo de regra:
Definir Alfa SomFre; @ somar frete @
Definir Alfa CodCpg; @ condições de pagamento @
Definir Alfa CodMoe; @ código da moeda da nota @
Definir Numero SeqIpc; @ sequencia do item na nota @
Definir Alfa CodTns; @ transação do item @
Definir Alfa CodTst; @ código do ICMS Substituído do item @
Definir Numero PreUni; @ preço unitário do item @
Definir Numero VlrBic; @ valor base icms do item @
Definir Numero PerIcm; @ % icms do item @
Definir Numero VlrIcm; @ valor do icms do item @
Definir Numero VlrBsi; @ valor base icms subst @
Definir Numero VlrIcs; @ valor icms st original da nota fiscal @
Definir Numero VlrBpi; @ Base Pis --> valor base do PIS a recuperar do item @
Definir Numero PerPir; @ % Pis a recuperar @
Definir Numero VlrPis; @ valor pis a recuperar (original nota fiscal) @
Definir Numero VlrBcr; @ valor base do cofins a recuperar @
Definir Numero PerCor; @ % COFINS a recuperar @
Definir Numero VlrCor; @ valor do cofins a recuperar do item (original nota) @
Definir Numero VlrBip; @ valor base ipi item @
Definir Numero PerIpi; @ % ipi do item @
Definir Numero VlrIpi; @ valor do ipi do item @
Definir Alfa CodTrd; @ código da redução de impostos @
Definir Numero PerIim; @ % imposto importação @
Definir Numero VlrFei; @ valor frete importação do item @
Definir Numero VlrSei; @ valor seguro importação do item @
Definir Numero VlrOui; @ valor outras despesas de importação do item @
Definir Numero VlrBid; @ valor base do ipi presumido @
Definir Numero VlrIpd; @ valor do ipi presumido @
Definir Numero VlrBru; @ valor bruto do item @
Definir Numero QtdEst; @ quantidade pedida do item @
Definir Numero AcrFin; @ valor acrescimo financeiro do item @
Definir numero FprNPreUni; @ Preço Unitário do item (preço base) @
Definir Numero FprNPerIcm; @ % ICMS @
Definir Numero FprNPerIpi; @ % IPI @
Definir Numero FprNPrzPgt; @ Prazo de pagamento @
Definir Numero FprNPerPis; @ % PIs recuperar @
Definir Numero FprNPerCof; @ % Cofins recuperar @
Definir Numero FprNPerIim; @ % Imposto importação @
Definir Numero FprNVlrSeg; @ Valor Seguro @
Definir Numero FprNPerFre; @ % frete do item @
Definir Numero FprNPerIsb; @ % icms subst @
Definir Numero FprNVlrIsb; @ valor icms subst ==> despesas com impostos @
Definir Numero FprNDesImp; @ despesas com impostos @
Definir numero IntNListaICMSubOrigem;
Definir numero CodEmpOrigem;
Definir numero CodFilOrigem;
Definir alfa SigUfsOrigem;
Definir alfa CodTstOrigem;
Definir numero CodCrtOrigem;
Definir numero MarLucOrigem;
Definir numero RedIcmOrigem;
Definir numero IcmEstOrigem;
Definir numero IntNListaICMSubDestino;
Definir numero CodEmpDestino;
Definir numero CodFilDestino;
Definir alfa SigUfsDestino;
Definir alfa CodTstDestino;
Definir numero CodCrtDestino;
Definir numero MarLucDestino;
Definir numero RedIcmDestino;
Definir numero IcmEstDestino;
Definir Alfa S_N;
Definir Alfa S_N_Campo;
Definir Numero xVlrAux;
S_N = "N";
ListaRegraPrimeiro(IntNListaItemNFE, S_N);
Se (S_N = "S"){
ListaRegraObterValorNumero(IntNListaItemNFE, "CodFil", CodFilial, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "NumNfc", NumNfc, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodSnf", CodSnf, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "CodFor", CodFor, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodPro", CodPro, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodDer", CodDer, S_N_Campo);
ListaRegraObterValorData(IntNListaItemNFE, "DatEnt", DatEnt, S_N_Campo);
ListaRegraObterValorData(IntNListaItemNFE, "DatEmi", DatEmi, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrFre", VlrFre, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrLiq", VlrLiq, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "SigUfs", SigUfs, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "SomFre", SomFre, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodCpg", CodCpg, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodMoe", CodMoe, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "SeqIpc", SeqIpc, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodTns", CodTns, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodTst", CodTst, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "PreUni", PreUni, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrBic", VlrBic, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "PerIcm", PerIcm, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrIcm", VlrIcm, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrBsi", VlrBsi, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrIcs", VlrIcs, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrBpi", VlrBpi, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "PerPir", PerPir, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrPis", VlrPis, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrBcr", VlrBcr, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "PerCor", PerCor, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrCor", VlrCor, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrBip", VlrBip, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "PerIpi", PerIpi, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrIpi", VlrIpi, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaItemNFE, "CodTrd", CodTrd, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "PerIim", PerIim, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrFei", VlrFei, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrSei", VlrSei, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrOui", VlrOui, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrBid", VlrBid, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrIpd", VlrIpd, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "VlrBru", VlrBru, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "QtdEst", QtdEst, S_N_Campo);
ListaRegraObterValorNumero(IntNListaItemNFE, "AcrFin", AcrFin, S_N_Campo);
S_N = "N";
ListaRegraPrimeiro(IntNListaICMSubOrigem, S_N);
Se (S_N = "S"){
ListaRegraObterValorNumero(IntNListaICMSubOrigem, "CodEmp", CodEmpOrigem, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubOrigem, "CodFil", CodFilOrigem, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaICMSubOrigem, "SigUfs", SigUfsOrigem, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaICMSubOrigem, "CodTst", CodTstOrigem, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubOrigem, "CodCrt", CodCrtOrigem, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubOrigem, "MarLuc", MarLucOrigem, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubOrigem, "RedIcm", RedIcmOrigem, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubOrigem, "IcmEst", IcmEstOrigem, S_N_Campo);
}
S_N = "N";
ListaRegraPrimeiro(IntNListaICMSubDestino, S_N);
Se (S_N = "S"){
ListaRegraObterValorNumero(IntNListaICMSubDestino, "CodEmp", CodEmpDestino, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubDestino, "CodFil", CodFilDestino, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaICMSubDestino, "SigUfs", SigUfsDestino, S_N_Campo);
ListaRegraObterValorAlfa(IntNListaICMSubDestino, "CodTst", CodTstDestino, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubDestino, "CodCrt", CodCrtDestino, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubDestino, "MarLuc", MarLucDestino, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubDestino, "RedIcm", RedIcmDestino, S_N_Campo);
ListaRegraObterValorNumero(IntNListaICMSubDestino, "IcmEst", IcmEstDestino, S_N_Campo);
}
@Implementação da regra @
se (MarlucOrigem = MarlucDestino)
{
se ((VLRBSI > 0) e (VLRBIC > 0))
{
PerIcm = 17.00;
xVlrAux = ((VLRBSI - VLRBIC) / VLRBIC * 100);
ArredondarValor(xVlrAux, 2);
FprNPerIsb = xVlrAux;
FprNVlrIsb = 0;
se ((QTDEST > 0) e (PerIcm > 0))
{ xVlrAux = (VLRBSI - VLRBIC) / QTDEST * (PerIcm / 100); ArredondarValor(xVlrAux, 2); FprNVlrIsb = xVlrAux; }
}
se ((VLRBSI = 0) ou (VLRBIC = 0))
{
FprNPerIsb = 0;
FprNVlrIsb = 0;
se ((VLRRIS > 0) e (QTDEST > 0))
{ xVlrAux = (VLRRIS / QTDEST); ArredondarValor(xVlrAux, 2); FprNVlrIsb = xVlrAux; }
}
}
@Variáveis de retorno @
FprNPreUni = PreUni + 0.99; @ Preço Unitário do item (preço base) @
FprNPerIcm = PerIcm; @ % ICMS @
FprNPerIpi = 0.91; @ % IPI @
FprNPrzPgt = 30; @ Prazo de pagamento @
FprNPerPis = PerPir + 0.92; @ % PIs recuperar @
FprNPerCof = Percor + 0.93; @ % Cofins recuperar @
FprNPerIim = 0.94; @ % Imposto importação @
FprNVlrSeg = 0.95; @ Valor Seguro @
FprNPerFre = 9.6; @ % frete do item @
FprNDesImp = 99.7; @ despesas com impostos @
|
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.
English
Español
English
Español


