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(); }
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(); }
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(); }
} //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(); }
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(); }