Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Bancos_RepProveedoresPagos Inherits ClsPaginas Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then CargaCombos() 'proceso para que solo pague lo que este programada If UsuarioActual.TienePermisoProceso(98) Then ChkProgramadas.Enabled = False ChkProgramadas.Checked = True 'DdlTipoPago.Items.RemoveAt(0) ChkProgramadas_CheckedChanged(sender, e) End If 'JJMQ:20150324: Comento carga de usuario y ahora se cargará con la función CargaUsuariosProgramaron 'DdlUsuarioProgramo.DataSource = GlobalDTUsuarios.FiltraParametros(String.Format("CveEmpresa = {0} AND ComprasProgramadas > 0 ", UsuarioActual.CveEmpresa), "Nombre") 'GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) 'DdlUsuarioProgramo.DataBind() CargaUsuariosProgramaron() CargaDatos() If UsuarioActual.TienePermisoProceso(84) Then GvCxP.Columns(10).Visible = True End If End If End Sub Private Sub CargaCombos() DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") DdlProveedores.SelectedText = "Todos" DdlProveedores.SelectedValue = "-1" DdlUsuarioResponsable.DataSource = GlobalDTUsuarioResponsable.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa), "Nombre") DdlUsuarioResponsable.DataBind() DdlProveedoresClasificaciones.DataSource = GlobalDTProveedorClasificacion(UsuarioActual.CveEmpresa) DdlProveedoresClasificaciones.DataBind() DdlMoneda.DataSource = GlobalDTMonedas() DdlMoneda.DataBind() DdlEstatusCompra.DataSource = GlobalDTCompEstatusFactura.FiltraParametros("CveEstatusFactura IN (1, 2)") DdlEstatusCompra.DataBind() 'puede pagar de todos los usuarios o solo los que halla registrado If UsuarioActual.TienePermisoProceso(91) Then DdlUsuarioRegistro.DataSource = GlobalDTUsuarios.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa), "Nombre") 'GlobalDTUsuarioResponsable.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlUsuarioRegistro.DataBind() DdlUsuarioRegistro.Items.Insert(0, New ListItem("Todos", "-1")) Else DdlUsuarioRegistro.DataSource = GlobalDTUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) DdlUsuarioRegistro.DataBind() End If DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaUsuariosProgramaron() Dim Mov As New ClsMovimientos If Mov.GetUsuariosProgramaron(UsuarioActual.CveEmpresa) Then DdlUsuarioProgramo.DataSource = Mov.DtResultados Else DdlUsuarioProgramo.DataSource = Nothing End If Mov.Dispose() DdlUsuarioProgramo.DataBind() DdlUsuarioProgramo.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaDatos() Dim Mov As New ClsMovimientos Dim FechaI, FechaF, FechaVI, FechaVF, CodigoProgramacion As String If txtFechaI.Text <> "" Then FechaI = txtFechaI.Text Else FechaI = "-1" If txtFechaF.Text <> "" Then FechaF = txtFechaF.Text Else FechaF = "-1" If txtFechaVI.Text <> "" Then FechaVI = txtFechaVI.Text Else FechaVI = "-1" If txtFechaVF.Text <> "" Then FechaVF = txtFechaVF.Text Else FechaVF = "-1" If DdlCodigoProgramacion.Text <> "" Then CodigoProgramacion = DdlCodigoProgramacion.Text Else CodigoProgramacion = "-1" Dim CveUsuarioProgramo As Integer = -1 If ChkProgramadas.Checked AndAlso DdlUsuarioProgramo.SelectedIndex = 0 Then CveUsuarioProgramo = -2 Else CveUsuarioProgramo = DdlUsuarioProgramo.SelectedValue.ToEntero End If GvCxP.Columns(7).Visible = ChkProgramadas.Checked 'AndAlso DdlUsuarioProgramo.SelectedValue.ToEntero > 0 If Mov.GetCxPEmpresa(DdlProveedores.SelectedValue.ToEntero, FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, -1, DdlUsuarioRegistro.SelectedValue.ToEntero, CveUsuarioProgramo, DdlUsuarioResponsable.SelectedValue.ToEntero, DdlProveedoresClasificaciones.SelectedValue.ToEntero, DdlMoneda.SelectedValue.ToEntero, -1, DdlEstatusCompra.SelectedValue.ToEntero, AplicaNC.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, FechaVI, FechaVF, CodigoProgramacion, DdlTipoProveedor.SelectedValue.ToEntero) Then GvCxP.DataSource = Mov.DtResultados If Mov.DtResultados IsNot Nothing AndAlso Mov.DtResultados.Rows.Count > 0 Then Dim dtt As DataTable = Mov.DtResultados LtlTotalOriginal.Text = dtt.Rows(0)("Original").ToString.FormatoNumero LtlTotalDolares.Text = dtt.SUM("Original", "Moneda = 'Dólares'").ToString.FormatoNumero LtlTotalMXN.Text = dtt.SUM("Original", "Moneda = 'Pesos'").ToString.FormatoNumero LtlTotalAbonado.Text = dtt.Rows(0)("Abonado").ToString.FormatoNumero LtlProgreso.Text = $"{dtt.Rows(0)("PorPagado").ToString().FormatoNumero} %" LtlPorcentaje.Text = $"{dtt.Rows(0)("PorPagado").ToString().FormatoNumero} %" ProgresoBarra.Style.Add("width", dtt.Rows(0)("PorPagado").ToString.ToEntero.ToString) LtlPendiente.Text = dtt.SUM("Saldo", "Moneda = 'Pesos'").ToString.FormatoNumero LtlPendienteDolares.Text = dtt.SUM("Saldo", "Moneda = 'Dólares'").ToString.FormatoNumero TotalPendiente.Text = dtt.Rows(0)("Saldo").ToString.FormatoNumero dvIndicadores.Visible = True End If End If Mov.Dispose() GvCxP.DataBind() UpIndicadores.Update() UPDatos.Update() End Sub Protected Sub GvCxP_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCxP.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("CveProveedor") = "" Then ' e.Row.BackColor = Drawing.Color.LightGray e.Row.FCHyperLink("ImgAbonar").Visible = False e.Row.FCHyperLink("Hpl").NavigateUrl = "" e.Row.FCHyperLink("Hpl").Font.Bold = True e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Center e.Row.CssClass = "Totales" End If If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(7).CssClass = "bg-yellow-gold" e.Row.Cells(7).ToolTip = "El Importe Programado es mayor al Saldo" End If If ChkProgramadas.Checked Then e.Row.Cells(0).Width = Unit.Pixel(380) End If If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(1).ForeColor = Drawing.Color.Red Dim CveUsuarioProgramo As Integer = -1 If ChkProgramadas.Checked AndAlso DdlUsuarioProgramo.SelectedIndex = 0 Then CveUsuarioProgramo = -2 Else CveUsuarioProgramo = DdlUsuarioProgramo.SelectedValue.ToEntero End If e.Row.FCHyperLink("ImgAbonar").NavigateUrl = String.Format("/Bancos/ProveedoresAbonar.aspx?CveProveedor={0}&FechaI={1}&FechaF={2}&CveUsuarioProgramo={3}&TipoPago={4}&CveUsuarioRegistro={5}&CveUsuarioResponsable={6}&CveClasificacion={7}&CveMoneda={8}&CveEstatus={9}&CveProveedorSucursal={10}&CveAplicaNC={11}&CodigoProgramacion={12}&CveSubProyecto={13}", e.Row.DBCampo("CveProveedor"), If(txtFechaI.Text <> "", txtFechaI.Text, "-1"), If(txtFechaF.Text <> "", txtFechaF.Text, "-1"), CveUsuarioProgramo, -1, DdlUsuarioRegistro.SelectedValue, DdlUsuarioResponsable.SelectedValue, DdlProveedoresClasificaciones.SelectedValue, e.Row.DBCampo("CveMoneda"), DdlEstatusCompra.SelectedValue, e.Row.DBCampo("CveProveedorSucursal"), AplicaNC.SelectedValue, DdlCodigoProgramacion.SelectedValue, DdlSubProyecto.SelectedValue) End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click CargaDatos() End Sub Protected Sub ChkProgramadas_CheckedChanged(sender As Object, e As EventArgs) Handles ChkProgramadas.CheckedChanged DdlUsuarioProgramo.Visible = ChkProgramadas.Checked DdlCodigoProgramacion.Visible = ChkProgramadas.Checked If Not ChkProgramadas.Checked Then DdlUsuarioProgramo.SelectedValue = "-1" DdlCodigoProgramacion.SelectedValue = "-1" Else RegistraScript("$(""#C_UPFiltros .portlet .portlet-body"").css(""display"", ""block"")") End If UpDdls.Update() End Sub #Region " I M P R I M I R P D F" Protected Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click Dim EsVisibleColPagoProveedor As Boolean = False If GvCxP.Columns(10).Visible Then EsVisibleColPagoProveedor = True GvCxP.Columns(10).Visible = False End If GenerarPDFpp("Excel") If EsVisibleColPagoProveedor Then GvCxP.Columns(10).Visible = True End If End Sub Protected Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click GenerarPDFpp() End Sub Protected Sub LnkPDFSubProyecto_Click(sender As Object, e As EventArgs) GenerarPDFpp(AgrupadoPorSubProyecto:=True) End Sub Protected Sub LnkExcelSubProyecto_Click(sender As Object, e As EventArgs) Dim EsVisibleColPagoProveedor As Boolean = False If GvCxP.Columns(10).Visible Then EsVisibleColPagoProveedor = True GvCxP.Columns(10).Visible = False End If GenerarPDFpp("Excel", True) If EsVisibleColPagoProveedor Then GvCxP.Columns(10).Visible = True End If End Sub Private Sub GenerarPDFpp(Optional Formato As String = "PDF", Optional AgrupadoPorSubProyecto As Boolean = False) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) 'OBTENEMOS LOS DATOS Dim ObjMovtos As New ClsMovimientos() Dim DTpp As DataTable Dim FI = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", "-1", txtFechaI.Text) Dim FF = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", "-1", txtFechaF.Text) Dim FechaI, FechaF As String Dim CveUsuarioProgramo As Integer = -1 If txtFechaI.Text <> "" Then FechaI = txtFechaI.Text Else FechaI = "-1" If txtFechaF.Text <> "" Then FechaF = txtFechaF.Text Else FechaF = "-1" Dim Mov As New ClsMovimientos Dim Proveedor = If(DdlProveedores.SelectedValue = "-1", "", $" Cliente: {DdlProveedores.SelectedText}") Dim Registro = If(DdlUsuarioRegistro.SelectedValue = "-1", "", $" Registró: {DdlUsuarioRegistro.SelectedItem.Text}") Dim Responsable = If(DdlUsuarioResponsable.SelectedValue = "-1", "", $" Responsable: {DdlUsuarioResponsable.SelectedItem.Text}") Dim Clasificacion = If(DdlProveedoresClasificaciones.SelectedValue = "-1", "", $" Clasificación: {DdlProveedoresClasificaciones.SelectedItem.Text}") Dim Moneda = If(DdlMoneda.SelectedValue = "-1", "", $" Moneda: {DdlMoneda.SelectedItem.Text}") Dim Estatus = If(DdlEstatusCompra.SelectedValue = "-1", "", $" Estatus: {DdlEstatusCompra.SelectedItem.Text}") Dim SubProyecto = If(DdlSubProyecto.SelectedValue = "-1", "", $" SubProyecto: {DdlSubProyecto.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" Dim Programo As String = "" Dim FVI As String = $" Fecha Venc. Inic.: {txtFechaVI.Text}" Dim FVF As String = $" Fecha Venc. Final: {txtFechaVF.Text}" If txtFechaVI.Text = "" Then FVI = "" If txtFechaVF.Text = "" Then FVF = "" If ChkProgramadas.Checked AndAlso DdlUsuarioProgramo.SelectedIndex = 0 Then CveUsuarioProgramo = -2 Else CveUsuarioProgramo = DdlUsuarioProgramo.SelectedValue.ToEntero Programo = If(DdlUsuarioProgramo.SelectedValue = "-1", "", $" Autorizado Por: {DdlUsuarioProgramo.SelectedItem.Text}") End If If ObjMovtos.GetCxPEmpresa(DdlProveedores.SelectedValue.ToEntero, FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, -1, DdlUsuarioRegistro.SelectedValue.ToEntero, CveUsuarioProgramo, DdlUsuarioResponsable.SelectedValue.ToEntero, DdlProveedoresClasificaciones.SelectedValue.ToEntero, DdlMoneda.SelectedValue.ToEntero, -1, DdlEstatusCompra.SelectedValue.ToEntero, AplicaNC.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, CveTipoProveedor:=DdlTipoProveedor.SelectedValue.ToEntero, AgrupadoPorSubProyecto:=AgrupadoPorSubProyecto) Then DTpp = ObjMovtos.DtResultados Else DTpp = Nothing End If ObjMovtos.Dispose() If DTpp.Rows.Count > 0 Then Dim dr As DataRow = DTpp.Rows(0) Dim params As New List(Of ReportParameter) Dim Filtros As New StringBuilder Filtros.Append("Filtros ") Dim ExistenFechas As Boolean = False If txtFechaI.Text.Trim.Length > 0 Then Filtros.Append($" Fecha Inicio: {txtFechaI.Text.Trim}") ExistenFechas = True End If If txtFechaF.Text.Trim.Length > 0 Then Filtros.Append($" Fecha Fin: {txtFechaF.Text.Trim}") ExistenFechas = True End If If ExistenFechas Then params.Add(New ReportParameter("AgrupadoPor", Filtros.ToString)) End If params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", FI)) params.Add(New ReportParameter("FechaFin", FF)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) params.Add(New ReportParameter("AgrupadoPor", $"{Programo} {Proveedor} {Registro} {Responsable} {Clasificacion} {Moneda} {Estatus} {SubProyecto} {FechaIn} {FechaFn}{FVI}{FVF}")) params.Add(New ReportParameter("Programadas", If(ChkProgramadas.Checked, 1, 0))) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/RepPagoProveedores.rdlc", DTpp, params, "ReportePagoProveedores", Formato) Else Alert("No se tienen registrados movimientos", TipoMensaje.MsgAdvertencia) End If End Sub Private Sub DdlUsuarioProgramo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlUsuarioProgramo.SelectedIndexChanged If DdlUsuarioProgramo.SelectedValue > 0 Then Dim ObjMovimientos As New ClsMovimientos If ObjMovimientos.GetCodigosProgramacionPersonal(UsuarioActual.CveEmpresa, DdlUsuarioProgramo.SelectedValue.ToEntero) Then DdlCodigoProgramacion.DataSource = ObjMovimientos.DtResultados DdlCodigoProgramacion.DataBind() DdlCodigoProgramacion.Items.Insert(0, New ListItem("Todos", "-1")) UPDatos.Update() End If End If End Sub #End Region End Class