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(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(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 = Now.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 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 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