private void cmdGuardar_Click(object sender, EventArgs e) { if(lecturaDTOBindingSource.Count > 0){ try { DateTime fecha = DateTime.Parse(txtFecha.Text); IList lista = lecturaDTOBindingSource.List; LecturaDTO[] lecturas = new LecturaDTO[lista.Count]; lista.CopyTo(lecturas, 0); //int rows = cp.procesarControles(fecha, lecturas); int rows = ControlTanquesCore.getInstance().procesarControles(fecha, lecturas); if (rows > 0) { lecturaDTOBindingSource.Clear(); txtMedida.Text = ""; txtFecha.Text = ""; MessageBox.Show("Lecturas guardadas", "Datos guardados", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("No se guardaron las lecturas", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (ControlCombustibleException ex) { MessageBox.Show("No se guardaron las lecturas", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }
private void cmdAgregar_Click(object sender, EventArgs e) { //Consulta los galones a partir de la fecha, de la medida de la vara, del producto y tipo de tanque if (!txtFecha.Text.Equals("") && !txtMedida.Text.Equals("")) { DateTime fecha = DateTime.Parse(txtFecha.Text); LecturaDTO lectura = cp.consultarNivel((int)cboProducto.SelectedValue, (int)cboTanque.SelectedValue, double.Parse(txtMedida.Text)); if (lectura != null) { lectura.Producto = ((ProductoVO)cboProducto.SelectedItem).Nombre; lectura.Tanque = ((TanqueVO)cboTanque.SelectedItem).Descripcion; lectura.Nivel = double.Parse(txtMedida.Text); lecturaDTOBindingSource.Add(lectura); } else { MessageBox.Show("No hay información en las tablas de aforo para el producto y tanque seleccionados", "No hay información", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } //Consulta los galones a partir de la fecha y del producto else if (!txtFecha.Text.Equals("") && txtMedida.Text.Equals("")) { DateTime fecha = DateTime.Parse(txtFecha.Text); double galones = cp.consultarLecturaFinalProducto(fecha, fecha,(int)cboProducto.SelectedValue); LecturaDTO lectura = new LecturaDTO(); lectura.IdProducto = ((ProductoVO)cboProducto.SelectedItem).IdProducto; lectura.Producto = ((ProductoVO)cboProducto.SelectedItem).Nombre; lectura.IdTanque = ((TanqueVO)cboTanque.SelectedItem).IdTanque; lectura.Tanque = ((TanqueVO)cboTanque.SelectedItem).Descripcion; lectura.Nivel = 0; lectura.Galones = galones; lecturaDTOBindingSource.Add(lectura); //MessageBox.Show("Debe llenar todos la fecha, producto, tanque y nivel", "Campos requeridos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
public LecturaDTO consultarNivel(int idProducto, int idTanque, double nivel) { LecturaDTO lectura = null; nivel = Utilidades.redondear(nivel); VolumenTanqueVO vt = getVolumenesDAO().consultarVolumen(idTanque, idProducto, nivel); if (vt != null) { lectura = new LecturaDTO(); lectura.Galones = Math.Round(vt.Galones, 0, MidpointRounding.AwayFromZero); lectura.IdProducto = vt.IdProducto; lectura.IdTanque = vt.IdTanque; } return lectura; }
public int procesarControles(DateTime fecha, LecturaDTO[] lecturas) { int rows = 0; bool isCorriente = false; bool isSuper = false; bool isDiesel = false; ControlCombustibleVO controlCorriente = new ControlCombustibleVO(); ControlCombustibleVO controlSuper = new ControlCombustibleVO(); ControlCombustibleVO controlDiesel = new ControlCombustibleVO(); try { for (int i = 0; i < lecturas.Length; i++) { int idProd = lecturas[i].IdProducto; switch (idProd) { //Corriente case 1: { controlCorriente.InventarioFinal += (int)lecturas[i].Galones; isCorriente = true; break; } //Super case 2: { controlSuper.InventarioFinal += (int)lecturas[i].Galones; isSuper = true; break; } //Diesel case 3: { controlDiesel.InventarioFinal += (int)lecturas[i].Galones; isDiesel = true; break; } } } DateTime diaAnterior = fecha.AddDays(-1); //Corriente if (isCorriente) { controlCorriente.IdProducto = 1; controlCorriente.Fecha = fecha; controlCorriente.GalonesCompra = (int)this.consultarComprasGalonesFechaProducto(1, fecha); controlCorriente.InventarioInicial = (int)this.consultarSaldoAnterior(1, diaAnterior, diaAnterior); controlCorriente.VentaMedida = (controlCorriente.GalonesCompra + controlCorriente.InventarioInicial) - controlCorriente.InventarioFinal; controlCorriente.VentaSurtidor = (int)this.consultarVentaProducto(fecha, fecha, 1); controlCorriente.SobranteDia = controlCorriente.VentaSurtidor - controlCorriente.VentaMedida; controlCorriente.SobranteAcumulado = controlCorriente.SobranteDia + (int)this.consultarAcumuladoAnterior(1, diaAnterior, diaAnterior); controlCorriente.Procentaje = (double)(((double)controlCorriente.SobranteDia / (double)(controlCorriente.GalonesCompra + controlCorriente.InventarioInicial)) * 100); rows += this.guardarControlCombustible(controlCorriente); } //Super if (isSuper) { controlSuper.IdProducto = 2; controlSuper.Fecha = fecha; controlSuper.GalonesCompra = (int)this.consultarComprasGalonesFechaProducto(2, fecha); controlSuper.InventarioInicial = (int)this.consultarSaldoAnterior(2, diaAnterior, diaAnterior); controlSuper.VentaMedida = (controlSuper.GalonesCompra + controlSuper.InventarioInicial) - controlSuper.InventarioFinal; controlSuper.VentaSurtidor = (int)this.consultarVentaProducto(fecha, fecha, 2); controlSuper.SobranteDia = controlSuper.VentaSurtidor - controlSuper.VentaMedida; controlSuper.SobranteAcumulado = controlSuper.SobranteDia + (int)this.consultarAcumuladoAnterior(2, diaAnterior, diaAnterior); controlSuper.Procentaje = (double)(((double)controlSuper.SobranteDia / (double)(controlSuper.GalonesCompra + controlSuper.InventarioInicial)) * 100); rows += this.guardarControlCombustible(controlSuper); } //Diesel if (isDiesel) { controlDiesel.IdProducto = 3; controlDiesel.Fecha = fecha; controlDiesel.GalonesCompra = (int)this.consultarComprasGalonesFechaProducto(3, fecha); controlDiesel.InventarioInicial = (int)this.consultarSaldoAnterior(3, diaAnterior, diaAnterior); controlDiesel.VentaMedida = (controlDiesel.GalonesCompra + controlDiesel.InventarioInicial) - controlDiesel.InventarioFinal; controlDiesel.VentaSurtidor = (int)this.consultarVentaProducto(fecha, fecha, 3); controlDiesel.SobranteDia = controlDiesel.VentaSurtidor - controlDiesel.VentaMedida; controlDiesel.SobranteAcumulado = controlDiesel.SobranteDia + (int)this.consultarAcumuladoAnterior(3, diaAnterior, diaAnterior); controlDiesel.Procentaje = (double)(((double)controlDiesel.SobranteDia / (double)(controlDiesel.GalonesCompra + controlDiesel.InventarioInicial)) * 100); rows += this.guardarControlCombustible(controlDiesel); } } catch (PersistenciaException ex) { throw new PersistenciaException("Error al procesar las lecturas", ex); } return rows; }