<%
Public SQL,RS,conn,DB
DB="DB/DATABASE.Accdb"
Set conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
CurrentProject ="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" &Server.MapPath(DB) & ";Persist Security Info=False;"
conn.Open CurrentProject
'
'connessione al DB ACCESS effettuata
'
Dim Descrizione,idarticolo,prezzo,qtapresente,qtaprelevata,SW
Dim ThisProgram,formname
ThisProgram="ScaricaArticoli.asp"
formname=left(ThisProgram, len(ThisProgram) - 4)
descrizione="borse"
SW=""
for i=1 to Request.form("SW").Count
SW= Request.form("SW")(i)
next
for i=1 to Request.QueryString("descrizione").Count
descrizione=Request.QueryString("descrizione")(i)
next
for i=1 to Request.QueryString("qta").Count
qta=Request.QueryString("qta")(i)
next
for i=1 to Request.QueryString("idarticolo").Count
idarticolo=Request.QueryString("idarticolo")(i)
next
if SW="SCARICO" then
Scarica descrizione, qta
end if
if SW="SCARICO" then
Ricarica idarticolo, qta
end if
%>
<html>
<head>
<title>Scarico articoli</title>
<script type="text/javascript" language="javascript">
function Seleziona(pagina) {
document.<%=formname%>.action = pagina;
document.<%=formname%>.submit();
return true;
}
function PrelevaArticolo() {
var descrizione;
descrizione=prompt("descrizione articolo da scaricare","");
if (descrizione){
var qta=prompt("quanti pezzi ?",0);
Scarica(qta,descrizione)
}
}
function CaricaArticolo(){
var idArticolo;
document.getElementById("SW").value="CARICO";
idArticolo=prompt("idArticolo da ricaricare","");
if (idArticolo) {
var qta=prompt("quanti pezzi ?",0);
Ricarica(qta,idArticolo);
}
}
function Scarica(Q,D){
alert("vuoi scaricare n."+Q+" "+D);
document.getElementById("SW").value="SCARICO";
Seleziona("ScaricaArticoli.asp?descrizione="+D+"&qta="+Q);
}
function Ricarica(Q,I){
alert("vuoi caricare n."+Q+" pezzi all'articolo id="+I);
document.getElementById("SW").value="CARICO";
Seleziona("ScaricaArticoli?idarticoloe="+I+"&qta="+Q);
}
function RicercaArticolo(des){
Seleziona("ScaricaArticoli.asp?descrizione="+des);
}
</script>
<style type="text/css">
div.box
{
width:99.6% !important; width /**/:99.6%;
height:450px !important; height /**/: 450px;
padding: 4px;
border:1px solid #EEE; border-right:0 solid;
overflow:auto;
background-color:#CCCCCC;
}
.txt1 {
color:blue;
font-family:Verdana, Geneva, Tahoma, sans-serif;
font-size: 14px;
}
.auto-style1 {
color: #008000;
text-align: center;
}
.auto-style2 {
font-family: Verdana, Geneva, Tahoma, sans-serif;
font-size: xx-small;
}
</style>
</head>
<body>
<form name="<%=formname%>" id="<%=formname%>" action="" method="post" >
<input type="hidden" id="SW" name="SW" value="" />
<%
'
' struttura tabella Articoli
'
' idArticolo numerico long int
' descrizione text 255 char
' qtaPresent numerico long int
' qtaPrelevata numerico long int
' prezzo numerico double 2 decimali
'
'
if descrizione="*" then
SQL="select * from Articoli where qtapresente>0"
else
SQL="select * from Articoli where descrizione='"& descrizione & "' and qtaPresente > 0 order by idArticolo ASC"
end if
RS.Open SQL, conn, 3, 3
%>
<p align="center"><h2 class="auto-style1">Programma di test - scarico articoli dal magazzino</h2></p>
<h3 class="txt1">RICERCA ARTICOLI:
<input type="text" class="txt1" id="descrizione" name="descrizione" value="<%=descrizione%>" maxlength="50" size="50" /> <input type="button" value=" ricerca " class="txt1" onclick="RicercaArticolo(descrizione.value)" /></h3>
<table width="99.6%" border="0" cellspacing="2" cellpadding="3">
<tr bgcolor="#ff9999" class="txt1">
<th width="15%" align="center">ID.ARTICOLO</th>
<th width="40%">DESCRIZIONE</th>
<th width="15%">Q.TA'PRESENTE</th>
<th width="15%">Q.TA'PRELEVATA</th>
<th width="15%">PREZZO UNI.</th>
</tr>
</table>
<div class="box">
<table width="99.6%" border="0" cellspacing="2" cellpadding="3">
<%
if not RS.EOF then
do until RS.EOF
idArticolo=RS("idArticolo")
StampaRiga(RS)
RS.Movenext
loop
end if
RS.Close
%>
</table>
</div>
<p>
<input type="button" value="RICARICO" onclick="CaricaArticolo()" class="auto-style2" ><span class="auto-style2">
</span>
<input type="button" value="PRELIEVO" onclick="PrelevaArticolo()" class="auto-style2" ></p>
<p class="auto-style2"> free software by vic53 2019</p>
</form>
</body>
</html>
<%
sub StampaRiga(RS)
prezzo=formatNumber(RS("prezzo"),2)
response.write("<tr bgcolor=""#ffff99""> ")
response.write("<td align=""center"" width=""15%"">" & RS("idArticolo") & "</td>")
response.write("<td width=""40%"">" & RS("descrizione") & "</td>")
response.write("<td align=""center"" width=""15%"">" & RS("qtaPresente") & "</td>")
response.write("<td align=""center"" width=""15%"">" & RS("qtaPrelevata") & "</td>")
response.write("<td align=""right"" width=""15%"">" & prezzo & "</td>")
response.write("</tr> ")
end sub
sub Scarica(descrizione, qta)
'limite al numero degli articoli nella matrice articoli "Mart" con descrizione uguale = 200
Dim Mart(200,2), ctr,qtascarico,idx
qtascarico=qta
SQL="select * from Articoli where descrizione = '"&descrizione&"' order by idarticolo ASC"
RS.Open SQL, conn, 3, 3
ctr=0
if not RS.EOf then
do until RS.EOF
ctr=ctr+1 'numero di articoli da cui scaricare
Mart(ctr,0)=RS("idArticolo")
Mart(ctr,1)=RS("qtaPresente") - RS("qtaPrelevata")
Mart(ctr,2)=0
RS.Movenext
loop
end if
RS.Close
'la matrice contiene i record da scaricare le qta
' questo è l'agoritmo che fara' lo scarico
idx=0
do until qtascarico = 0
idx=idx+1
if (idx > ctr) then '** fine matrice caricata con le qta
exit do
end if
if (Mart(idx,1) > qtascarico) then ' qta - qtascarico è la qta rimanente da scaricare
Mart(idx,2)=qtascarico 'registra la qta prelevata in Mart(idx,2)
qtascarico=Mart(idx,2) - qtascarico 'diventa zero
exit do
else
if (Mart(idx,1) = qtascarico) then
Mart(idx,2)=qtascarico 'registra la qta prelevata in Mart(idx,2)
qtascarico=Mart(idx,2) - qtascarico 'diventa zero
Mart(idx,2)=Mart(idx,1)
exit do
else
Mart(idx,2)=Mart(idx,1)
qtascarico=qtascarico - Mart(idx,2)
end if
end if
loop
'ora stampa la matrice
W "matrice articoli - n.righe="&ctr
W " id articolo | qtapresente | qtaprelevata|"
for idx=1 to ctr
W Mart(idx,0)&" | "&Mart(idx,1)&" | "&Mart(idx,2)
next
end sub
sub W(msg)
response.write "<br>"&msg
end sub
sub Ricarica(idarticolo, qta)
end sub
'chiusura connessione al DB
conn.Close
Set conn = nothing
Set RS = nothing
%>