Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tat.

Calcular preço com lógica dinâmica

Recommended Posts

Bem, deixe-me explicar exatamente o que eu estou tentando fazer...

Tenho um formulário com um determinado produto de varias cores diferentes, as imagens do produto são listadas numa tabela e na frente de cada uma tem um checkbox para escolher quais o usuario quer comprar.

Já fiz o codigo para pegar o nome de quais os banners que o usuario comprou.

Agora vem meu dilema:

 

- Criei uma variavel para guardar a quantidade de produtos que ele escolheu e esta também está funcionando direitinho... chamei ela de qtd_produto.

- O preço unitario do produto é 50,00 (criei uma variavel chamada val_unit para guardar esse valor)

- Se ele comprar 3 sai por 105,00 (criei uma variavel chamada val_3 para guardar esse valor)

- Se ele comprar 6 sai por 180,00 (criei uma variavel chamada val_6 para guardar esse valor)

- Se ele comprar 12 sai por 300,00 (criei uma variavel chamada val_12 para guardar esse valor)

- Também criei uma variavel chamada val_9 onde o valor é val_3+val_6

- E por ultimo uma variavel para guardar o valor total da compra, chamada valor_produto

 

Agora, alguns exemplos:

- Se ele comprar 4, por exemplo, vai pagar o valor: val_3+val_unit

- Se ele comprar 5, por exemplo, vai pagar o valor: val_3+(val_unit*2)

- Se ele comprar 15, por exemplo, vai pagar o valor: val_12+val_3

- Se ele comprar 23, por exemplo, vai pagar o valor: val_12+val_9+(val_unit*2)

... e assim vai...

 

Fiz o seguinte codigo e não está funcionando corretamente...

Poderiam por favor analisar meu codigo e me ajudar a descobrir o que está errado com ele?

 

'recuperar numero de produtos escolhidosqtd_produtos=request("produtos")'valores dos combos de produtosval_unit=50val_3=105val_6=180val_9=val_6+val_3val_12=300'calculow=qtd_produto/12if CInt(w)<0 thenresponse.Write "entrou /12 <br>"w=qtd_produto/9if CInt(w)<0 thenresponse.Write "entrou /9 <br>" w=qtd_produto/6if CInt(w)<0 thenresponse.Write "entrou /6 <br>" w=qtd_produto/3if CInt(w)<0 thenresponse.Write "entrou /3 <br>" valor_produto=val_unit*qtd_produtoelseaux=3valor_produto=val_3*wx=qtd_produto-(aux*w)valor_produto=valor_produto+(val_unit*x)end ifelseaux=6valor_produto=val_6*wx=qtd_produto-(aux*w)if CInt(x)>=3 thenaux2=3y=x/3valor_produto=valor_produto+(val_3*y)z=qtd_produto-((aux*w)+(aux2*y))end ifvalor_produto=valor_produto+(val_unit*x)end ifelseaux=9valor_produto=val_9*wx=qtd_produto-(aux*w)if CInt(x)>=6 thenaux2=6y=x/6valor_produto=valor_produto+(val_6*y)z=qtd_produto-((aux*w)+(aux2*y))elseif CInt(x)>=3 thenaux2=3y=x/3valor_produto=valor_produto+(val_3*y)z=qtd_produto-((aux*w)+(aux2*y))end ifvalor_produto=valor_produto+(val_unit*x)end ifelseaux=12valor_produto=val_12*wx=qtd_produto-(aux*w)if CInt(x)>=9 thenaux2=9y=x/9valor_produto=valor_produto+(val_9*y)z=qtd_produto-((aux*w)+(aux2*y))elseif CInt(x)>=6 thenaux2=6y=x/6valor_produto=valor_produto+(val_6*y)z=qtd_produto-((aux*w)+(aux2*y))elseif CInt(x)>=3 thenaux2=3y=x/3valor_produto=valor_produto+(val_3*y)z=qtd_produto-((aux*w)+(aux2*y))end ifvalor_produto=valor_produto+(val_unit*z)end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi certo você quer isso:

<%v1 = 50v3 = 105v6 = 180v9 = v3+v6v12= 300quantidade = 12if cint(quantidade) =< 12 then	select case cint(quantidade)		case 2			pagar = v1 * 2		case 3			pagar = v3		case 4			pagar = v3 + (v1 * 2)		case 5			pagar = v3 + (v1 * 3)		case 6			pagar = v4 + (v1 * 2)		case 7			pagar = v4 + (v1 * 3)			case 8			pagar = v4 + (v1 * 4)				case 9			pagar = v9		case 10			pagar = v9 + v1		case 11			pagar = v9 + (v1 * 2)		case 12			pagar = v12												case else			pagar = v1		end selectend ifResponse.Write(pagar)%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.