Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Imports ZXing Partial Class PopUpBuscarPs Inherits ClsPaginas Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load CType(Me.Master, BaseMasterPage).EsPopup = True CType(Me.Master, BaseMasterPage).PopupWidth = 800 If Not Page.IsPostBack Then ViewState("Orden") = "" CargaClasificaciones() CargarCompuestos() If UsuarioActual.Empresa.Funcionalidad(132) = "1" Then tdBarras1.Visible = True tdBarras2.Visible = True TxtCodigoBarras.Focus() End If End If End Sub #Region " INICIALIZA VALORES " Private Sub CargaClasificaciones() Ddlclasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa) Ddlclasificacion.DataBind() Ddlclasificacion.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargarCompuestos() If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then TdCompuesto1.Visible = True TdCompuesto2.Visible = True Dim PS As New ClsProductosServicios PS.GetCompuestosActivos(UsuarioActual.CveEmpresa) DdlCompuesto.DataSource = PS.DtResultados PS.Dispose() DdlCompuesto.DataBind() DdlCompuesto.Items.Insert(0, New ListItem("Todos", "-1")) End If DdlCompuesto.Items.Insert(0, New ListItem("Todos", "-1")) End Sub #End Region #Region " CARGA DATOS " Protected Sub BtnFiltrar_Click(sender As Object, e As EventArgs) CargaDatos() UPDatos.Update() End Sub Protected Sub lnkBuscar_Click(sender As Object, e As EventArgs) Handles lnkBuscar.Click CargaDatos() UPDatos.Update() End Sub Public Sub CargaDatos() Dim Codigo As String = "" Dim Nombre As String = "" Dim CodigoBarras As String = "" If TxtCodigo.Text = "" Then Codigo = "-1" Else Codigo = TxtCodigo.Text.ToUpper.Trim If TxtCodigoBarras.Text.Trim = "" Then CodigoBarras = "-1" Else CodigoBarras = TxtCodigoBarras.Text.Trim If TxtNombre.Text = "" Then Nombre = "-1" Else Nombre = TxtNombre.Text.ToUpper If ValidarUnFiltroSeleccionado() Then Dim ObjPS As New ClsProductosServicios If ObjPS.GetPS(-1, Ddlclasificacion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Codigo:=Codigo, CodigoBarras:=CodigoBarras, PS:=Nombre, pEstado:=DdlEstado.SelectedValue.ToEntero, CveTipoPS:=DdlCveTipoPS.SelectedValue.ToEntero, pAplicaParaVenta:=DdlAplicaVenta.SelectedValue.ToEntero, CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, TopSelect:=100) Then GvDatos.DataSource = ObjPS.DtResultados dvbusqueda.Visible = True Else GvDatos.DataSource = Nothing dvbusqueda.Visible = False End If ObjPS.Dispose() GvDatos.DataBind() GvDatos.UseAccessibleHeader = True If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then GvDatos.Columns(4).Visible = True End If Else Alert("Asigne un valor a cualquiera de los filtros", TipoMensaje.MsgAdvertencia) End If End Sub #End Region #Region " GV DATOS " Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Try e.Row.FCLiteral("LnkPs").Text = String.Format("
{0}{1}
", "", e.Row.DBCampo("Ps")) If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LnkGenerarEtiqueta")) End If Catch ex As Exception Dim exexex As String = ex.Message End Try End If End Sub #End Region Private Function ValidarUnFiltroSeleccionado() As Boolean If TxtCodigo.Text.Trim <> String.Empty Then Return True If TxtCodigoBarras.Text.Trim <> String.Empty Then Return True If TxtNombre.Text.Trim <> String.Empty Then Return True If DdlCveTipoPS.SelectedValue.ToEntero > 0 Then Return True If DdlEstado.SelectedValue.ToEntero > 0 Then Return True If DdlAplicaVenta.SelectedValue.ToEntero > 0 Then Return True If Ddlclasificacion.SelectedValue.ToEntero > 0 Then Return True If DdlCompuesto.SelectedValue.ToEntero > 0 Then Return True Return False End Function Protected Sub LnkGenerarEtiqueta_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim CvePrecioListaPredeterminada = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePrecioLista", "Predeterminada = True").ToEntero() Dim DtPrecios As DataTable = Nothing Dim ObjVentas As New ClsProductosServicios If ObjVentas.GetPSPrecios(CvePrecioListaPredeterminada, GvRow.DataKey("CvePs").ToString()) 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) 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 End Class