示例#1
0
        private void ActualizarConsumoGrafico(string indicador)
        {
            var mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones(indicador))
                             .FindAll().Where(x => x.Fecha >= dtpFechaComienzo.Value && x.Fecha <= dtpFechaFin.Value).OrderBy(x => x.Fecha);

            //double totalMensual = 0;

            foreach (var mes in mediciones)
            {
                //totalMensual = mediciones.Where(x => x.Fecha.Month == m).Sum(x => x.Dato);
                switch (indicador)
                {
                case "agua":
                    chtConsumoAgua.Series[UtilGui.FormatIndicador(indicador)].Points.AddXY(mes.Fecha.ToShortDateString(), mes.Dato);
                    break;

                case "electricidad":
                    chtConsumoElectricidad.Series[UtilGui.FormatIndicador(indicador)].Points.AddXY(mes.Fecha.ToShortDateString(), mes.Dato);
                    break;

                case "gas":
                    chtConsumoGas.Series[UtilGui.FormatIndicador(indicador)].Points.AddXY(mes.Fecha.ToShortDateString(), mes.Dato);
                    break;
                }
            }
        }
示例#2
0
        private void ActualizarTotalDineroConsumo(string indicador, Label lblTotalDinero, DateTime fechaComienzo, DateTime fechaFin)
        {
            var costos = db.GetCollection <Costo>(UtilGui.GetStrCostos(indicador)).FindAll();

            var mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones(indicador))
                             .Find(x => x.Fecha >= fechaComienzo && x.Fecha <= fechaFin);

            lblTotalDinero.Text = "0";

            var costoPrevio = costos.Where(x => x.Fecha < fechaComienzo).OrderBy(x => x.Fecha).LastOrDefault();

            if (costoPrevio == null)
            {
                return;
            }
            var costosAsociados = costos.Where(x => x.Fecha >= fechaComienzo && x.Fecha < fechaFin).OrderBy(x => x.Fecha);

            if (costosAsociados == null)
            {
                return;
            }
            double totalMedicionParcial, totalCosto = 0; // costoPrevio.Valor * totalMedicionParcial;

            foreach (var c in costosAsociados)
            {
                totalMedicionParcial = mediciones.Where(x => x.Fecha >= costoPrevio.Fecha && x.Fecha < c.Fecha).Sum(x => x.Dato);
                totalCosto          += costoPrevio.Valor * totalMedicionParcial;
                costoPrevio          = c;
            }

            totalMedicionParcial = mediciones.Where(x => x.Fecha >= costoPrevio.Fecha && x.Fecha < fechaFin).Sum(x => x.Dato);
            totalCosto          += costoPrevio.Valor * totalMedicionParcial;

            lblTotalDinero.Text = totalCosto.ToString();
        }
示例#3
0
        private void btnNuevoMedidor_Click(object sender, EventArgs e)
        {
            frmMedidor medidorAgua = new frmMedidor(db, indicador);

            medidorAgua.ShowDialog(this);
            UtilGui.ActualizarMedidores(indicador, db, this.cboMedidor);
        }
示例#4
0
        public ucMedicion(string indicador, LiteDatabase db)
        {
            InitializeComponent();
            this.db           = db;
            this.indicador    = indicador;
            lblNombreEje.Text = UtilGui.FormatIndicador(indicador);
            UtilGui.ActualizarMedidores(indicador, db, this.cboMedidor);
            this.lblUnidad.Text = UtilGui.GetUnidad(indicador);
            switch (indicador)
            {
            case "agua":
            {
                //groupBox1.BackColor = Color.LightBlue;
                this.BackColor = Color.AliceBlue;
                break;
            }

            case "electricidad": this.BackColor = Color.LightPink;
                break;

            case "gas": this.BackColor = Color.LightYellow;
                break;
            }
            ActualizarHistorialMediciones();
        }
示例#5
0
        private void ActualizarHistorialMediciones()
        {
            var mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones(indicador));

            dgvHistorialAgua.Columns.Clear();
            if (mediciones.Count() != 0)
            {
                BindingSource source = new BindingSource();
                source.DataSource = from m in mediciones.FindAll()
                                    select new { m.Id, m.Fecha, Medidor = m.Medidor.Codigo, m.Dato, Unidad = lblUnidad.Text, m.Detalle };
                dgvHistorialAgua.DataSource = source;
                var columnEditar = new DataGridViewButtonColumn();
                var columnBorrar = new DataGridViewButtonColumn();
                columnEditar.Name = "Editar";
                columnEditar.Text = "Editar";
                columnEditar.UseColumnTextForButtonValue = true;
                dgvHistorialAgua.Columns.Add(columnEditar);
                columnBorrar.Name = "Borrar";
                columnBorrar.Text = "Borrar";
                columnBorrar.UseColumnTextForButtonValue = true;
                dgvHistorialAgua.Columns.Add(columnBorrar);

                dgvHistorialAgua.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
                dgvHistorialAgua.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                dgvHistorialAgua.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                dgvHistorialAgua.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                dgvHistorialAgua.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                dgvHistorialAgua.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            }
            //dgvHistorialAgua.ClearSelection();
        }
示例#6
0
        private void ActualizarTotalesIndicadores()
        {
            var anio = Convert.ToInt32(lstAnios.SelectedItem);

            lblTotalAgua.Text         = db.GetCollection <Medicion>(UtilGui.GetStrMediciones("agua")).FindAll().Where(x => x.Fecha.Year == anio).Sum(x => x.Dato).ToString();
            lblTotalElectricidad.Text = db.GetCollection <Medicion>(UtilGui.GetStrMediciones("electricidad")).FindAll().Where(x => x.Fecha.Year == anio).Sum(x => x.Dato).ToString();
            lblTotalGas.Text          = db.GetCollection <Medicion>(UtilGui.GetStrMediciones("gas")).FindAll().Where(x => x.Fecha.Year == anio).Sum(x => x.Dato).ToString();
        }
示例#7
0
        private void CargarAnios()
        {
            var anios      = new List <int>();
            var mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones("agua"));

            anios      = mediciones.FindAll().Select(x => x.Fecha.Year).Distinct().ToList();
            mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones("electricidad"));
            mediciones.FindAll().Select(x => x.Fecha.Year).Distinct().ToList().ForEach(x => anios.Add(x));
            mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones("gas"));
            mediciones.FindAll().Select(x => x.Fecha.Year).Distinct().ToList().ForEach(x => anios.Add(x));
            anios.Distinct().OrderBy(x => x).ToList().ForEach(x => lstAnios.Items.Add(x));
        }
        private void CargarMedicion()
        {
            txtDetalleMedicion.Text = medicion.Detalle;
            txtDatoMedicion.Text    = medicion.Dato.ToString();
            dtpFechaMedicion.Value  = medicion.Fecha;

            var strMedidores = UtilGui.GetStrMedidores(indicador);

            var medidores = db.GetCollection <Medidor>(strMedidores);

            cboMedidor.Items.Clear();
            medidores.FindAll().ToList().ForEach(x => cboMedidor.Items.Add(x));
            cboMedidor.DisplayMember = "Codigo";
        }
示例#9
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            var mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones(indicador));

            if (string.IsNullOrEmpty(txtDatoMedicion.Text) && cboMedidor.SelectedIndex < 0)
            {
                MessageBox.Show("El campo 'Medidior' esta vacio y el campo 'Consumo' esta vacio. Intente de nuevo");
                return;
            }
            else
            {
                if (cboMedidor.SelectedIndex < 0)
                {
                    MessageBox.Show("El campo 'Medidor' es invalido. Intente de nuevo");
                    return;
                }
                else
                {
                    if (string.IsNullOrEmpty(txtDatoMedicion.Text))
                    {
                        MessageBox.Show("El campo 'Consumo' esta vacio");
                        return;
                    }
                }
            }
            double valor = 0;

            if (!double.TryParse(txtDatoMedicion.Text, out valor))
            {
                MessageBox.Show("El campo 'Consumo' es invalido");
                return;
            }

            mediciones.Insert(new Medicion
            {
                Medidor = (Medidor)cboMedidor.SelectedItem,
                Dato    = valor,
                Fecha   = dtpFechaMedicion.Value,
                Detalle = txtDetalleMedicion.Text
            });

            LimpiarControlesMedicion();
            ActualizarHistorialMediciones();
        }
示例#10
0
        private void ActualizarConsumoIndicador(string indicador)
        {
            var anio       = Convert.ToInt32(lstAnios.SelectedItem);
            var mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones(indicador));

            DataRow consumoEje = consumo.NewRow();

            consumoEje["Indicador"] = UtilGui.FormatIndicador(indicador);

            double totalMensual = 0;
            int    m            = 1;

            foreach (string mes in meses)
            {
                totalMensual = mediciones.FindAll().Where(x => x.Fecha.Month == m && x.Fecha.Year == anio).Sum(x => x.Dato);
                if (totalMensual != 0)
                {
                    consumoEje[mes] = totalMensual;
                }
                else
                {
                    consumoEje[mes] = 0;
                }
                switch (indicador)
                {
                case "agua": chtConsumoAgua.Series[UtilGui.FormatIndicador(indicador)].Points.AddXY(mes, consumoEje[mes]);
                    break;

                case "electricidad": chtConsumoElectricidad.Series[UtilGui.FormatIndicador(indicador)].Points.AddXY(mes, consumoEje[mes]);
                    break;

                case "gas": chtConsumoGas.Series[UtilGui.FormatIndicador(indicador)].Points.AddXY(mes, consumoEje[mes]);
                    break;
                }
                m++;
            }

            consumoEje["Total"]  = mediciones.FindAll().Where(x => x.Fecha.Year == anio).Sum(x => x.Dato);
            consumoEje["Unidad"] = UtilGui.GetUnidad(indicador);

            consumo.Rows.Add(consumoEje);
        }
示例#11
0
        private void dvgHistorialAgua_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == dgvHistorialAgua.Columns["Borrar"].Index)
            {
                var confirmResult = MessageBox.Show("¿Desea descartar esta medición?", "Descartar medición", MessageBoxButtons.YesNo);
                if (confirmResult == DialogResult.Yes)
                {
                    var medicionesAgua = db.GetCollection <Medicion>(UtilGui.GetStrMediciones(indicador));
                    int IdMedicion     = int.Parse(dgvHistorialAgua.Rows[e.RowIndex].Cells["Id"].Value.ToString());
                    medicionesAgua.Delete(x => x.Id == IdMedicion);
                }
            }

            if (e.ColumnIndex == dgvHistorialAgua.Columns["Editar"].Index)
            {
                var mediciones = db.GetCollection <Medicion>(UtilGui.GetStrMediciones(indicador));
                int IdMedicion = int.Parse(dgvHistorialAgua.Rows[e.RowIndex].Cells["Id"].Value.ToString());
                var medicion   = mediciones.FindOne(x => x.Id == IdMedicion);

                frmEditarMedicion editarMedicionAgua = new frmEditarMedicion(indicador, db, mediciones, medicion);
                editarMedicionAgua.ShowDialog(this);
            }
            ActualizarHistorialMediciones();
        }