257 lines
10 KiB
VB.net
257 lines
10 KiB
VB.net
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("<div style='width:100%;'>{0}{1}</a></div>", "<a href='javascript:Ir(""" & e.Row.DBCampo("CvePs") & """);'>", e.Row.DBCampo("Ps"))
|
|
ScriptManager.GetCurrent(Me).RegisterPostBackControl(e.Row.FCLinkButton("LnkGenerarEtiqueta"))
|
|
Else
|
|
e.Row.FCLiteral("LnkPs").Text = String.Format("<div class='truncate' style='width:200px;'>{0}{1}</a></div>", "<a href='javascript:Ir(""" & e.Row.DBCampo("CvePs") & """);'>", 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
|