Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Imports System.Linq Partial Class Bancos_RepEgresosSinComprobante Inherits ClsPaginas #Region " PROPIEDADES " Private Property DtDatos As DataTable Get Return CType(ViewState("DtDatos"), DataTable) End Get Set(value As DataTable) ViewState("DtDatos") = value End Set End Property Private Property DtFuncionariosEmpleados As DataTable Get Return CType(ViewState("DtFuncionariosEmpleados"), DataTable) End Get Set(value As DataTable) ViewState("DtFuncionariosEmpleados") = 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 DdlUsuarioResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa, "Nombre") DdlUsuarioResponsable.DataBind() If UsuarioActual.TienePermisoProceso(91) Then DdlUsuarioRegistro.DataSource = GlobalDTUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa), "Nombre") DdlUsuarioRegistro.DataBind() DdlUsuarioRegistro.Items.Insert(0, New ListItem("Todos", "-1")) Else DdlUsuarioRegistro.DataSource = GlobalDTUsuarios(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) DdlUsuarioRegistro.DataBind() End If DdlProveedoresClasificaciones.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa) DdlProveedoresClasificaciones.DataBind() DdlMoneda.DataSource = GlobalDTMonedas DdlMoneda.DataBind() DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros("Tipo='Egs'") DdlTipoTransaccion.DataBind() DdlUsuarioSolicito.DataSource = GlobalDTUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa), "Nombre") DdlUsuarioSolicito.DataBind() CargaDatos() End If End Sub Private Sub CargaDatos() Dim Mov As New ClsMovimientos Dim FechaI, FechaF As String If txtFechaI.Text <> "" Then FechaI = txtFechaI.Text Else FechaI = "-1" If txtFechaF.Text <> "" Then FechaF = txtFechaF.Text Else FechaF = "-1" If Mov.GetEgresosSinComprobar(FechaI, FechaF, DdlProveedores.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero, DdlProveedoresClasificaciones.SelectedValue.ToEntero, DdlUsuarioRegistro.SelectedValue.ToEntero, DdlUsuarioResponsable.SelectedValue.ToEntero, DdlMoneda.SelectedValue.ToEntero, If(ChkSaldo.Checked, 1, 0), UsuarioActual.CveEmpresa, DdlTipoTransaccion.SelectedValue.ToEntero, DdlUsuarioSolicito.SelectedValue.ToEntero) Then DtDatos = Mov.DtResultados CargaGrid("") CargaGridPersonal("") UPDatos.Update() upDatosPersonal.Update() End If Mov.Dispose() End Sub Protected Sub BtnCargarProveedores_Click(sender As Object, e As System.EventArgs) Handles BtnCargarProveedores.Click DdlProveedores.CssClass += " select2me" DdlProveedores.Items.Clear() DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() DdlProveedores.Items.Insert(0, New ListItem("Todos", "-1")) DdlProveedores.Attributes.Remove("onclick") End Sub Protected Sub GvESC_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvESC.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("CveProveedor") = "" Then e.Row.BackColor = Drawing.Color.LightGray e.Row.FCHyperLink("Hpl").NavigateUrl = "" e.Row.FCHyperLink("Hpl").Font.Bold = True e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center End If If e.Row.RowIndex = 1 Then e.Row.Cells(1).Width = Unit.Pixel(520) e.Row.Cells(2).Width = Unit.Pixel(50) e.Row.Cells(3).Width = Unit.Pixel(100) e.Row.Cells(4).Width = Unit.Pixel(150) e.Row.Cells(6).Width = Unit.Pixel(100) End If 'Sustituido 3-5 lineas mas abajo 'If e.Row.DBCampo("FechaDocumento") = "" Then e.Row.BackColor = Drawing.Color.LightGray 'CUANDO ES SUBTITULO If e.Row.DBCampo("CveIE") = "" Then If e.Row.DBCampo("CveMoneda") = "" Then e.Row.CssClass = "SubTotales2" Else e.Row.CssClass = "SubTotales" e.Row.FCLiteral("LtMoneda").Visible = True e.Row.FCHyperLink("Hpl").Visible = False End If End If 'LINK A IE If e.Row.DBCampo("Folio") <> "" Then e.Row.FCHyperLink("HLFolio").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")) End If If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(1).ForeColor = Drawing.Color.Red ' e.Row.FCHyperLink("ImgAbonar").NavigateUrl = String.Format("/Bancos/ProveedoresAbonar.aspx?CveProveedor={0}&FechaI={1}&FechaF={2}&CveUsuarioProgramo={3}&CveMoneda={4}&Serie={5}", e.Row.DBCampo("CveProveedor"), If(txtFechaI.Text <> "", txtFechaI.Text, "-1"), If(txtFechaF.Text <> "", txtFechaF.Text, "-1"), DdlUsuarioProgramo.SelectedValue, e.Row.DBCampo("CveMoneda"), e.Row.DBCampo("Serie")) End If End Sub Protected Sub GvPersonal_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPersonal.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("CvePersonal") = "" Then e.Row.BackColor = Drawing.Color.LightGray ' e.Row.FCHyperLink("ImgAbonar").Visible = False e.Row.FCHyperLink("Hpl").NavigateUrl = "" e.Row.FCHyperLink("Hpl").Font.Bold = True e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center End If If e.Row.RowIndex = 1 Then e.Row.Cells(1).Width = Unit.Pixel(440) End If 'If e.Row.DBCampo("FechaDocumento") = "" Then e.Row.BackColor = Drawing.Color.LightGray If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(1).ForeColor = Drawing.Color.Red ' e.Row.FCHyperLink("ImgAbonar").NavigateUrl = String.Format("/Bancos/ProveedoresAbonar.aspx?CveProveedor={0}&FechaI={1}&FechaF={2}&CveUsuarioProgramo={3}&CveMoneda={4}&Serie={5}", e.Row.DBCampo("CveProveedor"), If(txtFechaI.Text <> "", txtFechaI.Text, "-1"), If(txtFechaF.Text <> "", txtFechaF.Text, "-1"), DdlUsuarioProgramo.SelectedValue, e.Row.DBCampo("CveMoneda"), e.Row.DBCampo("Serie")) End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click CargaDatos() End Sub Private Sub CargaGrid(Orden As String) GvESC.DataSource = DtDatos.FiltraParametros("CveProveedor IS NOT NULL", Orden) GvESC.DataBind() End Sub Private Sub CargaGridPersonal(Orden As String) Dim Mov As New ClsMovimientos If Mov.GetEgresosSinComprobarPersonal(UsuarioActual.CveEmpresa) Then GvPersonal.DataSource = Mov.DtResultados DtFuncionariosEmpleados = Mov.DtResultados End If Mov.Dispose() GvPersonal.DataBind() End Sub Private Sub LnkHabilitarSaldar_Click(sender As Object, e As EventArgs) Handles LnkHabilitarSaldar.Click For Each gr As GridViewRow In GvESC.Rows If gr.DataKey("CveIE") <> "" Then gr.FCCheckBox("Chk").Visible = True LnkSaldar.Visible = True LnkHabilitarSaldar.Visible = False UPDatos.Update() End If Next End Sub Private Sub LnkHabilitarSaldoFyE_Click(sender As Object, e As EventArgs) Handles LnkHabilitarSaldarFyE.Click For Each gr As GridViewRow In GvPersonal.Rows If gr.DataKey("CvePersonal") <> "" Then gr.FCCheckBox("Chk").Visible = True LnkSaldarFyE.Visible = True LnkHabilitarSaldarFyE.Visible = False upDatosPersonal.Update() End If Next End Sub Protected Sub LnkSaldar_Click(sender As Object, e As EventArgs) Dim ObjConta As New ClsContabilidad Dim ObjProveedor As New ClsCompProveedores(ObjConta.IniciaTransacSQL()) Dim EsContabilizable As Boolean = If(UsuarioActual.CveEmpresa.Contiene(13, 83), False, True) Dim CvePrePoliza As Integer = 0 Dim MsgError As String = "" Try For Each gr As GridViewRow In GvESC.Rows If gr.FCCheckBox("Chk").Checked Then Dim IdCtaContable As Integer = 0 Dim TipoMovtoOtIngresos As Boolean = True Dim TipoMovtoConcepto As Boolean = False Dim CveConceptoContable As Integer Select Case gr.DataKey("CveConceptoContable").ToEntero Case 10 CveConceptoContable = 21 Case 28 CveConceptoContable = 29 TipoMovtoOtIngresos = False TipoMovtoConcepto = True Case 37 CveConceptoContable = 43 Case 42 CveConceptoContable = 41 Case 43 CveConceptoContable = 37 End Select If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, gr.DataKey("CveProveedor").ToEntero, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then If ObjProveedor.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjProveedor.IdCtaContProveedores End If End If CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, gr.DataKey("CveMoneda").ToEntero, Now, "Saldo de ExC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, gr.DataKey("Saldo").ToDecimal, "", CveConceptoContable, "Saldo de ExC por Sistema", Now, IdCtaContable, -1, gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero, ImporteMX:=gr.DataKey("Saldo").ToDecimal, Contabilizable:=EsContabilizable) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For End If If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtIngresos, gr.DataKey("Saldo").ToDecimal, "", 78, "Saldo de ExC por Sistema", Now, UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, gr.DataKey("CveIE").ToEntero, ImporteMX:=gr.DataKey("Saldo").ToDecimal, CveSubProyecto:=gr.DataKey("CveSubProyecto").ToEntero, Contabilizable:=EsContabilizable) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For End If If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) End If End If End If Next Catch ex As Exception MsgError = "Ocurrió un error al generar la prepoliza" OnError(MsgError, ex) End Try If MsgError = "" Then ObjConta.Commit() CargaDatos() Alert("Los movimientos se saldaron correctamente.") Else ObjConta.RollBack() Alert(MsgError, TipoMensaje.MsgError) End If LnkSaldar.Visible = False LnkHabilitarSaldar.Visible = True ObjConta.Dispose() ObjProveedor.Dispose() End Sub Protected Sub LnkSaldarFyE_Click(sender As Object, e As EventArgs) Dim ObjConta As New ClsContabilidad ObjConta.IniciaTransacSQL() Dim CvePrePoliza As Integer = 0 Dim MsgError As String = "" Try For Each gr As GridViewRow In GvPersonal.Rows If gr.FCCheckBox("Chk").Checked Then Dim IdCtaContPersonal As Integer = 0 Dim CveConceptoContable As Integer Dim TipoMovtoOtIngresos As Boolean = True Dim TipoMovtoConcepto As Boolean = False Select Case gr.DataKey("CveConceptoContable").ToEntero Case 10 CveConceptoContable = 21 Case 28 CveConceptoContable = 29 TipoMovtoOtIngresos = False TipoMovtoConcepto = True Case 37 CveConceptoContable = 43 Case 42 CveConceptoContable = 41 Case 43 CveConceptoContable = 37 End Select If ObjConta.GetRetCuenta(CveConceptoContable, gr.DataKey("CvePersonal").ToEntero) Then If ObjConta.DtResultados.Rows.Count > 0 Then IdCtaContPersonal = ObjConta.DtResultados.Rows(0)("IdCtaContPersonal").ToString.ToEntero End If End If CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, gr.DataKey("CveMoneda").ToEntero, Now, "Saldo de ExC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, gr.DataKey("Saldo").ToDecimal, "", CveConceptoContable, "Saldo de ExC por Sistema", Now, -1, -1, gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero, ImporteMX:=gr.DataKey("Saldo").ToDecimal, CveSubProyecto:=-1) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For End If If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtIngresos, gr.DataKey("Saldo").ToDecimal, "", 78, "Saldo de ExC por Sistema", Now, -1, -1, gr.DataKey("CveIE").ToEntero, ImporteMX:=gr.DataKey("Saldo").ToDecimal, CveSubProyecto:=-1) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For End If If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) End If End If End If Next Catch ex As Exception MsgError = "Ocurrió un error al generar la prepoliza" OnError(MsgError, ex) End Try If MsgError = "" Then ObjConta.Commit() CargaDatos() Alert("Los movimientos se saldaron correctamente.") Else ObjConta.RollBack() Alert(MsgError, TipoMensaje.MsgError) End If LnkSaldarFyE.Visible = False LnkHabilitarSaldarFyE.Visible = True ObjConta.Dispose() End Sub #Region "IMPRESIONES" Private Sub ImprimirReportePdf(Archivo As String, DtDatos As DataTable, Optional Formato As String = "PDF") If DtDatos.Rows.Count > 0 Then Dim StrFiltro As New StringBuilder If txtFechaI.Text <> "" Then StrFiltro.AppendFormat(" Fecha Inicio : {0}", txtFechaI.Text.ToDate.ToShortDateString) If txtFechaF.Text <> "" Then StrFiltro.AppendFormat(" Fecha Fin : {0}", txtFechaF.Text.ToDate.ToShortDateString) Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim FechaI, FechaF As String FechaI = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", "-1", txtFechaI.Text) FechaF = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", "-1", txtFechaF.Text) Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", FechaI)) params.Add(New ReportParameter("FechaFin", FechaF)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("Filtros", StrFiltro.ToString)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF($"Empresas/Grales/Formatos/{Archivo}", DtDatos, params, String.Format("EgresosSinComprovante-{0}", Now.ToDateTime.ToShortDateString), Formato:=Formato) End If End Sub #Region "PROVEEDORES" Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click ImprimirReportePdf("RepEgresosSinComprobante.rdlc", DtDatos.FiltraParametros(" RazonSocial is not null "), "EXCEL") End Sub Private Sub LinkPDF_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click ImprimirReportePdf("RepEgresosSinComprobante.rdlc", DtDatos.FiltraParametros(" RazonSocial is not null ")) End Sub #End Region #Region "FUNCIONARIOS/EMPLEADOS" Protected Sub LnkExportarFuncionarios_Click(sender As Object, e As EventArgs) ImprimirReportePdf("RepEgresosSinComprobanteFuncionarios.rdlc", DtFuncionariosEmpleados, "EXCEL") End Sub Protected Sub LnkPDFFuncionarios_Click(sender As Object, e As EventArgs) ImprimirReportePdf("RepEgresosSinComprobanteFuncionarios.rdlc", DtFuncionariosEmpleados) End Sub #End Region #End Region End Class