/// <summary> /// Retorna um IBaseBD de EstoqueItem especifico /// </summary> public override IBaseBD this[int indice] { get{ if (indice < 0 || indice >= lista.Count) { return(null); } else { int id = (int)lista[indice]; estoqueItem.Ler(id); return(estoqueItem); } } }
/// <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> /// Obtem uma tabela de todos os campos de estoquetransferenciaitem carregados na lista /// </summary> /// <returns></returns> public override DataTable Relatorio() { DataTable tabela = new DataTable("EstoqueTransferenciaItem"); try{ if (this.Primeiro()) { //tabela.Columns.Add("OrdemTransferencia", typeof(int)); tabela.Columns.Add("EstoqueDe", typeof(string)); tabela.Columns.Add("EstoquePara", typeof(string)); tabela.Columns.Add("Produto", typeof(string)); tabela.Columns.Add("Quantidade", typeof(decimal)); do { DataRow linha = tabela.NewRow(); // EstoqueTransferencia t = new EstoqueTransferencia(); // t.Ler(estoquetransferenciaitem.EstoqueTransferenciaID.Valor); // linha["OrdemTransferencia"]= t.Ordem.Valor; EstoqueItem eItem = new EstoqueItem(); eItem.Ler(estoqueTransferenciaItem.EstoqueItemDeID.Valor); Produto p = new Produto(); p.Ler(eItem.ProdutoID.Valor); linha["Produto"] = p.Nome.Valor; Estoque e = new Estoque(); e.Ler(eItem.EstoqueID.Valor); linha["EstoqueDe"] = e.Nome.Valor; eItem = new EstoqueItem(); eItem.Ler(estoqueTransferenciaItem.EstoqueItemParaID.Valor); e = new Estoque(); e.Ler(eItem.EstoqueID.Valor); linha["EstoquePara"] = e.Nome.Valor; linha["Quantidade"] = estoqueTransferenciaItem.Quantidade.Valor; tabela.Rows.Add(linha); }while(this.Proximo()); } else //erro: nao carregou a lista { tabela = null; } }catch { tabela = null; } return(tabela); }
/// <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> /// Obtem uma tabela de todos os campos de estoqueajusteitem carregados na lista /// </summary> /// <returns></returns> public override DataTable Relatorio() { DataTable tabela = new DataTable("EstoqueAjusteItem"); try{ if (this.Primeiro()) { // Criando DataTable tabela.Columns.Add("Estoque", typeof(string)); tabela.Columns.Add("Produto", typeof(string)); tabela.Columns.Add("Quantidade", typeof(decimal)); tabela.Columns.Add("Motivo", typeof(string)); // Atribuindo dados ao DataTable do { DataRow linha = tabela.NewRow(); // Obtendo EstoqueItemID para obter Produto e Estoque EstoqueItem eItem = new EstoqueItem(); eItem.Ler(estoqueAjusteItem.EstoqueItemID.Valor); // Produto Produto p = new Produto(); p.Ler(eItem.ProdutoID.Valor); linha["Produto"] = p.Nome.Valor; // Estoque Estoque e = new Estoque(); e.Ler(eItem.EstoqueID.Valor); linha["Estoque"] = e.Nome.Valor; // linha["Quantidade"] = estoqueAjusteItem.Quantidade.Valor; EstoqueAjusteMotivo eam = new EstoqueAjusteMotivo(); eam.Ler(estoqueAjusteItem.EstoqueAjusteMotivoID.Valor); linha["Motivo"] = eam.Nome.Valor; tabela.Rows.Add(linha); }while(this.Proximo()); } else //erro: nao carregou a lista { tabela = null; } }catch { tabela = null; } return(tabela); } // fim do mehtodo
/// <summary> /// Obtem uma tabela de todos os campos de estoquepedidoitem carregados na lista /// </summary> /// <returns></returns> public override DataTable Relatorio() { DataTable tabela = new DataTable("EstoquePedidoItem"); try{ if (this.Primeiro()) { // Criando DataTable tabela.Columns.Add("Estoque", typeof(string)); tabela.Columns.Add("Produto", typeof(string)); tabela.Columns.Add("PrecoCompra", typeof(decimal)); tabela.Columns.Add("Quantidade", typeof(decimal)); // Atribuindo dados ao DataTable do { DataRow linha = tabela.NewRow(); // Obtendo EstoqueItemID para obter Produto e Estoque EstoqueItem eItem = new EstoqueItem(); eItem.Ler(estoquePedidoItem.EstoqueItemID.Valor); // Produto Produto p = new Produto(); p.Ler(eItem.ProdutoID.Valor); linha["Produto"] = p.Nome.Valor; // Estoque Estoque e = new Estoque(); e.Ler(eItem.EstoqueID.Valor); linha["Estoque"] = e.Nome.Valor; // Outrso campos do relatohrio linha["PrecoCompra"] = estoquePedidoItem.PrecoCompra.Valor; linha["Quantidade"] = estoquePedidoItem.Quantidade.Valor; // Adicionando a linha ao DataTable tabela.Rows.Add(linha); }while(this.Proximo()); } else //erro: nao carregou a lista { tabela = null; } }catch { tabela = null; } return(tabela); }