private bool ValidarPrecio()
        {
            if (this._formMode == ActionFormMode.Create)
            {
                return(true);
            }

            var solicitarAutorizacion = TitulosValidator.SolicitarAutorizacionPorCambioDePrecios(_titulo);

            if (solicitarAutorizacion)
            {
                var operadorAdmin = this.ObtenerOperadorAdministrador();

                if (operadorAdmin == null)
                {
                    return(false);
                }
            }

            return(true);
        }
Beispiel #2
0
        private void BtnSeleccionar_Click(object sender, EventArgs e)
        {
            //controlo que tenga algun ìtem seleccionado de la grilla
            var selectedRow = this.GridTitulos.SelectedRows.FirstOrDefault();

            if (selectedRow == null)
            {
                return;
            }

            //validacion cachorra. despues mejorar con los dto y toda la gilada
            decimal pVenta;

            if (TxtPrecioVenta.Text != "")
            {
                pVenta = Convert.ToDecimal(TxtPrecioVenta.Text);
            }
            else
            {
                pVenta = 0;
            }

            decimal pCompra;

            if (TxtPrecioCompra.Text != "")
            {
                pCompra = Convert.ToDecimal(TxtPrecioCompra.Text);
            }
            else
            {
                pCompra = 0;
            }

            if (pVenta < pCompra)
            {
                _messageBoxDisplayService.ShowError("El precio de venta no puede ser menor al precio de compra.");
                return;
            }

            //controlo que el titulo ya lo tenga el proveedor/si no lo tiene, agrego el titulo al proveedor
            var proveedorActual = Uow.Proveedores.Obtener(p => p.Id == _proveedorId);
            var codigoProveedor = proveedorActual.Cuenta;

            var tituloActual = Uow.Titulos.Obtener(t => t.Id == Id);
            var nuevoCod     = codigoProveedor.ToString().PadLeft(4, '0').Substring(0, 4) + tituloActual.Cod.Substring(4);

            var tituloCheck = Uow.Titulos.Obtener(t => t.Cod == nuevoCod);

            if (tituloCheck == null)
            {
                var tituloProv = Uow.Titulos.Obtener(t => t.Id == Id);
                var libroNew   = new Titulo();
                libroNew.Id                     = Guid.NewGuid();
                _idLibro                        = libroNew.Id;
                _codLibro                       = nuevoCod;
                libroNew.Cod                    = nuevoCod;
                libroNew.ISBN                   = tituloProv.ISBN;
                libroNew.NombreTitulo           = tituloProv.NombreTitulo;
                libroNew.ProveedorId            = _proveedorId;
                libroNew.AutorId                = tituloProv.AutorId;
                libroNew.EditorialId            = tituloProv.EditorialId;
                libroNew.TemaId                 = tituloProv.TemaId;
                libroNew.SubtemaId              = tituloProv.SubtemaId;
                libroNew.PrecioVentaTitulo      = PrecioVenta;
                libroNew.PrecioCompraTitulo     = PrecioBase;
                libroNew.CodigoBarra            = tituloProv.CodigoBarra;
                libroNew.ISBNg                  = tituloProv.ISBNg;
                libroNew.FechaAltaTitulo        = tituloProv.FechaAltaTitulo;
                libroNew.TipoArticuloId         = tituloProv.TipoArticuloId;
                libroNew.ModoStockId            = tituloProv.ModoStockId;
                libroNew.TipoTituloId           = tituloProv.TipoTituloId;
                libroNew.UnidadesId             = tituloProv.UnidadesId;
                libroNew.TomosTitulosId         = tituloProv.TomosTitulosId;
                libroNew.EstadoTituloId         = tituloProv.EstadoTituloId;
                libroNew.AdicionalId            = tituloProv.AdicionalId;
                libroNew.PesoTitulo             = tituloProv.PesoTitulo;
                libroNew.PaisId                 = tituloProv.PaisId;
                libroNew.FechaEdicion           = tituloProv.FechaEdicion;
                libroNew.IdiomaId               = tituloProv.IdiomaId;
                libroNew.PartesId               = tituloProv.PartesId;
                libroNew.Paginas                = tituloProv.Paginas;
                libroNew.Encuad                 = tituloProv.Encuad;
                libroNew.Comentario             = tituloProv.Comentario;
                libroNew.StkMin                 = tituloProv.StkMin;
                libroNew.FUltVta                = tituloProv.FUltVta;
                libroNew.Fingreso               = _clock.Now;
                libroNew.nControl               = tituloProv.nControl;
                libroNew.UbicacionId            = null;
                libroNew.PresentacionId         = tituloProv.PresentacionId;
                libroNew.FechaAlta              = _clock.Now;
                libroNew.SucursalAltaId         = Context.SucursalActual.Id;
                libroNew.OperadorAltaId         = Context.OperadorActual.Id;
                libroNew.FechaModificacion      = _clock.Now;
                libroNew.SucursalModificacionId = Context.SucursalActual.Id;
                libroNew.OperadorModificacionId = Context.OperadorActual.Id;
                libroNew.Activo                 = true;
                Uow.Titulos.Agregar(libroNew);

                var tituloStockNew = new TituloStock();
                tituloStockNew.TituloId               = libroNew.Id;
                tituloStockNew.SucursalId             = Context.SucursalActual.Id;
                tituloStockNew.StkCn                  = 0;
                tituloStockNew.StkPr                  = 0;
                tituloStockNew.FechaAlta              = _clock.Now;
                tituloStockNew.SucursalAltaId         = Context.SucursalActual.Id;
                tituloStockNew.OperadorAltaId         = Context.OperadorActual.Id;
                tituloStockNew.FechaModificacion      = _clock.Now;
                tituloStockNew.SucursalModificacionId = Context.SucursalActual.Id;
                tituloStockNew.OperadorModificacionId = Context.OperadorActual.Id;
                Uow.TitulosStock.Agregar(tituloStockNew);
                Uow.Commit();
            }
            else
            {
                _idLibro  = tituloCheck.Id;
                _codLibro = tituloCheck.Cod;
            }

            //mandar libro
            CompraTitulo titulo = ObtenerTitulo();

            //Validar cambios de precios
            if (TitulosValidator.SolicitarAutorizacionPorCambioDePrecios(titulo.MapToTitulo()))
            {
                var operador = this.ObtenerOperadorAdministrador();

                if (operador == null)
                {
                    return;
                }
            }

            var esValido = this.ValidarForm();

            if ((esValido))
            {
                OnTituloAgregado(titulo);

                //modifico el precio de toodos los proveedores
                ActualizarPrecioTitulo(titulo);
            }
            else
            {
                this.DialogResult = DialogResult.None;
            }
        }