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" %>
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
+
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 @@