public async Task <IActionResult> Create([Bind("IdVacuna,Nombre,Descripcion")] Vacuna vacuna)
        {
            if (ModelState.IsValid)
            {
                _context.Add(vacuna);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(vacuna));
        }
        public async Task <IActionResult> Create([Bind("IdEstancia,Nombre,Estado")] Estancia estancia)
        {
            if (ModelState.IsValid)
            {
                _context.Add(estancia);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(estancia));
        }
        public async Task <IActionResult> Create([Bind("IdPersona,Nombres,Apellidos,Ci,FechaNacimiento,Estado")] Persona persona)
        {
            if (ModelState.IsValid)
            {
                _context.Add(persona);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(persona));
        }
        public async Task <IActionResult> Create([Bind("IdRelacion,IdProgenitor,IdHijo,Estado")] Relacion relacion)
        {
            if (ModelState.IsValid)
            {
                _context.Add(relacion);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdHijo"]       = new SelectList(_context.Ganado, "IdGanado", "Tag", relacion.IdHijo);
            ViewData["IdProgenitor"] = new SelectList(_context.Ganado, "IdGanado", "Tag", relacion.IdProgenitor);
            return(View(relacion));
        }
        public async Task <IActionResult> Create([Bind("IdRazonCancelacion,IdOrden,IdCancelacion,Glosa,Estado")] Cancelacion cancelacion)
        {
            if (ModelState.IsValid)
            {
                var ordenCancelada = _context.Orden.Where(orden => orden.IdOrden == cancelacion.IdOrden).First();
                ordenCancelada.Estado = (int)Orden.Estados.Cancelado;
                _context.Update(ordenCancelada);

                _context.Add(cancelacion);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdCancelacion"] = new SelectList(_context.RazonCancelacion, "IdRazonCancelacion", "Nombre", cancelacion.IdCancelacion);
            ViewData["IdOrden"]       = new SelectList(_context.Orden, "IdOrden", "IdOrden", cancelacion.IdOrden);
            return(View(cancelacion));
        }
Beispiel #6
0
        public async Task <IActionResult> Create([Bind("IdGanado,IdRaza,IdEstancia,IdEstanciaOrigen,IdGenero,Tag,FechaNacimiento,FechaIngreso,Estado")] Ganado ganado, [Bind("IdRazonMovimiento")] Movimiento movimiento, [Bind("IdPadre", "IdMadre")] Relacion relacion)
        {
            if (ModelState.IsValid)
            {
                // Validaciones
                if (ganado.FechaIngreso < ganado.FechaNacimiento)
                {
                    return(View("~/Views/Shared/Error.cshtml"));
                }

                using (var transaccion = _context.Database.BeginTransaction())
                {
                    try
                    {
                        // Se crea el builder basandose en el ganado obtenido por binding
                        GanadoBuilder builder = new GanadoBuilder(ganado);

                        // Se crea el movimiento
                        movimiento.IdGanado        = ganado.IdGanado;
                        movimiento.FechaMovimiento = ganado.FechaIngreso;

                        builder.AsignarMovimiento(movimiento);

                        // Se verifica si se va a registrar una relación
                        if (movimiento.IdRazonMovimiento == RazonMovimiento.Tipo.Nacimiento)
                        {
                            if (relacion.IdPadre == null && relacion.IdMadre == null)
                            {
                                transaccion.Rollback();
                                return(View("~/Views/Shared/Error.cshtml"));
                            }

                            Models.Relacion relPadre = null;
                            if (relacion.IdPadre != null)
                            {
                                relPadre = new Models.Relacion();
                                relPadre.IdProgenitor = (int)relacion.IdPadre;
                                relPadre.IdHijo       = ganado.IdGanado;
                            }
                            Models.Relacion relMadre = null;
                            if (relacion.IdMadre != null)
                            {
                                relMadre = new Models.Relacion();
                                relMadre.IdProgenitor = (int)relacion.IdMadre;
                                relMadre.IdHijo       = ganado.IdGanado;
                            }
                            builder.AsignarRelacion(relPadre, relMadre);
                        }

                        _context.Add(ganado);
                        await _context.SaveChangesAsync();

                        transaccion.Commit();
                    }
                    catch (Exception)
                    {
                        transaccion.Rollback();
                        return(View("~/Views/Shared/Error.cshtml"));
                    }
                    return(RedirectToAction(nameof(Index)));
                }
            }

            ViewData["IdEstancia"] = new SelectList(_context.Estancia, "IdEstancia", "Nombre", ganado.IdEstancia);
            ViewData["IdGenero"]   = new SelectList(_context.Genero, "IdGenero", "Nombre", ganado.IdGenero);
            ViewData["IdRaza"]     = new SelectList(_context.Raza, "IdRaza", "Nombre", ganado.IdRaza);
            return(View(ganado));
        }
        public async Task <IActionResult> Create([Bind("IdOrden,FechaPlanificacion,Razon,Estado")] Orden orden)
        {
            var hayPesaje     = (Request.Form["hayPesaje"] == "on");
            var hayInspeccion = (Request.Form["hayInspeccion"] == "on");
            var hayVacunacion = (Request.Form["hayVacunacion"] == "on");


            Abstracciones.OrdenBuilder builder = new Abstracciones.OrdenBuilder(orden.FechaPlanificacion, orden.Razon);
            var seleccionados = (Request.Form["PlanificacionVacunacion"].ToList());

            //Pesaje
            if (hayPesaje)
            {
                builder.WithPesaje(true);
            }
            else
            {
                builder.WithPesaje(false);
            }

            //Inspeccion
            if (hayInspeccion)
            {
                builder.WithInspeccion(true);
            }
            else
            {
                builder.WithInspeccion(false);
            }

            //Vacunacion
            if (hayVacunacion)
            {
                builder.WithVacunacion(true, seleccionados);
            }
            else
            {
                builder.WithVacunacion(false, null);
            }

            orden = builder.GetOrden();
            if (ModelState.IsValid)
            {
                using (var transaccion = _context.Database.BeginTransaction())
                {
                    try
                    {
                        if (orden.FechaPlanificacion < DateTime.Now)
                        {
                            return(View("~/Views/Shared/Error.cshtml"));
                        }
                        _context.Add(orden);
                        await _context.SaveChangesAsync();



                        orden.Conteo.First().IdOrden = orden.IdOrden;
                        Conteo cont = orden.Conteo.First();
                        _context.Add(cont);

                        if (orden.Vacunacion != null)
                        {
                            orden.Vacunacion.First().IdOrden = orden.IdOrden;
                            _context.Add(orden.Vacunacion.First());
                            foreach (PlanificacionVacunacion plan in orden.Vacunacion.First().PlanificacionVacunacion)
                            {
                                plan.IdVacuna = orden.Vacunacion.First().IdVacunacion;
                                _context.Add(plan);
                            }
                        }
                        if (orden.Inspeccion != null)
                        {
                            orden.Inspeccion.First().IdOrden = orden.IdOrden;
                            _context.Add(orden.Inspeccion.First());
                        }
                        if (orden.Pesaje != null)
                        {
                            orden.Pesaje.First().IdOrden = orden.IdOrden;
                            _context.Add(orden.Pesaje.First());
                        }
                        transaccion.Commit();
                    }
                    catch
                    {
                        transaccion.Rollback();
                        return(View("~/Views/Shared/Error.cshtml"));

                        throw;
                    }
                    return(RedirectToAction(nameof(Index)));
                }
            }
            return(View(orden));
        }