Atualizar rotina de rateios (Desconto, Outras Despesas, Frete, Seguro)
Software: SOFTSHOP | Grupo: SOFTSHOP > RFC | Prioridade: ALTA
Solução
Causa:
Necessidade de corrigir diferença entre o Totalizador e a Soma dos Itens para Desconto, Outras Despesas, Frete e Seguro
Solução:
1- Importar as consultas "NFe_Dif*" do SOFTSHOP_ORIGEM (Disponível na versão atual do Atualizador de Objetos no helptools) Utilizar a versão inferior a 9.0 do Softshop, pegar o Origem do Atualizaro Legado.
2- Importar os formulários: load, load2
3- Importar/Substituir o módulo "Util_Aplicacao"
4- Copiar o enumerador abaixo no inicio do módulo "NFe", caso não exista:
Enum NFe_TipoRateio
Frete
Seguro
OutrasDespesas
Desconto
End Enum
5- Módulo NFe: Atualizar a função "NFe_AtualizarRateios"
6- Módulo NFe: Substituir as funções "NFe_getDifValorCorrigido", "NFe_setDifValorCorrigidoTodos", "NFe_setRatearCalculoImposto", "NFe_setTotalizadores" e "NFe_setTotalizadoresTotal", caso não existem adicione.
7- Substituir coluna "vDesc_Item" na memoria_NF_Saida:
Em sistema SQL, será na view:
CONVERT(DECIMAL(10, 2), CASE WHEN [DescontoItemValor] > 0 THEN [DescontoItemValor] ELSE (ISNULL(dbo.NotaFiscal_Itens.Mercadoria_Preco, 0) * ISNULL(dbo.NotaFiscal_Itens.Mercadoria_Quantidade, 0))*(ISNULL(dbo.NotaFiscal_Cabecalho.DescontoP, 0) / 100) END) AS vDesc_Item
Em Sistema Access, será na consulta:
vDesc_Item: Formato(SeImed([DescontoItemValor]>0;[DescontoItemValor]😭(nz([mercadoria_preco];0)nz([mercadoria_quantidade];0))(nz([descontop];0)/100)));"0.00")
8- Na consulta "NFe_ExpLinhaW02_Arred" a coluna do desconto deve estar da seguinte forma >> Mercadoria_Desconto: Formato(nz([vDesc_Item];0);"0.00")
9- Redigitar o desconto na tela da NFe, caso ocorra o erro "Error 2465 na funçao NFe_SetTotalizadores" é porque o modulo NFe do cliente não é o mais novo. Para resolver, na função "NFe_AtualizarRateios" comente a linha da chamada abaixo:
'NFe_setTotalizadores Registro
OBS: Caso necessite atualizar todas as notas a partir de uma determinada data para resolver problema de diferença de centavos no SPED, executar a função NFe_setDifValorCorrigidoTodos() passando como parametro a Data Inicial
Exemplo de chamada, rateio do desconto: ?NFe_setDifValorCorrigidoTodos("NFe_DifDesconto",dtInicial:=Cdate("01/01/2018"))
Nesse caso vai atualizar o rateio do desconto de todas as NFe a partir do dia 01/01/2018
OBS 2: Caso o sistema seja muito antigo, passar Atualizador Módulo "NFe" deixando marcado apenas "Tabelas", isso porque no final da função "NFe_AtualizarRateios" é chamada a função "NFe_setTotalizadores" que precisa dos novos campos totalizadores da tabela "NotaFiscal_Cabecalho".
Tags: rateio desconto, rateio frete, rateio seguro, rateio, atualizar rateio, atualizar rateios