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 @params = new List(); 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 }