135 lines
5.1 KiB
Plaintext
135 lines
5.1 KiB
Plaintext
<%@ WebHandler Language="VB" Class="E141" %>
|
|
|
|
Imports System
|
|
Imports System.Web
|
|
Imports System.Data
|
|
Imports System.Net.Http
|
|
Imports Newtonsoft.Json
|
|
Imports Newtonsoft.Json.Linq
|
|
Imports Extensiones
|
|
Imports System.IO
|
|
|
|
Public Class E141 : Implements IHttpHandler
|
|
|
|
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
|
|
Get
|
|
Return False
|
|
End Get
|
|
End Property
|
|
|
|
Private ReadOnly Property CveEmpresa As Integer = 141
|
|
|
|
Public ReadOnly Property EsProduccion As Boolean
|
|
Get
|
|
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then
|
|
Return False
|
|
Else
|
|
Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1")
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
|
|
Dim retorno As String = "no se encontro la variable"
|
|
Try
|
|
Dim Params = If(context.Request("P") = Nothing, "", context.Request("P").ToString())
|
|
|
|
If Not String.IsNullOrEmpty(Params) Then
|
|
Dim UrlParametros As Hashtable = Parametros(Decripta(Params))
|
|
|
|
Dim File As String = UrlParametros("FILE").ToString()
|
|
If Not String.IsNullOrEmpty(File) Then
|
|
ImprimirbytesPDF(context, DescargarFactura(File), File)
|
|
End If
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
retorno = ex.ToString()
|
|
ex.GuardaLog(ex.ToString())
|
|
context.Response.Write(retorno)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
|
|
'Private Function DescargarFactura(CveVenta As Integer) As Byte()
|
|
' Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?P={1}", ClsPaginas.UrlSitio, Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=0", CveVenta))))
|
|
' Dim File As Byte() = Nothing
|
|
' Try
|
|
' Using httpClient = New HttpClient()
|
|
' httpClient.Timeout = New TimeSpan(0, 15, 0)
|
|
' Using request = New HttpRequestMessage(HttpMethod.Get, Url)
|
|
' request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks)))
|
|
' Dim response = httpClient.SendAsync(request).Result
|
|
' If response.StatusCode = Net.HttpStatusCode.OK Then
|
|
' File = response.Content.ReadAsByteArrayAsync().Result
|
|
' End If
|
|
' End Using
|
|
' End Using
|
|
' Catch ex As Exception
|
|
' File = Nothing
|
|
' OnError("Ocurrió un error al descargar la factura", ex)
|
|
' End Try
|
|
|
|
' Return File
|
|
'End Function
|
|
|
|
Private Function DescargarFactura(FilePDF As String) As Byte()
|
|
Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?TipoDocto=Ing&File={1}&TipoArchivo=PDF", "http://localhost/", FilePDF))
|
|
Dim File As Byte() = Nothing
|
|
Try
|
|
Using httpClient = New HttpClient()
|
|
httpClient.Timeout = New TimeSpan(0, 1, 0)
|
|
Using request = New HttpRequestMessage(HttpMethod.Get, Url)
|
|
request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks)))
|
|
Dim response = httpClient.SendAsync(request).Result
|
|
If response.StatusCode = Net.HttpStatusCode.OK Then
|
|
File = response.Content.ReadAsByteArrayAsync().Result
|
|
End If
|
|
End Using
|
|
End Using
|
|
Catch ex As Exception
|
|
File = Nothing
|
|
OnError("Ocurrió un error al descargar la factura", ex)
|
|
End Try
|
|
|
|
Return File
|
|
End Function
|
|
|
|
Public Sub ImprimirbytesPDF(ByVal context As HttpContext, bytes As Byte(), NombreArchivo As String)
|
|
'limpio ReportViwer
|
|
Dim mimeType As String = Nothing
|
|
Dim extension As String = Nothing
|
|
|
|
Try
|
|
|
|
bytes = bytes
|
|
context.Response.Buffer = True
|
|
context.Response.Clear()
|
|
context.Response.ContentType = mimeType
|
|
context.Response.AddHeader("content-disposition", String.Format("attachment; filename={0}", NombreArchivo))
|
|
context.Response.BinaryWrite(bytes) ' create the file
|
|
context.Response.Flush() ' send it to the client to download
|
|
context.Response.SuppressContent = True
|
|
context.ApplicationInstance.CompleteRequest()
|
|
context.Response.End()
|
|
|
|
Catch ex As Exception
|
|
End Try
|
|
End Sub
|
|
|
|
Private Function Parametros(Cadena As String) As Hashtable
|
|
Dim P1() As String = Cadena.Split("&"c)
|
|
Dim Tmp As String
|
|
Dim P2() As String
|
|
|
|
Dim URLParametros As New Hashtable
|
|
|
|
For Each Tmp In P1
|
|
P2 = Tmp.Replace("%26%", "&").Split("="c)
|
|
URLParametros.Add(P2(0).ToString.ToUpper, P2(1))
|
|
Next
|
|
Return URLParametros
|
|
End Function
|
|
|
|
End Class |