예제 #1
0
        public static void NuevoRegistroDeServicio(ProyectoAutoContext _db, int _idAuto, DateTime _fecha,
                                                   List <Servicio> _servicios, int _kilometraje, TipoMantenimiento _tipoMantenimiento,
                                                   int _costo, Proveedor _proveedor)
        {
            Auto auto = _db.Autos.Where(a => a.Id == _idAuto).FirstOrDefault();

            auto.CostoTotalMantenimiento += _costo;

            if (_proveedor != null)
            {
                _proveedor.GastoTotalMantenimiento += _costo;
            }

            Operador operador = null;

            if (auto.OperadorId != null)
            {
                operador = auto.Operador;
            }

            HistorialMantencion nuevaMantencion = new HistorialMantencion();

            nuevaMantencion.Fecha               = _fecha;
            nuevaMantencion.Kilometraje         = _kilometraje;
            nuevaMantencion.TipoDeMantenimiento = _tipoMantenimiento;
            nuevaMantencion.Costo               = _costo;
            nuevaMantencion.Proveedor           = _proveedor;
            nuevaMantencion.ServiciosAplicados  = new List <MantencionServicio>();
            nuevaMantencion.Operador            = operador;

            for (int i = 0; i < _servicios.Count; i++)
            {
                MantencionServicio nuevoMantencionServ = new MantencionServicio();
                nuevoMantencionServ.HistorialMantencion = nuevaMantencion;
                nuevoMantencionServ.Servicio            = _servicios[i];

                nuevaMantencion.ServiciosAplicados.Add(nuevoMantencionServ);
            }

            auto.Mantenciones.Add(nuevaMantencion);
            _db.SaveChanges();
        }
예제 #2
0
파일: Flota.cs 프로젝트: Ocumian/AEOnline
        public static void EliminarFlota(ProyectoAutoContext _db, int _idFlota)
        {
            Flota flota = _db.Flotas.Where(f => f.Id == _idFlota).FirstOrDefault();

            List <int> autosEliminables      = new List <int>();
            List <int> operadoresEliminables = new List <int>();

            foreach (Auto a in flota.Autos)
            {
                autosEliminables.Add(a.Id);
            }
            foreach (int aId in autosEliminables)
            {
                Auto.ElimiarAuto(_db, aId);
            }

            foreach (Operador o in flota.Operadores)
            {
                operadoresEliminables.Add(o.Id);
            }
            foreach (int oId in operadoresEliminables)
            {
                Operador.EliminarOperador(_db, oId);
            }

            if (flota.UsuarioFlotaId != null)
            {
                flota.UsuarioFlota.Usuario.UsuarioFlota = null;
                _db.UsuarioFlotas.Remove(flota.UsuarioFlota);
            }

            _db.Proveedores.RemoveRange(flota.Proveedores);
            _db.TiposVehiculo.RemoveRange(flota.TiposVehiculo);
            _db.Servicios.RemoveRange(flota.Servicios);
            _db.Alertas.RemoveRange(flota.Alerttas);
            _db.Recordatorios.RemoveRange(flota.Recordatorios);
            _db.SaveChanges();

            _db.Flotas.Remove(flota);
            _db.SaveChanges();
        }
예제 #3
0
        public static void EliminarOperador(ProyectoAutoContext _db, int _idOperador)
        {
            Operador operador = _db.Operadores.Where(o => o.Id == _idOperador).FirstOrDefault();

            if (operador.Autos.Count > 0)
            {
                operador.Autos.First().Operador = null;
                operador.Autos.Clear();
            }
            //if (operador.Auto != null)
            //    operador.Auto.Operador = null;
            if (operador.Usuario != null)
            {
                operador.Usuario.Operador = null;
            }



            _db.Operadores.Remove(operador);
            _db.SaveChanges();
        }
예제 #4
0
        }                                      //Kilometros por litro


        public static void NuevaCargaCombustible(ProyectoAutoContext _db, int _idAuto,
                                                 DateTime _fecha, DateTime _hora, bool _estanqueLleno,
                                                 float _cantidadLitros, int _costoUnitario, int _Kilometraje, Proveedor _proveedor,
                                                 string _rut, int _nBoleta)
        {
            Auto auto = _db.Autos.Where(a => a.Id == _idAuto).FirstOrDefault();
            List <HistorialCargaCombustible> otrasCargas = auto.CargasCombustible.OrderBy(h => h.FechaHora).ToList();
            int costoTotal = Convert.ToInt32(_costoUnitario * _cantidadLitros);

            #region Actualizar datos del auto


            if (otrasCargas.Count > 0)
            {
                int primerKilometraje   = otrasCargas.First().Kilometraje;
                int ultimoKilometraje   = _Kilometraje;
                int kilometrosRecorrido = ultimoKilometraje - primerKilometraje;

                auto.RendimientoPromedio    = kilometrosRecorrido / auto.LitrosTotalesConsumidos;        //Kilometros por litro
                auto.CostoKilometroPromedio = auto.CostoTotalCombustible / kilometrosRecorrido;          //Costo por kilometro
                auto.CostoLitroPromedio     = auto.CostoTotalCombustible / auto.LitrosTotalesConsumidos; //Costo por litro
            }

            auto.KilometrajeActual        = _Kilometraje;
            auto.LitrosTotalesConsumidos += _cantidadLitros;
            auto.CostoTotalCombustible   += costoTotal;
            #endregion

            #region Actualizar Proveedor
            if (_proveedor != null)
            {
                _proveedor.GastoTotalCombustible += costoTotal;
            }
            #endregion

            float kilometrosRecorridos = -1;
            float costoPorKilometro    = -1;
            float rendimiento          = -1;

            Operador operador = null;
            if (auto.OperadorId != null)
            {
                operador = auto.Operador;
            }


            if (otrasCargas.Count > 0)
            {
                HistorialCargaCombustible ultimaCarga = otrasCargas.Last();

                kilometrosRecorridos = _Kilometraje - ultimaCarga.Kilometraje;
                costoPorKilometro    = ultimaCarga.CostoTotal / kilometrosRecorridos;
                rendimiento          = kilometrosRecorridos / ultimaCarga.CantidadLitros;
            }

            DateTime fecha = new DateTime(_fecha.Year, _fecha.Month, _fecha.Day, _hora.Hour, _hora.Minute, _hora.Second);

            HistorialCargaCombustible nuevaCarga = new HistorialCargaCombustible();
            nuevaCarga.FechaHora      = fecha;
            nuevaCarga.EstanqueLleno  = _estanqueLleno;
            nuevaCarga.CantidadLitros = _cantidadLitros;
            nuevaCarga.CostoUnitario  = _costoUnitario;
            nuevaCarga.Kilometraje    = _Kilometraje;
            nuevaCarga.CostoTotal     = costoTotal;
            nuevaCarga.Proveedor      = _proveedor;
            nuevaCarga.Operador       = operador;
            nuevaCarga.RutEstacion    = _rut;
            nuevaCarga.NumeroDeBoleta = _nBoleta;

            nuevaCarga.KilometrosRecorridos = kilometrosRecorridos;
            nuevaCarga.CostoPorKilometro    = costoPorKilometro;
            nuevaCarga.Rendimiento          = rendimiento;
            auto.CargasCombustible.Add(nuevaCarga);


            _db.SaveChanges();
        }
예제 #5
0
        public static void EditarOperador(ProyectoAutoContext _db, int _idFlota, int _idOriginal,
                                          string _nuevoNombre, string _tipoLicencia, int _idNuevoUsuario, int _idNuevoAuto)
        {
            Flota    flota    = _db.Flotas.Where(f => f.Id == _idFlota).FirstOrDefault();
            Operador operador = flota.Operadores.Where(o => o.Id == _idOriginal).FirstOrDefault();

            operador.Nombre       = _nuevoNombre;
            operador.TipoLicencia = _tipoLicencia;

            if (_idNuevoAuto == 0)
            {
                //if(operador.Auto != null)
                //{
                //    operador.Auto.Operador = null;
                //    operador.Auto = null;
                //}

                if (operador.Autos.Count > 0)
                {
                    operador.Autos.First().Operador = null;
                    operador.Autos.Clear();
                }
            }
            else
            {
                //if (operador.Auto != null)
                //    operador.Auto.Operador = null;

                //Auto autoNuevo = flota.Autos.Where(a => a.Id == _idNuevoAuto).FirstOrDefault();
                //operador.Auto = autoNuevo;
                //autoNuevo.Operador = operador;

                if (operador.Autos.Count > 0)
                {
                    operador.Autos.First().Operador = null;
                    operador.Autos.Clear();
                }

                Auto autoNuevo = flota.Autos.Where(a => a.Id == _idNuevoAuto).FirstOrDefault();
                operador.Autos.Add(autoNuevo);
                autoNuevo.Operador = operador;
            }


            if (_idNuevoUsuario == 0)
            {
                if (operador.Usuario != null)
                {
                    operador.Usuario.Operador = null;
                    operador.Usuario          = null;
                }
            }
            else
            {
                if (operador.Usuario != null)
                {
                    operador.Usuario.Operador = null;
                }

                Usuario nuevoUser = _db.Usuarios.Where(u => u.Id == _idNuevoUsuario).FirstOrDefault();
                operador.Usuario   = nuevoUser;
                nuevoUser.Operador = operador;
            }

            _db.SaveChanges();
        }