FATOR DE MULTIPLICACAO
Boa tarde!
Fiz um programa para uma lanchonete em vb6, onde agora o dono me solicitou fazer uma promoção.
Onde: para uma certa quantidade vendida de cerveja cobra-se 1 ou 2 a menos conforme o dia.
Por exemplo: para 4 quantidades vendidas paga-se 3, e no caixa aparece 3 vezes o valor unitário e 1 cerveja no valor 0,00.
Até aà tudo bem, pois fiz um cadastro para tantas quantidades cobrar tais quantidades, e no caixa fiz uma rotina que verifica o valor consumido até o valor da promoção e mostra o resultado certo no caixa. Isso é, como no exemplo no limite de 4 cobra 3.
O Problema é que as pessoas podem consumir mais do que a promoção, e pagar na mesma proporçao. por exemplo: consumir 5 e pagar 4, 8 e pagar 6, 12 e pagar 9, e assim sucessivamente.
Não sei como faço quando passar do valor estipulado que é verificado no cadastro das promoções. Não sei como encontrar um fator para isso.
Alguém pode ajudar, por favor.
Valdecyr
Fiz um programa para uma lanchonete em vb6, onde agora o dono me solicitou fazer uma promoção.
Onde: para uma certa quantidade vendida de cerveja cobra-se 1 ou 2 a menos conforme o dia.
Por exemplo: para 4 quantidades vendidas paga-se 3, e no caixa aparece 3 vezes o valor unitário e 1 cerveja no valor 0,00.
Até aà tudo bem, pois fiz um cadastro para tantas quantidades cobrar tais quantidades, e no caixa fiz uma rotina que verifica o valor consumido até o valor da promoção e mostra o resultado certo no caixa. Isso é, como no exemplo no limite de 4 cobra 3.
O Problema é que as pessoas podem consumir mais do que a promoção, e pagar na mesma proporçao. por exemplo: consumir 5 e pagar 4, 8 e pagar 6, 12 e pagar 9, e assim sucessivamente.
Não sei como faço quando passar do valor estipulado que é verificado no cadastro das promoções. Não sei como encontrar um fator para isso.
Alguém pode ajudar, por favor.
Valdecyr
Pelo que entendi, o cliente ganha somente uma caso consuma mais de 4 e não uma grátis a cada quatro, correto? Se for isso:
<Pseudo-código>
Se numero_itens_consumidos = 4
{
numero_itens_consumidos = 3
Adiciona_Item_consumo(Valor=0)
}
</Pseudo-código
<Pseudo-código>
Se numero_itens_consumidos = 4
{
numero_itens_consumidos = 3
Adiciona_Item_consumo(Valor=0)
}
</Pseudo-código
boa Kerplunk
Ele ganha 1 a cada 4 consumidas.
se consumir 8 ganha 2
Ele ganha 1 a cada 4 consumidas.
se consumir 8 ganha 2
Hmmm, nesse caso, tem que pegar a diferença pra saber se é múltiplo de 4 e a coisa complica um pouco...
<Pseudo-código>
Mod(Se numero_itens_consumidos / 4) = 0 //Mod, pega o resto de uma divisão, caso não tenha resto, é múltiplo de 4
{
numero_itens_consumidos = numero_itens_consumidos - (numero_itens_consumidos / 4)
para(numero_itens_consumidos / 4)
{
Adiciona_Item_consumo(Valor=0)
}
}
</Pseudo-código
<Pseudo-código>
Mod(Se numero_itens_consumidos / 4) = 0 //Mod, pega o resto de uma divisão, caso não tenha resto, é múltiplo de 4
{
numero_itens_consumidos = numero_itens_consumidos - (numero_itens_consumidos / 4)
para(numero_itens_consumidos / 4)
{
Adiciona_Item_consumo(Valor=0)
}
}
</Pseudo-código
Olá Goodspeakers.
No cadastro de promoção, só grava a quantidade a atingir a promoção e quantas deve pagar.
e olha essa lanchonete vai gente pra tomar cerveja de turma grande ,escutar rock a noite inteira e tem cara que toma cerveja pra caramba.
Kerplunk
Putz, não entendi direito, o que seria o Mod?
Poderia explicar melhor,por favor?
No meu caso eu havia feito o código simples assim.
resumindo:
Quanto = sum(cursor!qtdevendida)
Cobra = cursor!qtdeacobrar
Normal = cursor!qtdepromocao [ô] a atingir a promoção
Diferenca = Normal - Cobra
if Quanto <= Cobra
lvpedidos.item
lvpedidos.qtde = cobra
lvpedidos.valor = cobra * vlvenda
elseif quanto > cobra and quanto = normal then
lvpedidos.item
lvpedidos.qtde = diferenca
lvpedidos.valor = 0 * vlvenda
No cadastro de promoção, só grava a quantidade a atingir a promoção e quantas deve pagar.
e olha essa lanchonete vai gente pra tomar cerveja de turma grande ,escutar rock a noite inteira e tem cara que toma cerveja pra caramba.
Kerplunk
Putz, não entendi direito, o que seria o Mod?
Poderia explicar melhor,por favor?
No meu caso eu havia feito o código simples assim.
resumindo:
Quanto = sum(cursor!qtdevendida)
Cobra = cursor!qtdeacobrar
Normal = cursor!qtdepromocao [ô] a atingir a promoção
Diferenca = Normal - Cobra
if Quanto <= Cobra
lvpedidos.item
lvpedidos.qtde = cobra
lvpedidos.valor = cobra * vlvenda
elseif quanto > cobra and quanto = normal then
lvpedidos.item
lvpedidos.qtde = diferenca
lvpedidos.valor = 0 * vlvenda
O Mod, é um operador que retorna o resto de uma divisão. A idéia é usar o resto da divisão pra saber se é múltiplo
Usando esse pseudo-código traduzindo par vb6, usando suas variáveis ficaria mais ou menos assim:
quanto = 13
[ô]Cobra = cursor!qtdeacobrar
Normal = 4 [ô] a atingir a promoção
[ô]Diferenca = Normal - Cobra
quantidadePromocao = quanto Mod Normal
quantidadebrinde = quanto \ Normal
quanto = quanto - quantidadebrinde
MsgBox [Ô]o cara comprou [Ô] & quanto + quantidadebrinde
MsgBox [Ô]paga [Ô] & quanto
MsgBox [Ô]ganha [Ô] & quantidadebrinde
Usando esse pseudo-código traduzindo par vb6, usando suas variáveis ficaria mais ou menos assim:
quanto = 13
[ô]Cobra = cursor!qtdeacobrar
Normal = 4 [ô] a atingir a promoção
[ô]Diferenca = Normal - Cobra
quantidadePromocao = quanto Mod Normal
quantidadebrinde = quanto \ Normal
quanto = quanto - quantidadebrinde
MsgBox [Ô]o cara comprou [Ô] & quanto + quantidadebrinde
MsgBox [Ô]paga [Ô] & quanto
MsgBox [Ô]ganha [Ô] & quantidadebrinde
boa noite Kerplunk
tive que sair correndo aqui, amanhã cedo vou testar e retorno.
Obrigado
tive que sair correndo aqui, amanhã cedo vou testar e retorno.
Obrigado
Em vez do MOD, usa o INT
Se o cliente consumiu 13 cervejas e a cada 4 não paga uma, então 13/4 = 3,25
Usando o INT fica assim: INT(13/4) = 3 ou seja, voce não vai cobrar 3 cervejas.
Se o cliente consumiu 13 cervejas e a cada 4 não paga uma, então 13/4 = 3,25
Usando o INT fica assim: INT(13/4) = 3 ou seja, voce não vai cobrar 3 cervejas.
Ou se a cada 4 consumidas ele ganha mais uma, então a promoção é [Ô]a cada 5 não paga uma[Ô].
INT(13/5) = 2 ou seja, voce não vai cobrar 2 cervejas.
---
Não sei se pode emitir cupom fiscal com valores diferentes para o mesmo produto.
Acho que voce deve cobrar todas as cervejas, e dar um desconto no valor das cervejas não cobradas
INT(13/5) = 2 ou seja, voce não vai cobrar 2 cervejas.
---
Não sei se pode emitir cupom fiscal com valores diferentes para o mesmo produto.
Acho que voce deve cobrar todas as cervejas, e dar um desconto no valor das cervejas não cobradas
Bom dia a todos!
De acordo com a idéia que vcs me passaram, vou tentar ver se consigo ajeitar aqui e dou retorno.
Federhen, bem observado, vou verificar sobre cupom fiscal, pois essa empresa vai ter que colocar mais pra frente.
Obrigado,
Valdecyr
De acordo com a idéia que vcs me passaram, vou tentar ver se consigo ajeitar aqui e dou retorno.
Federhen, bem observado, vou verificar sobre cupom fiscal, pois essa empresa vai ter que colocar mais pra frente.
Obrigado,
Valdecyr
Tópico encerrado , respostas não são mais permitidas