예제 #1
0
    protected Graficas listarUsuarios()
    {
        Graficas            usuarios = new Graficas();
        DAOReportesGraficas datos    = new DAOReportesGraficas();

        DataTable datosUsuario = datos.obtenerUsuarios();
        DataTable datosFinal   = usuarios.Registrados;
        DataRow   fila;


        for (int i = 0; i < datosUsuario.Rows.Count; i++)
        {
            fila = datosFinal.NewRow();

            fila["id_user"]   = int.Parse(datosUsuario.Rows[i]["id_user"].ToString());
            fila["nombre"]    = datosUsuario.Rows[i]["nombre"].ToString();
            fila["correo"]    = datosUsuario.Rows[i]["correo"].ToString();
            fila["nom_user"]  = datosUsuario.Rows[i]["nom_user"].ToString();
            fila["sitio_web"] = datosUsuario.Rows[i]["sitio_web"].ToString();


            datosFinal.Rows.Add(fila);
        }

        return(usuarios);
    }
예제 #2
0
        public Graficas GetGrafica(Graficas graficas)
        {
            graficas.ListEjeY = new List <EjeY>();
            ////var items = new List<CatalogoEspecifico>();
            ////var items = new List<CatalogoEspecifico>();
            //var parametro = new SqlParameterItem("@pResultado", SqlDbType.Bit, ParameterDirection.Output);
            var reader = Helper.ExecuteReader("[SACsp_SacWeb_OperacionVsRojo]");

            while (reader.Read())
            {
                var valores = new List <float>
                {
                    reader.GetInt32(reader.GetOrdinal("Primero")),
                    reader.GetInt32(reader.GetOrdinal("Segundo")),
                    reader.GetInt32(reader.GetOrdinal("Tercero")),
                    reader.GetInt32(reader.GetOrdinal("Cuarto"))
                };
                graficas.ListEjeY.Add(new EjeY()
                {
                    Agrupador = reader.GetString(reader.GetOrdinal("NombreAduana")),
                    Valores   = new List <float>(valores),
                    Nombre    = Convert.ToString(reader.GetInt32(reader.GetOrdinal("Orden")))
                });
            }
            reader.Close();
            return(graficas);
        }
예제 #3
0
        public Graficas GetGrafica(Graficas graficas)
        {
            graficas.ListEjeY = new List <EjeY>();
            ////var items = new List<CatalogoEspecifico>();
            ////var items = new List<CatalogoEspecifico>();
            var parametros = new List <SqlParameterItem>();

            parametros.Add(new SqlParameterItem("@pIdEmpresa ", SqlDbType.Int, graficas.IdEmpresa));
            parametros.Add(new SqlParameterItem("@pIdCliente ", SqlDbType.Int, graficas.IdCliente));
            var reader = Helper.ExecuteReader("SACsp_SacWeb_CalculaDashboarIngresos", parametros);

            while (reader.Read())
            {
                var valores = new List <float>
                {
                    (float)reader.GetDouble(reader.GetOrdinal("Primer")),
                    (float)reader.GetDouble(reader.GetOrdinal("Segundo")),
                    (float)reader.GetDouble(reader.GetOrdinal("Tercero")),
                    (float)reader.GetDouble(reader.GetOrdinal("Cuarto"))
                };
                graficas.ListEjeY.Add(new EjeY()
                {
                    Nombre  = Convert.ToString(reader.GetInt32(reader.GetOrdinal("Ano"))),
                    Valores = new List <float>(valores)
                });
            }

            reader.Close();
            return(graficas);
        }
예제 #4
0
        public Graficas GenerarGrafica(Graficas graficas)
        {
            //en cada case se pide primero el eje x luego se llenan los datos del eje y
            graficas = CalcularBaseDashboard(graficas);
            switch (graficas.EnumeradoresGraficas)
            {
            case EnumeradoresGraficas.DiasDespachoXAduanaTrimestre:
                graficas = GenerarEjeXMes(graficas);
                var diasDespacho = new DiasDespachoXTrimestre();
                graficas = diasDespacho.GetGrafica(graficas);
                break;

            case EnumeradoresGraficas.OperacionesXAduanaVsRojo:
                graficas = GenerarEjeXMes(graficas);
                var operacionXAduana = new OperacionesXAduanaVsRojo();
                graficas = operacionXAduana.GetGrafica(graficas);
                break;

            case EnumeradoresGraficas.IngresoXTrimestreFacturado:
                graficas = GenerarEjeXMes(graficas);
                var ingresosTrimestre = new IngresosXTrimestre();
                graficas = ingresosTrimestre.GetGrafica(graficas);
                break;

            case EnumeradoresGraficas.IngresoXTrimestreCobrado:
                break;

            case EnumeradoresGraficas.SaldosPendientes:
                var saldosPendientes = new SaldosPendientes();
                graficas = saldosPendientes.GetGrafica(graficas);
                break;
            }
            return(graficas);
        }
예제 #5
0
        public Graficas GenerarEjeXMes(Graficas graficas)
        {
            graficas.EjeX = new List <string>();
            IniciarConexion();
            var reader = helper.ExecuteReader("[SACsp_SacWeb_Dashboard_DamePeriodoMensual]");

            while (reader.Read())
            {
                graficas.EjeX.Add(reader.GetString(reader.GetOrdinal("Mes")));
            }
            return(graficas);
        }
예제 #6
0
        public Graficas CalcularBaseDashboard(Graficas graficas)
        {
            //checar generacion de log
            var parametros = new List <SqlParameterItem>();

            parametros.Add(new SqlParameterItem("@pIdEmpresa", SqlDbType.SmallInt, graficas.IdEmpresa));
            parametros.Add(new SqlParameterItem("@pIdCliente", SqlDbType.SmallInt, graficas.IdCliente));
            parametros.Add(new SqlParameterItem("@pIdPatente", SqlDbType.SmallInt, graficas.IdPatente));
            parametros.Add(new SqlParameterItem("@pIdTipoOperacion  ", SqlDbType.SmallInt, graficas.IdTipoOperacion));
            parametros.Add(new SqlParameterItem("@pDameAvisosConsolidados   ", SqlDbType.Bit, graficas.EsConsolidado));
            parametros.Add(new SqlParameterItem("@pIdAduana", SqlDbType.SmallInt, graficas.IdAduana));
            IniciarConexion();
            //InicializaConexion(listNotificaciones.IdEmpresa);
            //parametros.Add(new SqlParameterItem("@Visto", SqlDbType.Bit, ParameterDirection.ReturnValue));
            var reader = helper.ExecuteNonQuery("SACsp_SacWeb_CalculaDashboardOp", parametros);

            return(graficas);
        }
예제 #7
0
        public List <Graficas> getDatosGrafica(int idDispositivos, int idVariable, int opcion, string fechaIni, string fechaFin)
        {
            List <Graficas> graficas   = new List <Graficas>();
            SqlConnection   connection = null;
            DataTable       dt         = new DataTable();

            try
            {
                using (connection = Conexion.ObtieneConexion("ConexionBD"))
                {
                    SqlDataReader consulta;
                    connection.Open();

                    var parametros = new[]
                    {
                        ParametroAcceso.CrearParametro("@idDispositivo", SqlDbType.Int, idDispositivos, ParameterDirection.Input),
                        ParametroAcceso.CrearParametro("@idVariable", SqlDbType.Int, idVariable, ParameterDirection.Input),
                        ParametroAcceso.CrearParametro("@ejeX", SqlDbType.Int, opcion, ParameterDirection.Input),
                        ParametroAcceso.CrearParametro("@fechaIni", SqlDbType.VarChar, fechaIni, ParameterDirection.Input),
                        ParametroAcceso.CrearParametro("@fechaFin", SqlDbType.VarChar, fechaFin, ParameterDirection.Input)
                    };
                    consulta = Ejecuta.ProcedimientoAlmacenado(connection, "dbo.ConsultaValoresBitacoraGrafica", parametros);

                    dt.Load(consulta);
                    connection.Close();
                }

                foreach (DataRow row in dt.Rows)
                {
                    Graficas grafica = new Graficas();

                    grafica.label = row["label"].ToString();
                    grafica.valor = row["valor"].ToString();

                    graficas.Add(grafica);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            return(graficas);
        }
예제 #8
0
        public Graficas GetGrafica(Graficas graficas)
        {
            graficas.ListEjeY = new List <EjeY>();
            var parametro = new SqlParameterItem("@pIdEmpresa ", SqlDbType.Int, graficas.IdEmpresa);
            var reader    = Helper.ExecuteReader("[SACsp_SacWeb_CalculaDashboardSaldos]", parametro);

            while (reader.Read())
            {
                var valores = new List <float>
                {
                    (float)reader.GetDouble(reader.GetOrdinal("SaldoPendiente")),
                };
                graficas.ListEjeY.Add(new EjeY()
                {
                    Nombre  = reader.GetString(reader.GetOrdinal("NombreClienteFactura")),
                    Valores = new List <float>(valores)
                });
            }
            reader.Close();
            return(graficas);
        }
예제 #9
0
        public Graficas GetGrafica(Graficas graficas)
        {
            graficas.ListEjeY = new List <EjeY>();
            ////var items = new List<CatalogoEspecifico>();
            var parametros = new List <SqlParameterItem>();

            parametros.Add(new SqlParameterItem("@pIdEmpresa", SqlDbType.SmallInt, graficas.IdEmpresa));
            parametros.Add(new SqlParameterItem("@pIdCliente", SqlDbType.SmallInt, graficas.IdCliente));
            parametros.Add(new SqlParameterItem("@pIdPatente", SqlDbType.SmallInt, graficas.IdPatente));
            parametros.Add(new SqlParameterItem("@pIdAduana", SqlDbType.SmallInt, graficas.IdAduana));
            //InicializaConexion(listNotificaciones.IdEmpresa);
            //parametros.Add(new SqlParameterItem("@Visto", SqlDbType.Bit, ParameterDirection.ReturnValue));
            var reader = Helper.ExecuteReader("SACsp_SacWeb_CalculaDashboardClientesBaja", parametros);

            while (reader.Read())
            {
                var valores = new List <float>
                {
                    reader.GetInt32(reader.GetOrdinal("TotalAnterior")),
                    reader.GetInt32(reader.GetOrdinal("TotalActual")),
                    reader.GetInt32(reader.GetOrdinal("VariacionMismos")),
                    reader.GetInt32(reader.GetOrdinal("PorcVariacionMismos")),
                    reader.GetInt32(reader.GetOrdinal("TotalNuevos")),
                    reader.GetInt32(reader.GetOrdinal("PorcNuevo")),
                    reader.GetInt32(reader.GetOrdinal("TotalPerdidos")),
                    reader.GetInt32(reader.GetOrdinal("PorcPerdido"))
                };
                graficas.ListEjeY.Add(new EjeY()
                {
                    Nombre  = "Bajas",
                    Valores = new List <float>(valores)
                });
            }
            reader.Close();
            return(graficas);
        }
        //{
        //    new CuadroInicio{ Titulo="Obras en proceso",Cantidad="10", Icono=MaterialDesignThemes.Wpf.PackIconKind.AccountBalance},
        //    new CuadroInicio{ Titulo="Dinero Caja",Cantidad="1000", Icono=MaterialDesignThemes.Wpf.PackIconKind.AccountBalance},
        //    new CuadroInicio{ Titulo="Obras en proceso",Cantidad="10", Icono=MaterialDesignThemes.Wpf.PackIconKind.AccountBalance}
        //};]


        public async Task Inicializar()
        {
            try
            {
                var totalIngreso = 0d;
                var totalEgreso  = 0d;
                var cashflow     = new ChartValues <DateModel>();
                var egresos      = new ChartValues <DateModel>();
                CuentaCorrientes   = new ObservableCollection <CuentaCorrienteDto>(await Servicios.ApiProcessor.GetApi <CuentaCorrienteDto[]>("CuentaCorriente/GetAll"));
                ComprobanteCompras = new ObservableCollection <ComprobanteCompraDto>(await ApiProcessor.GetApi <ComprobanteCompraDto[]>("ComprobanteCompra/GetAll"));
                var comprobanteSalida = await ApiProcessor.GetApi <decimal[]>("ComprobanteSalida/GetPorcentaje");

                var comprobanteEntrada = await ApiProcessor.GetApi <decimal[]>("ComprobanteEntrada/GetPorcentaje");

                DetalleCaja = new ObservableCollection <DetalleCajaDto>(await Servicios.ApiProcessor.GetApi <DetalleCajaDto[]>("DetalleCaja/GetAll"));
                Oficina     = await ApiProcessor.GetApi <decimal>("ComprobanteCompra/GetOficina");

                Jornales = new ObservableCollection <JornalDto>(await ApiProcessor.GetApi <JornalDto[]>("Jornal/GetAll"));
                Jornales.Sum(x => x.Repuestos);
                Jornales.Sum(x => x.Gasolina);
                Obras = await ApiProcessor.GetApi <int[]>("Obra/NumeroPendientes");

                Presupuestos = new ObservableCollection <PresupuestoDto>(await ApiProcessor.GetApi <PresupuestoDto[]>("Presupuesto/GetAprobado"));
                if (CuentaCorrientes != null)
                {
                    foreach (var i in CuentaCorrientes)
                    {
                        Operaciones = new List <OperacionDto>(await ApiProcessor.GetApi <OperacionDto[]>($"Operacion/GetByBanco/{i.BancoId}"));
                        var values = new ChartValues <DateModel>();

                        var total = 0d;
                        foreach (var item in Operaciones.Where(x => x.FechaEmision.Value.Year == DateTime.Now.Year).OrderBy(x => x.FechaEmision))
                        {
                            if (item.Haber != 0)
                            {
                                total       -= (double)item.Haber;
                                totalEgreso += (double)item.Haber;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.FechaEmision.Value, TipoMovimiento = TipoMovimiento.Egreso, Monto = (decimal)item.Haber
                                });
                            }
                            else
                            {
                                total        += (double)item.Debe;
                                totalIngreso += (double)item.Debe;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.FechaEmision.Value, TipoMovimiento = TipoMovimiento.Ingreso, Monto = (decimal)item.Debe
                                });
                            }
                            values.Add(new DateModel {
                                DateTime = item.FechaEmision.Value, Value = total
                            });
                        }
                        SeriesCollection.Add(new LineSeries {
                            Values = values, Title = $"{i.Banco.RazonSocial}"
                        });
                        Descontado  = (decimal)Operaciones.Where(x => x.Descontado != null).Sum(x => x.Descontado);
                        Debe        = (decimal)Operaciones.Where(x => x.Debe != null).Sum(x => x.Debe);
                        Haber       = (decimal)Operaciones.Where(x => x.Haber != null).Sum(x => x.Haber);
                        Diferencia += Debe - Haber - Descontado;
                    }
                    Cuadros.Add(new CuadroInicio {
                        Titulo = $"Saldo de bancos", Cantidad = $"{Diferencia.ToString("C")}", Icono = MaterialDesignThemes.Wpf.PackIconKind.AccountBalance
                    });
                }
                if (DetalleCaja != null)
                {
                    var values = new ChartValues <DateModel>();
                    foreach (var i in DetalleCaja.GroupBy(x => x.CajaId))
                    {
                        var total = 0d;
                        foreach (var item in i)
                        {
                            if (item.TipoMovimiento == Constantes.TipoMovimiento.Egreso)
                            {
                                total -= (double)item.Monto;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.Caja.FechaApertura, TipoMovimiento = TipoMovimiento.Egreso, Monto = (decimal)item.Monto
                                });
                            }
                            else
                            {
                                total += (double)item.Monto;
                                Graficas.Add(new ClaseGrafico {
                                    Fecha = item.Caja.FechaApertura, TipoMovimiento = TipoMovimiento.Ingreso, Monto = (decimal)item.Monto
                                });
                            }

                            values.Add(new DateModel {
                                DateTime = item.Caja.FechaApertura, Value = total
                            });
                        }
                    }
                    SeriesCollection.Add(new LineSeries {
                        Values = values, Title = $"Caja"
                    });
                }
                var suma   = 0d;
                var egreso = 0d;
                foreach (var item in Graficas.OrderBy(x => x.Fecha))
                {
                    if (item.TipoMovimiento == Constantes.TipoMovimiento.Egreso)
                    {
                        egreso += (double)item.Monto;
                        egresos.Add(new DateModel {
                            DateTime = item.Fecha.Date, Value = egreso
                        });
                    }
                    else
                    {
                        suma += (double)item.Monto;
                        cashflow.Add(new DateModel {
                            DateTime = item.Fecha.Date, Value = suma
                        });
                    }
                }

                SeriesCashFlow.Add(new LineSeries {
                    Values = cashflow, Title = $"Ingresos"
                });
                SeriesCashFlow.Add(new LineSeries {
                    Values = egresos, Title = $"Egresos"
                });
                YCashFlow = value => value.ToString("C");
                XCashFlow = value =>
                {
                    try
                    {
                        return(new DateTime((long)(value * TimeSpan.FromDays(1).Ticks * 30.44)).ToString("M"));
                    }
                    catch (Exception)
                    {
                        return(DateTime.Now.ToString("M"));
                    }
                };
                YFormatter = value => value.ToString("C");

                XFormatter = value =>
                {
                    try
                    {
                        return(new DateTime((long)(value * TimeSpan.FromDays(1).Ticks * 30.44)).ToString("M"));
                    }
                    catch (Exception)
                    {
                        return(DateTime.Now.ToString("M"));
                    }
                };

                if (await ApiProcessor.GetApi <bool>("Caja/CajasEstado"))
                {
                    var caja = await Servicios.ApiProcessor.GetApi <CajaDto>("Caja/CajaAbierta");

                    var     detallesCaja = new ObservableCollection <DetalleCajaDto>(await Servicios.ApiProcessor.GetApi <DetalleCajaDto[]>($"DetalleCaja/GetByCaja/{caja.Id}"));
                    decimal MontoSistema = 0;
                    if (detallesCaja.Count > 0)
                    {
                        MontoSistema = detallesCaja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Ingreso).Sum(x => x.Monto) - detallesCaja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Egreso).Sum(x => x.Monto);
                    }
                    Cuadros.Add(new CuadroInicio {
                        Titulo = $"Saldo de la caja", Cantidad = $"{MontoSistema.ToString("C")}", Icono = MaterialDesignThemes.Wpf.PackIconKind.CashRegister, Color = "#74D774"
                    });
                }
                else
                {
                    Cuadros.Add(new CuadroInicio {
                        Titulo = $"La caja esta cerrada", Cantidad = "", Icono = MaterialDesignThemes.Wpf.PackIconKind.CashRegister, Color = "#74D774 "
                    });
                }
                Cuadros.Add(new CuadroInicio {
                    Titulo = $"Gastos de oficina", Cantidad = $"{Oficina.ToString("C")}", Icono = MaterialDesignThemes.Wpf.PackIconKind.Shredder, Color = "#F3E5A1"
                });
                Cuadros.Add(new CuadroInicio {
                    Titulo = $"Cantidad de obras finalizadas", Cantidad = $"{Obras[0]} de {Obras[1]}", Icono = MaterialDesignThemes.Wpf.PackIconKind.TransmissionTower, Color = "#D3B8DD "
                });
                var Gasolina = Jornales.Sum(x => x.Gasolina);
                var Repuesto = Jornales.Sum(x => x.Repuestos);
                var Compras  = ComprobanteCompras.Where(x => NoObras.Obras.Contains(x.Id)).Sum(x => x.Pagando);
                Total = Gasolina + Repuesto + Compras;
                Series.Add(new PieSeries {
                    Title = "Gasolina", Values = new ChartValues <decimal>(new decimal[] { Gasolina }), DataLabels = true, LabelPoint = PointLabel
                });
                Series.Add(new PieSeries {
                    Title = "Repuesto", Values = new ChartValues <decimal>(new decimal[] { Repuesto }), DataLabels = true, LabelPoint = PointLabel
                });
                Series.Add(new PieSeries {
                    Title = "Compras", Values = new ChartValues <decimal>(new decimal[] { Compras }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesSalida.Add(new PieSeries {
                    Title = "Blanco", Values = new ChartValues <decimal>(new decimal[] { comprobanteSalida[0] }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesSalida.Add(new PieSeries {
                    Title = "Negro", Values = new ChartValues <decimal>(new decimal[] { comprobanteSalida[1] }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesEntrada.Add(new PieSeries {
                    Title = "Blanco", Values = new ChartValues <decimal>(new decimal[] { comprobanteEntrada[0] }), DataLabels = true, LabelPoint = PointLabel
                });
                SeriesEntrada.Add(new PieSeries {
                    Title = "Negro", Values = new ChartValues <decimal>(new decimal[] { comprobanteEntrada[1] }), DataLabels = true, LabelPoint = PointLabel
                });
                var Cobrado = Presupuestos.Sum(x => x.CobradoSinImpuestos);
                TotalPresupuesto = Presupuestos.Sum(x => x.TotalSinImpuestos);
                var DiferenciaPresupuesto = TotalPresupuesto - Cobrado;
                SeriesPresupuesto.Add(new PieSeries {
                    Title = "Cobrado", Values = new ChartValues <decimal>(new decimal[] { Cobrado }), DataLabels = true, LabelPoint = PointLabelPresupuesto
                });
                SeriesPresupuesto.Add(new PieSeries {
                    Title = "Faltante", Values = new ChartValues <decimal>(new decimal[] { DiferenciaPresupuesto }), DataLabels = true, LabelPoint = PointLabelPresupuesto
                });
            }
            catch (Exception)
            {
                MessageBox.Show("No se pudo cargar por problemas de conexion.");
            }
        }