Vai al contenuto

Calcolo del guadagno approssimativo

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