492 lines
13 KiB
VB.net
492 lines
13 KiB
VB.net
Option Explicit On
|
|
Option Strict On
|
|
|
|
Imports System.Data
|
|
Imports System.Drawing
|
|
Imports System.IO
|
|
Imports System.Windows.Forms
|
|
Imports Extensiones
|
|
Imports GemBox.Spreadsheet
|
|
Imports Microsoft.Reporting.WebForms
|
|
|
|
Partial Class Finanzas_RepRazonesFinancieras2
|
|
Inherits ClsPaginas
|
|
|
|
|
|
|
|
|
|
|
|
Property DTRatios As DataTable
|
|
Get
|
|
If ViewState("DTRatios") Is Nothing Then
|
|
ViewState("DTRatios") = New DataTable
|
|
End If
|
|
|
|
Return DirectCast(ViewState("DTRatios"), DataTable)
|
|
|
|
End Get
|
|
Set(value As DataTable)
|
|
ViewState("DTRatios") = value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
|
|
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
If Not Page.IsPostBack Then
|
|
|
|
Tab.ActiveTabIndex = 0
|
|
|
|
CargaEjercicios()
|
|
|
|
CargarCentrosDeCosto(Nothing, DdlSubproyecto, Nothing, LblSubProyecto)
|
|
|
|
|
|
|
|
DdlEjercicio.SelectedValueExist(UsuarioActual.Empresa.EjercicioActual)
|
|
ValidaEjercicios()
|
|
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
|
|
|
|
Protected Sub DdlEjercicio_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
ValidaEjercicios()
|
|
End Sub
|
|
|
|
Protected Sub DdlEjercicio2_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
ValidaEjercicios()
|
|
End Sub
|
|
|
|
Private Sub ValidaEjercicios()
|
|
|
|
|
|
Dim EInicio As Integer = DdlEjercicio.SelectedValue.ToEntero
|
|
|
|
|
|
If EInicio > DdlEjercicio2.SelectedValue.ToEntero Then
|
|
|
|
If DdlEjercicio2.Items.Count > 0 Then
|
|
DdlEjercicio2.SelectedIndex = DdlEjercicio2.Items.Count - 1
|
|
End If
|
|
|
|
Dim Fejerciosio As Integer = DdlEjercicio2.SelectedValue.ToEntero
|
|
|
|
If Not EInicio + 1 > Fejerciosio Then
|
|
DdlEjercicio2.SelectedValueExist(EInicio + 1)
|
|
End If
|
|
|
|
End If
|
|
|
|
|
|
UpFiltros.Update()
|
|
End Sub
|
|
|
|
Private Sub CargaEjercicios()
|
|
'Dim ClsConta As New ClsContPAQi(UsuarioActual.Empresa)
|
|
Dim ClsConta As New ClsContabilidad
|
|
If ClsConta.GetEjercicios(UsuarioActual.CveEmpresa) Then
|
|
DdlEjercicio.DataSource = ClsConta.DtResultados
|
|
DdlEjercicio2.DataSource = ClsConta.DtResultados
|
|
Else
|
|
DdlEjercicio.DataSource = Nothing
|
|
DdlEjercicio2.DataSource = Nothing
|
|
End If
|
|
ClsConta.Dispose()
|
|
DdlEjercicio.DataBind()
|
|
DdlEjercicio2.DataBind()
|
|
|
|
DdlEjercicio.SelectedValueExist(UsuarioActual.Empresa.EjercicioActual.ToString)
|
|
If DdlEjercicio.Items.Count = 0 Then
|
|
DdlEjercicio.Items.Add(New ListItem(Now.Year.ToString, Now.Year.ToString))
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
|
|
|
LnkExportar.Visible = False
|
|
|
|
If Tab.ActiveTabIndex = 0 Then
|
|
CargaDatosBalanceGeneral()
|
|
End If
|
|
|
|
|
|
If Tab.ActiveTabIndex = 1 Then
|
|
CargaDatosEstadoResultados()
|
|
End If
|
|
|
|
|
|
If Tab.ActiveTabIndex = 2 Then
|
|
CargaDatosRatios()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
#Region "ESTADO BALANCE GENERAL"
|
|
|
|
|
|
|
|
Private Sub CargaDatosBalanceGeneral()
|
|
|
|
LnkExportar.Visible = False
|
|
GvBalanceGeneralOcultarColumnas(GvBalanceGeneral, 1)
|
|
|
|
Dim FechaI = New Date(DdlEjercicio.SelectedValue.ToEntero, 1, 1)
|
|
Dim FechaF = New Date(DdlEjercicio2.SelectedValue.ToEntero, 1, 1)
|
|
|
|
|
|
Dim CveSubProyecto = DdlSubproyecto.SelectedValue.ToEntero
|
|
|
|
|
|
Dim objFinanzas As New ClsFinanzas
|
|
Dim dtTemp As New DataTable
|
|
|
|
If objFinanzas.GetRazonesFinancierasBalanceGeneralRep(FechaI, FechaF, -1, CveSubProyecto, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, 1, DdlPeriodo.SelectedValue.ToEntero) Then
|
|
dtTemp = objFinanzas.DtResultados
|
|
|
|
GvBalanceGeneralMostrarColumnas(dtTemp, GvBalanceGeneral)
|
|
GvBalanceGeneral.DataSource = dtTemp
|
|
|
|
If dtTemp.Rows.Count > 0 Then
|
|
' LnkExportar.Visible = True
|
|
End If
|
|
|
|
Else
|
|
GvBalanceGeneral.DataSource = Nothing
|
|
End If
|
|
|
|
objFinanzas.Dispose()
|
|
GvBalanceGeneral.DataBind()
|
|
|
|
UpBalanceGeneral.Update()
|
|
|
|
End Sub
|
|
|
|
Private Sub GvBalanceGeneralOcultarColumnas(ByRef Gv As GridView, Optional index As Integer = 2)
|
|
|
|
For index = 2 To Gv.Columns.Count - 1
|
|
CType(Gv.Columns(index), BoundField).DataField = Nothing
|
|
Gv.Columns(index).Visible = False
|
|
Next
|
|
UpBalanceGeneral.Update()
|
|
End Sub
|
|
|
|
Private Sub GvBalanceGeneralMostrarColumnas(dt As DataTable, ByRef Gv As GridView)
|
|
Dim index = 1
|
|
|
|
|
|
For index = 1 To dt.Columns.Count - 5
|
|
CType(Gv.Columns(index + 4), BoundField).DataField = dt.Columns(index + 4).ColumnName
|
|
Gv.Columns(index + 4).Visible = True
|
|
|
|
CType(Gv.Columns(index + 4), BoundField).HeaderText = dt.Columns(index + 4).ColumnName
|
|
|
|
Next
|
|
End Sub
|
|
|
|
Protected Sub GvBalanceGeneral_RowDataBound(sender As Object, e As GridViewRowEventArgs)
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 1 Then
|
|
e.Row.Font.Bold = True
|
|
e.Row.Cells(0).Text = ""
|
|
End If
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 3 Then
|
|
e.Row.FCLabel("LblNombre").Text = $" {e.Row.FCLabel("LblNombre").Text}"
|
|
e.Row.Attributes.Add("style", "border-top: 1px solid #000;")
|
|
e.Row.Cells(0).Text = ""
|
|
End If
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 4 Then
|
|
e.Row.Attributes.Add("style", "border-top: solid;border-bottom: solid")
|
|
e.Row.Cells(0).Text = ""
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
|
|
#Region "ESTADO RESULTADOS"
|
|
|
|
|
|
|
|
Private Sub CargaDatosEstadoResultados()
|
|
|
|
|
|
|
|
LnkExportar.Visible = False
|
|
GVEstadoRsultadosOcultarColumnas(GVEstadoRsultados, 1)
|
|
|
|
|
|
Dim FechaI = New Date(DdlEjercicio.SelectedValue.ToEntero, 1, 1)
|
|
Dim FechaF = New Date(DdlEjercicio2.SelectedValue.ToEntero, 1, 1)
|
|
|
|
|
|
Dim CveSubProyecto = DdlSubproyecto.SelectedValue.ToEntero
|
|
|
|
|
|
Dim objFinanzas As New ClsFinanzas
|
|
Dim dtTemp As New DataTable
|
|
|
|
If objFinanzas.GetRazonesFinancierasEstadoResultadosRep(FechaI, FechaF, -1, CveSubProyecto, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, 1, DdlPeriodo.SelectedValue.ToEntero) Then
|
|
dtTemp = objFinanzas.DtResultados
|
|
|
|
GVEstadoRsultadosMostrarColumnas(dtTemp, GVEstadoRsultados)
|
|
GVEstadoRsultados.DataSource = dtTemp
|
|
|
|
If dtTemp.Rows.Count > 0 Then
|
|
' LnkExportar.Visible = True
|
|
End If
|
|
|
|
Else
|
|
GVEstadoRsultados.DataSource = Nothing
|
|
End If
|
|
|
|
objFinanzas.Dispose()
|
|
GVEstadoRsultados.DataBind()
|
|
|
|
UpEstadoResultados.Update()
|
|
|
|
End Sub
|
|
|
|
Private Sub GVEstadoRsultadosOcultarColumnas(ByRef Gv As GridView, Optional index As Integer = 2)
|
|
|
|
For index = 2 To Gv.Columns.Count - 1
|
|
CType(Gv.Columns(index), BoundField).DataField = Nothing
|
|
Gv.Columns(index).Visible = False
|
|
Next
|
|
UpEstadoResultados.Update()
|
|
End Sub
|
|
|
|
Private Sub GVEstadoRsultadosMostrarColumnas(dt As DataTable, ByRef Gv As GridView)
|
|
Dim index = 1
|
|
|
|
|
|
For index = 1 To dt.Columns.Count - 5
|
|
CType(Gv.Columns(index + 4), BoundField).DataField = dt.Columns(index + 4).ColumnName
|
|
Gv.Columns(index + 4).Visible = True
|
|
Dim tmpDate As Date
|
|
If (Date.TryParse(dt.Columns(index + 4).ColumnName, tmpDate)) Then
|
|
CType(Gv.Columns(index + 4), BoundField).HeaderText = tmpDate.ToString("dd-MMM").Replace(".", "")
|
|
Else
|
|
CType(Gv.Columns(index + 4), BoundField).HeaderText = dt.Columns(index + 4).ColumnName
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Protected Sub GVEstadoRsultados_RowDataBound(sender As Object, e As GridViewRowEventArgs)
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 1 Then
|
|
e.Row.Font.Bold = True
|
|
e.Row.Cells(0).Text = ""
|
|
End If
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 3 Then
|
|
e.Row.FCLabel("LblNombre").Text = $" {e.Row.FCLabel("LblNombre").Text}"
|
|
e.Row.Cells(0).Text = ""
|
|
End If
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 4 Then
|
|
e.Row.Attributes.Add("style", "border-top: solid;border-bottom: solid")
|
|
e.Row.Cells(0).Text = ""
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "RATIOS"
|
|
|
|
|
|
|
|
Private Sub CargaDatosRatios()
|
|
|
|
|
|
|
|
DTRatios = New DataTable
|
|
|
|
LnkExportar.Visible = False
|
|
GVRatiosOcultarColumnas(GVRatios, 1)
|
|
|
|
|
|
Dim FechaI = New Date(DdlEjercicio.SelectedValue.ToEntero, 1, 1)
|
|
Dim FechaF = New Date(DdlEjercicio2.SelectedValue.ToEntero, 1, 1)
|
|
|
|
|
|
Dim CveSubProyecto = DdlSubproyecto.SelectedValue.ToEntero
|
|
|
|
|
|
Dim objFinanzas As New ClsFinanzas
|
|
|
|
|
|
If objFinanzas.GetRazonesFinancierasRatiosRep(FechaI, FechaF, -1, CveSubProyecto, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, 1, DdlPeriodo.SelectedValue.ToEntero) Then
|
|
DTRatios = objFinanzas.DtResultados
|
|
|
|
GVRatiosMostrarColumnas(DTRatios, GVRatios)
|
|
GVRatios.DataSource = DTRatios
|
|
|
|
If DTRatios.Rows.Count > 0 Then
|
|
' LnkExportar.Visible = True
|
|
End If
|
|
|
|
Else
|
|
GVRatios.DataSource = Nothing
|
|
End If
|
|
|
|
objFinanzas.Dispose()
|
|
GVRatios.DataBind()
|
|
|
|
UpBalanceGeneral.Update()
|
|
|
|
End Sub
|
|
|
|
Private Sub GVRatiosOcultarColumnas(ByRef Gv As GridView, Optional index As Integer = 2)
|
|
|
|
For index = 1 To Gv.Columns.Count - 1
|
|
CType(Gv.Columns(index), BoundField).DataField = Nothing
|
|
Gv.Columns(index).Visible = False
|
|
Next
|
|
UpEstadoResultados.Update()
|
|
End Sub
|
|
|
|
Private Sub GVRatiosMostrarColumnas(dt As DataTable, ByRef Gv As GridView)
|
|
Dim index = 4
|
|
|
|
|
|
For index = 4 To dt.Columns.Count - 2
|
|
CType(Gv.Columns(index + 1), BoundField).DataField = dt.Columns(index + 1).ColumnName
|
|
Gv.Columns(index + 1).Visible = True
|
|
CType(Gv.Columns(index + 1), BoundField).HeaderText = dt.Columns(index + 1).ColumnName
|
|
Next
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Protected Sub GVRatios_RowDataBound(sender As Object, e As GridViewRowEventArgs)
|
|
|
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 1 Then
|
|
e.Row.Font.Bold = True
|
|
End If
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 3 Then
|
|
e.Row.FCLabel("LblNombre").Text = $" {e.Row.FCLabel("LblNombre").Text}"
|
|
End If
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero = 4 Then
|
|
e.Row.Attributes.Add("style", "border-top: solid;border-bottom: solid")
|
|
End If
|
|
|
|
If e.Row.DataKey("Tipo").ToEntero <> 1 AndAlso DTRatios.Columns.Count > 0 Then
|
|
|
|
Dim EsPorcentaje = If(e.Row.DataKey("EsPorcentaje").ToEntero = 1, True, False)
|
|
|
|
For x = 1 To DTRatios.Columns.Count - 2
|
|
If EsPorcentaje Then
|
|
e.Row.Cells(x).Text = $"{(e.Row.Cells(x).Text.ToDecimal * 100.0).ToString("###,####,###.00")}%"
|
|
Else
|
|
e.Row.Cells(x).Text = $"{e.Row.Cells(x).Text.ToDecimal.ToString("###,###,###.00")}"
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
If e.Row.DataKey("Formula").Trim().Length > 0 Then
|
|
|
|
'data-html="true" data-toggle="tooltip" data-placement="left" title="Agregar<br/>Familiares"
|
|
e.Row.Attributes.Add("data-html", "true")
|
|
e.Row.Attributes.Add("data-toggle", "tooltip")
|
|
e.Row.Attributes.Add("data-placement", "top")
|
|
e.Row.Attributes.Add("title", $"{e.Row.DataKey("Formula").Trim()}")
|
|
End If
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
#Region "DESCARGA EXCEL"
|
|
|
|
|
|
Protected Sub LnkExportar_Click(sender As Object, e As EventArgs)
|
|
|
|
Dim SubProyecto As String = ""
|
|
|
|
If DdlSubproyecto.SelectedValue.ToEntero > 0 Then
|
|
SubProyecto = DdlSubproyecto.SelectedItem.Text
|
|
End If
|
|
|
|
Dim SbFiltros As New StringBuilder()
|
|
SbFiltros.Append($"Año Inicio: {DdlEjercicio.SelectedItem.Text} Año Fin: {DdlEjercicio2.SelectedItem.Text} ")
|
|
SbFiltros.Append($"SubProyecto: {SubProyecto}")
|
|
|
|
Dim Titulo As String = ""
|
|
Dim NombreReporte As String = ""
|
|
|
|
If Tab.ActiveTabIndex = 0 Then
|
|
Titulo = "Balance General"
|
|
NombreReporte = "BalanceGenral"
|
|
End If
|
|
|
|
If Tab.ActiveTabIndex = 1 Then
|
|
Titulo = "Estado de Resultados"
|
|
NombreReporte = "Estado de Resultados"
|
|
End If
|
|
|
|
If Tab.ActiveTabIndex = 2 Then
|
|
|
|
Titulo = "Ratios"
|
|
NombreReporte = "Ratios"
|
|
|
|
|
|
End If
|
|
|
|
|
|
GVRatios.ExportToExcelGembox(NombreReporte, UsuarioActual, $"Reporte {Titulo}", "", DatosFiltros:=SbFiltros.ToString())
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
End Class
|
|
|