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)); }
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 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(); } } } }
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)); }
public async void Generar() { for (int i = 2006; i <= 2019; i++) { List <int> vacunaciones = new List <int>() { _rand.Next(2, 4), _rand.Next(5, 7), _rand.Next(10, 13) }; // Todos se dan entre el dia 05 - 25 for (int j = 1; j <= 12; j++) { var inicio = DateTime.Parse(string.Format("05/{0}/{1}", j, i)); var fin = DateTime.Parse(string.Format("25/{0}/{1}", j, i)); var fecha = FechaAleatoria(inicio, fin); bool existeInspeccion = false; bool existeVacunacion = false; bool existePesaje = false; using (SCGContext context = new SCGContext()) { using (var transaction = context.Database.BeginTransaction()) { var ganado = await context.Ganado.Where(x => x.Estado == Ganado.Estados.Activo && x.FechaIngreso <= fecha).ToListAsync(); var orden = new Orden() { FechaPlanificacion = fecha, Razon = string.Empty }; context.Orden.Add(orden); await context.SaveChangesAsync(); var conteo = new Conteo() { IdOrden = orden.IdOrden }; context.Conteo.Add(conteo); await context.SaveChangesAsync(); var inspeccion = new Inspeccion() { IdOrden = orden.IdOrden }; if (_rand.NextDouble() < ProbabilidadInspeccion) { context.Inspeccion.Add(inspeccion); await context.SaveChangesAsync(); existeInspeccion = true; } var pesaje = new Pesaje() { IdOrden = orden.IdOrden }; if (_rand.NextDouble() < ProbabilidadPesaje) { context.Pesaje.Add(pesaje); await context.SaveChangesAsync(); existePesaje = true; } // Mes de vacunacion Vacunacion vacunacion = new Vacunacion() { IdOrden = orden.IdOrden }; int vacunasMax = _rand.Next(2, 5); var listaVacunas = vacunasRandom(vacunasMax); if (vacunaciones.Exists(x => x == j)) { context.Vacunacion.Add(vacunacion); await context.SaveChangesAsync(); for (int k = 0; k < listaVacunas.Count; k++) { PlanificacionVacunacion pv = new PlanificacionVacunacion() { IdVacunacion = vacunacion.IdVacunacion }; pv.IdVacuna = listaVacunas[k]; context.PlanificacionVacunacion.Add(pv); await context.SaveChangesAsync(); } existeVacunacion = true; } /// A PARTIR DE ACA SE COMPLETAN LAS ACTIVIDADES foreach (var val in ganado) { ResultadoConteo rc = new ResultadoConteo() { IdConteo = conteo.IdConteo, IdGanado = val.IdGanado, Asistencia = 0 }; if (_rand.NextDouble() < ProbabilidadAsistencia) { rc.Asistencia = 1; } else { rc.Asistencia = 0; } context.ResultadoConteo.Add(rc); await context.SaveChangesAsync(); if (existeInspeccion) { if (_rand.NextDouble() < ProbabilidadPadecimiento) { var ri = new ResultadoInspeccion() { IdInspeccion = inspeccion.IdInspeccion, IdGanado = val.IdGanado }; context.ResultadoInspeccion.Add(ri); await context.SaveChangesAsync(); InspeccionPadecimiento ip = new InspeccionPadecimiento() { IdResultadoInspeccion = ri.IdResultadoInspeccion }; ip.IdPadecimiento = Padecimientos[_rand.Next(0, Padecimientos.Count)]; context.InspeccionPadecimiento.Add(ip); await context.SaveChangesAsync(); } } if (existePesaje) { bool invierno = false; var rp = new ResultadoPesaje() { IdGanado = val.IdGanado, IdPesaje = pesaje.IdPesaje }; int edad = (int)Math.Round((fecha - val.FechaNacimiento).Value.TotalDays / 365); if (fecha.Month > 4 && fecha.Month < 9) { invierno = true; } rp.Peso = calcularPeso(edad, invierno); context.ResultadoPesaje.Add(rp); await context.SaveChangesAsync(); } if (existeVacunacion) { var rv = new ResultadoVacunacion() { IdGanado = val.IdGanado, IdVacunacion = vacunacion.IdVacunacion }; context.ResultadoVacunacion.Add(rv); await context.SaveChangesAsync(); for (int k = 0; k < listaVacunas.Count; k++) { var va = new VacunaAplicada() { IdResultadoVacunacion = rv.IdResultadoVacunacion, IdVacuna = listaVacunas[k] }; context.VacunaAplicada.Add(va); await context.SaveChangesAsync(); } } } transaction.Commit(); } } } } }