public List<ProductoTurnoVO> consultarProductosAgrupados(DateTime fecha1, DateTime fecha2) { List<ProductoTurnoVO> productos = new List<ProductoTurnoVO>(); try { string sqlQuery = "Select v.Fecha, v.Producto, sum(v.Galones), sum(v.Valor) From EstacionDB.VO.ProductoTurnoVO v Where Fecha Between :Fecha1 And :Fecha2 Group By v.Fecha, v.Producto"; IQuery query = ConnectionHelper.getCurrentSession(Utilidades.Utilidades.configExpo).CreateQuery(sqlQuery); query.SetParameter("Fecha1", fecha1); query.SetParameter("Fecha2", fecha2); IList tmp = query.List(); foreach (object[] producto in tmp) { ProductoTurnoVO p = new ProductoTurnoVO(); p.Fecha = DateTime.Parse(producto[0].ToString()); p.Producto = producto[1].ToString(); p.Galones = double.Parse(producto[2].ToString()); p.Valor = double.Parse(producto[3].ToString()); productos.Add(p); } ConnectionHelper.CloseSession(); return productos; } catch (System.Exception ex) { ConnectionHelper.CloseSession(); throw new EstacionDBException("Error al leer la información de la tabla Productos_turno Expo.", ex); } }
private void cmdCargarLecturas_Click(object sender, EventArgs e) { totalConsumos = 0; DateTime fecha = new DateTime(fechaDesdePicker.Value.Year, fechaDesdePicker.Value.Month, fechaDesdePicker.Value.Day); productosTurno.Clear(); if (!txtLecIniCorriente.Text.Equals("") && !txtLecFinCorriente.Text.Equals("")) { double lecInicialCorriente = Utilidades.parsearDecimal(txtLecIniCorriente.Text); double lecFinCorriente = Utilidades.parsearDecimal(txtLecFinCorriente.Text); double consumoCorriente = lecFinCorriente - lecInicialCorriente; SobretasaVO s = cp.consultarSobretasasProductoFecha(fecha.Month, fecha.Year, 1, fecha.Day); if (s != null) { ProductoTurnoVO ptCorriente = new ProductoTurnoVO(); ptCorriente.Fecha = fecha; ptCorriente.Galones = consumoCorriente; ptCorriente.Isla = long.Parse(txtIsla.Text.Trim()); ptCorriente.Turno = long.Parse(txtTurno.Text.Trim()); consumoCorriente *= s.Venta; ptCorriente.Valor = consumoCorriente; productosTurno.Add(ptCorriente); totalConsumos += consumoCorriente; } else { MessageBox.Show("Falta la información de sobretasa Corriente vigente para la fecha seleccionada", "Falta información", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (!txtLecIniSuper.Text.Equals("") && !txtLecFinSuper.Text.Equals("")) { double lecInicialSuper = Utilidades.parsearDecimal(txtLecIniSuper.Text); double lecFinSuper = Utilidades.parsearDecimal(txtLecFinSuper.Text); double consumoSuper = lecFinSuper - lecInicialSuper; SobretasaVO s = cp.consultarSobretasasProductoFecha(fecha.Month, fecha.Year, 2, fecha.Day); if (s != null) { ProductoTurnoVO ptSuper = new ProductoTurnoVO(); ptSuper.Fecha = fecha; ptSuper.Galones = consumoSuper; ptSuper.Isla = long.Parse(txtIsla.Text.Trim()); ptSuper.Turno = long.Parse(txtTurno.Text.Trim()); consumoSuper *= s.Venta; ptSuper.Valor = consumoSuper; productosTurno.Add(ptSuper); totalConsumos += consumoSuper; } else { MessageBox.Show("Falta la información de sobretasa Super vigente para la fecha seleccionada", "Falta información", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (!txtLecIniDiesel.Text.Equals("") && !txtLecFinDiesel.Text.Equals("")) { double lecInicialDiesel = Utilidades.parsearDecimal(txtLecIniDiesel.Text); double lecFinDiesel = Utilidades.parsearDecimal(txtLecFinDiesel.Text); double consumoDiesel = lecFinDiesel - lecInicialDiesel; SobretasaVO s = cp.consultarSobretasasProductoFecha(fecha.Month, fecha.Year, 3, fecha.Day); if (s != null) { ProductoTurnoVO ptDiesel = new ProductoTurnoVO(); ptDiesel.Fecha = fecha; ptDiesel.Galones = consumoDiesel; ptDiesel.Isla = long.Parse(txtIsla.Text.Trim()); ptDiesel.Turno = long.Parse(txtTurno.Text.Trim()); consumoDiesel *= s.Venta; ptDiesel.Valor = consumoDiesel; productosTurno.Add(ptDiesel); totalConsumos += consumoDiesel; } else { MessageBox.Show("Falta la información de sobretasa Diesel vigente para la fecha seleccionada", "Falta información", MessageBoxButtons.OK, MessageBoxIcon.Error); } } actualizarTotales(); }
public List<ProductoTurnoVO> consultarProductosTurno(string isla, long turno, DateTime fecha1, DateTime fecha2) { List<ProductoTurnoVO> productosTurno = new List<ProductoTurnoVO>(); int multiplicador = 1; try { #region se abre la conexión con la BD conectar(null); #endregion #region se preparan los objetos para hacer la consulta y leerla SqlDataReader reader = null; SqlCommand query = new SqlCommand("SELECT P.Fecha, P.Isla, P.Turno, P.Galones, P.Valor, P.Producto FROM ViewProductosTurno P " + "WHERE P.Fecha BETWEEN '" + fecha1.ToString("dd-MM-yyyy") + "' AND '" + fecha2.ToString("dd-MM-yyyy") + "' AND Isla IN(" + isla + ") AND Turno = " + turno, con); #endregion #region se ejecuta el query, se lee el resultado y se procesa en el VO; reader = query.ExecuteReader(); if (reader != null) { // Si tiene reaultados los recorre fila por fila while (reader.Read()) { multiplicador = 1; // default ProductoTurnoVO pt = new ProductoTurnoVO(); if (reader["Fecha"] != null) pt.Fecha = DateTime.Parse(reader["Fecha"].ToString()); if (reader["Turno"] != null) pt.Turno = long.Parse(reader["Turno"].ToString()); if (reader["Isla"] != null) pt.Isla = long.Parse(reader["Isla"].ToString()); if (reader["Producto"] != null) pt.Producto = reader["Producto"].ToString(); if (reader["Valor"] != null) pt.Valor = double.Parse(reader["Valor"].ToString()); if (reader["Galones"] != null) pt.Galones = double.Parse(reader["Galones"].ToString()); /*if (pt.Isla == 1 || pt.Isla == 2) { pt.Isla = 1; } else if (pt.Isla == 3 || pt.Isla == 4) { pt.Isla = 2; }*/ if (pt.Producto.Trim().Equals("CORRIENTE")) { multiplicador = Utilidades.Utilidades.corrienteMultiplicarX; } if (pt.Producto.Trim().Equals("SUPER")) { multiplicador = Utilidades.Utilidades.superMultiplicarX; } if (pt.Producto.Trim().Equals("DIESEL")) { multiplicador = Utilidades.Utilidades.dieselMultiplicarX; } pt.Valor = (pt.Valor * multiplicador); productosTurno.Add(pt); } } #endregion desconectar(); return productosTurno; } catch (System.Exception ex) { desconectar(); throw new EstacionDBException("Error al leer la información de la vista Ventas.", ex); } }