Non in quella pagina non vedo response.redirect se non uno ma non penso sia quello che dia problema, metto comunque il codice per una vostra verifica.
<%@Language="VBSCRIPT" CodePage="65001"%>
<% 'response.expires = 900 %>
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="../noaccess.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>
<!--#include file="db_analisimargine.asp" -->
<!--#include file="funzioni.asp" -->
<%
Dim rsMovimentiLotti__find_articolo
rsMovimentiLotti__find_articolo = Request.QueryString("ART1")
If (rsMovimentiLotti__find_articolo = "") Then
rsMovimentiLotti__find_articolo = "**TUTTI**"
End If
Dim selezione_dal
Dim Century
selezione_dal = "%"
If (Request.QueryString("DAL") <> "") Then
Century = "20"
selezione_dal = Century & right(Request.QueryString("DAL"),2) & mid(Request.QueryString("DAL"),4,2) & left(Request.QueryString("DAL"),2)
End If
Dim selezione_al
selezione_al = "%"
If (Request.QueryString("AL") <> "") Then
Century = "20"
selezione_al = Century & right(Request.QueryString("AL"),2) & mid(Request.QueryString("AL"),4,2) & left(Request.QueryString("AL"),2)
End If
Session("data_from") = Request.QueryString("DAL")
Session("data_to") = Request.QueryString("AL")
'******* ELENCO LOTTI VENDUTI
Dim CodCliente
Dim UMven
Dim UMacq
Dim PrVendita
Dim GTotaleQta
Dim GTotaleVenduto
Dim GTotaleAcquistato
'nuovo calcolo valore acquistato
Dim GTotaleAcquistato_new
Dim NCcarico(100)
Dim NCcarico_count
NCcarico_count = 0
Dim DH 'DatawareHouse analisi margine vendite
Dim DH_cmd
Dim DH_numRows
Set DH_cmd = Server.CreateObject ("ADODB.Command")
DH_cmd.ActiveConnection = MM_DH_STRING
Dim DA 'DatawareHouse analisi margine acquisti
Dim DA_cmd
Dim DA_numRows
Set DA_cmd = Server.CreateObject ("ADODB.Command")
DA_cmd.ActiveConnection = MM_DH_STRING
'definisco la select per filtrare i dati
Dim SQLSelect
Dim SQLFrom
Dim SQLCliFo
Dim SQLWhere
Dim SQLVenduti
'selezione campi ************
SQLSelect = "SELECT *"
'from ************
SQLFrom = " FROM MOVIME"
'costruzione filtro clienti
If Request.QueryString("COD_CLI") <> "" Then
CodCliente = Request.QueryString("COD_CLI")
Else
CodCliente = "%"
End If
SQLCliFo = " AND (CODCLIFO Like '" & CodCliente & "')"
'selezione per tutti - italia - estero
If Request.QueryString("CTY") = "I" Then
SQLCliFo = SQLCliFo + " AND (NAZIONE = ' 0')"
End If
If Request.QueryString("CTY") = "E" Then
SQLCliFo = SQLCliFo + " AND (NAZIONE <> ' 0')"
End If
'SQLWhere = " WHERE ("
'selezione per data ************
'SQLWhere = SQLWhere + "(DATAPROT >= '" & selezione_dal & "' AND DATAPROT <= '" & selezione_al & "')"
SQLDateVen = " WHERE ((DATAPROT >= '" & selezione_dal & "' AND DATAPROT <= '" & selezione_al & "') AND TIPOMOV <>'A'" ' AND TIPOPROT <>'NC' "
SQLDateAcq = " WHERE ((DATAPROT <= '" & selezione_al & "') AND TIPOMOV ='A' "
'articolo
If Request.QueryString("ART1") <> "" Then
SQLWhere = SQLWhere + " AND (CODICE>='" & Request.QueryString("ART1") & "' AND CODICE<='" & Request.QueryString("ART2") & "')"
End If
'gruppo merceologico
If Request.QueryString("GM1") <> "" Then
SQLWhere = SQLWhere + " AND (GRUPPOMERC >='" & Left(Request.QueryString("GM1"),3) + Right(Request.QueryString("GM1") ,3) & "' AND GRUPPOMERC<='" & Left(Request.QueryString("GM2"),3) + Right(Request.QueryString("GM2") ,3) & "')"
End If
'esclusi gruppo merceologico
If Request.QueryString("GM4") <> "" Then
SQLWhere = SQLWhere + " AND (GRUPPOMERC NOT IN (SELECT COMPLETO FROM PAGLIARA.dbo.GRUPMERC WHERE PAGLIARA.dbo.GRUPMERC.COMPLETO > ='" & Left(Request.QueryString("GM3"),3) + Right(Request.QueryString("GM3") ,3) & "' AND PAGLIARA.dbo.GRUPMERC.COMPLETO<='" & Left(Request.QueryString("GM4"),3) + Right(Request.QueryString("GM4") ,3) & "'))"
End If
'marchio
If Request.QueryString("MA1") <> "" Then
SQLWhere = SQLWhere + " AND (MARCHIO >='" & Request.QueryString("MA1") & "' AND MARCHIO<='" & Request.QueryString("MA2") & "')"
End If
'esclusi marchio
If Request.QueryString("MA3") <> "" Then
SQLWhere = SQLWhere + " AND (MARCHIO NOT IN (SELECT MARCHIO FROM PAGLIARA.dbo.TMARCHI WHERE PAGLIARA.dbo.TMARCHI.MARCHIO > ='" & Request.QueryString("MA3") & "' AND PAGLIARA.dbo.TMARCHI.MARCHIO <='" & Request.QueryString("MA4") & "'))"
End If
'agente
SQLWhereVen = SQLWhere
If Request.QueryString("AG1") <> "" Then
SQLWhereVen = SQLWhereVen + " AND (AGENTE >='" & Request.QueryString("AG1") & "' AND AGENTE <='" & Request.QueryString("AG2") & "')"
End If
'magazzino
If Request.QueryString("MAG") <> "" Then
SQLWhereVen = SQLWhereVen + " AND (MAGAZZINO ='" & Request.QueryString("MAG") & "')"
End If
'magazzino escluso
If Request.QueryString("MAGE") <> "" Then
SQLWhereVen = SQLWhereVen + " AND (MAGAZZINO <>'" & Request.QueryString("MAGE") & "')"
End If
'solo le vendite
'SQLWhere = SQLWhere + " AND (TIPO <>'" & Request.QueryString("MAGE") & "')"
SQLWhereVen = SQLWhereVen + SQLClifo + ")"
SQLWhereAcq = SQLWhere +")"
'SQLSelect = SQLSelect
'order by
SQLSelectVen = SQLSelect + SQLFrom + SQLDateVen + SQLWhereVen + " ORDER BY CODICE, DTCREAZLOTTO, LOTTO, TIPOMOV, MAGAZZINO, DATAPROT"
SQLSelectAcq = SQLSelect + SQLFrom + SQLDateAcq + SQLWhereAcq + " ORDER BY CODICE, DTCREAZLOTTO, LOTTO, TIPOMOV, MAGAZZINO, DATAPROT"
'response.Write("V:" & SQLSelectVen & "<br />")
'response.Write("A:" & SQLSelectAcq)
'bloccati = bloccati.open
DH_cmd.CommandText = SQLSelectVen
DA_cmd.CommandText = SQLSelectAcq
Set DH = DH_cmd.Execute
DH_numRows = 0
Set DA = DA_cmd.Execute
DA_numRows = 0
Dim i
Dim magazzino_corrente
Dim articolo_corrente
Dim lotto_corrente
Dim causale_corrente
Dim magazzino_successivo
Dim lotto_successivo
Dim articolo_successivo
'variabili per lotto
Dim somma_quantita_causale
Dim somma_riga_causale
Dim media_prnetto_causale_acquisto
Dim media_prnetto_causale_vendita
Dim media_prlordo_causale_acquisto
Dim media_prlordo_causale_vendita
Dim contatore_righe_causale
Dim margine_riga
Dim ricarico_riga
Dim somma_riga_lotto_acquisti
Dim somma_riga_lotto_vendite
Dim somma_quantita_lotto_acquisti
Dim somma_quantita_lotto_vendite
Dim margine_lotto
Dim ricarico_lotto
'variabili per articolo
Dim somma_quantita_articolo_acquisto
Dim somma_quantita_articolo_vendita
Dim somma_riga_articolo_acquisto
Dim somma_riga_articolo_vendita
Dim media_prnetto_articolo_acquisto
Dim media_prnetto_articolo_vendita
Dim media_prlotto_articolo_acquisto
Dim media_prlotto_articolo_vendita
Dim margine_articolo
Dim ricarico_articolo
'variabili per riga di vendita per nuovo calcolo valore acquistato
Dim somma_costo_riga_vendite
Dim totale_somma_costo_riga_vendite
Dim margine_articolo_new
Dim ricarico_articolo_new
'variabili per magazzino
Dim margine_magazzino
Dim ricarico_magazzino
i = 1
'********** INSTANZIAMENTO FILE DI EXCEL *************
Dim file
Dim riga
file = "analisi_margine.xls"
riga = 1
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename=" & file
'testata colonne
%>
<table>
<tr>
<td>DATA</td>
<td>RAGIONE SOCIALE</td>
<td>AGENTE</td>
<td>ARTICOLO</td>
<td>MARCHIO</td>
<td>LOTTO</td>
<td>MAGAZZINO</td>
<td>U.M.</td>
<td>QUANTITA'</td>
<td>PV NETTO</td>
<td>SPESE/KG</td>
<td>PV LORDO</td>
<td>TOTALE</td>
<td>Ma PA LORDO</td>
<td>Ma TOT ACQ</td>
<td>MARGINE %</td>
<td>RICARICO %</td>
</tr>
<%
'********** MOVIMENTI DI ACQUISTO *******************
magazzino_corrente = ""
articolo_corrente = ""
lotto_corrente = ""
causale_corrente = ""
GTotaleAcquistato_new =0
While Not DH.EOF
'testata articolo
If articolo_corrente <> DH.Fields.Item("CODICE").Value Then
articolo_corrente = DH.Fields.Item("CODICE").Value
somma_quantita_articolo_acquisto = 0
somma_quantita_articolo_vendita = 0
somma_quantita_articolo_vendita_noNC = 0
somma_riga_articolo_acquisto = 0
somma_riga_articolo_vendita = 0
somma_riga_articolo_vendita_lordo = 0
somma_riga_articolo_vendita_lordo_noNC = 0
media_prnetto_articolo_acquisto = 0
media_prnetto_articolo_vendita = 0
media_prlotto_articolo_acquisto = 0
media_prlotto_articolo_vendita = 0
somma_costo_riga_vendite = 0
somma_costo_riga_vendite_noNC = 0
descrizione_articolo = DH.Fields.Item("CODICE").Value & " - " & DH.Fields.Item("DESCRIZION").Value
End If
'testata lotto
If lotto_corrente <> DH.Fields.Item("LOTTO").Value Then
lotto_corrente = DH.Fields.Item("LOTTO").Value
margine_lotto = 0
ricarico_lotto = 0
somma_quantita_lotto_acquisti = 0
somma_quantita_lotto_vendite = 0
somma_riga_lotto_acquisti = 0
somma_riga_lotto_vendite = 0
End If
'testata magazzino
If magazzino_corrente <> DH.Fields.Item("MAGAZZINO").Value Then
magazzino_corrente = DH.Fields.Item("MAGAZZINO").Value
margine_magazzino = 0
ricarico_magazzino = 0
If Request.QueryString("V") = 1 Or Request.QueryString("A") = 1 Then
End If
End If
'INIZIO righe acquisto *************************************************************
somma_quantita_causale = 0
somma_riga_causale = 0
somma_riga_causale_lordo = 0
contatore_righe_causale = 0
If Not DA.EOF Then
Do While rtrim(articolo_corrente) & rtrim(lotto_corrente) & rtrim(magazzino_corrente) <> rtrim( DA.Fields.Item("CODICE").Value ) & rtrim(DA.Fields.Item("LOTTO").Value) & rtrim(DA.Fields.Item("MAGAZZINO").Value)
Da.MoveNext
Loop
Do While rtrim(articolo_corrente) & rtrim(lotto_corrente) & rtrim(magazzino_corrente) = rtrim( DA.Fields.Item("CODICE").Value ) & rtrim(DA.Fields.Item("LOTTO").Value) & rtrim(DA.Fields.Item("MAGAZZINO").Value)
'Testata acquisti
If Request.QueryString("A") = 1 And contatore_righe_causale = 0 Then
End If
'*AI* in quanto includo le aperture di inventario prendo il valore caricato a mano nel campo personalizzato
unitami = DA.Fields.Item("UNITAMI").Value
If DA.Fields.Item("USRPRACQAI").Value <> 0 Then
PrezzoSel = DA.Fields.Item("USRPRACQAI").Value
TotaleRigaSel = PrezzoSel * DA.Fields.Item("QUANTITA").Value
Else
PrezzoSel = DA.Fields.Item("EPRNETTO").Value
TotaleRigaSel = PrezzoSel * DA.Fields.Item("QUANTITA").Value
End If
'calcolo prezzi e totali lordi
PrezzoLordoSel = PrezzoSel + DA.Fields.Item("TOT_SPESE_SPLIT").Value
TotaleRigaLordoSel = PrezzoLordoSel * DA.Fields.Item("QUANTITA").Value
'creo l'insieme delle NC che sono usate in carico
If DA.Fields.Item("TIPOPROT").Value = "NC" Then
NCcarico(NCcarico_count) = DA.Fields.Item("NUMERO").Value
NCcarico_count = NCcarico_count + 1
End If
If Request.QueryString("A") = 1 Then
End If
somma_quantita_articolo_acquisto = somma_quantita_articolo_acquisto + DA.Fields.Item("QUANTITA").Value
somma_riga_articolo_acquisto = somma_riga_articolo_acquisto + TotaleRigaLordoSel
somma_quantita_causale = somma_quantita_causale + DA.Fields.Item("QUANTITA").Value
somma_riga_causale = somma_riga_causale + TotaleRigaSel
somma_riga_causale_lordo = somma_riga_causale_lordo + TotaleRigaLordoSel
media_prnetto_causale = media_prnetto_causale + PrezzoSel
media_prlordo_causale = media_prlordo_causale + PrezzoLordoSel
contatore_righe_causale = contatore_righe_causale + 1
somma_riga_lotto_acquisti = somma_riga_lotto_acquisti + PrezzoLordoSel
somma_quantita_lotto_acquisti = somma_quantita_lotto_acquisti + DA.Fields.Item("QUANTITA").Value
media_prnetto_causale_acquisto = round ( somma_riga_causale / somma_quantita_causale, 4)
media_prlordo_causale_acquisto = round ( somma_riga_causale_lordo / somma_quantita_causale, 4)
DA.MoveNext
If Request.QueryString("A") = 1 And (DA.EOF ) Then
Exit Do
ElseIf Request.QueryString("A") = 0 And (DA.EOF ) Then
Exit Do
ElseIf Request.QueryString("A") = 1 Then
If(rtrim(articolo_corrente) & rtrim(lotto_corrente) & rtrim(magazzino_corrente) <> rtrim( DA.Fields.Item("CODICE").Value )& rtrim(DA.Fields.Item("LOTTO").Value) & rtrim(DA.Fields.Item("MAGAZZINO").Value) ) Then
End If
End If
Loop
End If
'FINE righe acquisto ************************************************************************
'INIZIO righe vendita ************************************************************************
somma_quantita_causale = 0
somma_quantita_noNC = 0
somma_riga_causale = 0
somma_riga_causale_noNC = 0
somma_riga_causale_lordo = 0
somma_riga_causale_lordo_noNC = 0
contatore_righe_causale = 0
Dim TotaleRiga
Dim TotaleRigaLordo
TotaleRiga = 0
TotaleRigaLordo = 0
Do While Not DH.EOF
If rtrim(articolo_corrente) & rtrim(lotto_corrente) & rtrim(magazzino_corrente) = rtrim(DH.Fields.Item("CODICE").Value )& rtrim(DH.Fields.Item("LOTTO").Value) & rtrim(DH.Fields.Item("MAGAZZINO").Value) Then
UMven = DH.Fields.Item("UNITAMI").Value
If Request.QueryString("V") = 1 and contatore_righe_causale = 0 Then
End If
'array per gestire l'esclusione o meno delle nc usate nella sezione degli acquisti
If DH.Fields.Item("TIPOPROT").Value = "NC" Then
NCincludi = True
For ii = 0 to NCcarico_count
If NCcarico(ii) = DH.Fields.Item("NUMERO").Value Then NCincludi = False
Next
End If
If DH.Fields.Item("TIPOPROT").Value <> "NC" Then
If DH.Fields.Item("EPRNETTO").Value = 0 Then
PrVendita = media_prnetto_causale_acquisto
Else
PrVendita = DH.Fields.Item("EPRNETTO").Value
End If
PrVenditaLordo = PrVendita + DH.Fields.Item("TOT_SPESE_SPLIT").Value
if PrVenditaLordo <> 0 Then
margine_riga = round ( ( PrVenditaLordo - media_prlordo_causale_acquisto) / PrVenditaLordo ,6) * 100
Else
margine_riga = 0
End If
If media_prlordo_causale_acquisto <> 0 Then
ricarico_riga = round ( ( PrVenditaLordo - media_prlordo_causale_acquisto) / media_prlordo_causale_acquisto, 6 ) * 100
Else
ricarico_riga = 0
End If
ElseIf DH.Fields.Item("TIPOPROT").Value = "NC" And NCincludi Then
If DH.Fields.Item("EPRNETTO").Value = 0 Then
PrVendita = media_prnetto_causale_acquisto
Else
PrVendita = DH.Fields.Item("EPRNETTO").Value
End If
PrVenditaLordo = PrVendita + DH.Fields.Item("TOT_SPESE_SPLIT").Value
if PrVenditaLordo <> 0 Then
margine_riga = 0
'margine_riga = round ( ( PrVenditaLordo - media_prlordo_causale_acquisto) / PrVenditaLordo ,6) * 100
Else
margine_riga = 0
End If
If media_prlordo_causale_acquisto <> 0 Then
ricarico_riga = 0
'ricarico_riga = round ( ( PrVenditaLordo - media_prlordo_causale_acquisto) / media_prlordo_causale_acquisto, 6 ) * 100
Else
ricarico_riga = 0
End If
End If
TotaleRiga = PrVendita * DH.Fields.Item("QUANTITA").Value
TotaleRigaLordo = PrVenditaLordo * DH.Fields.Item("QUANTITA").Value
'inizio riga excel
riga = riga + 1
If Request.QueryString("V") = 1 Then 'and DH.Fields.Item("TIPOPROT").Value <> "NC" Then
%>
<tr>
<td><%=Right((DH.Fields.Item("DATAPROT").Value ),2) &"/"& Mid((DH.Fields.Item("DATAPROT").Value ),5,2) &"/"& LEFT((DH.Fields.Item("DATAPROT").Value ),4)%></td>
<td><%=Left(DH.Fields.Item("RAGIONESOC").Value,20) %></td>
<td><%=Left(DH.Fields.Item("AGENTE").Value,20) %></td>
<td><%=DH.Fields.Item("DESCRIZION").Value %></td>
<td><%=DH.Fields.Item("MARCHIO").Value%></td>
<td>'<%=DH.Fields.Item("LOTTO").Value %></td>
<td>'<%=magazzino_corrente %></td>
<td><%=UMven %></td>
<%
If DH.Fields.Item("TIPOPROT").Value <> "NC" Then 'xxxx era NC
%>
<td align="right"><%=format2(DH.Fields.Item("QUANTITA").Value) %></td>
<td align="right"><%=format(DH.Fields.Item("EPRNETTO").Value) %></td>
<td align="right"><%=format(DH.Fields.Item("TOT_SPESE_SPLIT").Value) %></td>
<td align="right">=(J<%=riga %> + K<%=riga %>)</td>
<td align="right">=ARROTONDA(I<%=riga %>*L<%=riga %>;3)</td>
<td align="right"><%=format(media_prlordo_causale_acquisto) %></td>
<td align="right">=ARROTONDA(I<%=riga %>*N<%=riga %>;3)</td>
<td align="right">=ARROTONDA(ARROTONDA((M<%=riga %>-O<%=riga %>) / M<%=riga %>;6)*100;2)</td>
<td align="right">=ARROTONDA(ARROTONDA((M<%=riga %>-O<%=riga %>) / O<%=riga %>;6)*100;2)</td>
<%
ElseIf DH.Fields.Item("TIPOPROT").Value = "NC" And NCincludi Then
%>
<td align="right">-<%=format2(DH.Fields.Item("QUANTITA").Value) %></td>
<td align="right"><%=format(DH.Fields.Item("EPRNETTO").Value) %></td>
<td align="right"><%=format(DH.Fields.Item("TOT_SPESE_SPLIT").Value) %></td>
<td align="right">=(J<%=riga %> + K<%=riga %>)</td>
<td align="right">=ARROTONDA(I<%=riga %>*L<%=riga %>;3)</td>
<td align="right"><%=format(media_prlordo_causale_acquisto) %></td>
<td align="right">=ARROTONDA(I<%=riga %>*N<%=riga %>;3)</td>
<td align="right">=ARROTONDA(ARROTONDA((M<%=riga %>-O<%=riga %>) / M<%=riga %>;6)*100;2)</td>
<td align="right">=ARROTONDA(ARROTONDA((M<%=riga %>-O<%=riga %>) / O<%=riga %>;6)*100;2)</td>
<%
Else
%>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<td align="right"></td>
<%
End If
%>
</tr>
<%
End If
'rsMovimentiLottiNoteCredito.MoveFirst
'rsMovimentiLottiNoteCredito.Find "CODCLIFO = '" & rsMovimentiLottiVendite.Fields.Item("RAGIONESOC").Value & "'"
' riporto note di credito *************************
'calcolo prima il totale delle vendite
If DH.Fields.Item("TIPOPROT").Value <> "NC" Then
somma_quantita_causale = somma_quantita_causale + DH.Fields.Item("QUANTITA").Value
somma_riga_causale_lordo = somma_riga_causale_lordo + TotaleRigaLordo
somma_quantita_articolo_vendita = somma_quantita_articolo_vendita + DH.Fields.Item("QUANTITA").Value
somma_riga_articolo_vendita_lordo = somma_riga_articolo_vendita_lordo + TotaleRigaLordo
'somma_costo_riga_vendite_noNC = somma_costo_riga_vendite_noNC + (DH.Fields.Item("QUANTITA").Value * media_prlordo_causale_acquisto )
Else
If NCincludi Then
somma_quantita_causale = somma_quantita_causale - DH.Fields.Item("QUANTITA").Value
somma_riga_causale_lordo = somma_riga_causale_lordo - TotaleRigaLordo
somma_quantita_articolo_vendita = somma_quantita_articolo_vendita - DH.Fields.Item("QUANTITA").Value
somma_riga_articolo_vendita_lordo = somma_riga_articolo_vendita_lordo - TotaleRigaLordo
End If
End If
'verifico che il totale delle vendite sia diverso da ZERO prima di tutto
If somma_quantita_causale <> 0 Then
If DH.Fields.Item("TIPOPROT").Value <> "NC" Then
'somma_quantita_articolo_vendita = somma_quantita_articolo_vendita + DH.Fields.Item("QUANTITA").Value
somma_quantita_articolo_vendita_noNC = somma_quantita_articolo_vendita_noNC + DH.Fields.Item("QUANTITA").Value
'somma_quantita_causale = somma_quantita_causale + DH.Fields.Item("QUANTITA").Value
somma_quantita_noNC = somma_quantita_noNC + DH.Fields.Item("QUANTITA").Value
somma_quantita_lotto_vendite = somma_quantita_lotto_vendite + DH.Fields.Item("QUANTITA").Value
somma_riga_articolo_vendita = somma_riga_articolo_vendita + TotaleRiga
'somma_riga_articolo_vendita_lordo = somma_riga_articolo_vendita_lordo + TotaleRigaLordo
somma_riga_articolo_vendita_lordo_noNC = somma_riga_articolo_vendita_lordo_noNC + TotaleRigaLordo
somma_riga_causale = somma_riga_causale + TotaleRiga
somma_riga_causale_noNC = somma_riga_causale_noNC + TotaleRiga
'somma_riga_causale_lordo = somma_riga_causale_lordo + TotaleRigaLordo
somma_riga_causale_lordo_noNC = somma_riga_causale_lordo_noNC + TotaleRigaLordo
'nuovo calcolo valore acquistato ****************
somma_costo_riga_vendite = somma_costo_riga_vendite + (DH.Fields.Item("QUANTITA").Value * media_prlordo_causale_acquisto )
somma_costo_riga_vendite_noNC = somma_costo_riga_vendite_noNC + (DH.Fields.Item("QUANTITA").Value * media_prlordo_causale_acquisto )
Else
If NCincludi Then
'somma_quantita_articolo_vendita = somma_quantita_articolo_vendita - DH.Fields.Item("QUANTITA").Value
'somma_quantita_causale = somma_quantita_causale - DH.Fields.Item("QUANTITA").Value
somma_quantita_lotto_vendite = somma_quantita_lotto_vendite - DH.Fields.Item("QUANTITA").Value
somma_riga_articolo_vendita = somma_riga_articolo_vendita - TotaleRiga
'response.Write("Totale Riga lordo in NC: " & TotaleRigaLordo)
'response.Write("<br>somma_riga_articolo_vendita_lordo: " & somma_riga_articolo_vendita_lordo)
'somma_riga_articolo_vendita_lordo = somma_riga_articolo_vendita_lordo - TotaleRigaLordo
'response.Write("<br>Totale Riga lordo in NC: " & somma_riga_articolo_vendita_lordo)
somma_riga_causale = somma_riga_causale - TotaleRiga
'somma_riga_causale_lordo = somma_riga_causale_lordo - TotaleRigaLordo
somma_costo_riga_vendite = somma_costo_riga_vendite - (DH.Fields.Item("QUANTITA").Value * media_prlordo_causale_acquisto )
End If
End If
End If
somma_riga_lotto_vendite = somma_riga_lotto_vendite + TotaleRigaLordo
If DH.Fields.Item("TIPOPROT").Value <> "NC" Then
media_prnetto_causale = media_prnetto_causale + PrVendita
media_prlordo_causale = media_prlordo_causale + PrVenditaLordo
End If
contatore_righe_causale = contatore_righe_causale + 1
DH.MoveNext
Else
Exit Do
End If
Loop
magazzino_corrente = ""
If somma_quantita_noNC <> 0 Then
media_prnetto_causale_vendita = round ( somma_riga_causale_noNC / somma_quantita_noNC,4)
media_prlordo_causale_vendita = round ( somma_riga_causale_lordo_noNC / somma_quantita_noNC, 4)
'media_prnetto_causale_vendita = round ( somma_riga_causale / somma_quantita_causale, 4)
'media_prlordo_causale_vendita = round ( somma_riga_causale_lordo / somma_quantita_causale, 4)
End If
If Request.QueryString("V") = 1 Then
End If
'FINE righe magazzino **********************************
If Not DH.EOF Then
magazzino_successivo = DH.Fields.Item("MAGAZZINO").Value
Else
magazzino_successivo = "MAGAZZINIFINITI"
End If
If magazzino_corrente <> magazzino_successivo Then
if media_prlordo_causale_vendita <> 0 Then
margine_magazzino = Round ( ( media_prlordo_causale_vendita - media_prlordo_causale_acquisto ) / media_prlordo_causale_vendita, 6) * 100
If Request.QueryString("V") = 1 Then
If somma_quantita_causale = 0 Then
Else
End If
End If
Else
If Request.QueryString("V") = 1 Then
End If
End If
If media_prlordo_causale_acquisto <> 0 Then
ricarico_magazzino = Round ( ( media_prlordo_causale_vendita - media_prlordo_causale_acquisto ) / media_prlordo_causale_acquisto, 6 ) * 100
If Request.QueryString("V") = 1 Then
If somma_quantita_causale = 0 Then
Else
End If
End If
Else
If Request.QueryString("V") = 1 Then
End If
End If
Else
If Request.QueryString("V") = 1 Then
End If
End If
'FINE righe vendita ************************************************************************
'conti di fine articolo
If Not DH.EOF Then
articolo_successivo = DH.Fields.Item("CODICE").Value
Else
articolo_successivo = "ARTICOLIFINITI"
End If
'totale generale articolo
If articolo_corrente <> articolo_successivo Then
if somma_quantita_articolo_acquisto <> 0 Then
media_prnetto_articolo_acquisto = format (somma_riga_articolo_acquisto / somma_quantita_articolo_acquisto)
media_prlordo_articolo_acquisto = format (somma_riga_articolo_acquisto / somma_quantita_articolo_acquisto)
Else
media_prnetto_articolo_acquisto = 0
media_prlordo_articolo_acquisto = 0
ricarico_articolo = 0
ricarico_articolo_new = 0
End If
if somma_quantita_articolo_vendita <> 0 Then
media_prnetto_articolo_vendita = format (somma_riga_articolo_vendita / somma_quantita_articolo_vendita)
'media_prlordo_articolo_vendita = format (somma_riga_articolo_vendita_lordo_noNC / somma_quantita_articolo_vendita_noNC)
Else
media_prnetto_articolo_vendita = 0
media_prlordo_articolo_vendita = 0
margine_articolo = 0
margine_articolo_new = 0
End If
if somma_quantita_articolo_vendita_noNC <> 0 Then
'media_prlordo_articolo_vendita_noNC = format (somma_riga_articolo_vendita_lordo_noNC / somma_quantita_articolo_vendita_noNC)
End iF
'if somma_riga_articolo_acquisto = 0 then somma_riga_articolo_acquisto = 1
'if somma_riga_articolo_vendita = 0 then somma_riga_articolo_vendita = 1
If media_prlordo_articolo_vendita <> 0 Then
margine_articolo = round ( ( media_prlordo_articolo_vendita - media_prlordo_articolo_acquisto ) / media_prlordo_articolo_vendita,6 ) * 100
Else
margine_articolo = 0
End If
'If media_prlordo_articolo_vendita_noNC <> 0 Then
'margine_articolo_new = round ( ( somma_riga_articolo_vendita_lordo_noNC - somma_costo_riga_vendite_noNC ) / somma_riga_articolo_vendita_lordo_noNC, 6 ) * 100
'Else
'margine_articolo_new = round ( ( somma_riga_articolo_vendita_lordo_noNC - somma_costo_riga_vendite_noNC ) / somma_riga_articolo_vendita_lordo_noNC, 6 ) * 100
'End If
'response.Write("<br> round ( ( somma_riga_articolo_vendita_lordo - somma_costo_riga_vendite ) / somma_riga_articolo_vendita_lordo, 6 ) * 100")
'response.Write("<br> somma_riga_articolo_vendita_lordo =" & round(somma_riga_articolo_vendita_lordo,4) & " - somma_costo_riga_vendite: " & somma_costo_riga_vendite & "<br>")
'response.Write("<br> somma_riga_articolo_vendita_lordo_noNC =" & somma_riga_articolo_vendita_lordo_noNC & " - somma_costo_riga_vendite_noNC: " & somma_costo_riga_vendite_noNC & "<br>")
'response.Write("<br> somma_costo_riga_vendite = " & somma_costo_riga_vendite & "<br>")
If somma_quantita_articolo_vendita <> 0 Then
margine_articolo_new = round ( ( somma_riga_articolo_vendita_lordo - somma_costo_riga_vendite ) / somma_riga_articolo_vendita_lordo, 6 ) * 100
End If
If media_prlordo_articolo_acquisto <> 0 And somma_quantita_articolo_vendita <> 0 Then
ricarico_articolo = round ( ( media_prlordo_articolo_vendita - media_prlordo_articolo_acquisto ) / media_prlordo_articolo_acquisto, 6) * 100
ricarico_articolo_new = round ( ( somma_riga_articolo_vendita_lordo - somma_costo_riga_vendite ) / somma_costo_riga_vendite, 6) * 100
'ricarico_articolo_new = round ( ( somma_riga_articolo_vendita_lordo_noNC - somma_costo_riga_vendite_noNC ) / somma_costo_riga_vendite_noNC, 6) * 100
Else
ricarico_articolo = 0
ricarico_articolo_new = 0
End If
GTotaleQta = GTotaleQta + somma_quantita_articolo_vendita
GTotaleAcquistato = GTotaleAcquistato + (media_prlordo_articolo_acquisto * somma_quantita_articolo_vendita)
GTotaleAcquistato_new = GTotaleAcquistato_new + somma_costo_riga_vendite_noNC
GTotaleVenduto_noNC = GTotaleVenduto + somma_riga_articolo_vendita_lordo_noNC
GTotaleVenduto = GTotaleVenduto + somma_riga_articolo_vendita_lordo
End If
Dim MaTotMargine
Dim MaTotRicavo
'nuovo calcolo valore venduto
Dim MaTotMargine_new
Dim MaTotRicavo_new
If GTotaleVenduto <> 0 Then
MaTotMargine = format( ( (GTotaleVenduto-GTotaleAcquistato)*100) / GTotaleVenduto )
MaTotMargine_new = format( ( (GTotaleVenduto_noNC-GTotaleAcquistato_new)*100) / GTotaleVenduto_noNC )
Else
MaTotMargine = 0
MaTotMargine_new = 0
End If
If GTotaleAcquistato <> 0 Then
MaTotRicavo = format( ( (GTotaleVenduto-GTotaleAcquistato)*100) / GTotaleAcquistato )
Else
MaTotRicavo = 0'format( ( (GTotaleVenduto-GTotaleAcquistato)*100) / GTotaleAcquistato_new )
End If
If GTotaleAcquistato_new <> 0 Then
MaTotRicavo_new = format( ( (GTotaleVenduto_noNC-GTotaleAcquistato_new)*100) / GTotaleAcquistato_new )
Else
MaTotRicavo_new = 0 'format( ( (GTotaleVenduto_noNC-GTotaleAcquistato_new)*100) / GTotaleAcquistato )
End If
'flush dell'output
i = i +1
If i = 100 then
Response.Flush()
i = 1
End If
Wend
'************* TOTALI FINALI *********************
%>
<tr></tr>
<tr>
<td>VALORI GENERALI</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td align="right">=SOMMA(I2:I<%=riga%>)</td>
<td></td>
<td></td>
<td></td>
<td align="right">=SOMMA(M2:M<%=riga%>)</td>
<td></td>
<td align="right">=SOMMA(O2:O<%=riga%>)</td>
<td align="right">=ARROTONDA(ARROTONDA((M<%=riga+2 %>-O<%=riga+2 %>) / M<%=riga+2 %>;6)*100;3)</td>
<td align="right">=ARROTONDA(ARROTONDA((M<%=riga+2 %>-O<%=riga+2 %>) / O<%=riga+2 %>;6)*100;3)</td>
</tr>
</table>
<%
DH.Close()
Set DH = Nothing
%>