private void BtnImprimir_Click(object sender, EventArgs e) { var listado = ObtenerListado(); if (listado.Sum(x => x.CantidadADevolver) > 0) { using (var popup = new FrmReporteConsignacionesDevueltas(Uow, listado, ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(), ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta)) { popup.ShowDialog(); } } }
private void GuardarCambios(List<ConsignacionesParaDevolver> listado) { if (listado.Sum(x => x.CantidadADevolver) > 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; var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1); var originales = Uow.TitulosConsignaciones.Listado() .Where(tc => (provId == null || provId == tc.ProveedorId) && desde < tc.FechaAlta && hasta > tc.FechaAlta && tc.CntCn > tc.CntDev + tc.CntVn) .OrderBy(x => x.FechaAlta).ToList(); foreach (var titulo in listado) { var cantADevolver = titulo.CantidadADevolver; var consignaciones = originales.Where(tc => tc.TituloId == titulo.TituloId).ToList(); var i = 0; while (cantADevolver > 0) { var consignacion = consignaciones.ElementAt(i); var devolver = cantADevolver > consignacion.CntCn - consignacion.CntDev - consignacion.CntVn ? consignacion.CntCn - consignacion.CntVn - consignacion.CntDev : cantADevolver; consignacion.CntDev += devolver; Uow.TitulosConsignaciones.Modificar(consignacion); cantADevolver -= Convert.ToInt32(devolver); i++; } } //Ahora guardo la tabla ConsignacionRendida var consignacionDevuelta = new TitulosConsignacionesDevuelta() { FechaAlta = DateTime.Now, LCN = CalcularLCN(), Observaciones = TxtObservaciones.Text, OperadorAltaId = Context.OperadorActual.Id, ProveedorId = Proveedor.Id, SucursalAltaId = Context.SucursalActual.Id }; foreach (var t in listado) { var detalle = new TitulosConsignacionesDevueltasDetalle() { Cantidad = t.CantidadADevolver, TituloConsignacionDevueltaId = consignacionDevuelta.Id, TituloId = t.TituloId.GetValueOrDefault() }; Uow.TitulosConsignacionesDevueltasDetalles.Agregar(detalle); } Uow.TitulosConsignacionesDevueltas.Agregar(consignacionDevuelta); Uow.Commit(); if (chxImprimir.Checked) { using (var popup = new FrmReporteConsignacionesDevueltas(Uow, listado, ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(), ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta)) { popup.ShowDialog(); } } ReiniciarVentana(); } else { MessageBox.Show("No hay consignaciones por devolver"); } }
private void GuardarCambios(List <ConsignacionesParaDevolver> listado) { if (listado.Sum(x => x.CantidadADevolver) > 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; var hasta = ucFiltrosConsignaciones.Hasta.AddDays(1); var originales = Uow.TitulosConsignaciones.Listado() .Where(tc => (provId == null || provId == tc.ProveedorId) && desde <tc.FechaAlta && hasta> tc.FechaAlta && tc.CntCn > tc.CntDev + tc.CntVn) .OrderBy(x => x.FechaAlta).ToList(); foreach (var titulo in listado) { var cantADevolver = titulo.CantidadADevolver; var consignaciones = originales.Where(tc => tc.TituloId == titulo.TituloId).ToList(); var i = 0; while (cantADevolver > 0) { var consignacion = consignaciones.ElementAt(i); var devolver = cantADevolver > consignacion.CntCn - consignacion.CntDev - consignacion.CntVn ? consignacion.CntCn - consignacion.CntVn - consignacion.CntDev : cantADevolver; consignacion.CntDev += devolver; Uow.TitulosConsignaciones.Modificar(consignacion); cantADevolver -= Convert.ToInt32(devolver); i++; } } //Ahora guardo la tabla ConsignacionRendida var consignacionDevuelta = new TitulosConsignacionesDevuelta() { FechaAlta = DateTime.Now, LCN = CalcularLCN(), Observaciones = TxtObservaciones.Text, OperadorAltaId = Context.OperadorActual.Id, ProveedorId = Proveedor.Id, SucursalAltaId = Context.SucursalActual.Id }; foreach (var t in listado) { var detalle = new TitulosConsignacionesDevueltasDetalle() { Cantidad = t.CantidadADevolver, TituloConsignacionDevueltaId = consignacionDevuelta.Id, TituloId = t.TituloId.GetValueOrDefault() }; Uow.TitulosConsignacionesDevueltasDetalles.Agregar(detalle); } Uow.TitulosConsignacionesDevueltas.Agregar(consignacionDevuelta); Uow.Commit(); if (chxImprimir.Checked) { using (var popup = new FrmReporteConsignacionesDevueltas(Uow, listado, ucFiltrosConsignaciones.ProveedorId.GetValueOrDefault(), ucFiltrosConsignaciones.Desde, ucFiltrosConsignaciones.Hasta)) { popup.ShowDialog(); } } ReiniciarVentana(); } else { MessageBox.Show("No hay consignaciones por devolver"); } }