Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    problema con aggiornameto giacenza

    ho il seguente codiceper l'aggornamento della giacenza dei prodotti in magazzino:
    codice:
    		set rs_ord2=Server.CreateObject ("ADODB.Recordset")
    	        SQL = " UPDATE prodotti SET Giacenza = Giacenza - " & qta & " WHERE (ID in(" & codici & ")) AND (giacenza_infinita = False) "		
    		rs_ord2.Open sql,conn,3,3
    fino a quando acquiso un solo prodotto la giacenza si aggiorna perfettamente!
    quando invece acquisto più di un prodotto mi somma le quantità di entrambi i prodotti es.:
    prodotto1 - quantità 1
    prodotto2 - quantità 1

    e mi sottrae la somma delle quantità dei prodotti nel carrello dalla giacenxza di ogni singolo prodotto!

    come faccio a far sottrarre la quantità dei prodotti acquistati dalla giacenza di ogni singolo prodotto?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    devi fare un ciclo e aggiornare le quantità dei prodotti del
    carrello uno alla volta per ogni singolo prodotto.
    luca
    www.intheweb.it - Internet solutions

  3. #3
    ho fatto così :
    codice:
    	'memorizzo prodotti acquistati
    	Set rsGiacenza = Server.CreateObject("ADODB.RecordSet")
    	rsGiacenza.open "select * from prodotti where id in(" & codici & ")",conn	
    	
       	while not rsGiacenza.eof
     
    		set rs_ord=Server.CreateObject ("ADODB.Recordset")
    		SQL = " UPDATE prodotti SET Giacenza = Giacenza - " & qta & " WHERE (ID in(" & codici & ")) AND (giacenza_infinita = False) "
    		rs_ord.Open sql,conn,1,2 
    		rsGiacenza.Movenext
    wend
    
    	rsGiacenza.Close
    	Set rsGiacenza=nothing
    però mi da sempre lo stesso risultato!
    dove sbaglio?

  4. #4
    dove memorizzi l'abbinata codice-quantità?

  5. #5
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    immagino stai utilizzando un carrello, dove uno mette un prodotto
    (variabile codici) e la quantità (variabile qta)
    In genere un carrello ha un suo recordet, devi scorrere
    il recordset del carello e per ogni prodotto-quantità aggiorni
    la giacenza in magazzino, scorri il record del carrello fino a
    aggiornare tutte le quantità.
    Se invece stai gestendo una applicazione diversa, spiegati meglio.
    luca
    www.intheweb.it - Internet solutions

  6. #6
    il codice della pagina del pagamento è il seguente
    codice:
     
    <%
    Dim original
    original = SetLocale(1040)
    
    set carrello=session("carrello")
    
    codici=join(carrello.keys,",")
    
    				
    'se si sono loggati controllo se i dati esistono
    if request("login")<>"" or request("password")<>"" then
    
    	sql="select * from utenti where login='"&request("login")&"' and password='"&request("password")&"'"
    	set rs_utente=conn.execute (sql)
    	
    	if rs_utente.EOF and rs_utente.BOF then
    
    		response.redirect "pagamento.asp?errato=yes"
    	
    	else
    
    	  'se non c'è il cookies e si è loggato registro il cookies	
    	  if request.cookies("soloaffari")("login")="" and request.cookies("soloaffari")("password")="" then
    	
    		Response.Cookies("soloaffari")("login") = request("login")
    		Response.Cookies("soloaffari")("password") = request("password")
    		Response.Cookies("soloaffari").expires=date()+1000 
    	
    	  end if
    	
    	end if
    
    end if
    
    'memorizzo dati utente
    	
    if request("az")="Conferma ordine" then
    
    
    
    	set rs_ord=Server.CreateObject ("ADODB.Recordset")
    	sql="select * from ordini"
    	rs_ord.Open sql,conn,1,2 	 
    
    	rs_ord.AddNew
    
    	if request("login")<>"" and request("password")<>"" then
    
    
    	rs_ord("id_utente")=rs_utente("id")
    	rs_ord("stato_ordine")="ricevuto"
    
    	rs_ord("data")=date()
    
    	rs_ord("cognome")=rs_utente("cognome")
    	rs_ord("nome")=rs_utente("nome")
    	rs_ord("indirizzo")=rs_utente("indirizzo")
    	rs_ord("civico")=rs_utente("civico")
    	rs_ord("cap")=rs_utente("cap")
    	rs_ord("citta")=rs_utente("citta")
    	rs_ord("provincia")=rs_utente("provincia")
    	rs_ord("email")=rs_utente("email")
    	email=rs_utente("email")
    	rs_ord("telefono")=rs_utente("telefono")
    	rs_ord("note")=request("note")
    	rs_ord("spedizione")=request("spedizione")
    	rs_ord("tot")=request("prezzo")+request("totale")
    
    	dati_ordine=rs_utente("cognome")&" "&rs_utente("nome")&"
    "&rs_utente("indirizzo")&" "&rs_utente("civico")&"
    "&rs_utente("cap")&" "&rs_utente("citta")&" ("&rs_utente("provincia")&")
    "
    	dati_ordine=dati_ordine&""&rs_utente("email")&" Tel. "&rs_utente("telefono")&"
    Note: "&request("note")
    	
    	else
    
    	rs_ord("data")=date()
    	rs_ord("cognome")=request("cognome")
    	rs_ord("nome")=request("nome")
    	rs_ord("indirizzo")=request("indirizzo")
    	rs_ord("civico")=request("civico")
    	rs_ord("cap")=request("cap")
    	rs_ord("citta")=request("citta")
    	rs_ord("provincia")=request("provincia")
    	rs_ord("email")=request("email")
    	email=request("email")
    	rs_ord("telefono")=request("telefono")
    	rs_ord("note")=request("note")
    	rs_ord("spedizione")=request("spedizione")
    	rs_ord("tot")=request("spedizione")+request("totale")
    	dati_ordine=request("cognome")&request("nome")&"
    "&request("indirizzo")&" "&request("civico")&"
    "&request("cap")&" "&request("citta")&" ("&request("provincia")&")
    "
    	dati_ordine=dati_ordine&""&request("email")&" Tel. "&request("telefono")&"
    Note: "&request("note")&"
    Spedizione selezionata: "&request("spedizione")&"
    Totale spese: "&request("tot")
    
    	end if
    	
    	rs_ord.update
    	rs_ord.close
    
    	sql="select max(id) as num_ord from ordini"
    	set rs_ord=conn.execute(sql)
    
    	num_ordine=rs_ord("num_ord")
    
    	rs_ord.close
    
    
    'memorizzo prodotti acquistati
    quantita = request("qta")
    	Set rsArt = Server.CreateObject("ADODB.RecordSet")
    	RsArt.open "select * from prodotti where id in(" & codici & ")",conn	
    	dati_prodotti=""
    	
       	while not rsArt.eof
     
    		set rs_ord=Server.CreateObject ("ADODB.Recordset")
    		sql="select * from dettaglio_ordini"
    		rs_ord.Open sql,conn,1,2 
    
    		rs_ord.addnew
    
    	  		qta=carrello(cstr(rsArt("id"))) 'prendo la quantita dall'array DO
    	 
    			rs_ord("id_ordine")=num_ordine
    			rs_ord("nome_prodotto")=rsArt("titolo")
    			rs_ord("localizzazione")=rsArt("localizzazione")
    			rs_ord("tipologia")=rsArt("listino")			
    	        rs_ord("quantita")=qta
    	        rs_ord("prezzo")=RsArt("prezzo")*qta 
    
    			dati_prodotti=dati_prodotti&"
    N.: "&qta&" - "&rsArt("localizzazione")&" "&rsArt("titolo")&" ("&rsArt("listino")&") - Prezzo: "&RsArt("prezzo")*qta			
    			
    		rs_ord.update
    		rs_ord.close
    rsArt.Movenext
    wend
    
    	RsArt.Close
    	Set RsArt=nothing
    '--------------------------------------------------------	
    	'aggiorno la giacenza
    	Set rsGiacenza = Server.CreateObject("ADODB.RecordSet")
    	rsGiacenza.open "select * from prodotti where id in(" & codici & ")",conn	
    	
       	while not rsGiacenza.eof
     
    		set rs_ord=Server.CreateObject ("ADODB.Recordset")
    		SQL = " UPDATE prodotti SET Giacenza = Giacenza - " & qta & " WHERE (ID in(" & codici & ")) AND (giacenza_infinita = False) "
    		rs_ord.Open sql,conn,1,2 
    		rsGiacenza.Movenext
    wend
    
    	rsGiacenza.Close
    	Set rsGiacenza=nothing
    '-------------------------------------------------------
    select case request("spedizione")
    case "Corriere":
    totale=spedizione
    case "Raccomandata":
    totale=spedizione
    case "ESTERO Corriere":
    totale=spedizione
    end select
    
    'spedizione=Clng(request("totale"))
    totale=request("spedizione")
    
    AMOUNT=replace(totale,",",".")
    
    if request("pagamento")="credito" then
    	response.redirect "banca.asp?id="&num_ordine&"&totale="&AMOUNT
    else
    	response.redirect "ordine_eseguito.asp"
    end if
    
    end if
    %>

  7. #7
    dimenticavo sto utlizzando un carrello!

  8. #8
    nello stesso loop in cui aggiorni l'ordine, aggiorna anche la giacenza. UN update per OGNI articolo.

  9. #9
    un esempio pratico?

  10. #10
    quale esempio? sposta la update all'interno del ciclo che ti ho detto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.