Exemplo n.º 1
0
        private void ExecutarAlteracaoNoEstoque(Enumeradores.TipoOperacao tpO)
        {
            ItemDAO itemDAO        = new ItemDAO();
            Item    item           = new Item();
            long    novaQuantidade = 0;

            foreach (var v in _itensNoPedido)
            {
                item = itemDAO.GetDataByID(v.IdItem);

                if (tpO.Equals(Enumeradores.TipoOperacao.Somar))
                {
                    novaQuantidade = v.QuantidadeEstoque + v.QuantidadePedido;
                }
                else if (tpO.Equals(Enumeradores.TipoOperacao.Subtrair))
                {
                    novaQuantidade = v.QuantidadeEstoque - v.QuantidadePedido;
                }
                else
                {
                    novaQuantidade = v.QuantidadeEstoque;
                }

                try
                {
                    itemDAO.AlterarQuantidadeEstoque(item.Id, novaQuantidade);

                    Log log = new Log()
                    {
                        IdItem              = item.Id,
                        Descricao           = item.Descricao + " (" + item.Tamanho + ")",
                        QuantidadeAnterior  = v.QuantidadeEstoque,
                        QuantidadeAtual     = novaQuantidade,
                        QuantidadeInformada = v.QuantidadePedido,
                        Origem              = this.Text,
                        TpOperacao          = tpO,
                        IdPedido            = _pedido.Id,
                        PedidoNumero        = _pedido.Numero
                    };

                    log.GravarRastreabilidade();
                }
                catch (Exception) { throw; }
            }
        }
        private void AlterarQuantidadeEstoque()
        {
            ItemDAO itemDAO        = new ItemDAO();
            Item    item           = new Item();
            long    novaQuantidade = this.Quantidade;

            if (txtQuantidade.Text.Equals(""))
            {
                txtQuantidade.Focus();
                return;
            }

            item = itemDAO.GetDataByID(this.IdItem);

            if (this.tpOperacao.Equals(Enumeradores.TipoOperacao.Somar))
            {
                novaQuantidade = this.Quantidade + Convert.ToInt64(txtQuantidade.Text);
            }
            else if (this.tpOperacao.Equals(Enumeradores.TipoOperacao.Subtrair))
            {
                novaQuantidade = this.Quantidade - Convert.ToInt64(txtQuantidade.Text);
            }
            else if (this.tpOperacao.Equals(Enumeradores.TipoOperacao.Substituir))
            {
                novaQuantidade = Convert.ToInt64(txtQuantidade.Text);
            }
            else
            {
                novaQuantidade = this.Quantidade;
            }

            if (novaQuantidade < 0 || novaQuantidade > Item.ESTOQUE_MAXIMO)
            {
                MessageBox.Show("Não será possível realizar a alteração, pois o estoque ficaria inválido para o sistema! (Quantidade: " + novaQuantidade.ToString() + ")", AlterarEstoque.ActiveForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                if (MessageBox.Show("O estoque do item '" + item.Descricao + "' será alterado para: " + novaQuantidade.ToString() + " \nDeseja realmente continuar?", AlterarEstoque.ActiveForm.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question).Equals(System.Windows.Forms.DialogResult.Yes))
                {
                    try
                    {
                        itemDAO.AlterarQuantidadeEstoque(this.IdItem, novaQuantidade);

                        Log log = new Log()
                        {
                            IdItem              = this.IdItem,
                            Descricao           = item.Descricao + " (" + item.Tamanho + ")",
                            QuantidadeAnterior  = this.Quantidade,
                            QuantidadeAtual     = novaQuantidade,
                            QuantidadeInformada = Convert.ToInt64(txtQuantidade.Text),
                            Origem              = this.Text,
                            TpOperacao          = tpOperacao,
                            IdPedido            = 0,
                            PedidoNumero        = 0
                        };

                        log.GravarRastreabilidade();

                        MessageBox.Show("O estoque foi alterado com sucesso!", AlterarEstoque.ActiveForm.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        _novaQuantidade = novaQuantidade;
                        this.Hide();
                    }
                    catch (Exception) { throw; }
                }
            }
        }