Exemple #1
0
        public IActionResult Edit(int id)
        {
            Ganado ganado = _context.Ganado.Find(id);

            if (ganado != null && ganado.Tipo == 4)
            {
                VacaViewModel ganadoView = new VacaViewModel
                {
                    VacasList       = _context.Ganado.Where(x => x.Tipo == 4 && (x.Estado == 2 || x.Estado == 4)).ToList(),
                    TorosList       = _context.Ganado.Where(x => x.Tipo == 5 && (x.Estado == 2 || x.Estado == 4)).ToList(),
                    IdGanado        = ganado.IdGanado,
                    Codigo          = ganado.Codigo,
                    Partos          = ganado.Partos,
                    FechaNacimiento = ganado.FechaNacimiento,
                    Peso            = ganado.Peso,
                    Valor           = ganado.Valor,
                    ValorPeso       = ganado.ValorPeso,
                    IdMadre         = ganado.IdMadre,
                    IdPadre         = ganado.IdPadre
                };
                return(View(ganadoView));
            }
            else
            {
                TempData["err"] = "No se encontro el elemento";
                return(RedirectToAction("Index"));
            }
        }
        public IActionResult UpdateGanado(GanadoViewModel model)
        {
            Respuesta respuesta = new Respuesta();

            using (var db = new SIPGAVContext())
            {
                using (var transsacion = db.Database.BeginTransaction())
                {
                    Ganado ganado = new Ganado();
                    try
                    {
                        ganado = db.Ganados.Find(model.Id);
                        Map(model, ganado);
                        db.Entry(ganado).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                        db.SaveChanges();
                        transsacion.Commit();
                        respuesta.Exito   = 1;
                        respuesta.Mensaje = "Ganado Modificado Con Exito!";
                    }
                    catch (Exception ex)
                    {
                        transsacion.Rollback();
                        respuesta.Mensaje = ex.Message;
                    }
                    return(Ok(respuesta));
                }
            }
        }
        public IActionResult DeleteGanado(int Id)
        {
            Respuesta respuesta = new Respuesta();

            using (var db = new SIPGAVContext())
            {
                using (var transsacion = db.Database.BeginTransaction())
                {
                    try
                    {
                        Ganado ganado = db.Ganados.Find(Id);
                        db.Ganados.Remove(ganado);
                        db.SaveChanges();
                        transsacion.Commit();
                        respuesta.Exito   = 1;
                        respuesta.Mensaje = "Ganado Eliminado Con Exito!";
                    }
                    catch (Exception ex)
                    {
                        transsacion.Rollback();
                        respuesta.Mensaje = ex.Message;
                    }
                }
            }
            return(Ok(respuesta));
        }
        public ActionResult AddGanado(GanadoViewModel model)
        {
            Respuesta respuesta = new Respuesta();

            using (var db = new SIPGAVContext())
            {
                using (var transsacion = db.Database.BeginTransaction())
                {
                    Ganado ganado = new Ganado();
                    try
                    {
                        Map(model, ganado);
                        db.Ganados.Add(ganado);
                        db.SaveChanges();
                        transsacion.Commit();
                        respuesta.Exito   = 1;
                        respuesta.Mensaje = "Ganado Registrado Con Exito!";
                    }
                    catch (Exception ex)
                    {
                        transsacion.Rollback();
                        respuesta.Mensaje = ex.Message;
                    }
                    return(Ok(respuesta));
                }
            }
        }
        public IActionResult Delete(int id)
        {
            Ganado ganado = _context.Ganado.Find(id);

            if (ganado != null)
            {
                try
                {
                    _context.Ganado.Remove(ganado);
                    _context.SaveChanges();
                    TempData["msj"] = "Elemento eliminado";
                    Bitacora bitacora = new Bitacora
                    {
                        IdEmpresa     = IdEmpresa,
                        IdUsuario     = 0, //CAMBIAR!!!!!!!!!!!!!!!!!!!!!!
                        IdGanado      = ganado.IdGanado,
                        IdAccion      = 3,
                        FechaRegistro = DateTime.Now
                    };
                    _context.Bitacora.Add(bitacora);
                    _context.SaveChanges();
                }
                catch (Exception e)
                {
                    TempData["err"] = e.InnerException.ToString();
                }
            }
            else
            {
                TempData["err"] = "No se encontro el elemento";
            }
            return(RedirectToAction("Index"));
        }
 private void Map(GanadoViewModel model, Ganado ganado)
 {
     ganado.IdFinca    = model.IdFinca;
     ganado.Raza       = model.Raza;
     ganado.TipoAnimal = model.TipoAnimal;
     ganado.Cantidad   = model.Cantidad;
     ganado.Vacunas    = model.Vacunas;
 }
Exemple #7
0
 public IActionResult Details(int id)
 {
     try
     {
         Ganado vaca = _context.Ganado.Find(id);
         if (vaca != null)
         {
             VacaViewModel vacaViewModel = new VacaViewModel {
                 IdGanado              = vaca.IdGanado,
                 Codigo                = vaca.Codigo,
                 PartosString          = vaca.Partos + " partos",
                 EstadoString          = vaca.EstadoNavigation.Descripcion,
                 FechaNacimientoString = vaca.FechaNacimiento.Value.ToShortDateString(),
                 FechaIngresoString    = vaca.FechaIngreso.Value.ToShortDateString(),
                 FechaSalidaString     = vaca.FechaSalida == null ? " - " : vaca.FechaSalida.Value.ToShortDateString(),
                 PesoString            = vaca.Peso == null ? " - " : vaca.Peso + " KG",
                 ValorPesoString       = vaca.ValorPeso == null ? " - " : Utilitaries.ConvertToColon(vaca.ValorPeso.Value),
                 ValorString           = Utilitaries.ConvertToColon(vaca.Valor.Value),
                 EdadString            = Utilitaries.GetDifferenceDate(DateTime.Now, vaca.FechaNacimiento.Value),
                 MadreUrl              = vaca.IdMadre == null?"#":"/Vaca/Details/" + vaca.IdMadre.Value,
                 MadreString           = vaca.IdMadre == null?" - ":_context.Ganado.Find(vaca.IdMadre.Value).Codigo,
                 PadreUrl              = vaca.IdPadre == null?"#":"/Toro/Details/" + vaca.IdPadre.Value,
                 PadreString           = vaca.IdPadre == null?" - ":_context.Ganado.Find(vaca.IdPadre.Value).Codigo,
                 UltimaActualizacion   = vaca.UltimaActualizacion == null ? "Error" : Utilitaries.getRelativeTime(vaca.UltimaActualizacion.Value)
             };
             var           bitacora  = _context.Bitacora.Where(x => x.IdGanado == vacaViewModel.IdGanado).ToList();
             List <Evento> eventList = new List <Evento>();
             foreach (var x in bitacora)
             {
                 Evento evento = new Evento
                 {
                     Description = x.IdHistorial != null? x.AccionNavigation.Descripcion + " " + Utilitaries.ConvertToColon(x.HistorialNavigation.Monto) + " el " + x.FechaRegistro.ToShortDateString() : x.AccionNavigation.Descripcion + " el " + x.FechaRegistro.ToShortDateString(),
                     Url         = x.Url == null ? "#" : x.Url
                 };
                 eventList.Add(evento);
             }
             vacaViewModel.EventList = eventList;
             return(View(vacaViewModel));
         }
         else
         {
             TempData["err"] = "No se encontró el elemento";
             return(RedirectToAction("Index"));
         }
     }
     catch (Exception e)
     {
         TempData["err"] = e.InnerException.ToString();
         return(RedirectToAction("Index"));
     }
 }
        public IActionResult Create(TerneroViewModel ganadoView)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Ganado ganado = new Ganado
                    {
                        Codigo              = ganadoView.Codigo,
                        Tipo                = ganadoView.Tipo,
                        IdEmpresa           = IdEmpresa,
                        Estado              = 1,
                        FechaIngreso        = DateTime.Now,
                        FechaNacimiento     = ganadoView.FechaNacimiento,
                        Peso                = ganadoView.Peso,
                        Valor               = ganadoView.Valor,
                        ValorPeso           = ganadoView.ValorPeso,
                        IdMadre             = ganadoView.IdMadre != 0 ? ganadoView.IdMadre : null,
                        IdPadre             = ganadoView.IdPadre != 0 ? ganadoView.IdPadre : null,
                        UltimaActualizacion = DateTime.Now
                    };
                    _context.Ganado.Add(ganado);
                    _context.SaveChanges();
                    TempData["msj"] = "Elemento agregado";

                    Bitacora bitacora = new Bitacora
                    {
                        IdEmpresa     = IdEmpresa,
                        IdUsuario     = 0, //CAMBIAR!!!!!!!!!!!!!!!!!!!!!!
                        IdGanado      = ganado.IdGanado,
                        IdAccion      = 1,
                        FechaRegistro = DateTime.Now
                    };
                    _context.Bitacora.Add(bitacora);
                    _context.SaveChanges();
                }
                catch (Exception e)
                {
                    TempData["err"] = e.InnerException.ToString();
                }
            }
            else
            {
                TempData["err"] = "Formulario incompleto";
            }
            return(RedirectToAction("Index"));
        }
        public IActionResult Edit(TerneroViewModel ganadoView)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Ganado ganado = _context.Ganado.Find(ganadoView.IdGanado);

                    ganado.Codigo              = ganadoView.Codigo;
                    ganado.Tipo                = ganadoView.Tipo;
                    ganado.FechaNacimiento     = ganadoView.FechaNacimiento;
                    ganado.Peso                = ganadoView.Peso;
                    ganado.Valor               = ganadoView.Valor;
                    ganado.ValorPeso           = ganadoView.ValorPeso;
                    ganado.IdMadre             = ganadoView.IdMadre != 0 ? ganadoView.IdMadre : null;
                    ganado.IdPadre             = ganadoView.IdPadre != 0 ? ganadoView.IdPadre : null;
                    ganado.UltimaActualizacion = DateTime.Now;

                    _context.Ganado.Update(ganado);
                    _context.SaveChanges();
                    TempData["msj"] = "Elemento modificado";
                    Bitacora bitacora = new Bitacora
                    {
                        IdEmpresa     = IdEmpresa,
                        IdUsuario     = 0, //CAMBIAR!!!!!!!!!!!!!!!!!!!!!!
                        IdGanado      = ganado.IdGanado,
                        IdAccion      = 2,
                        FechaRegistro = DateTime.Now
                    };
                    _context.Bitacora.Add(bitacora);
                    _context.SaveChanges();
                }
                catch (Exception e)
                {
                    TempData["err"] = e.InnerException.ToString();
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                TempData["err"] = "Error al rellenar el formulario";
                return(RedirectToAction("Index"));
            }
        }
        public IActionResult Get(int Id)
        {
            Respuesta oRespuesta = new Respuesta();

            try
            {
                using (var db = new SIPGAVContext())
                {
                    var    lst    = db.Ganados.ToList();
                    Ganado ganado = lst.Where(d => d.Id == Id).FirstOrDefault();
                    oRespuesta.Exito   = 1;
                    oRespuesta.Mensaje = "Ganado";
                    oRespuesta.Data    = ganado;
                }
            }
            catch (Exception e)
            {
                oRespuesta.Mensaje = e.Message;
            }
            return(Ok(oRespuesta));
        }
Exemple #11
0
        public IActionResult Delete(int id)
        {
            Ganado ganado = _context.Ganado.Find(id);

            if (ganado != null)
            {
                try
                {
                    _context.Ganado.Remove(ganado);
                    _context.SaveChanges();
                    TempData["msj"] = "Elemento eliminado";
                }
                catch (Exception e)
                {
                    TempData["err"] = e.InnerException.ToString();
                }
            }
            else
            {
                TempData["err"] = "No se encontro el elemento";
            }
            return(RedirectToAction("Index"));
        }
Exemple #12
0
 public IActionResult Create(VacaViewModel ganadoView)
 {
     if (ModelState.IsValid)
     {
         try
         {
             Ganado ganado = new Ganado
             {
                 IdEmpresa           = IdEmpresa,
                 Codigo              = ganadoView.Codigo,
                 Tipo                = 4,
                 Estado              = 2,
                 FechaIngreso        = DateTime.Now,
                 FechaNacimiento     = ganadoView.FechaNacimiento,
                 Peso                = ganadoView.Peso,
                 Valor               = ganadoView.Valor,
                 ValorPeso           = ganadoView.ValorPeso,
                 IdMadre             = ganadoView.IdMadre != 0 ? ganadoView.IdMadre : null,
                 IdPadre             = ganadoView.IdPadre != 0 ? ganadoView.IdPadre : null,
                 Partos              = ganadoView.Partos,
                 UltimaActualizacion = DateTime.Now
             };
             _context.Ganado.Add(ganado);
             _context.SaveChanges();
             TempData["msj"] = "Elemento agregado";
         }
         catch (Exception e)
         {
             TempData["err"] = e.InnerException.ToString();
         }
     }
     else
     {
         TempData["err"] = "Formulario incompleto";
     }
     return(RedirectToAction("Index"));
 }
Exemple #13
0
        public async Task <IActionResult> Edit(int id, [Bind("IdGanado,IdRaza,IdEstancia,IdGenero,Tag,FechaNacimiento,FechaIngreso,Estado")] Ganado ganado)
        {
            if (id != ganado.IdGanado)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var movimientoEntrada = _context.Movimiento.Where(x => x.IdGanado == ganado.IdGanado && x.IdRazonMovimientoNavigation.IdTipoMovimiento == TipoMovimiento.Entrada).FirstOrDefault();
                    movimientoEntrada.FechaMovimiento = ganado.FechaIngreso;

                    _context.Movimiento.Update(movimientoEntrada);
                    _context.Ganado.Update(ganado);

                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GanadoExists(ganado.IdGanado))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                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));
        }
Exemple #14
0
        public IActionResult Edit(VacaViewModel ganadoView)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Ganado ganado = _context.Ganado.Find(ganadoView.IdGanado);

                    ganado.Codigo              = ganadoView.Codigo;
                    ganado.Tipo                = ganadoView.Partos;
                    ganado.Partos              = ganadoView.Partos;
                    ganado.FechaNacimiento     = ganadoView.FechaNacimiento;
                    ganado.Peso                = ganadoView.Peso;
                    ganado.Valor               = ganadoView.Valor;
                    ganado.ValorPeso           = ganadoView.ValorPeso;
                    ganado.IdMadre             = ganadoView.IdMadre != 0 ? ganadoView.IdMadre : null;
                    ganado.IdPadre             = ganadoView.IdPadre != 0 ? ganadoView.IdPadre : null;
                    ganado.UltimaActualizacion = DateTime.Now;

                    _context.Ganado.Update(ganado);
                    _context.SaveChanges();
                    TempData["msj"] = "Elemento modificado";
                }
                catch (Exception e)
                {
                    TempData["err"] = e.InnerException.ToString();
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                TempData["err"] = "Error al rellenar el formulario";
                return(RedirectToAction("Index"));
            }
        }
        public async void Generar()
        {
            List <DateTime> fechas = new List <DateTime>();

            for (int i = 0; i < Cantidad; i++)
            {
                fechas.Add(FechaAleatoria(FechaInicio, DateTime.Now));
            }
            fechas.Sort((a, b) => a.CompareTo(b));

            for (int i = 0; i < Cantidad; i++)
            {
                using (SCGContext context = new SCGContext())
                {
                    using (var transaction = context.Database.BeginTransaction())
                    {
                        var lista = await context.Ganado.Where(x => x.Estado == 1).ToListAsync();

                        foreach (var val in lista)
                        {
                            if (_rand.NextDouble() < ProbabilidadSalida)
                            {
                                var prob = ((fechas[i] - val.FechaNacimiento).Value.TotalDays / 365) / 6;
                                if (_rand.NextDouble() < prob)
                                {
                                    val.Estado = Ganado.Estados.Baja;
                                    Movimiento salida = new Movimiento();
                                    salida.FechaMovimiento = fechas[i];
                                    salida.IdGanado        = val.IdGanado;
                                    if (_rand.NextDouble() < ProbabilidadMuerte)
                                    {
                                        salida.IdRazonMovimiento = Muertes[_rand.Next(0, Muertes.Count)];
                                    }
                                    else
                                    {
                                        salida.IdRazonMovimiento = 7;
                                    }
                                    context.Movimiento.Add(salida);
                                    await context.SaveChangesAsync();
                                }
                            }
                        }

                        Ganado animal = new Ganado();
                        // TAG
                        animal.Tag = (i + 100).ToString() + randomChar + randomChar + randomChar;
                        // Genero
                        if (_rand.NextDouble() < ProbabilidadMacho)
                        {
                            animal.IdGenero = Genero.Tipo.Macho;
                        }
                        else
                        {
                            animal.IdGenero = Genero.Tipo.Hembra;
                        }

                        if (_rand.NextDouble() < ProbabilidadNelore)
                        {
                            animal.IdRaza = 1;
                        }
                        else
                        {
                            animal.IdRaza = Razas[_rand.Next(0, Razas.Count)];
                        }

                        animal.IdEstancia = 1;

                        bool compra = _rand.NextDouble() > ProbabilidadNacimiento;
                        if (compra)
                        {
                            animal.IdEstanciaOrigen = Estancia[_rand.Next(0, Estancia.Count)];
                        }
                        else
                        {
                            animal.IdEstanciaOrigen = 1;
                        }

                        animal.FechaNacimiento = fechas[i];
                        animal.FechaIngreso    = fechas[i];

                        context.Ganado.Add(animal);
                        await context.SaveChangesAsync();

                        // Movimiento
                        Movimiento movimiento = new Movimiento();
                        movimiento.FechaMovimiento = fechas[i];

                        if (compra)
                        {
                            movimiento.IdRazonMovimiento = RazonMovimiento.Tipo.Compra;
                        }
                        else
                        {
                            movimiento.IdRazonMovimiento = RazonMovimiento.Tipo.Nacimiento;
                            // Madre y Padre(Probabilidad) de mas de 2 años random
                            Ganado padre = null, madre = null;
                            if (_rand.NextDouble() < ProbabilidadPadre)
                            {
                                var colPadre = await context.Ganado.Where(x => x.Estado == Ganado.Estados.Activo && x.IdGenero == Genero.Tipo.Macho && (DateTime.Now - x.FechaNacimiento) > TimeSpan.FromDays(365 * 2)).ToListAsync();

                                if (colPadre.Count != 0)
                                {
                                    padre = colPadre[_rand.Next(0, colPadre.Count)];
                                }

                                if (padre != null)
                                {
                                    Relacion relPadre = new Relacion();
                                    relPadre.IdHijo       = animal.IdGanado;
                                    relPadre.IdProgenitor = padre.IdGanado;
                                    context.Relacion.Add(relPadre);
                                    await context.SaveChangesAsync();
                                }
                            }
                            var colMadre = await context.Ganado.Where(x => x.Estado == Ganado.Estados.Activo && x.IdGenero == Genero.Tipo.Hembra && (DateTime.Now - x.FechaNacimiento) > TimeSpan.FromDays(365 * 2)).ToListAsync();

                            if (colMadre.Count != 0)
                            {
                                padre = colMadre[_rand.Next(0, colMadre.Count)];
                            }

                            if (madre != null)
                            {
                                Relacion relMadre = new Relacion();
                                relMadre.IdHijo       = animal.IdGanado;
                                relMadre.IdProgenitor = madre.IdGanado;
                                context.Relacion.Add(relMadre);
                                await context.SaveChangesAsync();
                            }

                            if (padre == null && madre == null)
                            {
                                movimiento.IdRazonMovimiento = RazonMovimiento.Tipo.Compra;
                            }
                        }
                        movimiento.IdGanado = animal.IdGanado;
                        context.Movimiento.Add(movimiento);
                        await context.SaveChangesAsync();

                        transaction.Commit();
                    }
                }
            }
        }
Exemple #16
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> Finalizar(int?id, [Bind("Tag,asistencia,vacunado,peso,padecimientos,glosa")] List <FormResultado> results)
        {
            Orden orden = _context.Orden.Where(x => x.IdOrden == id).First();

            if (ModelState.IsValid)
            {
                using (var transaccion = _context.Database.BeginTransaction())
                {
                    try
                    {
                        var queryPes  = _context.Pesaje.Where(x => x.IdOrden == orden.IdOrden);
                        var queryVac  = _context.Vacunacion.Where(x => x.IdOrden == orden.IdOrden);
                        var queryInsp = _context.Inspeccion.Where(x => x.IdOrden == orden.IdOrden);
                        var queryCont = _context.Conteo.Where(x => x.IdOrden == orden.IdOrden);

                        Pesaje     pes  = null;
                        Vacunacion vac  = null;
                        Inspeccion insp = null;
                        Conteo     cont = null;

                        if (queryPes.Count() != 0)
                        {
                            pes = queryPes.First();
                        }
                        if (queryVac.Count() != 0)
                        {
                            vac = queryVac.First();
                        }
                        if (queryInsp.Count() != 0)
                        {
                            insp = queryInsp.First();
                        }
                        if (queryCont.Count() != 0)
                        {
                            cont = queryCont.First();
                        }

                        foreach (FormResultado r in results)
                        {
                            Ganado vaca = _context.Ganado.Where(x => x.Tag == r.Tag).First();
                            if (pes != null)
                            {
                                orden.Pesaje.Add(pes);
                            }
                            if (vac != null)
                            {
                                orden.Vacunacion.Add(vac);
                            }
                            if (insp != null)
                            {
                                orden.Inspeccion.Add(insp);
                            }
                            if (cont != null)
                            {
                                orden.Conteo.Add(cont);
                            }

                            ResultadoConteo     resultCont = new ResultadoConteo();
                            ResultadoPesaje     resultPes  = new ResultadoPesaje();
                            ResultadoVacunacion resultVac  = new ResultadoVacunacion();
                            ResultadoInspeccion resultInsp = new ResultadoInspeccion();

                            // Encargandose del conteo;
                            resultCont.Asistencia = r.asistencia;
                            resultCont.IdGanado   = vaca.IdGanado;
                            resultCont.IdConteo   = orden.Conteo.First().IdConteo;
                            _context.Add(resultCont);

                            //Encargandose del Pesaje
                            if (resultCont.Asistencia == 1 && orden.Pesaje.Count() > 0)
                            {
                                resultPes.Peso     = r.peso;
                                resultPes.IdGanado = vaca.IdGanado;
                                resultPes.IdPesaje = orden.Pesaje.First().IdPesaje;
                                _context.Add(resultPes);
                            }

                            //Encargandose de la Vacunacion
                            if (resultCont.Asistencia == 1 && orden.Vacunacion.Count() > 0)
                            {
                                List <VacunaAplicada> aplicaciones = new List <VacunaAplicada>();
                                var queryPlanificacion             = _context.PlanificacionVacunacion.Where(x => x.IdVacunacion == orden.Vacunacion.First().IdVacunacion);
                                foreach (PlanificacionVacunacion plan in queryPlanificacion)
                                {
                                    VacunaAplicada aplicacion = new VacunaAplicada();
                                    aplicacion.IdVacuna = plan.IdVacuna;
                                    aplicaciones.Add(aplicacion);
                                }
                                orden.Vacunacion.First().PlanificacionVacunacion = queryPlanificacion.ToList();
                                resultVac.IdGanado     = vaca.IdGanado;
                                resultVac.IdVacunacion = orden.Vacunacion.First().IdVacunacion;
                                _context.Add(resultVac);
                                foreach (VacunaAplicada ap in aplicaciones)
                                {
                                    ap.IdResultadoVacunacion = resultVac.IdResultadoVacunacion;
                                    _context.Add(ap);
                                }
                            }

                            //Encargandose de la Inspeccion
                            if (resultCont.Asistencia == 1 && orden.Inspeccion.Count() > 0)
                            {
                                List <InspeccionPadecimiento> inspad_list = new List <InspeccionPadecimiento>();
                                resultInsp.Glosa        = r.glosa;
                                resultInsp.IdGanado     = vaca.IdGanado;
                                resultInsp.IdInspeccion = orden.Inspeccion.First().IdInspeccion;
                                foreach (int num in r.padecimientos)
                                {
                                    InspeccionPadecimiento inspad = new InspeccionPadecimiento();
                                    inspad.IdPadecimiento = num;
                                    inspad_list.Add(inspad);
                                }
                                resultInsp.InspeccionPadecimiento = inspad_list;
                                _context.Add(resultInsp);
                                foreach (InspeccionPadecimiento ip in inspad_list)
                                {
                                    ip.IdResultadoInspeccion = resultInsp.IdResultadoInspeccion;
                                    _context.Add(ip);
                                }
                                //orden.Estado='desactivado'
                                _context.Update(orden);
                            }
                        }


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

                        throw;
                    }
                    await _context.SaveChangesAsync();
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(orden));
        }