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.