diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb index 940bf0817..cd29409c4 100644 --- a/App_Code/ClsAcumuladores.vb +++ b/App_Code/ClsAcumuladores.vb @@ -485,7 +485,7 @@ Public Class ClsAcumuladores #Region " FOLIOS GARANTÍA " - Public Function FoliosGarantiaGet(CveFolioGarantia As Integer, CveEmpresa As Integer, Optional Estatus As Integer = -1, Optional TipoFolio As String = "-1", Optional Area As Integer = 1) As Boolean + Public Function FoliosGarantiaGet(CveFolioGarantia As Integer, CveEmpresa As Integer, Optional Estatus As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional TipoFolio As String = "-1", Optional Area As Integer = 1) As Boolean Dim Retorno As Boolean = False 'Data = New DataTable @@ -495,6 +495,7 @@ Public Class ClsAcumuladores .Add("@CveFolioGarantia", SqlDbType.Int).Value = CveFolioGarantia .Add("@Estatus", SqlDbType.Int).Value = Estatus .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@tipoFolio", SqlDbType.VarChar).Value = TipoFolio .Add("@Area", SqlDbType.Int).Value = Area End With diff --git a/App_Code/ClsClientes.vb b/App_Code/ClsClientes.vb index a1169276d..69ac29dc8 100644 --- a/App_Code/ClsClientes.vb +++ b/App_Code/ClsClientes.vb @@ -1026,6 +1026,24 @@ Public Class ClsClientes OnError("Ocurrió un error al obtener el las Sucursales del Cliente.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try + Return Retorno + End Function + + Public Function GetListaSucursales(RFC As String, CveEmpresa As Integer, Optional CveCliente As Integer = -1, Optional CveClienteSucursal As Integer = -1) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Vta_ClientesSucursalesGet") + SqlAdapter.SelectCommand.Parameters.Add("@RFC", SqlDbType.VarChar).Value = RFC + SqlAdapter.SelectCommand.Parameters.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + SqlAdapter.SelectCommand.Parameters.Add("@CveCliente", SqlDbType.Int).Value = CveCliente + SqlAdapter.SelectCommand.Parameters.Add("@CveClienteSucursal", SqlDbType.Int).Value = CveClienteSucursal + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el las Sucursales del Cliente.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno End Function diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ccf04fdcb..ef3c9b60c 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5444,13 +5444,13 @@ Public Class ClsPaginas ''' Opcional Nombre del archivo que se descarga ''' Optional, Formato de Generacion PDF o Excel ''' - Public Sub ImprimirPDF(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) + Public Sub ImprimirPDF(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing, Optional Content_Disposition As String = "attachment") Dim lrds As New List(Of ReportDataSource) Dim rds As New ReportDataSource rds.Name = RDSName rds.Value = DtDatos lrds.Add(rds) - ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR) + ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR, Content_Disposition) End Sub Public Sub ImprimirPDFMultiDS(RutaReporte As String, lrds As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR) @@ -5465,9 +5465,9 @@ Public Class ClsPaginas ''' Opcional Nombre del archivo que se descarga ''' Optional, Formato de Generacion PDF o Excel ''' - Public Sub ImprimirPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) + Public Sub ImprimirPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing, Optional Content_Disposition As String = "attachment") 'limpio ReportViwer - ImprimirbytesPDF(StreamPDF(RutaReporte, DataSource, Parametros, NombreArchivo, Formato, MR), NombreArchivo, Formato) + ImprimirbytesPDF(StreamPDF(RutaReporte, DataSource, Parametros, NombreArchivo, Formato, MR), NombreArchivo, Formato, Content_Disposition:=Content_Disposition) End Sub Public Function StreamPDF(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) As Byte() Dim lrds As New List(Of ReportDataSource) @@ -5857,7 +5857,7 @@ Public Class ClsPaginas ''' ''' ''' - Public Sub ImprimirbytesPDF(bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False) + Public Sub ImprimirbytesPDF(bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False, Optional Content_Disposition As String = "attachment") 'limpio ReportViwer Dim mimeType As String = Nothing Dim extension As String = Nothing @@ -5880,7 +5880,7 @@ Public Class ClsPaginas Response.Buffer = True Response.Clear() Response.ContentType = mimeType - Response.AddHeader("content-disposition", String.Format("attachment; filename={0}.{1}", NombreArchivo, If(Formato = "PDF", "pdf", "xls"))) + Response.AddHeader("content-disposition", String.Format("{0}; filename={1}.{2}", Content_Disposition, NombreArchivo, If(Formato = "PDF", "pdf", "xls"))) Response.BinaryWrite(bytes) ' create the file Response.Flush() ' send it to the client to download HttpContext.Current.Response.SuppressContent = True @@ -6624,6 +6624,13 @@ Public Class ClsPaginas params.Add(New ReportParameter("ClienteLugar", ClienteLugar)) params.Add(New ReportParameter("ClienteRFC", Vta.Cliente.RFC)) End If + If Vta.CveEmpresaCRM.ToEntero > 0 Then + params.Add(New ReportParameter("ClienteCodigo", Vta.Cliente.Codigo)) + params.Add(New ReportParameter("ClienteNombre", Vta.Cliente.Nombre)) + params.Add(New ReportParameter("ClienteDireccion", ClienteDireccion)) + params.Add(New ReportParameter("ClienteLugar", ClienteLugar)) + params.Add(New ReportParameter("ClienteRFC", Vta.Cliente.RFC)) + End If 'TOTALES params.Add(New ReportParameter("SubTotal", Vta.SubTotal.ToString.FormatoNumero(2))) diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index 9a18a5716..fbe97480e 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -968,25 +968,25 @@ Namespace Extensiones - Public Function RoundAD(Valor As Double, Optional Decimales As Integer = 2) As Double - Return Math.Round(Valor, Decimales) - End Function - - Public Function RoundAD(Valor As Decimal, Optional Decimales As Integer = 2) As Decimal - Return Math.Round(Valor, Decimales) + Public Function RoundAD(Valor As Double, Optional Decimales As Integer = 2) As Double + Return Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero) + End Function + + Public Function RoundAD(Valor As Decimal, Optional Decimales As Integer = 2) As Decimal + Return Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero) End Function - Public Function RoundSQL(Valor As Double, Optional Decimales As Integer = 2) As Double - 'Return Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero) - 'primero, se redondea a 4, para que concuerde al redondeo de sql, si se redondea a 2 decimales por ejemplo - Return If(Decimales < 4, Math.Round(Math.Round(Valor, 4, MidpointRounding.AwayFromZero), Decimales, MidpointRounding.AwayFromZero), Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero)) + Public Function RoundSQL(Valor As Double, Optional Decimales As Integer = 2) As Double + 'Return Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero) + 'primero, se redondea a 4, para que concuerde al redondeo de sql, si se redondea a 2 decimales por ejemplo + Return Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero) End Function Public Function RoundSQL(Valor As Decimal, Optional Decimales As Integer = 2) As Decimal 'primero, se redondea a 4, para que concuerde al redondeo de sql - Return If(Decimales < 4, Math.Round(Math.Round(Valor, 4, MidpointRounding.AwayFromZero), Decimales, MidpointRounding.AwayFromZero), Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero)) + Return Math.Round(Valor, Decimales, MidpointRounding.AwayFromZero) End Function Public Function Abs(Valor As Double) As Double diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx index ca6e8c319..e139c0ecc 100644 --- a/Ashx/E141.ashx +++ b/Ashx/E141.ashx @@ -4,6 +4,7 @@ Option Strict On Option Explicit On Imports System.Data +Imports System.IO Imports System.Net.Http Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq @@ -66,6 +67,42 @@ Public Class E141 : Implements IHttpHandler End Get End Property + +#Region "GLOBAL DT" + Public Property GlobalDTSubProyectos(CveProyecto As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1, Optional Estatus As Integer = 1) As DataTable + Get + Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa) + 'sino existe, recarga los datos + If DirectCast(HttpContext.Current.Application(AppNombre), DataTable) Is Nothing Or (DirectCast(HttpContext.Current.Application(AppNombre), DataTable) IsNot Nothing AndAlso DirectCast(HttpContext.Current.Application(AppNombre), DataTable).Rows.Count = 0) Then + Dim P As New ClsSubProyectos + If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then HttpContext.Current.Application(AppNombre) = P.DtResultados + P.Dispose() + End If + + If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse Estatus <> -1 Then + Dim StrSQL As New StringBuilder + If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto) + If CveSubProyecto <> -1 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0}", CveSubProyecto) + If Estatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatus = {0}", Estatus) + If CveEmpresa <> -1 Then StrSQL.AppendFormat(" AND CveEmpresa = {0}", CveEmpresa) + + Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows) + GlobalDTSubProyectos = Dv.ToTable + Dv.Dispose() + + Else + GlobalDTSubProyectos = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) + End If + + End Get + Set(ByVal value As DataTable) + Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa) + HttpContext.Current.Application(AppNombre) = value + End Set + End Property + +#End Region + Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest Dim retorno As String = "" Try @@ -88,7 +125,56 @@ Public Class E141 : Implements IHttpHandler Dim Codigo = If(context.Request("Sku") = Nothing, "", context.Request("Sku").ToString()) retorno = GetExistencia(context, Codigo) + ElseIf Metodo = "ConsultarRFC" Then + context.Response.ContentType = "application/json" + Dim Auth = ValidarSolicitud(context) + If Auth.IsSucces Then + retorno = ConsultaRFC(context) + Else + retorno = JsonConvert.SerializeObject(Auth.ErrorMessage) + End If + + ElseIf Metodo = "ValidarCarrito" Then + context.Response.ContentType = "application/json" + Dim Auth = ValidarSolicitud(context) + + If Auth.IsSucces Then + retorno = ValidarCarrito(context) + Else + retorno = JsonConvert.SerializeObject(Auth.ErrorMessage) + End If + + ElseIf Metodo = "RegistrarPedido" Then + context.Response.ContentType = "application/json" + Dim Auth = ValidarSolicitud(context) + + If Auth.IsSucces Then + retorno = RegistrarPedido(context) + Else + retorno = JsonConvert.SerializeObject(Auth.ErrorMessage) + End If + + ElseIf Metodo = "RegistrarCotizacion" Then + context.Response.ContentType = "application/json" + Dim Auth = ValidarSolicitud(context) + + If Auth.IsSucces Then + retorno = RegistrarCotizacion(context) + Else + retorno = JsonConvert.SerializeObject(Auth.ErrorMessage) + End If + + ElseIf Metodo = "GetSucursales" Then + context.Response.ContentType = "application/json" + Dim Auth = ValidarSolicitud(context) + + If Auth.IsSucces Then + retorno = GetSucursales(context) + Else + retorno = JsonConvert.SerializeObject(Auth.ErrorMessage) + End If + context.Response.StatusCode = Auth.StatusCode Else context.Response.ContentType = "text/html" @@ -132,11 +218,219 @@ Public Class E141 : Implements IHttpHandler End Try End Sub + Private Function ValidarSolicitud(ByVal context As HttpContext) As AuthMessage + Dim unauthorized As Boolean = True + Dim respuesta As New AuthMessage + + Dim authHeader = context.Request.Headers("Authorization") + If authHeader IsNot Nothing Then + Dim basicAuth As String = authHeader.Replace("Basic ", "") + + Dim usernamePasswordArray = Encoding.UTF8.GetString(Convert.FromBase64String(basicAuth)).Split(":"c) + + Dim userName = usernamePasswordArray(0) + Dim password = usernamePasswordArray(1) + unauthorized = Not (userName = Me.UsuarioWSE141 AndAlso password = Me.PasswordWSE141) + + Else + respuesta.ErrorMessage = New FidelityAppsResponseError() With {.message = "el usuario y/o contraseña son requeridos"} + respuesta.IsSucces = False + respuesta.StatusCode = 401 + + Return respuesta + End If + + If unauthorized Then + respuesta.ErrorMessage = New FidelityAppsResponseError() With {.message = "el usuario y/o contraseña no son validos"} + respuesta.IsSucces = False + respuesta.StatusCode = 401 + + Return respuesta + Else + respuesta.ErrorMessage = Nothing + respuesta.IsSucces = True + respuesta.StatusCode = 200 + + Return respuesta + End If + + End Function + + Private Function ConsultaRFC(ByVal context As HttpContext) As String + Dim Respuesta As New FidelityAppsResponse + Dim RespuestaError As New FidelityAppsResponseError + Dim TieneError As Boolean = False + Dim JsonRequest As JObject = Nothing + + If context.Request.InputStream IsNot Nothing Then + Using reader As New StreamReader(context.Request.InputStream) + Dim json = reader.ReadToEnd + + If Not String.IsNullOrEmpty(json) Then + JsonRequest = JObject.Parse(json) + If JsonRequest Is Nothing Then + TieneError = True + End If + End If + + End Using + End If + + If Not TieneError AndAlso Not String.IsNullOrEmpty(JsonRequest("rfc").ToString().Trim()) Then + + Dim data As New JArray + Dim Nombre As String = "-1" + Dim Codigo As String = "-1" + Dim NombreCorto As String = "-1" + Dim RFC As String = JsonRequest("rfc").ToString() + Dim Telefono As String = "-1" + Dim Mail As String = "-1" + + Dim DtSucursales As DataTable = Nothing + + Using ObjClientes As New ClsClientes + If ObjClientes.GetListaSucursales(RFC, CveEmpresa) Then + DtSucursales = ObjClientes.DtResultados.Copy() + End If + End Using + + If DtSucursales IsNot Nothing Then + Try + For Each Row As DataRow In DtSucursales.Rows + Dim objSucursal As New JObject( + New JProperty("Id", Row("CveCliente")), + New JProperty("rfc", Row("RFC")), + New JProperty("name", Row("SucursalCliente")), + New JProperty("phone", Row("Telefono")), + New JProperty("email", Row("Correo")), + New JProperty("address", Row("Direccion")), + New JProperty("int_number", Row("NoInt")), + New JProperty("ext_number", Row("NoExt")), + New JProperty("street", Row("Direccion")), + New JProperty("between_streets", ""), + New JProperty("city", Row("Localidad")), + New JProperty("state", Row("Estado")), + New JProperty("zip_code", Row("CP")), + New JProperty("reference", ""), + New JProperty("Branch_office_code", ""), + New JProperty("Branch_office_name", ""), + New JProperty("Branch_office_id", "") + ) + data.Add(objSucursal) + Next + Catch ex As Exception + TieneError = True + RespuestaError.message = "Ocurrió un error al obtener la sucursales" + End Try + DtSucursales.Dispose() + Else + TieneError = True + End If + + If data.Count > 0 Then + Respuesta.data = data + End If + End If + + If TieneError Then + Return JsonConvert.SerializeObject(RespuestaError) + Else + Return JsonConvert.SerializeObject(Respuesta) + End If + End Function + + Private Function ValidarCarrito(ByVal context As HttpContext) As String + Dim Respuesta As New FidelityAppsResponse + Dim RespuestaError As New FidelityAppsResponseError + Dim TieneError As Boolean = False + + + If TieneError Then + Return JsonConvert.SerializeObject(RespuestaError) + Else + Return JsonConvert.SerializeObject(Respuesta) + End If + End Function + + Private Function RegistrarPedido(ByVal context As HttpContext) As String + Dim Respuesta As New FidelityAppsResponse + Dim RespuestaError As New FidelityAppsResponseError + Dim TieneError As Boolean = False + + + If TieneError Then + Return JsonConvert.SerializeObject(RespuestaError) + Else + Return JsonConvert.SerializeObject(Respuesta) + End If + End Function + + Private Function RegistrarCotizacion(ByVal context As HttpContext) As String + Dim Respuesta As New FidelityAppsResponse + Dim RespuestaError As New FidelityAppsResponseError + Dim TieneError As Boolean = False + + + If TieneError Then + Return JsonConvert.SerializeObject(RespuestaError) + Else + Return JsonConvert.SerializeObject(Respuesta) + End If + End Function + + Private Function GetSucursales(ByVal context As HttpContext) As String + Dim Respuesta As New FidelityAppsResponse + Dim RespuestaError As New FidelityAppsResponseError + Dim TieneError As Boolean = False + + Dim data As New JArray + + Dim DtSucursales As DataTable = GlobalDTSubProyectos(-1, CveEmpresa:=CveEmpresa).FiltraParametros("EsSucursal = True") + If DtSucursales IsNot Nothing Then + Try + For Each Row As DataRow In DtSucursales.Rows + Dim objSucursal As New JObject( + New JProperty("code", Row("CveSubProyecto")), + New JProperty("name", Row("SubProyecto")), + New JProperty("street", Row("Calle")), + New JProperty("no_ext", Row("NoExt")), + New JProperty("no_int", Row("NoInt")), + New JProperty("zip", Row("CP")), + New JProperty("neighborhood", Row("Colonia")), + New JProperty("city", Row("Municipio")), + New JProperty("phone", Row("Telefono")), + New JProperty("email", Row("Correo")), + New JProperty("geo_lat", ""), + New JProperty("geo_lng", ""), + New JProperty("image", "") + ) + data.Add(objSucursal) + Next + Catch ex As Exception + TieneError = True + RespuestaError.message = "Ocurrió un error al obtener la sucursales" + End Try + DtSucursales.Dispose() + Else + TieneError = True + End If + + If data.Count > 0 Then + Respuesta.data = data + End If + + If TieneError Then + Return JsonConvert.SerializeObject(RespuestaError) + Else + Return JsonConvert.SerializeObject(Respuesta) + End If + End Function + Private Function GetExistencia(ByVal context As HttpContext, Codigo As String) As String Dim respuesta = New With {.isSuccess = False, .message = "", .products = New JArray} If String.IsNullOrEmpty(Codigo) OrElse Codigo = "-1" Then respuesta.message = "el parametro 'Sku' es invalido" - respuesta.isSuccess = False + Respuesta.isSuccess = False Return JsonConvert.SerializeObject(respuesta) End If @@ -735,4 +1029,23 @@ Public Class E141 : Implements IHttpHandler End If End Function + Private Class FidelityAppsResponse + Public Property status As String + Public Property data As Object + End Class + + Private Class FidelityAppsResponseError + Sub New() + status = "error" + End Sub + Public Property status As String + Public Property message As String + End Class + + Private Class AuthMessage + Public Property IsSucces As Boolean + Public Property ErrorMessage As FidelityAppsResponseError + Public Property StatusCode As Integer + End Class + End Class \ No newline at end of file diff --git a/Bancos/PagoAcreedor.aspx.cs b/Bancos/PagoAcreedor.aspx.cs index bf115dfad..fc91d55d9 100644 --- a/Bancos/PagoAcreedor.aspx.cs +++ b/Bancos/PagoAcreedor.aspx.cs @@ -114,9 +114,8 @@ public partial class Bancos_PagoAcreedor : ClsPaginas { if (!IsPostBack) { - UsaComplementaria = false; - CveMonedaCuentaPago = 0; - if (UsuarioActual.CveEmpresa.Contiene(1, 119)) { UsaComplementaria = true; } + UsaComplementaria = true; + CveMonedaCuentaPago = 0; rowComisiones.Visible = UsuarioActual.CveEmpresa.Contiene(1, 4, 5, 7, 11, 12, 72, 80, 126, 119, 122); CargaTipoTransaccion(); diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 6bae061c3..f477a8d99 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -4696,7 +4696,7 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("LogoPath", "")) End If - ImprimirPDF("Empresas/Grales/Formatos/Ajuste.rdlc", DtDatos, params, "Reporte de Ajuste", "PDF") + ImprimirPDF("Empresas/Grales/Formatos/Ajuste.rdlc", DtDatos, params, "Reporte de Ajuste", "PDF", Content_Disposition:="inline") End Sub #End Region diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb index f43caaa7a..87dd131f3 100644 --- a/Compras/ReembolsosComprobaciones.aspx.vb +++ b/Compras/ReembolsosComprobaciones.aspx.vb @@ -425,7 +425,7 @@ Partial Class Compras_ReembolsosComprobaciones End If Dim UsaSimplificacionCajaChica As Boolean = False - If UsuarioActual.CveEmpresa = 119 Then UsaSimplificacionCajaChica = True + If UsuarioActual.CveEmpresa.Contiene(119, 158) Then UsaSimplificacionCajaChica = True @@ -446,7 +446,7 @@ Partial Class Compras_ReembolsosComprobaciones CveIERegistrado = DDlCheques.SelectedValue.ToEntero - If UsuarioActual.CveEmpresa.Contiene(119) Then + If UsuarioActual.CveEmpresa.Contiene(119, 158) Then CvePrePolizaIERegistrado = ObjMov.AddPrePolizas("Compras/Comprobaciones1", 9, TxtImporteVinculado.Text.ToDecimal, TxtImporteVinculado.Text.ToDecimal, CveMoneda, TxtFechaPrePoliza.Text.ToDate, If(TxtObservaciones.Text.Trim = "", concepto, TxtObservaciones.Text.Trim), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CveCajaChica > 0 Then @@ -710,7 +710,7 @@ Partial Class Compras_ReembolsosComprobaciones If gvr.DataKey("Original").ToDecimal > 0 Then PorcentajePago = (ImporteMovto / gvr.DataKey("Original").ToDecimal) Else PorcentajePago = 1 - If Not ChkReembolsarSinBancos.Checked AndAlso (Not HdnCheque.Value.ToEntero > 0 Or Not UsuarioActual.CveEmpresa.Contiene(119)) Then + If Not ChkReembolsarSinBancos.Checked AndAlso (Not HdnCheque.Value.ToEntero > 0 Or Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then 'Si es caja chica metemos el concepto 30, si es funcionario metemos 29 If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaPago, True, ImporteMovto, Referencia, If(CveCajaChica > 0, 30, 29), ConceptoMovimiento, gvr.FCLiteral("LtlFecha").Text.ToDate, If(CveCajaChica > 0, IdCuentaBancaria, IdCtaPersonal), -1, CveIE:=CveIEPago, CveIEDevolucion:=If(CveCajaChica > 0, If(DDlCheques.SelectedValue.ToEntero = -1, CveIECajaChica, DDlCheques.SelectedValue.ToEntero), -1), CvePersonal:=CvePersonal, CveCompra:=gvr.FCHyperLink("HplF2").Text.ToEntero, CveProveedor:=gvr.FCHyperLink("HLProv").Text.ToEntero, ImporteME:=If(tipoCambio = 1, 0, ImporteMovto), ImporteMX:=ImporteMovto * tipoCambio, CveCuenta:=CveCuentaPersonal, CvePrePolizaOriginal:=CvePrePolizaPagoOriginal, Contabilizable:=If(CveCajaChica > 0 Or CvePersonal > 0, Not UsaSimplificacionCajaChica, True)) Then MsgError = "Detalle" diff --git a/Contratos/Contrato.aspx.vb b/Contratos/Contrato.aspx.vb index cc658606f..992646e1b 100644 --- a/Contratos/Contrato.aspx.vb +++ b/Contratos/Contrato.aspx.vb @@ -693,7 +693,7 @@ Partial Class Contratos_Default CargaConvenioPrecioFijo() End If - If UsuarioActual.CveEmpresa = 72 And DdlTipoContrato.SelectedValue.Contiene("7", "8", "10", "13", "28") Then + If UsuarioActual.CveEmpresa = 72 And DdlTipoContrato.SelectedValue.Contiene("7", "8", "9", "10", "13", "28") Then GetNoContratoNuevo() End If @@ -4446,8 +4446,8 @@ Partial Class Contratos_Default Dim TipoContrato As Integer = DdlTipoContrato.SelectedValue.ToEntero() - Dim SufijoContrato As String = "" - + Dim SufijoContrato As String = "" + Select Case TipoContrato Case 7 'Contrato Comodato SufijoContrato = "COMODATO" diff --git a/GPS/RepGeoReferencias.aspx b/GPS/RepGeoReferencias.aspx index 35aefb23b..03362e238 100644 --- a/GPS/RepGeoReferencias.aspx +++ b/GPS/RepGeoReferencias.aspx @@ -1,8 +1,8 @@ -<%@ Page Title="" Language="VB" MasterPageFile="~/SiteGPS.master" AutoEventWireup="false" CodeFile="RepGeoReferencias.aspx.vb" Inherits="GPS_RepGeoReferencias" %> - - - - +<%@ Page Title="" Language="VB" MasterPageFile="~/SiteGPS.master" AutoEventWireup="false" CodeFile="RepGeoReferencias.aspx.vb" Inherits="GPS_RepGeoReferencias" %> + + + + - - -
  • - - Volver a Consultar - -
  • -
    - -
    - - - - - - + + +
    + + - - - + + +
    + diff --git a/GPS/RepGeoReferencias.aspx.vb b/GPS/RepGeoReferencias.aspx.vb index b322bcf74..3c4c9a164 100644 --- a/GPS/RepGeoReferencias.aspx.vb +++ b/GPS/RepGeoReferencias.aspx.vb @@ -12,6 +12,14 @@ Partial Class GPS_RepGeoReferencias Set(value As Integer) ViewState("CveGeoReferencia") = value End Set + End Property + Private Property DtGeoReferencias As DataTable + Get + Return CType(ViewState("DtGeoReferencias"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtGeoReferencias") = value + End Set End Property Private Property DtPosiciones As DataTable Get @@ -49,13 +57,27 @@ Partial Class GPS_RepGeoReferencias Private Sub CargaGeoReferencias() Dim Estatus = If(ChkEstatusGeocerca.Checked, 1, 0) - Dim GPS As New ClsGPS - If GPS.GeoReferenciaGet(-1, Estatus, "-1", UsuarioActual.CveCliente) Then - GVGeoreferencias.DataSource = GPS.DtResultados - Else - GVGeoreferencias.DataSource = Nothing + + Using GPS As New ClsGPS + If GPS.GeoReferenciaGet(-1, Estatus, "-1", UsuarioActual.CveCliente) Then + DtGeoReferencias = GPS.DtResultados.Copy() + End If + End Using + + If DtGeoReferencias IsNot Nothing Then + Dim TotalRegistros As Integer = DtGeoReferencias.Rows.Count + Dim TotalRowsPage As Integer = GVGeoreferencias.PageSize + If TotalRegistros > TotalRowsPage Then + GVGeoreferencias.DataSource = DtGeoReferencias.FiltraPorIndices(0, TotalRowsPage - 1) + DivPaginacion.Visible = True + LblRegistros.Text = $"Distribución de datos desde 0 hasta {TotalRowsPage.ToString().ToDecimal().FormatoNumero(0)}. Total de registros: {TotalRegistros.ToString().ToDecimal().FormatoNumero(0)}" + Else + GVGeoreferencias.DataSource = DtGeoReferencias + End If + Else + GVGeoreferencias.DataSource = DtGeoReferencias End If - GPS.Dispose() + GVGeoreferencias.DataBind() End Sub Private Sub CargaDispositivos() @@ -190,16 +212,11 @@ Partial Class GPS_RepGeoReferencias TxtHoraF.Text = GvRow.DataKey("HoraFin").ToString.ToDateTime.ToString("HH:mm") Using ObjGPS As New ClsGPS - If ObjGPS.GetReferenciaDetalle(-1, CveGeoReferencia, -1, UsuarioActual.CveCliente) Then - If ObjGPS.DtResultados.Rows.Count > 0 Then - DtDetalle = ObjGPS.DtResultados - GvEquiposDetalle.DataSource = DtDetalle - Else - DtDetalle = Nothing - DtDetalleEliminar = Nothing - GvEquiposDetalle.DataSource = Nothing - End If - + If ObjGPS.GetReferenciaDetalle(-1, CveGeoReferencia, -1, UsuarioActual.CveCliente) Then + DtDetalle = ObjGPS.DtResultados.Copy() + DtDetalleEliminar = ObjGPS.DtResultados.Copy() + + GvEquiposDetalle.DataSource = DtDetalle End If End Using GvEquiposDetalle.DataBind() @@ -239,27 +256,22 @@ Partial Class GPS_RepGeoReferencias Dim HoraF As Date = ($"{Date.Now.ToString("dd/MM/yyyy")} {TxtHoraF.Text}").ToDate If ObjGPS.GeoReferenciaUpdate(CveGeoReferencia, TxtNombre.Text, -1, chkEstatus.Checked, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, chkLunes.Checked, chkMartes.Checked, chkMiercoles.Checked, chkJueves.Checked, chkViernes.Checked, - chkSabado.Checked, chkDomingo.Checked, HoraI, HoraF, TxtTolerancia.Text.ToEntero, UsuarioActual.CveCliente) Then - - For Each Dr As DataRow In DtDetalle.Rows - Dim CveGeoReferenciaDetalle = Dr("CveDispositivoGeoreferenciaDetalle").ToString.ToEntero - If CveGeoReferenciaDetalle > 0 Then - If Not ObjGPS.UpdateReferenciaDetalle(CveGeoReferenciaDetalle, CveGeoReferencia, Dr("CveDispositivo").ToString.ToEntero) Then - TieneError = True - Exit For - End If - Else - If Not ObjGPS.AddGeoReferenciaDetalle(CveGeoReferencia, Dr("CveDispositivo").ToString.ToEntero) Then - TieneError = True - Exit For - End If - End If - Next + chkSabado.Checked, chkDomingo.Checked, HoraI, HoraF, TxtTolerancia.Text.ToEntero, UsuarioActual.CveCliente) Then If Not TieneError Then For Each DrE As DataRow In DtDetalleEliminar.Rows - TieneError = Not ObjGPS.RemoveferenciaDetalle(DrE("CveDispositivoGeoreferenciaDetalle").ToString.ToEntero) + If DrE("CveDispositivoGeoreferenciaDetalle").ToString.ToEntero > 0 Then + TieneError = Not ObjGPS.RemoveferenciaDetalle(DrE("CveDispositivoGeoreferenciaDetalle").ToString.ToEntero) + End If Next End If + + For Each Dr As DataRow In DtDetalle.Rows + If Not ObjGPS.AddGeoReferenciaDetalle(CveGeoReferencia, Dr("CveDispositivo").ToString.ToEntero) Then + TieneError = True + Exit For + End If + Next + Else TieneError = True End If @@ -336,14 +348,15 @@ Partial Class GPS_RepGeoReferencias Dim Dr As DataRow = DtDetalle.Rows(e.RowIndex) Dim CveGeoReferenciaDetalle = Dr("CveDispositivoGeoreferenciaDetalle").ToString.ToEntero If CveGeoReferenciaDetalle > 0 Then - - Dim DrEliminar = DtDetalleEliminar.NewRow - DrEliminar("CveDispositivoGeoreferenciaDetalle") = CveGeoReferenciaDetalle - DrEliminar("CveDispositivo") = Dr("CveDispositivo").ToString.ToEntero - DrEliminar("NoEconomico") = Dr("NoEconomico").ToString - DtDetalleEliminar.Rows.Add(DrEliminar) - DtDetalleEliminar.AcceptChanges() - + If DtDetalleEliminar.COUNT("CveDispositivo", $"CveDispositivoGeoreferenciaDetalle={CveGeoReferenciaDetalle}") <= 0 Then + Dim DrEliminar = DtDetalleEliminar.NewRow + DrEliminar("CveDispositivoGeoreferenciaDetalle") = CveGeoReferenciaDetalle + DrEliminar("CveDispositivo") = Dr("CveDispositivo").ToString.ToEntero + DrEliminar("NoEconomico") = Dr("NoEconomico").ToString + DtDetalleEliminar.Rows.Add(DrEliminar) + DtDetalleEliminar.AcceptChanges() + End If + End If DtDetalle.Rows.RemoveAt(e.RowIndex) @@ -415,5 +428,63 @@ Partial Class GPS_RepGeoReferencias Protected Sub ChkEstatusGeocerca_CheckedChanged(sender As Object, e As EventArgs) CargaGeoReferencias() + End Sub + + Protected Sub btnPagePrev_Click(sender As Object, e As EventArgs) + Dim TotalRegistros As Integer = DtGeoReferencias.Rows.Count + Dim TotalRowsPage As Integer = GVGeoreferencias.PageSize + Dim PrevIndex As Integer = HdnIndexPage.Value.ToEntero - 1 + Dim CurrentIndex As Integer = PrevIndex + 1 + + Dim PrevIndexDT As Integer = (TotalRowsPage) * PrevIndex + Dim CurrentIndexDT As Integer = (TotalRowsPage) * CurrentIndex + + HdnIndexPage.Value = PrevIndex.ToString + + If Not btnPageNext.Enabled Then + btnPageNext.Enabled = True + End If + + If PrevIndexDT <= 0 Then + btnPagePrev.Enabled = False + GVGeoreferencias.DataSource = DtGeoReferencias.FiltraPorIndices(0, CurrentIndexDT) + LblRegistros.Text = $"Distribución de datos desde 0 hasta {CurrentIndexDT.ToString.FormatoNumero(0)}. Total de registros: {DtGeoReferencias.Rows.Count.ToString.FormatoNumero(0)}" + Else + LblRegistros.Text = $"Distribución de datos desde {PrevIndexDT.ToString.FormatoNumero(0)} hasta {CurrentIndexDT.ToString.FormatoNumero(0)}. Total de registros: {DtGeoReferencias.Rows.Count.ToString.FormatoNumero(0)}" + GVGeoreferencias.DataSource = DtGeoReferencias.FiltraPorIndices(PrevIndexDT, CurrentIndexDT) + End If + + GVGeoreferencias.DataBind() + UPGV.Update() + + End Sub + + Protected Sub btnPageNext_Click(sender As Object, e As EventArgs) + Dim TotalRegistros As Integer = DtGeoReferencias.Rows.Count + Dim TotalRowsPage As Integer = GVGeoreferencias.PageSize + Dim Index As Integer = HdnIndexPage.Value.ToEntero + 1 + Dim NextIndex As Integer = Index + 1 + + Dim CurrentIndexDT As Integer = (TotalRowsPage) * Index + Dim NextIndexDT As Integer = (TotalRowsPage) * NextIndex + + HdnIndexPage.Value = Index.ToString + + If Not btnPagePrev.Enabled Then + btnPagePrev.Enabled = True + End If + + If NextIndexDT >= TotalRegistros Then + btnPageNext.Enabled = False + GVGeoreferencias.DataSource = DtGeoReferencias.FiltraPorIndices(CurrentIndexDT, TotalRegistros - 1) + LblRegistros.Text = $"Distribución de datos desde {CurrentIndexDT.ToString.FormatoNumero(0)} hasta {DtGeoReferencias.Rows.Count.ToString.FormatoNumero(0)}. Total de registros: {DtGeoReferencias.Rows.Count.ToString.FormatoNumero(0)}" + Else + GVGeoreferencias.DataSource = DtGeoReferencias.FiltraPorIndices(CurrentIndexDT, NextIndexDT) + LblRegistros.Text = $"Distribución de datos desde {CurrentIndexDT.ToString.FormatoNumero(0)} hasta {NextIndexDT.ToString.FormatoNumero(0)}. Total de registros: {DtGeoReferencias.Rows.Count.ToString.FormatoNumero(0)}" + End If + + GVGeoreferencias.DataBind() + UPGV.Update() + End Sub End Class diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 0afefdaef..b204119d5 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -1398,7 +1398,7 @@ Partial Class General_SaldosIniciales 'If Not CveCliente > 0 Then Alert(String.Format("No se encontró el cliente con el RFC: {0}", {RFC}), TipoMensaje.MsgError) : ErrorVentas = True : RFC.GuardaLog : Exit For - TipoDocto = IIf(TipoDocto.Contiene("INGRESO", "INGRESOS"), "Ing", IIf(TipoDocto.Contiene("EGRESO", "EGRESOS"), "Egs", "Rem")).ToString + TipoDocto = IIf(TipoDocto.ToUpper.Contiene("INGRESO", "INGRESOS", "ING"), "Ing", IIf(TipoDocto.ToUpper.Contiene("EGRESO", "EGRESOS", "EGS"), "Egs", "Rem")).ToString 'PrePóliza Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Venta/SaldoInicial", 1, Total, Total, 1, Fecha, String.Format("{0}-{1}", Serie, Folio), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index bde85fdbb..5e886bbf8 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -608,12 +608,12 @@ Partial Class Inventarios_TraspasoAlmacen If Existencia > 0 Then 'la primera vez valida, que la existencia global, cumpla, considerando lo pendiente por surtir 'las segunda consulta, que tenga existencia, ya con los parametros especificos - If (FechaCaducidad > MinFecha OrElse Serie <> "" OrElse Lote <> "") Then + If (FechaCaducidad > MinFecha OrElse Not Serie.Contiene("", "-1") OrElse Not Lote.Contiene("", "-1")) Then ExistenciaEspecificada = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Serie, Lote:=Lote, FechaCaducidad:=FechaCaducidad, PendientePorSurtir:=-1) Dim StrB As New stringbuilder StrB.appendformat("CvePS = {0} AND CveUM = {1} ", CvePS, CveUnidadMedida) - If Serie <> "" Then StrB.appendformat(" AND Serie = '{0}' ", Serie) - If Lote <> "" Then StrB.appendformat(" AND Lote = '{0}' ", Lote) + If Not Serie.Contiene("", "-1") Then StrB.appendformat(" AND Serie = '{0}' ", Serie) + If Not Lote.Contiene("", "-1") Then StrB.appendformat(" AND Lote = '{0}' ", Lote) If FechaCaducidad.ToDate > MinFecha Then StrB.appendformat(" AND FechaCaducidad = '{0}' ", FechaCaducidad.ToShortDateString) Dim CantidadEspecificaEnGrid As Decimal = DtMovimientos.SUMD("Cantidad", StrB.tostring) @@ -2891,23 +2891,21 @@ Partial Class Inventarios_TraspasoAlmacen Dim Cantidad As Double = RowExcel("Cantidad").ToString().ToDecimal() Dim Serie As String = RowExcel("Serie").ToString() - Dim Lote As String = If(RowExcel("Lote").ToString() = "", "-1", RowExcel("Lote").ToString()) - Dim FechaCaducidad As Date = If(RowExcel("FechaCaducidad").ToString <> "", MinFecha, RowExcel("FechaCaducidad").ToString.ToDate) + Dim Lote As String = RowExcel("Lote").ToString() + Dim FechaCaducidad As Date = If(RowExcel("FechaCaducidad").ToString = "", MinFecha, RowExcel("FechaCaducidad").ToString.ToDate) Dim Observaciones As String = RowExcel("Observaciones").ToString() If CveProducto > 0 Then Dim Valido As Boolean = True - Dim CveMetodoInventario As Integer = RowPS("Inv_CveMetodoInventario").ToString().ToEntero() - - If CveMetodoInventario = 5 And (String.IsNullOrEmpty(Serie.Trim()) OrElse Serie = "-1") Then + If RowPS("AplicaSerie").ToString() = "True" And (String.IsNullOrEmpty(Serie.Trim()) OrElse Serie = "-1") Then Valido = False Alert($"El producto '{RowPS("PS")}' requiere 'Serie'", TipoMensaje.MsgAdvertencia) ProductosNoCargados.AppendFormat("{0},", RowPS("PS").ToString()) End If - If CveMetodoInventario = 5 AndAlso Not String.IsNullOrEmpty(Serie.Trim()) Then + If RowPS("AplicaSerie").ToString() = "True" AndAlso Not String.IsNullOrEmpty(Serie.Trim()) Then NoPSConSerie = NoPSConSerie + 1 End If @@ -2919,7 +2917,7 @@ Partial Class Inventarios_TraspasoAlmacen End If If Valido Then - Valido = ValidaExistencia(Cantidad, CveProducto, CveUnidadMedida, -1, If(Not String.IsNullOrEmpty(Serie), Serie, "-1"), Lote, FechaCaducidad) + Valido = ValidaExistencia(Cantidad, CveProducto, CveUnidadMedida, -1, If(Not String.IsNullOrEmpty(Serie), Serie, "-1"), If(Not String.IsNullOrEmpty(Lote), Lote, "-1"), FechaCaducidad) End If If Valido Then diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index 590b08157..cfbf57233 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -6263,6 +6263,13 @@