Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Conta_RepMovimientosAuxiliaresCatalogo 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 DtTotales As DataTable Get DtTotales = DirectCast(ViewState("DtTotales"), DataTable) End Get Set(ByVal value As DataTable) ViewState("DtTotales") = value End Set End Property Private Property FechaInicio As Date Get FechaInicio = ViewState("FechaInicio").ToString.ToDate End Get Set(value As Date) ViewState("FechaInicio") = value End Set End Property Private Property FechaFin As Date Get FechaFin = ViewState("FechaFin").ToString.ToDate End Get Set(value As Date) ViewState("FechaFin") = value End Set End Property Private Property TotalPadre As Boolean Get TotalPadre = CBool(ViewState("TotalPadre")) End Get Set(value As Boolean) ViewState("TotalPadre") = value End Set End Property Private Property DTCuentas As DataTable Get Return CType(ViewState("DTCuentas"), DataTable) End Get Set(value As DataTable) ViewState("DTCuentas") = value End Set End Property Private Property TipoReporte As String Get TipoReporte = ViewState("TP").ToString End Get Set(value As String) ViewState("TP") = value End Set End Property Private Property Cuenta As String Get Return ViewState("Cuenta").ToString End Get Set(value As String) ViewState("Cuenta") = 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.TipoContabilidad = 2 AndAlso UsuarioActual.CveEmpresa <> 119 Then ' Response.Redirect($"/Contabilidad/RepMovimientosAuxiliaresCatalogo.aspx") 'End If Dim ErrorParametros As Boolean = True CargaTipoCuentas() 'TxtCuenta.Enabled = False txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString txtFechaF.Text = Now.LastDayOfMonth.ToShortDateString If Request("CveCuenta") IsNot Nothing AndAlso IsNumeric(Request("CveCuenta")) AndAlso Request("CveCuenta").ToEntero > 0 Then If Request("FF") IsNot Nothing AndAlso Request("FF").ToString.Length = 10 AndAlso Request("FF").ToDate > "01/01/1000".ToDate Then FechaFin = Request("FF").ToDate txtFechaF.Text = FechaFin.ToShortDateString DdlCuentas.SelectedValueExist(Request("CveCuenta").ToEntero) If Request("FI") IsNot Nothing AndAlso Request("FI").ToString.Length = 10 AndAlso Request("FI").ToDate > "01/01/1000".ToDate Then FechaInicio = Request("FI").ToDate txtFechaI.Text = FechaInicio.ToShortDateString Else FechaInicio = DateSerial(Year(FechaFin), Month(FechaFin), 1) TxtFechaF.Text = FechaInicio.ToShortDateString End If If Request("CveProyecto") IsNot Nothing AndAlso IsNumeric(Request("CveProyecto")) Then DdlProyecto.SelectedValueExist(Request("CveProyecto")) DdlProyecto_SelectedIndexChanged(Nothing, Nothing) End If If Request("CveSubProyecto") IsNot Nothing AndAlso IsNumeric(Request("CveSubProyecto")) Then DdlSubproyecto.SelectedValueExist(Request("CveSubProyecto")) End If ErrorParametros = False If Request("TP") IsNot Nothing AndAlso IsNumeric(Request("TP")) AndAlso Request("TP").ToEntero > 0 Then TipoReporte = Request("TP").ToString ' DdlTipoReporte.SelectedValue = TipoReporte.ToString End If ''If DdlTipoCuentas.Items.FindByValue(IdCuenta.ToString) IsNot Nothing Then '' DdlTipoCuentas.SelectedValue = IdCuenta.ToString ''Else '' DdlTipoCuentas.SelectedValue = "-2" '' TxtCuenta.Enabled = True '' If DTCuentas.FiltraParametros(String.Format("Cvecuenta = {0}", IdCuenta)).Rows.Count > 0 Then '' TxtCuenta.Text = DTCuentas.FiltraParametros(String.Format("CveCuenta = {0}", IdCuenta)).Rows(0)("Codigo").ToString '' End If ''End If End If End If If Not ErrorParametros Then TotalPadre = True TipoReporte = "1" CargaDatos() End If End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) If DdlCuentas.SelectedValue.ToEntero = -1 Then Alert("El campo Cuenta es obligatorio.", TipoMensaje.MsgError) Else FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", Date.Now, txtFechaI.Text.ToDate) FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", Date.Now, txtFechaF.Text.ToDate) CargaDatos() End If ' Imprimir_click(sender, e) 'RegistraScript("Enable();") End Sub #Region "C A R G A - D A T O S" Public Function WSCuentas() As String Dim Str As New StringBuilder Dim i As Integer = 0 Dim dt As DataTable = DTCuentas For Each dr As DataRow In dt.Rows i += 1 Str.AppendFormat("{{value:""{0}"",label:""{1}""}}{2}", dr("CveCuenta"), dr("Codigo").ToString.Replace("""", ""), If(i < dt.Rows.Count, ",", "")) Next Return Str.ToString End Function Private Sub CargaTipoCuentas() Dim ObjTipoCuenta As New ClsContabilidad DdlCuentas.Enabled = True If ObjTipoCuenta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa) Then DTCuentas = ObjTipoCuenta.DtResultados DdlCuentas.DataSource = ObjTipoCuenta.DtResultados.FiltraParametros("Codigo NOT IN ('_ACTIVO', '_PASIVO', '_CAPITAL', '_CUADRE', '_ESTADISTICAS', '_ORDEN', '_RACREEDOR', '_RDEUDOR', '_UTILIDAD')") End If ObjTipoCuenta.Dispose() DdlCuentas.DataBind() CargarCentrosDeCosto(DdlProyecto, DdlSubproyecto, LblProyecto, LblSubProyecto, divProyecto:=divProyecto) 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() Dim CveProyecto As Integer = DdlProyecto.SelectedValue.ToEntero Dim CveSubProyecto As Integer = DdlSubproyecto.SelectedValue.ToEntero TipoReporte = DdlTipoReporte.SelectedValue.ToString If TipoReporte = "1" And DdlCuentas.SelectedValue.ToEntero < 0 Then Alert("No ha seleccionado cuenta, Favor de especificar una", TipoMensaje.MsgAdvertencia) Exit Sub End If Cuenta = DdlCuentas.SelectedItem.ToString Dim ObjConta As New ClsContabilidad If ObjConta.GetMovimientosAuxiliaresCatalogo(DdlCuentas.SelectedValue.ToEntero, FechaInicio, FechaFin, -1, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa, TipoReporte, DdlOpcionCuentas.SelectedValue.ToEntero) Then DtDatos = ObjConta.DtResultados DtTotales = DtDatos.Clone CargaGrid() Else DtDatos = Nothing End If ObjConta.Dispose() End Sub #End Region Private Sub InsertaTotales() Dim i As Integer = 0 Dim Aumento As Integer = 0 Dim Row As DataRow Dim Row2 As DataRow 'Llena DtTotales For Each dr As DataRow In DtDatos.Rows If dr("Concepto").ToString = "" Then Row = DtTotales.NewRow Row("CveCuenta") = -1 Row("CargosMovto") = If("1" = "1", dr("Cargos"), dr("CargosME")) Row("AbonosMovto") = If("1" = "1", dr("Abonos"), dr("AbonosME")) Row("Saldo") = dr("SaldoActual") Row("CtaMayor") = dr("CtaMayor") Row("Concepto") = String.Format("Total {0}:", dr("Nombre")) Row("Nombre") = dr("Nombre") DtTotales.Rows.Add(Row) Row("Clasificacion") = i End If i += 1 Next 'Inserta Totales en DtDatos For Each dr As DataRow In DtTotales.Rows i = 0 If dr("CtaMayor").ToString = "1" Then DtDatos.ImportRow(dr) End If If dr("CtaMayor").ToString = "2" Then For index As Integer = dr("Clasificacion").ToString.ToEntero + Aumento To DtDatos.Rows.Count If DtDatos.Rows(index)("Nombre").ToString <> dr("Nombre").ToString Then i = index Exit For End If Next Row2 = DtDatos.NewRow Row2.ItemArray = dr.ItemArray DtDatos.Rows.InsertAt(Row2, i + Aumento) Aumento += 1 End If Next End Sub #Region "G R I D - GV DATOS" Private Sub CargaGrid() GvDatos.DataSource = DtDatos 'GvDatos.Dispose() GvDatos.DataBind() UpDatos.Update() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("Concepto") = "" Then e.Row.ControlStyle.Font.Bold = True e.Row.ControlStyle.Height = 35 'Cuando es Titulo If e.Row.DBCampo("SaldoActual") = "" Then CType(e.Row.FindControl("tr2"), HtmlTableRow).Visible = False 'Cuando Es Total Else CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False 'Anterior para TotalPadre 'If e.Row.DBCampo("CtaMayor").ToString = "2" And (e.Row.DBCampo("Nivel3").ToString <> "" Xor e.Row.DBCampo("Orden").ToString.Length = 18) Then ' e.Row.FCLabel("LbReferencia").Text = "Total:" 'Else ' e.Row.FCLabel("LbConcepto").Text = String.Format("Total {0}:", e.Row.DBCampo("Nombre").ToString) 'End If If TotalPadre Then CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Width = "1px" 'CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells.Remove(CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3)) CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Align = "Right" CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(3).Width = "400px" If e.Row.RowIndex + 1 = DtDatos.Rows.Count Then CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(4).Attributes.Add("style", "border-top: 1px solid black;") CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(5).Attributes.Add("style", "border-top: 1px solid black;") CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(6).Attributes.Add("style", "border-top: 1px solid black;") End If e.Row.FCLabel("LbReferencia").Text = String.Format("Total {0}:", e.Row.DBCampo("Nombre").ToString) Else TotalPadre = True e.Row.FCLabel("LbReferencia").Font.Bold = False e.Row.FCLabel("LbReferencia").Text = "Total:" CType(e.Row.FindControl("tr2"), HtmlTableRow).Cells(4).Align = "Right" End If 'e.Row.FCLabel("LbReferencia").Text = String.Format("Total {0}:", If(e.Row.DBCampo("CtaMayor").ToString = "2", "", e.Row.DBCampo("Nombre").ToString)) e.Row.FCLabel("LbCargos").Text = e.Row.DBCampo("Cargos").ToString.FormatoNumero(If("1" = "1", 2, 4)) e.Row.FCLabel("LbAbonos").Text = e.Row.DBCampo("Abonos").ToString.FormatoNumero(If("1" = "1", 2, 4)) e.Row.FCLabel("LbSaldo").Text = e.Row.DBCampo("SaldoActual").ToString.FormatoNumero(If("1" = "1", 2, 4)) End If Else TotalPadre = False e.Row.ControlStyle.Font.Bold = False CType(e.Row.FindControl("tr1"), HtmlTableRow).Visible = False e.Row.FCHyperLink("HLPoliza").NavigateUrl = String.Format("/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={0}", e.Row.DBCampo("CvePoliza")) If e.Row.DBCampo("CargosMovto").ToDouble <> 0 Then e.Row.FCLabel("LbCargos").Text = e.Row.DBCampo("CargosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4)) If e.Row.DBCampo("AbonosMovto").ToDouble <> 0 Then e.Row.FCLabel("LbAbonos").Text = e.Row.DBCampo("AbonosMovto").ToString.FormatoNumero(If("1" = "1", 2, 4)) If e.Row.DBCampo("Saldo").ToDouble <> 0 Then e.Row.FCLabel("LbSaldo").Text = e.Row.DBCampo("Saldo").ToString.FormatoNumero(If("1" = "1", 2, 4)) End If 'COLOREA NEGATIVOS If e.Row.FCLabel("LbCargos").Text.ToDouble < 0 Then e.Row.FCLabel("LbCargos").ForeColor = Drawing.Color.Red Else e.Row.FCLabel("LbCargos").ForeColor = Drawing.Color.Black End If If e.Row.FCLabel("LbAbonos").Text.ToDouble < 0 Then e.Row.FCLabel("LbAbonos").ForeColor = Drawing.Color.Red Else e.Row.FCLabel("LbAbonos").ForeColor = Drawing.Color.Black End If If e.Row.FCLabel("LbSaldo").Text.ToDouble < 0 Then e.Row.FCLabel("LbSaldo").ForeColor = Drawing.Color.Red Else e.Row.FCLabel("LbSaldo").ForeColor = Drawing.Color.Black End If If e.Row.FCLabel("LbSaldoInicial").Text.ToDouble < 0 Then e.Row.FCLabel("LbSaldoInicial").ForeColor = Drawing.Color.Red Else e.Row.FCLabel("LbSaldoInicial").ForeColor = Drawing.Color.Black End If End If End Sub #End Region Protected Sub Imprimir_click(sender As Object, e As EventArgs) Handles Imprimir.Click If DdlCuentas.SelectedValue.ToEntero = -1 Then Alert("El campo Cuenta es obligatorio.", TipoMensaje.MsgError) Else FechaInicio = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", Date.Now, txtFechaI.Text.ToDate) FechaFin = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", Date.Now, txtFechaF.Text.ToDate) DtDatos = DtDatos ImprimirReporte() End If End Sub Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click ImprimirReporte("Excel") 'Dim htmlTabe As New HtmlTable 'Dim RutaLogo As String = $"{UsuarioActual.Empresa.Ruta}Logo.png" 'Dim strinLiteral As String = "" 'Dim EncabezadoLiteral As New LiteralControl 'If System.IO.File.Exists(RutaLogo) Then ' RutaLogo = $"http://{Request.Url.Host }/Empresas/{UsuarioActual.CveEmpresa}/Logo.png" ' strinLiteral = $" ' ' ' ' ' ' '

{UsuarioActual.Empresa.Empresa}
Movimientos Auxiliares del Catálogo

Fecha:{Now.ToString("dd/MM/yyyy")}
' Filtros Cuenta: {DdlCuentas.SelectedItem.Text} Fecha inicio: { TxtFechaDel.Text} Fecha Fin: {TxtFechaAl.Text} ' '
" 'Else ' strinLiteral = $" ' ' ' ' ' ' '

{UsuarioActual.Empresa.Empresa}
Movimientos Auxiliares del Catálogo

Fecha:{Now.ToString("dd/MM/yyyy")}
' Filtros Cuenta: {DdlCuentas.SelectedItem.Text} Fecha inicio: { TxtFechaDel.Text} Fecha Fin: {TxtFechaAl.Text} ' '
" 'End If 'EncabezadoLiteral.Text = strinLiteral 'GvDatos.ExportToExcel($"MovimientosAuxiliares_{Now.ToString("yyyyMMddmmss")}", Encabezado2:=EncabezadoLiteral) End Sub Private Sub ImprimirReporte(Optional Formato As String = "PDF") Dim params As New List(Of ReportParameter) 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("pFechaFin", FechaFin.ToString("dd/MM/yyyy"))) params.Add(New ReportParameter("pFechaInicio", FechaInicio.ToString("dd/MM/yyyy"))) params.Add(New ReportParameter("CveMoneda", "1")) params.Add(New ReportParameter("Cuenta", Cuenta)) ImprimirPDF("Empresas/Grales/Formatos/RepMovimientosAuxiliaresCatalogo.rdlc", DtDatos, params, "MovimientosAuxiliares", Formato) End Sub Public Overrides Sub VerifyRenderingInServerForm(control As Control) End Sub End Class