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; }
public int guardarControlCombustible(ControlCombustibleVO cc) { try { return getControlCombustibleDAO().guardarControlCombustible(cc); } catch (EstacionDBException ex) { throw new PersistenciaException("Error al guardar el control de combustible", ex); } }
/// <summary> /// <para>Consulta si ya existe un control de combustible registrado para el tipo de producto y fecha recibidos como parámetro</para> /// </summary> /// <param name="idProducto">Código del producto.</param> /// <param name="fecha">Fecha a consultar.</param> /// <returns>El control de combustible existente o un objeto VO vacio en caso de que no exista.</returns> private ControlCombustibleVO existeControl(int idProducto, DateTime fecha) { try { ControlCombustibleVO vo = controlCombustibleDAO.consultarControl(idProducto, fecha); if (vo == null) { vo = new ControlCombustibleVO(); } return vo; } catch (EstacionDBException ex) { return new ControlCombustibleVO(); } }
public int guardarControlCombustible(ControlCombustibleVO cc) { int rows = 0; ITransaction tx = null; try { ISession session = ConnectionHelper.getCurrentSession(Utilidades.Utilidades.configExpo); tx = session.BeginTransaction(); if (cc.Id == 0) { session.Save(cc); } else { session.Update(cc); } rows++; tx.Commit(); ConnectionHelper.CloseSession(); return rows; } catch (System.Exception ex) { if (tx != null) { tx.Rollback(); } ConnectionHelper.CloseSession(); throw new EstacionDBException("Error al guardar la información de la tabla control combustible.", ex); } }
/// <summary> /// <para>Guarda o actualiza el control de combustible.</para> /// </summary> /// <param name="cc">Objeto VO con los datos del control de combustible a guardar o actualizar</param> /// <returns># de filas afectadas</returns> public int guardarControlCombustible(ControlCombustibleVO cc) { try { return controlCombustibleDAO.guardarControlCombustible(cc); } catch (EstacionDBException ex) { throw new ControlCombustibleException("Error al guardar el control de combustible", ex); } }