408 lines
13 KiB
VB.net
408 lines
13 KiB
VB.net
Option Strict On
|
|
|
|
Imports System.IO
|
|
Imports System.Data
|
|
Imports Extensiones
|
|
|
|
Partial Class Contabilidad_DescargaRespaldos
|
|
Inherits ClsPaginas
|
|
|
|
Protected rutaCon As String = ""
|
|
Protected rutaRes As String = ""
|
|
|
|
Private Sub Contabilidad_DescargaRespaldos_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
|
|
|
|
If Not Page.IsPostBack Then
|
|
|
|
Dim empresa As Empresa = getEmpresaBDContPAQi()
|
|
Dim pilaUrl As New List(Of String)
|
|
|
|
ViewState("URLS") = pilaUrl
|
|
ViewState("URLR") = "/"
|
|
ViewState("FEMPRESA") = empresa.BDContPAQi
|
|
ViewState("URLACTUAL") = ""
|
|
|
|
Else
|
|
|
|
End If
|
|
|
|
Try
|
|
'addCaragaLinksInicio()
|
|
loadEvent()
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub directorioDefault()
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub loadEvent()
|
|
|
|
Dim lista As List(Of String) = DirectCast(ViewState("URLS"), List(Of String))
|
|
|
|
If getUrl() = "" Then
|
|
addCargaLinksInicio()
|
|
Else
|
|
cargarFolderActual()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub addCargaLinksInicio()
|
|
|
|
Dim empresa As Empresa = getEmpresaBDContPAQi()
|
|
Dim BDContPAQi As String = empresa.BDContPAQi
|
|
|
|
lblEmpresa.Text = "Empresa: " & empresa.Empresa
|
|
|
|
Dim listaFile As New List(Of String)
|
|
Dim listaDir As New List(Of String)
|
|
|
|
Dim listaNombres As New List(Of String)
|
|
|
|
Dim GB As Integer = 1073741824
|
|
Dim MB As Integer = 1048576
|
|
Dim KB As Integer = 1024
|
|
Dim resultado As Double = 0.0
|
|
|
|
listaFile.Clear()
|
|
listaDir.Clear()
|
|
tdBodyDescargas.Controls.Clear()
|
|
|
|
If (BDContPAQi <> "") Then
|
|
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<tr>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:left!important'>CONTPAQI</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td></td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td></td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'>Carpeta</td>"))
|
|
Dim lnkConpaq As New ImageButton
|
|
|
|
lnkConpaq.ID = "lnkContPaq"
|
|
lnkConpaq.ImageUrl = "~/Imagenes/folder.png"
|
|
lnkConpaq.PostBackUrl = "#"
|
|
|
|
lnkConpaq.Attributes.Add("data-toggle", "tooltip")
|
|
lnkConpaq.Attributes.Add("data-placement", "right")
|
|
lnkConpaq.Attributes.Add("title", "Acceder")
|
|
|
|
AddHandler lnkConpaq.Click, AddressOf Me.lnkFolderCompaqt
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center'>"))
|
|
tdBodyDescargas.Controls.Add(lnkConpaq)
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</tr>"))
|
|
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<tr>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:left!important'>RESPALDOS</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td></td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td></td>"))
|
|
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'>Carpeta</td>"))
|
|
Dim lnkRes As New ImageButton
|
|
|
|
lnkRes.ID = "lnkRes"
|
|
lnkRes.ImageUrl = "~/Imagenes/folder.png"
|
|
lnkRes.PostBackUrl = "#"
|
|
|
|
lnkRes.Attributes.Add("data-toggle", "tooltip")
|
|
lnkRes.Attributes.Add("data-placement", "right")
|
|
lnkRes.Attributes.Add("title", "Acceder")
|
|
|
|
AddHandler lnkRes.Click, AddressOf Me.lnkFolderRes
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center'>"))
|
|
tdBodyDescargas.Controls.Add(lnkRes)
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</tr>"))
|
|
|
|
Else
|
|
dvPanel.Visible = False
|
|
Alert("No se encontraron descargas relacionadas.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
|
|
udpDescargas.Update()
|
|
End Sub
|
|
|
|
Protected Sub lnkFolderCompaqt(sender As Object, e As EventArgs)
|
|
|
|
addUrl(Path.Combine(System.Configuration.ConfigurationManager.AppSettings("ContPAQDescargas").ToString, ViewState("FEMPRESA").ToString))
|
|
cargarFolderActual()
|
|
End Sub
|
|
Protected Sub lnkFolderRes(sender As Object, e As EventArgs)
|
|
|
|
If System.Configuration.ConfigurationManager.AppSettings("RespaldosArchivos") <> Nothing Then
|
|
addUrl(Path.Combine(System.Configuration.ConfigurationManager.AppSettings("RespaldosArchivos"), ViewState("FEMPRESA").ToString))
|
|
|
|
cargarFolderActual()
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub cargarFolderActual()
|
|
|
|
|
|
tdBodyDescargas.Controls.Clear()
|
|
Dim empresa As Empresa = getEmpresaBDContPAQi()
|
|
Dim BDContPAQi As String = empresa.BDContPAQi
|
|
|
|
Dim contador As Integer = 0
|
|
|
|
Dim listaFile As New List(Of String)
|
|
Dim listaDir As New List(Of String)
|
|
|
|
Dim listaNombres As New List(Of String)
|
|
|
|
Dim GB As Integer = 1073741824
|
|
Dim MB As Integer = 1048576
|
|
Dim KB As Integer = 1024
|
|
|
|
lblEmpresa.Text = "Empresa: " & empresa.Empresa
|
|
Dim resultado As Double = 0.0
|
|
|
|
listaFile.Clear()
|
|
listaDir.Clear()
|
|
|
|
If (BDContPAQi <> "") Then
|
|
|
|
Try
|
|
|
|
Dim ruta As String = getUrl()
|
|
|
|
listaFile.AddRange(Directory.GetFiles(ruta))
|
|
listaDir.AddRange(Directory.GetDirectories(ruta))
|
|
|
|
dvPanel.Visible = True
|
|
|
|
For Each d In listaDir
|
|
|
|
Dim di As New DirectoryInfo(d)
|
|
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<tr>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:left!important'>" & di.Name & "</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'></td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'>" & di.CreationTime.ToString("dd/MM/yyyy") & "</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'>Carpeta</td>"))
|
|
Dim lnk As New ImageButton
|
|
|
|
lnk.ID = "lnkFol" & contador
|
|
lnk.Attributes.Add("fname", di.Name)
|
|
lnk.ImageUrl = "~/Imagenes/folder.png"
|
|
lnk.PostBackUrl = "#"
|
|
|
|
|
|
lnk.PostBackUrl = "#"
|
|
lnk.Attributes.Add("data-toggle", "tooltip")
|
|
lnk.Attributes.Add("data-placement", "right")
|
|
lnk.Attributes.Add("title", "Acceder")
|
|
|
|
AddHandler lnk.Click, AddressOf Me.lnkFolder
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center'>"))
|
|
tdBodyDescargas.Controls.Add(lnk)
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</tr>"))
|
|
contador = contador + 1
|
|
|
|
Next
|
|
contador = 0
|
|
For Each s In listaFile
|
|
|
|
Dim fi As New FileInfo(s)
|
|
|
|
|
|
Dim sLen As String = fi.Length.ToString()
|
|
If fi.Length >= (GB) Then
|
|
resultado = fi.Length / GB
|
|
sLen = String.Format("{0} Gb", resultado.ToString("#.##"))
|
|
ElseIf fi.Length >= (MB) Then
|
|
resultado = fi.Length / MB
|
|
sLen = String.Format("{0} Mb", resultado.ToString("#.##"))
|
|
ElseIf fi.Length >= (KB) Then
|
|
resultado = fi.Length / KB
|
|
sLen = String.Format("{0} Kb", resultado.ToString("#.##"))
|
|
End If
|
|
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<tr>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:left!important'>" & fi.Name & "</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'>" & sLen & "</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'>" & fi.CreationTime.ToString("dd/MM/yyyy") & "</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center!important'>Archivo</td>"))
|
|
Dim lnk As New ImageButton
|
|
|
|
lnk.ID = "lnkDes" & contador
|
|
lnk.Attributes.Add("fname", fi.Name)
|
|
lnk.ImageUrl = "~/Imagenes/Abajo.png"
|
|
lnk.PostBackUrl = "#"
|
|
|
|
lnk.Attributes.Add("data-toggle", "tooltip")
|
|
lnk.Attributes.Add("data-placement", "right")
|
|
lnk.Attributes.Add("title", "Descargar")
|
|
|
|
AddHandler lnk.Click, AddressOf Me.lnkBtnDownload
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("<td style='text-align:center'>"))
|
|
tdBodyDescargas.Controls.Add(lnk)
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</td>"))
|
|
tdBodyDescargas.Controls.Add(New LiteralControl("</tr>"))
|
|
contador = contador + 1
|
|
udpDescargas.Update()
|
|
|
|
Next
|
|
|
|
Catch ex As Exception
|
|
Alert("Error al obtener Archivos." & ex.Message, TipoMensaje.MsgAdvertencia)
|
|
dvPanel.Visible = False
|
|
|
|
End Try
|
|
Else
|
|
dvPanel.Visible = False
|
|
Alert("No se encontraron descargas relacionadas.", TipoMensaje.MsgAdvertencia)
|
|
End If
|
|
|
|
udpDescargas.Update()
|
|
|
|
End Sub
|
|
|
|
Protected Sub lnkFolder(sender As Object, e As EventArgs)
|
|
|
|
Dim lnk As ImageButton
|
|
lnk = DirectCast(sender, ImageButton)
|
|
Dim nombre As String = lnk.Attributes("fname")
|
|
|
|
addUrl(nombre)
|
|
|
|
cargarFolderActual()
|
|
|
|
End Sub
|
|
|
|
Protected Sub lnkBtnDownload(sender As Object, e As EventArgs)
|
|
|
|
|
|
Dim empresa As Empresa = getEmpresaBDContPAQi()
|
|
Dim BDContPAQi As String = empresa.BDContPAQi
|
|
|
|
|
|
Dim ruta As String = getUrl()
|
|
|
|
Dim lnk As ImageButton
|
|
lnk = DirectCast(sender, ImageButton)
|
|
|
|
Dim nombre As String = lnk.Attributes("fname")
|
|
Dim filename As String = Path.Combine(ruta, nombre)
|
|
|
|
If filename <> "" Then
|
|
|
|
Dim file As New System.IO.FileInfo(filename)
|
|
If file.Exists Then
|
|
|
|
Response.Clear()
|
|
Response.AddHeader("Content-Disposition", "attachment; filename=" & cleanFileName(file.Name))
|
|
Response.AddHeader("Content-Length", file.Length.ToString())
|
|
Response.ContentType = "application/octet-stream"
|
|
Response.TransmitFile(file.FullName)
|
|
Response.End()
|
|
|
|
Else
|
|
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
Private Shared ReadOnly AllowedChars As Dictionary(Of Char, Char) = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._()0123456789".ToDictionary(Function(c) c)
|
|
Private Function cleanFileName(fileName As String) As String
|
|
Dim newFileName As Char() = fileName.ToCharArray()
|
|
For i As Integer = 0 To newFileName.Length - 1
|
|
If Not AllowedChars.ContainsKey(newFileName(i)) Then
|
|
newFileName(i) = "_"c
|
|
End If
|
|
Next
|
|
Return New String(newFileName)
|
|
End Function
|
|
|
|
Private Function getEmpresaBDContPAQi() As Empresa
|
|
Dim objEmpresa As New ClsSisEmpresas()
|
|
Dim empresa As New Empresa
|
|
|
|
If objEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
|
|
' If objEmpresa.GetEmpresas(4, "-1", "-1", "-1", "-1") Then
|
|
empresa = objEmpresa.Empresa
|
|
|
|
End If
|
|
|
|
objEmpresa.Dispose()
|
|
Return empresa
|
|
|
|
End Function
|
|
|
|
|
|
|
|
Private Function getUrl() As String
|
|
|
|
|
|
Dim listaUrl As List(Of String) = DirectCast(ViewState("URLS"), List(Of String))
|
|
Dim tempUrl As String = ""
|
|
|
|
If listaUrl.Count > 0 Then
|
|
|
|
tempUrl = listaUrl(listaUrl.Count - 1)
|
|
|
|
End If
|
|
|
|
Return tempUrl
|
|
End Function
|
|
|
|
Private Sub addUrl(ByVal folder As String)
|
|
|
|
Dim listaUrl As List(Of String) = DirectCast(ViewState("URLS"), List(Of String))
|
|
Dim tempUrl As String
|
|
|
|
If listaUrl.Count = 0 Then
|
|
listaUrl.Add(folder)
|
|
Else
|
|
tempUrl = Path.Combine(listaUrl(listaUrl.Count - 1), folder)
|
|
listaUrl.Add(tempUrl)
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub removerUltimaUrl()
|
|
|
|
Dim urls As List(Of String) = DirectCast(ViewState("URLS"), List(Of String))
|
|
|
|
If urls.Count > 0 Then
|
|
urls.RemoveAt(urls.Count - 1)
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Protected Sub btnImgBack_Click(sender As Object, e As ImageClickEventArgs) Handles btnImgBack.Click
|
|
removerUltimaUrl()
|
|
|
|
If getUrl() = "" Then
|
|
addCargaLinksInicio()
|
|
Else
|
|
cargarFolderActual()
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Protected Sub btnHome_Click(sender As Object, e As ImageClickEventArgs) Handles btnHome.Click
|
|
|
|
Dim urlLista As New List(Of String)
|
|
ViewState("URLS") = urlLista
|
|
addCargaLinksInicio()
|
|
|
|
End Sub
|
|
End Class
|