' ChronoSoft (simulado) · Cálculo de consumo por bache
' Compara lo dosificado contra la fórmula y calcula desviación.
Public Class ConsumoBache
    Public Function CalcularDesviacion(dosificado As Double, formula As Double) As Double
        Return (dosificado - formula) / formula * 100
    End Function

    Public Function TotalPorMaterial(registros As List(Of RegistroDosificacion), material As String) As Double
        Dim total As Double = 0
        For Each r In registros
            If r.Material = material Then
                total = total + r.KgDosificados
            End If
        Next
        Return total
    End Function

    Public Function ClasificarBache(desviacion As Double) As String
        If desviacion < 2 Then
            Return "OK"
        ElseIf desviacion < 5 Then
            Return "ALERTA"
        Else
            Return "RECHAZADO"
        End If
    End Function
End Class

Public Class RegistroDosificacion
    Public Property Material As String
    Public Property KgDosificados As Double
    Public Property KgFormula As Double
    Public Property Turno As String
End Class
