/// <summary> /// Obtiene el detalle de la orden sacrificio /// </summary> /// <param name="ds">Data set con los datos</param> /// <param name="activo">Indica si el registro del detalle se puede editar</param> /// <returns></returns> internal static IList <OrdenSacrificioDetalleInfo> ObtenerDetalleOrdenSacrificio(DataSet ds, bool activo) { IList <OrdenSacrificioDetalleInfo> listaOrdenSacrificio = null; try { Logger.Info(); DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; var usuarioDAL = new UsuarioDAL(); var corralDal = new CorralDAL(); var loteDal = new LoteDAL(); listaOrdenSacrificio = (from detalle in dt.AsEnumerable() select new OrdenSacrificioDetalleInfo { OrdenSacrificioDetalleID = detalle.Field <int>("OrdenSacrificioDetalleID"), OrdenSacrificioID = detalle.Field <int>("OrdenSacrificioID"), FolioOrdenSacrificio = detalle.Field <int>("FolioSalida"), Corraleta = corralDal.ObtenerPorId(detalle.Field <int>("CorraletaID")), Lote = loteDal.ObtenerPorID(detalle.Field <int>("LoteID")), CorraletaCodigo = detalle.Field <string>("CorraletaCodigo"), Cabezas = detalle.Field <int>("CabezasLote"), DiasEngordaGrano = detalle.Field <int>("DiasEngordaGrano"), DiasRetiro = detalle.Field <int>("DiasRetiro"), CabezasASacrificar = detalle.Field <int>("CabezasSacrificio"), Turno = (TurnoEnum)detalle.Field <int>("Turno"), Proveedor = new ProveedorInfo { Descripcion = detalle.Field <string>("Proveedor") }, Clasificacion = detalle.Field <string>("Clasificacion"), Orden = detalle.Field <int>("Orden"), Turnos = Enum.GetValues(typeof(TurnoEnum)).Cast <TurnoEnum>().ToList(), Usuario = usuarioDAL.ObtenerPorID(detalle.Field <int>("UsuarioCreacion")), Activo = activo, CabezasActuales = detalle.Field <int>("CabezasActuales"), Seleccionable = true }).ToList(); if (listaOrdenSacrificio != null) { foreach (var ordenDetalle in listaOrdenSacrificio) { ordenDetalle.Corral = corralDal.ObtenerPorId(ordenDetalle.Lote.CorralID); //if(ordenDetalle.Corral.TipoCorral.TipoCorralID != TipoCorral.Intensivo.GetHashCode() && ordenDetalle.CabezasActuales == 0) //{ // ordenDetalle.Seleccionable = false; //} } } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(listaOrdenSacrificio); }
/// <summary> /// Obtiene los datos de los animales que se encuentran enfermos de un corral determinado /// </summary> /// <param name="ds">Data set</param> /// <param name="organizacionId">Identificador </param> /// <returns>Lista de animales enfermos de un corral determinado</returns> internal static IList <AnimalDeteccionInfo> ObtenerAnimalesEnfermeriaPorCorralSinActivo(DataSet ds, int organizacionId) { IList <AnimalDeteccionInfo> animalEnfermeriaInfo; try { Logger.Info(); var configuracionParametrosDal = new ConfiguracionParametrosDAL(); var parametro = new ConfiguracionParametrosInfo { OrganizacionID = organizacionId, TipoParametro = (int)TiposParametrosEnum.Imagenes, Clave = ParametrosEnum.ubicacionFotos.ToString() }; var operadorDal = new OperadorDAL(); var problemas = new ProblemaDAL(); var corralDal = new CorralDAL(); var parRuta = configuracionParametrosDal.ObtenerPorOrganizacionTipoParametroClave(parametro); var dt = ds.Tables[ConstantesDAL.DtDatos]; animalEnfermeriaInfo = (from info in dt.AsEnumerable() select new AnimalDeteccionInfo { DeteccionID = info.Field <int>("DeteccionID"), RutaFotoDeteccion = parRuta.Valor + info.Field <string>("FotoDeteccion"), Problemas = problemas.ObtenerProblemasDeteccionSinActivo(new AnimalDeteccionInfo { DeteccionID = info.Field <int>("DeteccionID"), EstatusDeteccion = 0 }, null), GradoEnfermedad = new GradoInfo { Descripcion = info.Field <string>("DescripcionGrado"), GradoID = info.Field <int>("GradoID"), NivelGravedad = info.Field <string>("NivelGravedad") }, NombreDetector = info.Field <string>("NombreDetector"), DescripcionGanado = new DescripcionGanadoInfo { DescripcionGanadoID = info.Field <int>("DescripcionGanadoID"), Descripcion = info.Field <string>("DescripcionGanado") }, Detector = operadorDal.ObtenerPorID(info.Field <int>("OperadorID")), FechaDeteccion = info.Field <DateTime>("FechaDeteccion"), Animal = new AnimalInfo { Arete = info["Arete"] == DBNull.Value ? null : info.Field <string>("Arete"), AreteMetalico = info["AreteMetalico"] == DBNull.Value ? null : info.Field <string>("AreteMetalico") }, EnfermeriaCorral = info["CorralID"] == DBNull.Value ? null : new EnfermeriaInfo { FolioEntrada = info["FolioEntrada"] == DBNull.Value ? 0 : info.Field <int>("FolioEntrada"), Corral = info["CorralID"] == DBNull.Value ? null : corralDal.ObtenerPorId(info.Field <int>("CorralID")) }, }).ToList(); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(animalEnfermeriaInfo); }
private void GeneraLineasDetalle(SalidaGanadoEnTransitoInfo salidaMuerte) { try { //salidaMuerte.LoteID; //var corralOrganizacion = CorralBL.ObtenerCorralesPorOrganizacionID(salidaMuerte.OrganizacionID).FirstOrDefault(corral => corral.LoteID == salidaMuerte.LoteID); var corralDal = new CorralDAL(); var loteDal = new LoteDAL(); //corralMuerte = corralDal.ObtenerPorId(corralOrganizacion.CorralID); loteMuerte = loteDal.ObtenerPorID(salidaMuerte.LoteID); corralMuerte = corralDal.ObtenerPorId(salidaMuerte.CorralID); var entradaGanado = new EntradaGanadoTransitoInfo(); if (loteMuerte != null) { entradaGanado.Lote = loteMuerte; } PolizaModel.Detalle = new List <PolizaDetalleModel>(); { //var pesoMuertePromedio = corralOrganizacion.PesoPromedio; var detalleModel = new PolizaDetalleModel { CantidadCabezas = salidaMuerte.NumCabezas.ToString(CultureInfo.InvariantCulture), TipoGanado = CONCEPTO, PesoTotal = salidaMuerte.Kilos.ToString("N"), PesoPromedio = (salidaMuerte.Kilos / salidaMuerte.NumCabezas).ToString("N"), //PrecioPromedio = Math.Abs(salidaMuerte.Importe / salidaMuerte.NumCabezas).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), //PrecioPromedio = Math.Abs(salidaMuerte.Importe / corralOrganizacion.PesoPromedio/salidaMuerte.NumCabezas).ToString("N2", CultureInfo.CurrentCulture).Replace("$", string.Empty), PrecioPromedio = (salidaMuerte.Importe / (salidaMuerte.Kilos / salidaMuerte.NumCabezas) / salidaMuerte.NumCabezas).ToString("N2", CultureInfo.CurrentCulture).Replace("$", string.Empty), //precio promedio por kilo=costo total/Peso total //precio promedio kilo*peso total*num cabezas=importe ImportePromedio = (salidaMuerte.Importe).ToString("N2", CultureInfo.CurrentCulture), //estaba en :"N2" Corral = corralMuerte.Codigo, Lote = entradaGanado.Lote.Lote }; PolizaModel.Detalle.Add(detalleModel); } polizaImpresion.GenerarDetalles("Detalle"); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// metodo que genera el encabezado /// </summary> /// <param name="salidaVenta">objeto de la venta</param> private void GeneraLineasDetalle(SalidaGanadoEnTransitoInfo salidaVenta) { //var corralOrganizacion = CorralBL.ObtenerCorralesPorOrganizacionID(salidaVenta.OrganizacionID).FirstOrDefault(corral => corral.LoteID == salidaVenta.LoteID); var corralDal = new CorralDAL(); var loteDal = new LoteDAL(); corralVenta = corralDal.ObtenerPorId(salidaVenta.CorralID); loteVenta = loteDal.ObtenerPorID(salidaVenta.LoteID); var entradaGanado = new EntradaGanadoTransitoInfo(); if (loteVenta != null) { entradaGanado.Lote = loteVenta; } PolizaModel.Detalle = new List <PolizaDetalleModel>(); { var detalleModel = new PolizaDetalleModel { CantidadCabezas = salidaVenta.NumCabezas.ToString("F0"), TipoGanado = CONCEPTO, PesoTotal = (salidaVenta.Kilos).ToString("F0"), PesoPromedio = (salidaVenta.Kilos / salidaVenta.NumCabezas).ToString("F0"), PrecioPromedio = (salidaVenta.DetallesSalida.Sum(costo => costo.ImporteCosto) / (salidaVenta.Kilos / salidaVenta.NumCabezas) / salidaVenta.NumCabezas).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), ImportePromedio = Math.Abs(salidaVenta.DetallesSalida.Sum(costo => costo.ImporteCosto)).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), Corral = corralVenta.Codigo, PrecioVenta = Math.Abs(salidaVenta.Importe / salidaVenta.NumCabezas).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), ImporteVenta = Math.Abs(salidaVenta.Importe).ToString("N", CultureInfo.CurrentCulture).Replace("$", string.Empty), Lote = entradaGanado.Lote.Lote }; PolizaModel.Detalle.Add(detalleModel); } polizaImpresion.GenerarDetalles("Detalle"); }
/// <summary> /// Obtiene la lista de tratamientos para los los corrales disponibles para programar reimplante /// </summary> /// <param name="organizacionId">Organizacionid</param> /// <returns></returns> internal ResultadoInfo <OrdenReimplanteInfo> ObtenerLotesDisponiblesReimplante(int organizacionId) { ResultadoInfo <OrdenReimplanteInfo> lista = null; try { Logger.Info(); var dal = new ProgramacionReimplanteDAL(); lista = dal.ObtenerLotesDisponiblesReimplante(organizacionId); var tratamientoBl = new TratamientoBL(); var dalCorrales = new CorralDAL(); if (lista.Lista != null) { foreach (var orden in lista.Lista) { orden.CorralOrigen = dalCorrales.ObtenerPorId(orden.IdCorralOrigen); var trat = new TratamientoInfo { OrganizacionId = organizacionId, Sexo = orden.TipoGanado.Sexo, Peso = orden.KilosProyectados }; //obtenemos los tratamientos var tratamientos = tratamientoBl.ObtenerTratamientosPorTipoReimplante(trat); //de los tratamientos recuperamos sus productos en igual de buscarlos en la bd var subFamilia = (int)SubFamiliasEnum.ImplantesYReimplantes;//int.Parse(ConfigurationManager.AppSettings["subFamiliaProductosReimplante"]); var listaAuxiliarProductos = (from tratamiento in tratamientos from producto in tratamiento.Productos where producto.SubfamiliaId == subFamilia select producto ).ToList(); orden.Productos = new List <ProductoInfo>(); foreach (ProductoInfo producto in listaAuxiliarProductos) { if (!orden.Productos.Contains(producto)) { orden.Productos.Add(producto); } } /* Se quito para no ir a buscar de nuevo a la bd * if (tratamientos != null) * { * var listaAuxiliarProductos = tratamientoBl.ObtenerProductosPorTratamiento(tratamientos); * var subFamilia = int.Parse(ConfigurationManager.AppSettings["subFamiliaProductosReimplante"]); * orden.Productos = listaAuxiliarProductos.Where(prod => prod.SubfamiliaId == subFamilia).ToList(); * } * /* * IList<CorralInfo> corralesDestino = dalCorrales.ObtenerParaProgramacionReimplanteDestino(organizacionId); * * orden.CorralesDestino = new List<CorralInfo> {orden.CorralOrigen}; * foreach (var corralInfo in corralesDestino) * { * orden.CorralesDestino.Add(corralInfo); * } */ //REgla del siguiente dia var reimplante = new DateTime(orden.FechaReimplante.Year, orden.FechaReimplante.Month, orden.FechaReimplante.Day); var fechax = DateTime.Now.AddDays(1d); var siguiente = new DateTime(fechax.Year, fechax.Month, fechax.Day); if (reimplante.CompareTo(siguiente) == 0) //son la misma fecha { orden.Seleccionado = true; orden.EsEditable = false; } } } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(lista); }