From a3c38cc1219c8c0a2b897ea9d5b7f2b2af4e405e Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 19 Mar 2020 10:09:30 -0700 Subject: [PATCH] - --- Contabilidad/ContabilizacionVentas.aspx | 2 +- Inventarios/RecepcionUsados.aspx.vb | 11 +- Ventas/ClientesAbonar.aspx.vb | 2868 +++++++++++------------ 3 files changed, 1442 insertions(+), 1439 deletions(-) diff --git a/Contabilidad/ContabilizacionVentas.aspx b/Contabilidad/ContabilizacionVentas.aspx index 3cb3117cb..8eb4fa9aa 100644 --- a/Contabilidad/ContabilizacionVentas.aspx +++ b/Contabilidad/ContabilizacionVentas.aspx @@ -217,7 +217,7 @@ - + diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb index b5a526673..46e950f43 100644 --- a/Inventarios/RecepcionUsados.aspx.vb +++ b/Inventarios/RecepcionUsados.aspx.vb @@ -1730,11 +1730,12 @@ Partial Class Inventarios_RecepcionUsados DivClienteSucursal.Visible = False DdlClientesSucursales.Items.Clear() - Me.EsDistribuidor = CBool(GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("EsDistribuidor", $"CveCliente = {DdlClientes.SelectedValue.ToEntero()}")) - - CargaSucursalesCliente() - CargaFacturasCliente() + If DdlClientes.SelectedValue.ToEntero > 0 Then + Me.EsDistribuidor = CBool(GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=DdlClientes.SelectedValue.ToEntero()).FiltroPrimeroValor("EsDistribuidor", "")) + CargaSucursalesCliente() + CargaFacturasCliente() + End If UpGenerales.Update() End Sub Private Sub CargaFacturasCliente() @@ -2767,6 +2768,8 @@ Partial Class Inventarios_RecepcionUsados "", "-1", "-1", "-1", "", "", "", -1, "", "", CveTamaño) End If + Else + Alert("No se pudo cargar el producto", TipoMensaje.MsgError) End If ObjPS.Dispose() End Sub diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 99fa14ae2..3ad207baf 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -1,658 +1,658 @@ Imports Extensiones Imports System.Data -Imports System.Linq - -Partial Class Ventas_ClientesAbonar +Imports System.Linq + +Partial Class Ventas_ClientesAbonar Inherits ClsPaginas -#Region "Propiedades" - Private ReadOnly Property CveCliente As Integer - Get - Return ViewState("CveCliente").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 CveMonedaPago As Integer - Get - Return ViewState("CveMonedaPago").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveMonedaPago") = value - End Set - End Property - Private Property CveMonedaFiltro As Integer - Get - Return ViewState("CveMonedaFiltro").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveMonedaFiltro") = value - End Set - End Property - Private Property CveSubProyecto As Integer - Get - Return ViewState("CveSubProyecto").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveSubProyecto") = value - End Set - End Property - Private Property CveClienteSucursal As Integer - Get - Return If(IsNothing(ViewState("CveClienteSucursal")), -1, ViewState("CveClienteSucursal").ToString.ToEntero) - End Get - Set(value As Integer) - ViewState("CveClienteSucursal") = 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 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 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 CveCuentaBancariaComplementaria As Integer - Get - Return ViewState("CveCuentaBancariaComplementaria").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveCuentaBancariaComplementaria") = value - End Set - End Property - Private Property NombreComercial As String - Get - Return ViewState("NombreComercial").ToString - End Get - Set(value As String) - ViewState("NombreComercial") = 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 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 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 Property IdCtaAnticipo As Integer - Get - Return ViewState("IdCtaAnticipo").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("IdCtaAnticipo") = value - End Set - End Property - Private Property IdCtaContMonedaExtranjeraAnticipo As Integer - Get - Return ViewState("IdCtaContMonedaExtranjeraAnticipo").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("IdCtaContMonedaExtranjeraAnticipo") = value - End Set - End Property - Private Property IdCtaContMonedaComplementariaAnticipo As Integer - Get - Return ViewState("IdCtaContMonedaComplementariaAnticipo").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("IdCtaContMonedaComplementariaAnticipo") = value - End Set - End Property - - Private Property CveCuentaCliente As Integer - Get - Return ViewState("CveCuentaCliente").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveCuentaCliente") = value - End Set - End Property - Private ReadOnly Property CveCuentaMonedaExtranjera As Integer - Get - Return ViewState("CveCuentaMonedaExtranjera").ToString.ToEntero - End Get - End Property - - Private ReadOnly Property CveCuentaComplementaria As Integer - Get - Return ViewState("CveCuentaComplementaria").ToString.ToEntero - End Get - End Property - - Private ReadOnly Property CveCuentaRetIVA As Integer - Get - Return ViewState("CveCuentaRetIVA").ToString.ToEntero - End Get - End Property - Private ReadOnly Property CveCuentaRetISR As Integer - Get - Return ViewState("CveCuentaRetISR").ToString.ToEntero - End Get - End Property - - 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 Mail As String - Get - If ViewState("Mail") Is Nothing Then - Return "" - Else - Return ViewState("Mail").ToString - End If - End Get - Set(value As String) - ViewState("Mail") = value - End Set - End Property - Private Property CveIESustitucion As Integer - Get - Return ViewState("CveIESustitucion").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveIESustitucion") = value - End Set - End Property - Private Property CFDIRelacionadoSustitucion As String - Get - If ViewState("CFDIRelacionadoSustitucion") Is Nothing Then - Return "-1" - Else - Return ViewState("CFDIRelacionadoSustitucion").ToString - End If - End Get - Set(value As String) - ViewState("CFDIRelacionadoSustitucion") = value - End Set - End Property - Private Property FechaCorteIE As DateTime - Get - Return ViewState("FechaCorteIE").ToString.ToDateTime - End Get - Set(value As DateTime) - ViewState("FechaCorteIE") = 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 FolioIECancelado As String - Get - If ViewState("FolioIECancelado") Is Nothing Then - Return "-1" - Else - Return ViewState("FolioIECancelado").ToString - End If - End Get - Set(value As String) - ViewState("FolioIECancelado") = value - End Set - End Property - Private Property ComplementoSustitucionGenerado As Boolean - Get - Return CBool(ViewState("ComplementoSustitucionGenerado")) - End Get - Set(value As Boolean) - ViewState("ComplementoSustitucionGenerado") = 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 +#Region "Propiedades" + Private ReadOnly Property CveCliente As Integer + Get + Return ViewState("CveCliente").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 -#End Region - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load - If Not Page.IsPostBack Then - CveMonedaPago = -1 - If Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToString.ToEntero > 0 Then - ViewState("CveCliente") = Request("CveCliente").ToString.ToEntero - 'ViewState("CveUsuario") = IfNultl(Request("CveUsuario"), "-1").ToStrirowComisionesng.ToEntero - ViewState("CveMonedaFiltro") = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero - ViewState("CveMoneda") = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero - ViewState("FechaI") = IfNull(Request("FechaI"), "-1").ToString.ToEntero - ViewState("FechaE") = IfNull(Request("FechaE"), "-1").ToString.ToEntero - ViewState("CveSubProyecto") = IfNull(Request("CveSubProyecto"), "-1").ToString.ToEntero - ViewState("CveClienteSucursal") = IfNull(Request("CveClienteSucursal"), "-1").ToString.ToEntero - - ViewState("IdCtaAnticipo") = 0 - ViewState("IdCtaContMonedaExtranjeraAnticipo") = 0 - ViewState("IdCtaContMonedaComplementariaAnticipo") = 0 - - ViewState("CveIESustitucion") = IfNull(Request("CveIESustitucion"), "-1").ToString.ToEntero - DdlProveedorIntermediario.setEsWebService(True) - DdlProveedorIntermediario.Attributes.Add("data-metodo", "getproveedores") - - FechaCorteIE = DateTime.Now - - If CveIESustitucion > 0 Then - CargaIESustituir() - End If - - Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, Now.Day - 1, Now.Day) - Fecha = (dia.ToString + "/" + Now.Month.ToString + "/" + Now.Year.ToString).ToDate - - If CargaCliente(CveCliente, CveMonedaFiltro) Then - - IdCuentaBancaria = 0 - CveCuentaBancaria = 0 - - TxtOtrosImportes.Attributes.Add("onKeyUp", String.Format("FnSuma(this,{0},{1});", "TxtTotal", 0)) - - - If Not UsuarioActual.Empresa.UsaAC Then - EmpresaPrueba = True - End If - - If CveMoneda > 0 Then LbTipoMoneda.Text = String.Format("Pago en {0}", GlobalDTMonedas.FiltraParametros(String.Format("CveMoneda = {0}", CveMoneda)).Rows(0)("Moneda")) - - - If CveMoneda = 2 Then - ChkPagarPesos.Visible = True - TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - DivTCDolaresDolares.Visible = True - TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") - ElseIf CveMoneda = 1 Then - ChkPagarDolares.Visible = True - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - ElseIf CveMoneda = -1 Then - TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + Private Property CveMonedaPago As Integer + Get + Return ViewState("CveMonedaPago").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMonedaPago") = value + End Set + End Property + Private Property CveMonedaFiltro As Integer + Get + Return ViewState("CveMonedaFiltro").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveMonedaFiltro") = value + End Set + End Property + Private Property CveSubProyecto As Integer + Get + Return ViewState("CveSubProyecto").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveSubProyecto") = value + End Set + End Property + Private Property CveClienteSucursal As Integer + Get + Return If(IsNothing(ViewState("CveClienteSucursal")), -1, ViewState("CveClienteSucursal").ToString.ToEntero) + End Get + Set(value As Integer) + ViewState("CveClienteSucursal") = 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 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 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 CveCuentaBancariaComplementaria As Integer + Get + Return ViewState("CveCuentaBancariaComplementaria").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveCuentaBancariaComplementaria") = value + End Set + End Property + Private Property NombreComercial As String + Get + Return ViewState("NombreComercial").ToString + End Get + Set(value As String) + ViewState("NombreComercial") = 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 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 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 Property IdCtaAnticipo As Integer + Get + Return ViewState("IdCtaAnticipo").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("IdCtaAnticipo") = value + End Set + End Property + Private Property IdCtaContMonedaExtranjeraAnticipo As Integer + Get + Return ViewState("IdCtaContMonedaExtranjeraAnticipo").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("IdCtaContMonedaExtranjeraAnticipo") = value + End Set + End Property + Private Property IdCtaContMonedaComplementariaAnticipo As Integer + Get + Return ViewState("IdCtaContMonedaComplementariaAnticipo").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("IdCtaContMonedaComplementariaAnticipo") = value + End Set + End Property + + Private Property CveCuentaCliente As Integer + Get + Return ViewState("CveCuentaCliente").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveCuentaCliente") = value + End Set + End Property + Private ReadOnly Property CveCuentaMonedaExtranjera As Integer + Get + Return ViewState("CveCuentaMonedaExtranjera").ToString.ToEntero + End Get + End Property + + Private ReadOnly Property CveCuentaComplementaria As Integer + Get + Return ViewState("CveCuentaComplementaria").ToString.ToEntero + End Get + End Property + + Private ReadOnly Property CveCuentaRetIVA As Integer + Get + Return ViewState("CveCuentaRetIVA").ToString.ToEntero + End Get + End Property + Private ReadOnly Property CveCuentaRetISR As Integer + Get + Return ViewState("CveCuentaRetISR").ToString.ToEntero + End Get + End Property + + 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 Mail As String + Get + If ViewState("Mail") Is Nothing Then + Return "" + Else + Return ViewState("Mail").ToString + End If + End Get + Set(value As String) + ViewState("Mail") = value + End Set + End Property + Private Property CveIESustitucion As Integer + Get + Return ViewState("CveIESustitucion").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveIESustitucion") = value + End Set + End Property + Private Property CFDIRelacionadoSustitucion As String + Get + If ViewState("CFDIRelacionadoSustitucion") Is Nothing Then + Return "-1" + Else + Return ViewState("CFDIRelacionadoSustitucion").ToString + End If + End Get + Set(value As String) + ViewState("CFDIRelacionadoSustitucion") = value + End Set + End Property + Private Property FechaCorteIE As DateTime + Get + Return ViewState("FechaCorteIE").ToString.ToDateTime + End Get + Set(value As DateTime) + ViewState("FechaCorteIE") = 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 FolioIECancelado As String + Get + If ViewState("FolioIECancelado") Is Nothing Then + Return "-1" + Else + Return ViewState("FolioIECancelado").ToString + End If + End Get + Set(value As String) + ViewState("FolioIECancelado") = value + End Set + End Property + Private Property ComplementoSustitucionGenerado As Boolean + Get + Return CBool(ViewState("ComplementoSustitucionGenerado")) + End Get + Set(value As Boolean) + ViewState("ComplementoSustitucionGenerado") = 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 + + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + CveMonedaPago = -1 + If Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToString.ToEntero > 0 Then + ViewState("CveCliente") = Request("CveCliente").ToString.ToEntero + 'ViewState("CveUsuario") = IfNultl(Request("CveUsuario"), "-1").ToStrirowComisionesng.ToEntero + ViewState("CveMonedaFiltro") = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero + ViewState("CveMoneda") = IfNull(Request("CveMoneda"), "-1").ToString.ToEntero + ViewState("FechaI") = IfNull(Request("FechaI"), "-1").ToString.ToEntero + ViewState("FechaE") = IfNull(Request("FechaE"), "-1").ToString.ToEntero + ViewState("CveSubProyecto") = IfNull(Request("CveSubProyecto"), "-1").ToString.ToEntero + ViewState("CveClienteSucursal") = IfNull(Request("CveClienteSucursal"), "-1").ToString.ToEntero + + ViewState("IdCtaAnticipo") = 0 + ViewState("IdCtaContMonedaExtranjeraAnticipo") = 0 + ViewState("IdCtaContMonedaComplementariaAnticipo") = 0 + + ViewState("CveIESustitucion") = IfNull(Request("CveIESustitucion"), "-1").ToString.ToEntero + DdlProveedorIntermediario.setEsWebService(True) + DdlProveedorIntermediario.Attributes.Add("data-metodo", "getproveedores") + + FechaCorteIE = DateTime.Now + + If CveIESustitucion > 0 Then + CargaIESustituir() + End If + + Dim dia As Integer = If(UsuarioActual.CveEmpresa = 13, Now.Day - 1, Now.Day) + Fecha = (dia.ToString + "/" + Now.Month.ToString + "/" + Now.Year.ToString).ToDate + + If CargaCliente(CveCliente, CveMonedaFiltro) Then + + IdCuentaBancaria = 0 + CveCuentaBancaria = 0 + + TxtOtrosImportes.Attributes.Add("onKeyUp", String.Format("FnSuma(this,{0},{1});", "TxtTotal", 0)) + + + If Not UsuarioActual.Empresa.UsaAC Then + EmpresaPrueba = True + End If + + If CveMoneda > 0 Then LbTipoMoneda.Text = String.Format("Pago en {0}", GlobalDTMonedas.FiltraParametros(String.Format("CveMoneda = {0}", CveMoneda)).Rows(0)("Moneda")) + + + If CveMoneda = 2 Then + ChkPagarPesos.Visible = True TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - If UsuarioActual.TienePermisoProceso(209) Or UsuarioActual.TienePermisoProceso(204) Then - HlSaldarCuentasIncobrables.Visible = True - End If - - End If - - If CveMonedaFiltro = -1 Then - ChkPagarPesos.Visible = False - ChkPagarDolares.Visible = False - End If - - RegistraScript($"TipoCambioActual = {GlobalTipoCambio(Fecha).FormatoNumero(4)}") - End If - - RVTxtFechaDocumento.MaximumValue = Now.ToString("dd/MM/yyyy") - - End If - - If (CveMonedaFiltro = 2 And ChkPagarPesos.Checked) Then - RegistraScript("document.getElementById('DivTC').style.display = 'block';") - End If - - End Sub - - Private Sub CargaTipoTransaccion() - DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros("Tipo = 'Ing' AND Estatus = 1 ") - DdlTipoTransaccion.DataBind() - DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1")) - RecargaCuentasDepositos() - End Sub - - Private Sub CargaCuentas() - DdlCuenta.Items.Clear() - Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario) - - 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 CveMonedaFiltro > 0 Then - dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMonedaFiltro)) - End If - End If - - DdlCuenta.DataSource = dt - DdlCuenta.DataBind() - DdlCuenta.Items.Insert(0, New ListItem("Seleccione cuenta", "-1")) - End Sub - - Private Function CargaCliente(tCveCliente As Integer, tCveMoneda As Integer) As Boolean - Dim Retorno As Boolean = False - Dim ObjCliente As New ClsClientes() - If ObjCliente.GetClientes(tCveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then - If ObjCliente.DtResultados.Rows.Count > 0 Then - Retorno = True - CargaCuentas() - CargaTipoTransaccion() - TxtFechaDocumento.Text = IIf(CveIESustitucion > 0, FechaCorteIE.ToShortDateString, Now.ToShortDateString).ToString - - TxtAboneA.Enabled = False - LbEncabezado.Text = String.Format("{1}", CveCliente, ObjCliente.NombreComercial) - TxtAboneA.Text = ObjCliente.NombreComercial - NombreComercial = ObjCliente.NombreComercial - TxtImporte.Attributes.Add("disabled", "disabled") - If DdlTipoTransaccion.SelectedValue = "1" Then RFVFolio.Enabled = True Else RFVFolio.Enabled = False - ViewState("CtaCliente") = ObjCliente.IdCtaContClientes - ViewState("IdCuentaCliente") = ObjCliente.IdCtaContClientes - ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera - ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria - ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA - ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR - - ViewState("CveCuentaCliente") = ObjCliente.CveCuentaClientes - ViewState("CveCuentaMonedaExtranjera") = ObjCliente.CveCuentaMonedaExtranjera - ViewState("CveCuentaComplementaria") = ObjCliente.CveCuentaComplementaria - ViewState("CveCuentaRetIVA") = ObjCliente.CveCuentaRetIVA - ViewState("CveCuentaRetISR") = ObjCliente.CveCuentaRetISR - - ViewState("IdCtaAnticipo") = ObjCliente.IdCtaContAnticipos - ViewState("IdCtaContMonedaExtranjeraAnticipo") = ObjCliente.IdCtaMonedaExtranjeraAnticipos - ViewState("IdCtaContMonedaComplementariaAnticipo") = ObjCliente.IdCtaContCompAnticipos - - Mail = String.Format("{0};{1}", ObjCliente.CobranzaCorreo, ObjCliente.NotificarA) - - If Request("FechaI") IsNot Nothing Then ViewState("FechaI") = Request("FechaI") Else ViewState("FechaI") = "-1" - If Request("FechaF") IsNot Nothing Then ViewState("FechaF") = Request("FechaF") Else ViewState("FechaF") = "-1" - - CargaDatos(tCveMoneda) - Else - Alert("El Cliente Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) - End If - End If - ObjCliente.Dispose() - Return Retorno - End Function - - Private Sub CargaDatos(pCveMoneda As Integer) - Dim Mov As New ClsMovimientos - Dim FechaI As String = IfNull(Request("FechaI"), "-1") - Dim FechaF As String = IfNull(Request("FechaF"), "-1") - - Dim FechaCorte As Date = IIf(CveIESustitucion > 0, (FechaCorteIE.ToDate).ToShortDateString, DateTime.Now.AddYears(1).ToShortDateString).ToString.ToDate - - Dim SumDescuentoProntoPago As Double = 0.0 - If Mov.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, FechaI, FechaF, pCveMoneda, CveSubProyecto, UsuarioActual.CveEmpresa, CveClienteSucursal, FechaCorte:=FechaCorte, CveIESustitucion:=CveIESustitucion) Then - Dim TmpCxCAux As DataTable - TmpCxCAux = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio") - SumDescuentoProntoPago = TmpCxCAux.SUM("DescuentoProntoPago") - - GvCxC.DataSource = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio") - GvCxC.DataBind() - CveMoneda = pCveMoneda - - End If - TxtImporte.Text = "" - TxtObservaciones.Text = "" - If SumDescuentoProntoPago > 0.0 Then - GvCxC.Columns(14).Visible = True 'MOSTRAR DESCUENTO PRONTO PAGO + TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + DivTCDolaresDolares.Visible = True + TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") + ElseIf CveMoneda = 1 Then + ChkPagarDolares.Visible = True + TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + ElseIf CveMoneda = -1 Then + TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") + TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + End If + + If UsuarioActual.TienePermisoProceso(209) Or UsuarioActual.TienePermisoProceso(204) Then + HlSaldarCuentasIncobrables.Visible = True + End If + + End If + + If CveMonedaFiltro = -1 Then + ChkPagarPesos.Visible = False + ChkPagarDolares.Visible = False + End If + + RegistraScript($"TipoCambioActual = {GlobalTipoCambio(Fecha).FormatoNumero(4)}") + End If + + RVTxtFechaDocumento.MaximumValue = Now.ToString("dd/MM/yyyy") + + End If + + If (CveMonedaFiltro = 2 And ChkPagarPesos.Checked) Then + RegistraScript("document.getElementById('DivTC').style.display = 'block';") + End If + + End Sub + + Private Sub CargaTipoTransaccion() + DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros("Tipo = 'Ing' AND Estatus = 1 ") + DdlTipoTransaccion.DataBind() + DdlTipoTransaccion.Items.Insert(0, New ListItem("Seleccione Tipo Movimiento", "-1")) + RecargaCuentasDepositos() + End Sub + + Private Sub CargaCuentas() + DdlCuenta.Items.Clear() + Dim dt As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario) + + 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 CveMonedaFiltro > 0 Then + dt = dt.FiltraParametros(String.Format("CveMoneda = {0}", CveMonedaFiltro)) + End If + End If + + DdlCuenta.DataSource = dt + DdlCuenta.DataBind() + DdlCuenta.Items.Insert(0, New ListItem("Seleccione cuenta", "-1")) + End Sub + + Private Function CargaCliente(tCveCliente As Integer, tCveMoneda As Integer) As Boolean + Dim Retorno As Boolean = False + Dim ObjCliente As New ClsClientes() + If ObjCliente.GetClientes(tCveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then + If ObjCliente.DtResultados.Rows.Count > 0 Then + Retorno = True + CargaCuentas() + CargaTipoTransaccion() + TxtFechaDocumento.Text = IIf(CveIESustitucion > 0, FechaCorteIE.ToShortDateString, Now.ToShortDateString).ToString + + TxtAboneA.Enabled = False + LbEncabezado.Text = String.Format("{1}", CveCliente, ObjCliente.NombreComercial) + TxtAboneA.Text = ObjCliente.NombreComercial + NombreComercial = ObjCliente.NombreComercial + TxtImporte.Attributes.Add("disabled", "disabled") + If DdlTipoTransaccion.SelectedValue = "1" Then RFVFolio.Enabled = True Else RFVFolio.Enabled = False + ViewState("CtaCliente") = ObjCliente.IdCtaContClientes + ViewState("IdCuentaCliente") = ObjCliente.IdCtaContClientes + ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera + ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria + ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA + ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR + + ViewState("CveCuentaCliente") = ObjCliente.CveCuentaClientes + ViewState("CveCuentaMonedaExtranjera") = ObjCliente.CveCuentaMonedaExtranjera + ViewState("CveCuentaComplementaria") = ObjCliente.CveCuentaComplementaria + ViewState("CveCuentaRetIVA") = ObjCliente.CveCuentaRetIVA + ViewState("CveCuentaRetISR") = ObjCliente.CveCuentaRetISR + + ViewState("IdCtaAnticipo") = ObjCliente.IdCtaContAnticipos + ViewState("IdCtaContMonedaExtranjeraAnticipo") = ObjCliente.IdCtaMonedaExtranjeraAnticipos + ViewState("IdCtaContMonedaComplementariaAnticipo") = ObjCliente.IdCtaContCompAnticipos + + Mail = String.Format("{0};{1}", ObjCliente.CobranzaCorreo, ObjCliente.NotificarA) + + If Request("FechaI") IsNot Nothing Then ViewState("FechaI") = Request("FechaI") Else ViewState("FechaI") = "-1" + If Request("FechaF") IsNot Nothing Then ViewState("FechaF") = Request("FechaF") Else ViewState("FechaF") = "-1" + + CargaDatos(tCveMoneda) + Else + Alert("El Cliente Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) + End If + End If + ObjCliente.Dispose() + Return Retorno + End Function + + Private Sub CargaDatos(pCveMoneda As Integer) + Dim Mov As New ClsMovimientos + Dim FechaI As String = IfNull(Request("FechaI"), "-1") + Dim FechaF As String = IfNull(Request("FechaF"), "-1") + + Dim FechaCorte As Date = IIf(CveIESustitucion > 0, (FechaCorteIE.ToDate).ToShortDateString, DateTime.Now.AddYears(1).ToShortDateString).ToString.ToDate + + Dim SumDescuentoProntoPago As Double = 0.0 + If Mov.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, FechaI, FechaF, pCveMoneda, CveSubProyecto, UsuarioActual.CveEmpresa, CveClienteSucursal, FechaCorte:=FechaCorte, CveIESustitucion:=CveIESustitucion) Then + Dim TmpCxCAux As DataTable + TmpCxCAux = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio") + SumDescuentoProntoPago = TmpCxCAux.SUM("DescuentoProntoPago") + + GvCxC.DataSource = Mov.DtResultados.FiltraParametros("Saldo > 0", "Fecha,SerieFolio") + GvCxC.DataBind() + CveMoneda = pCveMoneda + + End If + TxtImporte.Text = "" + TxtObservaciones.Text = "" + If SumDescuentoProntoPago > 0.0 Then + GvCxC.Columns(14).Visible = True 'MOSTRAR DESCUENTO PRONTO PAGO If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then GvCxC.Columns(15).Visible = True 'HABILITAR NC - End If - End If - - Mov.Dispose() - UPVentas.Update() - End Sub - - Protected Sub DdlCuenta_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuenta.SelectedIndexChanged - 'recargo la moneda con la que se va a pagar - Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue) - Dim moneda As Integer = 0 - If DdlCuenta.SelectedValue > 0 Then - moneda = GlobalDTBancosCuentas(-1).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero - End If - - CveMonedaPago = moneda - - If dr IsNot Nothing Then - If ChkPagarPesos.Checked Then - CveMoneda = 2 - RegistraScript("document.getElementById('DivTC').style.display = 'block';") - RegistraScript("CambiaPesosDolares();") - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - ElseIf ChkPagarPesos.Checked = False Then - CveMoneda = dr("CveMoneda").ToString.ToEntero - RegistraScript("document.getElementById('DivTC').style.display = 'none';") - RegistraScript("CambiaDolaresPesos();") - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - End If - - If ChkPagarDolares.Checked Then - CveMoneda = 1 - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - End If - - IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero - IdCuentaBancariaComplementaria = dr("IdCtaContableComplementaria").ToString.ToEntero - - CveCuentaBancaria = dr("IdCtaContableSIG").ToString.ToEntero - CveCuentaBancariaComplementaria = dr("IdCtaContableComplementariaSIG").ToString.ToEntero - ValidaCuentaDePagoFormaDePago() - End If - - CargaDatos(CveMoneda) - - - ' si no tiene CveMoneda, o es -1, cuando cambia de cuenta filtra las facturas - If IfNull(Request("CveMoneda"), "-1").ToString.ToEntero = -1 Then - CargaDatos(-1) - - moneda = GlobalDTBancosCuentas(-1).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero - If moneda = 1 Then - 'DivTC.Visible = True - DivTCDolares.Visible = False - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) - ElseIf moneda = 2 Then - 'DivTC.Visible = False - RegistraScript("document.getElementById('DivTC').style.display = 'none';") - DivTCDolares.Visible = True - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) - End If - End If - - If HdnTipoTransaccion.Value = "Ing" AndAlso 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.ToEntero - End If - ObjFolios.Dispose() - End If - Else - Dim Folio As Long - Dim Banco As New ClsBancos - Folio = Banco.GetNextFolio(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero) - Banco.Dispose() - TxtFolio.Text = Folio.ToString - - End If - - Else - TxtFolio.Text = "" - - End If - - - End Sub - - Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged - 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 - End If - RecargaCuentasDepositos() - 'CargaCuentas() - ValidaCuentaDePagoFormaDePago() - End Sub - - Protected Sub GvCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxC.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - Dim moneda As Integer = 0 - If e.Row.RowIndex = 0 Then - e.Row.Cells(0).ColumnSpan = 5 - e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(1).Visible = False - e.Row.Cells(2).Visible = False - e.Row.Cells(3).Visible = False - e.Row.Cells(4).Visible = False - e.Row.BackColor = Drawing.Color.LightGray - End If - If e.Row.RowIndex = 1 Then - e.Row.Cells(0).Width = Unit.Pixel(25) - e.Row.Cells(1).Width = Unit.Pixel(90) - e.Row.Cells(2).Width = Unit.Pixel(70) - e.Row.Cells(3).Width = Unit.Pixel(70) - e.Row.Cells(6).Width = Unit.Pixel(50) - e.Row.Cells(7).Width = Unit.Pixel(70) - e.Row.Cells(8).Width = Unit.Pixel(50) - e.Row.Cells(9).Width = Unit.Pixel(90) - e.Row.Cells(10).Width = Unit.Pixel(80) - e.Row.Cells(11).Width = Unit.Pixel(60) - End If - - ' e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right - ' e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right - ' e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(9).HorizontalAlign = HorizontalAlign.Right - e.Row.Cells(10).HorizontalAlign = HorizontalAlign.Right - - If e.Row.DBCampo("Saldo").ToDecimal < 0 Then e.Row.Cells(11).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("DiasVencidos").ToDecimal > 0 AndAlso CType(sender, GridView).ID = "GvCxC" Then e.Row.Cells(5).ForeColor = Drawing.Color.Red - If e.Row.DBCampo("Original").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = "" - If e.Row.DBCampo("Abonado").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = "" - If e.Row.DBCampo("Saldo").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = "" - - Select Case RblTipoPago.SelectedValue - Case "1" - If DdlCuenta.SelectedValue > 0 Then - moneda = CveMonedaPago - ElseIf RblTipoPago.SelectedValue = "1" Then - e.Row.FCCheckBox("Chk").Enabled = False - e.Row.FCTextBox("TxtAbonar").Enabled = False - End If - Case "3" - moneda = CveMonedaPago - - End Select - + End If + End If + + Mov.Dispose() + UPVentas.Update() + End Sub + + Protected Sub DdlCuenta_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuenta.SelectedIndexChanged + 'recargo la moneda con la que se va a pagar + Dim dr As DataRow = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltroPrimero("CveCuenta = " & DdlCuenta.SelectedValue) + Dim moneda As Integer = 0 + If DdlCuenta.SelectedValue > 0 Then + moneda = GlobalDTBancosCuentas(-1).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero + End If + + CveMonedaPago = moneda + + If dr IsNot Nothing Then + If ChkPagarPesos.Checked Then + CveMoneda = 2 + RegistraScript("document.getElementById('DivTC').style.display = 'block';") + RegistraScript("CambiaPesosDolares();") + TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) + ElseIf ChkPagarPesos.Checked = False Then + CveMoneda = dr("CveMoneda").ToString.ToEntero + RegistraScript("document.getElementById('DivTC').style.display = 'none';") + RegistraScript("CambiaDolaresPesos();") + TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) + End If + + If ChkPagarDolares.Checked Then + CveMoneda = 1 + TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) + End If + + IdCuentaBancaria = dr("IdCtaContable").ToString.ToEntero + IdCuentaBancariaComplementaria = dr("IdCtaContableComplementaria").ToString.ToEntero + + CveCuentaBancaria = dr("IdCtaContableSIG").ToString.ToEntero + CveCuentaBancariaComplementaria = dr("IdCtaContableComplementariaSIG").ToString.ToEntero + ValidaCuentaDePagoFormaDePago() + End If + + CargaDatos(CveMoneda) + + + ' si no tiene CveMoneda, o es -1, cuando cambia de cuenta filtra las facturas + If IfNull(Request("CveMoneda"), "-1").ToString.ToEntero = -1 Then + CargaDatos(-1) + + moneda = GlobalDTBancosCuentas(-1).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero + If moneda = 1 Then + 'DivTC.Visible = True + DivTCDolares.Visible = False + TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) + ElseIf moneda = 2 Then + 'DivTC.Visible = False + RegistraScript("document.getElementById('DivTC').style.display = 'none';") + DivTCDolares.Visible = True + TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) + End If + End If + + If HdnTipoTransaccion.Value = "Ing" AndAlso 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.ToEntero + End If + ObjFolios.Dispose() + End If + Else + Dim Folio As Long + Dim Banco As New ClsBancos + Folio = Banco.GetNextFolio(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero) + Banco.Dispose() + TxtFolio.Text = Folio.ToString + + End If + + Else + TxtFolio.Text = "" + + End If + + + End Sub + + Protected Sub DdlTipoTransaccion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoTransaccion.SelectedIndexChanged + 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 + End If + RecargaCuentasDepositos() + 'CargaCuentas() + ValidaCuentaDePagoFormaDePago() + End Sub + + Protected Sub GvCxC_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCxC.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + Dim moneda As Integer = 0 + If e.Row.RowIndex = 0 Then + e.Row.Cells(0).ColumnSpan = 5 + e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(1).Visible = False + e.Row.Cells(2).Visible = False + e.Row.Cells(3).Visible = False + e.Row.Cells(4).Visible = False + e.Row.BackColor = Drawing.Color.LightGray + End If + If e.Row.RowIndex = 1 Then + e.Row.Cells(0).Width = Unit.Pixel(25) + e.Row.Cells(1).Width = Unit.Pixel(90) + e.Row.Cells(2).Width = Unit.Pixel(70) + e.Row.Cells(3).Width = Unit.Pixel(70) + e.Row.Cells(6).Width = Unit.Pixel(50) + e.Row.Cells(7).Width = Unit.Pixel(70) + e.Row.Cells(8).Width = Unit.Pixel(50) + e.Row.Cells(9).Width = Unit.Pixel(90) + e.Row.Cells(10).Width = Unit.Pixel(80) + e.Row.Cells(11).Width = Unit.Pixel(60) + End If + + ' e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right + ' e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Right + ' e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(9).HorizontalAlign = HorizontalAlign.Right + e.Row.Cells(10).HorizontalAlign = HorizontalAlign.Right + + If e.Row.DBCampo("Saldo").ToDecimal < 0 Then e.Row.Cells(11).ForeColor = Drawing.Color.Red + If e.Row.DBCampo("DiasVencidos").ToDecimal > 0 AndAlso CType(sender, GridView).ID = "GvCxC" Then e.Row.Cells(5).ForeColor = Drawing.Color.Red + If e.Row.DBCampo("Original").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlSaldoOriginal"), Literal).Text = "" + If e.Row.DBCampo("Abonado").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlAbonado"), Literal).Text = "" + If e.Row.DBCampo("Saldo").ToDecimal = 0 Then DirectCast(e.Row.FindControl("LtlSaldo"), Literal).Text = "" + + Select Case RblTipoPago.SelectedValue + Case "1" + If DdlCuenta.SelectedValue > 0 Then + moneda = CveMonedaPago + ElseIf RblTipoPago.SelectedValue = "1" Then + e.Row.FCCheckBox("Chk").Enabled = False + e.Row.FCTextBox("TxtAbonar").Enabled = False + End If + Case "3" + moneda = CveMonedaPago + + End Select + If e.Row.DBCampo("DescuentoProntoPago").ToDecimal() > 0 Then e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1}); FnCambia({2},this,{1},0,{3},{4}); FnSeleccionaNC({5},{6},{0});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo"), e.Row.FCCheckBox("Chk").ClientID, CveMonedaFiltro, moneda, e.Row.FCCheckBox("Chk").ClientID, e.Row.FCCheckBox("ChkGenerarNC").ClientID)) Else e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1}); FnCambia({2},this,{1},0,{3},{4});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo"), e.Row.FCCheckBox("Chk").ClientID, CveMonedaFiltro, moneda)) End If - If Not UsuarioActual.Empresa.Funcionalidad(536) = "1" Then - If e.Row.DBCampo("TipoDocto") = "Rem" Then - e.Row.FCCheckBox("Chk").Visible = False ' que no se pueda pagar si es remisión - e.Row.Cells(0).ToolTip = "El documento es remisión y no se puede realizar el pago" - End If - End If - - - If e.Row.DBCampo("CveVenta").ToEntero > 0 Then - e.Row.FCLiteral("LtlAux").Text = String.Format("Ir", e.Row.DBCampo("CveCliente").ToEntero, e.Row.DBCampo("CveVenta").ToEntero) - e.Row.FCTextBox("TxtAbonar").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},1,{2},{3});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), CveMonedaFiltro, moneda)) - - If UsuarioActual.Empresa.Funcionalidad(157).ToDecimal <> 0 Then - e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnLimites({0},this,{1},{2},2);", e.Row.FCCheckBox("Chk").ClientID, -UsuarioActual.Empresa.Funcionalidad(157), UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal)) - e.Row.FCRangeValidator("RVComision").MinimumValue = -UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal - e.Row.FCRangeValidator("RVComision").MaximumValue = UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal - e.Row.FCRangeValidator("RVComision").Enabled = True - Else - e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},2,{2},{3});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), CveMonedaFiltro, moneda)) - e.Row.FCRangeValidator("RVComision").MinimumValue = 0.00 - e.Row.FCRangeValidator("RVComision").MaximumValue = e.Row.DBCampo("Saldo") - End If - + If Not UsuarioActual.Empresa.Funcionalidad(536) = "1" Then + If e.Row.DBCampo("TipoDocto") = "Rem" Then + e.Row.FCCheckBox("Chk").Visible = False ' que no se pueda pagar si es remisión + e.Row.Cells(0).ToolTip = "El documento es remisión y no se puede realizar el pago" + End If + End If + + + If e.Row.DBCampo("CveVenta").ToEntero > 0 Then + e.Row.FCLiteral("LtlAux").Text = String.Format("Ir", e.Row.DBCampo("CveCliente").ToEntero, e.Row.DBCampo("CveVenta").ToEntero) + e.Row.FCTextBox("TxtAbonar").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},1,{2},{3});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), CveMonedaFiltro, moneda)) + + If UsuarioActual.Empresa.Funcionalidad(157).ToDecimal <> 0 Then + e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnLimites({0},this,{1},{2},2);", e.Row.FCCheckBox("Chk").ClientID, -UsuarioActual.Empresa.Funcionalidad(157), UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal)) + e.Row.FCRangeValidator("RVComision").MinimumValue = -UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal + e.Row.FCRangeValidator("RVComision").MaximumValue = UsuarioActual.Empresa.Funcionalidad(157).ToString.ToDecimal + e.Row.FCRangeValidator("RVComision").Enabled = True + Else + e.Row.FCTextBox("TxtComision").Attributes.Add("onblur", String.Format("FnCambia({0},this,{1},2,{2},{3});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), CveMonedaFiltro, moneda)) + e.Row.FCRangeValidator("RVComision").MinimumValue = 0.00 + e.Row.FCRangeValidator("RVComision").MaximumValue = e.Row.DBCampo("Saldo") + End If + If e.Row.DBCampo("DescuentoProntoPago").ToDecimal() > 0 AndAlso e.Row.DBCampo("DiasVencidos").ToEntero() <= 0 Then e.Row.FCCheckBox("ChkGenerarNC").Visible = True e.Row.FCCheckBox("ChkGenerarNC").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1}); FnCambia({2},this,{1},0,{3},{4}); FnEditarImporte({2}, {0});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo").ToDecimal - e.Row.DBCampo("DescuentoProntoPago").ToDecimal, e.Row.FCCheckBox("ChkGenerarNC").ClientID, CveMonedaFiltro, moneda)) - End If - - Else - e.Row.FCTextBox("TxtAbonar").Visible = False - e.Row.FCTextBox("TxtComision").Visible = False - e.Row.FCCheckBox("Chk").Visible = False - End If - - End If - End Sub - + End If + + Else + e.Row.FCTextBox("TxtAbonar").Visible = False + e.Row.FCTextBox("TxtComision").Visible = False + e.Row.FCCheckBox("Chk").Visible = False + End If + + End If + End Sub + Protected Sub BtnIEGuardar_Click(sender As Object, e As EventArgs) Handles BtnIEGuardar.Click If Not TxtImporte.Text.ToDecimal > 0 Then @@ -663,34 +663,34 @@ Partial Class Ventas_ClientesAbonar If Not (TxtFolio.Text.Trim <> "" Or RblTipoPago.SelectedValue = "2" Or RblTipoPago.SelectedValue = "3") Then Alert("Debe de llevar un Folio", TipoMensaje.MsgAdvertencia) Exit Sub - End If - - Dim Cuenta As String = "" - Dim CuentaDeposito As String = "" - - Dim seleccion As Integer = 0 - For Each gvr As GridViewRow In GvCxC.Rows - If gvr.FCCheckBox("Chk").Checked Then - seleccion += 1 - End If - Next - - If seleccion = 0 Then - Alert("No ha seleccionado ninguna factura para abonar.", TipoMensaje.MsgAdvertencia) - Exit Sub End If - - Dim CvePrePoliza As Integer = 0 - Dim IDPoliza As Integer = 0 - Dim FolioPoliza As String = "" - Dim CveIE As Integer = -1 - Dim CveVentasPago As New List(Of Integer) - Dim SeriesPago As New List(Of String) - - Dim MsgError As String = "" - Dim NCGeneradas As New List(Of Modelos.Factura.MMensajeFactura) - Dim ListaFacturasGenerarNC As New List(Of Modelos.Factura) - + + Dim Cuenta As String = "" + Dim CuentaDeposito As String = "" + + Dim seleccion As Integer = 0 + For Each gvr As GridViewRow In GvCxC.Rows + If gvr.FCCheckBox("Chk").Checked Then + seleccion += 1 + End If + Next + + If seleccion = 0 Then + Alert("No ha seleccionado ninguna factura para abonar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim CvePrePoliza As Integer = 0 + Dim IDPoliza As Integer = 0 + Dim FolioPoliza As String = "" + Dim CveIE As Integer = -1 + Dim CveVentasPago As New List(Of Integer) + Dim SeriesPago As New List(Of String) + + Dim MsgError As String = "" + Dim NCGeneradas As New List(Of Modelos.Factura.MMensajeFactura) + Dim ListaFacturasGenerarNC As New List(Of Modelos.Factura) + Dim ImporteSeleccionado As Decimal = 0 '02-05-2018 MANDAMOS CANCELAR EL COMPLEMENTO A SUSTITUIR @@ -701,14 +701,14 @@ Partial Class Ventas_ClientesAbonar If ErrorCancelarIE Then Exit Sub End If - End If - - Dim ObjIE As New ClsBancos() - Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) + End If + + Dim ObjIE As New ClsBancos() + Dim ObjMov As New ClsContabilidad(ObjIE.IniciaTransacSQL) Dim ObjVentasSaldos As New ClsVentas(ObjIE.IniciaTransacSQL) - Dim ObjEvento As New ClsOIEventos(ObjIE.IniciaTransacSQL) - Dim ObjConta As ClsContPAQi = Nothing - + Dim ObjEvento As New ClsOIEventos(ObjIE.IniciaTransacSQL) + Dim ObjConta As ClsContPAQi = Nothing + Try Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos Dim filemove As String = "" @@ -1752,16 +1752,16 @@ Partial Class Ventas_ClientesAbonar Alert(MsgError, TipoMensaje.MsgAdvertencia) End If - ObjIE.Dispose() - ObjVentasSaldos.Dispose() - ObjMov.Dispose() - If ObjConta IsNot Nothing Then ObjConta.Dispose() - ObjEvento.Dispose() - + ObjIE.Dispose() + ObjVentasSaldos.Dispose() + ObjMov.Dispose() + If ObjConta IsNot Nothing Then ObjConta.Dispose() + ObjEvento.Dispose() + LimpiaCampos() - UPVentas.Update() - + UPVentas.Update() + End Sub #Region " N O T A - D E - C R E D I T O" @@ -2136,89 +2136,89 @@ Partial Class Ventas_ClientesAbonar Return query.QueryToDataTable(False) End Function - Protected Function CreaDTDetalleNC() As DataTable - Dim TmpDT = New DataTable - TmpDT.Columns.Add("CveVenta", GetType(Integer)) - TmpDT.Columns.Add("Consec", GetType(Integer)) - TmpDT.Columns.Add("Cantidad", GetType(Decimal)) - TmpDT.Columns.Add("Codigo", GetType(String)) - TmpDT.Columns.Add("CveUM", GetType(Integer)) - TmpDT.Columns.Add("UM", GetType(String)) - TmpDT.Columns.Add("SATClaveUM", GetType(String)) - TmpDT.Columns.Add("CveClasificacion", GetType(Integer)) - TmpDT.Columns.Add("Clasificacion", GetType(String)) - TmpDT.Columns.Add("CvePS", GetType(Integer)) - TmpDT.Columns.Add("PS", GetType(String)) - TmpDT.Columns.Add("CodigoPS", GetType(String)) - TmpDT.Columns.Add("SATClaveProdServ", GetType(String)) - TmpDT.Columns.Add("NoIdentificacion", GetType(String)) - TmpDT.Columns.Add("CveTipoPS", GetType(Integer)) - TmpDT.Columns.Add("CveTipoInvPS", GetType(Integer)) - TmpDT.Columns.Add("SerieLote", GetType(String)) - TmpDT.Columns.Add("CuentaPredial", GetType(String)) - TmpDT.Columns.Add("Obs", GetType(String)) - TmpDT.Columns.Add("TiempoEntrega", GetType(String)) - TmpDT.Columns.Add("PU", GetType(Decimal)) - TmpDT.Columns.Add("IVA", GetType(Decimal)) - TmpDT.Columns.Add("ImporteIVA", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeIVA", GetType(Decimal)) - TmpDT.Columns.Add("ImporteRetIVA", GetType(Decimal)) - TmpDT.Columns.Add("ImporteRetISR", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeRetIVA", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeRetISR", GetType(Decimal)) - TmpDT.Columns.Add("ImporteIEPS", GetType(Decimal)) - TmpDT.Columns.Add("IEPS", GetType(Decimal)) - TmpDT.Columns.Add("PorcentajeIEPS", GetType(Decimal)) - TmpDT.Columns.Add("Descuento", GetType(Decimal)) - TmpDT.Columns.Add("TipoDescuento", GetType(Integer)) - TmpDT.Columns.Add("TotalImporte", GetType(Decimal)) - TmpDT.Columns.Add("Total", GetType(Decimal)) - 'Para uso del módulo contable - TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer)) - TmpDT.Columns.Add("IdCtaContVentas", GetType(Integer)) - TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean)) - TmpDT.Columns.Add("CveProyecto", GetType(Integer)) - TmpDT.Columns.Add("Proyecto", GetType(String)) - TmpDT.Columns.Add("CveSubProyecto", GetType(Integer)) - TmpDT.Columns.Add("SubProyecto", GetType(String)) - TmpDT.Columns.Add("CveVentaDetallePadre", GetType(Integer)) - 'TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto - TmpDT.Columns.Add("CvePresupuestoIngreso", GetType(Integer)) - TmpDT.Columns.Add("CveFuenteRecaudacion", GetType(Integer)) - 'Contratos - TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) - 'Remisiones a Facturas - TmpDT.Columns.Add("CveVentaDetalle", GetType(Integer)) - TmpDT.Columns.Add("CveVentaDetalleRemision", GetType(Integer)) - TmpDT.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer)) - 'Pedido2 a Facturas - TmpDT.Columns.Add("CveVentaDetallePedido2", GetType(Integer)) - TmpDT.Columns.Add("Origen", GetType(Integer)) - 'Ordenes Servicio - TmpDT.Columns.Add("CveOS", GetType(Integer)) - TmpDT.Columns.Add("CveOSDetalle", GetType(Integer)) - TmpDT.Columns.Add("SeFacturara", GetType(Integer)) - TmpDT.Columns.Add("Folio", GetType(Integer)) - TmpDT.Columns.Add("Estatus", GetType(String)) - 'Ordenamiento - TmpDT.Columns.Add("Orden", GetType(Integer)) - TmpDT.Columns.Add("TipoDocto", GetType(String)) - 'OC - TmpDT.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) - TmpDT.Columns.Add("EntregaDirecta", GetType(Integer)) - TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer)) - TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal)) - TmpDT.Columns.Add("CantidadFacturadaCot", GetType(Decimal)) - TmpDT.Columns.Add("CantidadFacturadaPed2", GetType(Decimal)) - TmpDT.Columns.Add("CantidadInventario", GetType(Decimal)) - TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String)) - TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String)) - TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String)) - TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String)) - TmpDT.Columns.Add("CveTamaño", GetType(Integer)) - TmpDT.Columns.Add("EsCargo", GetType(Boolean)) - - Return TmpDT + Protected Function CreaDTDetalleNC() As DataTable + Dim TmpDT = New DataTable + TmpDT.Columns.Add("CveVenta", GetType(Integer)) + TmpDT.Columns.Add("Consec", GetType(Integer)) + TmpDT.Columns.Add("Cantidad", GetType(Decimal)) + TmpDT.Columns.Add("Codigo", GetType(String)) + TmpDT.Columns.Add("CveUM", GetType(Integer)) + TmpDT.Columns.Add("UM", GetType(String)) + TmpDT.Columns.Add("SATClaveUM", GetType(String)) + TmpDT.Columns.Add("CveClasificacion", GetType(Integer)) + TmpDT.Columns.Add("Clasificacion", GetType(String)) + TmpDT.Columns.Add("CvePS", GetType(Integer)) + TmpDT.Columns.Add("PS", GetType(String)) + TmpDT.Columns.Add("CodigoPS", GetType(String)) + TmpDT.Columns.Add("SATClaveProdServ", GetType(String)) + TmpDT.Columns.Add("NoIdentificacion", GetType(String)) + TmpDT.Columns.Add("CveTipoPS", GetType(Integer)) + TmpDT.Columns.Add("CveTipoInvPS", GetType(Integer)) + TmpDT.Columns.Add("SerieLote", GetType(String)) + TmpDT.Columns.Add("CuentaPredial", GetType(String)) + TmpDT.Columns.Add("Obs", GetType(String)) + TmpDT.Columns.Add("TiempoEntrega", GetType(String)) + TmpDT.Columns.Add("PU", GetType(Decimal)) + TmpDT.Columns.Add("IVA", GetType(Decimal)) + TmpDT.Columns.Add("ImporteIVA", GetType(Decimal)) + TmpDT.Columns.Add("PorcentajeIVA", GetType(Decimal)) + TmpDT.Columns.Add("ImporteRetIVA", GetType(Decimal)) + TmpDT.Columns.Add("ImporteRetISR", GetType(Decimal)) + TmpDT.Columns.Add("PorcentajeRetIVA", GetType(Decimal)) + TmpDT.Columns.Add("PorcentajeRetISR", GetType(Decimal)) + TmpDT.Columns.Add("ImporteIEPS", GetType(Decimal)) + TmpDT.Columns.Add("IEPS", GetType(Decimal)) + TmpDT.Columns.Add("PorcentajeIEPS", GetType(Decimal)) + TmpDT.Columns.Add("Descuento", GetType(Decimal)) + TmpDT.Columns.Add("TipoDescuento", GetType(Integer)) + TmpDT.Columns.Add("TotalImporte", GetType(Decimal)) + TmpDT.Columns.Add("Total", GetType(Decimal)) + 'Para uso del módulo contable + TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer)) + TmpDT.Columns.Add("IdCtaContVentas", GetType(Integer)) + TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean)) + TmpDT.Columns.Add("CveProyecto", GetType(Integer)) + TmpDT.Columns.Add("Proyecto", GetType(String)) + TmpDT.Columns.Add("CveSubProyecto", GetType(Integer)) + TmpDT.Columns.Add("SubProyecto", GetType(String)) + TmpDT.Columns.Add("CveVentaDetallePadre", GetType(Integer)) + 'TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto + TmpDT.Columns.Add("CvePresupuestoIngreso", GetType(Integer)) + TmpDT.Columns.Add("CveFuenteRecaudacion", GetType(Integer)) + 'Contratos + TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) + 'Remisiones a Facturas + TmpDT.Columns.Add("CveVentaDetalle", GetType(Integer)) + TmpDT.Columns.Add("CveVentaDetalleRemision", GetType(Integer)) + TmpDT.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer)) + 'Pedido2 a Facturas + TmpDT.Columns.Add("CveVentaDetallePedido2", GetType(Integer)) + TmpDT.Columns.Add("Origen", GetType(Integer)) + 'Ordenes Servicio + TmpDT.Columns.Add("CveOS", GetType(Integer)) + TmpDT.Columns.Add("CveOSDetalle", GetType(Integer)) + TmpDT.Columns.Add("SeFacturara", GetType(Integer)) + TmpDT.Columns.Add("Folio", GetType(Integer)) + TmpDT.Columns.Add("Estatus", GetType(String)) + 'Ordenamiento + TmpDT.Columns.Add("Orden", GetType(Integer)) + TmpDT.Columns.Add("TipoDocto", GetType(String)) + 'OC + TmpDT.Columns.Add("CveOrdenCompraDetalle", GetType(Integer)) + TmpDT.Columns.Add("EntregaDirecta", GetType(Integer)) + TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer)) + TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal)) + TmpDT.Columns.Add("CantidadFacturadaCot", GetType(Decimal)) + TmpDT.Columns.Add("CantidadFacturadaPed2", GetType(Decimal)) + TmpDT.Columns.Add("CantidadInventario", GetType(Decimal)) + TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String)) + TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String)) + TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String)) + TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String)) + TmpDT.Columns.Add("CveTamaño", GetType(Integer)) + TmpDT.Columns.Add("EsCargo", GetType(Boolean)) + + Return TmpDT End Function Private Function InicializaDTVentasNC() As DataTable Dim DtVentasNC = New DataTable @@ -2234,621 +2234,621 @@ Partial Class Ventas_ClientesAbonar #End Region - Private Sub LimpiaCampos() - TxtFolio.Text = "" - TxtObservaciones.Text = "" - TxtImporte.Text = "" - TxtTotal.Text = "" - TxtFechaDocumento.Text = Now.ToShortDateString - DdlCuenta.SelectedValue = "-1" - DdlTipoTransaccion.SelectedValue = "-1" - - CveIESustitucion = "-1" - CFDIRelacionadoSustitucion = "-1" - FechaCorteIE = DateTime.Now.ToDate - IDPoliza = -1 - FolioIECancelado = "" - - If UsuarioActual.Empresa.UsaAC Then - TxtOtrosImportes.Text = "" - UpDatos.Update() - CargaDatos(-1) - Else - UpDatos.Update() - CargaDatos(If(Request("CveMoneda") IsNot Nothing AndAlso Request("CveMoneda").ToString.ToEntero > 0, Request("CveMoneda").ToString.ToEntero, -1)) - End If - - End Sub - - Private Sub RblTipoPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoPago.SelectedIndexChanged - Select Case RblTipoPago.SelectedValue - Case "1" - DdlProveedorPagoInt.Items.Clear() - DivDatosBancarios.Visible = True - TxtFolio.Enabled = True - divAbonese.Visible = True - divIntermediario.Visible = False - PanelIngresos.Visible = False - Case "3" - ' Ingresos por comprobar - DdlProveedorPagoInt.Items.Clear() - DivDatosBancarios.Visible = False - PanelIngresos.Visible = True - TxtFolio.Enabled = True - divAbonese.Visible = True - divIntermediario.Visible = False - 'filtro primero por los de la moneda - CargaIngresos(CveMonedaFiltro) - - If ChkPagarDolares.Checked Then - CveMonedaPago = 2 - CveMoneda = 1 - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", 2)) - Else - CveMonedaPago = 1 - End If - CargaDatos(CveMoneda) - Case Else - - divAbonese.Visible = False - Dim ObjProveedores As New ClsCompProveedores - ObjProveedores.GetProveedorProsepago(UsuarioActual.CveEmpresa) - - divIntermediario.Visible = True - DdlProveedorPagoInt.DataSource = ObjProveedores.DtResultados - ObjProveedores.Dispose() - DdlProveedorPagoInt.DataBind() - - DivDatosBancarios.Visible = False - TxtFolio.Enabled = False - PanelIngresos.Visible = False - - End Select - - CargaDatos(CveMoneda) - UpDatos.Update() - End Sub - - Private Sub CargaIngresos(tCveMoneda As Integer) - - Dim Deudores As New ClsMovimientos - If Deudores.GetIngresosSaldosDetalle(CveCliente, tCveMoneda, UsuarioActual.CveEmpresa) Then - DdlIngreso.DataSource = Deudores.DtResultados.FiltraParametros("CveCliente > 0 AND Saldo > 0 AND CveIE > 0") - End If - Deudores.Dispose() - - DdlIngreso.DataBind() - DdlIngreso.Items.Insert(0, New ListItem("Seleccione", "-1")) - End Sub - - Protected Sub ChkAjusteOI_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ChkAjusteOI.CheckedChanged - - If ChkAjusteOI.Checked Then - TxtOtrosImportes.Visible = True - TxtTotal.Visible = True - GvCxC.Columns(13).Visible = True - Else - TxtOtrosImportes.Visible = False - TxtTotal.Visible = False - GvCxC.Columns(13).Visible = False - TxtOtrosImportes.Text = "" - TxtTotal.Text = "" - RegistraScript("$get('TxtImporte').value = FormatoNumero(SumaValores(), 2);") - End If - - UpDatos.Update() - UPVentas.Update() + Private Sub LimpiaCampos() + TxtFolio.Text = "" + TxtObservaciones.Text = "" + TxtImporte.Text = "" + TxtTotal.Text = "" + TxtFechaDocumento.Text = Now.ToShortDateString + DdlCuenta.SelectedValue = "-1" + DdlTipoTransaccion.SelectedValue = "-1" + + CveIESustitucion = "-1" + CFDIRelacionadoSustitucion = "-1" + FechaCorteIE = DateTime.Now.ToDate + IDPoliza = -1 + FolioIECancelado = "" + + If UsuarioActual.Empresa.UsaAC Then + TxtOtrosImportes.Text = "" + UpDatos.Update() + CargaDatos(-1) + Else + UpDatos.Update() + CargaDatos(If(Request("CveMoneda") IsNot Nothing AndAlso Request("CveMoneda").ToString.ToEntero > 0, Request("CveMoneda").ToString.ToEntero, -1)) + End If + End Sub -#Region " PAGAR CON PESOS " - Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs) - If ChkPagarPesos.Checked Then - DivTCDolaresDolares.Visible = False - RegistraScript("$get('DivTC').style.display = 'block';") - CargaCuentas() - If RblTipoPago.SelectedValue = "3" Then - CargaIngresos(1) - End If - TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - Else - DivTCDolaresDolares.Visible = True - 'RegistraScript("document.getElementById('DivTC').style.display = 'none';") - CargaCuentas() - TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - UpDatos.Update() - - CargaDatos(2) - RegistraScript("CambiaPesosDolares();") - End Sub -#End Region + Private Sub RblTipoPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoPago.SelectedIndexChanged + Select Case RblTipoPago.SelectedValue + Case "1" + DdlProveedorPagoInt.Items.Clear() + DivDatosBancarios.Visible = True + TxtFolio.Enabled = True + divAbonese.Visible = True + divIntermediario.Visible = False + PanelIngresos.Visible = False + Case "3" + ' Ingresos por comprobar + DdlProveedorPagoInt.Items.Clear() + DivDatosBancarios.Visible = False + PanelIngresos.Visible = True + TxtFolio.Enabled = True + divAbonese.Visible = True + divIntermediario.Visible = False + 'filtro primero por los de la moneda + CargaIngresos(CveMonedaFiltro) -#Region "PAGAR CON DOLARES" - Protected Sub ChkPagarDolares_CheckedChanged(sender As Object, e As EventArgs) - If ChkPagarDolares.Checked Then - DivTCDolares.Visible = True - CargaCuentas() - If RblTipoPago.SelectedValue = "3" Then - CargaIngresos(2) - RegistraScript("CambiaDolaresPesos();") - End If - TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - Else - DivTCDolares.Visible = False - CargaCuentas() - TxtFechaDocumento.Attributes.Remove("onchange") - End If - UpDatos.Update() - - CargaDatos(1) - RegistraScript("CambiaDolaresPesos();") - End Sub -#End Region + If ChkPagarDolares.Checked Then + CveMonedaPago = 2 + CveMoneda = 1 + TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,1,{0});", 2)) + Else + CveMonedaPago = 1 + End If + CargaDatos(CveMoneda) + Case Else -#Region " CUENTAS DEPOSITOS" - Private Sub CargaCuentasDepositos() - DdlCuentaDeposito.Items.Clear() - If DdlTipoTransaccion.SelectedValue > 0 Then ' transferencias y layout - trCuentaDeposito.Visible = False - - Dim Dep As New ClsGenerales - If Dep.GetCuentasDepositos(CveCliente:=CveCliente) 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 - BtnIEGuardar.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 + divAbonese.Visible = False + Dim ObjProveedores As New ClsCompProveedores + ObjProveedores.GetProveedorProsepago(UsuarioActual.CveEmpresa) -#Region " COMPLEMENTOS PAGO " + divIntermediario.Visible = True + DdlProveedorPagoInt.DataSource = ObjProveedores.DtResultados + ObjProveedores.Dispose() + DdlProveedorPagoInt.DataBind() + + DivDatosBancarios.Visible = False + TxtFolio.Enabled = False + PanelIngresos.Visible = False + + End Select + + CargaDatos(CveMoneda) + UpDatos.Update() + End Sub + + Private Sub CargaIngresos(tCveMoneda As Integer) + + Dim Deudores As New ClsMovimientos + If Deudores.GetIngresosSaldosDetalle(CveCliente, tCveMoneda, UsuarioActual.CveEmpresa) Then + DdlIngreso.DataSource = Deudores.DtResultados.FiltraParametros("CveCliente > 0 AND Saldo > 0 AND CveIE > 0") + End If + Deudores.Dispose() + + DdlIngreso.DataBind() + DdlIngreso.Items.Insert(0, New ListItem("Seleccione", "-1")) + End Sub + + Protected Sub ChkAjusteOI_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ChkAjusteOI.CheckedChanged + + If ChkAjusteOI.Checked Then + TxtOtrosImportes.Visible = True + TxtTotal.Visible = True + GvCxC.Columns(13).Visible = True + Else + TxtOtrosImportes.Visible = False + TxtTotal.Visible = False + GvCxC.Columns(13).Visible = False + TxtOtrosImportes.Text = "" + TxtTotal.Text = "" + RegistraScript("$get('TxtImporte').value = FormatoNumero(SumaValores(), 2);") + End If + + UpDatos.Update() + UPVentas.Update() + End Sub + +#Region " PAGAR CON PESOS " + Protected Sub ChkPagarPesos_CheckedChanged(sender As Object, e As EventArgs) + If ChkPagarPesos.Checked Then + DivTCDolaresDolares.Visible = False + RegistraScript("$get('DivTC').style.display = 'block';") + CargaCuentas() + If RblTipoPago.SelectedValue = "3" Then + CargaIngresos(1) + End If + TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + Else + DivTCDolaresDolares.Visible = True + 'RegistraScript("document.getElementById('DivTC').style.display = 'none';") + CargaCuentas() + TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + End If + UpDatos.Update() + + CargaDatos(2) + RegistraScript("CambiaPesosDolares();") + 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 + CargaCuentas() + If RblTipoPago.SelectedValue = "3" Then + CargaIngresos(2) + RegistraScript("CambiaDolaresPesos();") + End If + TxtFechaDocumento.Attributes.Add("onchange", "CambiaTC(this);") + TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + Else + DivTCDolares.Visible = False + CargaCuentas() + TxtFechaDocumento.Attributes.Remove("onchange") + End If + UpDatos.Update() + + CargaDatos(1) + RegistraScript("CambiaDolaresPesos();") + End Sub +#End Region + +#Region " CUENTAS DEPOSITOS" + Private Sub CargaCuentasDepositos() + DdlCuentaDeposito.Items.Clear() + If DdlTipoTransaccion.SelectedValue > 0 Then ' transferencias y layout + trCuentaDeposito.Visible = False + + Dim Dep As New ClsGenerales + If Dep.GetCuentasDepositos(CveCliente:=CveCliente) 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 + BtnIEGuardar.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 + +#Region " COMPLEMENTOS PAGO " Private Function EmitirComplementoPago(CveIE As Integer, CveVentas As List(Of Integer), Series As List(Of String)) As String If Not UsuarioActual.Empresa.FacturaProduccion Then Return "" End If - 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 - ObjBancos.IniciaTransacSQL() - - If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente, CFDIRelacionado:=CFDIRelacionadoSustitucion, EsRegeneracion:=If(CveIESustitucion > 0, True, False)) Then - ObjBancos.Commit() - ComplementoSustitucionGenerado = True - - PDFReciboDePagos(-1, -1, ObjBancos.CveComplementoPago, False) - - Dim LigaDescargaXML = $"../Empresas/{UsuarioActual.CveEmpresa}/XML/Pag/{ObjBancos.ComplementoSerieFolio}.xml" - Dim LigaDescargaPDF = $"../Empresas/{UsuarioActual.CveEmpresa}/PDF/Pag/{ObjBancos.ComplementoSerieFolio}.pdf" - 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 = "demo@adsistemas.mx" - Dim Asunto As String = "Envío de complemento de pago" - Dim Cuerpo As String = "Complemento de Pago" - - If ObjMail.SendMail(UsuarioActual.Empresa, Mail, Asunto, Cuerpo, "", LSRutasMail) Then - ResultadoMail = 1 - Else - ResultadoMail = 3 - Alert("No se pudo enviar el correo", TipoMensaje.MsgAdvertencia) - End If - Else - ComplementoSustitucionGenerado = False - Retorno.AppendFormat($" Complemento de pago NO generado . {ObjBancos.Mensaje}") - ObjBancos.RollBack() - End If - - ObjBancos.Dispose() - - ' Next - - Return Retorno.ToString + 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 + ObjBancos.IniciaTransacSQL() + + If ObjBancos.GeneraTimbrePago(CveIE, -1, UsuarioActual, CveCliente, CFDIRelacionado:=CFDIRelacionadoSustitucion, EsRegeneracion:=If(CveIESustitucion > 0, True, False)) Then + ObjBancos.Commit() + ComplementoSustitucionGenerado = True + + PDFReciboDePagos(-1, -1, ObjBancos.CveComplementoPago, False) + + Dim LigaDescargaXML = $"../Empresas/{UsuarioActual.CveEmpresa}/XML/Pag/{ObjBancos.ComplementoSerieFolio}.xml" + Dim LigaDescargaPDF = $"../Empresas/{UsuarioActual.CveEmpresa}/PDF/Pag/{ObjBancos.ComplementoSerieFolio}.pdf" + 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 = "demo@adsistemas.mx" + Dim Asunto As String = "Envío de complemento de pago" + Dim Cuerpo As String = "Complemento de Pago" + + If ObjMail.SendMail(UsuarioActual.Empresa, Mail, Asunto, Cuerpo, "", LSRutasMail) Then + ResultadoMail = 1 + Else + ResultadoMail = 3 + Alert("No se pudo enviar el correo", TipoMensaje.MsgAdvertencia) + End If + Else + ComplementoSustitucionGenerado = False + Retorno.AppendFormat($" Complemento de pago NO generado . {ObjBancos.Mensaje}") + ObjBancos.RollBack() + End If + + ObjBancos.Dispose() + + ' Next + + Return Retorno.ToString End Function -#End Region +#End Region -#Region "SALDAR CUENTAS" +#Region "SALDAR CUENTAS" - Private Sub BtnSaldarCuentasIncobrables_Click(sender As Object, e As EventArgs) Handles BtnSaldarCuentasIncobrables.Click - Dim ObjConta As New ClsContabilidad - ObjConta.IniciaTransacSQL() - Dim CvePrePoliza As Integer = 0 - Dim MsgError As String = "" - - Dim ObjIE As New ClsBancos - Dim FechaUltimaFluctuacion As Date = MinFecha - Dim TipoCambioFluctuacion As Decimal = 1 - If ObjIE.GetFluctuacionesBitacora(UsuarioActual.CveEmpresa) Then - If ObjIE.DtResultados.Rows.Count > 0 Then - Dim tFecha As Date = TxtFechaIncobrable.Text.ToDate - Dim Fecha As String = String.Format("{0}/{1}/{2}", tFecha.Year, tFecha.Month, tFecha.Day) - Dim drr As DataRow = ObjIE.DtResultados.FiltroPrimero("Fecha < #" & Fecha & "#", "Fecha DESC") - - If drr IsNot Nothing Then - FechaUltimaFluctuacion = drr("Fecha").ToString.ToDate - TipoCambioFluctuacion = drr("TipoCambio").ToString.ToDecimal - End If - - End If - End If - + Private Sub BtnSaldarCuentasIncobrables_Click(sender As Object, e As EventArgs) Handles BtnSaldarCuentasIncobrables.Click + Dim ObjConta As New ClsContabilidad + ObjConta.IniciaTransacSQL() + Dim CvePrePoliza As Integer = 0 + Dim MsgError As String = "" + + Dim ObjIE As New ClsBancos + Dim FechaUltimaFluctuacion As Date = MinFecha + Dim TipoCambioFluctuacion As Decimal = 1 + If ObjIE.GetFluctuacionesBitacora(UsuarioActual.CveEmpresa) Then + If ObjIE.DtResultados.Rows.Count > 0 Then + Dim tFecha As Date = TxtFechaIncobrable.Text.ToDate + Dim Fecha As String = String.Format("{0}/{1}/{2}", tFecha.Year, tFecha.Month, tFecha.Day) + Dim drr As DataRow = ObjIE.DtResultados.FiltroPrimero("Fecha < #" & Fecha & "#", "Fecha DESC") + + If drr IsNot Nothing Then + FechaUltimaFluctuacion = drr("Fecha").ToString.ToDate + TipoCambioFluctuacion = drr("TipoCambio").ToString.ToDecimal + End If + + End If + End If + ObjIE.Dispose() - CvePrePoliza = ObjConta.AddPrePolizas("Bancos/ClientesAbonar/SaldarI", 47, 0, 0, 1, TxtFechaIncobrable.Text.ToDate, TxtObsSaldarIncobrable.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - - For Each gr As GridViewRow In GvCxC.Rows - If gr.FCCheckBox("Chk").Checked Then - Dim IdCtaContable As Integer = IdCuentaCliente - Dim CveCuenta As Integer = 0 - Dim PorcentajePago As Decimal = gr.DataKey("Saldo").ToDecimal / gr.DataKey("Original").ToDecimal - Dim Saldo As Decimal = gr.DataKey("Saldo").ToDecimal - Dim SubTotal As Decimal = PorcentajePago * gr.DataKey("SubTotal").ToDecimal - Dim IVA As Decimal = PorcentajePago * gr.DataKey("IVA").ToDecimal - Dim IEPS As Decimal = PorcentajePago * gr.DataKey("IEPS").ToDecimal - Dim TCVenta As Decimal = gr.DataKey("TipoCambio").ToDecimal - Dim FechaVenta As Date = gr.DataKey("Fecha").ToDate - Dim tCveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero - Dim TCPago As Decimal = GlobalTipoCambio(TxtFechaIncobrable.Text.ToDate).FormatoNumero(4) - Dim CveConceptoDeduccion As Integer = DdlTipoDeduccion.SelectedValue.ToEntero - - - 'si la fecha del documento es anterior a su ultima fluctuación. toma el Tc de la fluctuacion - If tCveMoneda = 2 Then - If FechaVenta < FechaUltimaFluctuacion Then - TCVenta = TipoCambioFluctuacion - End If - End If - - - 'condicionante - Dim ClienteMovto As Boolean = True - Dim SubtotalMovto As Boolean = False - Dim CveConceptoCliente As Integer = 2 - Dim ImpuestosMovto As Boolean = False - Dim IdCuentaContableNoDeducible As Integer = 0 - Dim CveSubProyecto As Integer = gr.DataKey("CveSubProyecto").ToEntero - Dim ConceptoPartida As String = TxtObsSaldarIncobrable.Text.Trim & " " & gr.DataKey("SerieFolio").ToString - - If CveConceptoDeduccion = 255 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(266).ToEntero - If CveConceptoDeduccion = 211 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero - If CveConceptoDeduccion = 263 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(537).ToEntero - If CveConceptoDeduccion = 252 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(581).ToEntero - If CveConceptoDeduccion = 78 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.IdCuentaOtrosIngresos - - If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) Then - ClienteMovto = False : Saldo = Saldo * -1 - ImpuestosMovto = True : IVA = IVA * -1 - CveConceptoCliente = 1 - 'falta cuenta incobrable - IdCuentaContableNoDeducible = 3114 - End If - - Dim UsaComplementaria As Boolean = False - - If UsuarioActual.CveEmpresa = 119 Then - UsaComplementaria = True - End If - + CvePrePoliza = ObjConta.AddPrePolizas("Bancos/ClientesAbonar/SaldarI", 47, 0, 0, 1, TxtFechaIncobrable.Text.ToDate, TxtObsSaldarIncobrable.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + + For Each gr As GridViewRow In GvCxC.Rows + If gr.FCCheckBox("Chk").Checked Then + Dim IdCtaContable As Integer = IdCuentaCliente + Dim CveCuenta As Integer = 0 + Dim PorcentajePago As Decimal = gr.DataKey("Saldo").ToDecimal / gr.DataKey("Original").ToDecimal + Dim Saldo As Decimal = gr.DataKey("Saldo").ToDecimal + Dim SubTotal As Decimal = PorcentajePago * gr.DataKey("SubTotal").ToDecimal + Dim IVA As Decimal = PorcentajePago * gr.DataKey("IVA").ToDecimal + Dim IEPS As Decimal = PorcentajePago * gr.DataKey("IEPS").ToDecimal + Dim TCVenta As Decimal = gr.DataKey("TipoCambio").ToDecimal + Dim FechaVenta As Date = gr.DataKey("Fecha").ToDate + Dim tCveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero + Dim TCPago As Decimal = GlobalTipoCambio(TxtFechaIncobrable.Text.ToDate).FormatoNumero(4) + Dim CveConceptoDeduccion As Integer = DdlTipoDeduccion.SelectedValue.ToEntero + + + 'si la fecha del documento es anterior a su ultima fluctuación. toma el Tc de la fluctuacion + If tCveMoneda = 2 Then + If FechaVenta < FechaUltimaFluctuacion Then + TCVenta = TipoCambioFluctuacion + End If + End If + + + 'condicionante + Dim ClienteMovto As Boolean = True + Dim SubtotalMovto As Boolean = False + Dim CveConceptoCliente As Integer = 2 + Dim ImpuestosMovto As Boolean = False + Dim IdCuentaContableNoDeducible As Integer = 0 + Dim CveSubProyecto As Integer = gr.DataKey("CveSubProyecto").ToEntero + Dim ConceptoPartida As String = TxtObsSaldarIncobrable.Text.Trim & " " & gr.DataKey("SerieFolio").ToString + + If CveConceptoDeduccion = 255 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(266).ToEntero + If CveConceptoDeduccion = 211 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero + If CveConceptoDeduccion = 263 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(537).ToEntero + If CveConceptoDeduccion = 252 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(581).ToEntero + If CveConceptoDeduccion = 78 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.IdCuentaOtrosIngresos + + If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) Then + ClienteMovto = False : Saldo = Saldo * -1 + ImpuestosMovto = True : IVA = IVA * -1 + CveConceptoCliente = 1 + 'falta cuenta incobrable + IdCuentaContableNoDeducible = 3114 + End If + + Dim UsaComplementaria As Boolean = False + + If UsuarioActual.CveEmpresa = 119 Then + UsaComplementaria = True + End If + If MsgError = "" Then - If tCveMoneda = 2 Then - IdCtaContable = IdCtaContMonedaExtranjera - Else - IdCtaContable = IdCuentaCliente - End If - - If UsaComplementaria AndAlso tCveMoneda = 2 Then - 'normal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - 'complementaria - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, gr.DataKey("SerieFolio").ToString, 207, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContComplementaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, (Saldo * TCVenta) - Saldo), ImporteME:=Saldo, CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo * TCVenta), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - End If - - 'fluctuación. - If tCveMoneda = 2 Then - Dim ImporteFluctuacion As Decimal = 0 - ImporteFluctuacion = Saldo * (TCPago - TCVenta) - If TCPago > TCVenta Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), gr.DataKey("SerieFolio").ToString, 64, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaGananciaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=Math.Abs(ImporteFluctuacion), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), gr.DataKey("SerieFolio").ToString, 65, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaPerdidaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=Math.Abs(ImporteFluctuacion), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - End If - - 'cuando hay pago en dólares, se ajusta el concepto de subtotal, - SubTotal = (Saldo * TCVenta) + ImporteFluctuacion - (IVA * TCVenta) - (IEPS * TCVenta) - - End If - - - ' iva - Dim PorcentajeImpuesto As Decimal = gr.DataKey("PorcentajeIVA").ToDecimal - - Dim IdCtaIVAXTrasladar As Integer = 0 - Dim CveCuentaIVAxTrasladar As Integer = 0 - - If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then - IdCtaIVAXTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXTrasladar").ToString.ToEntero - CveCuentaIVAxTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("CveCuentaIVAxTrasladar").ToString.ToEntero - End If - - IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar) - CveCuenta = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar) - If IVA > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), CveCuenta:=CveCuenta, PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - IdCtaContable = UsuarioActual.Empresa.IdCuentaIEPSxTrasladar - CveCuenta = UsuarioActual.Empresa.CveCuentaIEPSxTrasladar - If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, gr.DataKey("SerieFolio").ToString, 38, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IEPS, IEPS * TCVenta), CveCuenta:=CveCuenta, PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - 'al gasto,Subtotal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, SubtotalMovto, SubTotal, gr.DataKey("SerieFolio").ToString, CveConceptoDeduccion, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCuentaContableNoDeducible, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=SubTotal, CveCuenta:=-1, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then - If ObjConta.ValorPolizaDescuadre > 0 Then - MsgError = ObjConta.MensajePolizaDescuadre + " " + ObjConta.ValorDiferencia - GuardaLogAD($"Ventas/ClientesAbonar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") - Exit For - End If - End If - End If - End If - Next - - If MsgError = "" Then - 'ObjConta.RollBack() - ObjConta.Commit() - CargaDatos(CveMonedaFiltro) - RegistraScript("$('#ModalSaldarCuentaIncobrable').modal('hide')") - Alert(String.Format("Los movimientos se saldaron correctamente.
Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) - - Else - ObjConta.RollBack() - Alert(MsgError, TipoMensaje.MsgError) - End If - - BtnSaldarCuentasIncobrables.Visible = False - ObjConta.Dispose() - End Sub - - - Private Sub ValidaCuentaDePagoFormaDePago() - - If Not (DdlTipoTransaccion.SelectedValue.ToEntero > 0 And DdlCuenta.SelectedValue.ToEntero > 0) Then - Exit Sub - End If - - Dim DTTipoTransacciones As DataTable = GlobalDTTipoTransacciones.FiltraParametros($"CveTipoTransaccion={DdlTipoTransaccion.SelectedValue}") - Dim DTCuentas As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros($"CveCuenta={DdlCuenta.SelectedValue}") - - Dim ClaveFormaPagoSAT As String = "" - Dim Cuentapago As String = "" - Dim CuentaBeneficiario As String = "" - - - If DTTipoTransacciones.Rows.Count > 0 Then - ClaveFormaPagoSAT = DTTipoTransacciones.Rows(0)("ClaveFormaPagoSAT").ToString - Else - Alert("La forma de pago no tiene una forma de pago SAT", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If DTCuentas.Rows.Count > 0 Then - CuentaBeneficiario = DTCuentas.Rows(0)("NumCuenta").ToString - Else - Alert("No se pudo encontrar la cuenta", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - - Dim Mensaje As String = "" - Cuentapago = "" - - - Select Case ClaveFormaPagoSAT.ToString - Case "01" - ' no tiene restricciones - Case "02" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(11, 18) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "03" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10, 16, 18) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 18)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "04" - - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(16) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - - Case "05" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10, 11, 15, 16, 18, 50) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "06" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - CuentaBeneficiario = "" - Case "28" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(16) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - Case "29" - If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(15, 16) Then - Mensaje = "La cuenta ordenante no cumple con el formato esperado." - End If - - If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then - Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." - End If - - Case Else - - - - End Select - - LblValidaCeuntaTipoTransaccion.Text = Mensaje - - If Not Mensaje.Length = 0 Then - 'Alert(Mensaje, TipoMensaje.MsgAdvertencia) - LblValidaCeuntaTipoTransaccion.Visible = True - Else - LblValidaCeuntaTipoTransaccion.Visible = False - End If - - UpGuardar.Update() - + If tCveMoneda = 2 Then + IdCtaContable = IdCtaContMonedaExtranjera + Else + IdCtaContable = IdCuentaCliente + End If + + If UsaComplementaria AndAlso tCveMoneda = 2 Then + 'normal + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + 'complementaria + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, gr.DataKey("SerieFolio").ToString, 207, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContComplementaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, (Saldo * TCVenta) - Saldo), ImporteME:=Saldo, CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + + Else + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo * TCVenta), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + + End If + + 'fluctuación. + If tCveMoneda = 2 Then + Dim ImporteFluctuacion As Decimal = 0 + ImporteFluctuacion = Saldo * (TCPago - TCVenta) + If TCPago > TCVenta Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), gr.DataKey("SerieFolio").ToString, 64, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaGananciaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=Math.Abs(ImporteFluctuacion), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + Else + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), gr.DataKey("SerieFolio").ToString, 65, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaPerdidaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=Math.Abs(ImporteFluctuacion), CveCuenta:=CveCuenta, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + End If + + 'cuando hay pago en dólares, se ajusta el concepto de subtotal, + SubTotal = (Saldo * TCVenta) + ImporteFluctuacion - (IVA * TCVenta) - (IEPS * TCVenta) + + End If + + + ' iva + Dim PorcentajeImpuesto As Decimal = gr.DataKey("PorcentajeIVA").ToDecimal + + Dim IdCtaIVAXTrasladar As Integer = 0 + Dim CveCuentaIVAxTrasladar As Integer = 0 + + If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then + IdCtaIVAXTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXTrasladar").ToString.ToEntero + CveCuentaIVAxTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("CveCuentaIVAxTrasladar").ToString.ToEntero + End If + + IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar) + CveCuenta = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar) + If IVA > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), CveCuenta:=CveCuenta, PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + + IdCtaContable = UsuarioActual.Empresa.IdCuentaIEPSxTrasladar + CveCuenta = UsuarioActual.Empresa.CveCuentaIEPSxTrasladar + If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, gr.DataKey("SerieFolio").ToString, 38, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IEPS, IEPS * TCVenta), CveCuenta:=CveCuenta, PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + + 'al gasto,Subtotal + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, SubtotalMovto, SubTotal, gr.DataKey("SerieFolio").ToString, CveConceptoDeduccion, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCuentaContableNoDeducible, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=SubTotal, CveCuenta:=-1, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + + If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 5) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + MsgError = ObjConta.MensajePolizaDescuadre + " " + ObjConta.ValorDiferencia + GuardaLogAD($"Ventas/ClientesAbonar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + Exit For + End If + End If + End If + End If + Next + + If MsgError = "" Then + 'ObjConta.RollBack() + ObjConta.Commit() + CargaDatos(CveMonedaFiltro) + RegistraScript("$('#ModalSaldarCuentaIncobrable').modal('hide')") + Alert(String.Format("Los movimientos se saldaron correctamente.
Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) + + Else + ObjConta.RollBack() + Alert(MsgError, TipoMensaje.MsgError) + End If + + BtnSaldarCuentasIncobrables.Visible = False + ObjConta.Dispose() End Sub -#End Region -#Region "COMPLEMENTO DE PAGO - ELIMINAR POR SUSTITUCION" - Protected Sub CargaIESustituir() - Dim ObjIE As New ClsBancos() - If ObjIE.GetBancosIE(CveIESustitucion, UsuarioActual.CveEmpresa) Then - If ObjIE.DtResultados.Rows.Count > 0 Then - FechaCorteIE = ObjIE.FechaDocumento - CveMoneda = ObjIE.CveMoneda - CveMonedaFiltro = CveMoneda - IDPoliza = ObjIE.IDPoliza - FolioIECancelado = ObjIE.Folio - End If - End If - ObjIE.Dispose() - UpDatos.Update() - End Sub - Function CancelarIE() As Boolean - Dim ErrorCancelar = False - - If Not IsDate(TxtFechaDocumento.Text.ToDate) Then - Alert("El campo fecha cancelación es incorrecto. Por favor verifique y vuelva a intentar") - Return True - End If - - Dim Banc As New ClsBancos - Banc.IniciaTransacSQL() - - Dim ObjAC As ClsContPAQi = Nothing - If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then - ObjAC = New ClsContPAQi(UsuarioActual.Empresa) - ObjAC.IniciaTransacSQL() - End If - - Dim IdPolizaNueva = -1 - Dim FolioPolizaNueva = -1 - + Private Sub ValidaCuentaDePagoFormaDePago() + + If Not (DdlTipoTransaccion.SelectedValue.ToEntero > 0 And DdlCuenta.SelectedValue.ToEntero > 0) Then + Exit Sub + End If + + Dim DTTipoTransacciones As DataTable = GlobalDTTipoTransacciones.FiltraParametros($"CveTipoTransaccion={DdlTipoTransaccion.SelectedValue}") + Dim DTCuentas As DataTable = GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros($"CveCuenta={DdlCuenta.SelectedValue}") + + Dim ClaveFormaPagoSAT As String = "" + Dim Cuentapago As String = "" + Dim CuentaBeneficiario As String = "" + + + If DTTipoTransacciones.Rows.Count > 0 Then + ClaveFormaPagoSAT = DTTipoTransacciones.Rows(0)("ClaveFormaPagoSAT").ToString + Else + Alert("La forma de pago no tiene una forma de pago SAT", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If DTCuentas.Rows.Count > 0 Then + CuentaBeneficiario = DTCuentas.Rows(0)("NumCuenta").ToString + Else + Alert("No se pudo encontrar la cuenta", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + + Dim Mensaje As String = "" + Cuentapago = "" + + + Select Case ClaveFormaPagoSAT.ToString + Case "01" + ' no tiene restricciones + Case "02" + If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(11, 18) Then + Mensaje = "La cuenta ordenante no cumple con el formato esperado." + End If + + If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then + Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." + End If + Case "03" + If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10, 16, 18) Then + Mensaje = "La cuenta ordenante no cumple con el formato esperado." + End If + If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 18)) Then + Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." + End If + Case "04" + + If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(16) Then + Mensaje = "La cuenta ordenante no cumple con el formato esperado." + End If + + If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then + Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." + End If + + Case "05" + If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10, 11, 15, 16, 18, 50) Then + Mensaje = "La cuenta ordenante no cumple con el formato esperado." + End If + + If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then + Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." + End If + Case "06" + If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(10) Then + Mensaje = "La cuenta ordenante no cumple con el formato esperado." + End If + + CuentaBeneficiario = "" + Case "28" + If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(16) Then + Mensaje = "La cuenta ordenante no cumple con el formato esperado." + End If + + If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then + Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." + End If + Case "29" + If Cuentapago <> "" AndAlso Not Cuentapago.Length.Contiene(15, 16) Then + Mensaje = "La cuenta ordenante no cumple con el formato esperado." + End If + + If CuentaBeneficiario <> "" AndAlso Not (CuentaBeneficiario.Length.Contiene(10, 11, 15, 16, 18, 50)) Then + Mensaje = $"{Mensaje} La Cuenta Beneficiario no cumple con el formato esperado." + End If + + Case Else + + + + End Select + + LblValidaCeuntaTipoTransaccion.Text = Mensaje + + If Not Mensaje.Length = 0 Then + 'Alert(Mensaje, TipoMensaje.MsgAdvertencia) + LblValidaCeuntaTipoTransaccion.Visible = True + Else + LblValidaCeuntaTipoTransaccion.Visible = False + End If + + UpGuardar.Update() + + End Sub + +#End Region + +#Region "COMPLEMENTO DE PAGO - ELIMINAR POR SUSTITUCION" + Protected Sub CargaIESustituir() + Dim ObjIE As New ClsBancos() + If ObjIE.GetBancosIE(CveIESustitucion, UsuarioActual.CveEmpresa) Then + If ObjIE.DtResultados.Rows.Count > 0 Then + FechaCorteIE = ObjIE.FechaDocumento + CveMoneda = ObjIE.CveMoneda + CveMonedaFiltro = CveMoneda + IDPoliza = ObjIE.IDPoliza + FolioIECancelado = ObjIE.Folio + End If + End If + ObjIE.Dispose() + UpDatos.Update() + End Sub + Function CancelarIE() As Boolean + Dim ErrorCancelar = False + + If Not IsDate(TxtFechaDocumento.Text.ToDate) Then + Alert("El campo fecha cancelación es incorrecto. Por favor verifique y vuelva a intentar") + Return True + End If + + Dim Banc As New ClsBancos + Banc.IniciaTransacSQL() + + Dim ObjAC As ClsContPAQi = Nothing + If UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.UsaContabilidad Then + ObjAC = New ClsContPAQi(UsuarioActual.Empresa) + ObjAC.IniciaTransacSQL() + End If + + Dim IdPolizaNueva = -1 + Dim FolioPolizaNueva = -1 + Try 'CANCELA IE CONTABILIZADO If IDPoliza > 0 Then @@ -2974,89 +2974,89 @@ Partial Class Ventas_ClientesAbonar End Try If Not ErrorCancelar Then - Banc.Commit() - If ObjAC IsNot Nothing Then ObjAC.Commit() - - Dim Msg As New StringBuilder - Msg.Append("El movimiento bancario quedó cancelado exitosamente.") - - If IdPolizaNueva > 0 Then Msg.AppendFormat("

Ver Póliza de cancelación", IdPolizaNueva) - Alert(Msg.ToString, TipoMensaje.MsgInformacion) + Banc.Commit() + If ObjAC IsNot Nothing Then ObjAC.Commit() + + Dim Msg As New StringBuilder + Msg.Append("El movimiento bancario quedó cancelado exitosamente.") + + If IdPolizaNueva > 0 Then Msg.AppendFormat("

Ver Póliza de cancelación", IdPolizaNueva) + Alert(Msg.ToString, TipoMensaje.MsgInformacion) Else - Banc.RollBack() - If ObjAC IsNot Nothing Then ObjAC.RollBack() - Alert("El movimiento bancario no se pudo cancelar. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - - If ObjAC IsNot Nothing Then ObjAC.Dispose() - Banc.Dispose() - Return ErrorCancelar - End Function - - Private Sub BtnVincularIntermediario_Click(sender As Object, e As EventArgs) Handles BtnVincularIntermediario.Click - RegistraScript("$('#ModalVincularIntermediario').modal('hide')", "hidemodal") + Banc.RollBack() + If ObjAC IsNot Nothing Then ObjAC.RollBack() + Alert("El movimiento bancario no se pudo cancelar. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + + If ObjAC IsNot Nothing Then ObjAC.Dispose() + Banc.Dispose() + Return ErrorCancelar + End Function + + Private Sub BtnVincularIntermediario_Click(sender As Object, e As EventArgs) Handles BtnVincularIntermediario.Click + RegistraScript("$('#ModalVincularIntermediario').modal('hide')", "hidemodal") End Sub -#End Region +#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 TxtTC.Visible Then - TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - If DivTCDolares.Visible Then - TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - If DivTCDolaresDolares.Visible Then - TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) - End If - - Dim moneda As Integer = GlobalDTBancosCuentas(-1).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero - If CveMonedaFiltro = -1 Then - RegistraScript(String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) - Else - RegistraScript(String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) - End If - - UpDatos.Update() - End Sub - - Private Sub DdlIngreso_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlIngreso.SelectedIndexChanged - 'saco la moneda de la selección - - If DdlIngreso.SelectedValue.ToEntero > 0 Then - Dim Banco As New ClsBancos - - If Banco.GetBancosIE(DdlIngreso.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then - CveMonedaPago = Banco.CveMoneda - End If - IdCuentaBancariaComplementaria = 0 - CveCuentaBancariaComplementaria = 0 - Banco.Dispose() - Else - CveMonedaPago = -1 - End If - - - If CveMonedaPago = 1 Then - 'DivTC.Visible = True - DivTCDolares.Visible = False - TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", CveMonedaPago)) - ElseIf CveMonedaPago = 2 Then - 'DivTC.Visible = False - RegistraScript("document.getElementById('DivTC').style.display = 'none';") - DivTCDolares.Visible = True - TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", CveMonedaPago)) - End If - - CargaDatos(CveMoneda) - - End Sub -End Class + 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 TxtTC.Visible Then + TxtTC.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + End If + + If DivTCDolares.Visible Then + TxtTCDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + End If + + If DivTCDolaresDolares.Visible Then + TxtTCDolaresDolares.Text = GlobalTipoCambio(Fecha).FormatoNumero(4) + End If + + Dim moneda As Integer = GlobalDTBancosCuentas(-1).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero}").ToEntero + If CveMonedaFiltro = -1 Then + RegistraScript(String.Format("FnCambia(0,0,0,0,-1,{0});", moneda)) + Else + RegistraScript(String.Format("FnCambia(0,0,0,0,1,{0});", moneda)) + End If + + UpDatos.Update() + End Sub + + Private Sub DdlIngreso_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlIngreso.SelectedIndexChanged + 'saco la moneda de la selección + + If DdlIngreso.SelectedValue.ToEntero > 0 Then + Dim Banco As New ClsBancos + + If Banco.GetBancosIE(DdlIngreso.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + CveMonedaPago = Banco.CveMoneda + End If + IdCuentaBancariaComplementaria = 0 + CveCuentaBancariaComplementaria = 0 + Banco.Dispose() + Else + CveMonedaPago = -1 + End If + + + If CveMonedaPago = 1 Then + 'DivTC.Visible = True + DivTCDolares.Visible = False + TxtTC.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", CveMonedaPago)) + ElseIf CveMonedaPago = 2 Then + 'DivTC.Visible = False + RegistraScript("document.getElementById('DivTC').style.display = 'none';") + DivTCDolares.Visible = True + TxtTCDolares.Attributes.Add("onkeyup", String.Format("FnCambia(0,0,0,0,-1,{0});", CveMonedaPago)) + End If + + CargaDatos(CveMoneda) + + End Sub +End Class