diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index b5c868fcb..c4a63945c 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -7680,8 +7680,8 @@ Public Class ClsPaginas
If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
End If
- Dim urlHost As String = "http://sig.adssistemas.mx:7998/"
- 'Dim urlHost As String = "http://localhost:2202/"
+ 'Dim urlHost As String = "http://sig.adssistemas.mx:7998/"
+ Dim urlHost As String = "http://localhost:2202/"
If EsProduccion Then
urlHost = "http://192.200.113.178:6599/"
End If
diff --git a/App_Code/ClsTransportes.vb b/App_Code/ClsTransportes.vb
index cdf3f7d73..11e65e7bc 100644
--- a/App_Code/ClsTransportes.vb
+++ b/App_Code/ClsTransportes.vb
@@ -190,7 +190,9 @@ Public Class ClsTransportes
Return Retorno
End Function
- Public Function UpdateViajesPasajeros(CveViajePasajero As Integer, Optional CveViaje As Integer = -1, Optional CveVendedor As Integer = -1, Optional Importe As Decimal = -1, Optional Asiento As Integer = -1, Optional Nombre As String = "", Optional Visa As String = "", Optional Celular As String = "", Optional Observacion As String = "", Optional Estatus As Boolean = True, Optional CveUsuario As Integer = -1, Optional Sexo As Boolean = True) As Boolean
+ Public Function UpdateViajesPasajeros(CveViajePasajero As Integer, Optional CveViaje As Integer = -1, Optional CveVendedor As Integer = -1, Optional Importe As Decimal = -1, Optional Asiento As Integer = -1, Optional Nombre As String = "",
+ Optional Visa As String = "", Optional Celular As String = "", Optional Observacion As String = "", Optional Estatus As Boolean = True, Optional CveUsuario As Integer = -1, Optional Sexo As Boolean = True,
+ Optional FechaNacimiento As Date = MinFecha) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Trans_ViajesPasajerosUpdate")
@@ -207,6 +209,8 @@ Public Class ClsTransportes
.Add("@Estatus", SqlDbType.Bit).Value = Estatus
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@Sexo", SqlDbType.Bit).Value = Sexo
+ .Add("@FechaNacimiento", SqlDbType.Date).Value = FechaNacimiento
+
End With
Try
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index 6dd1247d9..06c455a78 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -9478,6 +9478,10 @@ Partial Class Compras_Compras
Private Function validaFechaNumeroReembolso() As Boolean
+ If UsuarioActual.CveEmpresa <> 119 Then
+ Return True
+ End If
+
Dim respuesta As Boolean = True
Dim CvePersonalVal As Integer = -1
Dim CveCajaChicaVal As Integer = -1
@@ -9521,9 +9525,9 @@ Partial Class Compras_Compras
respuesta = False 'La fecha de la compra esta por fuera de lo permitido mes actual o mes anterior
If FechaCompra.Month > MesReembolsoInt Then
- Alert($"La fecha de la compra que se quiere registrar esta adelantada al mes de la comprobación (Fecha comprobación {FechaReembolso.ToString("dd/MM/yyyy")}).", TipoMensaje.MsgAdvertencia)
+ Alert($"La fecha de la compra que se quiere registrar esta adelantada al mes de la comprobación (Reembolso {TxtRembolsoNumero.Text} ,Fecha comprobación {FechaReembolso.ToString("dd/MM/yyyy")}).", TipoMensaje.MsgAdvertencia)
Else
- Alert($"La fecha de la compra que se quiere registrar es anterior al mes permitido por la comprobación (Fecha comprobación {FechaReembolso.ToString("dd/MM/yyyy")}).", TipoMensaje.MsgAdvertencia)
+ Alert($"La fecha de la compra que se quiere registrar es anterior al mes permitido por la comprobación (Reembolso {TxtRembolsoNumero.Text}, Fecha comprobación {FechaReembolso.ToString("dd/MM/yyyy")}).", TipoMensaje.MsgAdvertencia)
End If
End If
diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb
index c32a12610..31b9be8c5 100644
--- a/Compras/PopUpVerFactura.aspx.vb
+++ b/Compras/PopUpVerFactura.aspx.vb
@@ -1551,6 +1551,16 @@ Partial Class PopUpVerFactura
End If
End If
+
+ 'Boleto
+ If UrlParametros("OP").ToString = "BOLETO" Then
+ 'CveViajePasajero
+ Dim CVEVIAJEPASAJERO As Integer = UrlParametros("CVEVIAJEPASAJERO").ToString.ToEntero
+ If CVEVIAJEPASAJERO > 0 Then
+ ImprimeBoletoViale(CVEVIAJEPASAJERO)
+ End If
+ End If
+
End Sub
Private Function Parametros(Cadena As String) As Hashtable
@@ -6502,6 +6512,48 @@ Partial Class PopUpVerFactura
#End Region
+#Region "IMPRESION BOLETOS "
+
+ Public Sub ImprimeBoletoViale(CveViajePasajero As Integer)
+
+ If Not CveViajePasajero > 0 Then Exit Sub
+
+ Dim ObjTransportes As New ClsTransportes
+ Dim DtViajePAsajero As New DataTable
+ If ObjTransportes.GetViajesPasajeros(-1, CveViajePasajero) Then
+ DtViajePAsajero = ObjTransportes.DtResultados
+ End If
+ ObjTransportes.Dispose()
+
+ If DtViajePAsajero Is Nothing Or (DtViajePAsajero IsNot Nothing AndAlso DtViajePAsajero.Rows.Count = 0) Then
+ Exit Sub
+ End If
+
+
+ Dim Fecha As Date = DtViajePAsajero.Rows(0)("FechaIng").ToString.ToDate
+ Dim Importe As Decimal = DtViajePAsajero.Rows(0)("Importe").ToString.ToDecimal
+
+ Dim params As New List(Of ReportParameter) From {
+ New ReportParameter("Ruta", DtViajePAsajero.Rows(0)("SubProyecto").ToString),
+ New ReportParameter("Origen", DtViajePAsajero.Rows(0)("Partida").ToString),
+ New ReportParameter("Destino", DtViajePAsajero.Rows(0)("Destino").ToString),
+ New ReportParameter("FechaSalida", Fecha.ToShortDateString()),
+ New ReportParameter("HoraSalida", Fecha.ToString("HH:mm")),
+ New ReportParameter("Nombre", DtViajePAsajero.Rows(0)("Nombre").ToString),
+ New ReportParameter("Visa", DtViajePAsajero.Rows(0)("Visa").ToString),
+ New ReportParameter("Celular", DtViajePAsajero.Rows(0)("Celular").ToString),
+ New ReportParameter("Importe", Math.Round(Importe, 2).ToString),
+ New ReportParameter("TipoBoleto", "Tipo Boleto"),
+ New ReportParameter("Agencia", "Agencia"),
+ New ReportParameter("TelefonoAgencia", "TelefonoAgencia"),
+ New ReportParameter("Asiento", DtViajePAsajero.Rows(0)("Asiento").ToString)
+ }
+
+ ImprimirPDFStimul($"{UsuarioActual.Empresa.Ruta}Formatos\Boleto.mrt", New DataTable, params, NombreArchivo:="Boleto")
+
+ End Sub
+
+#End Region
Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String, Optional PureBacode As Boolean = False) As Byte()
diff --git a/Inventarios/TrasladoSolicitud.aspx b/Inventarios/TrasladoSolicitud.aspx
index 1d551f1c3..de1de47b9 100644
--- a/Inventarios/TrasladoSolicitud.aspx
+++ b/Inventarios/TrasladoSolicitud.aspx
@@ -3,6 +3,30 @@
+
Reporte de solicitudes de traspaso
@@ -192,7 +216,7 @@
-
+
@@ -338,6 +362,48 @@
}
}
}
+
+
+
+ $('.DdlPS').on("select2:open", function (e) { $('.select2-container.select2-container--default .select2-dropdown .select2anothertable').remove(); });
+ $("body").on("mouseenter", ".select2-container.select2-container--default.select2-container--open .select2-dropdown li", function (event) {
+ var $this = $(this);
+ var ind = $this.index();
+ $(".select2-container.select2-container--default.select2-container--open .select2-dropdown .select2anothertable tr.active").removeClass('active');
+ $(".select2-container.select2-container--default.select2-container--open .select2-dropdown .select2anothertable tr:nth-child(" + (ind + 2) + ")").addClass('active');
+ //log($this);
+ });
+ var scrollfuncion = function () {
+ var stop = this.scrollTop;
+ $(".select2-container.select2-container--default.select2-container--open .select2-dropdown .select2anothertable").scrollTop(stop);
+ }
+
+ function CargaExistenciaAlmacenes(data, params) {
+ var div = $('');
+ $('.select2-container.select2-container--default.select2-container--open .select2-dropdown .select2anothertable').remove();
+ $('.select2-container.select2-container--default.select2-container--open .select2-dropdown').prepend(div);
+ var table = $('
'); div.append(table);
+ var tbody = $(''); table.append(tbody);
+ $(".select2-container--default .select2-results>.select2-results__options").off("scroll", scrollfuncion);
+ $(".select2-container--default .select2-results>.select2-results__options").scroll(scrollfuncion);
+ var indexd = 0;
+ data.forEach(function (item) {
+ if (indexd == 0) {
+ var tr = $('
'); tbody.append(tr);
+ var td;
+ for (var key in item) {
+ if (!(key == "text" || key == "id")) { td = $('
' + key + '
'); tr.append(td); }
+ }
+ }
+ var tr = $('
'); tbody.append(tr);
+
+ var td;
+ for (var key in item) {
+ if (!(key == "text" || key == "id")) { td = $('
'); tr.append(td); }
+ }
+ indexd += 1;
+ });
+ }
diff --git a/Inventarios/TrasladoSolicitud.aspx.vb b/Inventarios/TrasladoSolicitud.aspx.vb
index 3c77c4262..9d284a14f 100644
--- a/Inventarios/TrasladoSolicitud.aspx.vb
+++ b/Inventarios/TrasladoSolicitud.aspx.vb
@@ -69,7 +69,8 @@ Partial Class Inventarios_TrasladoSolicitud
Private Sub InicializaValores()
CreaDTTemporal()
CargaAlmacenes()
- CargaPS()
+ 'CargaPS()
+ CargaFuncionalidad105()
'CargaClientes()
' CargaUnidadMedida()
@@ -92,25 +93,70 @@ Partial Class Inventarios_TrasladoSolicitud
End Sub
+#Region " FUNCIONALIDAD 105-141 "
+ Private Sub CargaFuncionalidad105()
+ Dim EsWS As Boolean = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False)
- Private Sub CargaPS()
- DdlProductoServicio.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
+ DdlProductoServicio.setEsWebService(EsWS)
+
+ If DdlProductoServicio.UsaWebService Then
+ 'If isWithFamily() Then
+ ' DdlP2.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacion.ClientID)
+ 'Else
+ ' DdlP2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
+ 'End If
+ DdlProductoServicio.IncluyeTodos = False
+ DdlProductoServicio.ddlWS.Attributes.Add("data-pagina", "inv/traspaso")
+
+ If UsuarioActual.Empresa.Funcionalidad(141) = "1" Or True Then
+ DdlProductoServicio.ddlWS.Attributes.Add("Data-onresult", "CargaExistenciaAlmacenes")
+ 'CargaSucursal()
+ 'DdlSubProyecto.AutoPostBack = True
+ End If
+ DdlProductoServicio.Attributes.Add("Data-usoclasificacion", "-1")
+ Else
+ CargaPS(-1, DdlProductoServicio)
+ 'DdlP2.ddl.Items.Add(New ListItem("Seleccione", "-1"))
+ 'DdlP2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
+ End If
+ End Sub
+
+ Private Sub CargaPS(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost)
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
- DdlProductoServicio.ddlWS.Attributes.Add("data-cveclasificacion", "-1")
- DdlProductoServicio.SelectedText = ""
- DdlProductoServicio.SelectedValue = "-1"
+ Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString)
+ ' Objeto.ddlWS.Attributes.Add("data-pagina", "oc/oc")
+ Objeto.SelectedText = ""
+ Objeto.SelectedValue = "-1"
Else
- DdlProductoServicio.ddl.Items.Clear()
- DdlProductoServicio.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1)
- DdlProductoServicio.ddl.DataBind()
- DdlProductoServicio.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
+ Objeto.ddl.Items.Clear()
+ Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion).FiltraParametros("", "PSCodigo")
+ Objeto.ddl.DataBind()
+ 'Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
+ Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
- 'DdlProductoServicio.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
- 'DdlProductoServicio.DataBind()
- 'DdlProductoServicio.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
+#End Region
+
+ 'Private Sub CargaPS()
+ ' DdlProductoServicio.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
+
+ ' If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
+ ' DdlProductoServicio.ddlWS.Attributes.Add("data-cveclasificacion", "-1")
+ ' DdlProductoServicio.SelectedText = ""
+ ' DdlProductoServicio.SelectedValue = "-1"
+ ' Else
+ ' DdlProductoServicio.ddl.Items.Clear()
+ ' DdlProductoServicio.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1)
+ ' DdlProductoServicio.ddl.DataBind()
+ ' DdlProductoServicio.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
+ ' End If
+ ' 'DdlProductoServicio.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
+ ' 'DdlProductoServicio.DataBind()
+ ' 'DdlProductoServicio.Items.Insert(0, New ListItem("Seleccione", "-1"))
+ 'End Sub
+
Private Sub CargaCombos()
DdlAlmacenOrigenFiltro.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 1") 'GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen <> 9")
DdlAlmacenOrigenFiltro.DataBind()
diff --git a/Transportes/Boletos.aspx b/Transportes/Boletos.aspx
index d3a9f9080..c7720bf91 100644
--- a/Transportes/Boletos.aspx
+++ b/Transportes/Boletos.aspx
@@ -272,8 +272,28 @@
-
+
+
+
+
+
+
+
+
+
+
+ <%--
+
+
+
+
+
+
+
+
--%>
+
+
+
diff --git a/Transportes/Boletos.aspx.vb b/Transportes/Boletos.aspx.vb
index 04954c40c..8fe42f08a 100644
--- a/Transportes/Boletos.aspx.vb
+++ b/Transportes/Boletos.aspx.vb
@@ -4,6 +4,7 @@ Imports System.Data
Imports ADSNetLibrary.Helpers
Imports Extensiones
Imports Extensiones.ModExtensiones
+
Partial Class Boletos
Inherits ClsPaginas
#Region "Propiedades"
@@ -77,9 +78,7 @@ Partial Class Boletos
If Not IsPostBack Then
- If UsuarioActual.CveRol = 1583 Then
- EsAgencia = True
- End If
+
If Request.QueryString("CveViaje") Is Nothing And UsuarioActual.CveVendedor <> Nothing And UsuarioActual.CveVendedor <> -1 Then
Response.Redirect("/Transportes/RepViajes.aspx")
@@ -92,8 +91,24 @@ Partial Class Boletos
Alert("Viaje no definido")
End If
+ Permisos()
+
End If
End Sub
+ Private Sub Permisos()
+
+ If UsuarioActual.CveRol = 1583 Then
+ EsAgencia = True
+ If UsuarioActual.CveVendedor <= 0 Then
+ Alert("El usuario no tiene Vendedor Asignado", TipoMensaje.MsgAdvertencia)
+ End If
+ End If
+
+ If UsuarioActual.TienePermisoProceso(400) Then
+ TxtImporte.Enabled = True
+ End If
+
+ End Sub
Private Sub CargaDatos()
Dim ObjContratos As New ClsContratos
Dim ObjViaje As New ClsTransportes
@@ -180,30 +195,33 @@ Partial Class Boletos
Dim CveSubProyecto As Integer = Contrato.Rows(0)("CveSubProyecto").ToString.ToEntero
If ObjDestinos.GetDestinosTarifas(CveSubProyecto, DdlPartida.SelectedValue.ToEntero, DdlDestino.SelectedValue.ToEntero) Then
- Dim fechaHoy As Date = Date.Today
- Dim fechaNacimiento As Date = TxtFechaNacimiento.Text.ToDate
- Dim edad As Integer
- ' Calcular la diferencia en años entre la fecha actual y la fecha de nacimiento
- edad = CInt(DateDiff(DateInterval.Year, fechaNacimiento, fechaHoy))
- If edad <= 4 Or edad >= 60 Then
- ImporteR = ObjDestinos.DtResultados.FiltroPrimeroValor("Importe").ToDecimal.RoundSQL - 20
+ Dim edad As Integer = CInt(DateDiff(DateInterval.Year, TxtFechaNacimiento.Text.ToDate, Date.Today))
+ Dim Mes As Integer = TxtFecha.Text.ToDate.Month
+
+ If Mes.Contiene(11, 12) Then 'Tarifas de meses Noviembre y Diciembre
+ ImporteR = If(Mes = 11, ObjDestinos.DtResultados.FiltroPrimeroValor("ImporteNov").ToDecimal.RoundSQL, ObjDestinos.DtResultados.FiltroPrimeroValor("ImporteDic").ToDecimal.RoundSQL)
Else
ImporteR = ObjDestinos.DtResultados.FiltroPrimeroValor("Importe").ToDecimal.RoundSQL
-
End If
+
+ ImporteR = If(edad <= 4 Or edad >= 60, ImporteR - 20, ImporteR)
+
End If
If ImporteR > 0 Then
ViewState("Importe") = ImporteR
- LbCostos.Text = $"El precio de su boleto es ${ImporteR.FormatoNumero}"
+ LbCostos.Text = $"El precio de su boleto es:"
LbCostos.Visible = True
+ TxtImporte.Text = ImporteR.FormatoNumero
+ TxtImporte.Visible = True
BtnAgregarPasajero.Visible = True
LbAviso.Visible = True
Else
ViewState("Importe") = 0
BtnAgregarPasajero.Visible = False
LbCostos.Visible = False
+ TxtImporte.Visible = False
Alert("No se encontro una tarifa para estos destinos", TipoMensaje.MsgAdvertencia)
End If
@@ -249,6 +267,7 @@ Partial Class Boletos
End If
dr("CveViajePasajero") = CveViajePasajero
+ 'dr("Numero") = dr("Importe").ToString
Next
@@ -305,7 +324,9 @@ Partial Class Boletos
ObjTransporte.Commit()
ObjTransporte.Dispose()
- SbAlert.Append("El boleto se genero correctamente.")
+ SbAlert.Append("El boleto se genero correctamente.")
+
+ GeneraLinksDescargaBoleto(SbAlert)
DtPasajeros.Clear()
GvB.DataSource = DtPasajeros
@@ -321,7 +342,8 @@ Partial Class Boletos
CargaDatos()
End If
- Alert(SbAlert.ToString(), If(TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), ShowCloseButton:=False)
+ Alert(SbAlert.ToString(), If(TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), ShowCloseButton:=False, JSBtnAceptar:="window.location.reload();")
+
End Try
LbAviso.Visible = False
@@ -331,6 +353,20 @@ Partial Class Boletos
UpPanel.Update()
End Sub
+
+ Private Sub GeneraLinksDescargaBoleto(ByRef SB As StringBuilder)
+
+ For Each dRow As DataRow In DtPasajeros.Rows
+ Dim CveViajePasajero As Integer = dRow("CveViajePasajero").ToString.ToEntero
+
+ If CveViajePasajero > 0 Then
+ Dim Liga As String = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=BOLETO&CVEVIAJEPASAJERO={0}", CveViajePasajero.ToString)))
+ SB.Append($" Boleto: {dRow("Nombre").ToString}")
+ End If
+ Next
+
+ End Sub
+
Protected Sub DdlPartida_SelectedIndexChanged(sender As Object, e As EventArgs)
DdlDestino.DataSource = DtDestinos.FiltraParametros($"CveDestinoOrigen = {DdlPartida.SelectedValue}")
DdlDestino.DataBind()
@@ -358,6 +394,13 @@ Partial Class Boletos
End Sub
Protected Sub AgregarPasajero(sender As Object, e As EventArgs)
+ If EsAgencia Then
+ If UsuarioActual.CveVendedor <= 0 Then
+ Alert("El usuario no tiene Vendedor Asignado", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+
If AsientoSeleccionado = "" Then
Alert("No se ha seleccionado el asiento.")
Exit Sub
@@ -372,7 +415,7 @@ Partial Class Boletos
Dr1("Destino") = DdlDestino.SelectedItem
Dr1("CveDestinoOrigen") = DdlPartida.SelectedValue.ToEntero
Dr1("CveDestinoFinal") = DdlDestino.SelectedValue.ToEntero
- Dr1("Importe") = Me.Importe
+ Dr1("Importe") = TxtImporte.Text.ToDecimal 'Me.Importe
Dr1("Asiento") = AsientoSeleccionado.Replace("A", "")
Dr1("Nombre") = TxtNombre.Text.Trim
'Dr1("INE") = TxtINE.Text.Trim
@@ -415,11 +458,11 @@ Partial Class Boletos
Private Function CrearRemision(ByRef objTrans As ClsTransportes) As Modelos.Factura.MMensajeFactura
Dim Retorno As New Modelos.Factura.MMensajeFactura
- Dim CveCliente As Integer = 1154164
+ Dim CveCliente As Integer = 1172306 ' 1154164
Dim CveMoneda As Integer = 2
Dim CveSubProyecto As Integer = -1
- Dim CvePSBoleto As Integer = 912720
+ Dim CvePSBoleto As Integer = 907706 '912720
If EsProduccion Then
CvePSBoleto = 986337
@@ -501,4 +544,7 @@ Partial Class Boletos
Return Retorno
End Function
+
+
+
End Class
diff --git a/Transportes/RepContratoDetalle.aspx b/Transportes/RepContratoDetalle.aspx
index 04151d1a5..907b28858 100644
--- a/Transportes/RepContratoDetalle.aspx
+++ b/Transportes/RepContratoDetalle.aspx
@@ -11,6 +11,17 @@
diff --git a/Transportes/RepContratoDetalle.aspx.vb b/Transportes/RepContratoDetalle.aspx.vb
index 64c21f6b6..57bf1dc1a 100644
--- a/Transportes/RepContratoDetalle.aspx.vb
+++ b/Transportes/RepContratoDetalle.aspx.vb
@@ -1,11 +1,12 @@
Option Explicit On
Option Strict On
+Imports System.Activities.Statements
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports Extensiones
Imports Microsoft.Reporting.WebForms
-Imports Modelos
+
Partial Class RepContratoDetalle
@@ -231,6 +232,18 @@ Partial Class RepContratoDetalle
End Property
+ Private Property DTViajesPasajeros As DataTable
+ Get
+ If ViewState("DTViajesPasajeros") Is Nothing Then
+ ViewState("DTViajesPasajeros") = New DataTable
+ End If
+ Return CType(ViewState("DTViajesPasajeros"), DataTable)
+ End Get
+ Set(value As DataTable)
+ ViewState("DTViajesPasajeros") = value
+ End Set
+ End Property
+
#End Region
@@ -297,9 +310,34 @@ Partial Class RepContratoDetalle
DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
+ DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
+ DdlVendedor.DataBind()
+ DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1"))
+
+ For i As Integer = DdlVendedor.Items.Count - 1 To 0 Step -1
+ If DdlVendedor.Items(i).Text = "Sin Asignar" Then
+ DdlVendedor.Items.RemoveAt(i)
+ End If
+ Next
+
+ If EsAgencia Then
+ DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor)
+ DdlVendedor.Enabled = False
+ End If
+
+
End Sub
Private Sub CargaDatos()
+
+ CargaDatosContrato()
+ CargaDatosViajes()
'Información General
+
+
+
+ End Sub
+
+ Private Sub CargaDatosContrato()
Dim ObjContratos As New ClsContratos
If ObjContratos.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then
Contrato = ObjContratos.DtResultados
@@ -322,7 +360,7 @@ Partial Class RepContratoDetalle
TxtFechaSalida.Text = Contrato.Rows(0)("FechaInicial").ToString.ToDate.ToString("dd/MM/yyyy HH:mm:ss")
TxtFechaRegreso.Text = Contrato.Rows(0)("FechaFinal").ToString.ToDate.ToString("dd/MM/yyyy HH:mm:ss")
TxtCantidadPasajeros.Text = Contrato.Rows(0)("CantidadPasajeros").ToString
- DdlTipoAF.SelectedValue = If(Contrato.Rows(0)("CveTipoAF") Is Nothing, "", Contrato.Rows(0)("CveTipoAF").ToString)
+ DdlTipoAF.SelectedValueExist(If(Contrato.Rows(0)("CveTipoAF") Is Nothing, "", Contrato.Rows(0)("CveTipoAF").ToString))
TxtImporte.Text = Math.Round(Importe, 2).ToString
TxtAnticipo.Text = Math.Round(Anticipo, 2).ToString
CveContratoEstatus = Contrato.Rows(0)("CveContratosEstatus").ToString.ToEntero
@@ -367,17 +405,7 @@ Partial Class RepContratoDetalle
A1.Visible = True
End If
- 'Boletos Vendidos
- If Contrato.Rows(0)("CveContratoTipo").ToString() = "35" Then
- TabBoletos.Visible = True
- Dim ObjTransportes As New ClsTransportes
- If ObjTransportes.GetViajesPasajeros(CveContrato) Then
- GvViajesPasajeros.DataSource = ObjTransportes.DtResultados
- BusquedaSeleccionada(ObjTransportes.DtResultados)
- End If
- ObjTransportes.Dispose()
- GvViajesPasajeros.DataBind()
- End If
+
''Bitácora
'Dim ObjEventoBitacora As New ClsOIEventos
'If ObjEventoBitacora.GetEventos(-1, -1, -1, "-1", "-1", -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato) Then
@@ -393,10 +421,38 @@ Partial Class RepContratoDetalle
End If
ObjContratos.Dispose()
UpTabContainer.Update()
-
End Sub
-#End Region
+ Private Sub CargaDatosViajes()
+ 'Boletos Vendidos
+ DTViajesPasajeros = New DataTable
+ If CveContratoTipo = 35 Then
+ TabBoletos.Visible = True
+ Dim ObjTransportes As New ClsTransportes
+ If ObjTransportes.GetViajesPasajeros(CveContrato) Then
+
+ If DdlVendedor.SelectedValue.ToEntero > 0 Then
+ DTViajesPasajeros = ObjTransportes.DtResultados.FiltraParametros($" CveVendedor = {DdlVendedor.SelectedValue.ToEntero} ")
+ Else
+ DTViajesPasajeros = ObjTransportes.DtResultados
+ End If
+
+ GvViajesPasajeros.DataSource = DTViajesPasajeros
+ BusquedaSeleccionada(DTViajesPasajeros)
+
+ End If
+ ObjTransportes.Dispose()
+ GvViajesPasajeros.DataBind()
+ End If
+ UpPasajeros.Update()
+ UpTabContainer.Update()
+ End Sub
+
+
+#End Region
+ Protected Sub DdlUsuarioFiltroBoletos_SelectedIndexChanged(sender As Object, e As EventArgs)
+ CargaDatosViajes()
+ End Sub
#Region "Bitacora"
Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound
@@ -715,7 +771,7 @@ Partial Class RepContratoDetalle
For Each dRow As DataRow In DTPrePoliza.Rows
- If Not ObjConta.UpdatePrePolizasDetalle(dRow("CvePrePolizaDetalle").ToString.ToEntero, dRow("Concepto").ToString, dRow("CveSubProyecto").ToString.ToEntero, -1, Boolean.Parse(dRow("TipoMovto").ToString), ImporteMN:=(TotalNew * TC), Importe:=TotalNew, TipoCambio:=TC) Then
+ If Not ObjConta.UpdatePrePolizasDetalle(dRow("CvePrePolizaDetalle").ToString.ToEntero, dRow("Concepto").ToString, dRow("CveSubProyecto").ToString.ToEntero, -1, Boolean.Parse(dRow("TipoMovto").ToString), ImporteMN:=TotalNew, Importe:=TotalNew, TipoCambio:=TC) Then
OcurrioError = True
Exit For
End If
@@ -848,7 +904,7 @@ Partial Class RepContratoDetalle
Try
ObjTransportes.IniciaTransacSQL()
- If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, DdlRuta.SelectedValue.ToEntero, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, CBool(TxtEstatus.Text), UsuarioActual.CveUsuario, CBool(RblSexo.SelectedValue)) Then
+ If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, DdlRuta.SelectedValue.ToEntero, UsuarioActual.CveVendedor, LbImporte.Text.ToDecimal, TxtAsiento.Text.ToEntero, TxtNombre.Text, TxtVisa.Text, TxtCelular.Text, TxtObservacion.Text, CBool(TxtEstatus.Text), UsuarioActual.CveUsuario, CBool(RblSexo.SelectedValue), FechaNacimiento:=TxtFechaNacimiento.Text.ToDate) Then
ObjTransportes.Commit()
End If
Catch ex As ArgumentException
@@ -863,6 +919,7 @@ Partial Class RepContratoDetalle
End Try
CargaDatos()
+
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalEditar"))
End Sub
Protected Sub OnChangeRuta(sender As Object, e As EventArgs)
@@ -901,53 +958,39 @@ Partial Class RepContratoDetalle
ViajeActual = dt
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 Fecha As Date = GvRow.DataKey("FechaIng").ToDate
- Dim Importe As Decimal = GvRow.DataKey("Importe").ToDecimal
-
- Dim params As New List(Of ReportParameter) From {
- New ReportParameter("Ruta", SubProyecto),
- New ReportParameter("Origen", GvRow.DataKey("Partida")),
- New ReportParameter("Destino", GvRow.DataKey("Destino")),
- New ReportParameter("FechaSalida", Fecha.ToShortDateString()),
- New ReportParameter("HoraSalida", Fecha.ToString("HH:mm")),
- New ReportParameter("Nombre", GvRow.DataKey("Nombre")),
- New ReportParameter("Visa", GvRow.DataKey("Visa")),
- New ReportParameter("Celular", GvRow.DataKey("Celular")),
- New ReportParameter("Importe", Math.Round(Importe, 2).ToString),
- New ReportParameter("TipoBoleto", "Tipo Boleto"),
- New ReportParameter("Agencia", "Agencia"),
- New ReportParameter("TelefonoAgencia", "TelefonoAgencia"),
- New ReportParameter("Asiento", GvRow.DataKey("Asiento"))
- }
-
- ImprimirPDFStimul($"{UsuarioActual.Empresa.Ruta}Formatos\Boleto.mrt", dtResult, params, NombreArchivo:="Boleto")
-
- End Sub
Protected Sub GvViajesPasajeros_RowDataBound(sender As Object, e As GridViewRowEventArgs)
+
If e.Row.RowType = DataControlRowType.DataRow Then
If EsAgencia Then
e.Row.FCLinkButton("BtnCancelar").Visible = False
+ e.Row.FCLinkButton("BtnReAgendar").Visible = False
End If
+ Dim Liga As String = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=BOLETO&CVEVIAJEPASAJERO={0}", e.Row.DataKey("CveViajePasajero"))))
+ e.Row.FCLiteral("LtlImprimir").Text = $""
- ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("BtnImprimir"))
+ 'ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("BtnImprimir"))
End If
+
+ If e.Row.RowType = DataControlRowType.Footer Then
+ e.Row.FCLiteral("LtlImportePie").Text = DTViajesPasajeros.SUM("Importe").ToString("###,###,###.00")
+ End If
+
End Sub
Protected Sub EditarBoleto(sender As Object, e As EventArgs)
PnEditarUsuario.Visible = True
PnEditarViaje.Visible = False
PnAsientos.Visible = False
+ TxtFechaNacimiento.Enabled = True
+ TxtNombre.Enabled = True
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
CveViajePasajero = GvRow.DataKey("CveViajePasajero").ToEntero
- DdlRuta.SelectedValue = GvRow.DataKey("CveViaje")
+ DdlRuta.SelectedValueExist(GvRow.DataKey("CveViaje"))
LbPartida.Text = GvRow.DataKey("Partida").ToString()
LbDestino.Text = GvRow.DataKey("Destino").ToString()
LbImporte.Text = Convert.ToDecimal(GvRow.DataKey("Importe")).ToString("C")
@@ -960,6 +1003,12 @@ Partial Class RepContratoDetalle
TxtEstatus.Text = GvRow.DataKey("Estatus").ToString
LbEstatus.CssClass = If(CBool(GvRow.DataKey("Estatus").ToString), "text-success bold", "text-danger bold")
TxtAsiento.Text = GvRow.DataKey("Asiento").ToString()
+ TxtFechaNacimiento.Text = GvRow.DataKey("FechaNacimiento").ToString().ToDate.ToString("yyyy-MM-dd") 'Este es el formato que admite el control
+
+ If EsAgencia Then
+ TxtFechaNacimiento.Enabled = False
+ TxtNombre.Enabled = False
+ End If
UpTabContainer.Update()
UpModal.Update()
@@ -985,6 +1034,7 @@ Partial Class RepContratoDetalle
LbEstatus.Text = GvRow.DataKey("Estatus").ToString()
LbCreado.Text = GvRow.DataKey("FechaIng").ToString()
TxtAsiento.Text = GvRow.DataKey("Asiento").ToString()
+ TxtFechaNacimiento.Text = GvRow.DataKey("FechaNacimiento").ToString().ToDate.ToString("dd/MM/yyyy")
'Seleccionamos la ruta que tiene el usuario actual
DdlRuta.ClearSelection()
@@ -998,7 +1048,7 @@ Partial Class RepContratoDetalle
DdlRuta.Items.Add(listItem)
Next
End If
- DdlRuta.SelectedValue = GvRow.DataKey("CveViaje")
+ DdlRuta.SelectedValueExist(GvRow.DataKey("CveViaje"))
ObjContratos.Dispose()
UpTabContainer.Update()
RegistraScript(String.Format("$('#{0}').modal('show');", "ModalEditar"))
@@ -1185,6 +1235,83 @@ Partial Class RepContratoDetalle
End Class
#End Region
+
+ Protected Sub DdlVendedor_SelectedIndexChanged(sender As Object, e As EventArgs)
+ CargaDatosViajes()
+ End Sub
+
+
+#Region "IMPRESION MANIFIESTO"
+
+ 'Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
+ ' GeneraPDF("Excel")
+ ' 'GvDatos.ExportToExcel("ReporteProductosServicios" & NowADS().ToShortDateString)
+ 'End Sub
+
+ Private Sub PreparaManifiesto()
+
+
+ End Sub
+
+ Protected Sub GeneraPDF(Optional Formato As String = "PDF")
+
+ Dim DTManifiestoViajes As DataTable = DTViajesPasajeros.Copy
+ DTManifiestoViajes.Rows.Clear()
+ DTManifiestoViajes.Columns.Add("SexoStr")
+
+ For x = 1 To 50
+
+ Dim dRow As DataRow = DTManifiestoViajes.NewRow
+
+ Dim Encontrado As Boolean = False
+
+ For Each faRow As DataRow In DTViajesPasajeros.Rows
+
+ If faRow("Asiento").ToString.ToEntero = x Then
+ Encontrado = True
+ dRow("Asiento") = x
+ dRow("Nombre") = faRow("Nombre").ToString
+ dRow("Visa") = faRow("Visa").ToString
+ dRow("Celular") = faRow("Celular").ToString
+ dRow("SexoStr") = If(Boolean.Parse(faRow("Sexo").ToString), "Masculino", "Femenino")
+ dRow("Partida") = faRow("Partida").ToString
+ dRow("Destino") = faRow("Destino").ToString
+ dRow("Importe") = faRow("Importe").ToString.ToDecimal
+ Exit For
+ End If
+
+ Next
+
+ If Not Encontrado Then
+ dRow("Asiento") = x
+ End If
+
+ DTManifiestoViajes.Rows.Add(dRow)
+
+ Next
+ DTManifiestoViajes.TableName = "DTManifiestoViajes"
+ DTManifiestoViajes.AcceptChanges()
+ Dim DTManifiesto As DataTable = DTManifiestoViajes.FiltraParametros("", "Asiento")
+ DTManifiesto.TableName = "DTManifiestoViajes"
+
+ Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
+ Dim params As New List(Of ReportParameter)()
+ params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa))
+ params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
+ params.Add(New ReportParameter("Contrato", TxtFolio.Text))
+ params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
+ params.Add(New ReportParameter("FechaSalida", TxtFechaSalida.Text))
+
+ ImprimirPDF("Empresas/Grales/Formatos/ManifiestoViajes.rdlc", DTManifiesto, params, "Reporte de Productos Servicios", Formato)
+
+ End Sub
+
+
+ Protected Sub ImgPDF_Click(sender As Object, e As EventArgs)
+ GeneraPDF()
+ End Sub
+
+#End Region
End Class
diff --git a/Transportes/RepContratos.aspx b/Transportes/RepContratos.aspx
index b1f82b7f8..90934b020 100644
--- a/Transportes/RepContratos.aspx
+++ b/Transportes/RepContratos.aspx
@@ -349,6 +349,7 @@
+
+
+
+
+
+
diff --git a/Ventas/BKActualizarPrecios.aspx.vb.BK b/Ventas/BKActualizarPrecios.aspx.vb.BK
new file mode 100644
index 000000000..e33509076
--- /dev/null
+++ b/Ventas/BKActualizarPrecios.aspx.vb.BK
@@ -0,0 +1,1201 @@
+
+Option Explicit On
+Option Strict On
+
+Imports System.Data
+Imports System.IO
+Imports Extensiones
+Imports GemBox.Spreadsheet
+Imports Microsoft.Reporting.WebForms
+Imports ZXing
+
+Partial Class Ventas_ActualizarPrecios
+ Inherits ClsPaginas
+
+ Private Property DtListasPrecios As DataTable
+ Get
+ Return If(IsNothing(ViewState("DtListasPrecios")), Nothing, CType(ViewState("DtListasPrecios"), DataTable))
+ End Get
+ Set(value As DataTable)
+ ViewState("DtListasPrecios") = value
+ End Set
+ End Property
+
+ Private Property DtSubProyectos As DataTable
+ Get
+ Return If(IsNothing(ViewState("DtSubProyectos")), Nothing, CType(ViewState("DtSubProyectos"), DataTable))
+ End Get
+ Set(value As DataTable)
+ ViewState("DtSubProyectos") = value
+ End Set
+ End Property
+
+ Private Property DtDatosPrecios As DataTable
+ Get
+ Return If(IsNothing(ViewState("DtDatosPrecios")), Nothing, CType(ViewState("DtDatosPrecios"), DataTable))
+ End Get
+ Set(value As DataTable)
+ ViewState("DtDatosPrecios") = value
+ End Set
+ End Property
+
+ Private Property DtPreciosMultiple As DataTable
+ Get
+ Return If(IsNothing(ViewState("DtPreciosMultiple")), Nothing, CType(ViewState("DtPreciosMultiple"), DataTable))
+ End Get
+ Set(value As DataTable)
+ ViewState("DtPreciosMultiple") = value
+ End Set
+ End Property
+
+ Private Property CveSucursal As Integer
+ Get
+ If ViewState("CveSucursal") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("CveSucursal").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("CveSucursal") = value
+ End Set
+ End Property
+
+ Private Property CvePS As Integer
+ Get
+ If ViewState("CvePS") Is Nothing Then
+ Return -1
+ Else
+ Return ViewState("CvePS").ToString.ToEntero
+ End If
+ End Get
+ Set(value As Integer)
+ ViewState("CvePS") = value
+ End Set
+ End Property
+
+ Private Property PS As String
+ Get
+ If ViewState("PS") Is Nothing Then
+ Return ""
+ Else
+ Return ViewState("PS").ToString
+ End If
+ End Get
+ Set(value As String)
+ ViewState("PS") = value
+ End Set
+ End Property
+
+ Private Property PermisoEdicionLista As Boolean
+ Get
+ If ViewState("BloquearEdicionListas") Is Nothing Then
+ ViewState("BloquearEdicionListas") = True
+ End If
+ Return Boolean.Parse(ViewState("BloquearEdicionListas").ToString)
+ End Get
+ Set(value As Boolean)
+ ViewState("BloquearEdicionListas") = value
+ End Set
+ End Property
+
+ Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
+ If Not Page.IsPostBack Then
+ If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then
+ LblModalidad.Visible = True
+ DivModalidad.Visible = True
+ End If
+ If UsuarioActual.CveEmpresa.Contiene(189, 190, 192, 193) Then
+ LblModalidad.Visible = True
+ DivModalidad.Visible = True
+ End If
+
+ If UsuarioActual.TienePermisoProceso(282) Then
+ PermisoEdicionLista = False
+ DivActualizarPrecio.Visible = False
+ HlAgregarExcel.Visible = False
+ End If
+
+ CargaCombos()
+
+ End If
+ End Sub
+ Public Sub CargaCombos()
+ CargaDDlClasif()
+ CargaPS()
+ CargaPreciosLista()
+ CargaProveedores()
+ CargarMarcas()
+ CargarModelos()
+ End Sub
+ Public Sub CargaDDlClasif()
+ DDlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
+ DDlClasificacion.DataBind()
+ DDlClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
+ End Sub
+
+ Public Sub CargaPreciosLista()
+
+ DdlPrecioLista.Items.Clear()
+
+ If UsuarioActual.Empresa.Funcionalidad(404).ToEntero > 0 Then 'si maneja precios de lista
+
+ Dim primerItem As String = ""
+
+ DtListasPrecios = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).Copy()
+ DdlPrecioLista.DataSource = DtListasPrecios
+ DdlPrecioListaCarga.DataSource = DtListasPrecios
+ DdlMultiplePrecioLista.DataSource = DtListasPrecios
+ primerItem = DtListasPrecios.FiltroPrimeroValor("CvePrecioLista")
+
+ DdlPrecioLista.DataBind()
+ DdlPrecioListaCarga.DataBind()
+ DdlMultiplePrecioLista.DataBind()
+
+ Dim SeleccionMaxima As Integer = 14
+ If DtListasPrecios IsNot Nothing Then
+ If (DtListasPrecios.Rows.Count - 1) < 14 Then
+ SeleccionMaxima = DtListasPrecios.Rows.Count - 1
+ End If
+
+ Dim sbMultiple As New StringBuilder
+ For Each Row As DataRow In DtListasPrecios.FiltraPorIndices(0, SeleccionMaxima).Rows
+ sbMultiple.AppendFormat("{0},", Row("CvePrecioLista"))
+ Next
+ DdlMultiplePrecioLista.SelectedValuesIfExistM(sbMultiple.ToString(), True)
+
+ If (DdlPrecioLista.Items.Count = 1) Then
+ DdlPrecioLista.Items.FindByValue(primerItem).Selected = True
+ End If
+ End If
+
+ Else
+ DdlPrecioLista.Items.Insert(0, New ListItem("Sin Precio Lista", "-2"))
+ DdlPrecioListaCarga.Items.Insert(0, New ListItem("Sin Precio Lista", "-2"))
+ End If
+
+ End Sub
+
+ Public Sub CargaPS()
+ 'FUNCIONALIDAD 105
+ If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
+ DDlPs.setEsWebService(True)
+ Else
+ DDlPs.setEsWebService(False)
+
+ 'FUNCIONALIDAD DE COMPUESTO
+ If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then
+ DDlPs.ddl.DataTextField = "PSCodigoCompuesto"
+ End If
+
+ DDlPs.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
+ DDlPs.DataBind()
+
+ DDlPs.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
+ End If
+ End Sub
+ Private Sub CargaProveedores()
+ If UsuarioActual.Empresa.Funcionalidad(524) <> "" Then
+ DdlProveedor.setEsWebService(True)
+ DivProveedorCompra.Visible = True
+ LblProveedorCompra.Visible = True
+ End If
+ End Sub
+ Protected Sub CargarMarcas()
+ If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
+ Dim ObjMarcas As New ClsProductosServicios
+ If ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa) Then
+ DdlMarca.DataSource = ObjMarcas.DtResultados.Copy
+ End If
+ ObjMarcas.Dispose()
+ DdlMarca.DataBind()
+
+ LblMarca.Visible = True
+ DivMarca.Visible = True
+ End If
+
+ DdlMarca.Items.Insert(0, New ListItem("Todos", "-1"))
+ End Sub
+ Private Sub CargarModelos()
+ If UsuarioActual.Empresa.Funcionalidad(558).ToString = "1" Then
+ lblModelo.Visible = True
+ DivModelo.Visible = True
+ Dim ObjGeneral As New ClsGenerales
+ If ObjGeneral.GetModelos(UsuarioActual.CveEmpresa) Then
+ DdlModelo.DataSource = ObjGeneral.DtResultados
+ End If
+ ObjGeneral.Dispose()
+ DdlModelo.DataBind()
+ End If
+ DdlModelo.Items.Insert(0, New ListItem("Seleccione", "-1"))
+
+ End Sub
+ Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
+
+ Dim CveProveedor As Integer = -1
+ Dim CvePS As Integer = -1
+ Dim Marcas As String = If(DdlMarca.GetSelectedValuesM = "", "-1", DdlMarca.GetSelectedValuesM)
+
+ If DDlPs.SelectedValue.ToEntero > 0 Then
+ CvePS = DDlPs.SelectedValue.ToEntero
+ End If
+
+ If DdlProveedor.txtValue.Value.ToEntero > 0 Then
+ CveProveedor = DdlProveedor.txtValue.Value.ToEntero
+ End If
+
+ 'POR LISTA DE PRECIO
+ If DdlModalidad.SelectedValue = "1" Then
+ Dim objPS As New ClsProductosServicios
+ If objPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, DdlPrecioLista.SelectedValue.ToEntero, DDlClasificacion.SelectedValue.ToEntero, CvePS,
+ CveProveedor:=CveProveedor, Estado:=DdlEstado.SelectedValue.ToEntero, Marcas:=Marcas, CveModelo:=DdlModelo.SelectedValue.ToEntero) Then
+ DtDatosPrecios = objPS.DtResultados
+ GVPrecios.DataSource = DtDatosPrecios
+ End If
+ objPS.Dispose()
+
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'Empresa Acumuladores
+ GVPrecios.Columns(2).Visible = True
+ End If
+
+ If UsuarioActual.CveEmpresa = 153 Then 'Empresa servec
+ GVPrecios.Columns(11).Visible = True
+ End If
+
+ dvDatos.Visible = True
+ dvMultiple.Visible = False
+
+ DivActualizarPrecio.Visible = True
+
+ If UsuarioActual.TienePermisoProceso(282) Then
+ DivActualizarPrecio.Visible = False
+ End If
+
+ GVPrecios.DataBind()
+ End If
+
+ 'MULTIPLE LISTAS DE PRECIO
+ If DdlModalidad.SelectedValue = "2" Then
+
+ Dim ListasPrecios As String = If(DdlMultiplePrecioLista.GetSelectedValuesM = "", "-1", DdlMultiplePrecioLista.GetSelectedValuesM)
+
+ Dim objPS As New ClsProductosServicios
+ If objPS.GetPSMultiplesPreciosLista(UsuarioActual.CveEmpresa, ListasPrecios:=ListasPrecios, CveClasificacion:=DDlClasificacion.SelectedValue.ToEntero, CvePS:=CvePS,
+ CveProveedor:=CveProveedor, Estado:=DdlEstado.SelectedValue.ToEntero, Marcas:=Marcas, CveModelo:=DdlModelo.SelectedValue.ToEntero) Then
+ DtPreciosMultiple = objPS.DtResultados.Copy()
+ GvMultiple.DataSource = DtPreciosMultiple
+ End If
+ objPS.Dispose()
+
+ dvDatos.Visible = False
+ dvMultiple.Visible = True
+ DivActualizarPrecio.Visible = False
+
+ For colIndex As Integer = 2 To GvMultiple.Columns.Count - 1
+ If colIndex <= DtPreciosMultiple.Columns.Count - 1 Then
+ GvMultiple.Columns(colIndex).Visible = True
+ Else
+ GvMultiple.Columns(colIndex).Visible = False
+ End If
+ Next
+
+ GvMultiple.DataBind()
+ End If
+
+
+ UpDescargar.Update()
+ UpDatos.Update()
+ UPPrecioLista.Update()
+ End Sub
+ Protected Sub DDlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
+ CargaPS()
+ UpEncabezado.Update()
+ End Sub
+ Protected Sub RblTipo_SelectedIndexChanged(sender As Object, e As EventArgs)
+ If RblTipo.SelectedValue = "Imp" Then
+ ImporteFijo.Visible = True
+ Else
+ ImporteFijo.Visible = False
+ End If
+ UPPrecioLista.Update()
+ End Sub
+ Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
+ If RblTipo.SelectedIndex = 1 And TxtPorcentaje.Text.ToDecimal = 0 Then
+ Alert("Se debe de especificar un porcentaje.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+ Dim TieneError As Boolean = False
+ 'Dim Importe As Decimal = If(TxtImporte.Text = "", -1, TxtImporte.Text.ToDecimal)
+ Dim Porcentaje As Decimal = If(TxtPorcentaje.Text = "", -1, TxtPorcentaje.Text.ToDecimal)
+ Dim MensajeAlert As New StringBuilder
+ Dim sbProductos As New StringBuilder
+
+ Dim ObjPS As New ClsProductosServicios
+ ObjPS.IniciaTransacSQL()
+ Try
+ For Each row As GridViewRow In GVPrecios.Rows
+ If row.FCCheckBox("chkPS").Checked Then
+ TieneError = Not ObjPS.UpdatePSPreciosLista(row.FCTextBox("TxtPrecio").Text.ToDecimal, DdlPrecioLista.SelectedValue.ToEntero, Porcentaje, row.DataKey("CvePS").ToEntero, UsuarioActual.CveUsuario, NowADS(), If(RblTipo.SelectedValue = "Imp", True, False), PrecioMinimo:=row.FCTextBox("TxtPrecioMinimo").Text.ToDecimal)
+ If CBool(row.DataKey("ProductoExhibicion")) Then
+ sbProductos.AppendFormat("{0},", row.DataKey("CvePS").ToEntero)
+ End If
+
+
+ If Not TieneError Then
+ TieneError = ActualizarPreciosFranquicia(ObjPS, row.DataKey("Codigo"), row.FCTextBox("TxtPrecio").Text.ToDecimal, row.FCTextBox("TxtPrecioMinimo").Text.ToDecimal, DdlPrecioLista.SelectedItem.Text)
+ Else
+ Exit For
+ End If
+ End If
+ Next
+
+ If Not TieneError Then
+ If UsuarioActual.Empresa.Funcionalidad(109) = "1" AndAlso sbProductos.Length > 0 Then
+ MensajeAlert.AppendFormat("Los precios de lista de los productos/servicios se actualizaron correctamente. Descargar Etiquetas", Encripta(String.Format("OP=ETIQUETA&CVEPRECIOLISTA={0}&PRODUCTOS={1}", DdlPrecioLista.SelectedValue.ToEntero, sbProductos.ToString())))
+ ImprimirEtiquetas(sbProductos.ToString())
+ Else
+ MensajeAlert.Append("Los precios de lista de los productos/servicios se actualizaron correctamente.")
+ End If
+
+ Alert(MensajeAlert.ToString())
+ End If
+ Catch ex As Exception
+ TieneError = True
+ GuardaLog(ex.ToString())
+ End Try
+
+ If TieneError Then
+ ObjPS.RollBack()
+ Alert("Ocurrió un error al actualizar precios", TipoMensaje.MsgError)
+ Else
+ ObjPS.Commit()
+ End If
+
+ ObjPS.Dispose()
+ BtnConsultar_Click(Nothing, Nothing)
+ RegistraScript("$('#divAgregar').modal('hide')")
+ TxtImporte.Text = ""
+ TxtPrecio.Text = ""
+ TxtPorcentaje.Text = ""
+ End Sub
+
+#Region "MODAL PRECIOS MINIMOS"
+ Public Sub LnkPrecioMinActual_Click(sender As Object, e As EventArgs)
+
+ Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
+
+ CvePS = GvRow.DataKey("CvePS").ToEntero
+ PS = GvRow.DataKey("PS").ToString
+
+ TxtAplicarPrecio.Text = ""
+
+ CargaDatosModalPreciosMinimos()
+
+ RegistraScript("$('#ModalActualizaPrecios').modal({ backdrop: 'static', keyboard: false}); $('#ChkSeleccionarTodos').find('input[type=checkbox]').prop('checked', false);")
+
+ End Sub
+
+
+ Protected Sub LnkModalGuardarPreciosMinimos_Click(sender As Object, e As EventArgs)
+ ProcesaPreciosSucursales()
+ CargaDatosModalPreciosMinimos()
+ End Sub
+
+ Private Sub CargaDatosModalPreciosMinimos()
+
+
+ Dim ObjPS As New ClsProductosServicios
+ If ObjPS.GetPSSucursales(CvePS, UsuarioActual.CveEmpresa) Then
+ gvSucursal.DataSource = ObjPS.DtResultados
+ End If
+
+ ObjPS.Dispose()
+ gvSucursal.DataBind()
+ LtlModalTitleUpModalTitulo.Text = PS
+ UpModalActualizaPrecios.Update()
+ UpModalTitulo.Update()
+
+ End Sub
+
+ Private Sub ProcesaPreciosSucursales()
+
+ Dim ObjProductosServicios As New ClsProductosServicios()
+
+ For i As Integer = 0 To gvSucursal.Rows.Count - 1
+
+ If gvSucursal.Rows(i).FCCheckBox("chkSucursal").Checked Then
+
+ If gvSucursal.Rows(i).FCHiddenField("hdnEnBD").Value.ToEntero = 1 Then
+ ObjProductosServicios.UpdatePSSucursales(CvePS, -1, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, -1, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal)
+ Else
+ ObjProductosServicios.AddPSSucursales(CvePS, Nothing, gvSucursal.Rows(i).FCTextBox("TxtMinimo").Text.ToDouble, -1, UsuarioActual.CveUsuario, gvSucursal.Rows(i).DataKey("CveSubProyecto").ToEntero, PrecioMinimo:=gvSucursal.Rows(i).FCTextBox("TxtPrecioMinimo").Text.ToDecimal)
+ End If
+
+ End If
+ Next
+
+ ObjProductosServicios.Dispose()
+
+ End Sub
+
+#End Region
+
+#Region "C A R G A R E X C E L "
+ Private Sub BtnDescargarFormato_Click(sender As Object, e As EventArgs) Handles BtnDescargarFormato.Click
+
+ Dim DtExcel As DataTable = (From row As GridViewRow In GVPrecios.Rows.Cast(Of GridViewRow)
+ Where row.RowType = DataControlRowType.DataRow
+ Select New With
+ {
+ .Codigo = row.DataKey("Codigo"),
+ .NumeroParte = row.DataKey("NumeroParte"),
+ .PS = row.DataKey("PS"),
+ .Precio = row.FCTextBox("TxtPrecio").Text.ToDecimal()
+ }).QueryToDataTable(True)
+ If DtExcel.Rows.Count < 1 Then
+ Alert("No hay resultados en la busqueda.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+
+ If DdlPrecioLista.SelectedItem IsNot Nothing Then
+ Dim worksheetName As String = DdlPrecioLista.SelectedItem.Text
+
+ Const invalidCharsRegex As String = "[/\\*'?[\]:]+"
+ Const maxLength As Integer = 31
+ Dim safeName As String = Regex.Replace(worksheetName, invalidCharsRegex, " ").Replace(" ", " ").Trim()
+
+ If String.IsNullOrEmpty(safeName) Then
+ safeName = "Precios" ' cannot be empty
+ ElseIf safeName.Length > maxLength Then
+ safeName = safeName.Substring(0, maxLength)
+ End If
+
+ DtExcel.TableName = safeName
+ Else
+ DtExcel.TableName = "Precios"
+ End If
+
+
+ DtExcel.Columns("Codigo").ColumnName = "Código"
+ DtExcel.Columns("PS").ColumnName = "Producto / Servicio"
+ 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
+ DtExcel.Columns("Número de parte").ColumnName = "Código CPK"
+ End If
+ Else
+ DtExcel.Columns.Remove("Número de parte")
+ End If
+
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As New ExcelFile()
+
+ Dim worksheet As ExcelWorksheet = FileExcel.Worksheets.Add(DtExcel.TableName)
+ worksheet.InsertDataTable(DtExcel, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ worksheet.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ worksheet.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount As Integer = worksheet.CalculateMaxUsedColumns()
+ For i As Integer = 0 To columnCount
+ worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1))
+ Next
+
+ FileExcel.Save(Response, "Precios.xlsx", SaveOptions.XlsxDefault)
+
+ End Sub
+ Private Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
+
+ If TxtExcel.getfiles().Archivos.Count > 0 Then
+ Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
+ Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.path
+ CargarArchivo(Directorio, file.filename)
+ Else
+ Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError)
+ End If
+ End Sub
+ Private Sub CargarArchivo(Ruta As String, FileName As String)
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+ Dim Tipo As String = "EXCEL"
+ Dim dt As DataTable = Nothing
+ Dim ErrorArchivo As Boolean = False
+
+ Try
+ dt = ReadExcelFile(Ruta + FileName, True)
+ Catch ex As Exception
+ ErrorArchivo = True
+ OnError("Ocurrio un error al leer el archivo " & ex.Message, ex)
+ End Try
+ If Not ErrorArchivo AndAlso dt IsNot Nothing Then
+
+ If DdlPrecioListaCarga.SelectedValue.ToEntero() = -1 Then
+ Alert("Debe Seleccionar la lista de precios a cargar. Favor de corregirlo", TipoMensaje.MsgError)
+ Exit Sub
+ End If
+
+ 'LA PRIMERA COLUMNA SIEMRPE ES CODIGO
+ If Not dt.Columns(0).ColumnName = "Código" Then
+ Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
+ Exit Sub
+ End If
+
+ Dim IndiceActualColExcel As Integer = 1
+ Dim StrColPos As String() = {"primera", "segunda", "tecera", "cuarta"}
+
+ 'SI ES EMPRESA DE ACUMULADORES SE AGREGA LA COLUMNA "Código CPK"
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
+ If Not dt.Columns(IndiceActualColExcel).ColumnName = "Código CPK" Then
+ Alert("El nombre de la segunda columna debe ser 'Código CPK'. Favor de corregirlo", TipoMensaje.MsgError)
+ Exit Sub
+ End If
+
+ IndiceActualColExcel += 1
+ End If
+
+ If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then
+ If Not dt.Columns(IndiceActualColExcel).ColumnName = "Número de parte" Then
+ Alert("El nombre de la segunda columna debe ser 'Número de parte'. Favor de corregirlo", TipoMensaje.MsgError)
+ Exit Sub
+ End If
+
+ IndiceActualColExcel += 1
+ End If
+
+ If Not dt.Columns(IndiceActualColExcel).ColumnName = "Producto / Servicio" Then
+ Alert($"El nombre de la {StrColPos(IndiceActualColExcel)} columna debe ser 'Producto / Servicio'. Favor de corregirlo", TipoMensaje.MsgError)
+ Exit Sub
+ End If
+
+ IndiceActualColExcel += 1
+
+ If Not dt.Columns(IndiceActualColExcel).ColumnName = "Precio" Then
+ Alert($"El nombre de la {StrColPos(IndiceActualColExcel)} columna debe ser 'Precio'. Favor de corregirlo", TipoMensaje.MsgError)
+ Exit Sub
+ End If
+
+
+ dt.TableName = "Datos"
+ Dim ProductosNoCargados As New StringBuilder()
+ Dim RowsCargados As Integer = 0
+ Dim RowsNoCargados As Integer = 0
+ Dim ObjPS As New ClsProductosServicios
+ 'ObjPS.IniciaTransacSQL()
+ Try
+ Dim DtPS As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
+ For Each row As DataRow In dt.FiltraParametros("Código <> ''").Rows
+ Dim Correcto As Boolean = False
+ Dim TieneError As Boolean = False
+ Dim CvePS As Integer = DtPS.FiltroPrimeroValor("CvePS", String.Format("Codigo='{0}'", row(0).ToString())).ToEntero
+ Dim CvePrecioLista As Integer = DdlPrecioListaCarga.SelectedValue.ToEntero()
+ Dim PrecioNuevo As Decimal = row("Precio").ToString().ToDecimal()
+ Dim Porcentaje As Decimal = -1
+
+ If CvePS > 0 AndAlso CvePrecioLista > 0 Then
+
+ Correcto = ObjPS.UpdatePSPreciosLista(PrecioNuevo, CvePrecioLista, Porcentaje, CvePS, UsuarioActual.CveUsuario, NowADS(), True)
+ If Correcto Then
+ RowsCargados += 1
+ TieneError = ActualizarPreciosFranquicia(ObjPS, row(0).ToString(), PrecioNuevo, 0, DdlPrecioListaCarga.SelectedItem.Text)
+ End If
+ Else
+ If CvePS > 0 AndAlso CvePrecioLista = -2 Then
+ Correcto = ObjPS.UpdatePSPrecios(PrecioNuevo, CvePrecioLista, Porcentaje, CvePS, UsuarioActual.CveUsuario, NowADS(), True)
+ If Correcto Then
+ RowsCargados += 1
+ End If
+ Else
+ Correcto = False
+ End If
+
+ End If
+ If Not Correcto Then
+ ProductosNoCargados.AppendFormat("{0}-{1},", row(0).ToString(), row("Producto / Servicio").ToString())
+ RowsNoCargados += 1
+ End If
+ Next
+ Catch ex As Exception
+ OnError("Ocurrió un error al cargar los precios.", ex)
+ Finally
+
+ Dim MensajeFinal As New StringBuilder()
+ If RowsNoCargados = 0 AndAlso RowsCargados > 0 Then
+ MensajeFinal.Append("Los precios de los Productos/Servicios se cargaron correctamente.
")
+ End If
+ If RowsCargados > 0 Then
+ MensajeFinal.Append("Se actualizaron " & RowsCargados & " Productos o Servicios correctamente.")
+ End If
+ If RowsNoCargados > 0 Then
+ MensajeFinal.Append("No se pudieron actualizar " & RowsNoCargados & " Productos/Servicios. Los siguientes Productos o Servicios no se pudieron actualizar: " & ProductosNoCargados.ToString())
+ End If
+
+ Alert(MensajeFinal.ToString())
+ ObjPS.Dispose()
+ End Try
+
+
+ End If
+ End Sub
+
+#End Region
+
+ Protected Sub gvSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs)
+ If e.Row.RowType = DataControlRowType.DataRow Then
+ e.Row.FCTextBox("TxtPrecioMinimo").Attributes.Add("onKeyUp", String.Format("FncSeleccionaChk({0});", e.Row.FCCheckBox("chkSucursal").ClientID))
+ End If
+ End Sub
+
+ Private Function ActualizarPreciosFranquicia(ObjPS As ClsProductosServicios, Codigo As String, Precio As Decimal, PrecioMinimo As Decimal, PrecioLista As String, Optional UpdatePrecioMinimo As Boolean = True) As Boolean
+ Dim FranquiciasStr As String = UsuarioActual.Empresa.Funcionalidad(563)
+ Dim StrMsg As New StringBuilder
+ Dim StrMsgError As New StringBuilder
+ If FranquiciasStr <> "" Then
+ Dim Franquicias As String() = FranquiciasStr.Split(","c)
+ Dim Porcentaje As Decimal = If(TxtPorcentaje.Text = "", -1, TxtPorcentaje.Text.ToDecimal)
+
+ For Each Franquicia As String In Franquicias
+ Dim CveFranquicia As Integer = Franquicia.ToEntero
+ Dim CvePS As Integer = GlobalDTPSSimplificado(CveFranquicia, Codigo:=Codigo).FiltroPrimeroValor("CvePS", "").ToEntero
+ Dim CvePrecioLisa As Integer = GlobalDTPrecioListas(CveFranquicia).FiltroPrimeroValor("CvePrecioLista", String.Format("PrecioLista = '{0}'", PrecioLista)).ToEntero
+
+ If CvePS <= 0 Then
+ Dim EmpresaFranquicia As String = GlobalDTEmpresas(CveEmpresa:=CveFranquicia).FiltroPrimeroValor("Empresa")
+ StrMsg.AppendFormat("El producto '{0}' no se encuentra en la Franquicia '{1}' ", PS, EmpresaFranquicia)
+
+ End If
+ 'If CvePrecioLisa <= 0 Then
+ ' Dim EmpresaFranquicia As String = GlobalDTEmpresas(CveEmpresa:=CveFranquicia).FiltroPrimeroValor("Empresa")
+ ' StrMsg.AppendFormat("El precio lista '{0}' no existe en la Franquicia '{1}' ", DdlPrecioLista.SelectedItem.Text, EmpresaFranquicia)
+ 'End If
+ If CvePrecioLisa > 0 AndAlso CvePS > 0 AndAlso Not ObjPS.UpdatePSPreciosLista(Precio, CvePrecioLisa, Porcentaje, CvePS, UsuarioActual.CveUsuario, NowADS(), If(RblTipo.SelectedValue = "Imp", True, False), PrecioMinimo:=If(UpdatePrecioMinimo, PrecioMinimo, 0)) Then
+ StrMsgError.AppendFormat("No se pudo actualizar el producto")
+ End If
+ Next
+
+ End If
+
+ If StrMsgError.ToString = "" Then
+ If StrMsg.ToString <> "" Then
+ Alert(StrMsg.ToString, TipoMensaje.MsgAdvertencia)
+ End If
+ Return False
+ Else
+ Return True
+ End If
+
+ End Function
+ Protected Sub LnkExportarExcel_Click(sender As Object, e As EventArgs)
+ Dim DtExcel As New DataTable("Precios")
+ DtExcel.Columns.Add(New DataColumn("Código", GetType(String)))
+
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'Empresa Acumuladores
+ DtExcel.Columns.Add(New DataColumn("Código CPK", GetType(String)))
+ End If
+
+ If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then 'Empresa Acumuladores
+ DtExcel.Columns.Add(New DataColumn("Número de parte", GetType(String)))
+ End If
+
+ DtExcel.Columns.Add(New DataColumn("Producto/Servicio", GetType(String)))
+ DtExcel.Columns.Add(New DataColumn("Clasificación", GetType(String)))
+ DtExcel.Columns.Add(New DataColumn("Importe", GetType(Decimal)))
+ DtExcel.Columns.Add(New DataColumn("Precio Mínimo", GetType(Decimal)))
+ DtExcel.Columns.Add(New DataColumn("U.M.", GetType(String)))
+ DtExcel.Columns.Add(New DataColumn("Moneda", GetType(String)))
+
+ If UsuarioActual.CveEmpresa = 153 Then 'Empresa servec
+ DtExcel.Columns.Add(New DataColumn("C. Promedio", GetType(Decimal)))
+ End If
+
+ DtExcel.Columns.Add(New DataColumn("E. Mínimo", GetType(Decimal)))
+ DtExcel.Columns.Add(New DataColumn("Importe Anterior", GetType(Decimal)))
+ DtExcel.Columns.Add(New DataColumn("Precio Mínimo Anterior", GetType(Decimal)))
+ DtExcel.Columns.Add(New DataColumn("Fecha Modificación", GetType(DateTime)))
+ DtExcel.Columns.Add(New DataColumn("Usuario Modificó", GetType(String)))
+ DtExcel.Columns.Add(New DataColumn("Porcentaje", GetType(Decimal)))
+ DtExcel.Columns.Add(New DataColumn("Fecha Ingreso", GetType(DateTime)))
+ DtExcel.Columns.Add(New DataColumn("Usuario Ingresó", GetType(String)))
+
+
+ If DtDatosPrecios IsNot Nothing Then
+ For Each Row As DataRow In DtDatosPrecios.Rows
+ Dim NewRow As DataRow = DtExcel.NewRow()
+
+ NewRow("Código") = Row("Codigo")
+
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'Empresa Acumuladores
+ NewRow("Código CPK") = Row("NumeroParte")
+ End If
+
+ NewRow("Producto/Servicio") = Row("PS")
+ NewRow("Clasificación") = Row("Clasificacion")
+ NewRow("Importe") = Row("PrecioLista")
+ NewRow("Precio Mínimo") = Row("PrecioMinimo")
+ NewRow("U.M.") = Row("UnidadMedida")
+ NewRow("Moneda") = Row("Moneda")
+
+ If UsuarioActual.CveEmpresa = 153 Then 'Empresa servec
+ NewRow("C. Promedio") = Row("CostoPromedio")
+ End If
+
+ NewRow("E. Mínimo") = Row("VentaMinima")
+ NewRow("Importe Anterior") = Row("ImporteAnterior")
+ NewRow("Precio Mínimo Anterior") = Row("PrecioMinimoAnterior")
+ NewRow("Fecha Modificación") = Row("FechaModificacion")
+ NewRow("Usuario Modificó") = Row("UsuarioModifico")
+ NewRow("Porcentaje") = Row("Porcentaje")
+ NewRow("Fecha Ingreso") = Row("FechaIng")
+ NewRow("Usuario Ingresó") = Row("Usuario")
+
+ DtExcel.Rows.Add(NewRow)
+ Next
+ End If
+
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As New ExcelFile()
+
+ Dim worksheet As ExcelWorksheet = FileExcel.Worksheets.Add(DtExcel.TableName)
+ worksheet.InsertDataTable(DtExcel, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ worksheet.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ worksheet.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount As Integer = worksheet.CalculateMaxUsedColumns()
+ For i As Integer = 0 To columnCount
+ worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1))
+ Next
+
+ Dim FechaIMes As String = "", FechaFMes As String = "", Titulo As String = "LISTADO DE PRECIOS", ListaPrecios As String = DdlPrecioLista.SelectedItem.Text, Divisor As Integer = 1, AlturaImagen As Double = 100, AnchoImagen As Double = 100, DatoTituloExtra As String = ""
+
+
+ Dim TotalRowHeader As Integer = 8
+ Dim TotalRowFooter As Integer = 2
+
+
+ worksheet.Rows.InsertEmpty(0, TotalRowHeader)
+ Dim celdasConTexto As CellRange = worksheet.GetUsedCellRange(True)
+ celdasConTexto.Style.Font.Name = "Calibri Light"
+
+ Dim RangoNombreEmpresa As CellRange = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
+ RangoNombreEmpresa.Merged = True
+ RangoNombreEmpresa.Value = UsuarioActual.Empresa.Empresa
+ RangoNombreEmpresa.Style.Font.Size = 20 * 20
+ RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
+ RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+
+
+ Dim RangoTitulo As CellRange = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
+ RangoTitulo.Merged = True
+ RangoTitulo.Value = Titulo
+ RangoTitulo.Style.Font.Size = 17 * 20
+ RangoTitulo.Style.Font.Name = "Calibri Light"
+ RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+
+
+ 'If FechaIMes.Trim.Length > 0 And FechaFMes.Trim.Length > 0 Then
+ ' Dim RangoFechas = worksheet.Cells.GetSubrangeAbsolute(4, celdasConTexto.FirstColumnIndex, 4, celdasConTexto.LastColumnIndex)
+ ' RangoFechas.Merged = True
+ ' RangoFechas.Value = $"Fechas: {FechaIMes} a {FechaFMes}"
+ ' RangoFechas.Style.Font.Size = 15 * 20
+ ' RangoFechas.Style.Font.Name = "Calibri Light"
+ ' RangoFechas.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ ' RangoFechas.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+ 'End If
+
+
+ If ListaPrecios.Length > 0 Then
+ Dim RangoSubProyecto As CellRange = worksheet.Cells.GetSubrangeAbsolute(5, celdasConTexto.FirstColumnIndex, 5, celdasConTexto.LastColumnIndex)
+ RangoSubProyecto.Merged = True
+ RangoSubProyecto.Value = $"Lista de precio: {ListaPrecios}"
+ RangoSubProyecto.Style.Font.Size = 14 * 20
+ RangoSubProyecto.Style.Font.Name = "Calibri Light"
+ RangoSubProyecto.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ RangoSubProyecto.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+ End If
+
+ For i As Integer = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
+
+ worksheet.Rows(8).Cells(i).Style.Font.Size = 12 * 20
+ worksheet.Rows(8).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
+ worksheet.Rows(8).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
+
+ worksheet.Rows(8).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
+ worksheet.Rows(8).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
+ If i > 0 Then
+ Try
+ worksheet.Columns(i).AutoFit(1)
+ Catch ex As Exception
+ End Try
+ End If
+ Next
+ Dim IndexEndTable As Integer = DtExcel.Rows.Count + TotalRowHeader + TotalRowFooter
+
+ worksheet.Rows(IndexEndTable).Cells(0).Value = "Usuario Imprimió"
+ worksheet.Rows(IndexEndTable + 1).Cells(0).Value = UsuarioActual.Nombre
+ worksheet.Rows(IndexEndTable).Cells(2).Value = "Fecha Impresión"
+ worksheet.Rows(IndexEndTable + 1).Cells(2).Value = NowADS().ToString("dd/MM/yyyy")
+
+ Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
+
+ If Imagen.Exists Then
+ Dim Ruta As String = String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)
+ Using sr As New StreamReader(Ruta)
+ Dim ms As New MemoryStream()
+ sr.BaseStream.CopyTo(ms)
+ worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
+ End Using
+ End If
+
+ For I As Integer = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
+
+ If I > 0 Then
+
+ If Divisor = 1 Then
+ worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00"
+ Else
+ worksheet.Columns(I + 1).Style.NumberFormat = "#,##"
+ End If
+
+ Try
+ worksheet.Columns(I).AutoFit(1)
+ Catch ex As Exception
+ End Try
+
+ End If
+ Next
+
+ FileExcel.Save(Response, "Precios.xlsx", SaveOptions.XlsxDefault)
+
+ End Sub
+ Protected Sub GvMultiple_RowCreated(sender As Object, e As GridViewRowEventArgs)
+ 'QUITAR COLUMNA "CvePS"
+ 'e.Row.Cells(1).Visible = False
+
+ 'If e.Row.RowType = DataControlRowType.Header Then
+ ' For colIndex = 2 To e.Row.Cells.Count - 1
+
+ ' Dim indiceColumna As Integer = (colIndex)
+ ' Dim LtlId = "LtlLista" + (colIndex - 1).ToString()
+ ' Dim Dr = DtPreciosMultiple.Rows(e.Row.RowIndex)
+ ' If Dr IsNot Nothing Then
+ ' 'VERIFICA QUE EL INDICE DE LA COLUMNA DEL DT NO SEA MAYOR A LA DEL GRIDVIEW
+ ' If indiceColumna <= DtPreciosMultiple.Columns.Count - 1 Then
+ ' Dim cell = e.Row.Cells(colIndex)
+
+ ' Dim text = cell.Text
+ ' Dim splitValues = text.Split("|"c)
+
+ ' If splitValues.Length > 1 Then
+ ' Dim CvePrecioLista = splitValues(0)
+ ' Dim PrecioLista = splitValues(1)
+ ' e.Row.FCLiteral(LtlId).Text = PrecioLista
+ ' cell.Attributes.Add("cvepreciolista", CvePrecioLista)
+ ' End If
+
+ ' End If
+
+ ' End If
+
+ ' Next
+ 'End If
+ End Sub
+ Protected Sub GvMultiple_RowDataBound(sender As Object, e As GridViewRowEventArgs)
+ If e.Row.RowType = DataControlRowType.Header Then
+ For colIndex As Integer = 2 To e.Row.Cells.Count - 1
+
+ Dim indiceColumna As Integer = (colIndex)
+ Dim LtlId As String = "LtlLista_" + (colIndex - 1).ToString()
+
+ If indiceColumna <= DtPreciosMultiple.Columns.Count - 1 Then
+
+ Dim text As String = DtPreciosMultiple.Columns(indiceColumna).ColumnName
+ Dim splitValues As String() = text.Split("|"c)
+
+ If splitValues.Length > 1 Then
+ Dim CvePrecioLista As String = splitValues(0)
+ Dim PrecioLista As String = splitValues(1)
+ e.Row.FCLabel(LtlId).Text = PrecioLista
+ e.Row.FCLabel(LtlId).Attributes.Add("cvepreciolista", CvePrecioLista)
+ End If
+
+ End If
+
+ Next
+ End If
+
+ If e.Row.RowType = DataControlRowType.DataRow Then
+ For colIndex As Integer = 2 To e.Row.Cells.Count - 1
+
+ Dim indiceColumna As Integer = (colIndex)
+ Dim TxtId As String = "TxtPrecio_" + (colIndex - 1).ToString()
+
+
+ Dim Dr As DataRow = DtPreciosMultiple.Rows(e.Row.RowIndex)
+ If Dr IsNot Nothing Then
+
+ 'VERIFICA QUE EL INDICE DE LA COLUMNA DEL DT NO SEA MAYOR A LA DEL GRIDVIEW
+ If indiceColumna <= DtPreciosMultiple.Columns.Count - 1 Then
+ Dim Valor As Decimal = DtPreciosMultiple.Rows(e.Row.RowIndex)(indiceColumna).ToString().ToDecimal()
+
+ e.Row.FCTextBox(TxtId).Text = Valor.FormatoNumero(2)
+ e.Row.FCTextBox(TxtId).Enabled = PermisoEdicionLista
+ End If
+
+ End If
+ Next
+ End If
+ End Sub
+ Protected Sub LnkGuardarMultiple_Click(sender As Object, e As EventArgs)
+ Dim TieneError As Boolean = False
+
+ Dim DtPS As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
+
+ Dim ObjPS As New ClsProductosServicios
+ ObjPS.IniciaTransacSQL()
+ Try
+ For Each GvRow As GridViewRow In GvMultiple.Rows
+
+ If GvRow.FCCheckBox("chkPS").Checked Then
+ For colIndex As Integer = 2 To GvRow.Cells.Count - 1
+
+ Dim indiceColumna As Integer = (colIndex)
+
+ Dim LtlId As String = "LtlLista_" + (colIndex - 1).ToString()
+ Dim TxtId As String = "TxtPrecio_" + (colIndex - 1).ToString()
+
+ If indiceColumna <= DtPreciosMultiple.Columns.Count - 1 Then
+
+ Dim CvePrecioLista As Integer = GvMultiple.HeaderRow.FCLabel(LtlId).Attributes().Item("cvepreciolista").ToEntero()
+ Dim CvePS As Integer = DtPreciosMultiple.Rows(GvRow.RowIndex)("CvePS").ToString().ToEntero()
+
+ Dim Precio As Decimal = GvRow.FCTextBox(TxtId).Text.ToDecimal()
+
+ TieneError = Not ObjPS.UpdatePSPreciosLista(Precio, CvePrecioLista, 0, CvePS, UsuarioActual.CveUsuario, NowADS(), True)
+
+ If Not TieneError Then
+
+ Dim text As String = DtPreciosMultiple.Columns(indiceColumna).ColumnName
+ Dim splitValues As String() = text.Split("|"c)
+
+ If splitValues.Length > 1 Then
+
+ Dim PrecioLista As String = splitValues(1)
+
+ Dim DrPS = DtPS.FiltroPrimero($"CvePS = {CvePS}")
+ If DrPS IsNot Nothing Then
+ TieneError = ActualizarPreciosFranquicia(ObjPS, DrPS("Codigo").ToString(), Precio, 0, PrecioLista, UpdatePrecioMinimo:=False)
+ Else
+ TieneError = True
+ End If
+
+ End If
+
+ Else
+ Exit For
+ End If
+
+ If TieneError Then
+ Exit For
+ End If
+ End If
+
+ Next
+ End If
+
+ Next
+ Catch ex As Exception
+ OnError("Ocurrió un error al actualizar precios", ex)
+ TieneError = True
+ End Try
+
+
+ If Not TieneError Then
+ Alert("Los Precios de lista de los Productos/Servicios se actualizaron correctamente")
+ Else
+ Alert("Ocurrió un error al actualizar precios", TipoMensaje.MsgError)
+ End If
+
+ If TieneError Then
+ ObjPS.RollBack()
+ Else
+ ObjPS.Commit()
+ End If
+
+ ObjPS.Dispose()
+
+ If Not TieneError Then
+ BtnConsultar_Click(Nothing, Nothing)
+ End If
+
+ End Sub
+ Protected Sub DdlModalidad_SelectedIndexChanged(sender As Object, e As EventArgs)
+ DivPrecioLista.Visible = DdlModalidad.SelectedValue = "1"
+ DivMultiplePrecioLista.Visible = DdlModalidad.SelectedValue = "2"
+
+ dvDatos.Visible = DdlModalidad.SelectedValue = "1"
+ DivActualizarPrecio.Visible = DdlModalidad.SelectedValue = "1"
+ If UsuarioActual.TienePermisoProceso(282) Then
+ DivActualizarPrecio.Visible = False
+ End If
+ dvMultiple.Visible = DdlModalidad.SelectedValue = "2"
+
+ UPPrecioLista.Update()
+ UpEncabezado.Update()
+ UpDatos.Update()
+ End Sub
+
+ Protected Sub ImprimirEtiquetas(StrClavesPS As String)
+ Dim CvePrecioListaPredeterminada = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "Predeterminada = True").ToEntero()
+ Dim DtPrecios As DataTable = Nothing
+
+ Dim ObjVentas As New ClsProductosServicios
+ If ObjVentas.GetPSPrecios(CvePrecioListaPredeterminada, StrClavesPS) AndAlso ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
+ DtPrecios = ObjVentas.DtResultados.Copy()
+ End If
+ ObjVentas.Dispose()
+
+ If DtPrecios IsNot Nothing Then
+
+ DtPrecios.Columns.Add(New DataColumn("CBBase64", GetType(String)))
+
+ For Each Row As DataRow In DtPrecios.Rows
+ Row("CBBase64") = Convert.ToBase64String(GeneraCodigoQR(Row("CodigoBarras").ToString(), 40, 150, 0, "CODE_39", True))
+ Next
+
+ Dim DirectorioArchivo As String = "Empresas/Grales/Formatos/Etiqueta.mrt"
+ If System.IO.File.Exists(UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt") Then
+ DirectorioArchivo = UsuarioActual.Empresa.Ruta + "Formatos/Etiqueta.mrt"
+ End If
+ Dim params As New List(Of ReportParameter)
+
+ Dim lrds As New List(Of ReportDataSource)
+ Dim rds As New ReportDataSource
+ rds.Name = "Datos"
+ rds.Value = DtPrecios
+ lrds.Add(rds)
+
+ Dim bytesPDF = StreamBytesStimul("Facturas", DirectorioArchivo, lrds, params, NombreArchivo:="Precios", Formato:="PDF")
+ Dim pdf64 = Convert.ToBase64String(bytesPDF)
+
+ RegistraScript($"impresionBase64('{pdf64}');", "Imprimir")
+ 'ImprimirPDFStimul(DirectorioArchivo, DtPrecios, params, "Precios")
+ End If
+
+ End Sub
+
+ Private Function GeneraCodigoQR(CodigoBarras As String, Alto As Integer, Largo As Integer, Margen As Integer, Formato As String, Optional PureBacode As Boolean = False) As Byte()
+
+ Dim barcodeWriter As New BarcodeWriter
+ Dim opciones As New ZXing.Common.EncodingOptions
+ Dim FormatoBar As New BarcodeFormat
+ 'Dim Respuesta As Byte()
+
+ opciones.Height = Alto
+ opciones.Width = Largo
+ opciones.Margin = Margen
+ opciones.PureBarcode = PureBacode
+ barcodeWriter.Options = opciones
+
+ Select Case Formato
+ Case "All_1D"
+ barcodeWriter.Format = BarcodeFormat.All_1D
+ Exit Select
+ Case "AZTEC"
+ barcodeWriter.Format = BarcodeFormat.AZTEC
+ Exit Select
+ Case "CODABAR"
+ barcodeWriter.Format = BarcodeFormat.CODABAR
+ Exit Select
+ Case "CODE_128"
+ barcodeWriter.Format = BarcodeFormat.CODE_128
+ Exit Select
+ Case "CODE_39"
+ barcodeWriter.Format = BarcodeFormat.CODE_39
+ Exit Select
+ Case "CODE_93"
+ barcodeWriter.Format = BarcodeFormat.CODE_93
+ Exit Select
+ Case "DATA_MATRIX"
+ barcodeWriter.Format = BarcodeFormat.DATA_MATRIX
+ Exit Select
+ Case "EAN_13"
+ barcodeWriter.Format = BarcodeFormat.EAN_13
+ Exit Select
+ Case "EAN_8"
+ barcodeWriter.Format = BarcodeFormat.EAN_8
+ Exit Select
+ Case "IMB"
+ barcodeWriter.Format = BarcodeFormat.IMB
+ Exit Select
+ Case "ITF"
+ barcodeWriter.Format = BarcodeFormat.ITF
+ Exit Select
+ Case "MAXICODE"
+ barcodeWriter.Format = BarcodeFormat.MAXICODE
+ Exit Select
+ Case "MSI"
+ barcodeWriter.Format = BarcodeFormat.MSI
+ Exit Select
+ Case "PDF_417"
+ barcodeWriter.Format = BarcodeFormat.PDF_417
+ Exit Select
+ Case "PLESSEY"
+ barcodeWriter.Format = BarcodeFormat.PLESSEY
+ Exit Select
+ Case "QR_CODE"
+ barcodeWriter.Format = BarcodeFormat.QR_CODE
+ Exit Select
+ Case "RSS_14"
+ barcodeWriter.Format = BarcodeFormat.RSS_14
+ Exit Select
+ Case "RSS_EXPANDED"
+ barcodeWriter.Format = BarcodeFormat.RSS_EXPANDED
+ Exit Select
+ Case "UPC_A"
+ barcodeWriter.Format = BarcodeFormat.UPC_A
+ Exit Select
+ Case "UPC_E"
+ barcodeWriter.Format = BarcodeFormat.UPC_E
+ Exit Select
+ Case "UPC_EAN_EXTENSION"
+ barcodeWriter.Format = BarcodeFormat.UPC_EAN_EXTENSION
+ Exit Select
+
+ End Select
+
+ Dim imgCod As Drawing.Bitmap = barcodeWriter.Write(CodigoBarras)
+ Dim memoriStream As New System.IO.MemoryStream
+ imgCod.Save(memoriStream, Drawing.Imaging.ImageFormat.Bmp)
+
+ 'Respuesta = Convert.ToBase64String(memoriStream.ToArray())
+
+ Return memoriStream.ToArray()
+
+ End Function
+
+
+ Protected Sub GVPrecios_RowDataBound(sender As Object, e As GridViewRowEventArgs)
+
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ e.Row.FCTextBox("TxtPrecio").Enabled = PermisoEdicionLista
+ e.Row.FCTextBox("TxtPrecioMinimo").Enabled = PermisoEdicionLista
+
+ End If
+
+ End Sub
+End Class
\ No newline at end of file