Jump to content


Photo

Função. O Que Errei?


  • Faça o login para participar
8 replies to this topic

#1 mega

mega

    Normal

  • Usuários
  • 61 posts
  • Sexo:Não informado

Posted 28/04/2006, 15:02

Pessoal me da um help aqui...

Tenho essa função

<script Language="JavaScript">
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)cents = "0" + cents;
for (var i = 0;
i < Math.floor((num.length-(1+i))/3);
i++)num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num);
}
function valor(varqtdevendida20,varqtdevendida50,varqtdevendida100,var20,var50,var100,varvezes20,varvezes50,varvezes100,var50por20,var50por50,var50por100,vartotalestabelecimento,vartotalambev){ 
var varqtdevendida20 = document.Cadastro.varqtdevendida20.value;
var varqtdevendida50 = document.Cadastro.varqtdevendida50.value;
var varqtdevendida100 = document.varqtdevendida100.value;
var vartotalestabelecimento = document.Cadastro.vartotalestabelecimento.value;
var vartotalambev = document.Cadastro.vartotalambev.value;
if (isNaN(varqtdevendida20) || isNaN(varqtdevendida50) || isNaN(varqtdevendida100) || isNaN(var20) || isNaN(var50) || isNaN(var100) || isNaN(varvezes20) || isNaN(varvezes50) || isNaN(varvezes100) || isNaN(var50por20) || isNaN(var50por50) || isNaN(var50por100) || isNaN(vartotalestabelecimento) || isNaN(vartotalambev))
{
alert("Preencha os campos corretamente!");
}
else
{
var qtdevend20 = Number(varqtdevendida20);
document.Cadastro.varqtdevendida20.value = formatCurrency(qtdevend20);
var qtdevend50 = Number(varqtdevendida50);
document.Cadastro.varqtdevendida50.value = formatCurrency(qtdevend50);
var qtdevend100 = Number(varqtdevendida100);
document.Cadastro.varqtdevendida100.value = formatCurrency(qtdevend100);
var choop20 = qtdevend20 * 10;
var varvezes20 = choop20 * 350;
var var50por20 = varvezes20 / 2;
var choop50 = qtdevend50 * 50;
var varvezes50 = choop50 * 350;
var var50por50 = varvezes50 / 2;
var choop100 = qtdevend100 * 100;
var varvezes100 = choop100 * 350;
var var50por100 = varvezes100 / 2;
var total = var50por20 + var50por50 + var50por100;
document.Cadastro.total_estabelecimento.value = total;
document.Cadastro.total_ambev.value = formatCurrency(total);
}
}
</script>

Posso usa-la assim???

Obrigado!

Pessoal, montei meu script, mas não dá erro e não funfa tb olha como esta:

<html>
<head>
<title>Chopp Brahma</title>
<script Language="JavaScript">
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)cents = "0" + cents;
for (var i = 0;
i < Math.floor((num.length-(1+i))/3);
i++)num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num);
}
function valor& #40;varqtdevendida20,varqtdevendida50,varqtdevendida100,var20,var50,var100,varve
zes20,varvezes50,varvezes100,var50por20,var50por50,var50por100,vartotalestabelec
imento,vartotalambev){
var varqtdevendida20 = document.Cadastro.varqtdevendida20.value;
var varqtdevendida50 = document.Cadastro.varqtdevendida50.value;
var varqtdevendida100 = document.varqtdevendida100.value;
var vartotalestabelecimento = document.Cadastro.vartotalestabelecimento.value;
var vartotalambev = document.Cadastro.vartotalambev.value;
if (isNaN(varqtdevendida20) || isNaN(varqtdevendida50) || isNaN(varqtdevendida100) || isNaN(var20) || isNaN(var50) || isNaN(var100) || isNaN(varvezes20) || isNaN(varvezes50) || isNaN(varvezes100) || isNaN(var50por20) || isNaN(var50por50) || isNaN(var50por100) || isNaN(vartotalestabelecimento) || isNaN(vartotalambev))
{
alert("Preencha os campos corretamente!");
}
else
{
var qtdevend20 = Number(varqtdevendida20);
document.Cadastro.varqtdevendida20.value = formatCurrency(qtdevend20);
var qtdevend50 = Number(varqtdevendida50);
document.Cadastro.varqtdevendida50.value = formatCurrency(qtdevend50);
var qtdevend100 = Number(varqtdevendida100);
document.Cadastro.varqtdevendida100.value = formatCurrency(qtdevend100);
var choop20 = qtdevend20 * 10;
var varvezes20 = choop20 * 350;
var var50por20 = varvezes20 / 2;
var choop50 = qtdevend50 * 50;
var varvezes50 = choop50 * 350;
var var50por50 = varvezes50 / 2;
var choop100 = qtdevend100 * 100;
var varvezes100 = choop100 * 350;
var var50por100 = varvezes100 / 2;
var total = var50por20 + var50por50 + var50por100;
document.Cadastro.total_estabelecimento.value = total;
document.Cadastro.total_ambev.value = formatCurrency(total);
}
}
</script>
</head>
<body>
<!--#include File="estilo.css"-->
<center>
<table width="798" height="567" border="0" background="fundo_cad.jpg">
	  <tr>
<td><!-- Tabela da promoção--><center>
  <p>
</p>
  <p><span class="textocima"><br>	<br>	  Cálculo da Bonificação</span><br>	  <br></p><table width="619" height="299" border="0">  <tr>	<td height="295"><!-- Inicio da tabela de dentro 2 colunas--><table width="620" height="394" border="1">	  
	<tr>		<td width="302" height="388"><p><span class="observacima">Campanha "Clube dos T&eacute;cnicos !"</span><br>		  <br>		  <img src="clube_dos_tecnicos.jpg"></p>		  </td>		<td width="302"><form name="Cadastro" id="Cadastro" method="post" action=""><p>Qtde. de cartelas vendidas de 20 choop <br>			

			<input name="varqtdevendida20" type="text" id="varqtdevendida20" onKeyUp="valor(this,document.getElementById('varqtdevendida20'),document.getElementById('varqtdevendida50'),document.getElementById('total_ambev'),document.getElementById('total_estabelecimento'));">			
			<span class="texto10">Unidades</span><br>
			<br>
Qtde. de cartelas vendidas de 50 choop <br>
<input name="varqtdevendida50" type="text" id="varqtdevendida50" onKeyUp="valor(this,document.getElementById('varqtdevendida20'),document.getElementById('varqtdevendida50'),document.getElementById('total_ambev'),document.getElementById('total_estabelecimento'));">
<span class="texto10">Unidades</span><br>
<br>
Qtde. de cartelas vendidas de 100 choop <br>
<input name="varqtdevendida100" type="text" id="varqtdevendida100" onKeyUp="valor(this,document.getElementById('varqtdevendida20'),document.getElementById('varqtdevendida50'),document.getElementById('total_ambev'),document.getElementById('total_estabelecimento'));">
<span class="texto10">Unidades</span><br>			
<br>			
<span class="texto10">Total AmBev</span><br>			

<input name="total_ambev" type="text" id="total_ambev" onKeyUp="valor(this,document.getElementById('varqtdevendida20'),document.getElementById('varqtdevendida50'),document.getElementById('total_ambev'),document.getElementById('total_estabelecimento'));">			
<span class="texto10">Total AmBev</span><br>			
<br>			
<span class="texto10">Total Estabelecimento</span><br>			

<input name="total_estabelecimento" type="text" id="total_estabelecimento" onKeyUp="valor(this,document.getElementById('varqtdevendida20'),document.getElementById('varqtdevendida50'),document.getElementById('total_ambev'),document.getElementById('total_estabelecimento'));">			
<span class="texto10">Total Estabelecimento</span></span>			<br>			
</p>		  
				<p><center>			  <br>			  

<input type="submit" name="Submit" value="Enviar"></center>		  </p>		
  </form>		
</td>
	  </tr>
	</table><!-- fim da tabela 2 colunas--></td>
  </tr>
</table>  <!-- Fim da tabela da promoção--></center>
</td>
	  </tr>
	</table>
	<br>
</center>
</body>
</html>

Obrigado

#2 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 28/04/2006, 15:11

Se você indicar aonde está o problema, tenho certeza que você receberá mais rápido sua resposta...

Acho muito pouco provável que alguém vá ficar testando sua função... pra descobrir o que ela faz, como usar, onde está o problema, ou seja, todas coisas que você já sabe!

Edição feita por: Klaus, 28/04/2006, 15:11.

Klaus Paiva
Conheça também: Taperás

#3 mega

mega

    Normal

  • Usuários
  • 61 posts
  • Sexo:Não informado

Posted 28/04/2006, 15:50

Se você indicar aonde está o problema, tenho certeza que você receberá mais rápido sua resposta...

Acho muito pouco provável que alguém vá ficar testando sua função... pra descobrir o que ela faz, como usar, onde está o problema, ou seja, todas coisas que você já sabe!


Klaus, como falei acima, ela não exibe erro nenhum, apenas não faz o calculo que deveria fazer.

#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 28/04/2006, 15:54

Se for a mesma questão do outro tópico, o problema está na função formatCurrency que parece não está suportando valores muito alto e por consequência ele não está separando as casas decimais corretamente.

Flws...
;)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 mega

mega

    Normal

  • Usuários
  • 61 posts
  • Sexo:Não informado

Posted 28/04/2006, 15:57

Frenesi,
Essa nem calcula nada.
Eu coloco o valor como se não existisse função nenhuma...
To numa luta com ela desde manhã.
Com o modelo que vc me ensinou consegui fazer 3 diferentes, mas essa aqui ta embaçado demais!

#6 edmais

edmais

    Just do it!

  • Usuários
  • 797 posts
  • Sexo:Não informado
  • Localidade:BH - MG

Posted 28/04/2006, 16:06

Cara, e qual a linha que dá erro? e qual o erro?
Eduardo Batista

#7 mega

mega

    Normal

  • Usuários
  • 61 posts
  • Sexo:Não informado

Posted 28/04/2006, 16:17

Cara, e qual a linha que dá erro? e qual o erro?


Cara não dá erro nenhum, não exibe nenhuma mensagem de erro, apenas não exibe a resposta.

#8 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 28/04/2006, 22:17

Qual o objetivo da sua função ? Dá um exemplo de um dado de entrada, como ele está saindo e o que era pra acontecer realmente....
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#9 mega

mega

    Normal

  • Usuários
  • 61 posts
  • Sexo:Não informado

Posted 02/05/2006, 16:58

essa função teria que funcionar assim:

eu teria 5 campos em meu form
os campos seriam:

Qtde. de cartelas vendidas de 20 choop;
Qtde. de cartelas vendidas de 50 choop;
Qtde. de cartelas vendidas de 100 choop;
Total AmBev;
Total Estabelecimento.

Ai o user vai digitar algo nos campos:
Qtde. de cartelas vendidas de 20 choop;
Qtde. de cartelas vendidas de 50 choop;
Qtde. de cartelas vendidas de 100 choop;

e deve fazer esse calculo.

Se o user digitar 10 no campo Qtde. de cartelas vendidas de 20 choop sera assim:
10 * 20 * 350 / 2

10 = cartelas vendidas
20 é o numero de choops(Na cartela de 20 tem 20 choops, na cartela de 50 tem 50 choops e na de 100 tem 100 choops)
350 numero de ML
2 é a divisão metade estabelecimento metade ambev.

Esse seria o calculo, se o user alem de colocar um valor no campo "Qtde. de cartelas vendidas de 20 choop" ele colocar tb no Qtde. de cartelas vendidas de 50 choop tem que fazer o mesmo calculo e somar os resultados. :wacko:

Valeu!




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq