diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 6bc7a4144..599678e03 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -6,6 +6,8 @@ Imports System.Data Imports Microsoft.Reporting.WebForms Imports System.Xml Imports System.IO +Imports iTextSharp.text +Imports iTextSharp.text.pdf Imports Stimulsoft.Report Imports Stimulsoft.Report.Components @@ -283,6 +285,12 @@ Partial Class PopUpVerFactura End If End If + If UrlParametros("OP").ToString = "Etiqueta" Then + If UrlParametros("CVEMOVIMIENTO") IsNot Nothing AndAlso UrlParametros("CVEMOVIMIENTO").ToString.ToEntero > 0 Then + ImprimirEtiqueta(UrlParametros("CVEMOVIMIENTO").ToString.ToEntero, UrlParametros("MODALIDAD").ToString) + End If + End If + 'IMPRIME OC If UrlParametros("OP").ToString = "OC" Then If UrlParametros("CVEOC") IsNot Nothing AndAlso UrlParametros("CVEOC").ToString.ToEntero > 0 Then @@ -4320,7 +4328,89 @@ Partial Class PopUpVerFactura ImprimirPDF($"Empresas/{UsuarioActual.CveEmpresa}/Formatos/EntregasPorRealizar.rdlc", DtPaqueteriasGuias, RepParams, "Entregas por realizar", "PDF", RDSName:="DsInventarios") End If - End Sub + End Sub #End Region - + +#Region "OP = Etiqueta - Etiquetas de recepcion" + Private Sub ImprimirEtiqueta(CveMovimiento As Integer, Modalidad As String) + + Dim ObjInventarios As New ClsInventarios + + Dim All As Byte() + Using ms As New MemoryStream + Using d As New Document + Using Copy As New PdfCopy(d, ms) + d.Open() + If ObjInventarios.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then + If ObjInventarios.DtResultados IsNot Nothing Then + If Modalidad = "Individual" Then + For Each DetalleRow As DataRow In ObjInventarios.DtResultados.Rows + Dim CvePS As Integer = DetalleRow.Item("CvePS").ToString.ToEntero + Dim Lote As String = DetalleRow.Item("Lote").ToString + Dim FechaCaducidad As String = DetalleRow.Item("FechaCaducidad").ToString + Dim PS As String = String.Format("{0} - {1}", DetalleRow.Item("Codigo").ToString, DetalleRow.Item("PS").ToString) + + Dim reporteByte As Byte() = GenerarEtiqueta(CvePS, Lote, FechaCaducidad, PS) + + Dim reader As New PdfReader(reporteByte) + Dim Paginas As Integer = reader.NumberOfPages + Dim Contador As Integer = 0 + While Contador < Paginas + Contador += 1 + Copy.AddPage(Copy.GetImportedPage(reader, Contador)) + End While + Next + Else + For Each DetalleRow As DataRow In ObjInventarios.DtResultados.Rows + Dim CvePS As Integer = DetalleRow.Item("CvePS").ToString.ToEntero + Dim Lote As String = DetalleRow.Item("Lote").ToString + Dim FechaCaducidad As String = DetalleRow.Item("FechaCaducidad").ToString + Dim PS As String = String.Format("{0} - {1}", DetalleRow.Item("Codigo").ToString, DetalleRow.Item("PS").ToString) + Dim Cant As Integer = DetalleRow.Item("Cantidad").ToString.ToEntero - 1 + + For contador As Integer = 0 To Cant + Dim reporteByte As Byte() = GenerarEtiqueta(CvePS, Lote, FechaCaducidad, PS) + + Dim reader As New PdfReader(reporteByte) + Dim Paginas As Integer = reader.NumberOfPages + Dim Cont As Integer = 0 + While Cont < Paginas + Cont += 1 + Copy.AddPage(Copy.GetImportedPage(reader, Cont)) + End While + Next + Next + End If + End If + End If + d.Close() + + End Using + End Using + All = ms.ToArray() + End Using + ImprimirbytesPDF(All, "Etiquetas") + + + If Modalidad = "Individual" Then + Else + + End If + ObjInventarios.Dispose() + End Sub + + Private Function GenerarEtiqueta(CvePS As Integer, Lote As String, FechaCaducidad As String, PS As String) As Byte() + Dim QrDescarga As String = "" + Dim Cfdi As New RVCFDI33.GeneraCFDI() + Dim b As Byte() = Cfdi.ConvertirQrCode(String.Format("?CvePS={0}&Lote={1}&Fecha={2}", CvePS, Lote, FechaCaducidad)) + QrDescarga = Convert.ToBase64String(b) + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("QR", QrDescarga)) + params.Add(New ReportParameter("PS", PS)) + params.Add(New ReportParameter("Lote", Lote)) + params.Add(New ReportParameter("FechaCad", FechaCaducidad)) + Return StreamPDF("Empresas/Grales/Formatos/EtiquetaDeRecepcion.rdlc", New DataTable, params) + End Function +#End Region + End Class diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index 774880b5a..18eac4946 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -3353,6 +3353,8 @@ Partial Class Inventarios_RecepcionAlmacen If CveMovimiento > 0 AndAlso CveMovimientoSalidaTraspaso <= 0 Then Msg.AppendFormat("Movimiento Registrado: Folio: {0}", link) Msg.AppendFormat("
Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento))) + Msg.AppendFormat("
Imprimir Etiqueta Individual ", Encripta(String.Format("OP=Etiqueta&CveMovimiento={0}&Modalidad={1}", CveMovimiento, "Individual"))) + Msg.AppendFormat("
Imprimir Etiqueta Por Caja ", Encripta(String.Format("OP=Etiqueta&CveMovimiento={0}&Modalidad={1}", CveMovimiento, "Caja"))) 'SI GENERO UN TRASPASO AL ALMACEN DE DEVOLUCION ElseIf CveMovimiento > 0 AndAlso CveMovimientoSalidaTraspaso > 0 Then Msg.AppendFormat("Movimiento de Salida: Folio: {0}", String.Format("{1}", CveMovimientoSalidaTraspaso, FolioSalidaTraspaso))