Option Explicit On Option Strict On Imports System.Data Imports Extensiones Partial Class Bancos_PopIECompras Inherits ClsPaginas #Region "Propiedades" Private Property DtDeudores As DataTable Get Return CType(ViewState("DtDeudores"), DataTable) End Get Set(value As DataTable) ViewState("DtDeudores") = value End Set End Property Private Property DtAcreedores As DataTable Get Return CType(ViewState("DtAcreedores"), DataTable) End Get Set(value As DataTable) ViewState("DtAcreedores") = value End Set End Property Private Property DtDeudoresDetalle As DataTable Get Return CType(ViewState("DtDeudoresDetalle"), DataTable) End Get Set(value As DataTable) ViewState("DtDeudoresDetalle") = value End Set End Property 'Configuración Private Property CveIE As Integer Get Return IfNull(ViewState("CveIE"), "0").ToString.ToEntero End Get Set(value As Integer) ViewState("CveIE") = value End Set End Property Private Property CveCompra As Integer Get Return ViewState("CveCompra").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCompra") = value End Set End Property Private Property CveTipoConcepto As Integer Get Return ViewState("CveTipoConcepto").ToString.ToEntero End Get Set(value As Integer) ViewState("CveTipoConcepto") = value End Set End Property Private Property IdPoliza As Integer Get Return ViewState("IdPoliza").ToString.ToEntero End Get Set(value As Integer) ViewState("IdPoliza") = value End Set End Property Private Property FechaCompra As Date Get Return ViewState("FechaCompra").ToString.ToDate End Get Set(value As Date) ViewState("FechaCompra") = value End Set End Property Private Property CveProveedor As Integer Get Return ViewState("CveProveedor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveProveedor") = value End Set End Property Private ReadOnly Property CtaProveedor As Integer Get Return ViewState("CtaProveedor").ToString.ToEntero End Get End Property Private ReadOnly Property CtaProveedorDeudores As Integer Get Return ViewState("CtaProveedorDeudores").ToString.ToEntero End Get End Property Private ReadOnly Property CtaProveedorAcreedores As Integer Get Return ViewState("CtaProveedorAcreedores").ToString.ToEntero End Get End Property Private Property IdCuentaBancaria As Integer Get Return ViewState("IdCuentaBancaria").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCuentaBancaria") = value End Set End Property Private Property IdCuentaBancariaComplementaria As Integer Get Return ViewState("IdCuentaBancariaComplementaria").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCuentaBancariaComplementaria") = value End Set End Property Private ReadOnly Property IdCtaContMonedaExtranjera As Integer Get Return ViewState("IdCtaContMonedaExtranjera").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContComplementaria As Integer Get Return ViewState("IdCtaContComplementaria").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaProveedorExtranjera As Integer Get Return ViewState("IdCtaProveedorExtranjera").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContRetIVA As Integer Get Return ViewState("IdCtaContRetIVA").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContRetISR As Integer Get Return ViewState("IdCtaContRetISR").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContRetIVAAcreditable As Integer Get Return ViewState("IdCtaContRetIVAAcreditable").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContRetISRAcreditable As Integer Get Return ViewState("IdCtaContRetISRAcreditable").ToString.ToEntero End Get End Property Private Property CveMoneda As Integer Get Return ViewState("CveMoneda").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMoneda") = value End Set End Property Private Property TipoTransaccion As String Get Return ViewState("TipoTransaccion").ToString End Get Set(value As String) ViewState("TipoTransaccion") = value End Set End Property Private Property SaldoVenta As Decimal Get Return ViewState("SaldoVenta").ToString.ToDecimal End Get Set(value As Decimal) ViewState("SaldoVenta") = value End Set End Property Private Property MovimientoPagar As IEMovimiento Get Return CType(ViewState("MovimientoPagar"), IEMovimiento) End Get Set(value As IEMovimiento) ViewState("MovimientoPagar") = value End Set End Property Private Property CompraActual As Compra Get Return CType(ViewState("CompraActual"), Compra) End Get Set(value As Compra) ViewState("CompraActual") = value End Set End Property Private Property ArrIE As ArrayList Get Return CType(ViewState("ArrIE"), ArrayList) End Get Set(value As ArrayList) ViewState("ArrIE") = value End Set End Property Private Property ArrIEFuncionariosEmpleados As ArrayList Get Return CType(ViewState("ArrIEFuncionariosEmpleados"), ArrayList) End Get Set(value As ArrayList) ViewState("ArrIEFuncionariosEmpleados") = value End Set End Property Private Property DTFuncionarioEmpleado As DataTable Get Return CType(ViewState("DTFuncionarioEmpleado"), DataTable) End Get Set(value As DataTable) ViewState("DTFuncionarioEmpleado") = value End Set End Property Private Property NombreProveedor As String Get Return ViewState("NombreProveedor").ToString End Get Set(value As String) ViewState("NombreProveedor") = value End Set End Property Private Property SerieFolio As String Get Return ViewState("SerieFolio").ToString End Get Set(value As String) ViewState("SerieFolio") = value End Set End Property Private Property CveMonedaCompra As Integer Get Return ViewState("CveMonedaVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMonedaVenta") = value End Set End Property Private Property TipoCambioOriginal As Decimal Get Return ViewState("TipoCambioOriginal").ToString.ToDecimal End Get Set(value As Decimal) ViewState("TipoCambioOriginal") = value End Set End Property Public Class Anticipos Public Property CveIE As Integer Public Property Importe As Decimal Public Property CvePersonal As Integer End Class Public Class IEMovimiento Public Property SubTotal As Decimal Public Property IVA As Decimal Public Property IVADeducible As Decimal Public Property IVANoDeducible As Decimal Public Property RetIVA As Decimal Public Property RetISR As Decimal Public Property Total As Decimal Public Property Saldo As Decimal Public Property IEPS As Decimal Public Property ConceptoRetIVA As Integer Public Property ConceptoRetISR As Integer Public Property PorcentajeIVA As Decimal Public Property IVAPorPagar As Decimal End Class Private Property CveMonedaFiltros As Integer Get Return ViewState("CveMonedaFiltros").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMonedaFiltros") = value End Set End Property Private Property RFCProveedor As String Get Return ViewState("RFCProveedor").ToString End Get Set(value As String) ViewState("RFCProveedor") = value End Set End Property Private Property IdCuentaCliente As Integer Get Return ViewState("IdCuentaCliente").ToString.ToEntero End Get Set(value As Integer) ViewState("IdCuentaCliente") = value End Set End Property Private ReadOnly Property IdCtaContRetIVACliente As Integer Get Return ViewState("IdCtaContRetIVACliente").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContComplementariaCliente As Integer Get Return ViewState("IdCtaContComplementariaCliente").ToString.ToEntero End Get End Property Private ReadOnly Property IdCtaContMonedaExtranjeraCliente As Integer Get Return ViewState("IdCtaContMonedaExtranjeraCliente").ToString.ToEntero End Get End Property Private ReadOnly Property NombreCliente As String Get Return ViewState("NombreCliente").ToString End Get End Property Private Property NotificarA As String Get If ViewState("NotificarA") Is Nothing Then Return "" Else Return ViewState("NotificarA").ToString End If End Get Set(value As String) ViewState("NotificarA") = value End Set End Property Private Property CveSubProyecto As Integer Get If ViewState("CveSubProyecto") Is Nothing Then Return -1 Else Return ViewState("CveSubProyecto").ToString.ToEntero End If End Get Set(value As Integer) ViewState("CveSubProyecto") = value End Set End Property Private Property EsImportacion As Boolean Get If ViewState("EsImportacion") Is Nothing Then Return False Else Return CBool(ViewState("EsImportacion")) End If End Get Set(value As Boolean) ViewState("EsImportacion") = value End Set End Property Private Property DtCheques As DataTable Get If ViewState("DtCheques") Is Nothing Then ViewState("DtCheques") = New DataTable End If Return CType(ViewState("DtCheques"), DataTable) End Get Set(value As DataTable) ViewState("DtCheques") = value End Set End Property #End Region Private Sub Bancos_PopIECompras_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then If Not UsuarioActual.Empresa.UsaAC Then ViewState("IdCtaContMonedaExtranjera") = 0 ViewState("IdCtaContComplementaria") = 0 ViewState("IdCtaContRetIVA") = 0 ViewState("IdCtaContRetISR") = 0 ViewState("IdCuentaBancaria") = 0 ViewState("IdCuentaBancariaComplementaria") = 0 ViewState("IdCtaAnticipo") = 0 ViewState("CtaProveedorDeudores") = 0 ViewState("CtaProveedorAcreedores") = 0 ViewState("CveCuentaProveedorDeudores") = 0 ViewState("NombreProveedor") = "" End If CType(Me.Master, BaseMasterPage).EsPopup = True CType(Me.Master, BaseMasterPage).PopupWidth = 750 RegistraScript("$get('tdContenido').style.height='350px'") CveProveedor = -1 CveCompra = -1 CveTipoConcepto = 1 IdPoliza = -1 CveMoneda = 0 TipoTransaccion = "Egs" MovimientoPagar = Nothing ArrIE = New ArrayList() ArrIEFuncionariosEmpleados = New ArrayList() RFCProveedor = "" TxtFechaDocumento.Text = Now.ToShortDateString If Request("CveProveedor") IsNot Nothing Then HdnCveProveedor.Value = Request("CveProveedor").ToString CveProveedor = Request("CveProveedor").ToString.ToEntero End If If Request("CveCompra") IsNot Nothing AndAlso IsNumeric(Request("CveCompra")) AndAlso Request("CveCompra").ToEntero > 0 Then CveCompra = Request("CveCompra").ToEntero CargaCompra(CveCompra) End If If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 72, 80, 122, 140, 141, 145) Then rowComisiones.Visible = True End If 'SI USUARIO USA AMORTIZACIÓN CONTABLE If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaAC Then Dim AC As New ClsAC If AC.GetPresupuestoIngresos(-1, -1, True, UsuarioActual.CveEmpresa) Then DdlFuenteRecaudacion.DataSource = AC.DtResultados() DdlFuenteRecaudacion.DataBind() ViewState("DTFuenteRecaudacion") = AC.DtResultados() End If TrFR.Visible = True AC.Dispose() End If CargaTipoTransaccion(TipoTransaccion) CargaCuentas() Dim ObjVentas As New ClsVentas If ObjVentas.GetVentas(UsuarioActual.CveEmpresa, "-1", "-1", -1, "-1", -1, -1, -1, -1, "-1", "-1", "-1", ClienteRFC:=RFCProveedor, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then RBLContado.Items(4).Enabled = True End If ObjVentas.Dispose() If CveMoneda = 2 Then ChkPagarPesos.Visible = True TxtTipoCambio.Text = GlobalTipoCambio(Now).FormatoNumero(4) Else ChkPagarDolares.Visible = True TxtTipoCambio.Text = GlobalTipoCambio(Now).FormatoNumero(4) End If UpDatos.Update() End If End Sub #Region "C A M B I A R P A N E L" Private Sub RBLContado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLContado.SelectedIndexChanged Select Case RBLContado.SelectedValue Case "1" ' Bancos PanelBancos.Visible = True PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = False PanelAcreedores.Visible = False PanelVentas.Visible = False TxtImporte.Text = SaldoVenta.FormatoNumero Case "2" ' F y E PanelBancos.Visible = False PanelFyE.Visible = True PanelIngresos.Visible = False PanelDeudores.Visible = False PanelAcreedores.Visible = False PanelVentas.Visible = False CargaFuncionariosEmpleados() TxtImporte.Text = SaldoVenta.FormatoNumero Case "3" 'Ingresos x Comprobar PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = True PanelDeudores.Visible = False PanelAcreedores.Visible = False PanelVentas.Visible = False CargaOtrosIngresos(CveMoneda) TxtImporte.Text = "0.00" Case "4" 'Deudores PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = True PanelAcreedores.Visible = False PanelVentas.Visible = False CargaDeudores(CveMoneda) TxtImporte.Text = "0.00" Case "5" ' Acreedores PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = False PanelAcreedores.Visible = True PanelVentas.Visible = False CargaAcreedores(CveMoneda) Case "6" 'Ventas PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = False PanelAcreedores.Visible = False PanelVentas.Visible = True CargaVentas(CveMoneda) TxtImporte.Text = "0.00" End Select End Sub #End Region #Region "C A R G A R I N F O R M A C I O N" Private Sub CargaCompra(pCveCompra As Integer) Dim ObjCompra As New ClsCompras() If ObjCompra.GetCompras(pCveCompra, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then If ObjCompra.DtResultados IsNot Nothing AndAlso ObjCompra.DtResultados.Rows.Count > 0 Then Dim dr As DataRow = ObjCompra.DtResultados.Rows(0) If UsuarioActual.Empresa.Funcionalidad(306) = "1" And dr("AplicaNotaCredito").ToString = "True" Then BtnGuardar.Enabled = False LbNANota.Visible = True End If 'Datos Generales de la Compra FechaCompra = dr("Fecha").ToString.ToDate Dim Validada As Boolean = False If Not UsuarioActual.Empresa.Funcionalidad(529) = "1" Then 'verificacion doble, si no la han cancelado, ya tiene una validaci[on para que llegue aqui Dim Valida As New ClsValidaCFDi(dr("UUID").ToString(), dr("RFC").ToString, UsuarioActual.Empresa.RFC, dr("Total").ToString.ToDecimal) If Valida.EsValida > 0 Then If Valida.EsValida = 2 Then Validada = False 'Dim ObjDatos As New ClsCompras 'If ObjDatos.UpdateEstatus(Valida.EsValida, gvr.DataKey("CveFactura").ToEntero) Then 'End If 'ObjDatos.Dispose() BtnGuardar.Enabled = False If UsuarioActual.Empresa.UsaAC Then RegistraScript("if (confirm('La factura está cancelada ante el SAT., ¿Desea eliminar la compra?')) { $get('BtnEliminarCompra').click();}") Else Alert("La factura está cancelada ante el SAT.", TipoMensaje.MsgError) End If Else Validada = True End If Else 'no se pudo validar, pero ya tuvo la primera vuelta de validacion Validada = True End If Valida.Dispose() Else Validada = True End If 'CargaProveedor CveProveedor = dr("CveProveedor").ToString.ToEntero HdnCveProveedor.Value = CveProveedor.ToString CargaProveedor(CveProveedor, "-1") CveMoneda = dr("CveMoneda").ToString.ToEntero CveTipoConcepto = dr("CveTipoConcepto").ToString.ToEntero CveMonedaCompra = dr("CveMoneda").ToString.ToEntero CveMonedaFiltros = dr("CveMoneda").ToString.ToEntero SerieFolio = dr("SerieFolio").ToString TipoCambioOriginal = dr("TipoCambioOriginal").ToString.ToDecimal NombreProveedor = dr("RazonSocial").ToString 'GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", String.Format("CveProveedor = {0}", CveProveedor)) CveSubProyecto = dr("CveSubProyecto").ToString.ToEntero LtlTitulo.Text = "Cuentas por Pagar" LtlTipo2.Text = "Folio" LtlTipo3.Text = "Fecha" LtlFechaVenta.Text = dr("Fecha").ToString.ToDate.ToShortDateString() LtlFolio.Text = dr("SerieFolio").ToString LtlSaldo.Text = If(CveMoneda = 1, $"{dr("Saldo").ToString.FormatoNumero}{" MXN"}", $"{dr("Saldo").ToString.FormatoNumero}{" USD"}") 'Configuración de Modalidad Update MovimientoPagar = New IEMovimiento MovimientoPagar.SubTotal = dr("SubTotal").ToString.ToDecimal MovimientoPagar.IVA = dr("IVA").ToString.ToDecimal MovimientoPagar.IVADeducible = dr("IVADeducible").ToString.ToDecimal.RoundSQL MovimientoPagar.IVANoDeducible = dr("IVANoDeducible").ToString.ToDecimal.RoundSQL MovimientoPagar.RetIVA = dr("RetIVA").ToString.ToDecimal MovimientoPagar.RetISR = dr("RetISR").ToString.ToDecimal MovimientoPagar.Total = dr("Total").ToString.ToDecimal MovimientoPagar.Saldo = dr("Saldo").ToString.ToDecimal MovimientoPagar.IEPS = dr("IEPS").ToString.ToDecimal MovimientoPagar.ConceptoRetIVA = dr("CveRetIVAConcepto").ToString.ToEntero MovimientoPagar.ConceptoRetISR = dr("CveRetISRConcepto").ToString.ToEntero MovimientoPagar.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal MovimientoPagar.IVAPorPagar = dr("IVAPorPagar").ToString.ToDecimal CompraActual = New Compra CompraActual.CveCompra = CveCompra CompraActual.CveTipoConceptoProveedor = dr("CveTipoConcepto").ToString.ToEntero CompraActual.CveProveedor = dr("CveProveedor").ToString.ToEntero CompraActual.CveMoneda = dr("CveMoneda").ToString.ToEntero CompraActual.Fecha = dr("Fecha").ToString.ToDate CompraActual.SerieFolio = dr("SerieFolio").ToString CompraActual.ProveedorNombre = TxtPagueseA.Text CompraActual.TC = dr("TipoCambio").ToString.ToDecimal CompraActual.Total = dr("Total").ToString.ToDecimal CompraActual.IVA = dr("IVA").ToString.ToDecimal CompraActual.IVADeducible = dr("IVADeducible").ToString.ToDecimal.RoundSQL CompraActual.IVANoDeducible = dr("IVANoDeducible").ToString.ToDecimal.RoundSQL CompraActual.IEPS = dr("IEPS").ToString.ToDecimal CompraActual.RetIVA = dr("RetIVA").ToString.ToDecimal CompraActual.RetISR = dr("RetISR").ToString.ToDecimal CompraActual.CveConceptoRetISR = dr("CveRetIVAConcepto").ToString.ToEntero CompraActual.CveConceptoRetIVA = dr("CveRetISRConcepto").ToString.ToEntero CompraActual.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal CompraActual.UsuarioActual = UsuarioActual CompraActual.CveSubProyecto = dr("CveSubProyecto").ToString.ToEntero CompraActual.IdCtaContableProv = CtaProveedor CompraActual.IdCtaContableProvComplementaria = IdCtaProveedorExtranjera CompraActual.EsImportacion = CBool(dr("EsImportacion")) CompraActual.CompraNoDeducible = dr("NoDeducible").ToString.ToEntero If Validada Then TxtFolio.Enabled = True TxtFechaDocumento.Enabled = True Calendario.Enabled = True TxtPagueseA.Enabled = False TxtImporte.Enabled = True DdlCuenta.Enabled = True DdlTipoTransaccion.Enabled = True TxtObservaciones.Enabled = True BtnGuardar.Visible = True 'RVImporte.Enabled = True 'RVImporte.Enabled = True 'RVImporte.MaximumValue = dr("Saldo").ToString.ToDecimal.ToString.FormatoNumero TxtImporte.Text = dr("Saldo").ToString.ToDecimal.FormatoNumero SaldoVenta = dr("Saldo").ToString.ToDecimal EsImportacion = CBool(dr("EsImportacion")) End If End If End If ObjCompra.Dispose() End Sub Private Sub CargaProveedor(ByVal CveProveedor As Integer, RFC As String) Dim ObjProveedor As New ClsCompProveedores() If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, CveProveedor, "-1", "-1", "-1", "-1", RFC, "-1", "-1", -1, UsuarioActual.CveEmpresa) Then If ObjProveedor.DtResultados.Rows.Count > 0 Then TxtPagueseA.Text = ObjProveedor.RazonSocial RFCProveedor = ObjProveedor.RFC 'Conta ContPAQ ViewState("CtaProveedor") = ObjProveedor.IdCtaContProveedores ViewState("CtaProveedorDeudores") = ObjProveedor.IdCtaContDeudor ViewState("CtaProveedorAcreedores") = ObjProveedor.IdCtaContAcreedor ViewState("IdCtaContRetISR") = ObjProveedor.IdCtaContRetISR ViewState("IdCtaContRetISRAcreditable") = ObjProveedor.IdCtaContRetISRAcreditable ViewState("IdCtaContRetIVA") = ObjProveedor.IdCtaContRetIVA ViewState("IdCtaContRetIVAAcreditable") = ObjProveedor.IdCtaContRetIVAAcreditable ViewState("IdCtaProveedorExtranjera") = ObjProveedor.IdCtaContProveedoresExtranjera ViewState("IdCtaContComplementaria") = ObjProveedor.IdCtaContProveedoresComplementaria Else Alert("El Proveedor solicitado no existe, por favor intente de nuevo.", TipoMensaje.MsgAdvertencia) End If End If ObjProveedor.Dispose() End Sub Private Sub CargaTipoTransaccion(Optional Tipo As String = "Egs") DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros(String.Format("Tipo = '{0}'", Tipo)) DdlTipoTransaccion.DataBind() DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1")) End Sub Private Sub CargaCuentas() DdlCuenta.Items.Clear() Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) 'dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMoneda)) If ChkPagarPesos.Checked Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 1)) RegistraScript("CambiaPesosDolares();") ElseIf ChkPagarDolares.Checked Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", 2)) RegistraScript("CambiaDolaresPesos();") Else If CveMoneda > 0 Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMoneda)) End If End If DdlCuenta.DataSource = dt DdlCuenta.DataBind() DdlCuenta.Items.Insert(0, New ListItem("Seleccione cuenta", "-1")) End Sub Private Sub CargaGridTarjetas() Dim ObjCreditos As New ClsBancos ObjCreditos.GetTarjetasCreditos(DdlCuenta.SelectedValue.ToEntero) DdlTarjeta.Items.Clear() DdlTarjeta.DataSource = ObjCreditos.DtResultados DdlTarjeta.DataBind() DdlTarjeta.Items.Insert(0, New ListItem("Seleccione", "-1")) ObjCreditos.Dispose() DivTarjeta.Visible = True End Sub Protected Sub CargaFuncionariosEmpleados() If CveCompra > 0 Then Dim objGastosXComprobar As New ClsMovimientos If objGastosXComprobar.GetEgresosSinComprobarPersonal(UsuarioActual.CveEmpresa) Then 'TRATAR DE HACERLO CON LINQ DTFuncionarioEmpleado = New DataTable DTFuncionarioEmpleado.Columns.Add("CvePersonal", GetType(Integer)) DTFuncionarioEmpleado.Columns.Add("NombreCompleto", GetType(String)) DTFuncionarioEmpleado.Columns.Add("CveIE", GetType(String)) For Each Row As DataRow In objGastosXComprobar.DtResultados.FiltraParametros($"CvePersonal > 0 AND CveMoneda = {CveMoneda}", "NombreCompleto").Rows Dim RowFE As DataRow = Nothing RowFE = DTFuncionarioEmpleado.NewRow() RowFE("CvePersonal") = Row("CvePersonal").ToString.ToEntero RowFE("NombreCompleto") = String.Format("{0} - ${1}", Row("NombreCompleto").ToString.Trim, Row("Saldo").ToString.FormatoNumero(2)) RowFE("CveIE") = Row("CveIE").ToString DTFuncionarioEmpleado.Rows.Add(RowFE) Next DdlFuncionarioEmpleado.DataSource = DTFuncionarioEmpleado DdlFuncionarioEmpleado.DataBind() DdlFuncionarioEmpleado.Items.Insert(0, New ListItem("Seleccione", "-1")) End If objGastosXComprobar.Dispose() End If End Sub Protected Sub CargaOtrosIngresos(Optional CveMoneda As Integer = 1) Dim IngresosXcomprobar As New ClsMovimientos DdlIngreso.Items.Clear() If IngresosXcomprobar.GetIngresosSaldos(-1, UsuarioActual.CveEmpresa) Then DtDeudores = IngresosXcomprobar.DtResultados.FiltraParametros($"CveCliente > 0 AND Saldo > 0 AND CveMoneda = {CveMoneda}") DdlIngreso.DataSource = DtDeudores DdlIngreso.DataBind() DdlIngreso.Items.Insert(0, New ListItem("Seleccione Ingreso", "-1")) UpDatos.Update() CambieIngreso() End If IngresosXcomprobar.Dispose() End Sub Protected Sub CargaDeudores(Optional CveMoneda As Integer = 1) Dim Deudores As New ClsMovimientos DdlDeudor.Items.Clear() If CveCompra > 0 Then If Deudores.GetDeudoresSaldos2(-1, UsuarioActual.CveEmpresa) Then DtDeudores = Deudores.DtResultados.FiltraParametros($"CveProveedor > 0 AND Saldo > 0 AND CveMoneda = {CveMoneda}") DdlDeudor.DataSource = DtDeudores DdlDeudor.DataBind() DdlDeudor.Items.Insert(0, New ListItem("Seleccione Deudor", "-1")) UpDatos.Update() CambieDeudor() End If End If Deudores.Dispose() End Sub Protected Sub CargaAcreedores(Optional CveMoneda As Integer = 1) Dim ObjMov As New ClsMovimientos If ObjMov.GetAcreedoresSaldos(-1, UsuarioActual.CveEmpresa) Then DtAcreedores = ObjMov.DtResultados.FiltraParametros($"CveProveedor > 0 AND CveMoneda = {CveMoneda}") DdlAcreedor.DataSource = DtAcreedores DdlAcreedor.DataBind() DdlAcreedor.Items.Insert(0, New ListItem("Seleccione Acreedor", "-1")) UpDatos.Update() CambieAcreedor() End If ObjMov.Dispose() End Sub Protected Sub CargaVentas(Optional CveMoneda As Integer = 1) Dim ObjMovtos As New ClsMovimientos Dim dtc As DataTable = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("RFC = '{0}'", RFCProveedor)) If dtc IsNot Nothing AndAlso dtc.Rows.Count = 1 Then Dim CveCliente As Integer = dtc.Rows(0)("CveCliente").ToString.ToEntero ViewState("IdCuentaCliente") = dtc.Rows(0)("IdCtaContClientes") ViewState("IdCtaContRetIVACliente") = dtc.Rows(0)("IdCtaContRetIVA") ViewState("IdCtaContRetISRCliente") = dtc.Rows(0)("IdCtaContRetISR") ViewState("IdCtaContComplementariaCliente") = dtc.Rows(0)("IdCtaContComplementaria") ViewState("IdCtaContMonedaExtranjeraCliente") = dtc.Rows(0)("IdCtaContMonedaExtranjera") ViewState("NombreCliente") = dtc.Rows(0)("Nombre") If ObjMovtos.GetCxCClienteDetalle(CveCliente, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, -1) Then GvVentas.DataSource = ObjMovtos.DtResultados.FiltraParametros($" Saldo > 0 AND CveVenta > 0 AND CveMoneda = {CveMoneda}") End If End If ObjMovtos.Dispose() GvVentas.DataBind() UpDatos.Update() End Sub Private Sub CambieIngreso() Dim stringDeudor As String = DdlIngreso.SelectedItem.ToString Dim SaldoD As Decimal = stringDeudor.Substring(stringDeudor.IndexOf("$") + 1, stringDeudor.Length - (stringDeudor.IndexOf("$") + 1)).ToDecimal If DdlIngreso.SelectedValue.ToEntero > 0 Then Dim Deudores As New ClsMovimientos If Deudores.GetIngresosSaldosDetalle(DdlIngreso.SelectedValue.ToEntero, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then DtDeudoresDetalle = Deudores.DtResultados.FiltraParametros("CveCliente > 0 AND Saldo > 0") GvIngresos.DataSource = DtDeudoresDetalle GvIngresos.DataBind() End If Deudores.Dispose() Else GvIngresos.DataSource = Nothing GvIngresos.DataBind() End If UpIngresos.Update() End Sub Private Sub CambieDeudor() Dim stringDeudor As String = DdlDeudor.SelectedItem.ToString Dim SaldoD As Decimal = stringDeudor.Substring(stringDeudor.IndexOf("$") + 1, stringDeudor.Length - (stringDeudor.IndexOf("$") + 1)).ToDecimal If DdlDeudor.SelectedValue.ToEntero > 0 Then Dim Deudores As New ClsMovimientos Dim OpcionSaldo As Integer = 1 If Deudores.GetDeudoresSaldosDetalle(DdlDeudor.SelectedValue.ToEntero, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then DtDeudoresDetalle = Deudores.DtResultados.FiltraParametros("CveProveedor > 0 AND Saldo > 0") GvDeudores.DataSource = DtDeudoresDetalle GvDeudores.DataBind() End If Deudores.Dispose() Else GvDeudores.DataSource = Nothing GvDeudores.DataBind() End If UpDeudores.Update() End Sub Private Sub CambieAcreedor() If DdlAcreedor.SelectedValue.ToEntero > 0 Then Dim dr As DataRow dr = DtAcreedores.FiltroPrimero(String.Format("CveProveedor = {0}", DdlAcreedor.SelectedValue)) If dr IsNot Nothing Then Dim tSaldo As Decimal = dr("Saldo").ToString.ToDecimal 'si el saldo es mayor de la compra poner el valor de la compra sino el valor del saldo TxtImporte.Text = If(tSaldo > TxtTotal.Text.ToDecimal, TxtTotal.Text, tSaldo.ToString).FormatoNumero Dim ObjMov As New ClsMovimientos If ObjMov.GetAcreedoresSaldosDetalles(-1, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then GvAcreedores.DataSource = ObjMov.DtResultados.FiltraParametros(String.Format("CveProveedor = {0}", DdlAcreedor.SelectedValue)) GvAcreedores.DataBind() End If ObjMov.Dispose() End If Else GvAcreedores.DataSource = Nothing GvAcreedores.DataBind() End If UpAcreedores.Update() End Sub Private Sub CargaCuentasDepositos() DdlCuentaDeposito.Items.Clear() If DdlTipoTransaccion.SelectedValue.Contiene("2", "9", "17") Then ' transferencias y layout trCuentaDeposito.Visible = False Dim dtc As DataTable = GlobalDTProveedoresCuentas(UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor) If dtc IsNot Nothing Then If DdlTipoTransaccion.SelectedValue = "9" Then DdlCuentaDeposito.DataSource = dtc.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'") If dtc.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'").Rows.Count > 0 Then trCuentaDeposito.Visible = True DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) Else BtnGuardar.Enabled = False Alert("El Beneficiario no tiene una cuenta activa en BBVA, dela de alta o seleccione otro método de pago", TipoMensaje.MsgAdvertencia) End If DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) ElseIf DdlTipoTransaccion.SelectedValue = "17" Then If dtc.Rows.Count > 0 Then DdlCuentaDeposito.DataSource = dtc trCuentaDeposito.Visible = True BtnGuardar.ToolTip = "" Else BtnGuardar.Enabled = False BtnGuardar.ToolTip = "El proveedor no tiene cuentas deposito" End If UpGuardar.Update() DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) Else DdlCuentaDeposito.DataSource = dtc.FiltraParametros("Estatus ='True'") If dtc.Rows.Count > 0 Then trCuentaDeposito.Visible = True DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) End If End If Else If DdlTipoTransaccion.SelectedValue.Contiene("9", "17") Then BtnGuardar.Enabled = False BtnGuardar.ToolTip = "El proveedor no tiene cuentas deposito" Else trCuentaDeposito.Visible = True BtnGuardar.Enabled = True BtnGuardar.ToolTip = "" End If UpGuardar.Update() End If DdlCuentaDeposito.DataBind() Else trCuentaDeposito.Visible = False DdlCuentaDeposito.Items.Clear() 'TrReferenciaCIE.Visible = False End If UpCuentaDeposito.Update() End Sub #End Region #Region "DDL'S CHANGED" Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged Dim valor As Integer = DirectCast(sender, DropDownList).SelectedValue.ToEntero Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing Select Case valor Case 1 LblPagueseA.Text = "Páguese a" Case 2 LblPagueseA.Text = "Beneficiario" End Select CargaCuentas() CargaCuentasDepositos() UpDatos.Update() End Sub Protected Sub DdlCuenta_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuenta.SelectedIndexChanged Dim Folio As Long Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue) Dim TCveMoneda = -1 If dr IsNot Nothing Then If ChkPagarPesos.Checked Then CveMoneda = 1 RegistraScript("CambiaPesosDolares();") Else CveMoneda = dr("CveMoneda").ToString.ToEntero RegistraScript("CambiaDolaresPesos();") End If IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero IdCuentaBancariaComplementaria = dr("IdCtaContableComplementaria").ToString.ToEntero If dr("UsaTarjeta").ToString = "True" Then CargaGridTarjetas() Else DivTarjeta.Visible = False End If End If If UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then Dim Banco As New ClsBancos Folio = Banco.GetNextFolio(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero) TxtFolio.Text = Folio.ToString Banco.Dispose() End If End Sub 'Private Sub DdlOtrosPagos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlOtrosPagos.SelectedIndexChanged ' Dim EsOtrosEgresos As Boolean = (DdlOtrosPagos.SelectedValue.Equals("2")) ' rowComision.Visible = EsOtrosEgresos ' rowTotal.Visible = EsOtrosEgresos ' TxtComision.Text = "0.00" ' TxtTotal.Text = TxtImporte.Text 'End Sub Private Sub ChkComisiones_CheckedChanged(sender As Object, e As EventArgs) Handles ChkComisiones.CheckedChanged Dim EsOtrosEgresos As Boolean = ChkComisiones.Checked rowComision.Visible = EsOtrosEgresos rowTotal.Visible = EsOtrosEgresos TxtComision.Text = "0.00" TxtTotal.Text = TxtImporte.Text End Sub Protected Sub DdlFuncionarioEmpleado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlFuncionarioEmpleado.SelectedIndexChanged ArrIEFuncionariosEmpleados = New ArrayList() ArrIE = New ArrayList() DtCheques = New DataTable 'Dim objGastosXComprobar As New ClsMovimientos Dim CvePersonal As Integer = DdlFuncionarioEmpleado.SelectedValue.ToEntero 'If objGastosXComprobar.GetEgresosSinComprobarPersonal(UsuarioActual.CveEmpresa) Then 'For Each Row As DataRow In objGastosXComprobar.DtResultados.FiltraParametros("CvePersonal > 0 AND FechaDocumento IS NOT NULL").Rows ' ArrIE.Add(New Anticipos With {.CveIE = Row("CveIE").ToString.ToEntero, .Importe = Row("Saldo").ToString.ToDecimal, .CvePersonal = Row("CvePersonal").ToString.ToEntero}) 'Next Dim ObjMovtos As New ClsMovimientos RowCheque.Visible = True ObjMovtos.GetEgresosSinComprobarPersonalDetalle(DdlFuncionarioEmpleado.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) DtCheques = ObjMovtos.DtResultados.FiltraParametros("CveIE > 0", "FechaDocumento, FolioFecha") 'Limpia Ddl Cheques DDlCheques.Items.Clear() If DtCheques.Rows.Count > 0 Then DDlCheques.DataSource = DtCheques End If ObjMovtos.Dispose() DDlCheques.DataBind() 'EstaAsociadoAPersonal = True DDlCheques_SelectedIndexChanged(DDlCheques, EventArgs.Empty) UpDatos.Update() 'End If End Sub Protected Sub DDlCheques_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDlCheques.SelectedIndexChanged 'Dim saldo As Double = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal Dim saldo As Double = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal 'TxtDocumentoImporteFE.Text = If(saldo < TxtTotal.Text.ToDouble, saldo.FormatoNumero, TxtTotal.Text) 'lblSaldoFE.Text = saldo.FormatoNumero If CveCompra > 0 Then 'Dim tSaldo As Decimal = DdlFuncionarioEmpleado.SelectedItem.Text.Split(CChar("-"))(1).ToDecimal If saldo < MovimientoPagar.Saldo Then TxtImporte.Text = saldo.FormatoNumero() Else TxtImporte.Text = MovimientoPagar.Saldo.FormatoNumero() End If End If UpDatos.Update() End Sub Private Sub DdlIngreso_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlIngreso.SelectedIndexChanged CambieIngreso() End Sub Private Sub DdlDeudor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlDeudor.SelectedIndexChanged CambieDeudor() End Sub Private Sub DdlAcreedor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAcreedor.SelectedIndexChanged CambieAcreedor() End Sub #End Region #Region "CHK TIPO CAMBIO" #Region "PAGAR CON PESOS" Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs) If ChkPagarPesos.Checked Then DivTipoCambio.Visible = True CargaCuentas() CargaOtrosIngresos(1) CargaDeudores(1) CargaAcreedores(1) CargaVentas(1) CveMonedaFiltros = 1 TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") TxtTipoCambio.Text = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).FormatoNumero(4) GvIngresos.Columns(5).Visible = True GvIngresos.Columns(6).Visible = True GvDeudores.Columns(5).Visible = True GvDeudores.Columns(6).Visible = True 'RVImporte.Enabled = False ' RVImporte.MaximumValue = "0.00" CVImporteDolares.Enabled = True Else DivTipoCambio.Visible = False CargaCuentas() CargaOtrosIngresos(2) CargaDeudores(2) CargaAcreedores(2) CargaVentas(2) CveMonedaFiltros = 2 TxtFechaDocumento.Attributes.Remove("onchange") GvIngresos.Columns(5).Visible = False GvIngresos.Columns(6).Visible = False GvDeudores.Columns(5).Visible = False GvDeudores.Columns(6).Visible = False 'RVImporte.Enabled = True 'RVImporte.MaximumValue = LtlSaldo.Text.ToDecimal.ToString CVImporteDolares.Enabled = False CVImportePesos.Enabled = False End If UpDatos.Update() RegistraScript("CambiaPesosDolares();") End Sub Protected Sub CVImporteDolares_ServerValidate(source As Object, args As ServerValidateEventArgs) If args.Value.ToString.Substring(0, args.Value.Length - 3).ToDecimal <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDecimal Then args.IsValid = True Else args.IsValid = False End If End Sub #End Region #Region "PAGAR CON DOLARES" Protected Sub ChkPagarDolares_CheckedChanged(sender As Object, e As EventArgs) If ChkPagarDolares.Checked Then DivTipoCambio.Visible = True CargaCuentas() CargaOtrosIngresos(2) CargaDeudores(2) CargaAcreedores(2) CargaVentas(2) CveMonedaFiltros = 2 TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") TxtTipoCambio.Text = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).FormatoNumero(4) GvIngresos.Columns(5).Visible = True GvIngresos.Columns(6).Visible = True GvDeudores.Columns(5).Visible = True GvDeudores.Columns(6).Visible = True 'RVImporte.Enabled = False 'RVImporte.MaximumValue = "0.00" CVImportePesos.Enabled = True Else DivTipoCambio.Visible = False CargaCuentas() CargaOtrosIngresos(1) CargaDeudores(1) CargaAcreedores(1) CargaVentas(1) CveMonedaFiltros = 1 TxtFechaDocumento.Attributes.Remove("onchange") GvIngresos.Columns(5).Visible = False GvIngresos.Columns(6).Visible = False GvDeudores.Columns(5).Visible = False GvDeudores.Columns(6).Visible = False ' RVImporte.Enabled = True 'RVImporte.MaximumValue = LtlSaldo.Text.ToDecimal.ToString CVImporteDolares.Enabled = False CVImportePesos.Enabled = False End If UpDatos.Update() RegistraScript("CambiaDolaresPesos();") End Sub Protected Sub CVImportePesos_ServerValidate(source As Object, args As ServerValidateEventArgs) If args.Value.ToString.Substring(0, args.Value.Length - 3).ToDecimal <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDecimal Then args.IsValid = True Else args.IsValid = False End If End Sub #End Region Protected Sub BtnCambiaTipoMoneda_Click(sender As Object, e As EventArgs) CambiaTipoMoneda() End Sub Private Sub CambiaTipoMoneda() If ChkPagarPesos.Visible Then TxtTipoCambio.Text = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).FormatoNumero(4) RegistraScript("CambiaPesosDolares();") End If If ChkPagarDolares.Visible Then TxtTipoCambio.Text = GlobalTipoCambio(TxtFechaDocumento.Text.ToDate).FormatoNumero(4) RegistraScript("CambiaDolaresPesos();") End If UpDatos.Update() End Sub #End Region #Region "GV ROW DATA BOUND" Private Sub GvIngresos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvIngresos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Decimal Dim saldo As Decimal saldo = e.Row.DataKey("Saldo").ToDecimal total = SaldoVenta e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo)) e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();") e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN") Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator) End If End Sub Private Sub GvDeudores_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDeudores.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Decimal Dim saldo As Decimal saldo = e.Row.DataKey("Saldo").ToDecimal total = SaldoVenta e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo)) e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();") e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN") Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator) End If End Sub Private Sub GvAcreedores_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvAcreedores.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Decimal Dim saldo As Decimal saldo = e.Row.DataKey("Saldo").ToDecimal total = SaldoVenta e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo)) e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();") e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN") Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator) End If End Sub Private Sub GvVentas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvVentas.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Decimal Dim saldo As Decimal saldo = e.Row.DataKey("Saldo").ToDecimal total = SaldoVenta e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("ClickDeudorChk(this, ""{0}"", ""{1}"", ""{2}"")", e.Row.FCTextBox("TxtSaldoDeudor").ClientID, total, saldo)) e.Row.FCTextBox("TxtSaldoDeudor").Attributes.Add("onKeyUp", "AjustaTextboxDeudores();") e.Row.FCTextBox("LbTipoMoneda").Text = If(e.Row.DataKey("CveMoneda").ToString.ToEntero = 1, "USD", " MXN") Dim rv As RangeValidator = CType(e.Row.FindControl("RVSaldoDeudor"), RangeValidator) End If End Sub #End Region #Region "G U A R D A R" Private Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click Dim FechaFactura As Date = FechaCompra Dim FechaDocumentoPago As Date = TxtFechaDocumento.Text.ToDate Dim AnioFactura As Integer = FechaFactura.Year Dim MesFactura As Integer = FechaFactura.Month Dim AnioDocumento As Integer = FechaDocumentoPago.Year Dim MesDocumento As Integer = FechaDocumentoPago.Month If AnioFactura > AnioDocumento Then Alert($"El mes de la fecha de compra no puede ser mayor al mes de la la fecha de pago
Fecha de compra: { FechaCompra.ToString("dd/MM/yyyy") }", TipoMensaje.MsgAdvertencia) Exit Sub ElseIf AnioFactura = AnioDocumento And MesFactura > MesDocumento Then Alert($"El mes de la fecha de compra no puede ser mayor al mes de la la fecha de pago
Fecha de compra: { FechaCompra.ToString("dd/MM/yyyy") }", TipoMensaje.MsgAdvertencia) Exit Sub End If 'VALIDACION PARA LOS IMPORTES CUANDO SE QUIERE PAGAR EN DIFERENTE MONEDA If Not Page.IsValid Then Exit Sub End If Dim dtc As DataTable = GlobalDTProveedoresCuentas(UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor, CveCuentaDeposito:=DdlCuentaDeposito.SelectedValue.ToEntero) If dtc IsNot Nothing Then Dim Row = dtc.FiltroPrimero("") If Row IsNot Nothing AndAlso Row("Estatus").ToString = "False" Then Alert("La cuenta depósito del proveedor esta inactiva.", TipoMensaje.MsgAdvertencia) Exit Sub End If End If Dim ImportePagado As Decimal = TxtImporte.Text.ToDecimal If ImportePagado <= 0 Then Alert("Debe ingresar un importe.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim MsgError As String = "" Dim CveProveedor2 As Integer = CveProveedor Dim Fecha As Date = TxtFechaDocumento.Text.Trim.ToDate Dim ObjIE As New ClsBancos() Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) Dim CvePlantillaPoliza As Integer = 2 Dim ConceptoPoliza As String = String.Format("{0} {1}", NombreProveedor, SerieFolio) Dim CveCuentaDeposito As Integer = If(DdlCuentaDeposito.Items.Count > 0, DdlCuentaDeposito.SelectedValue.ToEntero, 0) Dim FechaDocumento = FechaCompra 'Saca moneda en que se va a pagar segun metodo de pago Select Case RBLContado.SelectedValue Case "1" ' Banco If DdlCuenta.SelectedValue.ToEntero > 0 Then CveMoneda = GlobalDTBancosCuentas(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero End If Case "2", "3", "4", "5", "6" 'FyE, Ingresos, Deudores, Acreedores If ChkPagarDolares.Checked Then CveMoneda = 2 ElseIf ChkPagarPesos.Checked Then CveMoneda = 1 End If End Select 'cuando es pago con ventas, debe de ser de Diario Dim CveTipoPoliza As Integer = ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa) If RBLContado.SelectedValue = "6" Then CveTipoPoliza = 3 Dim CvePrePoliza As Integer = ObjMov.AddPrePolizas("Bancos/PopIECompras", CvePlantillaPoliza, ImportePagado, ImportePagado, CveMoneda, Fecha, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=CveTipoPoliza) Dim Pago As New CompraPago Pago.Fecha = TxtFechaDocumento.Text.ToDate Pago.CveMonedaPago = CveMoneda If ChkComisiones.Checked Then ImportePagado = TxtImporte.Text.Trim.ToDecimal.RoundSQL - TxtComision.Text.ToDecimal Else ImportePagado = TxtImporte.Text.Trim.ToDecimal.RoundSQL End If 'Tipos de cambio If Pago.CveMonedaPago = 1 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES Pago.TCPago = TxtTipoCambio.Text.ToDecimal ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES Pago.TCPago = TxtTipoCambio.Text.ToDecimal Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal End If If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal If TxtComision.Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Else Pago.OtroGastoIngreso = 0 Select Case RBLContado.SelectedValue Case "1" ' Bancos Dim ImporteBancos As Decimal = TxtImporte.Text.ToDecimal CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, Fecha, TxtFolio.Text.Trim, TxtPagueseA.Text.Trim, ImporteBancos, CveMoneda, 11, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaTarjeta:=If(DivTarjeta.Visible, DdlTarjeta.SelectedValue.ToEntero, -1), CveCuentaDeposito:=CveCuentaDeposito, Referencia:=If(TxtReferenciaCIE.Visible, TxtReferenciaCIE.Text, "-1"), ConceptoCIE:=If(TxtConceptoCIE.Text.Trim.Length > 0, TxtConceptoCIE.Text, "-1")) If Not CveIE > 0 Then MsgError = "Ocurrio un Error al registrarse el movimiento bancario." End If 'Importe de pago Pago.ImportePago = ImportePagado Pago.CveIE = CveIE If MsgError = "" AndAlso AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" End If 'AGREGO PREPOLIZA BANCOS Dim IdCuenta As Integer = 0 Dim UsaComplementariaBancos As Boolean = Not UsuarioActual.CveEmpresa.Contiene(7, 11, 122, 145, 13, 83) Dim ConceptoMovimiento As String = $"{TxtPagueseA.Text.Trim} - {TxtObservaciones.Text} {If(Pago.TCPago > 1, $" TC:{Pago.TCPago}", "")}" Dim Referencia As String = TxtFolio.Text.Trim Dim tImporteMN As Decimal = ImporteBancos Pago.ImportePago = tImporteMN If DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then Dim ObjCreditos As New ClsBancos ObjCreditos.GetTarjetasCreditos(DdlCuenta.SelectedValue.ToEntero, DdlTarjeta.SelectedValue.ToEntero) If ObjCreditos.DtResultados.Rows.Count > 0 AndAlso (ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero > 0) Then IdCuenta = ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero End If Dim Importe42 As Decimal = Pago.ImportePago + Pago.OtroGastoIngreso tImporteMN = If(Pago.CveMonedaPago = 2, If(DivTipoCambio.Visible, Importe42 / TxtTipoCambio.Text.ToDecimal * Pago.TCPago, Importe42 * Pago.TCPago), Importe42) If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Importe42, tImporteMN, 42, Referencia, ConceptoMovimiento, IdCuenta, CveIE:=CveIE, CveProveedor:=CveProveedor, TipoCambio:=Pago.TCPago, CveSubProyecto:=CveSubProyecto) Then MsgError = "No se pudo insertar la póliza" End If Else Dim ImporteME As Decimal = 0 If Pago.CveMonedaPago = 2 Then ImporteME = Pago.ImportePago If Not UsaComplementariaBancos And Pago.CveMonedaPago = 2 Then ImporteME = tImporteMN tImporteMN = (tImporteMN * Pago.TCPago).RoundSQL End If If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago.RoundSQL, tImporteMN, 30, Referencia, ConceptoMovimiento, IdCuenta, CveIE:=CveIE, CveProveedor:=CveProveedor, TipoCambio:=Pago.TCPago, CveSubProyecto:=CveSubProyecto, ImporteME:=ImporteME) Then MsgError = "No se pudo insertar la póliza" End If If Pago.CveMonedaPago = 2 AndAlso UsaComplementariaBancos Then If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, (Pago.ImportePago * Pago.TCPago - Pago.ImportePago).RoundSQL, 204, Referencia, ConceptoMovimiento, IdCuentaBancariaComplementaria, CveIE:=CveIE, CveProveedor:=CveProveedor, ImporteME:=Pago.ImportePago, TipoCambio:=Pago.TCPago, CveSubProyecto:=CveSubProyecto) Then MsgError = "No se pudo insertar la póliza" End If End If End If Case "2" 'FyE CveIE = DDlCheques.SelectedValue.ToEntero If Not CveIE > 0 Then Alert("No se encontro movimientos bancarios de personal", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim saldo As Decimal = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal If ImportePagado > saldo Then Alert("El importe no debe de superar el saldo del cheque seleccionado.", TipoMensaje.MsgAdvertencia) Exit Sub End If Pago.ImportePago = ImportePagado Pago.CveIE = CveIE Pago.TipoPago = "Per" Pago.CvePersonal = DdlFuncionarioEmpleado.SelectedValue.ToEntero If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" End If 'AGREGO PREPOLIZA FyE If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, TxtObservaciones.Text, 29, TxtObservaciones.Text, TxtFechaDocumento.Text.ToDate, -1, -1, CvePersonal:=Pago.CvePersonal, CveIE:=CveIE, ImporteMX:=Pago.ImportePago) Then MsgError = "Error al registrar detalle de concepto bancario" End If Case "3" 'Ingresos X Comprobar Pago.ImportePago = ImportePagado For Each rw As GridViewRow In GvIngresos.Rows If rw.FCCheckBox("Chk").Checked Then CveIE = rw.DataKey("CveIE").ToEntero Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / rw.DataKey("TipoCambio").ToDecimal If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = rw.DataKey("TipoCambio").ToDecimal If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" Else Exit For End If End If Next Case "4" 'Deudores Diversos 'verifica que se halla selccionado algun acreedor If DdlDeudor.SelectedValue.ToEntero <= 0 Then Alert("Debe especificar el deudor.", TipoMensaje.MsgAdvertencia) Exit Sub End If For Each rw As GridViewRow In GvDeudores.Rows If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then Pago.CveIE = rw.DataKey("CveIE").ToEntero Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal Pago.CveProveedor = DdlDeudor.SelectedValue.ToEntero Pago.TipoPago = "DD" If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" Else Exit For End If End If Next Case "5" 'Acreedores Diversos 'verifica que se halla selccionado algun acreedor If DdlAcreedor.SelectedValue.ToEntero <= 0 Then Alert("Debe especificar el Acreedor.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim Aplicopagocomision As Boolean = False For Each rw As GridViewRow In GvAcreedores.Rows If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then Dim TCC As Decimal = 1 Pago = New CompraPago If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal Pago.CveIE = rw.DataKey("CveIE").ToEntero Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal Pago.TCPago = If(Pago.CveMonedaPago <> 1, TxtTipoCambio.Text.ToDecimal, 1) Pago.CveProveedor = DdlAcreedor.SelectedValue.ToEntero Pago.TipoPago = "Egsc" If TxtComision.Text.ToDecimal <> 0 AndAlso Aplicopagocomision = False Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Aplicopagocomision = True 'solo debe de aplicarse una vez, de manera general Else Pago.OtroGastoIngreso = 0 End If If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" Else Exit For End If End If Next Case "6" 'Ventas For Each rw As GridViewRow In GvVentas.Rows If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal Pago.CveProveedor = DdlAcreedor.SelectedValue.ToEntero Pago.CveVentaRelacionada = rw.DataKey("CveVenta").ToEntero Pago.TipoPago = "Venta" If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" End If If MsgError = "" Then Dim VentaActual As New Venta(UsuarioActual) With {.CveVenta = rw.DataKey("CveVenta").ToEntero, .ClienteNombre = NombreCliente, .SerieFolio = rw.DataKey("SerieFolio"), .CveCliente = rw.DataKey("CveCliente").ToEntero, .IVA = rw.DataKey("IVA").ToDecimal, .IEPS = rw.DataKey("IEPS").ToDecimal, .RetIVA = rw.DataKey("RetIVA").ToDecimal, .RetISR = rw.DataKey("RetISR").ToDecimal, .Total = rw.DataKey("Total").ToDecimal, .PorcentajeIVA = rw.DataKey("PorcentajeIVA").ToDecimal, .CveSubProyecto = rw.DataKey("CveSubProyecto").ToEntero, .CveMoneda = rw.DataKey("CveMoneda").ToEntero} Dim PagoVenta As New VentaPago PagoVenta.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero PagoVenta.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal PagoVenta.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal PagoVenta.TCPago = rw.DataKey("TipoCambio").ToDecimal PagoVenta.CveCompraRelacionada = CompraActual.CveCompra PagoVenta.TipoPago = "Venta" If AplicaPrePolizaPagoVenta(VentaActual, PagoVenta, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" End If Else Exit For End If End If Next Case Else ImportePagado = 0 End Select Dim ObjConta As ClsContPAQi = Nothing If MsgError = "" AndAlso ObjMov.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=5) Then If ObjMov.ValorPolizaDescuadre > 0 Then MsgError = ObjMov.MensajePolizaDescuadre GuardaLogAD($"Bancos/PopIECompras | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") End If End If If MsgError = "" Then ObjIE.Commit() If ObjConta IsNot Nothing Then ObjConta.Commit() Dim StrMsg As New StringBuilder StrMsg.Append("El Documento se guardó correctamente.
") If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa) If UsuarioActual.Empresa.TipoContabilidad = 1 Then StrMsg.AppendFormat("
Ver Póliza", CvePrePoliza) Else If IdPoliza > 0 Then StrMsg.AppendFormat("

Ver Póliza", IdPoliza) End If End If If RBLContado.SelectedValue.ToEntero = 6 And ChkEmitirComplementoPago.Checked Then GeneraTimbre(CvePrePoliza) Else Alert(StrMsg.ToString, TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") EnviarCorreoNotificacion(CveIE, NotificarA, "", UsuarioActual, False) Else ObjIE.RollBack() If ObjConta IsNot Nothing Then ObjConta.RollBack() Alert(MsgError, TipoMensaje.MsgError) End If ObjIE.Dispose() ObjMov.Dispose() End Sub #End Region #Region "ENVIAR CORREO NOTIFICACION DE PAGO" Private Sub EnviarCorreoNotificacion(CveIENotificar As Integer, CorreoNotificarA As String, CopiaPara As String, UsuarioActualNotificar As Usuario, MostarAlert As Boolean) Try Dim Hilo As New Threading.Thread(Sub() EnviarCorreoNotifiMandaCorreocacionHilo(CveIENotificar, CorreoNotificarA, CopiaPara, UsuarioActualNotificar)) 'Dim Hilo As New Threading.Thread( EnviarCorreoNotifiMandaCorreocacionHilo(CveIENotificar, CorreoNotificarA, CopiaPara, UsuarioActualNotificar)) Hilo.Start() If MostarAlert Then Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) End If Catch ex As Exception If MostarAlert Then Alert("No se pudo enviar el correo electrónico.", TipoMensaje.MsgError) End If End Try End Sub Private Sub EnviarCorreoNotifiMandaCorreocacionHilo(CveIENotificar As Integer, CorreoNotificarA As String, CopiaPara As String, UsuarioActualNotificar As Usuario) Try Dim ObjBancos As New ClsBancos() If ObjBancos.NotificacionPago(CveIENotificar, CorreoNotificarA, CopiaPara, UsuarioActualNotificar) Then Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) Else Alert("No se pudo enviar el correo electrónico.", TipoMensaje.MsgError) End If ObjBancos.Dispose() Catch ex As Exception GuardaLog("Error al enviar notificación de pago PopIECompras --> " & ex.StackTrace.ToString) End Try End Sub #End Region #Region "COMPLEMENTO DE PAGO" Private Sub GeneraTimbre(CvePrePoliza As Integer) Dim Str As New StringBuilder Dim Banco As New ClsBancos Banco.IniciaTransacSQL() If Banco.GeneraTimbrePago(CveIE, -1, UsuarioActual, CvePrePoliza:=CvePrePoliza) Then If Banco.Mensaje = "" Then Banco.Commit() PDFReciboDePagos(-1, -1, Banco.CveComplementoPago, False) Str.AppendFormat("Folio: {0}  ", Banco.ComplementoSerieFolio) Str.AppendFormat("XML    ", Encripta(String.Format("OP=CompP&EXT=xml&SerieFolio={0}&CveComplementoPago={1}", Banco.ComplementoSerieFolio, Banco.CveComplementoPago))) Str.AppendFormat("PDF   ", Encripta(String.Format("OP=CompP&EXT=pdf&SerieFolio={0}&CveComplementoPago={1}", Banco.ComplementoSerieFolio, Banco.CveComplementoPago))) 'Str.AppendFormat("{1}   {2}
", CveIE, SerieFolio, NombreProveedor) MandaCorreo(Banco.ComplementoSerieFolio, Banco.CobranzaCorreo) End If Else Str.AppendFormat("No se genero complemento del Folio {0} por el siguiente motivo: {1}", SerieFolio, Banco.Mensaje) Banco.RollBack() End If Banco.Dispose() Alert(Str.ToString, TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") End Sub Private Sub MandaCorreo(NombreArchivo As String, Correo As String, Optional ConAlerta As Boolean = True) If Not DdlTipoTransaccion.SelectedValue.ToEntero.Contiene(9, 17) Then Try Dim Msg As String = "" If NombreArchivo <> "-1" Then ' Dim ObjMail As New ClsSisMail() Dim RutaXML As String = String.Format("{0}\XML\Pag\{1}.xml", UsuarioActual.Empresa.Ruta, NombreArchivo) Dim RutaPDF As String = String.Format("{0}\PDF\Pag\{1}.pdf", UsuarioActual.Empresa.Ruta, NombreArchivo) Dim Cuerpo As String = "Se hace entrega del comprobante de pago" Dim Asunto As String = "Entrega de comprobante de pago" If IO.File.Exists(RutaPDF) AndAlso IO.File.Exists(RutaXML) Then Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = RutaPDF}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = RutaXML}) If ObjMail.SendMail(UsuarioActual.Empresa, Correo, Asunto, Cuerpo, "", LSRutasMail) Then If ConAlerta Then RegistraScript("$('#ModalDivMail').modal('hide');") Alert("El correo se envió correctamente", TipoMensaje.MsgInformacion) End If Else Msg = "No se pudo enviar el correo electrónico." End If Else Msg = "No se pudo adjuntar el correo electrónico." End If End If If ConAlerta AndAlso Msg <> "" Then Alert(Msg, TipoMensaje.MsgError) End If Catch ex As Exception OnError("Ocurrió error al mandar MAIL", ex) End Try End If End Sub #End Region Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) Dim dtc As DataTable = GlobalDTProveedoresCuentas(UsuarioActual.CveEmpresa, CveProveedor:=CveProveedor, CveCuentaDeposito:=DdlCuentaDeposito.SelectedValue.ToEntero) If dtc IsNot Nothing AndAlso dtc.Rows.Count = 1 Then If dtc.Rows(0)("TieneCIE").ToString.ToEntero = 1 Then TrReferenciaCIE.Visible = True TxtReferenciaCIE.Text = dtc.Rows(0)("Referencia").ToString TxtConceptoCIE.Text = dtc.Rows(0)("ConceptoCIE").ToString 'OriReferenciaCIE = dtc.Rows(0)("Referencia").ToString 'OriConceptoCIE = dtc.Rows(0)("ConceptoCIE").ToString Else TrReferenciaCIE.Visible = False End If If Boolean.Parse(dtc.Rows(0)("EstatusPagoElectronicoGrupos").ToString) = True AndAlso dtc.Rows(0)("CveSATBanco").ToString.ToEntero <= 0 Then Alert("Es necesario establecer el banco de la cuenta deposito", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False Else BtnGuardar.Enabled = True End If Else TrReferenciaCIE.Visible = False End If UpCuentaDeposito.Update() UpGuardar.Update() End Sub Private Sub RVTxtFechaDocumento_Init(sender As Object, e As EventArgs) Handles RVTxtFechaDocumento.Init RVTxtFechaDocumento.MaximumValue = DateTime.Now.ToShortDateString Calendario.EndDate = DateTime.Now End Sub Protected Sub CVTxtImporte_ServerValidate(source As Object, args As ServerValidateEventArgs) Dim Saldo As Decimal = LtlSaldo.Text.Replace("USD", "").Replace("MXN", "").Replace(",", "").ToDecimal Dim ImportePagado As Decimal = 0 If ChkComisiones.Checked Then ImportePagado = TxtImporte.Text.Trim.ToDecimal.RoundSQL - TxtComision.Text.ToDecimal Else ImportePagado = TxtImporte.Text.Trim.ToDecimal.RoundSQL End If If ChkPagarPesos.Checked Then Dim TC As Decimal = TxtTipoCambio.Text.ToDecimal Dim PagoEnDollares As Decimal = (ImportePagado / TC).RoundSQL() If PagoEnDollares <= Saldo Then args.IsValid = True Else args.IsValid = False End If Else If ImportePagado <= Saldo Then args.IsValid = True Else args.IsValid = False End If End If End Sub End Class