Questo script calcola il prezzo medio a magazzino (FIFO) per ogni articolo di un documento.
Poi calcola il guadagno come differenza tra il prezzo di vendita inserito sul documento ed il prezzo medio a magazzino.
Poi calcola il guadagno come differenza tra il prezzo di vendita inserito sul documento ed il prezzo medio a magazzino.
Quantita = Rdy.toDouble(RowItem.CustomField(30))
PrezzoFIFO = Rdy.toDouble(RowItem.CustomField(400))
TotaleLinea = Rdy.toDouble(RowItem.CustomField(61))
Response.Write(Rdy.FormatCurrency(TotaleLinea-PrezzoFIFO*Quantita))
Questo invece calcola il prezzo ultimo acquisto per ogni articolo di un documento.
Poi calcola il guadagno come differenza tra il prezzo di vendita inserito sul documento ed il prezzo ultimo acquisto.
Quantita = Rdy.toDouble(RowItem.CustomField(30))
IdArticolo=Rdy.toLong(RowItem.CustomField(10))
PrezzoUltimo = Rdy.toDouble(Rdy.Product(IdArticolo).CustomField(820))
TotaleLinea = Rdy.toDouble(RowItem.CustomField(61))
Response.Write(Rdy.FormatCurrency(TotaleLinea-PrezzoUltimo*Quantita))
Questo invece il prezzo massimo di acquisto preso dal tab Fornitori per ogni articolo di un documento.
Quantita = Rdy.toDouble(RowItem.CustomField(30))
IdArticolo = Rdy.toLong(RowItem.CustomField(10))
PrezzoMaxAcq = Rdy.toDouble(Rdy.Product(IdArticolo).CustomField(800))
PrezzoMaxTot = PrezzoMaxAcq * Quantita
TotaleLinea = Rdy.toDouble(RowItem.CustomField(61))
Response.Write(Rdy.FormatCurrency( TotaleLinea - PrezzoMaxTot ))
Nel caso di documenti che contengono composizioni lo script sara' piu' complesso perche' dovra' tenere conto dei componenti presenti in ogni composizione.
Nell'esempio seguente sulle righe di testa delle composizioni viene effettuato un calcolo in base al prezzo medio a magazzino (FIFO) di ogni componente:
Option Explicit
Dim Quantita, PrezzoFIFO, TotaleLinea
Dim IdComposizione
Dim RigaComposizione
Dim TotCosto
IdComposizione=Rdy.toLong(DocRow.CustomField(190))
If IdComposizione>0 Then
If Ucase(DocRow.CustomField(5))="TESTA COMPOSIZIONE" Then
TotCosto = 0
For Each RigaComposizione In DocRow.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(DocRow.CustomField(61))
Response.Write(Rdy.FormatCurrency(TotaleLinea-TotCosto))
End If
Else
' Riga standard
Quantita = DocRow.Quantity
PrezzoFIFO = DocRow.Product.InventoryValueFIFO
TotaleLinea = Rdy.toDouble(DocRow.CustomField(61))
Response.Write(Rdy.FormatCurrency(TotaleLinea-PrezzoFIFO*Quantita))
End If