337 lines
14 KiB
VB.net
337 lines
14 KiB
VB.net
Option Explicit On
|
||
Option Strict On
|
||
|
||
Imports System.Data
|
||
Imports System.Drawing
|
||
Imports Extensiones
|
||
Imports Microsoft.Reporting.WebForms
|
||
|
||
Partial Class AC_RepEstadoActividades
|
||
Inherits ClsPaginas
|
||
|
||
#Region "PROPIEDADES"
|
||
Private Property DtDatos As DataTable
|
||
Get
|
||
DtDatos = DirectCast(ViewState("DtDatos"), DataTable)
|
||
End Get
|
||
|
||
Set(ByVal value As DataTable)
|
||
ViewState("DtDatos") = value
|
||
End Set
|
||
End Property
|
||
Private Property DtIngresos As DataTable
|
||
Get
|
||
DtIngresos = DirectCast(ViewState("DtIngresos"), DataTable)
|
||
End Get
|
||
|
||
Set(ByVal value As DataTable)
|
||
ViewState("DtIngresos") = value
|
||
End Set
|
||
End Property
|
||
Private Property DtGastos As DataTable
|
||
Get
|
||
DtGastos = DirectCast(ViewState("DtGastos"), DataTable)
|
||
End Get
|
||
|
||
Set(ByVal value As DataTable)
|
||
ViewState("DtGastos") = value
|
||
End Set
|
||
End Property
|
||
Private Property TotalActual As Double
|
||
Get
|
||
TotalActual = ViewState("TotalActual").ToString.ToDouble
|
||
End Get
|
||
Set(value As Double)
|
||
ViewState("TotalActual") = value
|
||
End Set
|
||
End Property
|
||
Private Property TotalAnterior As Double
|
||
Get
|
||
TotalAnterior = ViewState("TotalAnterior").ToString.ToDouble
|
||
End Get
|
||
Set(value As Double)
|
||
ViewState("TotalAnterior") = value
|
||
End Set
|
||
End Property
|
||
Private Property FechaI As String
|
||
Get
|
||
Return ViewState("FechaI").ToString
|
||
End Get
|
||
Set(value As String)
|
||
ViewState("FechaI") = value
|
||
End Set
|
||
End Property
|
||
Private Property FechaF As String
|
||
Get
|
||
Return ViewState("FechaF").ToString
|
||
End Get
|
||
Set(value As String)
|
||
ViewState("FechaF") = value
|
||
End Set
|
||
End Property
|
||
Private Property ReporteComplementario As Boolean
|
||
Get
|
||
ReporteComplementario = CBool(ViewState("ReporteComplementario").ToString)
|
||
End Get
|
||
Set(value As Boolean)
|
||
ViewState("ReporteComplementario") = value
|
||
End Set
|
||
End Property
|
||
#End Region
|
||
|
||
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||
If Not Page.IsPostBack Then
|
||
|
||
If UsuarioActual.Empresa.UsaAC Then
|
||
ReporteComplementario = False
|
||
Else
|
||
ReporteComplementario = False
|
||
liTipoReporte.Visible = False
|
||
LtTitulo.Text = "Estado de Resultados"
|
||
End If
|
||
|
||
TotalActual = 0
|
||
TotalAnterior = 0
|
||
'TxtFechaInicio.Text = DateSerial(Year(Date.Now), 1, 1).ToShortDateString
|
||
'TxtFechaFin.Text = Date.Now.ToShortDateString
|
||
CargaEjercicios()
|
||
|
||
CargaDatos()
|
||
End If
|
||
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
|
||
Else
|
||
DdlEjercicio.DataSource = Nothing
|
||
End If
|
||
ClsConta.Dispose()
|
||
DdlEjercicio.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
|
||
DdlPeriodo.SelectedValue = Now.Month.ToString
|
||
|
||
CargarCentrosDeCosto(DdlProyecto, DdlSubproyecto, LblProyecto, LblSubProyecto)
|
||
|
||
End Sub
|
||
|
||
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged
|
||
CargarSubProyecto(DdlSubproyecto, DdlProyecto.SelectedValue, "Todos")
|
||
End Sub
|
||
|
||
Private Sub CargaDatos()
|
||
|
||
|
||
FechaI = String.Format("01/{0}/{1}", DdlPeriodo.SelectedValue.PadLeft(2, CChar("0")), DdlEjercicio.SelectedValue)
|
||
FechaF = DateAdd(DateInterval.Day, -1, DateAdd(DateInterval.Month, 1, CDate(FechaI))).ToString("dd/MM/yyyy")
|
||
Dim TipoReporte = DdlTipoReporte.SelectedValue.ToEntero 'If(ReporteComplementario, DdlTipoReporte.SelectedValue.ToEntero, 1)
|
||
Dim CveSubProyecto As Integer = DdlSubproyecto.SelectedValue.ToEntero
|
||
Dim CveProyecto As Integer = DdlProyecto.SelectedValue.ToEntero
|
||
|
||
'Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa)
|
||
Dim ObjConta As New ClsContabilidad
|
||
If ObjConta.GetEstadoActividades(FechaI.ToDate, FechaF.ToDate, TipoReporte, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa) Then
|
||
DtDatos = ObjConta.DtResultados.FiltraParametros("(ImporteActual <> 0 OR ImporteAcumulado <> 0)")
|
||
Else
|
||
DtDatos = Nothing
|
||
Alert("Ocurrio un error al cargar los datos del Estado de Actividades", TipoMensaje.MsgError)
|
||
End If
|
||
ObjConta.Dispose()
|
||
|
||
If DtDatos IsNot Nothing Then
|
||
CargaGrids()
|
||
SumaTotales()
|
||
End If
|
||
|
||
End Sub
|
||
Private Sub CargaGrids()
|
||
DtIngresos = DtDatos.FiltraParametros("Tipo ='H' ")
|
||
DtGastos = DtDatos.FiltraParametros("Tipo ='G' ")
|
||
Dim Row As DataRow = DtIngresos.NewRow
|
||
|
||
|
||
Dim TotalActual = 0.0, TotalAnterior = 0.0
|
||
If DtIngresos.Rows.Count > 0 Then
|
||
|
||
For Each dr As DataRow In DtIngresos.FiltraParametros("NOT CtaMayor in (3,4)").Rows
|
||
TotalActual += dr("ImporteActual").ToString.ToDouble
|
||
TotalAnterior += dr("ImporteAcumulado").ToString.ToDouble
|
||
Next
|
||
|
||
Row.Item("Nombre") = "TOTAL INGRESOS "
|
||
Row.Item("ImporteActual") = TotalActual.ToString
|
||
Row.Item("PorcentajeActual") = "100.00"
|
||
Row.Item("ImporteAcumulado") = TotalAnterior.ToString
|
||
Row.Item("PorcentajeAcumulado") = "100.00"
|
||
Row.Item("CtaMayor") = -1
|
||
DtIngresos.Rows.Add(Row)
|
||
Else
|
||
Row.Item("Nombre") = "TOTAL INGRESOS "
|
||
Row.Item("ImporteActual") = "0.00"
|
||
Row.Item("ImporteAcumulado") = "0.00"
|
||
Row.Item("CtaMayor") = -1
|
||
DtIngresos.Rows.Add(Row)
|
||
End If
|
||
|
||
Dim T1 = TotalActual, T2 = TotalAnterior
|
||
|
||
TotalActual = 0
|
||
TotalAnterior = 0
|
||
|
||
Row = DtGastos.NewRow
|
||
If DtGastos.Rows.Count > 0 Then
|
||
|
||
For Each dr As DataRow In DtGastos.FiltraParametros("NOT CtaMayor in (3,4)").Rows
|
||
TotalActual += dr("ImporteActual").ToString.ToDouble
|
||
TotalAnterior += dr("ImporteAcumulado").ToString.ToDouble
|
||
Next
|
||
|
||
Row.Item("Nombre") = "TOTAL GASTOS"
|
||
Row.Item("ImporteActual") = TotalActual
|
||
Row.Item("PorcentajeActual") = If(T1 > 0, (TotalActual * 100 / T1).ToString, "0").FormatoNumero
|
||
Row.Item("ImporteAcumulado") = TotalAnterior.ToString
|
||
Row.Item("PorcentajeAcumulado") = If(T2 > 0, (TotalAnterior * 100 / T2).ToString, "0").FormatoNumero
|
||
Row.Item("CtaMayor") = -1
|
||
DtGastos.Rows.Add(Row)
|
||
Else
|
||
Row.Item("Nombre") = "TOTAL GASTOS"
|
||
Row.Item("ImporteActual") = "0.00"
|
||
Row.Item("ImporteAcumulado") = "0.00"
|
||
Row.Item("CtaMayor") = -1
|
||
DtGastos.Rows.Add(Row)
|
||
End If
|
||
|
||
|
||
GvIngresos.DataSource = DtIngresos
|
||
GvIngresos.DataBind()
|
||
|
||
GvGastos.DataSource = DtGastos
|
||
GvGastos.DataBind()
|
||
|
||
UpDatos.Update()
|
||
|
||
End Sub
|
||
|
||
Protected Sub Imprimir_click(sender As Object, e As EventArgs) Handles Imprimir.Click
|
||
ImprimirReporte()
|
||
End Sub
|
||
|
||
Private Sub SumaTotales()
|
||
'Llena Lb´s Totales
|
||
LbTotalActual.Text = TotalActual.ToString.FormatoNumero
|
||
LbTotalAnterior.Text = TotalAnterior.ToString.FormatoNumero
|
||
|
||
LbTotalActual.ForeColor = If(TotalActual < 0, Drawing.Color.Red, Color.Black)
|
||
|
||
LbTotalAnterior.ForeColor = If(TotalAnterior < 0, Drawing.Color.Red, Color.Black)
|
||
|
||
|
||
End Sub
|
||
|
||
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
||
TotalActual = 0
|
||
TotalAnterior = 0
|
||
|
||
CargaDatos()
|
||
End Sub
|
||
|
||
|
||
#Region "GV´S ROW DATA BOUND"
|
||
|
||
Protected Sub GvIngresos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
|
||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||
If e.Row.DBCampo("CtaMayor").ToString.ToEntero < 0 Then
|
||
TotalActual += e.Row.DBCampo("ImporteActual").ToString.ToDouble
|
||
TotalAnterior += e.Row.DBCampo("ImporteAcumulado").ToString.ToDouble
|
||
'e.Row.ControlStyle.BackColor = Drawing.Color.LightGray
|
||
'e.Row.ControlStyle.ForeColor = Drawing.Color.White
|
||
e.Row.ControlStyle.Font.Bold = True
|
||
ElseIf e.Row.DBCampo("CtaMayor").ToString.Contiene("3", "4") Then
|
||
'e.Row.CssClass = "SubTotales3"
|
||
e.Row.ControlStyle.Font.Bold = True
|
||
End If
|
||
|
||
If e.Row.DBCampo("CtaMayor").ToString.ToEntero > 0 Then
|
||
e.Row.FCHyperLink("HLActual").NavigateUrl = String.Format("/Contabilidad2/RepAnexoCatalogo.aspx?CveCuenta={0}&FF={1}&FI={2}&ER=1&CveProyecto={3}&CveSubProyecto={4}", e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("FechaFActual").ToDate.ToShortDateString, e.Row.DBCampo("FechaInicial").ToDate.ToShortDateString, DdlProyecto.SelectedValue, DdlSubproyecto.SelectedValue)
|
||
e.Row.FCHyperLink("HLAnterior").NavigateUrl = String.Format("/Contabilidad2/RepAnexoCatalogo.aspx?CveCuenta={0}&FF={1}&FI={2}&ER=1&CveProyecto={3}&CveSubProyecto={4}", e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("FechaFActual").ToDate.ToShortDateString, e.Row.DBCampo("FechaInicial").ToDate.ToShortDateString, DdlProyecto.SelectedValue, DdlSubproyecto.SelectedValue)
|
||
End If
|
||
|
||
|
||
|
||
If e.Row.DBCampo("ImporteActual").ToString.ToDouble < 0 Then
|
||
e.Row.FCHyperLink("HLActual").ForeColor = Drawing.Color.Red
|
||
End If
|
||
If e.Row.DBCampo("ImporteAcumulado").ToString.ToDouble < 0 Then
|
||
e.Row.FCHyperLink("HLAnterior").ForeColor = Drawing.Color.Red
|
||
End If
|
||
End If
|
||
End Sub
|
||
|
||
Protected Sub GvGastos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
|
||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||
If e.Row.DBCampo("CtaMayor").ToString.ToEntero < 0 Then
|
||
TotalActual -= e.Row.DBCampo("ImporteActual").ToString.ToDouble
|
||
TotalAnterior -= e.Row.DBCampo("ImporteAcumulado").ToString.ToDouble
|
||
'e.Row.ControlStyle.BackColor = Drawing.Color.LightGray
|
||
'e.Row.ControlStyle.ForeColor = Drawing.Color.White
|
||
e.Row.ControlStyle.Font.Bold = True
|
||
ElseIf e.Row.DBCampo("CtaMayor").ToString.Contiene("3", "4") Then
|
||
'e.Row.CssClass = "SubTotales"
|
||
e.Row.ControlStyle.Font.Bold = True
|
||
End If
|
||
|
||
If e.Row.DBCampo("CtaMayor").ToString.ToEntero > 0 Then
|
||
e.Row.FCHyperLink("HLActual").NavigateUrl = String.Format("/Contabilidad2/RepAnexoCatalogo.aspx?CveCuenta={0}&FF={1}&FI={2}&ER=1&CveProyecto={3}&CveSubProyecto={4}", e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("FechaFActual").ToDate.ToShortDateString, e.Row.DBCampo("FechaInicial").ToDate.ToShortDateString, DdlProyecto.SelectedValue, DdlSubproyecto.SelectedValue)
|
||
e.Row.FCHyperLink("HLAnterior").NavigateUrl = String.Format("/Contabilidad2/RepAnexoCatalogo.aspx?CveCuenta={0}&FF={1}&FI={2}&ER=1&CveProyecto={3}&CveSubProyecto={4}", e.Row.DBCampo("CveCuenta"), e.Row.DBCampo("FechaFActual").ToDate.ToShortDateString, e.Row.DBCampo("FechaInicial").ToDate.ToShortDateString, DdlProyecto.SelectedValue, DdlSubproyecto.SelectedValue)
|
||
End If
|
||
|
||
If e.Row.DBCampo("ImporteActual").ToString.ToDouble < 0 Then
|
||
e.Row.FCHyperLink("HLActual").ForeColor = Drawing.Color.Red
|
||
End If
|
||
If e.Row.DBCampo("ImporteAcumulado").ToString.ToDouble < 0 Then
|
||
e.Row.FCHyperLink("HLAnterior").ForeColor = Drawing.Color.Red
|
||
End If
|
||
End If
|
||
End Sub
|
||
|
||
#End Region
|
||
|
||
Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
|
||
ImprimirReporte("Excel")
|
||
End Sub
|
||
|
||
Private Sub ImprimirReporte(Optional Formato As String = "PDF")
|
||
Dim lrds As New List(Of ReportDataSource)
|
||
Dim rds As New ReportDataSource
|
||
rds.Name = "DataSet1"
|
||
rds.Value = DtIngresos
|
||
Dim rds2 As New ReportDataSource
|
||
rds2.Name = "DataSet2"
|
||
rds2.Value = DtGastos
|
||
lrds.Add(rds)
|
||
lrds.Add(rds2)
|
||
|
||
Dim params As New List(Of ReportParameter)
|
||
params.Add(New ReportParameter("TotalActual", TotalActual.ToString))
|
||
params.Add(New ReportParameter("TotalAnterior", TotalAnterior.ToString))
|
||
params.Add(New ReportParameter("lbTotalActual", LbTotalActual.Text))
|
||
params.Add(New ReportParameter("lbTotalAnterior", LbTotalAnterior.Text))
|
||
params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa))
|
||
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
|
||
params.Add(New ReportParameter("pImg", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
|
||
params.Add(New ReportParameter("pFirma1", ""))
|
||
params.Add(New ReportParameter("pFirma2", ""))
|
||
params.Add(New ReportParameter("periodo", String.Format("de {0} {1}", DdlPeriodo.SelectedItem.Text, DdlEjercicio.SelectedItem.Text)))
|
||
params.Add(New ReportParameter("SubProyecto", DdlSubproyecto.SelectedItem.Text))
|
||
|
||
ImprimirPDF("AC/Reportes/RepEstadoActividades.rdlc", lrds, params, "EstadoActividades", Formato)
|
||
End Sub
|
||
|
||
End Class
|