示例#1
0
        /// <summary>
        /// Sobrecarga de Atualizar para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Atualizar()
        {
            bool ok;

            try {
                ok = base.Atualizar();
                if (ok)
                {
                    // Para o antigo produto, estoque, e quantidade, tire do saldo do antigo EstoqueItemID
                    EstoqueItem estoqueItemAntes = new EstoqueItem();
                    estoqueItemAntes.Control.ID = this.EstoqueItemID.ValorAntigo;                       // Pega EstoqueItemID antigo
                    decimal inverteSinal = -1 * this.Quantidade.ValorAntigo;
                    //	Atualiza no saldo, tirando a Quantidade antiga no antigo estoque e/ou produto
                    estoqueItemAntes.AtualizarSaldo(inverteSinal);

                    // Para o novo produto, estoque, e quantidade, inclua no saldo do novo EstoqueItemID
                    EstoqueItem estoqueItemDepois = new EstoqueItem();
                    estoqueItemDepois.Control.ID = this.EstoqueItemID.Valor;                            // Pega EstoqueItemID para ser procurado
                    //	Atualiza no saldo, somando a Quantidade no novo estoque e/ou produto
                    estoqueItemDepois.AtualizarSaldo(this.Quantidade.Valor);
                }                 // fim de if-ok
            } catch {
                ok = false;
            }
            return(ok);
        }
        /// <summary>
        /// Sobrecarga de Atualizar para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Atualizar()
        {
            bool ok;

            try {
                ok = base.Atualizar();
                if (ok)
                {
                    decimal inverteSinal;
                    // === Para Antes da alteracao
                    // Para Estoque Para
                    EstoqueItem estoqueItemParaAntes = new EstoqueItem();
                    estoqueItemParaAntes.Control.ID = this.EstoqueItemParaID.ValorAntigo;                       // Usado no AtualizarSaldo
                    inverteSinal = -1 * this.Quantidade.ValorAntigo;
                    estoqueItemParaAntes.AtualizarSaldo(inverteSinal);
                    // Para Estoque De
                    EstoqueItem estoqueItemDeAntes = new EstoqueItem();
                    estoqueItemDeAntes.Control.ID = this.EstoqueItemDeID.ValorAntigo;                           // Usado no AtualizarSaldo
                    estoqueItemDeAntes.AtualizarSaldo(this.Quantidade.ValorAntigo);
                    // === Para Depois da alteracao
                    // Para Estoque Para
                    EstoqueItem estoqueItemParaDepois = new EstoqueItem();
                    estoqueItemParaDepois.Control.ID = this.EstoqueItemParaID.Valor;                            // Usado no AtualizarSaldo
                    estoqueItemParaDepois.AtualizarSaldo(this.Quantidade.Valor);
                    // Para Estoque Para
                    EstoqueItem estoqueItemDeDepois = new EstoqueItem();
                    estoqueItemDeDepois.Control.ID = this.EstoqueItemDeID.Valor;                        // Usado no AtualizarSaldo
                    inverteSinal = -1 * this.Quantidade.Valor;
                    estoqueItemDeDepois.AtualizarSaldo(inverteSinal);
                }                 // fim de if-ok
            } catch {
                ok = false;
            }
            return(ok);
        }
示例#3
0
        /// <summary>
        /// Sobrecarga de Inserir para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Inserir()
        {
            bool ok;

            try {
                ok = base.Inserir();
                if (ok)
                {
                    EstoqueItem estoqueItem = new EstoqueItem();
                    estoqueItem.Control.ID = this.EstoqueItemID.Valor;
                    estoqueItem.Ler(estoqueItem.Control.ID);                     // preciso do ProdutoID
                    // Em uma compra de produto, eh necessaria a conversao da unidade de compra para unidade de uso
                    // Para isso, eh necessario o coeficiente de conversao que esta com o produto
                    Produto produto = new Produto();
                    // Encontrar o Produto em funcao do EstoqueItemID
                    produto.Ler(estoqueItem.ProdutoID.Valor);
                    // atualizando
                    estoqueItem.AtualizarSaldo(this.Quantidade.Valor * produto.CoeficienteDeConversao.Valor);
                    // Atualizar o valor do Preço na tabela de Produto
                    try {
                        produto.PrecoCompra.Valor = this.PrecoCompra.Valor;
                        produto.Atualizar();
                    } catch {
                        Debug.Fail("Falha ao atualizar o Preço no Produto, ao efetuar Pedido");
                    }
                }
            } catch {
                ok = false;
            }
            return(ok);
        }
示例#4
0
        /// <summary>
        /// Sobrecarga de Excluir para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Excluir()
        {
            bool ok;

            try {
                ok = base.Excluir();
                if (ok)
                {
                    EstoqueItem estoqueItem = new EstoqueItem();
                    estoqueItem.Control.ID = this.EstoqueItemID.Valor;
                    estoqueItem.Ler(estoqueItem.Control.ID);                     // preciso do ProdutoID
                    decimal inverteSinal = -1 * this.Quantidade.Valor;
                    // Em uma compra de produto, eh necessaria a conversao da unidade de compra para unidade de uso
                    // Para isso, eh necessario o coeficiente de conversao que esta com o produto
                    Produto produto = new Produto();
                    // Encontrar o Produto em funcao do EstoqueItemID
                    produto.Ler(estoqueItem.ProdutoID.Valor);
                    // atualizando
                    estoqueItem.AtualizarSaldo(inverteSinal * produto.CoeficienteDeConversao.Valor);
                }
            } catch {
                ok = false;
            }
            return(ok);
        }
示例#5
0
        /// <summary>
        /// Sobrecarga de Atualizar para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Atualizar()
        {
            bool ok;

            try {
                ok = base.Atualizar();
                if (ok)
                {
                    // Para o antigo produto, estoque, e quantidade, tire do saldo do antigo EstoqueItemID
                    EstoqueItem estoqueItemAntes = new EstoqueItem();
                    estoqueItemAntes.Control.ID = this.EstoqueItemID.ValorAntigo;          // Pega EstoqueItemID antigo
                    estoqueItemAntes.Ler(estoqueItemAntes.Control.ID);                     // obtendo produto e estoque relacionado a este estoque item
                    // Em uma compra de produto, eh necessaria a conversao da unidade de compra para unidade de uso
                    // Para isso, eh necessario o coeficiente de conversao que esta com o produto
                    // Encontrar o Produto em funcao do EstoqueItemID
                    Produto produtoAntes = new Produto();
                    produtoAntes.Ler(estoqueItemAntes.ProdutoID.Valor);                         // aqui nao eh valor antigo, pois ja obtemos no EstoqueItemID antigo
                    decimal inverteSinal = -1 * this.Quantidade.ValorAntigo;
                    //	Atualiza no saldo, tirando a Quantidade antiga no antigo estoque e/ou produto
                    estoqueItemAntes.AtualizarSaldo(inverteSinal * produtoAntes.CoeficienteDeConversao.Valor);
                    // ==================================================
                    // Para o novo produto, estoque, e quantidade, inclua no saldo do novo EstoqueItemID
                    EstoqueItem estoqueItemDepois = new EstoqueItem();
                    estoqueItemDepois.Control.ID = this.EstoqueItemID.Valor;                 // Pega EstoqueItemID para ser procurado
                    estoqueItemDepois.Ler(estoqueItemDepois.Control.ID);                     // obtendo produto e estoque relacionado a este estoque item
                    // Nao preciso me preocupar em encontrar um novo EstoqueItemID, pois ja foi tratado antes
                    // Em uma compra de produto, eh necessaria a conversao da unidade de compra para unidade de uso
                    // Para isso, eh necessario o coeficiente de conversao que esta com o produto
                    // Encontrar o Produto em funcao do EstoqueItemID
                    Produto produtoDepois = new Produto();
                    produtoDepois.Ler(estoqueItemDepois.ProdutoID.Valor);
                    //	Atualiza no saldo, somando a Quantidade no novo estoque e/ou produto
                    estoqueItemDepois.AtualizarSaldo(this.Quantidade.Valor * produtoDepois.CoeficienteDeConversao.Valor);
                    // Atualizar o valor do Preço na tabela de Produto, neste caso, importa sempre depois da alteracao
                    try {
                        produtoDepois.PrecoCompra.Valor = this.PrecoCompra.Valor;
                        produtoDepois.Atualizar();
                    } catch {
                        Debug.Fail("Falha ao atualizar o Preço no Produto, ao efetuar Pedido");
                    }
                }                 // fim de if-ok
            } catch {
                ok = false;
            }
            return(ok);
        }
示例#6
0
        /// <summary>
        /// Sobrecarga de Inserir para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Inserir()
        {
            bool ok;

            try {
                ok = base.Inserir();
                if (ok)
                {
                    EstoqueItem estoqueItem = new EstoqueItem();
                    estoqueItem.Control.ID = this.EstoqueItemID.Valor;
                    // atualizando
                    estoqueItem.AtualizarSaldo(this.Quantidade.Valor);
                }
            } catch {
                ok = false;
            }
            return(ok);
        }
示例#7
0
        /// <summary>
        /// Sobrecarga de Excluir para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Excluir()
        {
            bool ok;

            try {
                ok = base.Excluir();
                if (ok)
                {
                    EstoqueItem estoqueItem = new EstoqueItem();
                    estoqueItem.Control.ID = this.EstoqueItemID.Valor;
                    decimal inverteSinal = -1 * this.Quantidade.Valor;
                    // atualizando
                    estoqueItem.AtualizarSaldo(inverteSinal);
                }
            } catch {
                ok = false;
            }
            return(ok);
        }
        /// <summary>
        /// Sobrecarga de Excluir para atualizar saldo no item de estoque
        /// </summary>
        /// <returns></returns>
        public override bool Excluir()
        {
            bool ok;

            try {
                ok = base.Excluir();
                if (ok)
                {
                    // Estoque De
                    EstoqueItem estoqueItemDe = new EstoqueItem();
                    estoqueItemDe.Control.ID = this.EstoqueItemDeID.Valor;
                    estoqueItemDe.AtualizarSaldo(this.Quantidade.Valor);
                    // Estoque Para
                    EstoqueItem estoqueItemPara = new EstoqueItem();
                    estoqueItemPara.Control.ID = this.EstoqueItemParaID.Valor;
                    decimal inverteSinal = -1 * this.Quantidade.Valor;
                    estoqueItemPara.AtualizarSaldo(inverteSinal);
                }
            } catch {
                ok = false;
            }
            return(ok);
        }
示例#9
0
        }         // fim de GravarComanda

        /// <summary>
        /// Gravar informações de Comanda e seus itens, antes de imprimir Comanda no Bar
        /// </summary>
        /// <returns></returns>
        public string GravarComanda(
            out int vendaID,
            bool trabalharComIngresso,
            int caixaID,
            int apresentacaoID,
            int setorID,
            string codigo,
            int garconID,
            DataTable comandaItemTabelaMemoria)
        {
            int     comandaID;
            Comanda comanda = new Comanda(usuarioID);

            try{
                vendaID = 0;
                // Gravar na tabela Comanda
                comanda.CaixaID.Valor = caixaID;
                comanda.VendaID.Valor = 0;
                Ingresso ingresso = new Ingresso();
                if (trabalharComIngresso)
                {
                    comanda.IngressoID.Valor = IngressoID(apresentacaoID, setorID, codigo);
                    comanda.GarconID.Valor   = garconID;
                }
                else
                {
                    comanda.IngressoID.Valor = 0;
                    comanda.GarconID.Valor   = 0;
                }
                int incremento = comanda.Ultima() + 1;
                comanda.Ordem.Valor = incremento.ToString();
                comanda.Inserir();                      // *****
                comandaID = comanda.Control.ID;         // retornar ID da Comanda
                foreach (DataRow linha in comandaItemTabelaMemoria.Rows)
                {
                    // Gravar os itens
                    ComandaItem comandaItem = new ComandaItem(usuarioID);
                    comandaItem.ComandaID.Valor  = comandaID;
                    comandaItem.ProdutoID.Valor  = Convert.ToInt32(linha["ProdutoID"]);
                    comandaItem.Quantidade.Valor = Convert.ToInt32(linha["Quantidade"]);
                    // Pesquisar PrecoVenda
                    Produto produto = new Produto();
                    produto.Ler(Convert.ToInt32(linha["ProdutoID"]));
                    comandaItem.PrecoVenda.Valor = produto.PrecoVenda.Valor;
                    // Inserir o item de comanda
                    comandaItem.Inserir();
                    // Atualizar quantidade no estoque para cada item de venda
                    Caixa caixa = new Caixa(usuarioID);
                    caixa.Ler(caixaID);
                    Loja loja = new Loja(usuarioID);
                    loja.Ler(caixa.LojaID.Valor);
                    EstoqueItem estoqueItem = new EstoqueItem(usuarioID);
                    estoqueItem.ProdutoID.Valor = Convert.ToInt32(linha["ProdutoID"]);
                    estoqueItem.EstoqueID.Valor = loja.EstoqueID.Valor;
                    estoqueItem.DefinirID();
                    estoqueItem.AtualizarSaldo(-1 * Convert.ToInt32(linha["Quantidade"]));
                }
                // Em sistema de Ticket, assim que imprimiu a comanda, salva a venda
                if (!trabalharComIngresso)
                {
                    // Chame um mehtodo que cria um registro de Venda e atualiza VendaID nesta Comanda
                    vendaID = InserirVenda(caixaID, comanda.IngressoID.Valor, comandaID);
                }
            }catch (Exception erro) {
                throw erro;
            }
            return(comanda.Ordem.Valor);
        }         // fim de GravarComanda
示例#10
0
        }         // fim de GravarComandaPagamento

        /// <summary>
        /// Gravar informações de Comanda e seus itens, antes de imprimir Comanda no Bar
        /// Usa como parâmetro Matriz em vez de DataTable
        /// </summary>
        /// <returns></returns>
        public string GravarComanda(
            out int vendaID,
            bool trabalharComIngresso,
            int caixaID,
            int apresentacaoID,
            int setorID,
            string codigo,
            int garconID,
            int [,] comandaItemMatrizMemoria)
        {
            //

            int     comandaID;
            Comanda comanda = new Comanda(usuarioID);

            try{
                vendaID = 0;
                // Gravar na tabela Comanda
                comanda.CaixaID.Valor = caixaID;
                comanda.VendaID.Valor = 0;
                Ingresso ingresso = new Ingresso();
                if (trabalharComIngresso)
                {
                    comanda.IngressoID.Valor = IngressoID(apresentacaoID, setorID, codigo);
                    comanda.GarconID.Valor   = garconID;
                }
                else
                {
                    comanda.IngressoID.Valor = 0;
                    comanda.GarconID.Valor   = 0;
                }
                int incremento = comanda.Ultima() + 1;
                comanda.Ordem.Valor = incremento.ToString();
                comanda.Inserir();                                      // *****
                comandaID = comanda.Control.ID;                         // retornar ID da Comanda
                int tamanho = (int)comandaItemMatrizMemoria.Length / 2; // 2 colunas
                for (int conta = 0; conta < tamanho; conta++)
                {
                    // Gravar os itens
                    int         produtoID   = Convert.ToInt32(comandaItemMatrizMemoria[conta, 0]);
                    int         quantidade  = Convert.ToInt32(comandaItemMatrizMemoria[conta, 1]);
                    ComandaItem comandaItem = new ComandaItem(usuarioID);
                    comandaItem.ComandaID.Valor  = comandaID;
                    comandaItem.ProdutoID.Valor  = produtoID;
                    comandaItem.Quantidade.Valor = quantidade;
                    // Pesquisar PrecoVenda
                    Produto produto = new Produto();
                    produto.Ler(produtoID);                     // *****
                    comandaItem.PrecoVenda.Valor = produto.PrecoVenda.Valor;
                    // Inserir o item de comanda
                    comandaItem.Inserir();                      // *****
                    // Atualizar quantidade no estoque para cada item de venda
                    Caixa caixa = new Caixa(usuarioID);
                    caixa.Ler(caixaID);                         // *****
                    Loja loja = new Loja(usuarioID);
                    loja.Ler(caixa.LojaID.Valor);
                    EstoqueItem estoqueItem = new EstoqueItem(usuarioID);
                    estoqueItem.ProdutoID.Valor = produtoID;
                    estoqueItem.EstoqueID.Valor = loja.EstoqueID.Valor;
                    estoqueItem.DefinirID();                            // *****
                    estoqueItem.AtualizarSaldo(-1 * quantidade);        // *****
                }
                // Em sistema de Ticket, assim que imprimiu a comanda, salva a venda
                if (!trabalharComIngresso)
                {
                    // Chame um mehtodo que cria um registro de Venda e atualiza VendaID nesta Comanda
                    vendaID = InserirVenda(caixaID, comanda.IngressoID.Valor, comandaID);                       // *****
                }
            }catch (Exception erro) {
                throw erro;
            }
            return(comanda.Ordem.Valor);
        }         // fim de GravarComanda