private ListViewItem CriarItem(ItemProduçãoFiscal entidade) { var item = new ListViewItem(new string[lista.Columns.Count]); item.SubItems[colReferência.Index].Text = entidade.Mercadoria.Referência; item.SubItems[colQuantidade.Index].Text = entidade.Quantidade.ToString(); item.SubItems[colDescrição.Index].Text = entidade.Mercadoria.Descrição; item.SubItems[colTipo.Index].Text = TipoUnidade.Obter(entidade.Mercadoria.TipoUnidadeComercial).Nome; item.Tag = entidade; return item; }
public void AdicionarProdução(ItemProduçãoFiscal novoItem) { var esquema = ObterEsquemaLevantandoErroCasoNãoExista(novoItem); var conexão = Conexão; lock (conexão) { using (var transação = conexão.BeginTransaction()) { AdicionarProdução(conexão, transação, novoItem, esquema); transação.Commit(); } } }
private void AdicionarProdução(System.Data.IDbConnection conexão, System.Data.IDbTransaction transação, ItemProduçãoFiscal novoItem, EsquemaProdução esquema) { if (novoItem.Quantidade == 0) return; var ingredientes = Ingrediente.Obter(esquema.Referência); decimal qtdReceitas = novoItem.Quantidade / esquema.Quantidade; AdicionarSaída(conexão, transação, novoItem, qtdReceitas); foreach (var ingrediente in ingredientes) AdicionarEntrada(conexão, transação, qtdReceitas, ingrediente); }
private void AdicionarSaída(System.Data.IDbConnection conexão, System.Data.IDbTransaction transação, ItemProduçãoFiscal novoItem, decimal qtdReceitas) { using (var cmd = conexão.CreateCommand()) { cmd.CommandText = SaídaProduçãoFiscal.ObterSqlInserçãoSaída(this, qtdReceitas, novoItem.Referência, novoItem.Quantidade); cmd.Transaction = transação; cmd.ExecuteNonQuery(); } }
private static EsquemaProdução ObterEsquemaLevantandoErroCasoNãoExista(ItemProduçãoFiscal novoItem) { EsquemaProdução esquema = EsquemaProdução.Obter(novoItem.Referência); if (esquema == null) throw new EsquemaInexistente(novoItem.Referência); return esquema; }