private Guid TitulosConsignacionesDevueltas(ProveedoresMontosFavor proveedorMontoFavor)
 {
     TitulosConsignacionesDevuelta titulosConsignacionesDevuelta = new TitulosConsignacionesDevuelta();
     titulosConsignacionesDevuelta.Id = Guid.NewGuid();
     titulosConsignacionesDevuelta.ProveedorId = proveedorMontoFavor.ProveedorId;
     titulosConsignacionesDevuelta.LCN = GenerarLcnTitulosDevolucion();
     titulosConsignacionesDevuelta.Observaciones = TxtObservaciones.Text;
     titulosConsignacionesDevuelta.FechaAlta = _clock.Now;
     titulosConsignacionesDevuelta.OperadorAltaId = Context.OperadorActual.Id;
     titulosConsignacionesDevuelta.SucursalAltaId = Context.SucursalActual.Id;
     Uow.TitulosConsignacionesDevueltas.Agregar(titulosConsignacionesDevuelta);
     return titulosConsignacionesDevuelta.Id;
 }
 public void GuardarDevolucion(ProveedoresMontosFavor proveedoresMontosFavor)
 {
 }
        private void GuardarDevolucion()
        {
            //Controlar que las cantidades no superen el disponible
            foreach (var devolucionTitulos in ucTitulosDevolucion.TitulosDevolucion)
            {
                if (devolucionTitulos.CantidadPropia < devolucionTitulos.Cantidad)
                {
                    _messageBoxDisplayService.ShowError("La cantidad devuleta es mayor a la cantidad disponible de libro: " + devolucionTitulos.TituloNombre);
                    return;
                }

            }
            #region ProveedorMontoFavor
            ProveedoresMontosFavor proveedorMontoFavor = new ProveedoresMontosFavor();

            proveedorMontoFavor.Id = Guid.NewGuid();
            proveedorMontoFavor.ProveedorId = _proveedor.Id;
            proveedorMontoFavor.TipoComprobanteId = _tipoComprobante;// TipoComprobanteEnum.MontoFavorProveedor;
            proveedorMontoFavor.LCN = GenerarLcnMontoFavor();
            proveedorMontoFavor.Concepto = TxtConcepto.Text;
            proveedorMontoFavor.Importe = Convert.ToDecimal(LblImporte.Text);
            proveedorMontoFavor.ImporteOcupado = 0;
            proveedorMontoFavor.Observaciones = TxtObservaciones.Text;
            proveedorMontoFavor.FechaAlta = _clock.Now;
            proveedorMontoFavor.SucursalAltaId = Context.SucursalActual.Id;
            proveedorMontoFavor.OperadorAltaId = Context.OperadorActual.Id;

            Uow.ProveedoresMontosFavor.Agregar(proveedorMontoFavor);
            #endregion

            //Genero TitulosConsignacionesDevueltas
            Guid titulosConsignacionDevuelta= TitulosConsignacionesDevueltas(proveedorMontoFavor);

            //
                   

            #region ProveedorMontoFavorDetalle
            foreach (var devolucionTitulo in ucTitulosDevolucion.TitulosDevolucion)
            {
                int _propia = 0;
                int? _consignada = 0;
                int? _cantidadTotal = devolucionTitulo.Cantidad;
                ProveedoresMontosFavorDetalle proveedoresMontosFavorDetalle = new ProveedoresMontosFavorDetalle();
                proveedoresMontosFavorDetalle.Id = Guid.NewGuid();
                proveedoresMontosFavorDetalle.ProveedoresMontosFavor = proveedorMontoFavor.Id;
                proveedoresMontosFavorDetalle.TitulosId = devolucionTitulo.TituloId;

                if (devolucionTitulo.CantidadPropia >= _cantidadTotal)
                {
                    proveedoresMontosFavorDetalle.CantidadPropia = _cantidadTotal;
                    proveedoresMontosFavorDetalle.FechaAlta = _clock.Now;
                    proveedoresMontosFavorDetalle.SucursalAltaId = Context.SucursalActual.Id;
                    proveedoresMontosFavorDetalle.OperadorAltaId = Context.OperadorActual.Id;
                    Uow.ProveedoresMontosFavorDetalle.Agregar(proveedoresMontosFavorDetalle);

                    DescontarLibrosPropios(_cantidadTotal, proveedoresMontosFavorDetalle.TitulosId);
                    TitulosConsignacionesDevueltaDetalle(devolucionTitulo, _cantidadTotal, titulosConsignacionDevuelta);
                   
                }
                else
                {

                }


            }
            #endregion

            
            Uow.Commit();
            _messageBoxDisplayService.ShowSuccess("Devolución guardada correctamente");


            using (var crearComprobante = FormFactory.Create<FrmComprobanteDevolucion>(titulosConsignacionDevuelta))
            {
                crearComprobante.ShowDialog();
            }

            onDevolucionRealizada();
        }