Visualizzazione dell'ultimo prezzo di vendita di un articolo

Creato il: 09.12.2019
Questo script consente di visualizzare (ad esempio sugli ordini clienti o su un documento di vendita) a fianco di ogni riga, il prezzo praticato allo stesso cliente per lo stesso articolo, nell'ultimo documento di vendita emesso (ddt, fattura accompagnatoria e ricevute).

Nel caso in cui nell'ultimo documento l'articolo sia presente piu' volte viene visualizzata la dicitura Verificare:
Option Explicit
 
Dim DataUltimoMovimento
Dim IdUltimoMovimento
Dim UltimoPrezzo
Dim RigaMovimento
Dim PrezzoDaUtilizzare
Dim PrezzoScontato
Dim Quantita
Dim MovimentiSuDocumento
 
DataUltimoMovimento = Empty
IdUltimoMovimento = 0
UltimoPrezzo = 0
 
If RowItem.Product.Id>0 Then ' Se la riga e' relativa ad un articolo
For Each RigaMovimento In RowItem.Product.SearchDocRows(,,RowItem.Doc.Anag.Id)
   Select Case RigaMovimento.Doc.DocType
     Case 1,2,3,14
       PrezzoScontato = Rdy.toDouble(RigaMovimento.CustomField(49))
       Quantita = Rdy.toDouble(RigaMovimento.CustomField(30))
       If (PrezzoScontato>0)And(Quantita>0)And(RigaMovimento.Id<>RowItem.Id) Then
         PrezzoDaUtilizzare = False
         If IsDate(DataUltimoMovimento) Then
            If DataUltimoMovimento < Rdy.toDate(RigaMovimento.Doc.CustomField(20)) Then
              PrezzoDaUtilizzare = True
       ElseIf DataUltimoMovimento = Rdy.toDate(RigaMovimento.Doc.CustomField(20)) Then
              If IdUltimoMovimento < RigaMovimento.Id Then
                PrezzoDaUtilizzare = True
              End If
            End If
         Else
            PrezzoDaUtilizzare = True
         End If
         If PrezzoDaUtilizzare Then
           DataUltimoMovimento = Rdy.toDate(RigaMovimento.Doc.CustomField(20))
           IdUltimoMovimento = RigaMovimento.Id
           UltimoPrezzo = PrezzoScontato
         End If
       End If
   End Select
Next
End If
 
If (UltimoPrezzo>0)And(IdUltimoMovimento>0) Then
' Controllo se nello stesso documento sono presenti piu' righe per lo stesso articolo
MovimentiSuDocumento = 0
For Each RigaMovimento In Rdy.DocRow(IdUltimoMovimento).Doc.DocRows
   If RigaMovimento.Product.Id = RowItem.Product.Id Then
     Quantita = Rdy.toDouble(RigaMovimento.CustomField(30))
     If (Quantita>0) Then
       MovimentiSuDocumento = MovimentiSuDocumento+1
     End If
   End If
Next
 
' Visualizzazione dei risultati
If MovimentiSuDocumento>1 Then
   Response.Write("Verificare")
Else
   Response.Write(Rdy.FormatCurrency(UltimoPrezzo))
End If
End If

Login