Option Explicit On Option Strict On Imports System.Data Imports System.Windows.Forms.VisualStyles.VisualStyleElement Imports Extensiones Imports Microsoft.Reporting.WebForms 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(UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre") DdlUsuarioResponsable.DataBind() If UsuarioActual.TienePermisoProceso(91) Then DdlUsuarioRegistro.DataSource = GlobalDTUsuarios(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "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(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre") DdlUsuarioSolicito.DataBind() DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.SelectedText = "Todos" DdlProveedores.SelectedValue = "-1" CargaDatos() TxtConcepto.Text = "Saldado de Egresos por comprobar" CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubproyecto, AplicaTodos:="Selecione uno") 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, -1, 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 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 '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 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 UPDatos.Update() End If Next TxtConcepto.Text = "Saldado de Egresos por comprobar" TxtFechaSaldar.Text = NowADS().ToShortDateString DVSaldar.Visible = True UpSaldar.Update() 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 Contador As Integer = 0 For Each gr As GridViewRow In GvESC.Rows If gr.FCCheckBox("Chk").Checked Then Contador += 1 End If Next If Not Contador > 0 Then Alert("No se hay movimientos seleccionados") Exit Sub End If 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 If Contador > 0 Then Dim tFecha As Date = TxtFechaSaldar.Text.ToDate CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, 0, 0, 1, tFecha, TxtConcepto.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Dim ImporteSaldoGral As Decimal = 0 Dim TipoMovtoConcepto As Boolean = True For Each gr As GridViewRow In GvESC.Rows If gr.FCCheckBox("Chk").Checked Then Dim ImporteSaldo As Decimal = gr.DataKey("Saldo").ToDecimal Dim ConPrepAplicacion As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(11, gr.DataKey("CveMoneda").ToEntero, True, gr.DataKey("CveTipoProveedor").ToEntero) If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteSaldo, ImporteSaldo, ConPrepAplicacion.CveConcepto, gr.DataKey("Folio"), TxtConcepto.Text, CveIE:=gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, Contabilizable:=EsContabilizable) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For End If If gr.DataKey("CveMoneda").ToEntero > 1 Then Dim TCValuacion As Decimal = gr.DataKey("TipoCambio").ToDecimal If UsuarioActual.Empresa.Funcionalidad(703) = "1" Then Dim tFechaUltimaFluctuacion As Date Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) If UltimaFluctuacion IsNot Nothing Then If UltimaFluctuacion.FechaFluctuacion < tFecha Then tFechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion TCValuacion = UltimaFluctuacion.TCFluctuacion End If If gr.DataKey("FechaDocumento").ToDate < tFechaUltimaFluctuacion Then TCValuacion = TCValuacion End If End If Dim ImporteMN As Decimal = (ImporteSaldo * TCValuacion - ImporteSaldo).RoundSQL If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, ImporteMN, ImporteMN, ConPrepAplicacion.CveConceptoComplementario, gr.DataKey("Folio"), TxtConcepto.Text, CveIE:=gr.DataKey("CveIE").ToEntero, TipoCambio:=TCValuacion, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero, ImporteME:=gr.DataKey("Saldo").ToDecimal, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, Contabilizable:=EsContabilizable) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For End If ImporteSaldo += ImporteMN End If ImporteSaldoGral += ImporteSaldo End If Next If MsgError = "" Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoConcepto, ImporteSaldoGral, ImporteSaldoGral, 211, "", TxtConcepto.Text, CveIE:=-1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, Contabilizable:=EsContabilizable) Then MsgError = "Ocurrio un error al saldar el movimiento" End If If MsgError = "" AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then MsgError = "Error al validar." End If End If Else Alert("No se especificaron") End If Catch ex As Exception MsgError = "Ocurrió un error al generar la prepoliza" OnError(MsgError, ex) End Try If MsgError = "" Then 'LnkSaldar.Visible = False 'LnkHabilitarSaldar.Visible = True DVSaldar.Visible = False ObjConta.Commit() CargaDatos() Alert(String.Format("Los movimientos se saldaron correctamente
Ver Póliza", CvePrePoliza), TipoMensaje.MsgInformacion) Else ObjConta.RollBack() Alert(MsgError, TipoMensaje.MsgError) End If 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 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 CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, gr.DataKey("CveMoneda").ToEntero, NowADS(), "Saldo de ExC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, CveConceptoContable, "", "Saldo de ExC por Sistema", CveIE:=gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For End If If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtIngresos, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, 78, "", "Saldo de ExC por Sistema", gr.DataKey("CveIE").ToEntero) Then MsgError = "Ocurrio un error al saldar el movimiento" Exit For 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", NowADS().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}", NowADS().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