/// <summary> /// Obteneri dias de engorda 70 /// </summary> /// <param name="lote"></param> /// <returns></returns> internal int ObtnerDiasEngorda70(LoteInfo lote) { try { Logger.Info(); var loteBL = new LoteBL(); LoteInfo loteAnterior = loteBL.ObtenerLoteAnteriorAnimal(lote.LoteID); var animalBL = new AnimalBL(); var animalesLote = animalBL.ObtenerAnimalesPorLote(lote.OrganizacionID, lote.LoteID); if (animalesLote == null) { return(0); } var count = animalesLote.Count; double temp = 0D; for (int i = 0; i < count; i++) { temp += animalesLote[i].FechaEntrada.Ticks / (double)count; } var average = new DateTime((long)temp); var diferenciaFechas = DateTime.Now - average; int diasEngordaLote = Convert.ToInt32(diferenciaFechas.TotalDays); //Si los dias de engorda son mayor de 115, automaticamente se dejan 101 dias de Engorda en Grano if (diasEngordaLote > 115) { return(101); } var loteFiltro = new LoteInfo { LoteID = 0, OrganizacionID = lote.OrganizacionID }; List <DiasEngordaGranoModel> diasEngorda = loteBL.ObtenerDiasEngordaGrano(loteFiltro); //Obtiene todos los Lotes //var repartoDal = new RepartoDAL(); //var repartoDetalle = repartoDal.ObtenerDetalleRepartoPorLote(lote); int diasEngorda70 = 0; if (loteAnterior != null && loteAnterior.LoteID > 0) { DiasEngordaGranoModel diasEngordaLoteAnterior = diasEngorda.FirstOrDefault(dias => dias.LoteID == loteAnterior.LoteID); if (diasEngordaLoteAnterior != null) { diasEngorda70 += diasEngordaLoteAnterior.DiasGrano; } } DiasEngordaGranoModel diasEngordaLoteActual = diasEngorda.FirstOrDefault(dias => dias.LoteID == lote.LoteID); if (diasEngordaLoteActual != null) { diasEngorda70 += diasEngordaLoteActual.DiasGrano; } //if (repartoDetalle != null) //{ // var fechaActual = DateTime.Now; // var listaVespertino = repartoDetalle.Where(repartoDetalleInfo => repartoDetalleInfo.TipoServicioID == (int)TipoServicioEnum.Vespertino).ToList(); // var listaMatutino = repartoDetalle.Where(repartoDetalleInfo => repartoDetalleInfo.TipoServicioID == (int) TipoServicioEnum.Matutino).ToList(); // var diasFormula = listaMatutino.Sum(detalleMatutino => listaVespertino.Count(detalleVespertino => detalleMatutino.RepartoID == detalleVespertino.RepartoID && detalleMatutino.FormulaIDServida == detalleVespertino.FormulaIDServida)); // var diferenciaFechasDiasEngorda = fechaActual - lote.FechaInicio; // var diasEngorda = diferenciaFechasDiasEngorda.Days; // if (diasEngorda > 0 && diasFormula > 0) // { // diasEngorda70 = (int) (((float)diasFormula / (float)diasEngorda) * 100); // } //} return(diasEngorda70); } catch (ExcepcionGenerica ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }