Files
SIG/OI/CircularDetalle.aspx.vb
2020-04-21 16:39:15 -07:00

272 lines
10 KiB
VB.net

Imports System.Data
Imports System.Linq
Imports Extensiones
Imports System.IO
Imports System.Text.RegularExpressions
Partial Class OI_CircularDetalle
Inherits ClsPaginas
Private Property DtUsuarios As DataTable
Get
Return If(IsNothing(ViewState("DtUsuarios")), Nothing, CType(ViewState("DtUsuarios"), DataTable))
End Get
Set(value As DataTable)
ViewState("DtUsuarios") = value
End Set
End Property
Private Property CveCircular As Integer
Get
Return ViewState("CveCircular").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCircular") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CargarCve()
ConfigurarBotones()
CargaDatos()
End If
End Sub
Private Sub CargarCve()
Dim PreCveCircular As String = Request.Params("CveCircular").ToString
If IsNumeric(PreCveCircular) Then
CveCircular = PreCveCircular.ToEntero
End If
End Sub
Private Sub ConfigurarBotones()
If CveCircular > 0 Then
BtnGuardar.Text = "Actualizar"
BtnEliminar.Visible = True
Else
BtnGuardar.Text = "Guardar"
End If
End Sub
Private Sub CargaDatos()
If CveCircular > 0 Then
Dim ObjOI As New ClsOIEventos
If ObjOI.GetCircular(UsuarioActual.CveEmpresa, CveCircular) Then
Dim Circular As DataRow = ObjOI.DtResultados(0)
TxtAsunto.Text = Circular.Item("Asunto")
TxtCorreo.Value = Circular.Item("CorreosInternos")
TxtCorreoAdicional.Value = Circular.Item("CorreosExternos")
TxtCircular.Value = Circular.Item("Circular")
If Circular.Item("ArchivoAdjunto") <> "" Then
archivosDiv.Visible = True
HkArchivo.NavigateUrl = String.Format("{0}Empresas\{1}\Formatos\{2}", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa, Circular.Item("ArchivoAdjunto"))
HkArchivo.Text = Circular.Item("ArchivoAdjunto")
End If
UpCliente.Update()
End If
ObjOI.Dispose()
End If
DdlRolesFiltro.DataSource = GlobalDTRoles(UsuarioActual.CveEmpresa)
DdlRolesFiltro.DataBind()
DdlRolesFiltro.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSucursales.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa)
DdlSucursales.DataBind()
DdlSucursales.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub BtnGuardar_Click() Handles BtnGuardar.Click
Dim ObjOI As New ClsOIEventos
If CveCircular > 0 Then
Dim AdjuntoValidate As String = NombreArchivo().Split("-")(1)
If ObjOI.UpdateCircular(CveCircular, TxtAsunto.Text, TxtCircular.Value, TxtCorreo.Value, TxtCorreoAdicional.Value, AdjuntoValidate) Then
GuardarArchivo(CveCircular)
Alert("Actualizado correctamente")
End If
Else
Dim CorreoExtra As String = If(TxtCorreoAdicional.Value = "", "-1", TxtCorreoAdicional.Value)
Dim AdjuntoValidate As String = NombreArchivo().Split("-")(1)
Dim CircularInsertado As Integer = ObjOI.AddCircular(TxtAsunto.Text, TxtCircular.Value, TxtCorreo.Value, Today.ToString, UsuarioActual.CveUsuario,
UsuarioActual.CveEmpresa, CorreoExtra, AdjuntoValidate)
If CircularInsertado > 0 Then
GuardarArchivo(CircularInsertado)
Alert("Ingresado correctamente")
End If
End If
CargaDatos()
End Sub
Private Sub BtnEliminar_Click() Handles BtnEliminar.Click
Dim ObjOI As New ClsOIEventos
If ObjOI.DeleteCircular(CveCircular) Then
Response.Redirect("~/OI/CircularDetalle.aspx?CveCircular=-1")
End If
ObjOI.Dispose()
End Sub
Protected Sub LbBuscar_Click(sender As Object, e As EventArgs) Handles LbBuscar.Click
LimpiarModal()
RegistraScript("$('#ModalDescuento').modal()")
End Sub
Private Sub LimpiarModal()
DdlRolesFiltro.SelectedValue = -1
DdlSucursales.SelectedValue = -1
GvUsuarios.DataSource = Nothing
GvUsuarios.DataBind()
UpUsuarios.Update()
End Sub
Protected Sub BtnBuscar_Click() Handles BtnBuscar.Click
Dim buscadorQuery As New StringBuilder
buscadorQuery.Append(If(DdlRolesFiltro.SelectedValue.ToEntero > 0, String.Format("CveRol = {0}", DdlRolesFiltro.SelectedValue), ""))
buscadorQuery.Append(If(DdlSucursales.SelectedValue.ToEntero > 0, String.Format("{0} CveSubProyecto = {1}", If(buscadorQuery.Length > 0, "AND", ""), DdlSucursales.SelectedValue), ""))
GvUsuarios.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(buscadorQuery.ToString)
DtUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(buscadorQuery.ToString)
GvUsuarios.DataBind()
UpUsuarios.Update()
RegistraScript("$('#ModalDescuento').modal()")
End Sub
Private Sub BtnAplicarDescG_Click() Handles BtnAplicarDescG.Click
Dim UsuariosCorreos As String = ""
For Each usuario As DataRow In DtUsuarios.Rows
If usuario.Item("Correo").ToString.Length > 0 Then
UsuariosCorreos = String.Format("{0}{1}" & Environment.NewLine, UsuariosCorreos, usuario.Item("Correo").ToString)
End If
Next
TxtCorreo.Value = UsuariosCorreos
RegistraScript("$('#ModalDescuento').modal('hide')")
UpCliente.Update()
End Sub
Private Function NombreArchivo() As String
Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos
Dim Filename As String = "-1"
For Each fileItem As Archivo In Filesgral
Try
Filename = fileItem.filename
Catch ex As Exception
Filename = "-1"
End Try
Next
Return Filename
End Function
Private Function TituloAnterior() As String
Dim Directorio As New IO.DirectoryInfo(String.Format("{0}Empresas/{1}/Formatos/", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa))
Dim ArchivosArreglo As IO.FileInfo() = Directorio.GetFiles()
Dim patronRegEx As String = String.Format("^{0}_.*", CveCircular)
Dim archivoEncontrado As String = ""
For Each file As IO.FileInfo In ArchivosArreglo
If Regex.IsMatch(file.Name, patronRegEx) Then
archivoEncontrado = file.Name
End If
Next
Return archivoEncontrado
End Function
Private Function GuardarArchivo(CircularInsertado As Integer) As String
Dim respuesta As String = ""
Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos
Dim Filename As String = ""
For Each fileItem As Archivo In Filesgral
Try
respuesta = fileItem.filenameO
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Dim tempArray() As String
tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
Dim rutaDestino As String = UsuarioActual.Empresa.Ruta & "Formatos\" & CircularInsertado & "_" & fileItem.filenameO
Dim ArchivoAnterior As String = TituloAnterior()
If ArchivoAnterior.Length > 0 Then
Dim docAnterior As String = String.Format("{0}Formatos\{1}", UsuarioActual.Empresa.Ruta, ArchivoAnterior)
If File.Exists(docAnterior) Then
File.Delete(docAnterior)
End If
End If
If Not Directory.Exists(UsuarioActual.Empresa.Ruta & "\Formatos") Then
Directory.CreateDirectory(UsuarioActual.Empresa.Ruta & "\Formatos")
End If
If System.IO.File.Exists(rutaDestino) Then
System.IO.File.Delete(rutaDestino)
End If
System.IO.File.Move(fileItem.FileUrl, rutaDestino)
Catch ex As Exception
OnError("Error al cargar archivo", ex)
End Try
TxtFileDocumentacion.Text = ""
Next
Return respuesta
End Function
Protected Sub LnkMandarCorreo_Click() Handles LnkMandarCorreo.Click
Dim correos() As String
correos = TxtCorreo.Value.Split(Environment.NewLine)
Dim ArchivoBytes As Byte() = ArchivoBytesArrya(HkArchivo.Text)
Dim Contador As Integer = 0
For Each Correo As String In correos
MandaCorreo(TxtAsunto.Text, Correo, If(Contador > 0, "", TxtCorreoAdicional.Value), TxtCircular.Value, ArchivoBytes, HkArchivo.Text)
Contador += 1
Next
End Sub
Private Sub MandaCorreo(Asunto As String, Para As String, ArrayCC As String, body As String, ArchivoBinario As Byte(), NombreArchivo As String)
Dim a As String = String.Format("{0} -- {1} --- {2}", Asunto, Para, ArrayCC)
a.GuardaLog()
Dim Mail As New ClsSisMail()
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim itemMail As New ClsSisMail.ArchivoMail
With itemMail
itemMail.ArchivoBinario = ArchivoBinario
itemMail.NombreArchivo = NombreArchivo
End With
LSRutasMail.Add(itemMail)
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, body, ArrayCC, LSRutasMail)
Mail = Nothing
End Sub
Private Function ArchivoBytesArrya(ArchivoNombre As String) As Byte()
Dim ArchivoEnviar As String = String.Format("{0}Formatos\{1}", UsuarioActual.Empresa.Ruta, ArchivoNombre)
If File.Exists(ArchivoEnviar) Then
Dim fs As System.IO.FileStream = System.IO.File.Open(ArchivoEnviar, IO.FileMode.Open, IO.FileAccess.Read)
Dim buff(fs.Length) As Byte
If fs.Length > 0 Then
fs.Read(buff, 0, fs.Length - 1)
fs.Close()
End If
Return buff
End If
Return New Byte() {}
End Function
End Class