private void BtnImprimir_Click(object sender, EventArgs e) { var listado = ObtenerListado(); if (listado.Sum(x => x.CantidadARendir) > 0) { using (var popup = new FrmReporteConsignaciones(UowFactory, listado, ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(), ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta)) { popup.ShowDialog(); } } }
private void GuardarCambios(List<ConsignacionSinRendir> listado) { if (listado.Sum(x => x.CantidadARendir) > 0) { //Primero descuento para cada título, la cantidad a rendir distribuida en //todas sus lineas de TitulosConsignacionesVendidas var provId = ucFiltrosConsignaciones.ProveedorId; //var desde = ucFiltrosConsignaciones.Desde.AddDays(-1); //var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1); var desde = ucFiltrosConsignaciones.Desde.Date; var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1); var originales = Uow.TitulosConsignacionesVendidas.Listado() .Where(tcv => (provId == null || provId == tcv.ProveedorId) && (desde) < tcv.FechaAlta && hasta > tcv.FechaAlta && tcv.CntCn > tcv.CntPag) .OrderBy(x => x.FechaAlta).ToList(); foreach (var titulo in listado) { var cantARendir = titulo.CantidadARendir; var consignacionesVendidas = originales.Where(tcv => tcv.TituloId == titulo.TituloId).ToList(); var i = 0; while (cantARendir > 0) { var consignacion = consignacionesVendidas.ElementAt(i); var rendir = cantARendir > consignacion.CntCn - consignacion.CntPag ? consignacion.CntCn - consignacion.CntPag : cantARendir; consignacion.CntPag += rendir; Uow.TitulosConsignacionesVendidas.Modificar(consignacion); cantARendir -= Convert.ToInt32(rendir); i++; } //Controlo si se modificaron los precio de compra de los tiulos var titulooriginal = Uow.Titulos.Obtener(t => t.Id == titulo.TituloId); if ((titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo) || (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo)) { if (titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo) titulooriginal.PrecioCompraTitulo = titulo.PrecioCompraCalculado; if (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo) titulooriginal.PrecioVentaTitulo = titulo.PrecioVentaTitulo; titulooriginal.FechaModificacion = DateTime.Now; titulooriginal.OperadorModificacionId = Context.OperadorActual.Id; titulooriginal.SucursalModificacionId = Context.SucursalActual.Id; Uow.Titulos.Modificar(titulooriginal); //MessageBox.Show(titulo.NombreTitulo + " " + titulo.PrecioCompraTitulo.ToString() + " " + // titulo.PrecioCompraCalculado.ToString()); } } //Ahora guardo la tabla ConsignacionRendida var consignacionRendida = new TituloConsignacionRendida() { FechaAlta = DateTime.Now, Id = Guid.NewGuid(), Importe = _total, LCN = CalcularLCN(), Observaciones = TxtObservaciones.Text, OperadorAltaId = Context.OperadorActual.Id, ProveedorId = Proveedor.Id, SucursalAltaId = Context.SucursalActual.Id, TipoConsignacionId = 2, FechaConsignacion = DateTime.Now //TODO ELIMINAR O NO }; foreach (var t in listado) { var detalle = new TituloConsignacionRendidasDetalle() { Id = Guid.NewGuid(), Cantidad = t.CantidadARendir, Importe = t.TotalARendir, PorcentajeDescuento = t.Descuento.GetValueOrDefault(), PrecioCompra = t.PrecioCompraCalculado, PrecioVenta = t.PrecioVentaTitulo.GetValueOrDefault(), TituloConsignacionRendidaId = consignacionRendida.Id, TituloId = t.TituloId.GetValueOrDefault() }; Uow.TitulosConsignacionesRendidasDetalle.Agregar(detalle); } Uow.TitulosConsignacionesRendidas.Agregar(consignacionRendida); Uow.Commit(); if (chxImprimir.Checked) { using (var popup = new FrmReporteConsignaciones(UowFactory, listado, ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(), ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta)) { popup.ShowDialog(); } } ReiniciarVentana(); } else { MessageBox.Show("No hay consignaciones por rendir"); } }
private void GuardarCambios(List <ConsignacionSinRendir> listado) { if (listado.Sum(x => x.CantidadARendir) > 0) { //Primero descuento para cada título, la cantidad a rendir distribuida en //todas sus lineas de TitulosConsignacionesVendidas var provId = ucFiltrosConsignaciones.ProveedorId; //var desde = ucFiltrosConsignaciones.Desde.AddDays(-1); //var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1); var desde = ucFiltrosConsignaciones.Desde.Date; var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1); var originales = Uow.TitulosConsignacionesVendidas.Listado() .Where(tcv => (provId == null || provId == tcv.ProveedorId) && (desde) < tcv.FechaAlta && hasta > tcv.FechaAlta && tcv.CntCn > tcv.CntPag) .OrderBy(x => x.FechaAlta).ToList(); foreach (var titulo in listado) { var cantARendir = titulo.CantidadARendir; var consignacionesVendidas = originales.Where(tcv => tcv.TituloId == titulo.TituloId).ToList(); var i = 0; while (cantARendir > 0) { var consignacion = consignacionesVendidas.ElementAt(i); var rendir = cantARendir > consignacion.CntCn - consignacion.CntPag ? consignacion.CntCn - consignacion.CntPag : cantARendir; consignacion.CntPag += rendir; Uow.TitulosConsignacionesVendidas.Modificar(consignacion); cantARendir -= Convert.ToInt32(rendir); i++; } //Controlo si se modificaron los precio de compra de los tiulos var titulooriginal = Uow.Titulos.Obtener(t => t.Id == titulo.TituloId); if ((titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo) || (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo)) { if (titulo.PrecioCompraCalculado > titulooriginal.PrecioCompraTitulo) { titulooriginal.PrecioCompraTitulo = titulo.PrecioCompraCalculado; } if (titulo.PrecioVentaTitulo > titulooriginal.PrecioVentaTitulo) { titulooriginal.PrecioVentaTitulo = titulo.PrecioVentaTitulo; } titulooriginal.FechaModificacion = DateTime.Now; titulooriginal.OperadorModificacionId = Context.OperadorActual.Id; titulooriginal.SucursalModificacionId = Context.SucursalActual.Id; Uow.Titulos.Modificar(titulooriginal); //MessageBox.Show(titulo.NombreTitulo + " " + titulo.PrecioCompraTitulo.ToString() + " " + // titulo.PrecioCompraCalculado.ToString()); } } //Ahora guardo la tabla ConsignacionRendida var consignacionRendida = new TituloConsignacionRendida() { FechaAlta = DateTime.Now, Id = Guid.NewGuid(), Importe = _total, LCN = CalcularLCN(), Observaciones = TxtObservaciones.Text, OperadorAltaId = Context.OperadorActual.Id, ProveedorId = Proveedor.Id, SucursalAltaId = Context.SucursalActual.Id, TipoConsignacionId = 2, FechaConsignacion = DateTime.Now //TODO ELIMINAR O NO }; foreach (var t in listado) { var detalle = new TituloConsignacionRendidasDetalle() { Id = Guid.NewGuid(), Cantidad = t.CantidadARendir, Importe = t.TotalARendir, PorcentajeDescuento = t.Descuento.GetValueOrDefault(), PrecioCompra = t.PrecioCompraCalculado, PrecioVenta = t.PrecioVentaTitulo.GetValueOrDefault(), TituloConsignacionRendidaId = consignacionRendida.Id, TituloId = t.TituloId.GetValueOrDefault() }; Uow.TitulosConsignacionesRendidasDetalle.Agregar(detalle); } Uow.TitulosConsignacionesRendidas.Agregar(consignacionRendida); Uow.Commit(); if (chxImprimir.Checked) { using (var popup = new FrmReporteConsignaciones(UowFactory, listado, ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(), ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta)) { popup.ShowDialog(); } } ReiniciarVentana(); } else { MessageBox.Show("No hay consignaciones por rendir"); } }