Posto una routine di calcolo in VB6 che ho realizzato tempo fa:
Funziona a condizione che le righe di dettaglio della fattura
siano memorizzate sul database, in pratica ho costruito una query
(interrogazione) sul db che mi restituisce una riga per ogni aliquota iva
utilizzata nella fattura.
Utilizza 2 tabelle:
1) tabelle Righe (sono le righe di dettaglio della fattura, IdOP è l'indice
identificativo della fattura)
2) tabella Aliquote (tabella delle aliquote IVA)
Public Sub CaricaRiepilogoIVA()
Dim timp As Currency 'variabile TotaleImponibile
Dim tiva As Currency 'variabile TotaleIVA
Dim db As ADODB.Connection
Dim adoRS As ADODB.Recordset
Dim SQL As String
Set db = New ADODB.Connection
db.ConnectionString = "PROVIDER=........."
db.Open
Set adoRS = New ADODB.Recordset
adoRS.CursorType = adOpenKeyset
adoRS.LockType = adLockOptimistic
SQL = SQL & "SELECT Sum(Righe.ImportoNettoIva) AS SommaDiImporto, "
SQL = SQL & "Righe.IdAlq, Aliquote.TestoAlq, Aliquote.ValoreAlq, "
SQL = SQL & "Sum([ImportoNettoIva])*[ValoreAlq]/100 AS Imposta "
SQL = SQL & "FROM Righe INNER JOIN Aliquote ON Righe.IdAlq = Aliquote.IdAlq "
SQL = SQL & "Where (((Righe.IdOP) =" & lblIdOP & ")) "
SQL = SQL & "GROUP BY Righe.IdAlq, Aliquote.TestoAlq, Aliquote.ValoreAlq;"
adoRS.Open SQL, db, , , adCmdText
With adoRS
timp = 0
tiva = 0
Do While Not .EOF
timp = timp + !SommaDiImporto
tiva = tiva + !Imposta
.MoveNext
Loop
End With
adoRS.Close
Set adoRS = Nothing
db.Close
Set db = Nothing
lblTotaleImponibile.Caption = Format$(timp, "###,###,##0.00")
lblTotaleImposta.Caption = Format$(tiva, "###,###,##0.00")
End Sub