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 = DdlTipoProveedor.SelectedValue.ToEntero Dim FechaInicio = If(IsDate(TxtFiltrosFechaInicio.Text), TxtFiltrosFechaInicio.Text.ToDate, MinFecha) Dim FechaFin = If(IsDate(TxtFiltrosFechaFin.Text), TxtFiltrosFechaFin.Text.ToDate, MaxFecha) Dim TipoConsulta = If(ChkViculadas.Checked, 2, 1) Dim Count As Integer = 0 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(7).Visible = True Else GvDatos.Columns(7).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 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($"
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.
") Cuerpo.AppendLine("
") Cuerpo.AppendLine("") Cuerpo.AppendLine("") Cuerpo.AppendLine("") Cuerpo.AppendLine("") Cuerpo.AppendLine($"") Cuerpo.AppendLine("") 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 = "", "", $" Proveedor: {DdlProveedores.SelectedText}") Dim FI As String = If(TxtFiltrosFechaInicio.Text = "", "", $" Fecha Inicio: {TxtFiltrosFechaInicio.Text}") Dim FF As String = If(TxtFiltrosFechaFin.Text = "", "", $" Fecha Fin: {TxtFiltrosFechaFin.Text}") Dim vinc As String = If(ChkViculadas.Checked = True, " Vinculadas: SI", "") Dim TP As String = If(DdlTipoProveedor.SelectedValue = "-1", "", $" Tipo Proveedor: {DdlTipoProveedor.SelectedItem.Text}") Dim subProy As String = If(DdlSubProyecto.SelectedValue = "-1", "", $" SubProyecto: {DdlSubProyecto.SelectedItem.Text}") Dim usuario As String = If(DdlUsuarioRegistra.SelectedValue = "-1", "", $" Usuario registró: {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 End Class
FolioFechaImporte
{SerieFolio}{Fecha.ToString("dd/MM/yyyy")}{Importe}