private void Salvar() { DALConexao cx = new DALConexao(DadosDaConexao.StringDaConexao); DTOMovimento mov = new DTOMovimento(); BLLMovimento bllmov = new BLLMovimento(cx); for (int i = 0; i < dgvProdutos.RowCount; i++) { mov.Lancamento = Convert.ToInt32(txtLancamento.Text); mov.NfMov = Convert.ToInt32(txtNf.Text); mov.DataNfMov = Convert.ToDateTime(txtDataEmissao.Text); mov.DataCriacaoMov = DateTime.Now; mov.DataMov = Convert.ToDateTime(txtDataEntrada.Text); mov.IdUnidade = Convert.ToInt32(cbUnidade.SelectedValue); mov.IdFornecedor = Convert.ToInt32(txtFornecedor.Text); mov.IdUsuario = idUsuario; mov.IdProduto = Convert.ToInt32(dgvProdutos.Rows[i].Cells[1].Value); mov.QuantMov = Convert.ToInt32(dgvProdutos.Rows[i].Cells[3].Value); mov.CustoUnitMov = Convert.ToDouble(dgvProdutos.Rows[i].Cells[4].Value); mov.TipoMov = "Entrada"; bllmov.Incluir(mov); } this.LimpaCampos(); this.AlteraBotoes(1); }
private void btProdutos_Click(object sender, EventArgs e) { DateTime resultado = DateTime.MinValue; if (txtFornecedor.Text != "" && lbForn.Text != "") { if (txtNf.Text != "") { if ((DateTime.TryParse(this.txtDataEmissao.Text.Trim(), out resultado))) { DALConexao cxnf = new DALConexao(DadosDaConexao.StringDaConexao); BLLMovimento bllnf = new BLLMovimento(cxnf); DTOMovimento modelo = bllnf.ConsultaNf(Convert.ToInt32(txtNf.Text), Convert.ToInt32(txtFornecedor.Text)); if (modelo.IdFornecedor == 0 || this.operacao == "editar") { if ((DateTime.TryParse(this.txtDataEntrada.Text.Trim(), out resultado))) { this.LançaProdutos(); } else { MessageBox.Show("Data de entrada inválida."); } } else { MessageBox.Show("Já existe a nota " + txtNf.Text + " para o fornecedor " + lbForn.Text + "."); } } else { MessageBox.Show("Data de emissão inválida."); } } else { MessageBox.Show("O número da nota não pode ficar em branco."); } } else { MessageBox.Show("Código de fornecedor inválido."); } //Valida os dados da nota e passa para os produtos }
private void btRodar_Click(object sender, EventArgs e) { int quantInv; DialogResult d = MessageBox.Show("Deseja rodar o inventário " + txtNumeroInventario.Text + " e gerar os movimentos relativos a ele?", "Aviso", MessageBoxButtons.YesNo); if (d.ToString() == "Yes") { DALConexao cx = new DALConexao(DadosDaConexao.StringDaConexao); DTOInventario inv = new DTOInventario(); BLLInventario bllinv = new BLLInventario(cx); bllinv.Concluir(Convert.ToInt32(txtNumeroInventario.Text)); // gerar movimentações de estoque DTOMovimento mov = new DTOMovimento(); BLLMovimento bllmov = new BLLMovimento(cx); for (int i = 0; i < dgvInventario.RowCount; i++) { mov.Lancamento = 0; mov.NfMov = Convert.ToInt32(txtNumeroInventario.Text); mov.DataNfMov = Convert.ToDateTime(txtDataInventario.Text); mov.DataCriacaoMov = DateTime.Now; mov.DataMov = Convert.ToDateTime(txtDataMovimento.Text); mov.IdUnidade = Convert.ToInt32(cbUnidade.SelectedValue); mov.IdFornecedor = Convert.ToInt32(cbUnidade.SelectedValue); mov.IdUsuario = idUsuario; mov.TipoMov = "Inventario"; mov.IdProduto = Convert.ToInt32(dgvInventario.Rows[i].Cells[0].Value); //buscar quantidade de diferença try { quantInv = Convert.ToInt32(dgvInventario.Rows[i].Cells[5].Value); } catch { quantInv = 0; } int ultimoInv = 0; int ultimosMovs = 0; DateTime dataUltimoInv; //Localiza quantidade do último inventario concluído. string buscaUltimoInv = "select inventario, data_mov_inv, id_produto, quant_inv from inventario " + " where concluido = 'c' and id_produto = " + mov.IdProduto + " and data_mov_inv < '" + Convert.ToDateTime(txtDataMovimento.Text).ToString("d") + "' order by data_mov_inv asc;"; BLLInventario bll = new BLLInventario(cx); DataTable tabela = bll.Localizar(buscaUltimoInv); try { ultimoInv = Convert.ToInt32(tabela.Rows[0]["quant_inv"]); } catch { ultimoInv = 0; } try { dataUltimoInv = Convert.ToDateTime(tabela.Rows[0]["data_mov_inv"]); } catch { DateTime data = new DateTime(1900, 1, 1); dataUltimoInv = data; } //Soma movimentos de um período de tempo. //select sum(quant_mov) as quantidade, id_produto from movimentacao where data_mov between '2016-05-10' and '2016-05-24' and id_produto = 38 group by id_produto, quant_mov; string buscaQuantMovimentacoes = "select sum(quant_mov) as quantidade, id_produto from movimentacao " + "where data_mov > '" + dataUltimoInv.ToString("d") + "' and data_mov <= '" + Convert.ToDateTime(txtDataMovimento.Text).ToString("d") + "' and id_produto = " + mov.IdProduto + " group by id_produto;"; BLLMovimento bllquantmov = new BLLMovimento(cx); DataTable tabelamov = bllquantmov.LocalizarValor(buscaQuantMovimentacoes); try { ultimosMovs = Convert.ToInt32(tabelamov.Rows[0]["quantidade"]); } catch { ultimosMovs = 0; } mov.QuantMov = quantInv - (ultimoInv + ultimosMovs); //Buscar custo unitario da ultima movimentacao de entrada string buscacusto = "select * from movimentacao " + "where id_produto = " + mov.IdProduto + " order by data_mov desc;"; BLLMovimento bllCustotmov = new BLLMovimento(cx); DataTable tabelacusto = bllCustotmov.LocalizarValor(buscacusto); try { mov.CustoUnitMov = Convert.ToDouble(tabelacusto.Rows[0]["custo_unitario_mov"]); } catch { mov.CustoUnitMov = 0.00; } bllmov.Incluir(mov); } MessageBox.Show("Inventário processado com sucesso."); LimpaCampos(); AlteraBotoes(1); } }