Questo script calcola l'importo del guadagno approssimativo su un documento di vendita, come differenza tra il prezzo totale di vendita ed il costo medio a magazzino (FIFO) di ogni articolo.
Lo script tiene conto anche di eventuali articoli composizione, utilizzando il totale di vendita preso dalla riga di testa della composizione e ricavando il costo come somma dei prezzi FIFO di ogni componente.
Lo script tiene conto anche di eventuali articoli composizione, utilizzando il totale di vendita preso dalla riga di testa della composizione e ricavando il costo come somma dei prezzi FIFO di ogni componente.
Option Explicit
Dim Quantita, PrezzoFIFO, TotaleLinea
Dim IdComposizione, RigaComposizione, TotCosto, RigaDoc
Dim TotaleMargine
TotaleMargine=0
For Each RigaDoc In Doc.Rows
IdComposizione=Rdy.toLong(RigaDoc.CustomField(190))
If IdComposizione>0 Then
If Ucase(RigaDoc.CustomField(5))="TESTA COMPOSIZIONE" Then
TotCosto = 0
For Each RigaComposizione In RigaDoc.Doc.DocRows
If Rdy.toLong(RigaComposizione.CustomField(190))=IdComposizione Then
If Ucase(RigaComposizione.CustomField(5))<>"TESTA COMPOSIZIONE" Then
Quantita = RigaComposizione.Quantity
PrezzoFIFO = RigaComposizione.Product.InventoryValueFIFO
TotCosto = TotCosto+Quantita*PrezzoFIFO
End If
End If
Next
TotaleLinea = Rdy.toDouble(RigaDoc.CustomField(61))
TotaleMargine = TotaleMargine + (TotaleLinea-TotCosto)
End If
Else
' Riga standard
Quantita = RigaDoc.Quantity
PrezzoFIFO = RigaDoc.Product.InventoryValueFIFO
TotaleLinea = Rdy.toDouble(RigaDoc.CustomField(61))
TotaleMargine = TotaleMargine + (TotaleLinea-PrezzoFIFO*Quantita)
End If
Next
Response.Write(Rdy.FormatCurrency(TotaleMargine))