public ActionResult Create([Bind(Include = "id,nombre,apellidos,direccionPostal,codigoPostal,localidad,provincia,pais,telefono1,telefono2,email,fechaNacimiento,fechaAlta,Sede,Perfiles")] voluntario model)
        {
            if (ModelState.IsValid)
            {
                //Get id of sede_name
                var sedes = db.sedes_delegaciones.SingleOrDefault(i => i.nombre == model.Sede);

                //Convert date
                var fecha = Convert.ToDateTime(model.fechaNacimiento);

                //Profile id is 1 for Voluntarios
                //Transform voluntario class in voluntarios class to allow insert, updating, deleting
                //Insert a new volunteer through voluntarios table
                var voluntariosNuevo = new voluntarios(0, model.nombre, model.apellidos, model.direccionPostal, model.codigoPostal, model.localidad, model.provincia, model.pais,
                                                       model.telefono1, model.telefono2, model.email, fecha, model.fechaAlta, sedes.id);
                db.voluntarios.Add(voluntariosNuevo);
                db.SaveChanges();

                //Insert the relationship many to many in personas_perfiles
                var perPerfilNew = new personas_perfiles(0, voluntariosNuevo.id, 1);
                db.persona_perfil.Add(perPerfilNew);
                db.SaveChanges();
                TempData["Acierto"] = "El voluntario/a " + model.nombre + " " + model.apellidos + " ha sido añadido/a correctamente al sistema.";
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            // Se elimina la donación
            donaciones donaciones = db.donaciones.Find(id);

            db.donaciones.Remove(donaciones);
            // Se elimina al colaborador de la tabla personas_perfiles
            personas_perfiles per = db.persona_perfil.Where(m => m.idPersona == donaciones.idColaborador && m.idPerfil == 2).SingleOrDefault();

            db.persona_perfil.Remove(per);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            //Para vistas usar Single or default
            // Get voluntarios item
            voluntarios voluntario = db.voluntarios.SingleOrDefault(m => m.id == id);

            //Also needed to delete from personas_perfiles
            personas_perfiles per = db.persona_perfil.SingleOrDefault(m => m.idPersona == id && m.idPerfil == 1);

            db.persona_perfil.Remove(per);
            db.SaveChanges();

            TempData["Acierto"] = "El voluntario/a " + voluntario.nombre + " " + voluntario.apellidos + " ha sido eliminada del sistema correctamente.";

            return(RedirectToAction("Index"));
        }
Exemple #4
0
        public ActionResult Create([Bind(Include = "id,nombre,apellidos,direccionPostal,codigoPostal,localidad,provincia,pais,telefono1,telefono2,email,fechaNacimiento,CIF_NIF,CuentaBancaria,Perfiles,cantidad,fechaAlta,Periodicidad")] vistaColaboradores modelo)
        {
            if (ModelState.IsValid)
            {
                //Se convierten los campos de tipo fecha
                var fechaNacimiento = Convert.ToDateTime(modelo.fechaNacimiento);
                var fechaAlta       = Convert.ToDateTime(modelo.fechaAlta);

                //Se genera el colaborador
                var nuevoColaborador = new colaboradores(0, modelo.nombre, modelo.apellidos, modelo.direccionPostal, modelo.codigoPostal, modelo.localidad, modelo.provincia, modelo.pais, modelo.telefono1, modelo.telefono2,
                                                         modelo.email, fechaNacimiento, modelo.CIF_NIF, modelo.CuentaBancaria);
                db.colaboradores.Add(nuevoColaborador);
                db.SaveChanges();

                //Insert the relationship many to many in personas_perfiles
                var perPerfilNew = new personas_perfiles(0, nuevoColaborador.id, 2);
                db.persona_perfil.Add(perPerfilNew);
                db.SaveChanges();

                //Insert Donation
                int idPeriodicidad;
                int.TryParse(modelo.Periodicidad, out idPeriodicidad);
                var donacion = new donaciones(0, modelo.cantidad, fechaAlta, nuevoColaborador.id, idPeriodicidad);
                db.donaciones.Add(donacion);
                db.SaveChanges();

                //Se envía mensaje de acierto
                TempData["Acierto"] = "El colaborador/a " + modelo.nombre + " " + modelo.apellidos + " ha sido añadido/a correctamente al sistema.";

                return(RedirectToAction("Index"));
            }
            //Se cargan las periodicidades en el campo y se realiza un select box
            var listPeriodicidades = db.periodicidades.ToList().Select(x => new SelectListItem
            {
                Text  = x.nombre,
                Value = x.id.ToString()
            });

            ViewBag.Periodicidades = listPeriodicidades;
            return(View(modelo));
        }
Exemple #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            // Se eliminan los datos del colaborador
            colaboradores colaborador = db.colaboradores.SingleOrDefault(m => m.id == id);

            //Also needed to delete from personas_perfiles when is colaborator (2)
            personas_perfiles per = db.persona_perfil.Where(m => m.idPersona == id && m.idPerfil == 2).SingleOrDefault();

            db.persona_perfil.Remove(per);
            db.SaveChanges();

            // Delete donations made from this colaborator
            donaciones donacion = db.donaciones.SingleOrDefault(m => m.idColaborador == id);

            db.donaciones.Remove(donacion);
            db.SaveChanges();

            TempData["Acierto"] = "El colaborador/a " + colaborador.nombre + " " + colaborador.apellidos + " ha sido eliminada del sistema correctamente.";

            return(RedirectToAction("Index"));
        }
        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));
        }