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 TitulosConsignacionesDevueltaDetalle(VentaTitulo devolucionTitulo, int? _propia,Guid tituloconsignaciondevuelta)
 {
     TitulosConsignacionesDevueltasDetalle titulosConsignacionesDevueltasDetalle =
         new TitulosConsignacionesDevueltasDetalle();
     titulosConsignacionesDevueltasDetalle.Id = Guid.NewGuid();
     titulosConsignacionesDevueltasDetalle.TituloConsignacionDevueltaId = tituloconsignaciondevuelta;
     titulosConsignacionesDevueltasDetalle.TituloId = devolucionTitulo.TituloId;
     //titulosConsignacionesDevueltasDetalle.Cantidad = _propia + _consignada;
     titulosConsignacionesDevueltasDetalle.CantidadPropia =  _propia ?? 0;
     Uow.TitulosConsignacionesDevueltasDetalles.Agregar(titulosConsignacionesDevueltasDetalle);
 }