/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
} // 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
} // 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