private void btnSalvar_Click(object sender, EventArgs e) { try { List <StockVestuarioFarda> Lstock = new List <StockVestuarioFarda>(); foreach (DataGridViewRow row in dgvListaItems.Rows) { var farda = new Farda((int)row.Cells["IdFarda"].Value); var serie = new Serie((int)row.Cells["IdSerie"].Value); var numeroVestuario = new NumeroVestuario((int)row.Cells["IdNumero"].Value); int quantidade = (int)row.Cells["Quantidade"].Value; var itens = new StockVestuarioFarda(serie, farda, numeroVestuario, quantidade); Lstock.Add(itens); } MovimentoStock movimento = new MovimentoStock() { Descricao = "Entrada de Ecomenda nº " + txtCodigo.Text, DataMovimento = DateTime.Now, Militar = ElementosEstaticos.Militar, TipoMovimento = EnumList.TipoMovimento.Entrada }; foreach (var item in Lstock) { NStock nStock = new NStock(); string resposta = nStock.Insert(item, movimento); } //Imprimir DGVPrinter printer = new DGVPrinter(); printer.ListColumns = new List <string>() { "Serie", "Farda", "Vestuario", "Numero", "Quantidade" }; printer.Title = "Ecomenda de Vestuário"; printer.SubTitle = string.Format("{0} - {1}", movimento.Descricao, DateTime.Now.ToString("dd-MMMM-yyyy hh:mm")); printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip; printer.PageNumbers = true; printer.PageNumberInHeader = false; printer.PorportionalColumns = true; printer.HeaderCellAlignment = StringAlignment.Near; printer.Footer = ElementosEstaticos.Unidade.Nome; printer.FooterSpacing = 15; printer.PrintDataGridView(dgvListaItems); Limpar(); } catch (Exception ex) { MessageBox.Show("Um erro impedio a execução da operação.\r\nErro: " + ex.Message, ElementosEstaticos.Unidade.Nome, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public string Insert(StockVestuarioFarda stock, MovimentoStock movimento) { return(DStock.Insert(stock, movimento)); }
public string Insert(StockVestuarioFarda stock, MovimentoStock movimento) { try { using (MySqlTransaction trans = Con.Abrir().BeginTransaction()) { string command = "Select ID, Quantidade from Stock_Vestuario_Farda where Id_Serie=@IdSerie and Id_Farda=@IdFarda and Id_Numero_Vestuario=@IdNumero"; MySqlCommand cmdInsert = new MySqlCommand(command, Con.Abrir()); cmdInsert.Transaction = trans; cmdInsert.Parameters.Add("@IdFarda", MySqlDbType.Int32).Value = stock.Farda.ID; cmdInsert.Parameters.Add("@IdSerie", MySqlDbType.Int32).Value = stock.Serie.ID; cmdInsert.Parameters.Add("@IdNumero", MySqlDbType.Int32).Value = stock.NumeroVestuario.ID; cmdInsert.Parameters.Add("@Quantidade", MySqlDbType.Int32).Value = stock.Quantidade; cmdInsert.Parameters.Add("@TipoMovimento", MySqlDbType.VarChar).Value = movimento.TipoMovimento.ToString(); cmdInsert.Parameters.Add("@Descricao", MySqlDbType.VarChar).Value = movimento.Descricao; cmdInsert.Parameters.Add("@IdMilitar", MySqlDbType.Int32).Value = movimento.Militar.ID; cmdInsert.Parameters.Add("@DataMovimento", MySqlDbType.DateTime).Value = movimento.DataMovimento; int id = 0; int quantidadeStock = 0; using (var reader = cmdInsert.ExecuteReader()) { if (reader.Read()) { id = reader.GetInt32("ID"); quantidadeStock = reader.GetInt32("Quantidade"); } } if (id > 0) { cmdInsert.Parameters.Add("@ID", MySqlDbType.Int32).Value = id; if (movimento.TipoMovimento == EnumList.TipoMovimento.Entrada) { cmdInsert.CommandText = "Update Stock_Vestuario_Farda set Quantidade=Quantidade+@Quantidade where ID=@ID"; } else if (quantidadeStock > stock.Quantidade) { cmdInsert.CommandText = "Update Stock_Vestuario_Farda set Quantidade=Quantidade-@Quantidade where ID=@ID"; } else { cmdInsert.CommandText = "Update Stock_Vestuario_Farda set Quantidade=0 where ID=@ID"; } cmdInsert.ExecuteNonQuery(); } else { if (movimento.TipoMovimento == EnumList.TipoMovimento.Entrada) { cmdInsert.CommandText = "Insert into Stock_Vestuario_Farda(Id_Farda, Id_Serie, " + "Id_Numero_Vestuario, Quantidade) values(@IdFarda, @IdSerie, @IdNumero, @Quantidade)"; } else { cmdInsert.CommandText = "Insert into Stock_Vestuario_Farda(Id_Farda, Id_Serie, " + "Id_Numero_Vestuario, Quantidade) values(@IdFarda, @IdSerie, @IdNumero, 0)"; } cmdInsert.ExecuteNonQuery(); id = (int)cmdInsert.LastInsertedId; cmdInsert.Parameters.Add("@ID", MySqlDbType.Int32).Value = id; } //Movimento do Stock cmdInsert.CommandText = "Insert into Movimento_Stock(Id_Stock_Vestuario_Farda, Tipo_Movimento, " + "Quantidade, Descricao, Id_Militar, DataMovimento) values(@ID, @TipoMovimento, @Quantidade, " + "@Descricao, @IdMilitar, @DataMovimento)"; cmdInsert.ExecuteNonQuery(); trans.Commit(); return("OK"); } } finally { Con.Fechar(); } }