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

Dar baixa automatica do estoque


PRWEBMaster

Pergunta

Tudo bem pessoal

Tenho uma pagina que gera um codigo O.S. e neste eu posso criar vários produtos neste mesmo numero de CÓDIGO.

Quando vou colocar as informações de produto e a quantidade eu clico em GRAVAR ele altera as informações que coloquei neste formulario e grava tudo certinho, só que preciso fazer uma pagina do estoque, conforme vou colocando os produtos ele dando baixa na quantidade de estoque.

Segue o código da pagina que altero com uma parte aonde dou baixa, so que toda vez que vou clicar no botão GRAVAR ele da baixa mais de 1 vez na quantidade de estoque.

id_cliente = request.QueryString("id_cliente")

nome_empresa = request.QueryString("nome_empresa")

num_os = request.QueryString("no_os")

'Função para remover caracteres especiais dos números

Function RemoveReal(valor)

if (valor <> "") then

RemoveReal = Replace(valor, ".", ",") 'Troca vírgula por ponto

end if

End Function

id_ch = request.QueryString("id_ch")

id_cliente = request.QueryString("id_cliente")

num_os = request.QueryString("no_os")

id = request.QueryString("id")

nome_empresa = request.QueryString("nome_empresa")

descricao = request.QueryString("descricao")

sistema = request.QueryString("sistema")

gerar_of_om = request.QueryString("gerar_of_om")

descricao = Request.Form("descricao")

departamento = Request.Form("departamento")

situacao_of_om = Request.Form("situacao_of_om")

equipamento = Request.Form("equipamento")

gerar_cob = Request.Form("gerar_cob")

solicitado_por = Request.Form("solicitado_por")

urgente = Request.Form("opt")

separado = Request.Form("opt10")

fechado_por = Request.Form("fechado_por")

v_unitario = RemoveReal(Request.Form("v_unitario"))

v_total = RemoveReal(Request.Form("v_total"))

valor_total = RemoveReal(Request.Form("valor_total"))

sub_total = RemoveReal(Request.form("sub_total"))

custo_envio = RemoveReal(Request.form("custo_envio"))

outros = RemoveReal(Request.form("outros"))

total_geral = RemoveReal(Request.form("total_geral"))

transporte = Request.form("transporte")

outras = Request.form("outras")

observacoes = Replace(Request.form("observacoes"),"'","''")

tipo_coleta = Request.form("opt2")

quant_entregue = Request.form("quant_entregue")

data_entregue = Request.form("data_entregue")

quant_entregue = Request.form("quant_entregue")

prod_pendente = Request.QueryString("prod_pendente")

prod_pago = Request.QueryString("prod_pago")

desconto = Request.form("desconto")

data_saida = Request.Form("data_saida")

'Conexao tabela INTERBASE

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.Open("DRIVER={Firebird/Interbase® driver}; DBNAME=localhost:c:\Inetpub\wwwroot\sistema_interno_hcs_v.1.0\bd\BD_HCS.GDB; UID=SYSDBA;PWD=masterkey")

'Verificando quantidade de registros

Set os = server.createobject("adodb.recordset")

Set os = oConn.execute ("SELECT COUNT(*) AS temp FROM TB_GERAR_OF_OM_CAD_ITENS")

if (os.eof) then

set os = nothing

set os = oConn.execute ("select * from TB_GERAR_F_M_C_I where id = '"&id&"'")

end if

num_rows = os("temp")

os.Close()

for i = 1 to num_rows

id = Request.form("id_"&i)

quant = Request.form("quant_"&i)

quant_entregue = Request.form("quant_entregue_"&i)

data_entregue = Request.form("data_entregue_"&i)

quant_pendente = Request.form("quant_pendente_"&i)

equipamento = Request.form("equipamento_"&i)

obs_prod = Request.form("obs_prod_"&i)

v_unitario = RemoveReal(Request.form("v_unitario_"&i))

v_total = RemoveReal(Request.form("v_total_"&i))

valor_total = RemoveReal(Request.form("valor_total_"&i))

prod_pendente = Request.form("opt1_"&i)

prod_pago = Request.form("prod_pago_"&i)

usuario_altera = session("usuario_altera")

ip_altera = Request.ServerVariables("REMOTE_ADDR")

set os = oConn.execute ("select * from TB_GERAR_OF_OM_CAD_ITENS where id = '"&id&"'")

if not os.eof then

if prod_pendente = "" then

prod_pendente = "0"

else

prod_pendente = "1"

end if

Aqui está o codigo que da baixa no estoque:

'SELECIONE CODIGO DO PRODUTO (NO_OS DA TB_GERENCIAR_PRODUCAO E GRAVA NO_OS NO CAMPO ID_PRODUTO DA TABELA TB_GERAR_OF_OM_CAD_ITENS)

set estoque = oConn.execute ("select * from TB_GERENCIAR_PRODUCAO where equipamento = '"&equipamento&"'")

if not (estoque.eof) then

'Obtem campo com a quantidade atual do estoque

quant_atual_estoque = estoque("quant_estoque")

'Faz a subtração do valor gravado pelo valor obtido do estoque

nova_quant_estoque = quant_atual_estoque - quant

'Faz UPDATE na tabela do estoque com a nova quantidade

oConn.execute("update TB_GERENCIAR_PRODUCAO set quant_estoque = '"&nova_quant_estoque&"' where EQUIPAMENTO = '"&equipamento&"'")

end if

'Atualiza informaçoes no INTERBASE 'TB_GERAR_OF_CAD_ITENS'

oConn.execute ("update TB_GERAR_OF_OM_CAD_ITENS Set situacao_of_om = '"&situacao_of_om&"', descricao = '"&descricao&"', solicitado_por = '"&solicitado_por&"', departamento = '"&departamento&"', urgente = '"&urgente&"',equipamento = '"&equipamento&"', quant = '"&quant&"', obs_prod = '"&obs_prod&"', v_unitario = '"&v_unitario&"', v_total = '"&v_total&"', sub_total = '"&sub_total&"', custo_envio = '"&custo_envio&"', outros = '"&outros&"', total_geral = '"&total_geral&"', transporte = '"&transporte&"', outras = '"&outras&"', observacoes = '"&observacoes&"', tipo_coleta = '"&tipo_coleta&"', quant_entregue = '"&quant_entregue&"', data_entregue = '"&data_entregue&"', quant_pendente = '"&quant_pendente&"', prod_pendente = '"&prod_pendente&"', prod_pago = '"&prod_pago&"', separado = '"&separado&"', desconto = '"&desconto&"', data_saida = '"&data_saida&"' WHERE id = " & cdbl(id))

set os1 = oConn.execute ("select * from TB_GERAR_F_M_C_I where id = '"&id&"'")

'Atualiza informaçoes no INTERBASE 'TB_GERAR_F_M_C_I'

oConn.execute ("update TB_GERAR_F_M_C_I Set situacao_of_om = '"&situacao_of_om&"', descricao = '"&descricao&"', solicitado_por = '"&solicitado_por&"', departamento = '"&departamento&"', urgente = '"&urgente&"',equipamento = '"&equipamento&"', quant = '"&quant&"', obs_prod = '"&obs_prod&"', v_unitario = '"&v_unitario&"', v_total = '"&v_total&"', sub_total = '"&sub_total&"', custo_envio = '"&custo_envio&"', outros = '"&outros&"', total_geral = '"&total_geral&"', transporte = '"&transporte&"', outras = '"&outras&"', observacoes = '"&observacoes&"', tipo_coleta = '"&tipo_coleta&"', quant_entregue = '"&quant_entregue&"', data_entregue = '"&data_entregue&"', quant_pendente = '"&quant_pendente&"', prod_pendente = '"&prod_pendente&"', prod_pago = '"&prod_pago&"', separado = '"&separado&"', desconto = '"&desconto&"', data_saida = '"&data_saida&"' WHERE id = " & cdbl(id))

'Atualiza informaçoes no INTERBASE 'TB_GERAR_OF_CAD'

oConn.execute ("update TB_GERAR_OF_OM_CAD Set situacao_of_om = '"&situacao_of_om&"', solicitado_por = '"&solicitado_por&"', descricao = '"&descricao&"', departamento = '"&departamento&"', urgente = '"&urgente&"', total_geral = '"&total_geral&"', tipo_coleta = '"&tipo_coleta&"', separado = '"&separado&"', data_saida = '"&data_saida&"' WHERE no_os = "&Request.QueryString("no_os"))

set os2 = oConn.execute ("select * from TB_GERAR_F_M_C where no_os = '"&no_os&"'")

'Atualiza informaçoes no INTERBASE 'TB_GERAR_F_M_C'

oConn.execute ("update TB_GERAR_F_M_C Set situacao_of_om = '"&situacao_of_om&"', solicitado_por = '"&solicitado_por&"', descricao = '"&descricao&"', departamento = '"&departamento&"', urgente = '"&urgente&"', total_geral = '"&total_geral&"', tipo_coleta = '"&tipo_coleta&"', separado = '"&separado&"', data_saida = '"&data_saida&"' WHERE no_os = "&Request.QueryString("no_os"))

else

end if

next

set os = nothing

set os1 = nothing

set os2 = nothing

ato = request.Form("opt3")

dd10 = request.Form("opt12")

dd15 = request.Form("opt4")

dd30 = request.Form("opt5")

dd45 = request.Form("opt6")

dd60 = request.Form("opt7")

dd75 = request.Form("opt14")

dd90 = request.Form("opt8")

dd120 = request.Form("opt9")

dd135 = request.Form("opt13")

dd150 = request.Form("opt11")

forma_pagto = request.Form("forma_pagto")

data_venc_pagto = Request.Form("data_venc_pagto")

valor_pagto = Request.Form("valor_pagto")

anotacao1 = Request.Form("anotacao1")

numeracao = Request.Form("numeracao")

banco = Request.Form("banco")

cliente = Request.Form("cliente")

agencia = Request.Form("agencia")

Function conv_data(data_venc_pagto)

dia = day(data_venc_pagto)

if len(dia) < 2 then

dia = "0" & dia

end if

mes = month(data_venc_pagto)

if len(mes) < 2 then

mes = "0" & mes

end if

ano = year(data_venc_pagto)

conv_data = dia & "." & mes & "." & ano

End Function

data_venc_pagto = conv_data(data_venc_pagto)

'Verificando quantidade de registros

Set campos = server.createobject("adodb.recordset")

Set campos = oConn.execute ("SELECT COUNT(*) AS temp FROM TB_INFO_PAGTO")

num_rows = campos("temp")

campos.Close()

for i = 1 to num_rows

id_ch = Request.form("id_ch_"&i)

data_venc_pagto = Request.form("data_venc_pagto_"&i)

forma_pagto = Request.form("forma_pagto_"&i)

anotacao1 = Request.form("anotacao1_"&i)

valor_pagto = Request.form("valor_pagto_"&i)

numeracao = Request.form("numeracao_"&i)

banco = Request.form("banco_"&i)

cliente = Request.form("cliente_"&i)

agencia = Request.form("agencia_"&i)

'Atualiza informaçoes no INTERBASE 'TB_CAD_CHEQUES_OF'

oConn.execute ("update TB_INFO_PAGTO Set ato = '"&ato&"', dd10 = '"&dd10&"', dd15 = '"&dd15&"', dd30 = '"&dd30&"', dd45 = '"&dd45&"', dd60 = '"&dd60&"', dd75 = '"&dd75&"', dd90 = '"&dd90&"', dd120 = '"&dd120&"', dd135 = '"&dd135&"', dd150 = '"&dd150&"', forma_pagto = '"&forma_pagto&"', data_venc_pagto = '"&conv_data(data_venc_pagto)&"', valor_pagto = '"&valor_pagto&"', valor_pago = '0', anotacao1 = '"&anotacao1&"', numeracao = '"&numeracao&"', banco = '"&banco&"', cliente = '"&cliente&"', agencia = '"&agencia&"' WHERE id_ch = " & cdbl(id_ch))

next

set campos = nothing

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

... Primeiramente começe a fechar seus recordsets, ou seu sistema vai travar depois de algumas operações.

quanto a seu problema... teste

set estoque = oConn.execute ("select * from TB_GERENCIAR_PRODUCAO where equipamento = '"&equipamento&"'")
if not (estoque.eof) then
oConn.execute("update TB_GERENCIAR_PRODUCAO set quant_estoque = quant_estoque-1 where EQUIPAMENTO = '"&equipamento&"'")
end if
estoque.close
set estoque=nothing

Link para o comentário
Compartilhar em outros sites

  • 0

Tudo bem?

Fiz o teste e deu o seguinte erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

Dynamic SQL Error expression evaluation not supported

/sistema_interno_hcs_v.1.0/hcs/ef_altera_of.asp, line 121

Nesta linha:

oConn.execute("update TB_GERENCIAR_PRODUCAO set quant_estoque = quant_estoque-1 where EQUIPAMENTO = '"&equipamento&"'")

Muito obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

ta certo... o banco q tu usa não aceita...

set estoque = oConn.execute ("select * from TB_GERENCIAR_PRODUCAO where equipamento = '"&equipamento&"'")
if not (estoque.eof) then
oConn.execute("update TB_GERENCIAR_PRODUCAO set quant_estoque = "&cint(estoque("quant_estoque")
)-cint(quant)&" where EQUIPAMENTO = '"&equipamento&"'")
end if
estoque.close
set estoque=nothing

Link para o comentário
Compartilhar em outros sites

  • 0

bom da um debug geral ai pra ver como o script ta executando... e outra você fala em baixa mais de 1 vez, qual a quantidade que é passada pelo form?

em vez de executar direto use uma variavel e imprima ela..

sql="select ..."
set rs=conn.execute(sql)
response.write sql&"<br>"

pelo que consegui ver aqui... se tive rodando 2 vezes vai ser por clique maniaco no submit do formulário. (huidhsaiuda)

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...