// GET api/values/5 public IEnumerable <DonacionesViewModel> Get(int idUser) { List <DonacionesViewModel> listaDonaciones = new List <DonacionesViewModel>(); List <DonacionesInsumos> lista1 = context.DonacionesInsumos .Where(d => d.IdUsuario == idUser).ToList(); List <DonacionesMonetarias> lista2 = context.DonacionesMonetarias .Where(d => d.IdUsuario == idUser).ToList(); List <DonacionesHorasTrabajo> lista3 = context.DonacionesHorasTrabajo .Where(d => d.IdUsuario == idUser).ToList(); foreach (var insumo in lista1) { DonacionesViewModel dvm = new DonacionesViewModel(); dvm.donacionesInsumos = insumo; dvm.tipo = "insumo"; dvm.total = context.DonacionesInsumos .Where(p => p.IdPropuestaDonacionInsumo == insumo.IdPropuestaDonacionInsumo) .Sum(p => p.Cantidad); listaDonaciones.Add(dvm); } foreach (var monetaria in lista2) { DonacionesViewModel dvm = new DonacionesViewModel(); dvm.donacionesMonetarias = monetaria; dvm.tipo = "monetario"; dvm.total = Decimal.ToInt32(context.DonacionesMonetarias .Where(p => p.IdPropuestaDonacionMonetaria == monetaria.IdPropuestaDonacionMonetaria) .Sum(p => p.Dinero)); listaDonaciones.Add(dvm); } foreach (var horastrabajo in lista3) { DonacionesViewModel dvm = new DonacionesViewModel(); dvm.donacionesHorasTrabajo = horastrabajo; dvm.tipo = "horastrabajo"; dvm.total = context.DonacionesHorasTrabajo .Where(p => p.IdPropuestaDonacionHorasTrabajo == horastrabajo.IdPropuestaDonacionHorasTrabajo) .Sum(p => p.Cantidad); listaDonaciones.Add(dvm); } return(listaDonaciones); }
public ActionResult Edit(DonacionesViewModel model) { if (ModelState.IsValid) { db.Entry(model.donacion).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } // Se recuperan los datos del colaborador vistaColaboradores colaborador = db.vistaColaboradores.SingleOrDefault(x => x.id == model.donacion.idColaborador); ViewBag.colaborador = colaborador.nombre + " " + colaborador.apellidos; // Se cargan los desplegables con datos ViewBag.idPeriodicidad = new SelectList(db.periodicidades, "id", "nombre", model.donacion.idPeriodicidad); return(View(model)); }
// GET: Donaciones/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } donaciones donacion = db.donaciones.Find(id); // Se recuperan los datos del colaborador vistaColaboradores colaborador = db.vistaColaboradores.SingleOrDefault(x => x.id == donacion.idColaborador); // Se crea el viewmodel a partir de los datos anteriores DonacionesViewModel modelo = new DonacionesViewModel(donacion, colaborador.CuentaBancaria, colaborador.CIF_NIF); if (donacion == null) { return(HttpNotFound()); } return(View(modelo)); }
// GET: Donaciones/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } donaciones donacion = db.donaciones.Find(id); // Se recuperan los datos del colaborador vistaColaboradores colaborador = db.vistaColaboradores.SingleOrDefault(x => x.id == donacion.idColaborador); // Se crea el viewmodel a partir de los datos anteriores DonacionesViewModel modelo = new DonacionesViewModel(donacion, colaborador.CuentaBancaria, colaborador.CIF_NIF); if (donacion == null) { return(HttpNotFound()); } // Se cargan los desplegables con datos ViewBag.colaborador = colaborador.nombre + " " + colaborador.apellidos; ViewBag.idPeriodicidad = new SelectList(db.periodicidades, "id", "nombre", donacion.idPeriodicidad); return(View(modelo)); }
public ActionResult Create(DonacionesViewModel modelo) { //modelo.donacion.colaboradores = new colaboradores(db.persona.Where(x => x.id == modelo.donacion.idColaborador).First(); if (ModelState.IsValid) { // Se crea la donación en la base de datos. db.donaciones.Add(modelo.donacion); db.SaveChanges(); // Añadir al colaborador en la tabla de colaboradores. /*persona.colaboradores.Add(colaborador); * persona.colaboradores.First().CIF_NIF = modelo.NIF; * persona.colaboradores.First().CuentaBancaria = modelo.cuentaBancaria; * db.Entry(persona).State = EntityState.Modified; * * db.SaveChanges();*/ using (var context = new GestorONGDContext()) { var persona = context.persona.Find(modelo.donacion.idColaborador); var colaborador = new colaboradores(persona, modelo.NIF, modelo.cuentaBancaria); personas_perfiles per_perfiles = new personas_perfiles() { idPersona = modelo.donacion.idColaborador, idPerfil = 2 //personas = colaborador }; /*persona.colaboradores = new HashSet<colaboradores>(); * persona.colaboradores.Add(colaborador);*/ /*var colaborador = new colaboradores() * { * CIF_NIF = modelo.NIF, * CuentaBancaria = modelo.cuentaBancaria * };*/ context.colaboradores.Add(colaborador); context.SaveChanges(); colaborador.idColaborador = modelo.donacion.idColaborador; context.Entry(colaborador).State = EntityState.Modified; context.persona.Remove(persona); context.persona_perfil.Add(per_perfiles); context.SaveChanges(); } //db.Entry(persona).State = EntityState.Detached; /*var existingcolaborador = db.colaboradores.Where(x => x.id == modelo.donacion.idColaborador).FirstOrDefault(); * existingcolaborador.idColaborador = modelo.donacion.idColaborador; * existingcolaborador.CIF_NIF = modelo.NIF; * existingcolaborador.CuentaBancaria = modelo.cuentaBancaria; * db.Entry(existingcolaborador).State = EntityState.Modified; * * // Añadir la relación entre personas y perfiles en la tabla personas_perfiles * var personas_perfiles = new personas_perfiles(0, modelo.donacion.idColaborador, 2); * db.persona_perfil.Add(personas_perfiles); * db.SaveChanges();*/ //TempData["Acierto"] = "La donación creada por el colaborador " + persona.nombre + " " + persona.apellidos + " con un valor de " + modelo.donacion.cantidad + "€ ha sido realizada correctamente"; return(RedirectToAction("Index")); } else { var errors = ModelState.SelectMany(x => x.Value.Errors.Select(z => z.Exception)); Console.Write(errors.ToString()); } // Se listan las personas que no son colaboradores existentes en el sistema puesto que sólo se puede hacer una única donación por usuario. var colaboradores = getColaboradoresSelectList(); ViewBag.idColaborador = colaboradores; ViewBag.idPeriodicidad = new SelectList(db.periodicidades, "id", "nombre", modelo.donacion.idPeriodicidad); return(View(modelo)); }
public List <DonacionesViewModel> BuscarDonaciones(int idUser) { List <DonacionesViewModel> listaDonaciones = new List <DonacionesViewModel>(); List <DonacionesInsumos> lista1 = context.DonacionesInsumos.Include("PropuestasDonacionesInsumos") .Where(d => d.IdUsuario == idUser).ToList(); List <DonacionesMonetarias> lista2 = context.DonacionesMonetarias.Include("PropuestasDonacionesMonetarias") .Where(d => d.IdUsuario == idUser).OrderByDescending(c => c.FechaCreacion).ToList(); List <DonacionesHorasTrabajo> lista3 = context.DonacionesHorasTrabajo.Include("PropuestasDonacionesHorasTrabajo") .Where(d => d.IdUsuario == idUser).ToList(); foreach (var insumo in lista1) { DonacionesViewModel dvm = new DonacionesViewModel(); dvm.donacionesInsumos = insumo; dvm.tipo = "insumo"; dvm.total = context.DonacionesInsumos .Where(p => p.IdPropuestaDonacionInsumo == insumo.IdPropuestaDonacionInsumo) .Sum(p => p.Cantidad); DonacionesInsumosViewModel divm = new DonacionesInsumosViewModel(); divm.Cantidad = insumo.Cantidad; divm.Estado = insumo.PropuestasDonacionesInsumos.Propuestas.Estado; divm.Nombre = insumo.PropuestasDonacionesInsumos.Propuestas.Nombre; divm.IdPropuestaDonacionInsumo = insumo.PropuestasDonacionesInsumos.Propuestas.IdPropuesta; divm.NombreDonado = insumo.PropuestasDonacionesInsumos.Nombre; dvm.DonacionesInsumosVM = divm; listaDonaciones.Add(dvm); } foreach (var monetaria in lista2) { DonacionesViewModel dvm = new DonacionesViewModel(); dvm.donacionesMonetarias = monetaria; dvm.tipo = "monetario"; dvm.total = Decimal.ToInt32(context.DonacionesMonetarias .Where(p => p.IdPropuestaDonacionMonetaria == monetaria.IdPropuestaDonacionMonetaria) .Sum(p => p.Dinero)); DonacionesMonetariasViewModel dmvm = new DonacionesMonetariasViewModel(); dmvm.Dinero = monetaria.Dinero; dmvm.Estado = monetaria.PropuestasDonacionesMonetarias.Propuestas.Estado; dmvm.Nombre = monetaria.PropuestasDonacionesMonetarias.Propuestas.Nombre; dmvm.IdPropuestaDonacionMonetaria = monetaria.PropuestasDonacionesMonetarias.Propuestas.IdPropuesta; dmvm.Fecha = monetaria.FechaCreacion; dvm.DonacionesMonetariasVM = dmvm; listaDonaciones.Add(dvm); } foreach (var horastrabajo in lista3) { DonacionesViewModel dvm = new DonacionesViewModel(); dvm.donacionesHorasTrabajo = horastrabajo; dvm.tipo = "horastrabajo"; dvm.total = context.DonacionesHorasTrabajo .Where(p => p.IdPropuestaDonacionHorasTrabajo == horastrabajo.IdPropuestaDonacionHorasTrabajo) .Sum(p => p.Cantidad); DonacionesHorasTrabajoViewModel dtvm = new DonacionesHorasTrabajoViewModel(); dtvm.Cantidad = horastrabajo.Cantidad; dtvm.Estado = horastrabajo.PropuestasDonacionesHorasTrabajo.Propuestas.Estado; dtvm.Nombre = horastrabajo.PropuestasDonacionesHorasTrabajo.Propuestas.Nombre; dtvm.IdPropuestaDonacionHorasTrabajo = horastrabajo.PropuestasDonacionesHorasTrabajo.Propuestas.IdPropuesta; dvm.DonacionesHorasTrabajoVM = dtvm; listaDonaciones.Add(dvm); } return(listaDonaciones); }