Beispiel #1
0
 /// <summary>
 /// Evaluates if the Motor has exceeded the Maximum Value of the Caudal configured for it
 /// </summary>
 /// <param name="caudal"></param>
 /// <param name="caudalimetro"></param>
 /// <param name="fecha"></param>
 public static void EvaluteMaximumCaudal(double caudal, Caudalimetro caudalimetro, DateTime fecha)
 {
     if (caudal > caudalimetro.CaudalMaximo && caudalimetro.CaudalMaximo != 0)
     {
         EventoCombustibleSaver.CreateNewEvent(caudalimetro.Codigo, null, CodeMCaudalSuperado, String.Format(MsgMCaudalSuperado, caudal), fecha);
     }
 }
Beispiel #2
0
 public CaudalimetroVo(Caudalimetro caudalimetro)
 {
     Id          = caudalimetro.Id;
     Descripcion = caudalimetro.Descripcion;
     Tanque      = caudalimetro.Tanque != null ? caudalimetro.Tanque.Descripcion : "Sin Asignar";
     Equipo      = caudalimetro.Equipo != null ? caudalimetro.Equipo.Descripcion : "Sin Asignar";
 }
        /// <summary>
        /// Gets the current message to be saved.
        /// </summary>
        /// <param name="motor"></param>
        /// <param name="tanque"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        private Mensaje GetMessage(Caudalimetro motor, Tanque tanque, string code)
        {
            var linea = motor != null ? motor.Equipo != null ? motor.Equipo.Linea : null : tanque != null ? tanque.Linea ?? (tanque.Equipo != null ? tanque.Equipo.Linea : null) : null;

            var empresa = linea != null ? linea.Empresa : null;

            return(DaoFactory.MensajeDAO.FindById(DaoFactory.MensajeDAO.GetByCodigo(code, empresa, linea).Id));
        }
Beispiel #4
0
        /// <summary>
        /// Gets the las movement associated to the specified engine.
        /// </summary>
        /// <param name="engine"></param>
        /// <returns></returns>
        public Movimiento GetLastEngineMovement(Caudalimetro engine)
        {
            if (engine == null)
            {
                return(null);
            }

            return(Session.Query <Movimiento>().Where(m => m.Caudalimetro.Id == engine.Id && m.Estado == 0)
                   .OrderByDescending(m => m.Fecha).FirstOrDefault());
        }
Beispiel #5
0
        /// <summary>
        /// Creates a new Caudalimetro Object.
        /// </summary>
        /// <param name="daoFactory"></param>
        /// <param name="center"></param>
        /// <param name="codigo"></param>
        /// <param name="alias"></param>
        /// <returns></returns>
        private static Caudalimetro CreateNewCaudalimetroDeEntrada(DAOFactory daoFactory, String center, String codigo, String alias)
        {
            var m = new Caudalimetro
            {
                Codigo      = codigo,
                Tanque      = daoFactory.TanqueDAO.FindByCode(center),
                Equipo      = daoFactory.EquipoDAO.GetByCode("PI-" + center),
                Descripcion = alias,
                EsDeEntrada = true
            };

            daoFactory.CaudalimetroDAO.SaveOrUpdate(m);

            return(daoFactory.CaudalimetroDAO.GetByCode(codigo));
        }
Beispiel #6
0
        /// <summary>
        /// Updates the description of the Motor.
        /// </summary>
        /// <param name="daoFactory"></param>
        /// <param name="motor"></param>
        /// <param name="alias"></param>
        private static void UpdateMotorDescription(DAOFactory daoFactory, Caudalimetro motor, String alias)
        {
            motor.Descripcion = alias;

            daoFactory.CaudalimetroDAO.SaveOrUpdate(motor);
        }
Beispiel #7
0
        /// <summary>
        /// Process all the remaining movements for an specific Caudalimetro.
        /// </summary>
        /// <param name="caudalimetro"></param>
        public void ProcessMovements(Caudalimetro caudalimetro)
        {
            var typeDAO = new TipoMovimientoDAO();

            var idIngreso             = typeDAO.GetByCode("I").Id;
            var lastProcessedMovement = FindLastReportedProcessedMovement(caudalimetro.Id);

            var lastVolume = lastProcessedMovement != null ? lastProcessedMovement.Volumen : 0;
            var lastDate   = lastProcessedMovement != null ? lastProcessedMovement.Fecha : new DateTime(1900, 1, 1);

            try
            {
                using (var tx = SmartTransaction.BeginTransaction())
                {
                    try
                    {
                        foreach (var m in FindAllReportedMovementsNotProcessed(caudalimetro.Id, lastDate))
                        {
                            if ((m.TipoMovimiento.Id != idIngreso && m.Volumen >= lastVolume) ||
                                (m.TipoMovimiento.Id == idIngreso && m.Volumen > lastVolume))
                            {
                                var newMov = new Movimiento
                                {
                                    Fecha             = m.Fecha,
                                    FechaIngresoABase = DateTime.Now,
                                    Volumen           = m.Volumen - lastVolume,
                                    Observacion       = null,
                                    Estado            = 1,
                                    Tanque            = null,
                                    Caudalimetro      = caudalimetro,
                                    TipoMovimiento    = m.TipoMovimiento,
                                    Coche             = null,
                                    Caudal            = m.Caudal,
                                    Temperatura       = m.Temperatura,
                                    HsEnMarcha        = m.HsEnMarcha,
                                    RPM       = m.RPM,
                                    Procesado = false,
                                    Motivo    = null,
                                    Empleado  = null
                                };
                                SaveOrUpdate(newMov);
                            }
                            m.Procesado = true;
                            SaveOrUpdate(m);
                            lastVolume = m.Volumen;
                        }

                        tx.Commit();
                    }
                    catch (Exception ex)
                    {
                        STrace.Exception(typeof(MovimientoDAO).FullName, ex, "ProcessMovements(Caudalimetro);");
                        try
                        {
                            tx.Rollback();
                        }
                        catch (Exception ex2)
                        {
                            STrace.Exception(typeof(MovimientoDAO).FullName, ex2, "ProcessMovements(Caudalimetro); doing rollback");
                        }
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                if (Session.Transaction != null)
                {
                    Session.Transaction.Rollback();
                }

                throw new Exception(String.Format("Error procesing remaining movements from caudalimetro: {0} ", caudalimetro.Id), ex);
            }
        }
Beispiel #8
0
 /// <summary>
 /// Precalcula los consumos de cada movimiento del motor (vienen en un contador global), para agilizar las consultas
 /// en la aplicación y resto del datamart.s
 /// </summary>
 /// <param name="caudalimetro"></param>
 private void ProcessAllCaudalimetrosMovements(Caudalimetro caudalimetro)
 {
     DaoFactory.MovimientoDAO.ProcessMovements(caudalimetro);
 }