/// <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); }
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"); }