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