Ir para conteúdo
Fórum Script Brasil
  • 0

Abater No Esoque


webdotx

Pergunta

Ola galera eu já tenho metade do sistema pronto sendo que eu parei em uma parte que esta tirando meu sono e não SEI COMO FAZER PORFAVOR PEÇO A AJUDA DE VC´S

eu gostari de colocar uma informação dizendo pro cliente que o valor que ele esta digitando é acima do que tem no estoque e se caso ele digite o valor certo o sistema faça o abatimento no BD

eu vasculhei aqui no forum e achei um exemplo mais ou menos do que quero fazer só não estou sabendo como utilizar - acho que estou ficando louco veja abaixo o codigo


<html> 
<head> 
<title>x</title> 
<script language="javascript"> 
function compara(){ 
if (document.frm.valor.value > document.frm.quantidade_bd.value){ 
alert("Valor acima do esperado."); 
document.frm.valor.value=""; 
document.frm.valor.focus(); 
return false; 
} 
} 
</script> 
</head> 
<body> 
<form name=frm method=post> 
<input type="hidden" value="320" name="quantidade_bd"> 
<input type="text" name="valor" size=20> 
<input type="submit" onclick="return compara()"> 
</form> 
</body> 
</html>

Eu gostaria de saber como utilizar e se caso alguém tenha uma ideia de como eu devo fazer essa critica

Não sei se fui bem claro...

Agradeço pela atenção despençada amigos

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Na tag <form> você pode ter um atributo chamado action no qual você indica qual o script/página que receberá os valores desse form. Dessa maneira, esse script/página é que verificaria isso e retornaria se está acima ou não. Essa página que você descreveu acima teria o seguinte código (nesse caso aqui eu o chamei de teste1.asp):

<html>
	<head>
  <title>x</title>
	</head>

	<body>
  <form name="frm" method="POST" action="compara.asp">
  	<input type="text" name="valor" size=20>
  	<input type="submit">
  </form>
	</body>
</html>
E haveria um arquivo chamado "compara.asp" na mesma pasta, com o seguinte código:
<html>
	<head>
  <title>x</title>
  <meta HTTP-EQUIV="refresh" CONTENT="5;URL=teste1.asp">
	</head>

	<body>
  <%  'aqui você vai ter a parte que abre a tabela e descobre a quantidade no BD
  	'...
  	'qt = ...
  	
  	'a linha abaixo obtém a quantidade informada na outra página
  	valor=int(Request.Form("valor"))

  	if valor<=qt then
    'aqui você vai descontar do estoque na tabela
    Response.Write("<p>Ok!</p>")
  	else
    Response.Write("<p>Valor informado acima do estoque atual!</p>")
  	end if
  	Response.Write("<p>Voltando em 5 segundos...</p>")
   %>
	</body>
</html>

Substitua "teste1.asp" no código acima pelo nome do seu arquivo. Bom, pelo menos eu faria assim. Certo? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Oi!

Bom primeiro uma pergunta: Você quer fazer uma verificação no cliente, antes de enviar o form?

Se for isto tudo bem, mas eu aconselho que você faça também uma verificação lá no servidor. Alguém pode alterar o script da página e com isso causar transtornos para o sistema. Sempre que eu faço uma verificação no cliente eu a repito no server. Sei lá ...

Para testar no cliente tente isto:

<html>

<head>

<title>x</title>

<script language="javascript">

function compara(){

  if (document.frm.valor.value > document.frm.quantidade_bd.value) {

        alert("Valor acima do esperado.");

        document.frm.valor.value="";

        document.frm.valor.focus();

        return false;

        } else

          {

              return true;

          };

}

</script>

</head>

<body>

<form name=frm method=post onsubmit="return compara();">

<input type="hidden" value="320" name="quantidade_bd">

<input type="text" name="valor" size=20>

<input type="submit">

</form>

</body>

</html>

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Webdotx -

JCMPJ

é exatamente o que quero fazer só que tem um problema na tela de form tem uma lista com os produtos tipo <option value=<%id%> se entende quando chega na segunda tela ele ve qual produto selecionado e diz quanto tem no estoque - ai começa o problema pois eu não consigo fazer isso - guarda em uma variavel o valor cadastrado no BD

vi que você fez um exemplo

<html>

<head>

<title>x</title>

<meta HTTP-EQUIV="refresh" CONTENT="5;URL=teste1.asp">

</head>

<body>

<%  'aqui você vai ter a parte que abre a tabela e descobre a quantidade no BD

  '...

  'qt = ...

 

  'a linha abaixo obtém a quantidade informada na outra página

  valor=int(Request.Form("valor"))

  if valor<=qt then

  'aqui você vai descontar do estoque na tabela

  Response.Write("<p>Ok!</p>")

  else

  Response.Write("<p>Valor informado acima do estoque atual!</p>")

  end if

  Response.Write("<p>Voltando em 5 segundos...</p>")

  %>

</body>

</html>

mais onde eu coloco a linha que traz a id do produto escolhido e depois o que devo fazer pra enviar pra variavel qt a quantidade em estoque do produto escolhido

se entendeu...

Desde já agradeço a atenção dispensada

Deus te abençoara Ricamente

Link para o comentário
Compartilhar em outros sites

  • 0

huh.gif A idéia é a do JCMP ou a minha? Se for a dele, você postou o código errado (este daí foi o que eu fiz). Em todo caso, se esse for mesmo o código, repare que Request.Form() vai ter também todos os options buttons que estavam no form da página anterior. Basta você ver qual foi o selecionado. Quanto a pegar os dados do BD, você sabe pelo menos abrir a conexão? Se sim, basta você dar um Execute do tipo:

set rs = cn.Execute("SELECT campo_quantidade FROM tabela WHERE campo_codigo=" & id_selecionada)
qt = rs.fields("campo_quantidade").value

No caso ali, "cn" é um ADODB.Connection e você terá que substituir os nomes dos campos. Fiz isso aí de cabeça, por isso pode estar faltando algo ali, certo? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
objConexao.Execute SQL

Tem realmente alguma coisa nessa variável SQL? Pergunto isso porque é exatamente este o erro que o ADO retorna se você mandar executar uma string vazia (ou uma variável que não tenha sido inicializada anteriormente).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

\Veja só o codigo pois posso esta digitando alguma coisa errada

<%
'Funcao para tratamento de virgula e ponto
Function MudaNumero(pNumero,pFormato) 
Select Case pFormato 
Case 1 ' converte de nacional para o formato americano 
pNumero = Replace(pNumero,",","") 
pNumero = Replace(pNumero,",",",") 
Case 2 ' Converte de americano para o formato nacional 
pNumero = Replace(pNumero,".",",") 
End Select 
MudaNumero = pNumero 
End Function 


DB = "Data Source=" & Server.Mappath("estocar.mdb") & ";Provider=Microsoft.Jet.OLEDB.4.0;"
Set objConn = Server.CreateObject("AdoDb.Connection") 
objConn.provider="Microsoft.Jet.OLEDB.4.0" 
objConn.connectionstring=Server.Mappath("estocar.mdb") 
objConn.open 


dim nome,idgrupo,estqmm,valor

' Criamos a connection
Set objConexao = Server.CreateObject("ADODB.Connection")
' Abrimos
objConexao.Open DB
'Form
SQL_Cat = "select * from tab_entrada order by codmaterial desc"
Set RS_Cat = objConn.Execute(SQL_Cat)
'codgrupo = request.Form("codgrupo")
quant = rs_cat("quantentra")
'Criamos a linha SQL para inserir
'SQL = "INSERT INTO tab_material(nomematerial,valordevenda,codgrupo) VALUES ('" & nome & "','" & valor & "','" & codgrupo & "')"
'Executamos a SQL de INSERÇÂO
response.Write("quant")
objConexao.Execute SQL
objConexao.Close
set objConexao = Nothing
set rs_cat = Nothing
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, tem uma aspa simples ali na linha...

'SQL = "INSERT INTO tab_material(nomematerial,valordevenda,codgrupo) VALUES ('" & nome & "','" & valor & "','" & codgrupo & "')"

... então, efetivamente, esta linha não está sendo executada (uma ' é utilizada para definir comentários).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...