Option Explicit On Option Strict On Imports System.Data Imports Extensiones Partial Class Bancos_PopIEVentas 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 ViewState("CveIE").ToString.ToEntero End Get Set(value As Integer) ViewState("CveIE") = 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 CveVenta As Integer Get Return ViewState("CveVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveVenta") = value End Set End Property Private Property FechaVenta As Date Get Return ViewState("FechaVenta").ToString.ToDate End Get Set(value As Date) ViewState("FechaVenta") = value End Set End Property Private Property CveCliente As Integer Get Return ViewState("CveCliente").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCliente") = value End Set End Property Private Property CveSubProyectoVenta As Integer Get Return ViewState("CveSubProyectoVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveSubProyectoVenta") = value End Set End Property Private Property CveClienteOriginal As Integer Get Return ViewState("CveClienteOriginal").ToString.ToEntero End Get Set(value As Integer) ViewState("CveClienteOriginal") = value End Set End Property Private Property CveCuentaBancaria As Integer Get Return ViewState("CveCuentaBancaria").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCuentaBancaria") = value End Set 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 Double Get Return ViewState("SaldoVenta").ToString.ToDouble End Get Set(value As Double) ViewState("SaldoVenta") = value End Set End Property Private Property VentaActual As Venta Get Return CType(ViewState("VentaActual"), Venta) End Get Set(value As Venta) ViewState("VentaActual") = 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 DTFuenteRecaudacion As DataTable Get Return CType(ViewState("DTFuenteRecaudacion"), DataTable) End Get Set(value As DataTable) ViewState("DTFuenteRecaudacion") = 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 NombreCliente As String Get Return ViewState("NombreCliente").ToString End Get Set(value As String) ViewState("NombreCliente") = 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 CveMonedaVenta As Integer Get Return ViewState("CveMonedaVenta").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMonedaVenta") = 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 CveCorte As Integer Get Return ViewState("CveCorte").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCorte") = 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 Double Public Property CvePersonal As Integer End Class Public Class IEMovimiento Public Property SubTotal As Decimal Public Property IVA 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 PorcentajeIVA As Decimal End Class Private Property EmpresaPrueba As Boolean Get Return CBool(ViewState("EmpresaPrueba")) End Get Set(value As Boolean) ViewState("EmpresaPrueba") = value End Set End Property 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 RFCCliente As String Get Return ViewState("RFCCliente").ToString End Get Set(value As String) ViewState("RFCCliente") = value End Set End Property Private Property Fecha As Date Get Return ViewState("Fecha").ToString.ToDate End Get Set(value As Date) ViewState("Fecha") = value End Set End Property #End Region Private Sub Bancos_PopIEVentas_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then If Not UsuarioActual.Empresa.UsaAC Then EmpresaPrueba = True CveCorte = -1 End If CveClienteOriginal = -1 CveSubProyectoVenta = -1 CType(Me.Master, BaseMasterPage).EsPopup = True CType(Me.Master, BaseMasterPage).PopupWidth = 750 RegistraScript("if($get('tdContenido')){$get('tdContenido').style.width='350px';}") IdPoliza = -1 CveMoneda = 0 CveMonedaFiltros = 0 CveVenta = -1 ArrIE = New ArrayList() ArrIEFuncionariosEmpleados = New ArrayList() RFCCliente = "-1" TxtFechaDocumento.Text = NowADS().ToShortDateString If Request("CveVenta") IsNot Nothing AndAlso IsNumeric(Request("CveVenta")) AndAlso Request("CveVenta").ToEntero > 0 Then CveVenta = Request("CveVenta").ToEntero CargaVenta(CveVenta) TipoTransaccion = "Ing" LblFolio.Text = "Folio Pago" TrPagueseA.Visible = False Else 'Configuración de Modalidad Insert ViewState("CveIE") = -1 End If If UsuarioActual.CveEmpresa.Contiene(1, 4, 7, 11, 12, 72, 80, 119) 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 dia As Integer = If(UsuarioActual.CveEmpresa = 13, NowADS().Day - 1, NowADS().Day) Fecha = (dia.ToString + "/" + NowADS().Month.ToString + "/" + NowADS().Year.ToString).ToDate If CveMoneda = 2 Then ChkPagarPesos.Visible = True TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) DivDolaresDolares.Visible = True TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") Else ChkPagarDolares.Visible = True TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) End If 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 PanelCompras.Visible = False TxtImporte.Text = SaldoVenta.FormatoNumero ChkComplementoPago.Visible = True Case "2" ' F y E PanelBancos.Visible = False PanelFyE.Visible = True PanelIngresos.Visible = False PanelDeudores.Visible = False PanelCompras.Visible = False CargaFuncionariosEmpleados() TxtImporte.Text = SaldoVenta.FormatoNumero ChkComplementoPago.Visible = False Case "3" 'Ingresos x Comprobar PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = True PanelDeudores.Visible = False PanelCompras.Visible = False CargaOtrosIngresos(CveMoneda) TxtImporte.Text = "0.00" ChkComplementoPago.Visible = False Case "4" 'Deudores PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = True PanelCompras.Visible = False CargaDeudores(CveMoneda) TxtImporte.Text = "0.00" ChkComplementoPago.Visible = False Case "5" 'Compras PanelBancos.Visible = False PanelFyE.Visible = False PanelIngresos.Visible = False PanelDeudores.Visible = False PanelCompras.Visible = True CargaCompras(CveMoneda) TxtImporte.Text = "0.00" ChkComplementoPago.Visible = False End Select UpGuardar.Update() End Sub #End Region #Region "C A R G A R I N F O R M A C I O N" Private Sub CargaVenta(pCveVenta As Integer) Dim ObjVenta As New ClsVentas() If ObjVenta.GetVenta(pCveVenta, UsuarioActual.CveEmpresa) Then If ObjVenta.DtResultados IsNot Nothing AndAlso ObjVenta.DtResultados.Rows.Count > 0 Then Dim dr As DataRow = ObjVenta.DtResultados.Rows(0) Dim Validada As Boolean = True 'JJMQ:20190606 Se cancela código de validacion ante el SAT por lentitud en el servicio. 'Sustituir la línea anterior por todo lo siguiente hasta donde termina el end if para que valide de nueva cuenta 'Dim Validada As Boolean = False If Not UsuarioActual.Empresa.Funcionalidad(529) = "1" AndAlso dr("FolioFiscal").ToString() <> "" Then Dim Valida As New ClsValidaCFDi(dr("FolioFiscal").ToString(), UsuarioActual.Empresa.RFC, dr("RFCReceptor").ToString, dr("Total").ToString.ToDecimal.RoundAD(2)) If Valida.EsValida > 0 Then If Valida.EsValida = 2 Then Validada = False 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.") End If Else Validada = True End If Else 'no se pudo validar, pero ya tuvo la primera vuelta de validacion Alert("La factura no se pudo validar.", TipoMensaje.MsgAdvertencia) Validada = False BtnGuardar.Enabled = False BtnGuardar.ToolTip = "La factura no se pudo validar" End If Valida.Dispose() Else Validada = True End If CveCliente = dr("CveCliente").ToString.ToEntero CveClienteOriginal = dr("CveCliente").ToString.ToEntero HdnCveCliente.Value = CveCliente.ToString CargaCliente(CveCliente, "-1") CveMoneda = dr("CveMoneda").ToString.ToEntero CveMonedaVenta = dr("CveMoneda").ToString.ToEntero CveMonedaFiltros = dr("CveMoneda").ToString.ToEntero NombreCliente = dr("ClienteNombre").ToString '' GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=CveCliente).FiltroPrimeroValor("Nombre", String.Format("CveCliente = {0}", CveCliente)) SerieFolio = dr("SerieFolio").ToString TipoCambioOriginal = dr("TipoCambio").ToString.ToDecimal CveSubProyectoVenta = dr("CveSubProyecto").ToString.ToEntero LblMetodoPAgo.Text = $"{dr("ClaveMetodoPagoSATStr").ToString() }" 'Configuración de Modalidad Update 'Dim RFCCliente As String = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RFC", $"CveCliente = {CveCliente} ") If Not UsuarioActual.Empresa.Funcionalidad(536) = "1" Then If dr("TipoDocto").ToString = "Rem" Then Alert("Los documentos de tipo Remisión no se permite realizar el pago", TipoMensaje.MsgAdvertencia) BtnGuardar.Visible = False End If End If 'MovimientoPagar = New IEMovimiento 'MovimientoPagar.SubTotal = dr("SubTotal").ToString.ToDecimal 'MovimientoPagar.IVA = dr("IVA").ToString.ToDecimal '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.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal VentaActual = New Venta(UsuarioActual) VentaActual.CveVenta = pCveVenta VentaActual.Fecha = dr("Fecha").ToString.ToDate VentaActual.CveCliente = dr("CveCliente").ToString.ToEntero VentaActual.CveMoneda = dr("CveMoneda").ToString.ToEntero VentaActual.TipoDocto = dr("TipoDocto").ToString VentaActual.SerieFolio = dr("SerieFolio").ToString VentaActual.ClienteNombre = NombreCliente VentaActual.TC = dr("TipoCambio").ToString.ToDecimal VentaActual.Total = dr("Total").ToString.ToDecimal VentaActual.IVA = dr("IVA").ToString.ToDecimal VentaActual.IEPS = dr("IEPS").ToString.ToDecimal VentaActual.RetIVA = dr("RetIVA").ToString.ToDecimal VentaActual.RetISR = dr("RetISR").ToString.ToDecimal VentaActual.PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal VentaActual.CveSubProyecto = dr("CveSubProyecto").ToString.ToEntero LtlTitulo.Text = "Cuentas por Cobrar" LtlTipo2.Text = "Folio de la Venta" LtlTipo3.Text = "Fecha de la Venta" LtlSaldo.Text = If(CveMoneda = 1, $"{dr("Saldo").ToString.FormatoNumero}{" MXN"}", $"{dr("Saldo").ToString.FormatoNumero}{" USD"}") LtlFechaVenta.Text = dr("Fecha").ToString.ToDate.ToShortDateString() LtlFolio.Text = dr("SerieFolio").ToString TxtFolio.Enabled = True TxtFechaDocumento.Enabled = True Calendario.Enabled = True TxtPagueseA.Enabled = False TxtImporte.Enabled = True DdlCuenta.Enabled = True DdlTipoTransaccion.Enabled = True TxtObservaciones.Enabled = True RVImporte.Enabled = True RVImporte.MaximumValue = dr("Saldo").ToString.ToDouble.ToString.FormatoNumero TxtImporte.Text = dr("Saldo").ToString.ToDouble.FormatoNumero FechaVenta = dr("Fecha").ToString.ToDate SaldoVenta = dr("Saldo").ToString.ToDouble 'Cortes de Caja If UsuarioActual.TienePermisoProceso(160) Then CargaCorteCaja() End If If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'toma como proridad el que viene de CveCorte = dr("CveCorte").ToString.ToEntero End If If RFCCliente.ToUpper <> "XAXX010101000" Then Dim CveProveedor As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa, RFC:=RFCCliente.ToUpper).FiltroPrimeroValor("CveProveedor").ToEntero If CveProveedor > 0 Then Dim Mov As New ClsMovimientos If Mov.GetCxPProveedor(CveProveedor, MinFecha.ToShortDateString, MaxFecha.ToShortDateString, -1, -1, -1, -1, -1, 1, -1, -1, "-1", "-1", "-1") Then If Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio").Rows.Count > 0 Then RBLContado.Items(4).Enabled = True End If End If Mov.Dispose() End If End If If Not Validada Then BtnGuardar.Visible = False End If End If End If ObjVenta.Dispose() End Sub Private Sub CargaCorteCaja() 'Checar si hay un Turno Abierto Dim ObjPVenta As New ClsPuntoVenta If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then If ObjPVenta.DtResultados.Rows.Count > 0 Then CveCorte = ObjPVenta.CveCorte End If End If ObjPVenta.Dispose() End Sub Private Sub CargaCliente(ByVal CveCliente As Integer, RFC As String) Dim ObjCliente As New ClsClientes If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", RFC, "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then If ObjCliente.DtResultados.Rows.Count > 0 Then TxtPagueseA.Text = ObjCliente.Nombre RFCCliente = ObjCliente.RFC Else Alert("El cliente solicitado no existe, por favor intente de nuevo.", TipoMensaje.MsgAdvertencia) End If End If ObjCliente.Dispose() End Sub Private Sub CargaTipoTransaccion(Optional Tipo As String = "Egs") DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros(String.Format("Tipo = '{0}' AND Estatus = 1", 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 CveMonedaFiltros > 0 Then dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMonedaFiltros)) 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() 'SI ES VENTA SOLO CARGO FUNCIONARIOS If CveVenta > 0 Then DdlFuncionarioEmpleado.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) DdlFuncionarioEmpleado.DataBind() DdlFuncionarioEmpleado.Items.Insert(0, New ListItem("Seleccione Funcionario Empleado", "-1")) 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 Deudores.GetDeudoresSaldos2(-1, UsuarioActual.CveEmpresa) Then DtDeudores = Deudores.DtResultados.FiltraParametros($"CveProveedor > 0 AND SaldoVentas > 0 AND CveMoneda = {CveMoneda}") DdlDeudor.DataSource = DtDeudores DdlDeudor.DataBind() DdlDeudor.Items.Insert(0, New ListItem("Seleccione Deudor", "-1")) UpDatos.Update() CambieDeudor() End If Deudores.Dispose() End Sub Protected Sub CargaCompras(Optional CveMoneda As Integer = 1) If RFCCliente = "XAXX010101000" Then Exit Sub Dim ObjCompras As New ClsCompras Dim CveProveedor As Integer = -1 If ObjCompras.GetCompras(-1, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, ProveedorRFC:=RFCCliente) Then If ObjCompras.DtResultados.FiltraParametros("Saldo > 0").Rows.Count > 0 Then CveProveedor = ObjCompras.DtResultados(0)("CveProveedor").ToString.ToEntero GvCompras.DataSource = ObjCompras.DtResultados.FiltraParametros($"Saldo > 0 AND CveMoneda = {CveMoneda}") GvCompras.DataBind() End If End If ObjCompras.Dispose() 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 CveVenta > 0 Then OpcionSaldo = 2 If Deudores.GetDeudoresSaldosDetalle(DdlDeudor.SelectedValue.ToEntero, CveMonedaFiltros, UsuarioActual.CveEmpresa) Then DtDeudoresDetalle = Deudores.DtResultados.FiltraParametros(If(CveVenta > 0, " CveProveedor > 0 AND SaldoVentas > 0", "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 #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 'RecargaCuentas CargaCuentasDepositos() CargaCuentas() 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 If dr("UsaTarjeta").ToString = "True" Then CargaGridTarjetas() Else DivTarjeta.Visible = False End If End If If UsuarioActual.Empresa.Funcionalidad(505) <> "1" Then If UsuarioActual.CveEmpresa = 119 Then Dim ObjFolios As New ClsGralFolios If ObjFolios.GetFolios("RMF", UsuarioActual.CveEmpresa) Then Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format(" Estado = 'Activo'")) If DT.Rows.Count > 0 Then TxtFolio.Text = DT.Rows(0)("FActual").ToString End If ObjFolios.Dispose() End If Else Dim Banco As New ClsBancos Folio = Banco.GetNextFolio(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero) TxtFolio.Text = Folio.ToString Banco.Dispose() End If 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 Protected Sub DdlFuncionarioEmpleado_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlFuncionarioEmpleado.SelectedIndexChanged Dim CvePersonal As Integer = DdlFuncionarioEmpleado.SelectedValue.ToEntero 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 #Region " CUENTAS DEPOSITOS" Private Sub CargaCuentasDepositos() DdlCuentaDeposito.Items.Clear() If DdlTipoTransaccion.SelectedValue.ToEntero > 0 Then ' transferencias y layout trCuentaDeposito.Visible = False Dim Dep As New ClsGenerales If Dep.GetCuentasDepositos(CveCliente:=CveCliente, CveEmpresa:=UsuarioActual.CveEmpresa) Then If DdlTipoTransaccion.SelectedValue = "9" Then DdlCuentaDeposito.DataSource = Dep.DtResultados.FiltraParametros("EstatusPagoElectronico = 'True' AND Estatus ='True'") If Dep.DtResultados.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 Cliente no tiene ninguna cuenta deposito registrada ante el sistema BBVA BANCOMER", TipoMensaje.MsgAdvertencia) End If Else DdlCuentaDeposito.DataSource = Dep.DtResultados.FiltraParametros("Estatus ='True'") If Dep.DtResultados.Rows.Count >= 1 Then trCuentaDeposito.Visible = True DdlCuentaDeposito.Items.Insert(0, New ListItem("Seleccione una cuenta", "-1")) End If End If End If Dep.Dispose() DdlCuentaDeposito.DataBind() Else trCuentaDeposito.Visible = False DdlCuentaDeposito.Items.Clear() End If UpCuentaDeposito.Update() UpDatos.Update() End Sub 'Private Sub RecargaCuentasDepositos() ' Dim dr As DataRow = GlobalDTTipoTransacciones.FiltroPrimero(String.Format("CveTipoTransaccion = {0}", DdlTipoTransaccion.SelectedValue)) 'Egs o Ing ' If dr IsNot Nothing Then ' HdnTipoTransaccion.Value = dr("Tipo").ToString ' HdnTipoTransaccionAbreviatura.Value = dr("Abreviatura").ToString ' End If ' CargaCuentasDepositos() 'End Sub Protected Sub DdlCuentaDeposito_SelectedIndexChanged(sender As Object, e As EventArgs) Dim Dep As New ClsGenerales If Dep.GetCuentasDepositos(CveCliente:=CveCliente, CveCuentaDeposito:=DdlCuentaDeposito.SelectedValue.ToEntero) AndAlso Dep.DtResultados.Rows.Count = 1 Then If Dep.DtResultados.Rows(0)("TieneCIE").ToString.ToEntero = 1 Then TrReferenciaCIE.Visible = True TxtReferenciaCIE.Text = Dep.DtResultados.Rows(0)("Referencia").ToString Else TrReferenciaCIE.Visible = False End If End If Dep.Dispose() UpCuentaDeposito.Update() End Sub #End Region #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 Double Dim saldo As Double saldo = e.Row.DataKey("Saldo").ToDouble 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 Double Dim saldo As Double saldo = e.Row.DataKey("Saldo").ToDouble 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 GvCompras_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCompras.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim total As Double Dim saldo As Double saldo = e.Row.DataKey("Saldo").ToDouble 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 "CHK TIPO CAMBIO" #Region "PAGAR CON PESOS" Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs) If ChkPagarPesos.Checked Then DivTipoCambio.Visible = True DivDolaresDolares.Visible = False TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) CveMonedaFiltros = 1 CargaCuentas() CargaOtrosIngresos(1) CargaDeudores(1) CargaCompras(1) 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 CVImporteDolares.Enabled = True Else DivTipoCambio.Visible = False DivDolaresDolares.Visible = True TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) CveMonedaFiltros = 2 CargaCuentas() CargaOtrosIngresos(2) CargaDeudores(2) CargaCompras(2) 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.ToDouble.ToString CVImporteDolares.Enabled = False CVImportePesos.Enabled = False End If UpDatos.Update() UpIngresos.Update() UpDeudores.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).ToDouble <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDouble 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 DivTCDolares.Visible = True DivDolaresDolares.Visible = False TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) CveMonedaFiltros = 2 CargaCuentas() CargaOtrosIngresos(2) CargaDeudores(2) CargaCompras(2) 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 DivTCDolares.Visible = False DivDolaresDolares.Visible = False TxtFechaDocumento.Attributes.Remove("onchange") CveMonedaFiltros = 1 CargaCuentas() CargaOtrosIngresos(1) CargaDeudores(1) CargaCompras(1) 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.ToDouble.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).ToDouble <= LtlSaldo.Text.Substring(0, LtlSaldo.Text.Length - 3).ToDouble 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() Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, TxtFechaDocumento.Text.ToDate.Day - 1, TxtFechaDocumento.Text.ToDate.Day) Fecha = (dia.ToString + "/" + TxtFechaDocumento.Text.ToDate.Month.ToString + "/" + TxtFechaDocumento.Text.ToDate.Year.ToString).ToDate If DivTipoCambio.Visible Then TxtTipoCambio.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) RegistraScript("CambiaPesosDolares();") End If If DivTCDolares.Visible Then TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) RegistraScript("CambiaDolaresPesos();") End If If DivDolaresDolares.Visible Then TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) End If UpDatos.Update() 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 = FechaVenta 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 venta no puede ser mayor al mes de la la fecha de pago
Fecha de venta: { FechaVenta.ToString("dd/MM/yyyy") }", TipoMensaje.MsgAdvertencia) Exit Sub ElseIf AnioFactura = AnioDocumento And MesFactura > MesDocumento Then Alert($"El mes de la fecha de venta no puede ser mayor al mes de la la fecha de pago
Fecha de venta: { FechaVenta.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 MsgError As String = "" Dim CveConceptoPrePoliza As Integer = -1 Dim Inserta As Boolean = True Dim ImportePagado As Decimal = 0 Dim Fecha As Date = TxtFechaDocumento.Text.Trim.ToDate If Not EmpresaPrueba Then CveIE = -1 Select Case RBLContado.SelectedValue Case "1" ' Bancos ImportePagado = If(DdlOtrosPagos.SelectedValue.ToEntero = 2, TxtTotal.Text.Trim.ToDecimal, TxtImporte.Text.Trim.ToDecimal) 'TxtImporte.Text.Trim.ToDecimal Fecha = TxtFechaDocumento.Text.Trim.ToDate Case "2" 'FyE ImportePagado = TxtImporte.Text.Trim.ToDecimal Fecha = TxtFechaDocumento.Text.Trim.ToDate CveConceptoPrePoliza = 29 CveIE = -1 Dim stringPersonal As String = DdlFuncionarioEmpleado.SelectedItem.ToString 'CvePersonal = DdlFuncionarioEmpleado.SelectedValue.ToEntero Case "3" 'Ingresos X Comprobar ImportePagado = TxtImporte.Text.Trim.ToDecimal Case "4" 'Deudores Diversos ImportePagado = TxtImporte.Text.Trim.ToDecimal CveIE = -1 Case "5" 'Compras ImportePagado = TxtImporte.Text.Trim.ToDecimal CveIE = -1 Case Else ImportePagado = 0 End Select If ImportePagado <= 0 Then Inserta = False Alert("Debe ingresar un importe.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjIE As New ClsBancos() Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) Dim ObjCliente As New ClsClientes(ObjIE.IniciaTransacSQL) Dim CvePlantillaPoliza As Integer = 11 Dim ConceptoPoliza As String = String.Format("{0} {1}", NombreCliente, SerieFolio) Dim CveCuentaDeposito As Integer = If(DdlCuentaDeposito.Items.Count > 0, DdlCuentaDeposito.SelectedValue.ToEntero, 0) Dim FechaDocumento = FechaVenta Dim StrMsg As New StringBuilder '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" 'FyE, Ingresos, Deudores If ChkPagarDolares.Checked Then CveMoneda = 2 ElseIf ChkPagarPesos.Checked Then CveMoneda = 1 End If End Select 'cuando es pago con compra, debe de ser de Diario Dim CveTipoPoliza As Integer = ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa) If RBLContado.SelectedValue = "5" Then CveTipoPoliza = 3 Dim CvePrePoliza As Integer = ObjMov.AddPrePolizas("Bancos/PopIEVentas", CvePlantillaPoliza, ImportePagado, ImportePagado, CveMoneda, Fecha, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=ObjMov.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, "-1", UsuarioActual.CveEmpresa)) If Inserta Then If CvePrePoliza > 0 Then 'SE AGREGA DETALLE DE UNA VENTA If CveVenta > 0 Then If VentaActual IsNot Nothing Then Dim tipoCambioPago As Decimal = 1 Dim CuentasContablesInvalidas As New StringBuilder Dim tFecha As Date = TxtFechaDocumento.Text.ToDate Dim Pago As New VentaPago Pago.Fecha = TxtFechaDocumento.Text.ToDate Pago.CveMonedaPago = CveMoneda Pago.Referencia = VentaActual.SerieFolio If DdlOtrosPagos.SelectedValue = "2" 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 VentaActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos Pago.TCPago = 1 / TxtTipoCambio.Text.ToDecimal ElseIf Pago.CveMonedaPago = 2 AndAlso VentaActual.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 VentaActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES Pago.TCPago = TxtTipoCambio.Text.ToDecimal Pago.TCPago = TxtTipoCambio.Text.ToDecimal End If If ChkPagarPesos.Checked Then Pago.TCPago = 1 / TxtTipoCambio.Text.ToDecimal If ChkPagarDolares.Checked Then Pago.TCPago = TxtTipoCambio.Text.ToDecimal If TxtComision.Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Else Pago.OtroGastoIngreso = 0 Select Case RBLContado.SelectedValue Case "1" ' Banco CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, Fecha, TxtFolio.Text.Trim, TxtPagueseA.Text.Trim, ImportePagado, CveMoneda, tipoCambioPago, 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"), CveCorte:=CveCorte) If CveIE > 0 Then If CveVenta > 0 Then Pago.ImportePago = ImportePagado Pago.ImportePagoVenta = ImportePagado Pago.CveIE = CveIE Pago.TipoPago = "B" If MsgError = "" AndAlso AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" End If End If Else MsgError = "Ocurrio un Error al registrarse el movimiento bancario." Inserta = False End If Case "3" 'Ingresos x Comprobar If CveVenta > 0 Then CveConceptoPrePoliza = 2 CveCliente = DdlIngreso.SelectedValue.ToEntero CveIE = -1 ImportePagado = TxtImporte.Text.Trim.ToDecimal Pago.ImportePago = ImportePagado Pago.TipoPago = "I" 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.ImportePagoVenta = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal Pago.FechaDocumentoRelacionado = rw.DataKey("FechaDocumento").ToDate If ChkPagarPesos.Checked Then Pago.TCPago = 1 / rw.DataKey("TipoCambio").ToDecimal If ChkPagarDolares.Checked Then Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal If AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" Else Exit For End If End If Next End If Case "4" 'Deudores Diversos If CveVenta > 0 Then ImportePagado = TxtImporte.Text.Trim.ToDecimal CveConceptoPrePoliza = 2 'CveProveedor2 = DdlDeudor.SelectedValue.ToEntero CveIE = -1 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 AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" Else Exit For End If End If Next End If Case "5" 'Compras If CveVenta > 0 Then ImportePagado = TxtImporte.Text.Trim.ToDecimal CveConceptoPrePoliza = 2 'CveConcepto2 = 43 CveIE = -1 End If Case Else 'NO SE HA DEFINIDO PARA FUNCIONARIO Y EMPLEADO If RBLContado.SelectedValue <> "2" Then MsgError = "No se ha especificada opcion." End If End Select If MsgError = "" Then If MsgError = "" AndAlso ObjMov.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=3) Then If ObjMov.ValorPolizaDescuadre > 0 Then MsgError = ObjMov.MensajePolizaDescuadre End If End If Else MsgError = "No se pudo insertar la poliza detalle" End If End If End If Else MsgError = "No se pudo insertar la póliza" End If Else MsgError = "No se insertó el encabezado" End If If MsgError = "" Then ObjIE.Commit() StrMsg.Append("El Documento se guardó correctamente.
") 'Alert("El Documento se guardó correctamente.", TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa) '07-05-2018 - Timbra Complemento de pago Dim TextoComplementoPago As String = "" StrMsg.AppendFormat("Folio {0}
", ObjIE.Folio) If RBLContado.SelectedValue = "1" And ChkComplementoPago.Checked Then Dim SeriesPago As New List(Of String) SeriesPago.Add(SerieFolio) Dim CveVentas As New List(Of Integer) CveVentas.Add(CveVenta) TextoComplementoPago = EmitirComplementoPago(CveIE, CveVentas, SeriesPago) StrMsg.Append($"
{TextoComplementoPago}") End If If IdPoliza > 0 Then StrMsg.AppendFormat("
Ver Póliza", IdPoliza) End If If UsuarioActual.Empresa.TipoContabilidad = 1 Then StrMsg.AppendFormat("

Póliza: {1}
", CvePrePoliza, ObjMov.ContaFolio) End If Alert($"{StrMsg.ToString}
", TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") Else ObjIE.RollBack() Alert(MsgError, TipoMensaje.MsgError) End If ObjIE.Dispose() ObjMov.Dispose() ObjCliente.Dispose() End Sub Private Sub LimpiarTodo() DdlTipoTransaccion.SelectedValue = "-1" DdlCuenta.SelectedValue = "-1" DdlFuncionarioEmpleado.SelectedValue = "-1" DdlIngreso.SelectedValue = "-1" DdlDeudor.SelectedValue = "-1" TxtFolio.Text = "" TxtObservaciones.Text = "" TxtImporte.Text = "" TxtFechaDocumento.Text = NowADS().ToShortDateString ChkComplementoPago.Checked = False UpDatos.Update() UpGuardar.Update() End Sub #End Region #Region " COMPLEMENTOS PAGO " Private Function EmitirComplementoPago(CveIE As Integer, CveVentas As List(Of Integer), Series As List(Of String)) As String If Not ChkComplementoPago.Checked Then Return "" End If Dim Retorno As New StringBuilder 'For i = 0 To CveVentas.Count - 1 Dim ObjBancos As New ClsBancos If ObjBancos.GetComplementoPagosRep(-1, NowADS().AddYears(-2), NowADS(), CveIE, -1, 1, UsuarioActual.CveEmpresa, -1) Then If Not ObjBancos.DtResultados.Rows.Count > 0 Then ObjBancos.Dispose() Alert("No se generaron complementos de pago porque no hay facturas con método de pago PPD", TipoMensaje.MsgAdvertencia) Return "" End If End If ObjBancos.IniciaTransacSQL() If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente) Then ObjBancos.Commit() PDFReciboDePagos(-1, -1, ObjBancos.CveComplementoPago, False) Retorno.AppendFormat(" Complemento de pago {0}
", ObjBancos.ComplementoSerieFolio) Retorno.AppendFormat("XML    ", Encripta(String.Format("OP=CompP&EXT=xml&SerieFolio={0}&CveComplementoPago={1}&CveIE={2}", ObjBancos.ComplementoSerieFolio, ObjBancos.CveComplementoPago, CveIE))) Retorno.AppendFormat("PDF   ", Encripta(String.Format("OP=CompP&EXT=pdf&SerieFolio={0}&CveComplementoPago={1}&CveIE={2}", ObjBancos.ComplementoSerieFolio, ObjBancos.CveComplementoPago, CveIE))) 'Dim ResultadoMail As Integer Dim ObjMail As New ClsSisMail() Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = $"{UsuarioActual.Empresa.Ruta}\XML\Pag\{ObjBancos.ComplementoSerieFolio}.xml"}) LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.Ruta = $"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{ObjBancos.ComplementoSerieFolio}.pdf"}) Dim Mail As String = ObjBancos.CobranzaCorreo Dim Asunto As String = "Envío de complemento de pago" Dim Cuerpo As String = "Complemento de Pago" If Mail.Trim.Length > 0 Then Try If Not ObjMail.SendMail(UsuarioActual.Empresa, Mail, Asunto, Cuerpo, "", LSRutasMail) Then Alert("No se pudo enviar el correo", TipoMensaje.MsgAdvertencia) End If Catch ex As Exception End Try End If Else Retorno.AppendFormat($" Complemento de pago NO generado . {ObjBancos.Mensaje}") ObjBancos.RollBack() End If ObjBancos.Dispose() ' Next Return Retorno.ToString End Function #End Region Private Sub RVTxtFechaDocumento_Init(sender As Object, e As EventArgs) Handles RVTxtFechaDocumento.Init RVTxtFechaDocumento.MaximumValue = NowADS().ToShortDateString Calendario.EndDate = NowADS() End Sub End Class