private void OnTituloSelected(TituloDto titulo)
 {
     if (TituloSelected != null)
     {
         TituloSelected(this, titulo);
     }
 }
        private void InformacionDeLibro()
        {
            if (GridTitulos.RowCount > 0)
            {
                _tituloseleccionado = (TituloDto)GridTitulos.CurrentRow.DataBoundItem;
                var tituloStock = Uow.TitulosStock.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == 2);
                var migracionTituloStock = _migracionRepo.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == 2);

                //controlo que no venga null el stock del sistema
                if (tituloStock != null)
                {
                    CantidadPropia = tituloStock.StkPr ?? 0;
                    CantidadConsignada = tituloStock.StkCn ?? 0;
                }
                else
                {
                    CantidadPropia = 0;
                    CantidadConsignada = 0;
                }

                Descuento = null;
                PrecioVenta = _tituloseleccionado.PrecioVentaTitulo;
                SubTotal = PrecioVenta;
                Cantidad = 1;
            }
        }
        private void rmiClientesConsignacion_Click(object sender, EventArgs e)
        {
            if (tituloSeleccionadoContextMenu != null)
            {
                using (var form = FormFactory.Create<FrmClientesListadoResumido>())
                {
                    //var clientes = _tituloNegocio.ClientesConsignacion(tituloSeleccionadoContextMenu.Id,
                    //    this.Context.SucursalActual.Id);

                    var remitos = _tituloNegocio.RemitosConsignacion(tituloSeleccionadoContextMenu.Id,
                        this.Context.SucursalActual.Id);

                    //form.ActualizarClientes(clientes);
                    form.ActualizarRemitosVenta(remitos);
                    form.ShowDialog();
                }

                tituloSeleccionadoContextMenu = null;
            }
        }
 private void SeleccionarTitulo(TituloDto titulo)
 {
     OnTituloSelected(titulo);
     //this.DialogResult();
 }
 private void GridLibros_ContextMenuOpening(object sender, ContextMenuOpeningEventArgs e)
 {
     var gridCell = e.ContextMenuProvider as GridDataCellElement;
     if (gridCell != null)
     {
         tituloSeleccionadoContextMenu = gridCell.RowInfo.DataBoundItem as TituloDto;
         if (tituloSeleccionadoContextMenu != null)
         {
             if (tituloSeleccionadoContextMenu.EstaConsignado)
             {
                 e.ContextMenu = librosContextMenu;
             }
         }
     }
 }
        private void InformacionDeLibro()
        {
            if (GridTitulos.RowCount > 0)
            {

                tituloseleccionado = (TituloDto)GridTitulos.CurrentRow.DataBoundItem;
                var _tituloCompra = Uow.Titulos.Obtener(t => t.Id == tituloseleccionado.Id);

                
                if ((_proveedor.Id != _tituloCompra.ProveedorId))
                {
                    Titulo _tituloCompraProveedor; 
                    if (tituloseleccionado.CodigoBarra!=null)
                        _tituloCompraProveedor = Uow.Titulos.Obtener(t => t.CodigoBarra == tituloseleccionado.CodigoBarra && t.ProveedorId == _proveedor.Id);
                    else
                        _tituloCompraProveedor = Uow.Titulos.Obtener(t => t.NombreTitulo == tituloseleccionado.NombreTitulo && t.ProveedorId == _proveedor.Id);

                    if (_tituloCompraProveedor != null)
                    {
                        //_messageBoxDisplayService.Show(
                        //    "Seleccionaste el titulo de otro proveedor, se desplegaran los datos del titulo del proveedor", Resources.LabelCompras);
                        //_tituloCompra = _tituloCompraProveedor;
                        //RefrescarListado(_tituloCompra.Cod, _proveedorId);
                        if (MessageBox.Show("Seleccionaste el titulo de otro proveedor, ¿Desea que se desplieguen los datos del titulo del proveedor?", "Compra", MessageBoxButtons.OKCancel) == DialogResult.OK)
                        {
                            _tituloCompra = _tituloCompraProveedor;
                            RefrescarListado(_tituloCompra.Cod, _proveedorId);
                        }
                    }
                }



                //controlo que no venga null el stock del sistema
                if (_tituloCompra != null)
                {
                    Descuento = _proveedor.PorcentajeDescuento;
                    PrecioBase = _tituloCompra.PrecioCompraTitulo;
                    _precioBase = _tituloCompra.PrecioCompraTitulo;
                    _precioVenta = _tituloCompra.PrecioVentaTitulo;
                    PrecioVenta = _tituloCompra.PrecioVentaTitulo;
                    Cantidad = 1;
                    SubTotal = _tituloCompra.PrecioCompraTitulo;
                    CalcularCostos();
                }
            }


        }
        private void MigracionStockFuturoJournal(bool propio, Guid? proveedorId)
        {
            _tituloseleccionado = (TituloDto)GridTitulos.CurrentRow.DataBoundItem;
            var tituloStock = Uow.TitulosStock.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);
            var migracionTituloStock = _migracionRepo.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);
            //LAPAZ
            Guid? _idProveedor = proveedorId;

            var provFuturoOJournal = Uow.Proveedores.Obtener(p => p.Id == _idProveedor);

            //si el titulo stock no existe lo doy de alta
            if (tituloStock == null)
            {
                tituloStock = new TituloStock();
                tituloStock.TituloId = _tituloseleccionado.Id;
                tituloStock.SucursalId = Context.SucursalActual.Id;
                tituloStock.StkCn = 0;
                tituloStock.StkPr = 0;
                tituloStock.FechaAlta = _clock.Now;
                tituloStock.SucursalAltaId = Context.SucursalActual.Id;
                tituloStock.OperadorAltaId = Context.OperadorActual.Id;
                Uow.TitulosStock.Agregar(tituloStock);
                Uow.Commit();

                tituloStock = Uow.TitulosStock.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);
            }
            DateTime fechaCompra = DateTime.Parse("2015-01-01");
            var compraLists = Uow.Compras.Listado().Where(p => p.ProveedorId == provFuturoOJournal.Id && p.FechaAlta > fechaCompra).OrderBy(p => p.FechaAlta).ToList();

            Compra compraList;
            if (compraLists.Count > 0)
                compraList = compraLists.First();
            else
                compraList = null;

            var compras = new Compra();
            if (compraList == null)
            {
                compras = new Compra();
                compras.Id = Guid.NewGuid();
                compras.LCN = "0000000000000";
                compras.TipoComprobanteId = TipoComprobanteEnum.RemitosConsignacProveedor;
                compras.ProveedorId = provFuturoOJournal.Id;
                compras.LetraComprobante = "X";
                compras.PuntoVenta = Context.SucursalActual.Id;
                compras.NumeroComprobante = "0000000000000";
                compras.FechaComprobante = _clock.Now;
                compras.Concepto = "REMITO POR CONSIGNACION PROVEEDOR";
                compras.ImporteNeto = 0;
                compras.ImporteIVA = 0;
                compras.EstadoCompraId = 1;
                compras.OperadorAltaId = Context.OperadorActual.Id;
                compras.SucursalAltaId = Context.SucursalActual.Id;
                compras.FechaAlta = _clock.Now;

                Uow.Compras.Agregar(compras);
            }
            else
            {
                //compraList = Uow.Compras.Listado().Where(p => p.ProveedorId == provFuturoOJournal.Id).OrderBy(p => p.FechaAlta).First();
                compras = Uow.Compras.Obtener(c => c.Id == compraList.Id);
            }

            var compraDetalle = new ComprasDetalle();
            compraDetalle.Id = Guid.NewGuid();
            compraDetalle.CompraId = compras.Id;
            compraDetalle.TituloId = _tituloseleccionado.Id;
            compraDetalle.PrecioCompra = 0;
            compraDetalle.FechaAlta = _clock.Now;
            compraDetalle.SucursalAltaId = Context.SucursalActual.Id;
            compraDetalle.OperadorAltaId = Context.OperadorActual.Id;
            compraDetalle.FechaModificacion = _clock.Now;
            compraDetalle.SucursalModificacionId = Context.SucursalActual.Id;
            compraDetalle.OperadorModificacionId = Context.OperadorActual.Id;




            //Si propio es true descontamos e incrementamos los propios, si no consignados
            if (propio)
            {
                //Descuento 1 libro
                migracionTituloStock.StkPr -= 1;
                tituloStock.StkPr += 1;

                //Modifico las propiedades
                CantidadPropia = tituloStock.StkPr;
                MigracionCantidadPropia = migracionTituloStock.StkPr;

                //Agrego en compra detalle
                compraDetalle.CntPr = 1;

                //Comiteo los cambios a la base
                _migracionRepo.Modificar(migracionTituloStock);
                _migracionRepo.Commit();


            }
            else
            {
                //Descuento 1 libro
                migracionTituloStock.StkCn -= 1;
                tituloStock.StkCn += 1;


                //Modifico las propiedades
                CantidadConsignada = tituloStock.StkCn;
                MigracionCantidadConsignada = migracionTituloStock.StkCn;

                //Agrego en compra detalle
                compraDetalle.CntCn = 1;


                //Agrego la consignacion
                TitulosConsignacion consignacion = new TitulosConsignacion();
                consignacion.Id = Guid.NewGuid();
                consignacion.TituloId = _tituloseleccionado.Id;
                consignacion.ClienteId = Guid.Empty;
                consignacion.ProveedorId = provFuturoOJournal.Id;
                consignacion.TipoConsignacion = 1;
                consignacion.CntPr = 0;
                consignacion.CntCn = 1;
                consignacion.CntVn = 0;
                consignacion.FechaAlta = _clock.Now;
                consignacion.SucursalAltaId = Context.SucursalActual.Id;
                consignacion.OperadorAltaId = Context.OperadorActual.Id;
                Uow.TitulosConsignaciones.Agregar(consignacion);

                //Comiteo los cambios a la base
                _migracionRepo.Modificar(migracionTituloStock);
                _migracionRepo.Commit();

            }
            tituloStock.FechaModificacion = _clock.Now;
            tituloStock.OperadorModificacionId = Context.OperadorActual.Id;

            Uow.ComprasDetalles.Agregar(compraDetalle);
            Uow.TitulosStock.Modificar(tituloStock);
            Uow.Commit();
        }
        private void MigracionStockPropio(bool propio)
        {
            _tituloseleccionado = (TituloDto)GridTitulos.CurrentRow.DataBoundItem;
            var tituloStock = Uow.TitulosStock.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);
            var migracionTituloStock = _migracionRepo.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);
            //LAPAZ
            Guid _idProveedor8Marzo = Guid.Parse("A7F325F0-EF29-4D81-B6A1-4A1A8688E075");

            //SANTY HP
            //Guid _idProveedor8Marzo = Guid.Parse("A827DD36-4B41-4F4F-BB81-B56DE923B4D2");

            //USUARIO PC
            //Guid _idProveedor8Marzo = Guid.Parse("03979D63-B3B4-4615-9979-CD5DFC4F9B72");


            var prov8Marzo = Uow.Proveedores.Obtener(p => p.Id == _idProveedor8Marzo || p.Denominacion == "8 DE MARZO");
            //var prov8Marzo = Uow.Proveedores.Obtener(p => p.Denominacion=="8 DE MARZO");


            //var compraList = _paseLibroNegocio.Listado("FechaAlta","Asc",prov8Marzo.Id);


            //si el titulo stock no existe lo doy de alta
            if (tituloStock == null)
            {
                tituloStock = new TituloStock();
                tituloStock.TituloId = _tituloseleccionado.Id;
                tituloStock.SucursalId = Context.SucursalActual.Id;
                tituloStock.StkCn = 0;
                tituloStock.StkPr = 0;
                tituloStock.FechaAlta = _clock.Now;
                tituloStock.SucursalAltaId = Context.SucursalActual.Id;
                tituloStock.OperadorAltaId = Context.OperadorActual.Id;
                Uow.TitulosStock.Agregar(tituloStock);
                Uow.Commit();

                tituloStock = Uow.TitulosStock.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);
            }
            //Traigo la primer compra, que es donde se estan almacenando los detalles de compra del proveedor 8 de Marzo
            var compraList = Uow.Compras.Listado().Where(p => p.ProveedorId == prov8Marzo.Id).OrderBy(p => p.FechaAlta).First();

            var compras = new Compra();
            if (compraList == null)
            {
                compras = new Compra();
                compras.Id = Guid.NewGuid();
                compras.LCN = "0000000000000";
                compras.TipoComprobanteId = TipoComprobanteEnum.RemitoTransferencia;
                compras.ProveedorId = prov8Marzo.Id;
                compras.LetraComprobante = "X";
                compras.PuntoVenta = Context.SucursalActual.Id;
                compras.NumeroComprobante = "0000000000000";
                compras.FechaComprobante = _clock.Now;
                compras.Concepto = "REMITO POR TRANSFERENCIA";
                compras.ImporteNeto = 0;
                compras.ImporteIVA = 0;
                compras.EstadoCompraId = 1;
                compras.OperadorAltaId = Context.OperadorActual.Id;
                compras.SucursalAltaId = Context.SucursalActual.Id;
                compras.FechaAlta = _clock.Now;
                compras.FechaModificacion = _clock.Now;
                compras.OperadorModificacionId = Context.OperadorActual.Id;
                compras.SucursalModificacionId = Context.SucursalActual.Id;

                Uow.Compras.Agregar(compras);
            }
            else
            {
                compras = Uow.Compras.Obtener(c => c.Id == compraList.Id);
            }

            var compraDetalle = new ComprasDetalle();
            compraDetalle.Id = Guid.NewGuid();
            compraDetalle.CompraId = compras.Id;
            compraDetalle.TituloId = _tituloseleccionado.Id;
            compraDetalle.PrecioCompra = 0;
            compraDetalle.FechaAlta = _clock.Now;
            compraDetalle.SucursalAltaId = Context.SucursalActual.Id;
            compraDetalle.OperadorAltaId = Context.OperadorActual.Id;
            compraDetalle.FechaModificacion = _clock.Now;
            compraDetalle.SucursalModificacionId = Context.SucursalActual.Id;
            compraDetalle.OperadorModificacionId = Context.OperadorActual.Id;

            //Si propio es true descontamos e incrementamos los propios, si no consignados
            if (propio)
            {
                //Descuento 1 libro
                migracionTituloStock.StkPr -= 1;
                tituloStock.StkPr += 1;

                //Modifico las propiedades
                CantidadPropia = tituloStock.StkPr;
                MigracionCantidadPropia = migracionTituloStock.StkPr;

                //Agrego en compra detalle
                compraDetalle.CntPr = 1;

                //Comiteo los cambios a la base
                _migracionRepo.Modificar(migracionTituloStock);
                _migracionRepo.Commit();


            }
            else
            {
                //Descuento 1 libro
                migracionTituloStock.StkCn -= 1;
                tituloStock.StkCn += 1;


                //Modifico las propiedades
                CantidadConsignada = tituloStock.StkCn;
                MigracionCantidadConsignada = migracionTituloStock.StkCn;

                //Agrego en compra detalle
                compraDetalle.CntCn = 1;

                //Comiteo los cambios a la base
                _migracionRepo.Modificar(migracionTituloStock);
                _migracionRepo.Commit();

            }
            tituloStock.FechaModificacion = _clock.Now;
            tituloStock.OperadorModificacionId = Context.OperadorActual.Id;

            Uow.ComprasDetalles.Agregar(compraDetalle);
            Uow.TitulosStock.Modificar(tituloStock);
            Uow.Commit();
        }
        private void InformacionDeLibro()
        {
            if (GridTitulos.RowCount > 0)
            {
                _tituloseleccionado = (TituloDto)GridTitulos.CurrentRow.DataBoundItem;
                var tituloStock = Uow.TitulosStock.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);
                var migracionTituloStock = _migracionRepo.Obtener(t => t.TituloId == _tituloseleccionado.Id && t.SucursalId == Context.SucursalActual.Id);

                //controlo que no venga null el stock del sistema
                if (tituloStock != null)
                {
                    CantidadPropia = tituloStock.StkPr ?? 0;
                    CantidadConsignada = tituloStock.StkCn ?? 0;
                }
                else
                {
                    CantidadPropia = 0;
                    CantidadConsignada = 0;
                }

                //controlo que no venga null el stock migrado
                if (migracionTituloStock != null)
                {
                    MigracionCantidadPropia = migracionTituloStock.StkPr ?? 0;
                    MigracionCantidadConsignada = migracionTituloStock.StkCn ?? 0;

                }
                else
                {
                    MigracionCantidadPropia = 0;
                    MigracionCantidadConsignada = 0;

                }

                HabilitarControles(CantidadPropia, CantidadConsignada, MigracionCantidadPropia, MigracionCantidadConsignada);

                _cargandoCantidad = true;
                Cantidad = 1;
                _cargandoCantidad = false;

                Descuento = null;
                _cambiaPrecio = false;

                if (_formMode == ActionFormMode.Create)
                {
                    PrecioVenta = _tituloseleccionado.PrecioVentaTitulo;
                   // SubTotal = PrecioVenta;
                }
                else
                {
                    PrecioVenta = _tituloseleccionado.PrecioCompraTitulo;
                }

                SubTotal = PrecioVenta;
            }
        }