Ejemplo n.º 1
0
        public static void EditarHistorialMantencion(ProyectoAutoContext _db, int _idAuto, int _idHistorialOriginal,
                                                     DateTime _fecha, List <Servicio> _servicios, int _kilometraje, TipoMantenimiento _tipoMantenimiento,
                                                     int _costo, Proveedor _proveedor)
        {
            //editar datos proveedor
            //tambien considerar lo que pasa con las relaciones MantencionServicio cuando se remueven/reemplazan

            Auto auto = _db.Autos.Where(a => a.Id == _idAuto).FirstOrDefault();
            HistorialMantencion histOriginal = auto.Mantenciones.Where(h => h.Id == _idHistorialOriginal).FirstOrDefault();

            auto.CostoTotalMantenimiento += _costo - histOriginal.Costo;

            #region Actualizar viejo y nuevo Proveedor

            Proveedor provAnterior = histOriginal.Proveedor;
            Proveedor provNuevo    = _proveedor;

            if (provAnterior != null)
            {
                provAnterior.GastoTotalMantenimiento -= histOriginal.Costo;
            }
            if (provNuevo != null)
            {
                provNuevo.GastoTotalMantenimiento += _costo;
            }

            #endregion

            _db.MantencionServicios.RemoveRange(histOriginal.ServiciosAplicados);
            for (int i = 0; i < _servicios.Count; i++)
            {
                MantencionServicio nuevoMantencionServ = new MantencionServicio();
                nuevoMantencionServ.HistorialMantencion = histOriginal;
                nuevoMantencionServ.Servicio            = _servicios[i];

                histOriginal.ServiciosAplicados.Add(nuevoMantencionServ);
            }

            histOriginal.Fecha               = _fecha;
            histOriginal.Kilometraje         = _kilometraje;
            histOriginal.TipoDeMantenimiento = _tipoMantenimiento;
            histOriginal.Costo               = _costo;
            histOriginal.Proveedor           = _proveedor;

            _db.SaveChanges();
        }
Ejemplo n.º 2
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();
        }