Files
SIG/Bancos/RepProveedoresPagos.aspx.vb
2022-09-05 21:40:17 -07:00

344 lines
16 KiB
VB.net

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))
'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", "", $"&emsp;<b>Cliente:</b>&nbsp;{DdlProveedores.SelectedText}")
Dim Registro = If(DdlUsuarioRegistro.SelectedValue = "-1", "", $"&emsp;<b>Registró:</b>&nbsp;{DdlUsuarioRegistro.SelectedItem.Text}")
Dim Responsable = If(DdlUsuarioResponsable.SelectedValue = "-1", "", $"&emsp;<b>Responsable:</b>&nbsp;{DdlUsuarioResponsable.SelectedItem.Text}")
Dim Clasificacion = If(DdlProveedoresClasificaciones.SelectedValue = "-1", "", $"&emsp;<b>Clasificación:</b>&nbsp;{DdlProveedoresClasificaciones.SelectedItem.Text}")
Dim Moneda = If(DdlMoneda.SelectedValue = "-1", "", $"&emsp;<b>Moneda:</b>&nbsp;{DdlMoneda.SelectedItem.Text}")
Dim Estatus = If(DdlEstatusCompra.SelectedValue = "-1", "", $"&emsp;<b>Estatus:</b>&nbsp;{DdlEstatusCompra.SelectedItem.Text}")
Dim SubProyecto = If(DdlSubProyecto.SelectedValue = "-1", "", $"&emsp;<b>SubProyecto:</b>&nbsp;{DdlSubProyecto.SelectedItem.Text}")
Dim FechaIn As String = $"&emsp;<b>Fecha&nbsp;Inicio:</b>&nbsp;{txtFechaI.Text}"
Dim FechaFn As String = $"&emsp;<b>Fecha&nbsp;Fin:</b>&nbsp;{txtFechaF.Text}"
If txtFechaI.Text = "" Then FechaIn = ""
If txtFechaF.Text = "" Then FechaFn = ""
Dim Programo As String = ""
Dim FVI As String = $"&emsp;<b>Fecha Venc. Inic.:</b>&nbsp;{txtFechaVI.Text}"
Dim FVF As String = $"&emsp;<b>Fecha Venc. Final:</b>&nbsp;{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", "", $"&emsp;<b>Autorizado&nbsp;Por:</b>&nbsp;{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("<b>Filtros </b>")
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", $"file://{Imagen.FullName}"))
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