Files
SIG/Compras/RepComplementoPago.aspx.vb

249 lines
9.9 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Compras_RepComplementoPago
Inherits ClsPaginas
Private Property DTComplemntos As DataTable
Get
If ViewState("DTComplemntos") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTComplemntos"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTComplemntos") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
InicializaValores()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub InicializaValores()
TxtFiltrosFechaInicio.Text = NowADS().FirstDayOfMonth.ToShortDateString
TxtFiltrosFechaFin.Text = NowADS().ToShortDateString
DdlProveedores.setEsWebService(True)
DdlProveedores.Attributes.Add("data-metodo", "getproveedores")
'DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
'DdlProveedores.DataBind()
'DdlProveedores.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlUsuarioRegistra.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
DdlUsuarioRegistra.DataBind()
DdlUsuarioRegistra.Items.Insert(0, New ListItem("Todos", "-1"))
UpFiltros.Update()
End Sub
#End Region
#Region " CARGA DATOS "
Protected Sub BtnConsultarFiltros_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim CveProveedor As Integer = If(DdlProveedores.SelectedValue.ToEntero = 0, -1, DdlProveedores.SelectedValue.ToEntero)
Dim CveTipoProveedor As Integer = DdlTipoProveedor.SelectedValue.ToEntero
Dim FechaInicio As Date = If(IsDate(TxtFiltrosFechaInicio.Text), TxtFiltrosFechaInicio.Text.ToDate, MinFecha)
Dim FechaFin As Date = If(IsDate(TxtFiltrosFechaFin.Text), TxtFiltrosFechaFin.Text.ToDate, MaxFecha)
Dim TipoConsulta As Integer = If(ChkViculadas.Checked, 2, 1)
Dim Count As Integer = 0
Personalizar()
Dim ObjCompras As New ClsCompras
If ObjCompras.RepComplementosPago(CveProveedor, -1, TipoConsulta, FechaInicio, FechaFin, UsuarioActual.CveEmpresa, CveTipoProveedor, DdlSubProyecto.SelectedValue.ToEntero, DdlUsuarioRegistra.SelectedValue.ToEntero) Then
DTComplemntos = ObjCompras.DtResultados '.FiltraParametros(If(ChkViculadas.Checked, "FechaAsociacionPago IS NOT NULL", "FechaAsociacionPago IS NULL"))
GvDatos.DataSource = DTComplemntos
If ChkViculadas.Checked Then
Count = DTComplemntos.Rows.Count
GvDatos.Columns(8).Visible = True
Else
GvDatos.Columns(8).Visible = False
End If
End If
ObjCompras.Dispose()
If Count > 0 Then
LnkNotificar.Attributes.Add("data-original-title", $"¿Notificar a {Count} ?")
LnkNotificar.Visible = True
Else
LnkNotificar.Attributes.Add("data-original-title", $"¿Notificar?")
LnkNotificar.Visible = False
End If
UpAcciones.Update()
ObjCompras.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
Private Sub Personalizar()
GvDatos.Columns(2).Visible = ChkFolioFiscal.Checked
If ChkFolioFiscal.Checked Then
'GvDatos.Columns(0).ItemStyle.Width = 15%
Else
'GvDatos.Columns(0).ItemStyle.Width = 30%
End If
UpDatos.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If ChkViculadas.Checked Then
e.Row.FCHyperLink("HplPDF").Visible = True : e.Row.FCHyperLink("HplPDF").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=Fact&EXT=pdf&CveFactura={0}&RFC={1}", e.Row.DBCampo("CveFactura"), e.Row.DBCampo("RFCde").ToString.Replace("&", "%26%"))))
End If
End If
End Sub
#End Region
#Region "ENVIA CORREOS NOTIFICACIÓN"
Protected Sub LnkNotificar_Click(sender As Object, e As EventArgs)
NotificarComplementos()
End Sub
Private Sub NotificarComplementos()
If ChkViculadas.Checked = False And DTComplemntos.Rows.Count > 0 Then
Dim DTComplementosPendientes As New DataTable
DTComplementosPendientes = DTComplemntos.FiltraParametros("FechaAsociacionPago IS NULL")
For Each Drow As DataRow In DTComplementosPendientes.Rows
Dim FechaPago As String = Drow("FechaIE").ToString
Dim NotificarA As String = Drow("NotificarA").ToString
Dim ContactoMailCobranza As String = Drow("ContactoMailCobranza").ToString
Dim MailDestino As String = ""
Dim Correo As New ClsSisMail
Dim SerieFolio As String = Drow("SerieFolio").ToString
Dim Fecha As Date = Drow("Fecha").ToString.ToDate
Dim Importe As Decimal = Drow("Importe").ToString.FormatoNumero(2).ToDecimal
Dim Proveedor As String = Drow("RazonSocial").ToString
Dim Cuerpo As New StringBuilder
Cuerpo.AppendLine($"<br>Por medio del presente correo se notifica a la empresa { Proveedor } que no cuenta con los complementos de pago al corriente y esto puede presentar un retrasó en sus pagos futuros.<br>")
Cuerpo.AppendLine("<br>")
Cuerpo.AppendLine("<table>")
Cuerpo.AppendLine("<tr>")
Cuerpo.AppendLine("<th>Folio</th><th>Fecha</th><th>Importe</th>")
Cuerpo.AppendLine("</tr><tr>")
Cuerpo.AppendLine($"<td>{SerieFolio}</td><td>{Fecha.ToString("dd/MM/yyyy")}</td><td>{Importe}</td>")
Cuerpo.AppendLine("</tr>")
Cuerpo.AppendLine("")
MailDestino = $"{ContactoMailCobranza};{NotificarA}"
If MailDestino.Trim.Length > 1 Then
Correo.SendMail(UsuarioActual.Empresa, MailDestino, $"{UsuarioActual.Empresa.NombreCorto} Complementos", Cuerpo.ToString)
End If
Next
End If
End Sub
#End Region
#Region "IMPRESION"
Protected Sub LnkPDF_Click(sender As Object, e As EventArgs)
GeneraImpresion()
End Sub
Protected Sub LnkExcel_Click(sender As Object, e As EventArgs)
GeneraImpresion("Excel")
End Sub
Private Sub GeneraImpresion(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
Dim proveedor As String = If(DdlProveedores.SelectedValue = "", "", $"&emsp;<b>Proveedor:</b>&nbsp;{DdlProveedores.SelectedText}")
Dim FI As String = If(TxtFiltrosFechaInicio.Text = "", "", $"&emsp;<b>Fecha Inicio:</b>&nbsp;{TxtFiltrosFechaInicio.Text}")
Dim FF As String = If(TxtFiltrosFechaFin.Text = "", "", $"&emsp;<b>Fecha Fin:</b>&nbsp;{TxtFiltrosFechaFin.Text}")
Dim vinc As String = If(ChkViculadas.Checked = True, "&emsp;<b>Vinculadas:</b>&nbsp;SI", "")
Dim TP As String = If(DdlTipoProveedor.SelectedValue = "-1", "", $"&emsp;<b>Tipo Proveedor:</b>&nbsp;{DdlTipoProveedor.SelectedItem.Text}")
Dim subProy As String = If(DdlSubProyecto.SelectedValue = "-1", "", $"&emsp;<b>SubProyecto:</b>&nbsp;{DdlSubProyecto.SelectedItem.Text}")
Dim usuario As String = If(DdlUsuarioRegistra.SelectedValue = "-1", "", $"&emsp;<b>Usuario registró:</b>&nbsp;{DdlUsuarioRegistra.SelectedItem.Text}")
If DTComplemntos IsNot Nothing AndAlso DTComplemntos.Rows.Count > 0 Then
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("AgrupadoPor", $"{proveedor}{FI}{FF}{vinc}{TP}{subProy}{usuario}"))
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
ImprimirPDF("Empresas/Grales/Formatos/RepComplementoPago.rdlc", DTComplemntos, params, "RepComplementoPago", Formato)
Else
Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
Protected Sub BtnPersonalizar_Click(sender As Object, e As EventArgs)
Personalizar()
ImgExcelPersonalizado.Visible = True
UpAcciones.Update()
End Sub
Protected Sub ImgExcelPersonalizado_Click(sender As Object, e As EventArgs) Handles ImgExcelPersonalizado.Click
' GvDatos.ExportToExcelGembox("RepComplementos_" & NowADS().ToShortDateString)
'GvDatos.ExportToExcelG("DetalleCompras_" & NowADS().ToShortDateString & ".xlsx")
Dim SubProyecto As String = ""
If DdlSubProyecto.SelectedValue.ToEntero > 0 Then
SubProyecto = DdlSubProyecto.SelectedItem.Text
End If
Dim SbFiltros As New StringBuilder()
SbFiltros.AppendFormat($"Fecha Inicio: {TxtFiltrosFechaInicio.Text} Fecha Fin: {TxtFiltrosFechaFin.Text}|")
SbFiltros.AppendFormat("SubProyecto: {0}|", SubProyecto)
GvDatos.ExportToExcelGembox("RepComplementos_" & NowADS().ToShortDateString, UsuarioActual, "Reporte de Complementos Pago de Compras", DatoTituloExtra:=$"", DatosFiltros:=SbFiltros.ToString())
End Sub
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
End Class