PRODUTOS PROMOCIONAIS NO PDV

FOXMAN 09/04/2017 13:14:20
#473185
Prezados,
Devido a uma perda de backups do meu sistema de PDV(ainda era em vb6), agora estou desenvolvendo um novo sistema e C#.
Impressionantemente já desenvolvi mais de 70% do sistema em menos de um mês.
No entanto estou implementando novas funcionalidades, como por exemplo as promoções.
Atualmente tenho um List<Produto>, que é adicionando a classe Venda.
Produto, tem alguns campos que identificam se o produto é promocional e a quantidade necessária para que o sistema identifique o valor do produto.
Até ai tudo bem.
O problema está em obter em alguns casos a correta quantidade de itens para a promoção.
Exemplo :
Item.Promocional = true;
item.QtdPromocional = 3;
Item.Precovenda = 3,09;
Item.PrecoPromocioal = 2,69;
Criei uma função para fazer o RECALCULO dos itens, em alguns testes obtive o que queria, porém me deparei com problemas, como por exemplo a exclusão de um item.

A situação seria a seguinte para o exemplo acima :

Item.Qtde = 7

é sabido que para cada 3 itens vendidos o valor de venda será de 2,69;
No exemplo eu teria :
(3 x 2,69 + 3 x 2,69 + 1 x 3,09) ou (6 x 2,69 + 1 x 3,09);
Utilizei uma lógica que pegava o a sobra da divisão, porém funcionou bem até 5 itens(3 a 2,69 e 2 a 3,09), pois múltiplos de 3 funciona normalmente(3,6,9), o problema ocorre por exemplo 7 unidades sendo que a função retornava 3 itens a 2,69 e 4 itens a 3,09.
Utilizei o MOD (Item.Qtde % Item.QtdPromocional) para obter a sobra porém não obtive êxito na minha lógica.
A finalidade da função é recalcular o List<produto> , definindo corretamente os valores de venda (no LIST<> de acordo com a quantidade necessária.
Se eu for adicionando item(qtde) por item, funciona normal, o problema ocorre quando é lançado quantidades maiores.

Alguém teria alguma dica de como proceder neste caso.







JABA 09/04/2017 15:05:48
#473186

int quantidadeProduto = 7;
double precoPromocao = 2.69;
double precovenda = 3.09;
int quantidadeVendaNormal = quantidadeProduto % 3;
int quantidadeVendaPromocional = quantidadeProduto - quantidadeVendaNormal;

Console.WriteLine(quantidadeVendaNormal * precovenda);
Console.WriteLine(quantidadeVendaPromocional * precoPromocao);

Tópico encerrado , respostas não são mais permitidas