-
+
@@ -129,7 +129,7 @@
-
+
diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb
index b287f64dc..7f52bb552 100644
--- a/App_Code/ClsGenerales.vb
+++ b/App_Code/ClsGenerales.vb
@@ -986,11 +986,11 @@ Public Class ClsGenerales
End Try
Return Retorno
- End Function
+ End Function
#End Region
-
+
#Region "R I M T A M A N I O S"
- Public Function GetRimTamanios(CveEmpresa As Integer, Optional CveRinTamaño As Integer = -1) As Boolean
+ Public Function GetRinTamanios(CveEmpresa As Integer, Optional CveRinTamaño As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_TamañosGet")
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index b2b9a8172..a7c0d3c14 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -4401,6 +4401,45 @@ Public Class ClsPaginas
Application(AppNombre) = value
End Set
End Property
+
+ Public Shared Property GlobalDTPSRinTamaños(CveEmpresa As Integer, Optional CveRinTamaño As Integer = -1) As DataTable
+ Get
+ Dim AppNombre As String = $"GlobalDTPSRinTamaños-{CveEmpresa}"
+ If HttpContext.Current.Application(AppNombre) Is Nothing Then
+ Using ObjGral As New ClsGenerales()
+ If ObjGral.GetRinTamanios(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjGral.DtResultados Else HttpContext.Current.Application(AppNombre) = Nothing
+ End Using
+ End If
+ Dim Str As New StringBuilder
+ If CveRinTamaño > 0 Then Str.AppendFormat(" CveRinTamaño = {0} ", CveRinTamaño)
+ Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows)
+ GlobalDTPSRinTamaños = Dv.ToTable
+ End Get
+ Set(value As DataTable)
+ Dim AppNombre As String = $"GlobalDTPSRinTamaños-{CveEmpresa}"
+ HttpContext.Current.Application(AppNombre) = value
+ End Set
+ End Property
+
+ Public Shared Property GlobalDTPSMedidas(CveEmpresa As Integer, Optional CveMedida As Integer = -1) As DataTable
+ Get
+ Dim AppNombre As String = $"GlobalDTPSMedidas-{CveEmpresa}"
+ If HttpContext.Current.Application(AppNombre) Is Nothing Then
+ Using ObjGral As New ClsGenerales()
+ If ObjGral.GetMedidas(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjGral.DtResultados Else HttpContext.Current.Application(AppNombre) = Nothing
+ End Using
+ End If
+ Dim Str As New StringBuilder
+ If CveMedida <> -1 Then Str.AppendFormat(" CveMedida = {0} ", CveMedida)
+ Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows)
+ GlobalDTPSMedidas = Dv.ToTable
+ End Get
+ Set(value As DataTable)
+ Dim AppNombre As String = $"GlobalDTPSMedidas-{CveEmpresa}"
+ HttpContext.Current.Application(AppNombre) = value
+ End Set
+ End Property
+
#Region "CITRUS GAME"
Property GlobalDTGralEmpacados(CveEmpresa As Integer) As DataTable
Get
@@ -5829,6 +5868,12 @@ Public Class ClsPaginas
NombreArchivo = "Factura"
NombreArchivoDescarga = "Factura"
TipoDocumento = "INGRESO"
+
+ If Vta.CveSubProyecto.Contiene(12696, 12698) Then
+ NombreArchivo = "FacturaUSA"
+ NombreArchivoDescarga = "FacturaUSA"
+ End If
+
If UsuarioActual.CveEmpresa.Contiene(137) Then
params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString))
End If
@@ -5876,6 +5921,10 @@ Public Class ClsPaginas
NombreArchivo = "Remision"
NombreArchivoDescarga = "Remisión"
TipoDocumento = "REMISION"
+ If Vta.CveSubProyecto.Contiene(12696, 12698) Then
+ NombreArchivo = "FacturaUSA"
+ NombreArchivoDescarga = "FacturaUSA"
+ End If
params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga))
params.Add(New ReportParameter("Tipo", TipoDocumento))
params.Add(New ReportParameter("Ref", TipoDocumentoRef))
@@ -5885,7 +5934,7 @@ Public Class ClsPaginas
params.Add(New ReportParameter("Documentacion", Vta.Cliente.Documentacion))
params.Add(New ReportParameter("Medico", Vta.Medico))
params.Add(New ReportParameter("Procedimiento", Vta.Procedimiento))
- params.Add(New ReportParameter("FechaCirugia", Vta.FechaEjecucion.ToString("dd/MM/yyyy hh:mm")))
+ params.Add(New ReportParameter("FechaCirugia", Vta.FechaEjecucion.ToString("dd/MM/yyyy HH:mm")))
End If
RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo)
@@ -5993,7 +6042,7 @@ Public Class ClsPaginas
params.Add(New ReportParameter("Documentacion", Vta.Cliente.Documentacion))
params.Add(New ReportParameter("Medico", Vta.Medico))
params.Add(New ReportParameter("Procedimiento", Vta.Procedimiento))
- params.Add(New ReportParameter("FechaCirugia", Vta.Alfa1.ToDateTime.ToString("dd/MM/yyyy hh:mm")))
+ params.Add(New ReportParameter("FechaCirugia", Vta.FechaEjecucion.ToString("dd/MM/yyyy HH:mm")))
End If
RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo)
@@ -6307,7 +6356,7 @@ Public Class ClsPaginas
Dim paramsArray As New JArray()
For Each rds As ReportDataSource In DataSource
Dim Nombre As String = rds.Name
- If RutaReporte.Contains("Factura.mrt") OrElse RutaReporte.Contains("Remision.mrt") OrElse RutaReporte.Contains("Cotizacion.mrt") OrElse RutaReporte.Contains("NotaDevolucion.mrt") OrElse RutaReporte.Contains("Pedido.mrt") Then
+ If RutaReporte.Contains("Factura") OrElse RutaReporte.Contains("Remision") OrElse RutaReporte.Contains("Cotizacion") OrElse RutaReporte.Contains("NotaDevolucion") OrElse RutaReporte.Contains("Pedido") Then
Select Case rds.Name
Case "DsOC"
Nombre = "DtDetalle"
@@ -9583,9 +9632,9 @@ Public Class ClsPaginas
#Region "Transportes"
PaginaDict.Add("/Transportes/ListadoContratos.aspx".ToUpper(), 598)
- PaginaDict.Add("/Transportes/ListadoViajes.aspx".ToUpper(), 598)
- PaginaDict.Add("/Transportes/Boletos.aspx".ToUpper(), 598)
- PaginaDict.Add("/Transportes/ListadoBoletos.aspx".ToUpper(), 598)
+ PaginaDict.Add("/Transportes/ListadoViajes.aspx".ToUpper(), 599)
+ PaginaDict.Add("/Transportes/ListadoBoletos.aspx".ToUpper(), 600)
+ PaginaDict.Add("/Transportes/Boletos.aspx".ToUpper(), 601)
#End Region
'Antes de aquí.
diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb
index 5344c61fa..f5a3d51af 100644
--- a/App_Code/ClsProductosServicios.vb
+++ b/App_Code/ClsProductosServicios.vb
@@ -31,7 +31,7 @@ Public Class ClsProductosServicios
Public Property SATClavePS As String
Public Property SATDescripcion As String
Public Property Codigo As String
- Public Property Codigo2 As String
+ Public Property NumeroParte As String
Public Property CodigoBarras As String
Public Property PS As String
Public Property Precio As Double
@@ -202,7 +202,7 @@ Public Class ClsProductosServicios
End Sub
#End Region
- Public Function GetPS(CvePS As Integer, CveClasificacion As Integer, CveEmpresa As Integer, Optional Codigo As String = "-1", Optional Codigo2 As String = "-1",
+ Public Function GetPS(CvePS As Integer, CveClasificacion As Integer, CveEmpresa As Integer, Optional Codigo As String = "-1", Optional NumeroParte As String = "-1",
Optional CodigoBarras As String = "-1", Optional PS As String = "-1", Optional EsPaquete As Integer = -1, Optional CveSubProyecto As Integer = -1,
Optional pAplicaParaVenta As Integer = -1, Optional pEstado As Integer = -1, Optional CveClasificacionCosto As Integer = -1, Optional CveTipoPS As Integer = -1,
Optional CveCompuesto As Integer = -1, Optional SATClavePS As String = "-1", Optional TopSelect As Integer = 10000, Optional CveMarca As Integer = -1) As Boolean
@@ -213,7 +213,7 @@ Public Class ClsProductosServicios
With SqlAdapter.SelectCommand.Parameters
.Add("@CvePS", SqlDbType.Int).Value = CvePS
.Add("@Codigo", SqlDbType.VarChar).Value = Codigo
- .Add("@Codigo2", SqlDbType.VarChar).Value = Codigo2
+ .Add("@NumeroParte", SqlDbType.VarChar).Value = NumeroParte
.Add("@CodigoBarras", SqlDbType.VarChar).Value = CodigoBarras
.Add("@PS", SqlDbType.VarChar).Value = PS
.Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion
@@ -242,7 +242,7 @@ Public Class ClsProductosServicios
SATDescripcion = Data.Rows(0)("SATDescripcion").ToString
Me.CveTipoPS = Data.Rows(0)("CveTipoPS").ToString.ToEntero
Me.Codigo = Data.Rows(0)("Codigo").ToString
- Me.Codigo2 = Data.Rows(0)("Codigo2").ToString
+ Me.NumeroParte = Data.Rows(0)("NumeroParte").ToString
Me.CodigoBarras = Data.Rows(0)("CodigoBarras").ToString
Me.PS = Data.Rows(0)("PS").ToString
Precio = Data.Rows(0)("Precio").ToString.ToDouble
@@ -400,7 +400,7 @@ Public Class ClsProductosServicios
End Try
Return Retorno
End Function
- Public Function AddPS(CveClasificacion As Integer, CveClasificacionCosto As Integer, CveUnidadMedida As Integer, Codigo As String, Codigo2 As String, CodigoBarras As String, PS As String, Precio As Double, IVA As Double, RetIVA As Double, Inventariable As Boolean, CveProveedorCompra As Integer,
+ Public Function AddPS(CveClasificacion As Integer, CveClasificacionCosto As Integer, CveUnidadMedida As Integer, Codigo As String, NumeroParte As String, CodigoBarras As String, PS As String, Precio As Double, IVA As Double, RetIVA As Double, Inventariable As Boolean, CveProveedorCompra As Integer,
AplicaParaConcepto As Boolean, AplicaParaVenta As Boolean, CveUsuario As Integer, CveEmpresa As Integer, CveMetodoInventario As Integer, EsPaquete As Integer,
Optional CveTipoPS As Integer = -1, Optional FuePorXML As Boolean = True, Optional TipoServicio As Integer = -1, Optional CveClasificacion2 As Integer = -1,
Optional CveMarca As Integer = -1, Optional AlmacenSeccion As String = "", Optional AplicaIEPS As Boolean = False, Optional IEPSPorcentaje As Decimal = -1,
@@ -425,7 +425,7 @@ Public Class ClsProductosServicios
.Add("@CveClasificacionCosto", SqlDbType.Int).Value = CveClasificacionCosto
.Add("@CveUnidadMedida", SqlDbType.Int).Value = CveUnidadMedida
.Add("@Codigo", SqlDbType.VarChar).Value = Codigo
- .Add("@Codigo2", SqlDbType.VarChar).Value = If(Codigo2 = "", "-1", Codigo2)
+ .Add("@NumeroParte", SqlDbType.VarChar).Value = If(NumeroParte = "", "-1", NumeroParte)
.Add("@CodigoBarras", SqlDbType.VarChar).Value = If(CodigoBarras = "", "-1", CodigoBarras)
.Add("@PS", SqlDbType.VarChar).Value = If(PS.Length > 845, PS.Substring(0, 845), PS)
.Add("@Precio", SqlDbType.Float).Value = Precio
@@ -553,7 +553,7 @@ Public Class ClsProductosServicios
.Add("@CveClasificacionCosto", SqlDbType.Int).Value = PS.CveClasificacionCosto
.Add("@CveUnidadMedida", SqlDbType.Int).Value = PS.CveUnidadMedida
.Add("@Codigo", SqlDbType.VarChar).Value = PS.Codigo
- .Add("@Codigo2", SqlDbType.VarChar).Value = If(PS.Codigo2 = "", "-1", PS.Codigo2)
+ .Add("@NumeroParte", SqlDbType.VarChar).Value = If(PS.NumeroParte = "", "-1", PS.NumeroParte)
.Add("@CodigoBarras", SqlDbType.VarChar).Value = If(PS.CodigoBarras = "", "-1", PS.CodigoBarras)
.Add("@PS", SqlDbType.VarChar).Value = If(PS.PS.Length > 845, PS.PS.Substring(0, 845), PS.PS)
.Add("@Precio", SqlDbType.Float).Value = PS.Precio
@@ -646,7 +646,7 @@ Public Class ClsProductosServicios
Return Retorno
End Function
- Public Function UpdatePS(CveClasificacion As Integer, CveClasificacionCosto As Integer, CveUnidadMedida As Integer, Codigo As String, Codigo2 As String, CodigoBarras As String, PS As String, Precio As Double, IVA As Double, RetIVA As Double, Inventariable As Boolean, CveProveedorCompra As Integer,
+ Public Function UpdatePS(CveClasificacion As Integer, CveClasificacionCosto As Integer, CveUnidadMedida As Integer, Codigo As String, NumeroParte As String, CodigoBarras As String, PS As String, Precio As Double, IVA As Double, RetIVA As Double, Inventariable As Boolean, CveProveedorCompra As Integer,
AplicaParaConcepto As Boolean, AplicaParaVenta As Boolean, Estado As Boolean, CveUsuario As Integer, CvePS As Integer, CveMetodoInventario As Integer, EsPaquete As Integer, CveSATPS As Integer, CveEmpresa As Integer, Optional CveTipoPS As Integer = -1, Optional TipoServicio As Integer = -1,
Optional CveClasificacion2 As Integer = -1, Optional CveMarca As Integer = -1, Optional AlmacenSeccion As String = "", Optional AplicaIEPS As Boolean = False, Optional IEPSPorcentaje As Decimal = -1,
Optional CveCompuesto As Integer = -1, Optional IEPSGrabaIVA As Boolean = False, Optional VentaMinima As Decimal = 0,
@@ -669,7 +669,7 @@ Public Class ClsProductosServicios
.Add("@CveClasificacionCosto", SqlDbType.Int).Value = CveClasificacionCosto
.Add("@CveUnidadMedida", SqlDbType.Int).Value = CveUnidadMedida
.Add("@Codigo", SqlDbType.VarChar).Value = Codigo
- .Add("@Codigo2", SqlDbType.VarChar).Value = If(Codigo2 = "", "-1", Codigo2)
+ .Add("@NumeroParte", SqlDbType.VarChar).Value = If(NumeroParte = "", "-1", NumeroParte)
.Add("@CodigoBarras", SqlDbType.VarChar).Value = If(CodigoBarras = "", "-1", CodigoBarras)
.Add("@PS", SqlDbType.VarChar).Value = PS
.Add("@Precio", SqlDbType.Float).Value = Precio
diff --git a/App_Code/ClsTransportes.vb b/App_Code/ClsTransportes.vb
index b6cabeeb0..6705d9007 100644
--- a/App_Code/ClsTransportes.vb
+++ b/App_Code/ClsTransportes.vb
@@ -316,6 +316,24 @@ Public Class ClsTransportes
End Function
#End Region
+ Public Function GetDestinos(Optional CveRuta As Integer = 0) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Trans_DestinosGet")
+ If CveRuta <> 0 Then
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveRuta", SqlDbType.Int).Value = CveRuta
+ End With
+ End If
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener los destino.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+
+ Return Retorno
+ End Function
#Region "Tarifas"
Public Function GetDestinosTarifas(CveDestinoOrigen As Integer, CveDestinoFinal As Integer) As Boolean
diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index 793ee709c..560f2b21c 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -574,7 +574,7 @@ Public Class ClsVentas
Optional AtencionA As String = "-1", Optional PedidoContrato As String = "-1", Optional CveFormaPago33 As Integer = -1, Optional CveMetodoPago33 As Integer = -1,
Optional CveCliente As Integer = -1, Optional CveClienteSucursal As Integer = -1, Optional OrdenCompra As String = "-1", Optional RetIVA As Double = -1,
Optional RetISR As Double = -1, Optional Kilometraje As Double = 0, Optional CveUsoCFDi As Integer = -1, Optional ServicioDomicilio As Boolean = False, Optional CveVendedor As Integer = -1,
- Optional RequiereOS As Boolean = False) As Boolean
+ Optional RequiereOS As Boolean = False, Optional CveMedico As Integer = -1, Optional CveProcedimiento As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_VentasUpdate")
@@ -610,6 +610,8 @@ Public Class ClsVentas
.Add("@ServicioDomicilio", SqlDbType.Bit).Value = ServicioDomicilio
.Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor
.Add("@RequiereOS", SqlDbType.Int).Value = RequiereOS
+ .Add("@CveMedico", SqlDbType.Int).Value = CveMedico
+ .Add("@CveProcedimiento", SqlDbType.Int).Value = CveProcedimiento
End With
Try
@@ -623,7 +625,7 @@ Public Class ClsVentas
End Function
Public Function UpdateObservacionesVenta(CveVenta As Integer, CveEmpresa As Integer, CveVendedor As Integer, Observaciones As String, FormaPaqueteria As Integer, CorreoNotificaciones As String, ObservacionesAlm As String,
- Pedido As String, OrdenCompra As String, FechaPago As String, CveUsoCFDI As Integer) As Boolean
+ Pedido As String, OrdenCompra As String, FechaPago As String, CveUsoCFDI As Integer, Optional DescripcionVenta As String = "-1", Optional CveMedico As Integer = -1, Optional CveProcedimiento As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_VentasObservacionesUpdate")
With SqlAdapter.SelectCommand.Parameters
@@ -638,6 +640,11 @@ Public Class ClsVentas
.Add("@Pedido", SqlDbType.NVarChar).Value = Pedido
.Add("@OrdenCompra", SqlDbType.NVarChar).Value = OrdenCompra
.Add("@FechaPago", SqlDbType.Date).Value = FechaPago
+ .Add("@DescripcionVenta", SqlDbType.VarChar).Value = DescripcionVenta
+ .Add("@CveMedico", SqlDbType.Int).Value = CveMedico
+ .Add("@CveProcedimiento", SqlDbType.Int).Value = CveProcedimiento
+
+
End With
Try
SqlAdapter.Fill(Data)
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 100ca0f8b..4fd52665f 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -7563,7 +7563,7 @@ Namespace Modelos
Public Property CveVendedor As Integer = 0
Public Property VendedorCodigo As String = ""
Public Property CveSucursalEjecucion As Integer
- Public Property FechaEjecucion As Date
+ Public Property FechaEjecucion As DateTime
Public Property CveSucursalCobranza As Integer
Public Property CveSubProyectoCobranza As Integer
@@ -8769,7 +8769,7 @@ Namespace Modelos
CveClasificacionCosto = -1
CveClasificacion = -1
Codigo = ""
- Codigo2 = ""
+ NumeroParte = ""
CodigoBarras = ""
CveMetodoInventario = -1
CveTipoPS = -1
@@ -8796,7 +8796,7 @@ Namespace Modelos
Public Property UnidadMedida As String
Public Property SATClaveUnidadMedida As String
Public Property Codigo As String
- Public Property Codigo2 As String
+ Public Property NumeroParte As String
Public Property CodigoBarras As String
Public Property PS As String
Public Property SATClavePS As String
diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb
index ead2bb3c7..d93e09b99 100644
--- a/App_Code/Timbrado.vb
+++ b/App_Code/Timbrado.vb
@@ -459,8 +459,6 @@ Public Class Timbrado
Clave = "12345678a"
TimbraProduccion = False
- UsuarioServicio = "UserTest"
- ClaveServicio = "1234567890"
End If
Dim llaveByte As Byte(), certByte As Byte()
@@ -1011,6 +1009,8 @@ Public Class Timbrado
Private Function EnviarInformacionPADE(url As String, payload As String, tokenAuth As String) As String
Dim Retorno As String = ""
Try
+ ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
+
Using httpClient As New HttpClient()
httpClient.Timeout = New TimeSpan(0, 1, 0)
Using request As New HttpRequestMessage(HttpMethod.Post, New Uri(url))
@@ -1025,7 +1025,7 @@ Public Class Timbrado
End Using
Catch ex As Exception
Retorno = ""
- OnError("Ocurrió un error al enviar la informacion", ex)
+ OnError("PAC no está respondiendo. No se puede emitir el timbre (Err.PAC5).", ex)
End Try
Return Retorno
End Function
@@ -3171,8 +3171,6 @@ Public Class Timbrado
Clave = "12345678a"
TimbraProduccion = False
- UsuarioServicio = "UserTest"
- ClaveServicio = "1234567890"
End If
diff --git a/App_Code/Timbres.vb b/App_Code/Timbres.vb
index 8e40b78aa..9770f9d03 100644
--- a/App_Code/Timbres.vb
+++ b/App_Code/Timbres.vb
@@ -303,7 +303,7 @@ Public Class Timbres
.DescripEmbalaje = drr("Embalaje").ToString,
.ValorMercancia = drr("PU").ToString.ToDecimal,
.Moneda = If(drr("PU").ToString.ToDecimal > 0, "MXN", ""), 'temporal
- .FraccionArrancelaria = "",
+ .FraccionArrancelaria = drr("ClaveSATFraccionArancelaria").ToString,
.UUIDComercioExt = "",
.SectorCOFEPRIS = drr("ClaveSectorCOFEPRIS").ToString,
.NombreIngredienteActivo = drr("NombreIngredienteActivo").ToString,
diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb
index d79ec8554..120c31636 100644
--- a/App_Code/modExtensiones.vb
+++ b/App_Code/modExtensiones.vb
@@ -821,6 +821,10 @@ Namespace Extensiones
End If
Return Tmp
End Function
+
+ Public Function SubStringADS(Str As String, Longitud As Integer) As String
+ Return Str.Substring(0, If(Str.Length > Longitud, Longitud, Str.Length))
+ End Function
Public Function Texto2Letras(ByVal Importe As Decimal, Optional CveMoneda As Integer = 1) As String
diff --git a/Ashx/E119.ashx b/Ashx/E119.ashx
index 0be1294cf..36d4258df 100644
--- a/Ashx/E119.ashx
+++ b/Ashx/E119.ashx
@@ -384,8 +384,13 @@ Public Class E119 : Implements IHttpHandler
CveMoneda = 1
Descuento = 0
MsgLog.AppendLine("1.3 billing")
- Dim RFC As String = If(JsonRequest("billing") Is Nothing, "", JsonRequest("billing")("first_name").ToString())
- Dim NombreCliente As String = If(JsonRequest("billing") Is Nothing, "", JsonRequest("billing")("first_name").ToString() & " " & JsonRequest("billing")("last_name").ToString())
+ Dim RFC As String = ""
+ Dim NombreCliente As String = ""
+ If JsonRequest("billing") IsNot Nothing Then
+ RFC = JsonRequest("billing").First("first_name").ToString()
+ NombreCliente = JsonRequest("billing").First("first_name").ToString() & " " & JsonRequest("billing").First("last_name").ToString()
+ End If
+
'BUSCAR SI ESTÁ REGISTRADO EL CLIENTE
If ObjClientes.GetClientes(-1, "-1", "-1", "-1", RFC, "-1", "-1", -1, CveEmpresa, 1, TipoCliente:=-1, TopSelect:=1) Then
If ObjClientes.DtResultados.Rows.Count > 0 Then
@@ -401,16 +406,16 @@ Public Class E119 : Implements IHttpHandler
MsgLog.AppendLine("1.5 crear cliente")
If JsonRequest("billing") IsNot Nothing Then
Dim CveEstado As Integer = -1
- Dim Direccion As String = If(JsonRequest("billing")("address_1") Is Nothing, "", JsonRequest("billing")("address_1").ToString())
+ Dim Direccion As String = If(JsonRequest("billing").First("address_1") Is Nothing, "", JsonRequest("billing").First("address_1").ToString())
Dim NumExt As String = ""
Dim NumInt As String = ""
Dim Colonia As String = ""
- Dim Ciudad As String = If(JsonRequest("billing")("city") Is Nothing, "", JsonRequest("billing")("city").ToString())
- Dim Localidad As String = If(JsonRequest("billing")("city") Is Nothing, "", JsonRequest("billing")("city").ToString())
- Dim CP As String = If(JsonRequest("billing")("postcode") Is Nothing, "", JsonRequest("billing")("postcode").ToString())
- Dim Telefono As String = If(JsonRequest("billing")("phone") Is Nothing, "", JsonRequest("billing")("phone").ToString())
- Dim Correo As String = If(JsonRequest("billing")("email") Is Nothing, "", JsonRequest("billing")("email").ToString())
- Dim Estado As String = If(JsonRequest("billing")("state") Is Nothing, "", JsonRequest("billing")("state").ToString())
+ Dim Ciudad As String = If(JsonRequest("billing").First("city") Is Nothing, "", JsonRequest("billing").First("city").ToString())
+ Dim Localidad As String = If(JsonRequest("billing").First("city") Is Nothing, "", JsonRequest("billing").First("city").ToString())
+ Dim CP As String = If(JsonRequest("billing").First("postcode") Is Nothing, "", JsonRequest("billing").First("postcode").ToString())
+ Dim Telefono As String = If(JsonRequest("billing").First("phone") Is Nothing, "", JsonRequest("billing").First("phone").ToString())
+ Dim Correo As String = If(JsonRequest("billing").First("email") Is Nothing, "", JsonRequest("billing").First("email").ToString())
+ Dim Estado As String = If(JsonRequest("billing").First("state") Is Nothing, "", JsonRequest("billing").First("state").ToString())
If Not String.IsNullOrEmpty(Estado) Then
CveEstado = ClsPaginas.GlobalDTGralEstados("MEX").FiltroPrimeroValor("CveEstado", $"NombreEstado = '{Estado.Trim}'").ToEntero()
If CveEstado <= 0 Then 'SI NO ENCUENTRA EL ESTADO INGRESA EL DE SONORA
diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx
index 72879ad20..cea15c20e 100644
--- a/Ashx/E141.ashx
+++ b/Ashx/E141.ashx
@@ -98,8 +98,8 @@ Public Class E141 : Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim retorno As String = ""
Try
- Dim Params = If(context.Request("P") = Nothing, "", context.Request("P").ToString())
- Dim ParamsV = If(context.Request("PV") = Nothing, "", context.Request("PV").ToString())
+ Dim Params As String = If(context.Request("P") = Nothing, "", context.Request("P").ToString())
+ Dim ParamsV As String = If(context.Request("PV") = Nothing, "", context.Request("PV").ToString())
Dim ParametrosNuevos As Boolean = False
If Not String.IsNullOrEmpty(ParamsV) Then
@@ -135,16 +135,16 @@ Public Class E141 : Implements IHttpHandler
Else
- Dim Metodo = If(context.Request("Metodo") = Nothing, "", context.Request("Metodo").ToString())
+ Dim Metodo As String = If(context.Request("Metodo") = Nothing, "", context.Request("Metodo").ToString())
'OBTENER EXISTENCIAS
If Metodo = "GetExistencia" Then
context.Response.ContentType = "application/json"
- Dim Codigo = If(context.Request("Sku") = Nothing, "", context.Request("Sku").ToString())
+ Dim Codigo As String = 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)
+ Dim Auth As AuthMessage = ValidarSolicitud(context)
If Auth.IsSucces Then
retorno = ConsultaRFC(context)
@@ -155,7 +155,7 @@ Public Class E141 : Implements IHttpHandler
ElseIf Metodo = "ValidarCarrito" Then
context.Response.ContentType = "application/json"
- Dim Auth = ValidarSolicitud(context)
+ Dim Auth As AuthMessage = ValidarSolicitud(context)
If Auth.IsSucces Then
retorno = ValidarCarrito(context)
@@ -166,7 +166,7 @@ Public Class E141 : Implements IHttpHandler
ElseIf Metodo = "RegistrarPedido" Then
context.Response.ContentType = "application/json"
- Dim Auth = ValidarSolicitud(context)
+ Dim Auth As AuthMessage = ValidarSolicitud(context)
If Auth.IsSucces Then
retorno = RegistrarPedido(context)
diff --git a/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb b/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb
index 70b743efd..3b5505acb 100644
--- a/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb
+++ b/Contabilidad2/RepEstadoResultadosHorizontal.aspx.vb
@@ -2130,6 +2130,12 @@ Partial Class Contabilidad_RepEstadoResultadosHorizontal
If GvIngresosSubProyectoH.Columns(IndexGv).GetType.Name = "BoundField" Then
+ If dColumn.ColumnName = "SinSubProyecto" Then
+ 'TxtSub = "Sin SubProyecto"
+ 'Continue For
+ Exit For
+ End If
+
CType(GvIngresosSubProyectoH.Columns(IndexGv), BoundField).DataField = dColumn.ColumnName
GvIngresosSubProyectoH.Columns(IndexGv).Visible = True
@@ -2143,9 +2149,7 @@ Partial Class Contabilidad_RepEstadoResultadosHorizontal
Dim TxtSub As String = GlobalDTSubProyectos(-1, CveSubProyecto:=dColumn.ColumnName.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto")
- If dColumn.ColumnName = "SinSubProyecto" Then
- TxtSub = "Sin SubProyecto"
- End If
+
CType(GvIngresosSubProyectoH.Columns(IndexGv), BoundField).HeaderText = TxtSub
@@ -2190,6 +2194,7 @@ Partial Class Contabilidad_RepEstadoResultadosHorizontal
IndexData = IndexData + 1
If dColumn.ColumnName = "SinSubProyecto" Then
+ 'Continue For
Exit For
End If
Next
diff --git a/Empresas/188/Formatos/Boleto.mrt b/Empresas/188/Formatos/Boleto.mrt
new file mode 100644
index 000000000..77ad4fef0
--- /dev/null
+++ b/Empresas/188/Formatos/Boleto.mrt
@@ -0,0 +1,1155 @@
+
+
+ Interpretation
+
+
+
+
+
+
+
+
+ ReportParameters
+ ReportParameters,Ruta,Ruta,,System.String,RUTA_x0020_101_x0020_VIA_x0020_SAN_x0020_FRANCISCO,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,_x0037_f0f80c11ace4980af534dea0e66ae04
+ ReportParameters,Origen,Origen,,System.String,GUAYMAS_x0020_SON,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,_x0039_e9facc30b104f86b1e310401529dae5
+ ReportParameters,Destino,Destino,,System.String,NAPA_x0020_101,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,c10a083d19ff438aaf2166b8875ae769
+ ReportParameters,FechaSalida,FechaSalida,,System.String,_x0032_024-01-03,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,_x0033_a01d4856a0f4f379f5dceff384f582e
+ ReportParameters,HoraSalida,HoraSalida,,System.String,_x0031_7:00,False,False,False,False,,_x0038_dc813ab476543688554b291a9de132d
+ ReportParameters,Asiento,Asiento,,System.String,_x0034_4,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,b3bc9f2902964064bbe83f38e0ca7de2
+ ReportParameters,Nombre,Nombre,,System.String,José_x0020_Manuel_x0020_Méndez_x0020_Jr.,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,_x0038_f7d3778d21040f5904a142bc66e56c1
+ ReportParameters,Visa,Visa,,System.String,_x0030_8_x002F_22_x002F_2022,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,b491315f90ef44f8895d4e835adf914a
+ ReportParameters,Agencia,Agencia,,System.String,Lolys_x0020_Travel,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_
+ ReportParameters,TelefonoAgencia,TelefonoAgencia,,System.String,_x0033_2232,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_
+ ReportParameters,Celular,Celular,,System.String,_x0039_526422037,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_,_x0034_ed4e36d5bab4f9e8e2929348b73f345
+ ReportParameters,Importe,Importe,,System.String,_x0031_70,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_
+ ReportParameters,TipoBoleto,TipoBoleto,,System.String,Tercera_x0020_Edad,False,False,True,False,_x003C__x003F_xml_x0020_version_x003D__x0022_1.0_x0022__x0020_encoding_x003D__x0022_utf-16_x0022__x0020_standalone_x003D__x0022_yes_x0022__x003F__x003E__x003C_StiSerializer_x0020_version_x003D__x0022_1.02_x0022__x0020_type_x003D__x0022_Net_x0022__x0020_application_x003D__x0022_State_x0022__x003E__x003C_SortDirection_x003E_None_x003C__x002F_SortDirection_x003E__x003C_BindingVariable_x0020_isNull_x003D__x0022_true_x0022__x0020__x002F__x003E__x003C_Keys_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_Values_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C_CheckedStates_x0020_isList_x003D__x0022_true_x0022__x0020_count_x003D__x0022_0_x0022__x0020__x002F__x003E__x003C__x002F_StiSerializer_x003E_
+
+
+ EngineV2
+
+ 6a55c916841c4d578ddd9762afe67ae2
+
+
+
+ None;Black;2;Solid;False;4;Black
+ Transparent
+
+
+ Transparent
+ 0.4,1.4,5.4,2.6
+
+
+ Right
+ 68, 114, 196
+ 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
+ 0,0,0,0
+ Image1
+
+
+ Center
+
+
+ Bottom;[191:191:191];1;Solid;False;4;Black
+ Transparent
+ 0,0,19,1.4
+
+
+ Sans Serif Collection,20
+ 0,0,0,0
+ Text2
+
+
+ Reimpresión del Boleto
+ [63:63:63]
+ Expression
+
+
+ Transparent
+ 6,1.8,1.2,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text3
+
+
+ Ruta:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 6,3.8,1.2,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text1
+
+
+ Destino:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 6,2.8,1.2,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text4
+
+
+ Origen:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 11,1.8,1.8,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text5
+
+
+ Fecha Salida:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 11,2.8,1.8,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text6
+
+
+ Hora Salida:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 1.4,4.8,2.4,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text7
+
+
+ Nombre:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 1.4,6.8,2.4,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text8
+
+
+ Agencia:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 1.4,5.8,2.4,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text9
+
+
+ Visa:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 11,5.8,1.8,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text10
+
+
+ Teléfono:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 1.4,7.8,2.4,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text11
+
+
+ Teléfono Agencia:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 11,6.8,1.8,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Right
+ 0,0,0,0
+ Text12
+
+
+ Tipo Boleto:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 0.4,9.2,2.8,0.6
+
+
+ Sans Serif Collection,8,Bold
+ 0,0,0,0
+ Text13
+
+
+ Condiciones:
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 0.4,9.8,9.2,0.4
+
+
+ Sans Serif Collection,7
+ 0,0,0,0
+ Text14
+
+
+ - 100 libras por persona.
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 0.4,10.2,9.2,0.4
+
+
+ Sans Serif Collection,7
+ 0,0,0,0
+ Text15
+
+
+ - Exceso de equipaje genera costo extra.
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 0.4,10.6,9.2,0.4
+
+
+ Sans Serif Collection,7
+ 0,0,0,0
+ Text16
+
+
+ - No cajas / No mascotas / No cubetas con cualquier tipo de líquido.
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 0.4,11,2.8,0.4
+
+
+ Sans Serif Collection,7
+ 0,0,0,0
+ Text17
+
+
+ - No armas.
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 15.8,1.8,2.8,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Center
+ 0,0,0,0
+ Text18
+
+
+ Número Asiento
+ [63:63:63]
+ Expression
+ Center
+
+
+ Transparent
+ 15.8,4.8,2.8,0.6
+
+
+ Sans Serif Collection,7,Bold
+ Center
+ 0,0,0,0
+ Text19
+
+
+ Costo Boleto
+ [63:63:63]
+ Expression
+ Center
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 7.2,1.8,3.6,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape1
+
+
+
+ 0.2
+
+ {Ruta}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 7.2,2.8,3.6,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape2
+
+
+
+ 0.2
+
+ {Origen}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 7.2,3.8,3.6,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape3
+
+
+
+ 0.2
+
+ {Destino}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 12.8,1.8,2.8,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape4
+
+
+
+ 0.2
+
+ {FechaSalida}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 12.8,2.8,2.8,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape5
+
+
+
+ 0.2
+
+ {HoraSalida}
+
+
+ Transparent
+ 15.8,2.4,2.8,2
+
+
+ Sans Serif Collection,26,Bold
+ Center
+ 0,0,0,0
+ Text20
+
+
+ {Asiento}
+ [63:63:63]
+ Expression
+ Center
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 3.8,4.8,11.8,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape6
+
+
+
+ 0.2
+
+ {Nombre}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 3.8,5.8,7,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape7
+
+
+
+ 0.2
+
+ {Visa}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 3.8,6.8,7,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape8
+
+
+
+ 0.2
+
+ {Agencia}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 3.8,7.8,7,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape9
+
+
+
+ 0.2
+
+ {TelefonoAgencia}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 12.8,5.8,2.8,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape10
+
+
+
+ 0.2
+
+ {Celular}
+
+
+ 216, 216, 216
+ 191, 191, 191
+ [216:216:216]
+ 12.8,6.8,2.8,0.6
+
+
+ Sans Serif Collection,6
+ 63, 63, 63
+ Left
+ 0,0,0,0
+ Shape11
+
+
+
+ 0.2
+
+ {TipoBoleto}
+
+
+ Transparent
+ 15.8,5.4,2.8,2
+
+
+ Sans Serif Collection,26,Bold
+ Center
+ 0,0,0,0
+ Text21
+
+
+ ${Importe}
+ [63:63:63]
+ Expression
+ Center
+
+
+
+
+ 50b6bbee170e454fbbd54dc519e40c28
+ 1,1,1,1
+ Page1
+ 29.7
+ 21
+
+
+
+
+ System.Dll
+ System.Drawing.Dll
+ System.Windows.Forms.Dll
+ System.Data.Dll
+ System.Xml.Dll
+ Stimulsoft.Controls.Dll
+ Stimulsoft.Base.Dll
+ Stimulsoft.Report.Dll
+
+ Report
+ jesus moreno quintana
+ 1/8/2024 12:08:07 PM
+ 1/8/2024 11:08:51 AM
+ C:\inetpub\WWWSIGIT\Empresas\188\Formatos\Boleto.mrt
+ 8a0ed87b2c1746c486241406fa90a841
+ Report
+ Centimeters
+ 2023.3.2.0
+
+ CSharp
+
+
\ No newline at end of file
diff --git a/General/CatMedidaEquivalencia.aspx.cs b/General/CatMedidaEquivalencia.aspx.cs
index 765a94476..c84af1dda 100644
--- a/General/CatMedidaEquivalencia.aspx.cs
+++ b/General/CatMedidaEquivalencia.aspx.cs
@@ -50,7 +50,7 @@ public partial class General_CatMedidaEquivalencia : ClsPaginas
DdlMedidas.DataSource = ObjGeneral.DtResultados;
DdlMedidasEquivalente.DataSource = ObjGeneral.DtResultados;
}
- if (ObjGeneral.GetRimTamanios(UsuarioActual.CveEmpresa))
+ if (ObjGeneral.GetRinTamanios(UsuarioActual.CveEmpresa))
{
DdlRin.DataSource = ObjGeneral.DtResultados;
DdlRinEquivalente.DataSource = ObjGeneral.DtResultados;
diff --git a/General/CatRinTamanios.aspx.vb b/General/CatRinTamanios.aspx.vb
index 9dbe7503b..dd7fe0bd2 100644
--- a/General/CatRinTamanios.aspx.vb
+++ b/General/CatRinTamanios.aspx.vb
@@ -30,7 +30,7 @@ Partial Class General_CatRinTamanios
End Sub
Private Sub CargaDatos()
Dim ObjGral As New ClsGenerales
- If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
+ If ObjGral.GetRinTamanios(UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjGral.DtResultados
End If
ObjGral.Dispose()
diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb
index 2931f0efd..95f405963 100644
--- a/General/SaldosIniciales.aspx.vb
+++ b/General/SaldosIniciales.aspx.vb
@@ -682,13 +682,9 @@ Partial Class General_SaldosIniciales
DtMarcas = ObjPS.DtResultados.Copy
End If
- If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then
- DtMedidas = ObjGral.DtResultados.Copy
- End If
+ DtMedidas = GlobalDTPSMedidas(UsuarioActual.CveEmpresa)
+ DtRinTamaño = GlobalDTPSRinTamaños(UsuarioActual.CveEmpresa)
- If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
- DtRinTamaño = ObjGral.DtResultados.Copy
- End If
If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then
DtModelos = ObjGral.DtResultados.Copy
@@ -782,7 +778,7 @@ Partial Class General_SaldosIniciales
CveRinTamaño = DtRinTamaño.FiltroPrimeroValor("CveRinTamaño", $"RinTamaño = '{RinTamaño}'").ToString().ToEntero()
If Not CveRinTamaño > 0 Then
If ObjGral.AddRimTamanios(CveClasificacion, "", RinTamaño, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
+ If ObjGral.GetRinTamanios(UsuarioActual.CveEmpresa) Then
DtRinTamaño = ObjGral.DtResultados.Copy
CveRinTamaño = DtRinTamaño.FiltroPrimeroValor("CveRinTamaño", $"RinTamaño = '{RinTamaño}'").ToString().ToEntero()
End If
diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb
index dc0b50a52..d6d20549f 100644
--- a/Inventarios/EntregaAlmacen.aspx.vb
+++ b/Inventarios/EntregaAlmacen.aspx.vb
@@ -5,7 +5,7 @@ Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports Extensiones
-
+Imports Microsoft.Owin.Security.Provider
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_EntregaAlmacen
@@ -4269,27 +4269,36 @@ Partial Class Inventarios_EntregaAlmacen
Respuesta = ObjOS.UpdateOrdenesServiciosEstatus(CveOSEstatusFinalizada, UsuarioActual.CveUsuario, CveOSCerrar)
+ Dim cancelarPeido As Boolean = CancelarPedido(TransaccionSql, CveMovimientoGenerado, Respuesta)
+
If Respuesta Then
-
- Dim ObjInventario As New ClsInventarios(ObjOS.IniciaTransacSQL)
-
+ Dim ObjInventario As New ClsInventarios(TransaccionSql)
If ObjInventario.GetMovimientosDetalle(CveMovimientoGenerado, UsuarioActual.CveEmpresa) Then
+ If Not cancelarPeido Then
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ Dim CveVentaDetalle As Integer = Dr("CveVentaDetalle").ToString().ToEntero()
+ Dim Cantidad As Decimal = Dr("Cantidad").ToString().ToDecimal
- Dim CveVentaDetalle As Integer = Dr("CveVentaDetalle").ToString().ToEntero()
- Dim Cantidad As Decimal = Dr("Cantidad").ToString().ToDecimal
-
- If CveVentaDetalle > 0 Then
- If Not ObjInventario.UpdatePedidoDetalleCantidad(CveVentaDetalle, Cantidad) Then
+ If CveVentaDetalle > 0 Then
+ If Not ObjInventario.UpdatePedidoDetalleCantidad(CveVentaDetalle, Cantidad) Then
+ Respuesta = False
+ Exit For
+ End If
+ Else
Respuesta = False
- Exit For
End If
- Else
- Respuesta = False
- End If
- Next
+ Next
+ End If
+
+ End If
+ End If
+
+ If Respuesta AndAlso cancelarPeido Then
+ Dim objVentas As New ClsVentas(TransaccionSql)
+ If Not objVentas.UpdateEstatusVenta(CveVentaSurtir, 4, UsuarioActual.CveEmpresa) Then
+ Respuesta = False
End If
End If
@@ -4302,4 +4311,48 @@ Partial Class Inventarios_EntregaAlmacen
End Function
+ Private Function CancelarPedido(ByRef TransaccionSql As SqlTransaction, CveMovimientoGenerado As Integer, ByRef RespuestaPadre As Boolean) As Boolean
+
+ Dim Cancelar As Boolean = True
+
+ Dim objVentas As New ClsVentas(TransaccionSql)
+ Dim ObjInventario As New ClsInventarios(TransaccionSql)
+
+ Dim DTMovimiento As New DataTable
+ Dim DTPedidoDetalle As New DataTable
+
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoGenerado, UsuarioActual.CveEmpresa) Then
+ DTMovimiento = ObjInventario.DtResultados
+ Else
+ RespuestaPadre = False
+ End If
+
+ If objVentas.GetVentaDetalle(CveVentaSurtir) Then
+ DTPedidoDetalle = objVentas.DtResultados
+ Else
+ RespuestaPadre = False
+ End If
+
+
+ If RespuestaPadre Then
+
+ For Each rowPedido As DataRow In DTPedidoDetalle.Rows
+ Dim CantidadPedido As Decimal = rowPedido("Cantidad").ToString.ToDecimal
+ Dim CveVentaDetalle As Integer = rowPedido("CveVentaDetalle").ToString.ToEntero
+
+ Dim CantidadDevuelto As Decimal = DTMovimiento.FiltroPrimeroValor("Cantidad", $"CveVentaDetalle = {CveVentaDetalle}").ToDecimal
+
+ If CantidadPedido <> CantidadDevuelto Then
+ Cancelar = False
+ Exit For
+ End If
+
+ Next
+
+ End If
+
+ Return Cancelar
+
+ End Function
+
End Class
diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx.vb b/Inventarios/PopUpExistenciasAlmacen.aspx.vb
index 470eba0bb..6cf82a8a9 100644
--- a/Inventarios/PopUpExistenciasAlmacen.aspx.vb
+++ b/Inventarios/PopUpExistenciasAlmacen.aspx.vb
@@ -2,6 +2,7 @@
Option Strict On
Imports Extensiones
+Imports System.Data
Partial Class Inventarios_Default
Inherits ClsPaginas
@@ -247,7 +248,7 @@ Partial Class Inventarios_Default
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetExistencias119(DDlPS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, Compuesto) Then
GV.DataSource = ObjInventarios.DtResultados
- TblBusqueda.Visible = False
+ TblBusqueda.Visible = True
CargaPS(DDlPS.SelectedValue.ToEntero)
GV.Columns(6).Visible = True
End If
@@ -280,16 +281,18 @@ Partial Class Inventarios_Default
End Sub
#End Region
- Private Sub CargarMedRin()
- Dim ObjGral As New ClsGenerales
- If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then
- DdlMedidas.DataSource = ObjGral.DtResultados.FiltraParametros("", Orderby:="Medida")
- If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
- DdlRin.DataSource = ObjGral.DtResultados.FiltraParametros("", Orderby:="RinTamaño")
- End If
- End If
- ObjGral.Dispose()
- DdlMedidas.DataBind()
+ Private Sub CargarMedRin()
+ 'Dim ObjGral As New ClsGenerales
+ 'If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then
+ ' DdlMedidas.DataSource = GlobalDTPS.FiltraParametros("", Orderby:="Medida")
+ ' If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
+ ' DdlRin.DataSource = ObjGral.DtResultados.FiltraParametros("", Orderby:="RinTamaño")
+ ' End If
+ 'End If
+ 'ObjGral.Dispose()
+ DdlMedidas.DataSource = GlobalDTPSMedidas(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Medida")
+ DdlMedidas.DataBind()
+ DdlRin.DataSource = GlobalDTPSRinTamaños(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="RinTamaño")
DdlRin.DataBind()
DdlMedidas.Items.Insert(0, New ListItem("-", "-1"))
DdlRin.Items.Insert(0, New ListItem("-", "-1"))
diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb
index e7a16ee3b..40d70f44a 100644
--- a/Inventarios/RecepcionAlmacen.aspx.vb
+++ b/Inventarios/RecepcionAlmacen.aspx.vb
@@ -4991,7 +4991,7 @@ Partial Class Inventarios_RecepcionAlmacen
dt.Rows(dt.Rows.Count - 1)("Producto") = rr(6).Trim
dt.Rows(dt.Rows.Count - 1)("Serie") = rr(7).Trim
dt.Rows(dt.Rows.Count - 1)("Cantidad") = 1
- dt.Rows(dt.Rows.Count - 1)("Código") = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Codigo", String.Format("Codigo2 = '{0}'", rr(5).Trim))
+ dt.Rows(dt.Rows.Count - 1)("Código") = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Codigo", String.Format("NumeroParte = '{0}'", rr(5).Trim))
End If
End If
diff --git a/Inventarios/RepEntradasSalidas.aspx b/Inventarios/RepEntradasSalidas.aspx
index fbadd4f2a..8a60e98ab 100644
--- a/Inventarios/RepEntradasSalidas.aspx
+++ b/Inventarios/RepEntradasSalidas.aspx
@@ -222,14 +222,14 @@
<%--0--%>
<%--1--%>
-
+
<%--2--%>
<%--3--%>
diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb
index 97a972044..35b9b9014 100644
--- a/Inventarios/TraspasoAlmacen.aspx.vb
+++ b/Inventarios/TraspasoAlmacen.aspx.vb
@@ -2933,11 +2933,10 @@ Partial Class Inventarios_TraspasoAlmacen
Dim RowsNoCargados As Integer = 0
Dim NoPSConSerie As Integer = 0
Try
- Dim DtPS As DataTable = GlobalDTPS(UsuarioActual.CveEmpresa)
+ Dim DtPS As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
For Each RowExcel As DataRow In dt.Rows
If RowExcel("Codigo").ToString() <> "" Then
-
Dim RowPS As DataRow = DtPS.FiltroPrimero(String.Format("Codigo='{0}'", RowExcel("Codigo").ToString()))
Dim CveProducto As Integer = RowPS("CvePS").ToString().ToEntero()
@@ -2954,7 +2953,7 @@ Partial Class Inventarios_TraspasoAlmacen
Dim Valido As Boolean = True
Dim ValidarLote As Boolean = True
- If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue}").ToEntero = 6 Then
+ If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue}") = "6" Then
ValidarLote = False
End If
diff --git a/OS/OrdenesServicios.aspx b/OS/OrdenesServicios.aspx
index cf474873f..f93d73c20 100644
--- a/OS/OrdenesServicios.aspx
+++ b/OS/OrdenesServicios.aspx
@@ -1291,7 +1291,7 @@
Utilizado
-
+
diff --git a/OS/OrdenesServicios.aspx.vb b/OS/OrdenesServicios.aspx.vb
index 9171efa98..36b7a9574 100644
--- a/OS/OrdenesServicios.aspx.vb
+++ b/OS/OrdenesServicios.aspx.vb
@@ -3007,18 +3007,27 @@ Partial Class OS_OrdenesServicios
Dim ObjInventario As New ClsInventarios(ObjV.IniciaTransacSQL())
Dim ObjConta As New ClsContabilidad(ObjV.IniciaTransacSQL())
+ Dim GenrarRemisionMovimientos As Boolean = False
If ProcesoOK Then
Dim AplicaDevolucion As Boolean = False
For Each GvRow As GridViewRow In GvMU.Rows
Dim CveVentaDetalle As Integer = GvRow.DataKey("CveVentaDetalle").ToEntero
Dim CantidadDev As Decimal = GvRow.DataKey("Cantidad").ToDecimal - GvRow.FCTextBox("TxtUtilizado").Text.ToDecimal
+
If CantidadDev > 0 Then
AplicaDevolucion = True
If Not ObjV.UpdateVentasDetalleCantidadDevolucion(CveVentaDetalle, CantidadDev) Then
ProcesoOK = False
+ GenrarRemisionMovimientos = False
+ AplicaDevolucion = False
Exit For
End If
End If
+
+ If GvRow.FCTextBox("TxtUtilizado").Text.ToDecimal > 0 Then
+ GenrarRemisionMovimientos = True
+ End If
+
Next
If AplicaDevolucion Then
If Not ObjV.UpdateVentasDevolucionAlmacen(1, CveVenta) Then
@@ -3032,7 +3041,7 @@ Partial Class OS_OrdenesServicios
Dim ImporteAlmacen As Decimal
Dim Fecha As DateTime = ClsPaginas.NowADS()
- If ProcesoOK Then
+ If GenrarRemisionMovimientos AndAlso ProcesoOK Then
Respuesta = GeneraRemision(CveVentaPedido, ObjV.IniciaTransacSQL())
If Respuesta.CveVenta > 0 Then
@@ -3046,7 +3055,7 @@ Partial Class OS_OrdenesServicios
End If
End If
- If ProcesoOK Then
+ If GenrarRemisionMovimientos AndAlso ProcesoOK Then
CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenActual, 8, CveMoneda, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, Respuesta.CveVenta, CveSubProyectoPedido, -1, CveOS:=CveOS, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="OS/MatUtil")
Dim Folio As Integer = ObjInventario.Folio
@@ -3063,7 +3072,7 @@ Partial Class OS_OrdenesServicios
Dim PU As Decimal = GvRow.DataKey("PU").ToDecimal
If CantidadRegistro > 0 Then
- Dim CveVentaDetalle As Integer = DtVentaDetalle.Rows(IndexMov1)("CveVentaDetalle").ToString.ToEntero
+ Dim CveVentaDetalle As Integer = GvRow.DataKey("CveVentaDetalle").ToEntero ' DtVentaDetalle.Rows(IndexMov1)("CveVentaDetalle").ToString.ToEntero
Dim CveMovimientoDetalle As Integer = GvRow.DataKey("CveMovimientoDetalle").ToEntero
Dim Serie As String = GvRow.DataKey("Serie")
@@ -3146,7 +3155,13 @@ Partial Class OS_OrdenesServicios
If ProcesoOK Then
ObjV.Commit()
- Alert("El material utilizado se guardó correctamente")
+
+ If GenrarRemisionMovimientos = False Then
+ Alert("El material sera recibido en almacén.")
+ Else
+ Alert("El material utilizado se guardó correctamente")
+ End If
+
RegistraScript("$('#DivModalMaterialUtilizado').modal('hide');")
Else
ObjV.RollBack()
diff --git a/Sistemas/CatModulos.aspx.vb b/Sistemas/CatModulos.aspx.vb
index aa0a3fd81..85fc2cecf 100644
--- a/Sistemas/CatModulos.aspx.vb
+++ b/Sistemas/CatModulos.aspx.vb
@@ -50,6 +50,7 @@ Partial Class CatModulos
UsuarioActual.CveUsuario, DdlPlataforma.SelectedValue.ToEntero) Then
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalModulos"))
Alert("El nuevo Módulo se guardó correctamente.", TipoMensaje.MsgInformacion)
+ GlobalDTModulos = Nothing
CargaDatos()
UpDatos.Update()
End If
@@ -58,6 +59,7 @@ Partial Class CatModulos
TxtOrden.Text.Trim().ToEntero(), TxtEstilo.Text.Trim(), CboIncluye.SelectedValue, CboAgrupacion.SelectedValue, UsuarioActual.CveUsuario, HdnID.Value.ToEntero, DdlPlataforma.SelectedValue.ToEntero) Then
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalModulos"))
Alert("El Módulo se actualizó correctamente.", TipoMensaje.MsgInformacion)
+ GlobalDTModulos = Nothing
CargaDatos()
UpDatos.Update()
End If
@@ -129,12 +131,10 @@ Partial Class CatModulos
Dim Modulo As New ClsModulos
If Modulo.RemoveModulo(GvDatos.DataKeys(e.RowIndex).Value.ToString().ToEntero()) Then
GvDatos.EditIndex = -1
+ GlobalDTModulos = Nothing
CargaDatos()
End If
-
Modulo.Dispose()
-
-
End Sub
#End Region
@@ -198,6 +198,7 @@ Partial Class CatModulos
LbAgregar.Text = "Actualizar"
UpModal.Update()
RegistraScript("$('#ModalModulos').modal();")
+ GlobalDTModulos = Nothing
End Sub
diff --git a/Sistemas/CatSesiones.aspx b/Sistemas/CatSesiones.aspx
index 8229665b1..4481f93b4 100644
--- a/Sistemas/CatSesiones.aspx
+++ b/Sistemas/CatSesiones.aspx
@@ -29,6 +29,7 @@
+
diff --git a/Sistemas/CatSesiones.aspx.vb b/Sistemas/CatSesiones.aspx.vb
index 88019f100..e6c1af670 100644
--- a/Sistemas/CatSesiones.aspx.vb
+++ b/Sistemas/CatSesiones.aspx.vb
@@ -39,7 +39,9 @@ Partial Class Sistemas_CatSesiones
ElseIf DdlVariable.SelectedItem.Value = "GlobalDTGralColonias" Then
CargaColonias()
ElseIf DdlVariable.SelectedItem.Value = "GlobalDTGralMunicipios" Then
- CargaMunicipios()
+ CargaMunicipios()
+ ElseIf DdlVariable.SelectedItem.Value = "GlobalDTLocalidad" Then
+ CargaLocalidades()
ElseIf DdlVariable.SelectedItem.Value = "GlobalDTGralPoblaciones" Then
CargaPoblaciones()
ElseIf DdlVariable.SelectedItem.Value = "GlobalDTGralEscolaridades" Then
@@ -494,6 +496,13 @@ Partial Class Sistemas_CatSesiones
'Dim Gral As New ClsGenerales
'If Gral.GetGralMunicipios Then Application("GlobalDTGralMunicipios") = Gral.DtResultados Else Application("GlobalDTGralMunicipios") = Nothing
'Gral.Dispose()
+ End Sub
+
+ Private Sub CargaLocalidades()
+ GlobalDTLocalidad() = Nothing
+ 'Dim Gral As New ClsGenerales
+ 'If Gral.GetGralMunicipios Then Application("GlobalDTGralMunicipios") = Gral.DtResultados Else Application("GlobalDTGralMunicipios") = Nothing
+ 'Gral.Dispose()
End Sub
Private Sub CargaPoblaciones()
diff --git a/Sistemas/UsuarioDetalle.aspx b/Sistemas/UsuarioDetalle.aspx
index 37ac85984..06a85cab7 100644
--- a/Sistemas/UsuarioDetalle.aspx
+++ b/Sistemas/UsuarioDetalle.aspx
@@ -109,7 +109,7 @@
Usuario:
-
+
diff --git a/Transportes/Boletos.aspx.vb b/Transportes/Boletos.aspx.vb
index 68f508010..cb4840b0e 100644
--- a/Transportes/Boletos.aspx.vb
+++ b/Transportes/Boletos.aspx.vb
@@ -85,7 +85,8 @@ Partial Class Boletos
Protected Sub InicializaCombos()
'Lista Destinos''carga específicos
- Dim ObjDestinos As New ClsDestinos()
+ Dim ObjDestinos As New ClsTransportes()
+
If ObjDestinos.GetDestinos(CveRuta:=CveRuta) Then
If ObjDestinos.DtResultados.Rows.Count > 0 Then
@@ -99,6 +100,7 @@ Partial Class Boletos
DdlDestino.Items.Insert(0, New ListItem("Seleccione Destino", ""))
End If
End If
+ ObjDestinos.Dispose()
End Sub
Protected Sub CotizarTarifa(sender As Object, e As EventArgs)
@@ -107,6 +109,8 @@ Partial Class Boletos
Dim ObjDestinos As New ClsTransportes()
Dim retorno As Boolean = ObjDestinos.GetDestinosTarifas(DdlPartida.SelectedValue.ToEntero, DdlDestino.SelectedValue.ToEntero)
Dim ImporteR As Decimal = ObjDestinos.DtResultados.FiltroPrimeroValor("Importe").ToDecimal
+ ObjDestinos.Dispose()
+
If retorno Then
If ImporteR > 0 Then
Dim redondeado As String = CStr(Math.Round(ImporteR, 2))
@@ -156,6 +160,7 @@ Partial Class Boletos
ObjTransporte.Commit()
End If
Catch ex As Exception
+ ObjTransporte.RollBack()
Alert($"No se pudo generar el boleto {ex}", TipoMensaje.MsgError)
Finally
ObjTransporte.Dispose()
diff --git a/Transportes/ListadoBoletos.aspx b/Transportes/ListadoBoletos.aspx
index e855b1030..f178089be 100644
--- a/Transportes/ListadoBoletos.aspx
+++ b/Transportes/ListadoBoletos.aspx
@@ -19,7 +19,6 @@
-
-
+ data-sort="true" DataKeyNames="Asiento,Nombre, Visa,Celular,Sexo,Estatus,Partida,Destino, Importe">
+
@@ -71,17 +71,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
diff --git a/Transportes/ListadoBoletos.aspx.vb b/Transportes/ListadoBoletos.aspx.vb
index 96899cc76..24a41e814 100644
--- a/Transportes/ListadoBoletos.aspx.vb
+++ b/Transportes/ListadoBoletos.aspx.vb
@@ -1,8 +1,11 @@
Option Explicit On
Option Strict On
+Imports System.Data
Imports ADSNetLibrary.Helpers
Imports ADSNetLibrary.SIGAPI.Helpers
Imports Extensiones.ModExtensiones
+Imports Microsoft.Reporting.WebForms
+
Partial Class ListadoBoletos
Inherits ClsPaginas
@@ -14,12 +17,23 @@ Partial Class ListadoBoletos
ViewState("CveViaje") = value
End Set
End Property
+ Private Property Ruta As String
+ Get
+ Return ViewState("Ruta").ToString()
+ End Get
+ Set(value As String)
+ ViewState("Ruta") = value
+ End Set
+ End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
If Request.QueryString("CveViaje") Is Nothing Then
Response.Redirect("/Transportes/ListadoViajes.aspx")
End If
CveViaje = Request.QueryString("CveViaje").ToEntero
+ Ruta = Request.QueryString("Ruta")
+
+ Prueba.Text = Ruta
InicializaCombos()
CargaDatos()
@@ -71,4 +85,30 @@ Partial Class ListadoBoletos
End Sub
+ Protected Sub ImprimirBoleto(sender As Object, e As EventArgs)
+ Dim dtResult As New DataTable()
+ Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
+
+ Dim params As New List(Of ReportParameter)
+
+ params.Add(New ReportParameter("Ruta", Ruta))
+ params.Add(New ReportParameter("Origen", GvRow.DataKey("Partida")))
+ params.Add(New ReportParameter("Destino", GvRow.DataKey("Destino")))
+ params.Add(New ReportParameter("FechaSalida", "2024-01-03"))
+ params.Add(New ReportParameter("HoraSalida", "17:00"))
+ params.Add(New ReportParameter("Nombre", GvRow.DataKey("Nombre")))
+ params.Add(New ReportParameter("Visa", GvRow.DataKey("Visa")))
+ params.Add(New ReportParameter("Celular", GvRow.DataKey("Celular")))
+ params.Add(New ReportParameter("Importe", GvRow.DataKey("Importe")))
+ params.Add(New ReportParameter("TipoBoleto", "Tipo Boleto"))
+ params.Add(New ReportParameter("Agencia", "Agencia"))
+ params.Add(New ReportParameter("TelefonoAgencia", "Telefono Agencia"))
+
+ ImprimirPDFStimul("Empresas/188/Formatos/Boleto.mrt", dtResult, params, NombreArchivo:="Boleto")
+
+ 'Empresas/Grales/Formatos/EntradaSalida.mrt
+ 'Empresas/188/Formatos/Boleto.mrt
+
+ End Sub
+
End Class
\ No newline at end of file
diff --git a/Transportes/ListadoViajes.aspx.vb b/Transportes/ListadoViajes.aspx.vb
index 9aa5d7bfe..9a0ca63a4 100644
--- a/Transportes/ListadoViajes.aspx.vb
+++ b/Transportes/ListadoViajes.aspx.vb
@@ -15,6 +15,14 @@ Partial Class ListadoViajes
ViewState("CveViaje") = value
End Set
End Property
+ Private Property Ruta As String
+ Get
+ Return ViewState("Ruta").ToString()
+ End Get
+ Set(value As String)
+ ViewState("Ruta") = value
+ End Set
+ End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
@@ -192,7 +200,7 @@ Partial Class ListadoViajes
DdlPartida.SelectedValue = GvRow.DataKey("CvePartida")
DdlChofer.SelectedValue = GvRow.DataKey("CvePersonal")
ViewState("CveViaje") = GvRow.DataKey("CveViaje")
- Page.Response.Write("")
+ ViewState("Ruta") = GvRow.DataKey("Ruta")
Dim fecha As DateTime
If DateTime.TryParse(GvRow.DataKey("Fecha").ToString, fecha) Then
@@ -247,6 +255,8 @@ Partial Class ListadoViajes
Protected Sub GoBoletos(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim CveViaje As String = GvRow.DataKey("CveViaje")
- Response.Redirect(String.Format("~/Transportes/ListadoBoletos.aspx?CveViaje={0}", CveViaje))
+ Dim Ruta As String = GvRow.DataKey("Ruta")
+ Response.Redirect(String.Format("~/Transportes/ListadoBoletos.aspx?CveViaje={0}&Ruta={1}", CveViaje, Ruta))
+
End Sub
End Class
diff --git a/Ventas/ActualizarPrecios.aspx b/Ventas/ActualizarPrecios.aspx
index 16814001c..dea6d8d1e 100644
--- a/Ventas/ActualizarPrecios.aspx
+++ b/Ventas/ActualizarPrecios.aspx
@@ -207,7 +207,7 @@
" style="display: inline-block; margin-right: -20px; width: 150px;" />
" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info">
-
@@ -216,13 +216,12 @@
- <%----%>
-
+
-
+
diff --git a/Ventas/ActualizarPrecios.aspx.vb b/Ventas/ActualizarPrecios.aspx.vb
index 0cd9fdd33..f692f952a 100644
--- a/Ventas/ActualizarPrecios.aspx.vb
+++ b/Ventas/ActualizarPrecios.aspx.vb
@@ -405,7 +405,7 @@ Partial Class Ventas_ActualizarPrecios
Select New With
{
.Codigo = row.DataKey("Codigo"),
- .Codigo2 = row.DataKey("Codigo2"),
+ .NumeroParte = row.DataKey("NumeroParte"),
.PS = row.DataKey("PS"),
.Precio = row.FCTextBox("TxtPrecio").Text.ToDecimal()
}).QueryToDataTable(True)
@@ -436,7 +436,7 @@ Partial Class Ventas_ActualizarPrecios
DtExcel.Columns("Codigo").ColumnName = "Código"
DtExcel.Columns("PS").ColumnName = "Producto / Servicio"
- DtExcel.Columns("Codigo2").ColumnName = "Número de parte"
+ DtExcel.Columns("NumeroParte").ColumnName = "Número de parte"
If UsuarioActual.Empresa.Funcionalidad(531) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(578) = "1" Then 'Empresa Acumuladores
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
@@ -687,7 +687,7 @@ Partial Class Ventas_ActualizarPrecios
NewRow("Código") = Row("Codigo")
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'Empresa Acumuladores
- NewRow("Código CPK") = Row("Codigo2")
+ NewRow("Código CPK") = Row("NumeroParte")
End If
NewRow("Producto/Servicio") = Row("PS")
diff --git a/Ventas/CatMedicos.aspx b/Ventas/CatMedicos.aspx
index fcb3e9ace..7d6d9c0c2 100644
--- a/Ventas/CatMedicos.aspx
+++ b/Ventas/CatMedicos.aspx
@@ -225,7 +225,7 @@
+
+
diff --git a/Ventas/CatMedicos.aspx.vb b/Ventas/CatMedicos.aspx.vb
index d1e1ac343..3615ef3c0 100644
--- a/Ventas/CatMedicos.aspx.vb
+++ b/Ventas/CatMedicos.aspx.vb
@@ -161,6 +161,10 @@ Partial Class Ventas_CatMedicos
DdlEspecialidad.SelectedValueExist(-1)
DdlSubEspecialidad.SelectedValueExist(-1)
TxtTorre.Text = ""
+ DVUsuarioFechaIng.Visible = False
+ TxtFechaIng.Text = ""
+ TxtUsuario.Text = ""
+
DVEstatus.Visible = False
ChkEstatus.Checked = True
@@ -196,6 +200,10 @@ Partial Class Ventas_CatMedicos
DdlSubEspecialidad.SelectedValueExist(GvRow.DataKey("CveMedicoSubEspecialidad").ToEntero)
TxtTorre.Text = GvRow.DataKey("Torre")
+ DVUsuarioFechaIng.Visible = True
+ TxtFechaIng.Text = GvRow.DataKey("FechaIng").ToDateTime.ToString("dd/MM/yyyy hh:mm:ss tt")
+ TxtUsuario.Text = GvRow.DataKey("Usuario")
+
DVEstatus.Visible = True
LbAgregar.Text = "Actualizar"
LtlTituloModal.Text = $"Actualizar Médico {TxtCedulaProfecional.Text}"
diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb
index 1826ddc84..7c4ea366a 100644
--- a/Ventas/ProductosServicios.aspx.vb
+++ b/Ventas/ProductosServicios.aspx.vb
@@ -1,11 +1,9 @@
Option Explicit On
Option Strict On
-Imports System.Activities.Expressions
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
-Imports ADSNetLibrary.SIGAPI.Models.RH.Response
Imports Extensiones
Imports ZXing
@@ -487,14 +485,10 @@ Partial Class ProductosyServicios
If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then
DdlModelo.DataSource = ObjGral.DtResultados.Copy()
End If
- If ObjGral.GetMedidas(UsuarioActual.CveEmpresa) Then
- DdlMedida.DataSource = ObjGral.DtResultados.Copy()
- End If
- If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
- DdlRin.DataSource = ObjGral.DtResultados.Copy()
- End If
ObjGral.Dispose()
+ DdlMedida.DataSource = GlobalDTPSMedidas(UsuarioActual.CveEmpresa)
+ DdlRin.DataSource = GlobalDTPSRinTamaños(UsuarioActual.CveEmpresa)
DdlModelo.DataBind()
DdlMedida.DataBind()
DdlRin.DataBind()
@@ -948,7 +942,7 @@ Partial Class ProductosyServicios
DdlMarca.SelectedValue = ObjProductosServicios.CveMarca.ToString
DdlMarcaPSDes.SelectedValue = ObjProductosServicios.CveMarca.ToString
TxtCodigo.Text = ObjProductosServicios.Codigo
- TxtNumeroParte.Text = ObjProductosServicios.Codigo2
+ TxtNumeroParte.Text = ObjProductosServicios.NumeroParte
TxtCodigoBarras.Text = ObjProductosServicios.CodigoBarras
CodigoBarrasCargado = ObjProductosServicios.CodigoBarras
TxtLitraje.Text = ObjProductosServicios.DtResultados.Rows(0)("Litraje").ToString
@@ -3138,12 +3132,10 @@ Partial Class ProductosyServicios
If ObjGral.GetModelos(CveEmpresaFranquicia) Then
CveModelo = ObjGral.DtResultados.FiltroPrimeroValor("CveModelo", String.Format("Modelo = '{0}'", DdlModelo.SelectedItem.Text)).ToEntero
End If
- If ObjGral.GetMedidas(CveEmpresaFranquicia) Then
- CveMedida = ObjGral.DtResultados.FiltroPrimeroValor("CveMedida", String.Format("Medida = '{0}'", DdlMedida.SelectedItem.Text)).ToEntero
- End If
- If ObjGral.GetRimTamanios(CveEmpresaFranquicia) Then
- CveRin = ObjGral.DtResultados.FiltroPrimeroValor("CveRinTamaño", String.Format("RinTamaño = '{0}'", DdlRin.SelectedItem.Text)).ToEntero
- End If
+
+ CveMedida = GlobalDTPSMedidas(CveEmpresaFranquicia).FiltroPrimeroValor("CveMedida", String.Format("Medida = '{0}'", DdlMedida.SelectedItem.Text)).ToEntero
+ CveRin = GlobalDTPSRinTamaños(CveEmpresaFranquicia).FiltroPrimeroValor("CveRinTamaño", String.Format("RinTamaño = '{0}'", DdlRin.SelectedItem.Text)).ToEntero
+
ObjGral.Dispose()
@@ -3177,7 +3169,7 @@ Partial Class ProductosyServicios
End If
If Agregar Then
- If Not ObjPS.AddPS(CveClasificacion, -1, CveUnidadMedida, TxtCodigo.Text.Trim, TxtCodigo2.Text.Trim, TxtCodigoBarras.Text.Trim, PSS, TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble,
+ If Not ObjPS.AddPS(CveClasificacion, -1, CveUnidadMedida, TxtCodigo.Text.Trim, TxtNumeroParte.Text.Trim, TxtCodigoBarras.Text.Trim, PSS, TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble,
(TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, DdlProveedor.txtValue.Value.ToEntero, True, ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario,
CveEmpresaFranquicia, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2,
CveMarca:=CveMarcaFranquicia, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal,
@@ -3197,7 +3189,7 @@ Partial Class ProductosyServicios
If ObjPS.GetPS(-1, -1, CveEmpresaFranquicia, Codigo:=TxtCodigo.Text.Trim.ToUpper) Then
Dim CvePS As Integer = ObjPS.DtResultados.FiltroPrimeroValor("CvePS", String.Format(" Codigo = '{0}'", TxtCodigo.Text.Trim.ToUpper)).ToEntero()
- If Not ObjPS.UpdatePS(CveClasificacion, -1, CveUnidadMedida, TxtCodigo.Text.Trim, TxtCodigo2.Text.Trim, TxtCodigoBarras.Text.Trim, PSS, TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble,
+ If Not ObjPS.UpdatePS(CveClasificacion, -1, CveUnidadMedida, TxtCodigo.Text.Trim, TxtNumeroParte.Text.Trim, TxtCodigoBarras.Text.Trim, PSS, TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble,
(TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, -1, True, ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv,
EsPaquete, DdlSATPS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarcaFranquicia,
AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal,
diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index dc0a3826e..be622b490 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -1976,7 +1976,10 @@
-
+
+
+
+
@@ -4202,7 +4205,7 @@
-
+
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 06355686c..6634739e2 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -2737,7 +2737,12 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then BtnCrearApartirDe.Visible = False
If UsuarioActual.TienePermisoProceso(302) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Egs") Then BtnEditar.Visible = True
- If UsuarioActual.TienePermisoProceso(302) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem") Then BtnPermisoEditarRemision.Visible = True
+ If UsuarioActual.TienePermisoProceso(302) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ped") Then BtnPermisoEditarRemision.Visible = True
+
+ If DdlTipoComprobante.SelectedValue = "Ped" Then
+ BtnPermisoEditarRemision.Text = "Editar Pedido"
+ BtnEditarRemision.Text = "Actualizar Pedido"
+ End If
DivFechaAnticipoCliente.Visible = True
TxtFechaAnticipoCliente.Text = NowADS().ToShortDateString
@@ -3386,19 +3391,27 @@ Partial Class Ventas
End If
End If
-
- If CveVenta <= 0 AndAlso UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then
- EsVentaMedica = True
- CargaTiposVenta()
-
- If CveCliente > 0 Then
- SeleccionarClienteSucursal(CveCliente:=CveCliente)
+ If UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then
+ If CveVenta <= 0 Then
+ EsVentaMedica = True
+ CargaTiposVenta()
+ If CveCliente > 0 Then
+ SeleccionarClienteSucursal(CveCliente:=CveCliente)
+ End If
+ End If
+ If CveVenta >= 0 Then
+ HLFAgregarOS.Visible = True
+ HLFAgregarOS.NavigateUrl = $"/OS/OrdenesServicios.aspx?CveVenta={CveVenta}"
End If
- End If
- If CveVenta >= 0 AndAlso UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then
- HLFAgregarOS.Visible = True
- HLFAgregarOS.NavigateUrl = $"/OS/OrdenesServicios.aspx?CveVenta={CveVenta}"
+ TxtPrecio.Enabled = False
+ 'ocultar la columna de subproyecto
+ GvPS.Columns(ColumnaSubProyecto).Visible = False
+ ThProyecto.Visible = False
+ ThProyecto2.Visible = False
+
+ TxtCantidad.Text = "1"
+ TxtCantidad.Focus()
End If
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
@@ -5193,7 +5206,7 @@ Partial Class Ventas
HdnTotalVenta.Value = DbRowVenta("Total").ToString().FormatoNumero(2)
TxtMotivoDescuento.Text = DbRowVenta("MotivoDescuento").ToString()
TxtObsFact.Text = DbRowVenta("Observaciones").ToString()
- LblUsuario.Text = DbRowVenta("Nombre").ToString()
+ LblUsuario.Text = DbRowVenta("Nombre").ToString().SubStringADS(30)
LblFechaRegistro.Text = DbRowVenta("FechaIng").ToString().ToDate.ToShortDateString
LblSeTimbro.Text = DbRowVenta("SeTimbro").ToString()
LblMail.Text = DbRowVenta("EnvioMail").ToString()
@@ -5316,7 +5329,13 @@ Partial Class Ventas
End If
- TxtFechaEjecucion.Text = DbRowVenta("FechaEjecucion").ToString().ToDateTime.ToString("dd/MM/yyyy")
+ If DbRowVenta("CveMedico").ToString.ToEntero > 0 AndAlso DbRowVenta("CveProcedimiento").ToString.ToEntero > 0 Then
+ TxtFechaEjecucion.Text = DbRowVenta("FechaEjecucion").ToString().ToDateTime.ToString("dd/MM/yyyy HH:mm")
+ DVMEEFechaEje.Visible = False
+ Else
+ TxtFechaEjecucion.Text = DbRowVenta("FechaEjecucion").ToString().ToDateTime.ToString("dd/MM/yyyy")
+ End If
+
'DdlSucursalEjecucion.SelectedValueExist(DbRowVenta("CveSucursalEjecucion").ToString())
'DdlSucursalCobranza.SelectedValueExist(DbRowVenta("CveSucursalCobranza").ToString())
DdlSucursalCliente.SelectedValueExist(DbRowVenta("CveClienteSucursal").ToString())
@@ -8188,6 +8207,10 @@ Partial Class Ventas
GvPS.Rows(e.NewEditIndex).FCTextBox("TxtDescuento").Enabled = False
End If
+ If EsVentaMedica Then
+ GvPS.Rows(e.NewEditIndex).FCTextBox("TxtPrecio").Enabled = False
+ End If
+
If CveCicloComercial > 0 Then
For Each gvr As GridViewRow In GvContratoDetalles.Rows
If gvr.RowType = DataControlRowType.DataRow Then
@@ -13524,7 +13547,7 @@ Partial Class Ventas
If EsVentaMedica AndAlso ErrorList.Count = 0 AndAlso ChkRequiereTecnico.Checked Then
- GeneraOS(ObjVentas.IniciaTransacSQL, ErrorList)
+ GeneraOS(ObjVentas.IniciaTransacSQL, ErrorList, CveVentaOS:=factura.CveVenta, SerieFolioOS:=factura.SerieFolio)
If ErrorList.Count = 0 Then
If Not ObjOS.UpdateVentaOS(factura.CveVenta, CveOSVentaMedica) Then
@@ -16798,16 +16821,22 @@ Partial Class Ventas
DdlUnidadMedida.DataBind()
DdlUnidadMedida.SelectedValueExist(drPS("CveUnidadMedida").ToString())
- If drPS("CveTipoPS").ToString() = "1" Then 'Si es servicio
- If UsuarioActual.Empresa.Funcionalidad(558).ToString() = "1" Then 'Si es Empresa llantera
- TxtPrecio.Enabled = True
- Else
- 'TxtPrecio.Enabled = False
- End If
+ If EsVentaMedica Then
+ TxtPrecio.Enabled = False
Else
- TxtPrecio.Enabled = True
+ If drPS("CveTipoPS").ToString() = "1" Then 'Si es servicio
+ If UsuarioActual.Empresa.Funcionalidad(558).ToString() = "1" Then 'Si es Empresa llantera
+ TxtPrecio.Enabled = True
+ Else
+ 'TxtPrecio.Enabled = False
+ End If
+ Else
+ TxtPrecio.Enabled = True
+ End If
End If
+
+
Dim PSCodigoSAT As String = drPS("SATClavePS").ToString
If UsuarioActual.TienePermisoProceso(68) AndAlso Not PSCodigoSAT.Contiene("84111506", "80141610") Then TxtPrecio.Enabled = False
@@ -18001,17 +18030,12 @@ Partial Class Ventas
'YOKOHAMA
If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso CveRinTamañoPS > 0 AndAlso CveMarcaPromocion.Contiene(800, 912, 1238, 1381, 1456, 1528, 1600, 1672, 1807) Then
- Dim DtRines As DataTable = Nothing
- Dim ObjGral As New ClsGenerales
- If ObjGral.GetRimTamanios(UsuarioActual.CveEmpresa) Then
- DtRines = ObjGral.DtResultados.Copy()
- End If
- ObjGral.Dispose()
+
If CveMarcaPromocion > 0 Then
ObjDescuento.NombrePromo = "YOKOHAMA VERANO" 'dr("NombrePromocion").ToString()
ObjDescuento.CveMarca = CveMarcaPromocion
- Dim Rin As String = DtRines.FiltroPrimeroValor("RinTamaño", $"CveRinTamaño = {CveRinTamañoPS}")
+ Dim Rin As String = GlobalDTPSRinTamaños(UsuarioActual.CveEmpresa, CveRinTamañoPS).FiltroPrimeroValor("RinTamaño", "")
Dim PromoDescuento As Decimal = (Descuento * (1 + If(IncluyeImpuestos, PorcentajeIVA, 0))).RoundSQL(2)
ObjDescuento.ObsDescuento = String.Format("RIN {0} BONO ${1:N2}", Rin, PromoDescuento)
@@ -21676,6 +21700,9 @@ Partial Class Ventas
ViewState("CveClienteAnterior") = CveCliente
+ DdlMedicoObservaciones.Enabled = True
+ DdlProcedimientoObservaciones.Enabled = True
+
Dim CantidadFacturadaRemision As Decimal = 0
'EN BDH NO DEBE PERMITIR EDITAR EL PU
@@ -21716,7 +21743,14 @@ Partial Class Ventas
TxtObsPS.Enabled = True
DdlProyecto.Enabled = True
DdlSubProyecto.Enabled = True
- TxtPrecio.Enabled = True
+
+ If EsVentaMedica Then
+ TxtPrecio.Enabled = False
+ Else
+ TxtPrecio.Enabled = True
+ End If
+
+
LbAgregar.Enabled = True
ImgDescTotal.Attributes.Add("onclick", "javascript:$('#ModalDescuento').modal(); $get('LblTitulo1').style.display = ''; $get('LblTitulo2').style.display = 'none'; $get('LblTituloTipo1').style.display = ''; $get('LblTituloTipo2').style.display = 'none'; $get('HdnTipoDescuento').value = '2'; $get('LblPrecio1').style.display = 'none'; $get('LblTotalPS1').style.display = 'none'; $get('LblSubTotal1').style.display = ''; $get('LblAmort').style.display = 'none'; $get('BtnAplicarDescP').style.display = 'none'; $get('BtnAplicarDescG').style.display = ''; $get('TrMotivoDescuento').style.display = '';")
LblSubTotal1.Text = TxtSubTotal.Text
@@ -21731,6 +21765,7 @@ Partial Class Ventas
UpPS.Update()
UpCliente.Update()
UPObservaciones.Update()
+
End Sub
Private Sub BtnEditarRemision_Click(sender As Object, e As EventArgs) Handles BtnEditarRemision.Click
Dim OcurrioError As Boolean = False
@@ -21825,7 +21860,7 @@ Partial Class Ventas
PedidoContrato:=TxtPedidoContrato.Text, AtencionA:=TxtAtencionA.Text.Trim, CveMetodoPago33:=DdlMetodoPago33.SelectedValue.ToEntero(),
CveFormaPago33:=DdlFormaPago33.SelectedValue.ToEntero(), TipoDocto:="Rem", CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal,
OrdenCompra:=TxtOrdenCompra.Text, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, Kilometraje:=TxtKilometraje.Text.ToDouble, CveUsoCFDi:=DdlUsoCFDI.SelectedValue.ToEntero(),
- CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), ServicioDomicilio:=TrServicioDomicilio.Visible) Then
+ CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), ServicioDomicilio:=TrServicioDomicilio.Visible, CveMedico:=DdlMedicoObservaciones.SelectedValue.ToEntero, CveProcedimiento:=DdlProcedimientoObservaciones.SelectedValue.ToEntero) Then
OcurrioError = True
End If
@@ -26192,7 +26227,26 @@ Partial Class Ventas
#Region " SALDAR VENTA "
Protected Sub BtnSaldarVenta_Click(sender As Object, e As EventArgs)
- SaldarVenta()
+ 'SaldarVenta()
+
+ Dim ObjCancelacion As New Timbrado
+
+ Dim FolioFiscal As String = LblFolioFiscal.Text
+ Dim RFCEmisor As String = UsuarioActual.Empresa.RFC
+ Dim RFCReceptor As String = LblRFC.Text
+ Dim CvePACCancelacion As Integer = 4
+
+
+ Dim RespCancelacion As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TxtTotal.Text.ToDecimal, RFCReceptor, RFCEmisor, CvePACCancelacion, CveSATMotivoCancelacion:=3)
+
+ If RespCancelacion.Verificado Then
+
+
+
+ Else
+ Alert("Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos. Origen del error: WebService www.sat.gob.mx", TipoMensaje.MsgError)
+ End If
+
End Sub
Private Sub SaldarVenta()
'Dim ObjVenta As New ClsVentas
@@ -33619,6 +33673,9 @@ Partial Class Ventas
UpPS.Update()
End If
+ TxtDescripcionVenta.Enabled = True
+
+ UpCliente.Update()
UpParametros.Update()
UPObservaciones.Update()
UpFacturar.Update()
@@ -33637,7 +33694,7 @@ Partial Class Ventas
ObjVentas.IniciaTransacSQL()
If Not ObjVentas.UpdateObservacionesVenta(Me.CveVenta, UsuarioActual.CveEmpresa, DdlVendedor.SelectedValue.ToEntero(), TxtObsFact.Text, RblPaqueteria.SelectedValue.ToEntero(), TxtCorreoNotificaciones.Text,
- TxtObsAlmacen.Text, TxtPedidoContrato.Text, TxtOrdenCompra.Text, TxtFechaPago.Text, DdlUsoCFDI.SelectedValue.ToEntero) Then
+ TxtObsAlmacen.Text, TxtPedidoContrato.Text, TxtOrdenCompra.Text, TxtFechaPago.Text, DdlUsoCFDI.SelectedValue.ToEntero, DescripcionVenta:=TxtDescripcionVenta.Text.Trim) Then
TieneError = True
End If
@@ -36314,7 +36371,7 @@ Partial Class Ventas
End Sub
- Private Function GeneraOS(ByRef TransacSQL As SqlTransaction, ByRef errorList As List(Of String)) As Boolean
+ Private Function GeneraOS(ByRef TransacSQL As SqlTransaction, ByRef errorList As List(Of String), CveVentaOS As Integer, SerieFolioOS As String) As Boolean
Dim Errores As Boolean = False
@@ -36350,18 +36407,22 @@ Partial Class Ventas
Dim CveOsDetalle = ObjOrdenServicio.AddOrdenesServiciosDetalle(ObjOrdenServicio.CveOS, CvePSDetalle, 1, -1, -1, $"Venta: {LblSerie.Text}-{TxtFolio.Text}", False, True, False, -1, "-1", "-1", "-1", "", UsuarioActual.CveUsuario, Archivo:="")
If CveOsDetalle > 0 Then
- 'MENSAJE PRINCIPAL
- 'Dim MensajeAlertOS As New StringBuilder
MensajeAlert.AppendFormat(String.Format(" La Orden de Servicio: {0} se generó correctamente. ", ObjOrdenServicio.Folio))
MensajeAlert.AppendFormat("
", Encripta(String.Format("OP=OS&CVEOS={0}", ObjOrdenServicio.CveOS)))
- 'Dim Liga = $"document.location.href=""/OS/RepOrdenesServicios.aspx"";"
- 'Alert(MensajeAlertOS.ToString, TipoMensaje.MsgInformacion, Liga)
Else
errorList.Add("Se presento un error al guardar la el detalle de la orden de servicio.")
Errores = True
End If
+ End If
+ If Not Errores Then
+ Dim ObjEventos As New ClsOIEventos(TransacSQL)
+ Dim LigaVenta As String = String.Format("Pedido en Folio: {1}", CveVentaOS, SerieFolioOS)
+ If Not ObjEventos.AddEventoBitacora(LigaVenta, "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOS:=CveOSVentaMedica) Then
+ errorList.Add("Se presento un error al guardar la bitacora de la orden de servicio.")
+ Errores = True
+ End If
End If
Return If(Errores, False, True)