- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- scaricamento prodotti
-
...
qtadoc = rsa.fields("QtaDoc") qtaspu = rsa.fields("QtaSpuntata") qtarest = qtadoc-qtaspu if qta_da_scaricare < qtarest Then qtarest = qta_da_scaricare End If rsa.fields("QtaSpuntata") = "" & qtarest + qtaspu & "" qta_da_scaricare = qta_da_scaricare-qtarest ----------- qtadoc = 538 qtaspu = 0 qtarest = 538-0 = 538 if 25 < 538 Then qtarest = 25 End If rsa.fields("QtaSpuntata") = "" & 25 + 0 & "" = 25 qta_da_scaricare = 25-25 = 0
Succede qualcosa di diverso da questo?
-
effettivamente no, però come ti dicevo tu se la quantità da scaricare è meno di 538, cioè esempio 25
ho il primo articolo scaricato 538 e il secondo -513
-
Non è possibile, puoi ripostare tutto così com'è?
-
ho trovato l'inghippo, ho utilizzato la funzione CInt:
qta_da_scaricare = CInt(request.form("qta_da_scaricare"))
e va tutto benissimo....
grazie 1000 ARTCAVA
-
Scusami ARTCAVA
approfitto del tuo aiuto sempre in merito allo script di cui sopra.
Se si presentasse il caso per di aver esaurito tutta la quantità scaricata da tutti i prodotti es di 3 prodotti uguali:PASTA qta 538 qtascaricata 538
PASTA qta 538 qtascaricata 538
PASTA qta 538 qtascaricata 538e provo ad inserire altra quantità tipo 20
è possibile inserirla al primo disponibile?
es:PASTA qta 538 qtascaricata 558
PASTA qta 538 qtascaricata 538
PASTA qta 538 qtascaricata 538Grazie ancora
-
Io farei più o meno così:
articolo = request.form("descrizione") qta_da_scaricare = CInt(request.form("qta_da_scaricare")) sql="SELECT * FROM db WHERE Articolo = & "'" & articolo & "' and (QtaDoc-QtaSpuntata>0) " Set rsa = Server.CreateObject("ADODB.Recordset") qtadoc = rsa.fields("QtaDoc") qtaspu = rsa.fields("QtaSpuntata") qtarest = qtadoc-qtaspu If qta_da_scaricare < qtarest Then qtarest = qta_da_scaricare End If rsa.fields("QtaSpuntata") = "" & qtarest + qtaspu & "" qta_da_scaricare = qta_da_scaricare-qtarest rsa.update rsa.MoveNext loop if qta_da_scaricare > 0 Then sql="SELECT TOP(1) * FROM db WHERE Articolo = & "'" & articolo & "' Set rsa = Server.CreateObject("ADODB.Recordset") qtaspu = rsa.fields("QtaSpuntata") rsa.fields("QtaSpuntata") = qtaspu + qta_da_scaricare rsa.update End If
Però quello che vorrei suggerirti è di verificare prima sul piano logico se questa modalità ha senso per l'attività del tuo cliente o la tua se lo stai facendo per te.
Mi riferisco al fatto che qui intravvedo una specie di gestione del magazzino, dove ci saranno ingressi di prodotti suddivisi in lotti e vendite successive dove dalle quantità dei vari lotti vengono stornate.
Ma come fai a gestire una quantità in uscita superiore a quella consolidata in magazzino?
-
Grazie ARTCAVA
anche del suggerimento, ma è stata una richiesta specifica del cliente avere questa possibilità di aumentare perchè in magazzino potrebbe esserci stesso articolo non quantizzato.
Grazie ancora e ti auguro con l'occasione Buona Pasqua
-
Grazie, Buona Pasqua anche a te!
-
Ciao ARTCAVA, scusa se riapro questo post, ho necessità di un aiuto al suddetto script che in mysql ha funzionato alla grande, ma lo stiamo "trasformando" in sql server, i campi in mysql erano tutti testo (longtext) e non creavano problemi ora in sql sono varchar(max) e mi sembra che le operazioni di confronto non agiscono su questi tipi di campi, potresti darmi una mano a "convertirlo" per utilizzo in sql?
Infatti ho questo errore: i tipi di dati varchar(max) e varchar(max) nell'operatore subtract sono incompatibili
Grazie e scusa ancora...
-
Ciao djjunior, puoi postare lo script?
Magari nella sezione "MySQL e altri Database"Grazie
-
Grazie ARTCAVA,
lo script lo vorrei sottoporre primo a te che me lo hai suggerito, perchè in pratica come vedi il parametro che dovrà passare qta_da_scaricare è con decimali tipo: 151.500, il campo nel db è decimal(10,3), sicuramente dovrei utilizzare qualche funzione di conversione o formatnumber (che non so quale, visto sottrazioni e somme), essendo che dal db come saprai i campi decimali hanno valore con i decimali es: 120.000, ma è solo una visualizzazione perchè quando li stampo a video questo valore lo vedo: 120 cioè senza zeri o punto(virgola)decimale.
ecco lo script se puoi darmi una mano:articolo = request.form("descrizione") qta_da_scaricare = "151.500" sql="SELECT * FROM db WHERE Articolo = '" & articolo & "' and (QtaDoc-QtaSpuntata)>0 " Set rsa = Server.CreateObject("ADODB.Recordset") rsa.Open sql, Conn, 3, 3 do while not rsa.eof qtadoc = rsa.fields("QtaDoc") qtaspu = rsa.fields("QtaSpuntata") qtarest = qtadoc-qtaspu if qta_da_scaricare < qtarest Then qtarest = qta_da_scaricare End If rsa.fields("QtaSpuntata") = "" & qtarest + qtaspu & "" qta_da_scaricare = qta_da_scaricare - qtarest rsa.update rsa.MoveNext loop if qta_da_scaricare > 0 Then sql="SELECT top(1) * FROM db WHERE Articolo = & "'" & articolo & "' Set rsa = Server.CreateObject("ADODB.Recordset") rsa.Open sql, Conn, 3, 3 qtaspu = rsa.fields("QtaSpuntata") rsa.fields("QtaSpuntata") = qtaspu + qta_da_scaricare rsa.update End If rsa.close
Grazie 1000 per l'aiuto.