Calcolo del guadagno approssimativo

Creato il: 05.05.2021
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.

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))

Login