Files
SIG/Finanzas/RepRotacionCartera.aspx.cs

392 lines
16 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using System.IO;
using Microsoft.Reporting.WebForms;
using System.Activities.Expressions;
public partial class Finanzas_RepRotacionCartera : ClsPaginas
{
#region "P R O P I E D A D E S"
private DataTable DTDatosClientes
{
get
{
return (DataTable)ViewState["DTDatosClientes"];
}
set
{
ViewState["DTDatosClientes"] = value;
}
}
private DataTable DTDatosProveedores
{
get
{
return (DataTable)ViewState["DTDatosProveedores"];
}
set
{
ViewState["DTDatosProveedores"] = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InicializaDatos();
}
}
#region "CARGA DATOS"
private void InicializaDatos()
{
DateTime FechaInicio = new DateTime(DateTime.Today.Year, 1, 1);
TxtFechaI.Text = FechaInicio.ToShortDateString();
TxtFechaF.Text = DateTime.Today.ToShortDateString();
TxtFechaCobranza.Text = DateTime.Today.ToShortDateString();
CargaClientes();
CargaVendedores();
CargaSucursales();
CargaProveedores();
//MuestraFiltrosCliente();
MuestraFiltrosResumen();
CargaDatos(0);
//CargaDatos(1);
//CargaDatos(2);
// CargaIndicadoresResumen();
}
private void CargaDatos(int opcion)
{
ClsFinanzas ObjFinanzas = new ClsFinanzas();
DateTime FechaInicio = Convert.ToDateTime(TxtFechaI.Text);
DateTime FechaFin = Convert.ToDateTime(TxtFechaF.Text);
DateTime FechaFinCobranza = Convert.ToDateTime(TxtFechaCobranza.Text);
String Sucursales = ModExtensiones.GetSelectedValuesM( DdlSucursal) == "" ? "-1" : ModExtensiones.GetSelectedValuesM(DdlSucursal);
String Vendedores = ModExtensiones.GetSelectedValuesM(DdlVendedores) == "" ? "-1" : ModExtensiones.GetSelectedValuesM(DdlVendedores);
String TipoProveedor = ModExtensiones.GetSelectedValuesM(DdlTipoProveedor) == "" ? "-1" : ModExtensiones.GetSelectedValuesM(DdlTipoProveedor);
if (opcion == 0)
{
if (ObjFinanzas.GetRotacionCarteraCliente(FechaInicio, FechaFin, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero(), "-1", "-1", -1, FechaFinCobranza))
{
DTDatosClientes = ObjFinanzas.DtResultados;
}
if (ObjFinanzas.GetRotacionCarteraProveedores(FechaInicio, FechaFin, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero(), "-1", "-1", -1, FechaFinCobranza))
{
DTDatosProveedores = ObjFinanzas.DtResultados;
}
CargaIndicadoresResumen();
}
else if (opcion == 1)
{
if (ObjFinanzas.GetRotacionCarteraCliente(FechaInicio, FechaFin, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero(), Vendedores, Sucursales, DdlCliente.SelectedValue.ToEntero(), FechaFinCobranza))
{
GvDatosCliente.Columns[0].HeaderText = DdlGrupo.SelectedItem.Text;
DTDatosClientes = ObjFinanzas.DtResultados;
GvDatosCliente.DataSource = DTDatosClientes;
if (DTDatosClientes.Rows.Count > 0 )
{
LtlTotalVentas.Text = DTDatosClientes.SUM("Ventas").ToString().FormatoNumero();
LtlCarteraFinalCliente.Text = String.Format("$ {0}", DTDatosClientes.SUM("Pagado").ToString().FormatoNumero());
LtlMediaDiasRecuperacionCliente.Text = String.Format("{0} Días", (DTDatosClientes.SUM("TotalDias") / DTDatosClientes.SUM("TotalNumVentas")).ToString().FormatoNumero());
LtlRotacionCliente.Text = (DTDatosClientes.SUM("Pagado") / DTDatosClientes.SUM("Ventas")).ToString().FormatoNumero();
}
else
{
limpiaIndicadoresCliente();
}
}
ObjFinanzas.Dispose();
GvDatosCliente.DataBind();
UPRRPClientes.Update();
}
else if (opcion == 2)
{
if (ObjFinanzas.GetRotacionCarteraProveedores(FechaInicio, FechaFin, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero(), TipoProveedor,Sucursales, DdlProveedor.SelectedValue.ToEntero(), FechaFinCobranza)) // ((DdlTipoProveedor.SelectedValue.ToEntero() == 3)? -1 : DdlTipoProveedor.SelectedValue.ToEntero()), -1
{
GvDatosProveedores.Columns[0].HeaderText = DdlGrupo.SelectedItem.Text;
DTDatosProveedores = ObjFinanzas.DtResultados;
GvDatosProveedores.DataSource = DTDatosProveedores;
if (DTDatosProveedores.Rows.Count > 0)
{
LtlTotalCompras.Text = DTDatosProveedores.SUM("Compras").ToString().FormatoNumero();
LtlCarteraFinalProveedor.Text = String.Format("$ {0}", DTDatosProveedores.SUM("Pagado").ToString().FormatoNumero());
LtlMediaDiasRecuperacionProveedor.Text = String.Format("{0} Días", (DTDatosProveedores.SUM("TotalDias")/ DTDatosProveedores.SUM("TotalNumCompras")).ToString().FormatoNumero());
LtlRotacionProveedor.Text = (DTDatosProveedores.SUM("Pagado") / DTDatosProveedores.SUM("Compras")).ToString().FormatoNumero();
}
else
{
limpiaIndicadoresProveedor();
}
}
ObjFinanzas.Dispose();
GvDatosProveedores.DataBind();
UPRRPProveedores.Update();
}
}
protected void CargaIndicadoresResumen()
{
//Carga Indicadores Clientes en Tab Resumen
LtlTotalVentasResumen.Text = DTDatosClientes.SUM("Ventas").ToString().FormatoNumero();
LtlCarteraFinalClienteResumen.Text = String.Format("$ {0}", ( DTDatosClientes.SUM("Pagado").ToString().FormatoNumero() == "NaN") ? "0" : DTDatosClientes.SUM("Pagado").ToString().FormatoNumero());
LtlMediaDiasRecuperacionClienteResumen.Text = String.Format("{0} Días", ((DTDatosClientes.SUM("TotalDias") / DTDatosClientes.SUM("TotalNumVentas")).ToString().FormatoNumero()) == "NaN" ? "0" : (DTDatosClientes.SUM("TotalDias") / DTDatosClientes.SUM("TotalNumVentas")).ToString().FormatoNumero());
LtlRotacionClienteResumen.Text = (DTDatosClientes.SUM("Pagado") / DTDatosClientes.SUM("Ventas")).ToString().FormatoNumero() == "NaN" ? "0" : (DTDatosClientes.SUM("Pagado") / DTDatosClientes.SUM("Ventas")).ToString().FormatoNumero();
//Carga Indicadores Proveedores en Tab Resumen
LtlTotalComprasResumen.Text = DTDatosProveedores.SUM("Compras").ToString().FormatoNumero();
LtlCarteraFinalProveedorResumen.Text = String.Format("$ {0}", (DTDatosProveedores.SUM("Pagado").ToString().FormatoNumero()) == "NaN" ? "0" : DTDatosProveedores.SUM("Pagado").ToString().FormatoNumero());
LtlMediaDiasRecuperacionProveedorResumen.Text = String.Format("{0} Días", ((DTDatosProveedores.SUM("TotalDias") / DTDatosProveedores.SUM("TotalNumCompras")).ToString().FormatoNumero()) == "NaN" ? "0" : (DTDatosProveedores.SUM("TotalDias") / DTDatosProveedores.SUM("TotalNumCompras")).ToString().FormatoNumero());
LtlRotacionProveedorResumen.Text = ((DTDatosProveedores.SUM("Pagado") / DTDatosProveedores.SUM("Compras")).ToString().FormatoNumero() == "NaN" ? "0" : (DTDatosProveedores.SUM("Pagado") / DTDatosProveedores.SUM("Compras")).ToString().FormatoNumero());
//Carga Indicador Diferencia Dias
LtlMediaDiasRecuperacionResumen.Text = String.Format("{0} Días", (( (DTDatosClientes.SUM("TotalDias") / DTDatosClientes.SUM("TotalNumVentas")) - (DTDatosProveedores.SUM("TotalDias") / DTDatosProveedores.SUM("TotalNumCompras"))).ToString().FormatoNumero()) == "NaN" ? "0" : ( (DTDatosClientes.SUM("TotalDias") / DTDatosClientes.SUM("TotalNumVentas")) - (DTDatosProveedores.SUM("TotalDias") / DTDatosProveedores.SUM("TotalNumCompras"))).ToString().FormatoNumero());
UPRRPResumen.Update();
}
protected void limpiaIndicadoresCliente()
{
LtlTotalVentas.Text = "0".FormatoNumero();
LtlCarteraFinalCliente.Text = "0".FormatoNumero();
LtlMediaDiasRecuperacionCliente.Text = "0 Días";
LtlRotacionCliente.Text = "0".FormatoNumero();
}
protected void limpiaIndicadoresProveedor()
{
LtlTotalCompras.Text = "0".FormatoNumero();
LtlCarteraFinalProveedor.Text = "0".FormatoNumero();
LtlMediaDiasRecuperacionProveedor.Text = "0 Días";
LtlRotacionProveedor.Text = "0".FormatoNumero();
}
protected void BtnConsultar_Click(object sender, EventArgs e)
{
CargaDatos(Tab.ActiveTabIndex);
}
protected void GvDatosCliente_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (GvDatosCliente.Columns[0].HeaderText == "Cliente")
{
//e.Row.FCHyperLink("HypCliente").NavigateUrl = string.Format("/Ventas/Clientes.aspx?CveCliente={0}", e.Row.DBCampo("CveCliente"));
e.Row.FCHyperLink("HypCliente").NavigateUrl = string.Format("/Finanzas/RepRotacionCarteraDetalle.aspx?CveCliente={0}&FechaInicio={1}&FechaFin={2}&FechaFinCobranza={3}", e.Row.DBCampo("CveCliente"), TxtFechaI.Text, TxtFechaF.Text, TxtFechaCobranza.Text);
}
else
{
e.Row.FCHyperLink("HypCliente").ForeColor = System.Drawing.Color.Black;
}
}
}
protected void GvDatosProveedores_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (GvDatosProveedores.Columns[0].HeaderText == "Proveedor")
{
e.Row.FCHyperLink("HypProveedor").NavigateUrl = string.Format("/Compras/Proveedores.aspx?CveProveedor={0}", e.Row.DBCampo("CveProveedor"));
}
else
{
e.Row.FCHyperLink("HypProveedor").ForeColor = System.Drawing.Color.Black;
}
}
}
#endregion
#region "CARGA DDL"
private void CargaSucursales()
{
DdlSucursal.DataSource = get_GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa);
DdlSucursal.DataBind();
//DdlSucursal.Items.Insert(0, new ListItem("Todos", "-1"));
//DdlSucursal.SelectedValue = "-1";
}
private void CargaClientes()
{
DdlCliente.DataSource = get_GlobalDTCliente(UsuarioActual.CveEmpresa);
DdlCliente.DataBind();
DdlCliente.Items.Insert(0, new ListItem("Todos", "-1"));
DdlCliente.SelectedValue = "-1";
}
private void CargaProveedores()
{
DdlProveedor.DataSource = get_GlobalDTCompProveedores(UsuarioActual.CveEmpresa);
DdlProveedor.DataBind();
DdlProveedor.Items.Insert(0, new ListItem("Todos", "-1"));
DdlProveedor.SelectedValue = "-1";
}
private void CargaVendedores()
{
DdlVendedores.DataSource = get_GlobalDTVendedores(UsuarioActual.CveEmpresa);
DdlVendedores.DataBind();
//DdlVendedores.Items.Insert(0, new ListItem("Todos", "-1"));
//DdlVendedores.SelectedValue = "-1";
}
#endregion
#region "CARGA CAMBIO REPORTE"
private void MuestraFiltrosResumen()
{
DdlGrupo.Items.Clear();
DdlGrupo.Items.Insert(0, new ListItem("Cliente vs Proveedor", "1"));
DdlGrupo.SelectedValue = "1";
DivDdlCliente.Visible = false;
DivDdlVendedor.Visible = false;
DivDdlProveedor.Visible = false;
DivDdlTipoProveedor.Visible = false;
DivDdlSucursal.Visible = false;
UpFiltros.Update();
}
private void MuestraFiltrosCliente()
{
DdlGrupo.Items.Clear();
DdlGrupo.Items.Insert(0, new ListItem("Cliente", "1"));
DdlGrupo.Items.Insert(1, new ListItem("Vendedor", "2"));
DdlGrupo.Items.Insert(2, new ListItem("Sucursal", "3"));
DdlGrupo.SelectedValue = "1";
DivDdlCliente.Visible = true;
DivDdlVendedor.Visible = true;
DivDdlProveedor.Visible = false;
DivDdlTipoProveedor.Visible = false;
DivDdlSucursal.Visible = true;
UpFiltros.Update();
}
private void MuestraFiltrosProveedor()
{
DdlGrupo.Items.Clear();
DdlGrupo.Items.Insert(0, new ListItem("Proveedor", "1"));
DdlGrupo.Items.Insert(1, new ListItem("Tipo Proveedor", "2"));
DdlGrupo.Items.Insert(2, new ListItem("Sucursal", "3"));
DdlGrupo.SelectedValue = "1";
DivDdlProveedor.Visible = true;
DivDdlTipoProveedor.Visible = true;
DivDdlCliente.Visible = false;
DivDdlVendedor.Visible = false;
DivDdlSucursal.Visible = true;
UpFiltros.Update();
}
protected void Tab_ActiveTabChanged(object sender, EventArgs e)
{
if (Tab.ActiveTabIndex == 1)
{
MuestraFiltrosCliente();
CargaDatos(1);
}
else if (Tab.ActiveTabIndex == 2)
{
MuestraFiltrosProveedor();
CargaDatos(2);
}
else if (Tab.ActiveTabIndex == 0)
{
MuestraFiltrosResumen();
CargaDatos(0);
}
}
#endregion
#region "GENERAR EXCEL"
protected void GeneraPDF(string Formato = "PDF")
{
List<ReportParameter> @params = new List<ReportParameter>();
System.IO.FileInfo Imagen = new System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png");
var logouri = string.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa);
@params.Add(new ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa));
@params.Add(new ReportParameter("FechaInicio", TxtFechaI.Text));
@params.Add(new ReportParameter("FechaFin", TxtFechaF.Text));
@params.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
@params.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString()));
@params.Add(new ReportParameter("Grupo", DdlGrupo.SelectedItem.Text));
@params.Add(new ReportParameter("TipoReporte", Tab.ActiveTab.HeaderText));
@params.Add(new ReportParameter("Sucursal", ModExtensiones.GetSelectedText(DdlSucursal) == "" ? "Todos" : ModExtensiones.GetSelectedText(DdlSucursal)));
@params.Add(new ReportParameter("LogoPath", Imagen.Exists ? $"file://{Imagen.FullName}" : ""));
if (Tab.ActiveTabIndex == 1)
{
@params.Add(new ReportParameter("Filtro1", DdlCliente.SelectedItem.Text));
@params.Add(new ReportParameter("Filtro2", ModExtensiones.GetSelectedText(DdlVendedores) == "" ? "Todos" : ModExtensiones.GetSelectedText(DdlVendedores)));
ImprimirPDF("Empresas/Grales/Formatos/RepRotacionCarteraCliente.rdlc", DTDatosClientes, @params, "ReporteRotacionCarteraCliente", Formato);
}
else
{
@params.Add(new ReportParameter("Filtro1", DdlProveedor.SelectedItem.Text));
@params.Add(new ReportParameter("Filtro2", ModExtensiones.GetSelectedText(DdlTipoProveedor) == "" ? "Ambos" : ModExtensiones.GetSelectedText(DdlTipoProveedor)));
ImprimirPDF("Empresas/Grales/Formatos/RepRotacionCarteraProveedor.rdlc", DTDatosProveedores, @params, "ReporteRotacionCarteraProveedor", Formato);
}
}
protected void ImgGenerarExcel_Click(object sender, EventArgs e)
{
if (Tab.ActiveTabIndex == 0)
{
}else
{
GeneraPDF("Excel");
}
}
#endregion
}