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 If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then e.Row.FCLiteral("LnkPs").Text = String.Format("
{0}{1}
", "", e.Row.DBCampo("Ps")) ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LnkGenerarEtiqueta")) Else e.Row.FCLiteral("LnkPs").Text = String.Format("
{0}{1}
", "", e.Row.DBCampo("Ps")) 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) 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") 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