DVV - Despesas Variáveis de Vendas
Conceito
Despesas Variáveis com Vendas (DVV)
São despesas que variam em função das vendas, como impostos, comissões e outros valores que podem variar a cada venda, independente de custo, lucro, local de venda, etc...
Extração de DVVs de Notas Fiscais de Saída e Pedidos
Argumentação para a necessidade:
- A extração de dvvs de notas fiscais de saída ou pedidos é vista como uma necessidade para comparação dos valores calculados pelo Módulo de Custos, para saber se estes estão realmente corretos. Na composição do preço de venda, são utilizados dvvs que na prática não ocorre com todas as vendas. Exemplificando podemos citar situações como exportação, Zona Franca de Manaus, vendas sem comissão, fretes, etc...
- O objetivo da extração desses dvvs diretamente das notas fiscais e pedidos é saber a sua real lucratividade, avaliando assim a eficácia da venda, como informação gerencial. A avaliação por Nota Fiscal e seus itens ou Pedido e seus itens é necessária visto a natureza negociável dessas transações.
- A extração de dvvs para os pedidos é utilizada para simulação de vendas, garantindo confiança em termos de negociação dos valores agregados ao pedido.
Especificação
A especificação dos dvvs a serem considerados levou em conta as seguintes informações:
- Impostos que são considerados dvvs;
- Outras despesas com vendas consideradas dvvs;
Impostos
Tipos de impostos definidos no Gestão Empresarial | ERP considerados dvvs :
Tipo | Descrição |
02 |
ICMS |
05 |
ISS |
10 |
INSS |
11 |
IRRF |
06 |
Base Faturamento |
12 |
Simples |
13 |
IRPJ Lucro Presumido Atividade Principal |
14 |
IRPJ Lucro Presumido Atividade Secundári |
15 |
CSLL Presumido - Atividade Principal |
16 |
CSLL Presumido - Atividade Secundária |
17 |
IRPJ Adicional |
18 |
Cofins |
19 |
Pis |
20 |
Pis Não Cumulativo |
21 | Cofins Não Cumulativo |
Outras Despesas
Outras despesas existentes nos Pedidos e Notas Fiscais considerados dvvs:
- Frete
- Comissão
- Diversos 1 (calculado sobre o líquido do Pedido/NF através de um percentual informado)
- Diversos 2 (calculado sobre o líquido do Pedido/NF através de um percentual informado)
Imposto Padrão
No Gestão Empresarial | ERP, os impostos podem ser cadastrados pelo usuário, sendo que cada imposto cadastrado pertence a um tipo de imposto. Nesse tipo de cadastramento, ficaria inviável calcular dvvs para mais de um imposto que possua o mesmo tipo de imposto. Portanto, foi criado um identificador (campo) que identifica qual imposto dos impostos de um tipo que é o padrão a ser utilizado para calcular os dvvs. Exceção se faz aos impostos do tipo 6, onde todos os impostos cadastrados para esse tipo são considerados padrões e serão dvvs..
Nomenclatura dos Dvvs
Definidos quais são os dvvs a serem calculados para os pedidos e notas fiscais de saída, é necessário identificar, através de um nome ou código, o que é calculado, e o que significa cada dvv. Foi feita uma classificação macro dos dvvs antes de gerar a nomenclatura. Essa classificação indica também como esses dvvs são calculados, além de discernir os dvvs que são impostos dos dvvs que são outras despesas nos pedidos e notas fiscais de saída. Segue a classificação:
- DVVs que são impostos tendo valor de base e valor líquido do imposto já calculados nos itens de pedidos ou notas (denomidados VBC Valor Base Calculado):
Tipo | Descrição | Nomenclatura Adotada |
---|---|---|
02 |
ICMS |
ICMS |
05 |
ISS |
ISS |
10 |
INSS |
INSS |
11 |
IRRF |
IRRF |
- DVVs que são impostos que não são calculados nos pedidos ou notas fiscais de saída (denominados VCI Valor Base Calculado Por Impostos):
Tipo |
Descrição |
Nomenclatura Adotada |
---|---|---|
06 |
Base Faturamento |
Utiliza o nome do imposto cadastrado |
12 |
Simples |
SIMPLES |
13 |
IRPJ Lucro Presumido Atividade Principal |
IRPJP |
14 |
IRPJ Lucro Presumido Atividade Secundária |
IRPFS |
15 |
CSLL Presumido Atividade Principal |
CSLLP |
16 |
CSLL Presumido Atividade Secundária |
CSLLS |
17 |
IRPJ Adicional |
IRPJA |
18 |
Cofins |
COFINS |
19 |
PIS |
PIS |
20 |
PIS Não Cumulativo |
PISNC |
21 | Cofins Não Cumulativo | COFINSNC |
- DVVs que são outras despesas do pedido ou nota, que já possuem base e valor calculado ou são calculados sobre o líquido do item de pedido ou nota fiscal de saída (denominados DCO Dvvs Calculados pelo Comercial):
Descrição |
Nomenclatura Adotada |
Comissão |
COMISSÃO |
Frete |
FRETE |
- DVVs cujo percentual pode ser informado pelo usuário e que é calculado tendo como base o valor líquido do pedido ou nota fiscal de saída (denominados BCP Utiliza valor base do comercial para cálculo com percentual informado):
- DVVs cujo percentual pode ser informado pelo usuário e que é calculado tendo como base o valor líquido do pedido ou nota fiscal de saída (denominados BCP Utiliza valor base do comercial para cálculo com percentual informado):
Descrição | Nomenclatura Adotada |
Diversos 1 |
DIV1 |
Diversos 2 |
DIV2 |
Com relação aos impostos cadastrados com o tipo 6, cada um desses impostos é padrão, e assim são tornados dvvs, sendo que estes dvvs recebem os nomes cadastrados para o seu imposto.
- Código do Imposto : HAM
Tipo: 6
Dvv a ser gerado e calculado : HAM - Código do Imposto: AMR
Tipo : 6
Dvv a ser gerado e calculado : AMR.
Extração e Cálculo dos Dvvs
Funções de Programador no Gerador de Relatórios
Para criar uma interface de modo a gerar e calcular os dvvs, foram criadas inicialmente duas funções de programador a serem utilizadas nas regras do gerador de relatórios do Gestão Empresarial | ERP, as quais seguem:
- GeraListaDvv(Alfa TipDoc, Numero CodEmp, Numero CodFil, Alfa CodSnf,
Alfa NumDoc, Alfa ProSer, Numero SeqIte, Numero TaxFin, Numero PerDv1, Numero PerDv2)
Os parâmetros desta função estão assim definidos:
Nome | Tipo | Descrição |
---|---|---|
TipDoc |
Alfa |
Tipo do Documento a verificar : P Pedido N Nota Fiscal de Saída |
CodEmp |
Número |
Código da Empresa do Documento |
CodFil |
Número |
Código da Filial do Documento |
CodSnf |
Alfa |
Série da Nota Fiscal de Saída (Somente para Nota Fiscal de Saída, Tipo do documento N) |
NumDoc |
NumDoc |
Número do Documento Número do Pedido ou Número da Nota Fiscal |
ProSer |
Alfa |
Indicativo se o item de Pedido ou Nota Fiscal a ser analisado é Produto (P) ou Serviço (S) |
SeqIte |
Número |
sequência do Item de Produto ou Serviço do Pedido ou da Nota Fiscal a ser analisado |
TaxFin |
Número |
Taxa Financeira para calcular o valor do DVV a valor presente (o valor deve estar entre 0 e 100) |
PerDv1 |
Número |
Primeiro Percentual para cálculos do DVV1 a ser gerado sobre o líquido do item a ser analisado |
PerDv2 |
Número |
Segundo Percentual para cálculo do DVV2 a ser gerado sobre o líquido do item a ser analisado |
Essa função recebe a identificação de um item de pedido ou nota fiscal de saída para que sejam gerados e cálculados os dvvss para esse item. Os dvvs são gerados e calculados e é montada internamente uma lista para todos os dvvs gerados e calculados para o item. A leitura para o gerador de relatórios dessa lista dos dvvs gerados é feita através de outra função de programador assim definida:
- Funcao LeListaDvv(Numero Pos, Numero End FimLis, Alfa End NomDvv,
Numero End VlrBas, Numero End VlrCal, Numero End VlrAvp, Numero End PrzCal)
Os parâmetros dessa função estão assim definidos:
Nome | Tipo | Descrição | Retorna Valor |
---|---|---|---|
Pos |
Número |
Posição do registro a ser lido na lista |
Não |
FimLis |
Número |
Indicador de Fim da Lista (0 Não término, 1 - Término) |
Sim |
NomDvv |
Alfa |
Nome do Dvv gerado |
Sim |
VlrBas |
Numero |
Valor Base do Dvv |
Sim |
VlrCal |
Número |
Valor Calculado do Dvvv |
Sim |
VlrAvp |
Número |
Valor Presente do Dvv |
Sim |
PrzCal |
Número |
Prazo (em dias) usado para o cálculo do valor presente |
Sim |
Geração da Lista de Dvvs
Para a geração da lista de dvvs de um item, a rotina segue o seguinte fluxo:
- Análise dos parâmetros de impostos:
- Busca dos impostos padrões. Para cada imposto padrão encontrado, é encontrada a nomeclatura de acordo com as tabelas de nomenclatura de dvvs do tipo VCI e VCB. Para os impostos do tipo 6, cada imposto é um imposto padrão, sendo incluído na lista com o nome do imposto cadastrado. Para os outros tipos de impostos, deve haver no máximo um dvv para cada imposto, desde de que haja impostos cadastrados para o tipo;
Inclusão dos Dvvs fixos:
- São incluídos os Dvvs definidos como DCO, ou seja:
- FRETE
- COMISSAO
- DVV1
- Dvv2
As rotinas não observam dvvs que não existam para produto ou que não existam para serviços, todos os dvvs são incluídos invariavelmente, sendo que os que não são válidos para produtos ou serviços simplesmente não são calculados e não possuem valor base.
Cálculo dos Dvvs
O cálculo para os dvvs varia de acordo com o tipo de classificação do dvv. O processo é a seguir demonstrado, para cada tipo de dvv:
- DVVS do tipo VBC:
- Esses impostos já possuem uma base de cálculo e valor calculado no item de pedido ou nota fiscal de saída. Tal base é extraída e passada ao registro correspondente do dvv. Portanto, o valor base do dvv é o valor base desse tipo de imposto no item sendo analisado e o valor calculado do dvv é também o valor existente no item. Deve-se considerar que o valor desses impostos dependem também do tipo de item analisado, ou seja, produtos podem não ter os mesmos impostos que serviços, mas o dvv é incluído na lista do mesmo modo, porém não conterá valor quando o imposto não existir no item analisado; Após a obtenção da base e valor de cálculo é definido se a transação do item indica ou não se o valor obtido deve ser calculado, isto para os impostos do tipo 05 (ISS), 10 (INSS) e 11 (IRRF). Ou seja, se o indicativo na transação do item informar que tal imposto soma no líquido do item, este dvv terá sua base e valor de cálculo zerada, não sendo calculado; Tendo o valor base e valor calculado do dvv, são feitas as buscas de prazos de pagamento no módulo de impostos. A data base utilizada é a data corrente do sistema, e o prazo é o número de dias entre a data corrente e a data de pagamento encontrada para o imposto. Esse prazo é utilizado no cálculo do valor presente do Dvv e os dois valores são gravados no registro do DVV.
- DVVS do tipo VCI:
- Esses impostos não possuem uma base de cálculo e valor calculado no item de pedido ou nota fiscal de saída. A montagem da base desse item é feita através da procura dos parâmetros de formação da base desse tipo de imposto no módulo de impostos, cujo fluxo é o seguinte:
- O primeiro parâmetro a ser verificado é através da transação. Como as transações cadastradas no módulo de impostos são transações de faturamento e as transações nos itens de pedido (se for este tipo de registro que está sendo analisado) não são transações de faturamento, é feita a sugestão da transação de faturamento para o item de pedido pela rotina de sugestão existente, que sugere automaticamente uma transação de faturamento para o item dependendo dos dados desse pedido (esta sugestão deve ser parametrizada no sistema). Não existindo transação a ser sugerida o dvv não será calculado;
- É verificado nas tabelas de Base Faturamento Bruto, Base de Faturamento Líquido e Exceções dos impostos se a transação está cadastrada para o imposto relacionado ao dvv e de que forma que ela indica a formação do valor base do mesmo. São analisados o período (de acordo com a data de emissão do documento) para encontrar os registros que indicam como formar o valor base do imposto. Caso não exista nada cadastrado para o período e transação nessas tabelas, o valor base será zero e não será feito o cálculo de valores para o dvv. O tratamento mas especificamente é o seguinte :
- São passados para uma rotina os valores contábil (líquido do item de pedido ou nota) e os valores de IPI, IRRF, ISS, INSS E ICMS.
- A rotina verifica na tabela de base de faturamento líquido se utiliza os parâmetros do faturamento bruto. Nesse caso, a montagem do valor base é feita inicialmente pelos parâmetros encontrados naquela tabela, e a seguir o valor encontrado pela parametrização naquela tabela é passado para ser analisado pelos parâmetros na tabela de base de faturamento líquido. Não existindo registro na tabela base de faturamento bruto, a busca é feita diretamente na tabela de faturamento líquido. Após isso, a base formada pela parametrização (se foi modificada) é passada como parâmetro para a busca na tabela de exceções do imposto, onde tal base pode ser modificada. Deve-se considerar que podem haver várias situações para formação da base, em relação a existência de parâmetros dentro de período e para transação nessas tabelas e em relação a forma como foi parametrizada a formação. Caso a base seja negativa, é emitida uma mensagem de erro indicando o ocorrido, parando o processo;
- Obtido o valor base, são feitas as buscas da tributação do imposto relacionado ao
dvv, na tabela de tributações de impostos. Nesse ponto, há alguns detalhes a observar:
- O período na tabela de tributação (a busca é feita pela data de emissão do documento analisado);
- O indicativo no imposto relacionado ao dvv que indica se calcula por agrupamento fiscal, sendo que é utilizado o agrupamento no cadastro do produto ou o agrupamento geral fiscal para serviços, caso o indicativo seja sim, senão é utilizado código padrão para o agrupamento geral de impostos;
- A faixa em que se encaixa o valor base encontrado;
- A data de validade do imposto, considerada em relação a data de emissão do pedido para o registro encontrado após as avaliações acima;
- Encontrado o percentual de tributação e o valor base para o dvv relacionado ao imposto, é calculado o valor do mesmo;
- Tendo o valor base e valor calculado do dvv, são feitas as buscas de prazos de pagamento no módulo de impostos. A data base utilizada é a data corrente do sistema, e o prazo é o número de dias entre a data corrente e a data de pagamento encontrada para o imposto. Esse prazo é utilizado no cálculo do valor presente do Dvv e os valores são gravados no registro do DVV.
- DVVS do tipo DCO:
- Esses dvvs possuem sua base de cálculo extraídas diretamente do item de pedido ou nota fiscal de saída, da seguinte forma:
- FRETE: o valor do frete correspondente ao item de produto do documento é passado ao valor base e valor calculado;
- COMISSÃO: o valor base de comissão do item do documento é passado ao valor base do dvv e o valor da comissão do item do documento é passado ao valor calculado do dvv;
- DVVS do tipo BCP:
- DVV1 e DVV2: utilizam o líquido do pedido ou nota como base e são calculados pelo percentual 1 e percentual 2 passados para a função. O objetivo desses dvvs é agrupar despesas diversas que porventura podem existir para os documentos
Formação da lista de Dvvs em relação a itens de produto e de serviço.
Visto que a lista de dvvs não varia de acordo com o tipo de item a ser analisado (produto ou serviço) existem meios na rotina que detectam quais dvvs devem ser calculados ou não em função do tipo de item. São listados os dvvs que não são calculados em relação ao tipo de item e algumas considerações a respeito que podem sanar eventuais dúvidas em relação a essa relação. Considerar também que podem existir dvvs que não são calculados em função não existir o valor base no item ou não exisitirem parametrizações do imposto relacionado ao dvv no módulo de impostos:
- Dvvs não calculados para produtos:
- INSS (relativo a serviços);
- ISS (relativo a serviços);
- Dvvs não calculados para serviços:
- FRETE
- ICMS somente calcula se o parâmetro indicativo se possui serviços com tributação de ICMS/IPI para entradas e saídas na empresa estiver como S.
Segue um exemplo de como podem ser utilizadas as duas funções de programador para extração dos dvvs. O código a seguir foi utilizado em uma regra de impressão do gerador de relatórios, para a listagem dos dvvs de itens de pedidos:
definir Numero Posicao;
definir Numero Finaliza;
definir Numero VBaseDvv;
definir Numero VCalcDvv;
definir Numero VPresDvv;
definir Numero VPrazDvv;
GeraListaDvv("P", E120Ipd.CodEmp, E120Ipd.CodFil, " ", E120Ipd.NumPed, "P", E120Ipd.SeqIpd, 10, 5, 5);
Posicao = 0;
Finaliza = 0;
LeListaDvv(Posicao, Finaliza, NomeDvv, VBaseDvv, VCalcDvv, VPresDvv, VPrazDvv);
enquanto (Finaliza = 0)
{
IntParaStr(VBaseDvv, BaseDvv);
IntParaStr(VCalcDvv, CalcDvv);
IntParaStr(VPresDvv, PresDvv);
IntParaStr(VPrazDvv, PrazDvv);
ListaSecao("SDVV"); @seção onde podem ser listados os dados dos dvvs@
Posicao = Posicao + 1;
LeListaDvv(Posicao, Finaliza, NomeDvv, VBaseDvv, VCalcDvv, VPresDvv, VPrazDvv);
}