| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- Public Class DepositosAPlazoCE
- Private _DocId As Integer
- Private _CodigoInversion As String
- Private _MontoDeInversion As Double
- Private _FechaOperacion As Date
- Private _FechaVencimiento As Date
- Private _Tasa As Double
- Private _Plazo As Double
- Private _AnioBase As Integer
- Private _Periodicidad As String
- Private _RendimientoBruto As Double
- Private _RendimientoNeto As Double
- Private _IngresoBruto As Double
- Private _Impuestos As Double
- Private _IngresoNeto As Double
- Private _dtIntereses As DataTable
- Dim Operaciones As New Operaciones
- Public Property dtIntereses As DataTable
- Get
- Return _dtIntereses
- End Get
- Set(value As DataTable)
- _dtIntereses = value
- CalcularSumaIngresoBruto()
- CalcularSumaISR()
- CalcularIngresoNeto()
- End Set
- End Property
- Public Property CodigoInversion As String
- Get
- Return _CodigoInversion
- End Get
- Set(value As String)
- _CodigoInversion = value
- End Set
- End Property
- Public Property MontoDeInversion As Double
- Get
- Return _MontoDeInversion
- End Get
- Set(value As Double)
- _MontoDeInversion = value
- CalcularRendimientoBruto()
- CalcularRendimientoNeto()
- End Set
- End Property
- Public Property FechaOperacion As Date
- Get
- Return _FechaOperacion
- End Get
- Set(value As Date)
- _FechaOperacion = value
- End Set
- End Property
- Public Property FechaVencimiento As Date
- Get
- Return _FechaVencimiento
- End Get
- Set(value As Date)
- _FechaVencimiento = value
- End Set
- End Property
- Public Property Tasa As Double
- Get
- Return _Tasa
- End Get
- Set(value As Double)
- _Tasa = value
- End Set
- End Property
- Public Property Plazo As Double
- Get
- Return _Plazo
- End Get
- Set(value As Double)
- _Plazo = value
- CalcularRendimientoBruto()
- CalcularRendimientoNeto()
- End Set
- End Property
- Public Property Periodicidad As String
- Get
- Return _Periodicidad
- End Get
- Set(value As String)
- _Periodicidad = value
- End Set
- End Property
- Public ReadOnly Property RendimientoBruto As Double
- Get
- Return _RendimientoBruto
- End Get
- End Property
- Public ReadOnly Property RendimientoNeto As Double
- Get
- Return _RendimientoNeto
- End Get
- End Property
- Public Sub New()
- _MontoDeInversion = 0.00
- _FechaOperacion = Date.Now.Date
- _FechaVencimiento = Date.Now.Date
- _Tasa = 0.00
- _Plazo = 0
- _Periodicidad = "M"
- PreparaTablaIntereses()
- End Sub
- Private Sub PreparaTablaIntereses()
- _dtIntereses = New DataTable
- Dim column As DataColumn
- column = New DataColumn()
- column.DataType = GetType(String)
- column.ColumnName = "CodInv"
- column.Caption = "Codigo Inversion"
- column.ReadOnly = True
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(Integer)
- column.ColumnName = "Correlativo"
- column.Caption = "Correlativo"
- column.ReadOnly = True
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(Integer)
- column.ColumnName = "Plazo"
- column.Caption = "Plazo"
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(Date)
- column.ColumnName = "Fecha"
- column.Caption = "Fecha"
-
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(Double)
- column.ColumnName = "IngrBruto"
- column.Caption = "Ingreso Bruto"
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(Double)
- column.ColumnName = "PorcImp"
- column.Caption = "Porc. de Impuesto"
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(Double)
- column.ColumnName = "MontoImp"
- column.Caption = "Impuesto"
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(Double)
- column.ColumnName = "IngrNeto"
- column.Caption = "Ingreso Neto"
- _dtIntereses.Columns.Add(column)
- column = New DataColumn()
- column.DataType = GetType(String)
- column.ColumnName = "Estado"
- column.Caption = "Estado"
- _dtIntereses.Columns.Add(column)
- End Sub
- Private Sub CalcularSumaIngresoBruto()
- If Not Double.TryParse(_dtIntereses.Compute("SUM(IngrBruto)", "").ToString, _IngresoBruto) Then
- _IngresoBruto = 0
- End If
- CalcularRendimientoBruto()
- End Sub
- Private Sub CalcularSumaISR()
- If Not Double.TryParse(_dtIntereses.Compute("SUM(MontoImp)", "").ToString, _Impuestos) Then
- _Impuestos = 0
- End If
- End Sub
- Private Sub CalcularIngresoNeto()
- If Not Double.TryParse(_dtIntereses.Compute("SUM(IngrNeto)", "").ToString, _IngresoNeto) Then
- _IngresoNeto = 0
- End If
- CalcularRendimientoNeto()
- End Sub
- Private Sub CalcularRendimientoBruto()
- Dim valor As Double
- Dim vIngresoBruto As Double = _IngresoBruto
- Dim vMontoInversion As Double = _MontoDeInversion
- Dim vDiasDelAnio As Integer = Utilidades.CalcularDiasDelAnio(_FechaVencimiento)
- Dim vPlazo As Integer = _Plazo
- valor = (vIngresoBruto / vMontoInversion) * (vDiasDelAnio / vPlazo)
- _RendimientoBruto = valor
- End Sub
- Private Sub CalcularRendimientoNeto()
- Dim valor As Double
- Dim vIngresoNeto As Double = _IngresoNeto
- Dim vMontoInversion As Double = _MontoDeInversion
- Dim vDiasDelAnio As Integer = Utilidades.CalcularDiasDelAnio(_FechaVencimiento)
- Dim vPlazo As Integer = _Plazo
- valor = (vIngresoNeto / vMontoInversion) * (vDiasDelAnio / vPlazo)
- _RendimientoNeto = valor
- End Sub
- Function CalcularPlazo(ByVal ValorPlazo As String)
- Dim Dias As Integer = 0
- If (ValorPlazo = "M") Then
- Dias = 30
- ElseIf (ValorPlazo = "T") Then
- Dias = 90
- ElseIf (ValorPlazo = "S") Then
- Dias = 180
- ElseIf (ValorPlazo = "A") Then
- Dias = 365
- End If
- Return Dias
- End Function
- Function CalcularIteraciones(ByVal PlazoGlobal As Integer, ByVal Plazo As Integer)
- Dim Cantidad As Integer = 0
- If (Not String.IsNullOrEmpty(Plazo.ToString) And Not Plazo.ToString = "0") Then
- Cantidad = PlazoGlobal / Plazo
- End If
- Return Cantidad
- End Function
- Function CalcularFecha(ByVal Dias As Integer, ByVal Fecha As Date)
- Return Fecha.AddDays(Dias)
- End Function
- Function CalculosIngrBruto(ByVal FechaInicial As Date, FechaFinal As Date, ByVal MontoInv As Double, ByVal Tasa As Double, ByVal Plazo As Integer)
- Dim IngresoBruto = 0.0, IngresoBrutoOpc1 = 0.0, IngresoBrutoOpc2 = 0.0
- Dim CambioDeFecha As Integer = Operaciones.CambioBase(FechaInicial, FechaFinal)
- Dim PrimeraFechaUltima = Operaciones.PrimeraFechaCambioBase(FechaInicial)
- Dim UltimaFechaPrimero = Operaciones.FinalFechaCambioBase(FechaFinal)
- Dim DiasPrimeraFecha = 0, DiasSegundaFecha = 0
- If (Not CambioDeFecha = 0) Then
- If CambioDeFecha = 1 Then
- DiasPrimeraFecha = Operaciones.DiasDespuesCambioPrimeraFecha366(FechaInicial, PrimeraFechaUltima, CambioDeFecha)
- DiasSegundaFecha = Operaciones.DiasDespuesCambioPrimeraFecha365(UltimaFechaPrimero, FechaFinal, CambioDeFecha)
- IngresoBrutoOpc1 = (MontoInv * Tasa * DiasPrimeraFecha) / 366
- IngresoBrutoOpc2 = (MontoInv * Tasa * DiasSegundaFecha) / 365
- ElseIf CambioDeFecha = 2 Then
- DiasPrimeraFecha = Operaciones.DiasDespuesCambioPrimeraFecha365(FechaInicial, PrimeraFechaUltima, CambioDeFecha)
- DiasSegundaFecha = Operaciones.DiasDespuesCambioPrimeraFecha366(UltimaFechaPrimero, FechaFinal, CambioDeFecha)
- IngresoBrutoOpc1 = (MontoInv * Tasa * DiasPrimeraFecha) / 365
- IngresoBrutoOpc2 = (MontoInv * Tasa * DiasSegundaFecha) / 366
- End If
- IngresoBruto = IngresoBrutoOpc1 + IngresoBrutoOpc2
- Else
- If (Operaciones.AñoBisiesto(FechaInicial) = 364) Then
- IngresoBruto = (MontoInv * Tasa * Plazo) / 365
- End If
- If (Operaciones.AñoBisiesto(FechaInicial) = 365) Then
- IngresoBruto = (MontoInv * Tasa * Plazo) / 366
- End If
- End If
- Return IngresoBruto
- End Function
- Function Renta(ByVal PorcentajeRent As Double, ByVal IngBruto As Double)
- Dim DescuentoRenta As Double
- DescuentoRenta = IngBruto * PorcentajeRent
- Return DescuentoRenta
- End Function
- Function CalculosIngNeto(ByVal IngBruto As Double, ByVal Renta As Double)
- Dim CalculoIngrNeto As Double
- CalculoIngrNeto = IngBruto - Renta
- Return CalculoIngrNeto
- End Function
- End Class
|