private void GeneraLineasDetalle(GanadoIntensivoInfo muerteIntesiva) { EntradaGanadoInfo entradaGanado = muerteIntesiva.EntradaGanado; var pesoMuertePromedio = Math.Round((entradaGanado.PesoBruto - entradaGanado.PesoTara) / entradaGanado.CabezasRecibidas, 0); int cantidadCabezas = muerteIntesiva.Cabezas; decimal importe = muerteIntesiva.Importe; var concepto = muerteIntesiva.EntradaGanadoCosteo.ListaEntradaDetalle.Select(des => des.TipoGanado.Descripcion).FirstOrDefault(); PolizaModel.Detalle = new List <PolizaDetalleModel>(); PolizaDetalleModel detalleModel; detalleModel = new PolizaDetalleModel { CantidadCabezas = cantidadCabezas.ToString("F0"), TipoGanado = concepto, PesoTotal = (pesoMuertePromedio * cantidadCabezas).ToString("F0"), PesoPromedio = pesoMuertePromedio.ToString("F0"), PrecioPromedio = Math.Abs(importe / cantidadCabezas).ToString("N2"), ImportePromedio = Math.Abs(importe).ToString("N2"), //PrecioVenta = (detalle.Precio).ToString("N2"), //ImporteVenta = // ((detalle.Precio * (Math.Round(detalle.Peso * detalle.Cabezas, 0)))).ToString // ("N2"), Corral = muerteIntesiva.Corral.Codigo, Lote = muerteIntesiva.Lote.Lote }; PolizaModel.Detalle.Add(detalleModel); polizaImpresion.GenerarDetalles("Detalle"); }
private void GenerarLineasDetalle(List <PolizaEntradaSalidaPorAjusteModel> ajustesDeInventario) { IList <ProductoInfo> productos = ObtenerProductos(); IList <UnidadMedicionInfo> unidades = ObtenerUnidadesMedicion(); PolizaModel.Detalle = new List <PolizaDetalleModel>(); PolizaDetalleModel polizaModel; for (int indexInventario = 0; indexInventario < ajustesDeInventario.Count; indexInventario++) { ProductoInfo producto = productos.FirstOrDefault(prod => prod.ProductoId == ajustesDeInventario[indexInventario].ProductoID); if (producto == null) { producto = new ProductoInfo(); } polizaModel = new PolizaDetalleModel { CantidadCabezas = producto.ProductoId.ToString(), TipoGanado = producto.ProductoDescripcion, Lote = ajustesDeInventario[indexInventario].Lote == 0 ? string.Empty : ajustesDeInventario[indexInventario].Lote.ToString(), PesoOrigen = Math.Abs(ajustesDeInventario[indexInventario].Cantidad).ToString("N0"), PesoLlegada = Math.Abs(ajustesDeInventario[indexInventario].Cantidad).ToString("N0"), Corral = unidades.Where(clave => clave.UnidadID == producto.UnidadId).Select(uni => uni.ClaveUnidad).FirstOrDefault(), PrecioPromedio = ajustesDeInventario[indexInventario].Precio.ToString("N2"), ImportePromedio = Math.Abs(Math.Round(ajustesDeInventario[indexInventario].Cantidad * ajustesDeInventario[indexInventario].Precio, 2)).ToString("N2"), }; PolizaModel.Detalle.Add(polizaModel); } }
/// <summary> /// Genera linea de totales para detalle /// </summary> /// <param name="salidaProducto"></param> private void GeneraLineaTotalDetalle(SalidaProductoInfo salidaProducto) { PolizaModel.Detalle = new List <PolizaDetalleModel>(); decimal cantidad = salidaProducto.PesoBruto - salidaProducto.PesoTara; var polizaDetalleModel = new PolizaDetalleModel { PrecioVenta = (salidaProducto.Importe / cantidad).ToString("N2"), ImporteVenta = salidaProducto.Importe.ToString("N2"), }; PolizaModel.Detalle.Add(polizaDetalleModel); }
private void GeneraLineaTotalDetalle(List <PolizaEntradaSalidaPorAjusteModel> ajustesDeInventario) { decimal total = ajustesDeInventario.Sum(imp => Math.Abs(Math.Round(imp.Cantidad * imp.Precio, 2))); PolizaModel.Detalle = new List <PolizaDetalleModel>(); var polizaModel = new PolizaDetalleModel { ImportePromedio = total.ToString("N2"), PesoTotal = total.ToString("N2"), ImporteVenta = total.ToString("N2"), }; PolizaModel.Detalle.Add(polizaModel); polizaImpresion.GenerarDetalles("Detalle"); }
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> /// Genera las Lineas del Detalle /// </summary> /// <param name="traspasoMp"></param> private void GeneraLineasDetalle(TraspasoMpPaMedInfo traspasoMp) { PolizaModel.Detalle = new List <PolizaDetalleModel>(); var detalleModel = new PolizaDetalleModel { CantidadCabezas = traspasoMp.ProductoOrigen.ProductoId.ToString(CultureInfo.InvariantCulture), PesoPromedio = string.Empty, TipoGanado = traspasoMp.ProductoOrigen.ProductoDescripcion, PesoTotal = string.Format("{0} {1}.", traspasoMp.CantidadTraspasarOrigen.ToString("N0"), traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad), ImportePromedio = traspasoMp.PrecioTraspasoOrigen.ToString("N2"), PrecioVenta = traspasoMp.ImporteTraspaso.ToString("N2"), }; PolizaModel.Detalle.Add(detalleModel); polizaImpresion.GenerarDetalles("Detalle"); }
/// <summary> /// Genera los totales por Detalle /// </summary> /// <param name="traspasoMp"></param> private void GeneraLineaTotales(TraspasoMpPaMedInfo traspasoMp) { var sumaImporte = traspasoMp.ImporteTraspaso; PolizaModel.Detalle = new List <PolizaDetalleModel>(); var detalleModel = new PolizaDetalleModel { CantidadCabezas = string.Empty, PesoPromedio = string.Empty, TipoGanado = string.Empty, PesoTotal = string.Empty, ImportePromedio = string.Empty, PrecioVenta = sumaImporte.ToString("N2", CultureInfo.CurrentCulture), }; PolizaModel.Detalle.Add(detalleModel); }
/// <summary> /// Genera los totales por Detalle /// </summary> /// <param name="solicitud"></param> private void GeneraLineaTotales(SolicitudProductoInfo solicitud) { var sumaImporte = Math.Round(solicitud.Detalle.Sum(det => det.Cantidad * det.PrecioPromedio), 2); PolizaModel.Detalle = new List <PolizaDetalleModel>(); var detalleModel = new PolizaDetalleModel { CantidadCabezas = string.Empty, PesoPromedio = string.Empty, TipoGanado = string.Empty, PesoTotal = string.Empty, ImportePromedio = string.Empty, PrecioVenta = sumaImporte.ToString("N2", CultureInfo.CurrentCulture), }; PolizaModel.Detalle.Add(detalleModel); }
/// <summary> /// Genera las Lineas del Detalle /// </summary> /// <param name="solicitudProducto"></param> private void GeneraLineasDetalle(SolicitudProductoInfo solicitudProducto) { PolizaModel.Detalle = new List <PolizaDetalleModel>(); PolizaDetalleModel detalleModel; foreach (var detalle in solicitudProducto.Detalle) { detalleModel = new PolizaDetalleModel { CantidadCabezas = detalle.Producto.ProductoId.ToString(CultureInfo.InvariantCulture), PesoPromedio = string.Empty, TipoGanado = detalle.Producto.Descripcion, PesoTotal = string.Format("{0} {1}.", detalle.Cantidad.ToString("N0"), detalle.Producto.UnidadMedicion.ClaveUnidad), ImportePromedio = detalle.PrecioPromedio.ToString("N2"), PrecioVenta = Math.Round(detalle.Cantidad * detalle.PrecioPromedio, 2).ToString("N2"), }; PolizaModel.Detalle.Add(detalleModel); } polizaImpresion.GenerarDetalles("Detalle"); }
/// <summary> /// Genera los totales por Detalle /// </summary> /// <param name="detalles"></param> private void GeneraLineaTotales(IEnumerable <AlmacenInventarioLoteInfo> detalles) { var sumaImporte = Math.Round(detalles.Sum(importe => importe.Importe), 2); PolizaModel.Detalle = new List <PolizaDetalleModel>(); var detalleModel = new PolizaDetalleModel { CantidadCabezas = string.Empty, PesoPromedio = string.Empty, TipoGanado = string.Empty, Lote = string.Empty, PesoTotal = string.Empty, ImportePromedio = sumaImporte.ToString("N2", CultureInfo.CurrentCulture), PrecioVenta = string.Empty, ImporteVenta = string.Empty, Corral = string.Empty }; PolizaModel.Detalle.Add(detalleModel); }
/// <summary> /// Genera los totales por Detalle /// </summary> /// <param name="produccionFormula"></param> private void GeneraLineaTotales(ProduccionFormulaInfo produccionFormula) { var sumaImporte = Math.Round(produccionFormula.ProduccionFormulaDetalle.Sum(importe => importe.CantidadProducto * importe.PrecioPromedio), 2); PolizaModel.Detalle = new List <PolizaDetalleModel>(); var detalleModel = new PolizaDetalleModel { CantidadCabezas = string.Empty, PesoPromedio = string.Empty, TipoGanado = string.Empty, Lote = string.Empty, PesoTotal = string.Empty, ImportePromedio = string.Empty, PrecioVenta = sumaImporte.ToString("N2", CultureInfo.CurrentCulture), ImporteVenta = string.Empty, Corral = string.Empty }; PolizaModel.Detalle.Add(detalleModel); }
/// <summary> /// Genera los detalles de la salida /// </summary> /// <param name="salidaProducto"></param> private void GeneraLineaDetalle(SalidaProductoInfo salidaProducto) { PolizaModel.Detalle = new List <PolizaDetalleModel>(); if (unidades == null) { unidades = ObtenerUnidadesMedicion(); } if (productos == null) { productos = ObtenerProductos(); } ProductoInfo producto = productos.FirstOrDefault(clave => clave.ProductoId == salidaProducto.Producto.ProductoId); if (producto == null) { producto = new ProductoInfo(); } decimal cantidad = salidaProducto.PesoBruto - salidaProducto.PesoTara; var polizaDetalleModel = new PolizaDetalleModel { CantidadCabezas = producto.ProductoId.ToString(), TipoGanado = producto.ProductoDescripcion, PesoOrigen = cantidad.ToString("N0"), PesoLlegada = cantidad.ToString("N0"), Corral = unidades.Where( clave => clave.UnidadID == producto.UnidadId).Select (uni => uni.ClaveUnidad).FirstOrDefault(), Lote = salidaProducto.AlmacenInventarioLote.Lote.ToString(), PrecioPromedio = (salidaProducto.Importe / cantidad).ToString("N2"), ImportePromedio = salidaProducto.Importe.ToString("N2"), PrecioVenta = (salidaProducto.Importe / cantidad).ToString("N2"), ImporteVenta = salidaProducto.Importe.ToString("N2"), }; PolizaModel.Detalle.Add(polizaDetalleModel); }
/// <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> /// Genera las Lineas del Detalle /// </summary> /// <param name="listaAlmacenInventario"></param> private void GeneraLineasDetalle(List <AlmacenInventarioLoteInfo> listaAlmacenInventario) { PolizaModel.Detalle = new List <PolizaDetalleModel>(); PolizaDetalleModel detalleModel; foreach (var detalle in listaAlmacenInventario.Where(alm => alm.AlmacenInventario.Producto.SubfamiliaId != SubFamiliasEnum.AlimentoFormulado.GetHashCode())) { detalleModel = new PolizaDetalleModel { CantidadCabezas = detalle.AlmacenInventario.Producto.ProductoId.ToString(CultureInfo.InvariantCulture), PesoPromedio = string.Empty, TipoGanado = detalle.AlmacenInventario.Producto.ProductoDescripcion, Lote = detalle.Lote.ToString(CultureInfo.InvariantCulture), PesoTotal = string.Format("{0} KGS.", detalle.Cantidad), ImportePromedio = detalle.Importe.ToString("N2"), PrecioVenta = detalle.Importe.ToString("N2"), ImporteVenta = "0.00", Corral = "0.00" }; PolizaModel.Detalle.Add(detalleModel); } polizaImpresion.GenerarDetalles("Detalle"); }
private void GeneraLineaDetalle(List <RecepcionProductoDetalleInfo> detallesProducto) { PolizaModel.Detalle = new List <PolizaDetalleModel>(); PolizaDetalleModel polizaDetalleModel; RecepcionProductoDetalleInfo detalle; for (int indexPoliza = 0; indexPoliza < detallesProducto.Count; indexPoliza++) { detalle = detallesProducto[indexPoliza]; polizaDetalleModel = new PolizaDetalleModel { CantidadCabezas = detalle.Producto.ProductoId.ToString(), TipoGanado = detalle.Producto.Descripcion, PesoOrigen = detalle.Cantidad.ToString("N0"), PesoLlegada = detalle.Cantidad.ToString("N0"), Corral = string.Empty, PrecioPromedio = (detalle.Importe / detalle.Cantidad).ToString("N2"), ImportePromedio = detalle.Importe.ToString("N2"), PrecioVenta = (detalle.Importe / detalle.Cantidad).ToString("N2"), ImporteVenta = detalle.Importe.ToString("N2"), }; PolizaModel.Detalle.Add(polizaDetalleModel); } }
/// <summary> /// Genera las Lineas del Detalle /// </summary> /// <param name="tiposGanado"></param> /// <param name="costosAnimal"> </param> /// <param name="ventasGanado"> </param> private void GeneraLineasDetalle(IList <ContenedorTipoGanadoPoliza> tiposGanado , List <AnimalCostoInfo> costosAnimal, List <ContenedorVentaGanado> ventasGanado) { var detalles = (from tg in tiposGanado from ca in costosAnimal from vg in ventasGanado where tg.Animal.AnimalID == ca.AnimalID && ca.AnimalID == vg.VentaGanadoDetalle.Animal.AnimalID select new { TipoGanado = tg.Animal.TipoGanado.Descripcion, vg.VentaGanado.PesoBruto, vg.VentaGanado.PesoTara, vg.CausaPrecio.Precio, ca.Importe, tg.Lote.Lote, tg.Lote.Corral.Codigo }).ToList(); var tiposMovimiento = tiposGanado.GroupBy(tipo => tipo.Animal.TipoGanado.Descripcion) .Select(tipo => new { Descripcion = tipo.Key }).Distinct().ToList(); var detalleAgrupado = detalles.GroupBy(desc => desc.TipoGanado) .Select(datos => new { Cabezas = tiposMovimiento.Count(tipo => tipo.Descripcion.Equals(datos.Key)), TipoGanado = datos.Key, PesoVenta = datos.Sum(pb => pb.PesoBruto - pb.PesoTara), PrecioVenta = datos.Select(pre => pre.Precio).FirstOrDefault(), Corral = datos.Select(corr => corr.Codigo).FirstOrDefault(), Lote = datos.Select(lote => lote.Lote).FirstOrDefault(), //ImporteCosto = datos.Sum(imp => imp.Importe) }); decimal importe = costosAnimal.Sum(imp => imp.Importe); PolizaModel.Detalle = new List <PolizaDetalleModel>(); PolizaDetalleModel detalleModel; List <AnimalInfo> animales = costosAnimal.Select(ani => new AnimalInfo { AnimalID = ani.AnimalID }).ToList(); List <AnimalMovimientoInfo> animalesMovimiento = ObtenerUltimoMovimiento(animales); foreach (var detalle in detalleAgrupado) { int peso = animalesMovimiento.Where(tipo => tipo.TipoMovimientoID == TipoMovimiento.Muerte.GetHashCode()). Sum(ultimoPeso => ultimoPeso.Peso); if (peso == 0) { peso = 1; } detalleModel = new PolizaDetalleModel { CantidadCabezas = detalle.Cabezas.ToString("N").Replace(".00", string.Empty), TipoGanado = detalle.TipoGanado, PesoTotal = peso.ToString("N").Replace(".00", string.Empty), PesoPromedio = (peso / detalle.Cabezas).ToString("N").Replace(".00", string.Empty), PrecioPromedio = (importe / peso).ToString("N2"), ImportePromedio = importe.ToString("N2"), Corral = detalle.Corral, Lote = detalle.Lote }; PolizaModel.Detalle.Add(detalleModel); } polizaImpresion.GenerarDetalles("Detalle"); }