//=========================================================================================================================================== private void dgvDadosCompra_CellClick(object sender, DataGridViewCellEventArgs e) //Aula 105 { //verifica se uma linha foi clicada: if (e.RowIndex >= 0) { //CONEXÃO: DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //----------------------------------------------------------------------------------------------------------------------------------- //CARREGA OS ITENS DA COMPRA: //----------------------------------------------------------------------------------------------------------------------------------- BLLItensCompra bllItens = new BLLItensCompra(cx); //localizar itens pelo codigo da compra: dgvItens.DataSource = bllItens.Localizar(Convert.ToInt32(dgvDadosCompra.Rows[e.RowIndex].Cells[0].Value)); //----------------------------------------------------------------------------------------------------------------------------------- //PARCELAS DA COMPRA: //----------------------------------------------------------------------------------------------------------------------------------- BLLParcelasCompra bllParcelas = new BLLParcelasCompra(cx); //localizar parcelas pelo codigo da compra: dgvParcelas.DataSource = bllParcelas.Localizar(Convert.ToInt32(dgvDadosCompra.Rows[e.RowIndex].Cells[0].Value)); //Formatar a grid: AtualizaCabecalhoDGGridItens(); AtualizaCabecalhoDGGridParcelas(); } }
private void btSalvar_Click(object sender, EventArgs e) { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); cx.IniciarTransacao(); try { ModeloCompra modelocompra = new ModeloCompra(); //modeloVenda.VenCod = Convert.ToInt32(txtCod.Text); modelocompra.ComNFiscal = 1; modelocompra.ForCod = 1; modelocompra.ComNParcelas = 1; modelocompra.ComStatus = 1; modelocompra.ComTotal = this.totalCompra; modelocompra.TpaCod = 1; BLLCompra bll = new BLLCompra(cx); ModeloItensCompra mitens = new ModeloItensCompra(); BLLItensCompra bitens = new BLLItensCompra(cx); if (this.operacao == "inserir") { bll.Incluir(modelocompra); for (int i = 0; i < dgvItens.RowCount; i++) { mitens.itcCod = i + 1; mitens.VenCod = modelocompra.ComCod; mitens.ProCod = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value); mitens.ProDesc = dgvItens.Rows[i].Cells[1].Value.ToString(); mitens.itcQtde = Math.Round(Convert.ToDouble(dgvItens.Rows[i].Cells[2].Value), 2); mitens.itcValorCompra = Math.Round(Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value), 2); mitens.itcValor = Math.Round(Convert.ToDouble(dgvItens.Rows[i].Cells[4].Value), 2); DALConexao cxp = new DALConexao(DadosDaConexao.StringDeConexao); BLLProduto bllp = new BLLProduto(cx); ModeloProduto modelop = bllp.CarregaModeloProduto(Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value)); modelop.ProQtde = modelop.ProQtde + mitens.itcQtde; modelop.ProValorVenda = mitens.itcValor; modelop.ProValorPago = mitens.itcValorCompra; bllp.Alterar(modelop); bitens.Incluir(mitens); } } MessageBox.Show("Entrada de Mercadoria", "Informação da entrada", MessageBoxButtons.OK, MessageBoxIcon.Information); this.LimpaTela(); this.alteraBotoes(1); cx.TerminarTransacao(); cx.Desconectar(); } catch (Exception erro) { MessageBox.Show(erro.Message); cx.CancelarTransacao(); cx.Desconectar(); } }
private void button2_Click(object sender, EventArgs e) { try { ModeloCompra modelo = new ModeloCompra(); modelo.Com_data = dateCompra.Value; modelo.Com_nfiscal = Convert.ToInt32(txtNotaFiscal.Text); modelo.Com_nparcelas = Convert.ToInt32(cbParcelas.Text); modelo.Com_status = "EFE"; modelo.For_cod = Convert.ToInt32(textBox2.Text); modelo.Tpa_cod = Convert.ToInt32(cbPagamento.SelectedValue); modelo.Com_total = Convert.ToDouble(txtTotal.Text); DALConexao conexao = new DALConexao(DadosDaConexao.StringDeConexao); BLLCompra compra = new BLLCompra(conexao); ModeloItensCompra itensCompra = new ModeloItensCompra(); BLLItensCompra dao = new BLLItensCompra(conexao); ModeloParcelasCompra parcelasCompra = new ModeloParcelasCompra(); BLLParcelasCompra daoParcelas = new BLLParcelasCompra(conexao); if (operacao == "inserir") { //cadastrar uma compra compra.Incluir(modelo); // cadastrar os itens da compra for (int i = 0; i < GridItens.RowCount; i++) { itensCompra.Itc_cod = i + 1; itensCompra.Com_cod = modelo.Com_cod; itensCompra.Pro_cod = Convert.ToInt32(GridItens.Rows[i].Cells[0].Value); itensCompra.Itc_qtde = Convert.ToInt32(GridItens.Rows[i].Cells[2].Value); itensCompra.Itc_valor = Convert.ToInt32(GridItens.Rows[i].Cells[3].Value); dao.Inserir(itensCompra); } //cadastrar as parcelas for (int i = 0; i < GridParcelas.RowCount; i++) { parcelasCompra.Com_cod = modelo.Com_cod; parcelasCompra.Pco_cod = Convert.ToInt32(GridParcelas.Rows[i].Cells[0].Value); parcelasCompra.Pco_valor = Convert.ToDouble(GridParcelas.Rows[i].Cells[1].Value); parcelasCompra.Pco_datavecto = Convert.ToDateTime(GridParcelas.Rows[i].Cells[2].Value); daoParcelas.Incluir(parcelasCompra); } MetroFramework.MetroMessageBox.Show(this, "Compra efetuada com sucesso", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { compra.Alterar(modelo); } } catch (Exception ex) { throw new Exception(ex.Message); } }
private void btExcluir_Click(object sender, EventArgs e) { try { DialogResult d = MessageBox.Show("Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo); if (d.ToString() == "Yes") { int codigo = Convert.ToInt32(txtComCod.Text); int qtde = Convert.ToInt32(cbNParcelas.Text); //conexao e bll da compra DAOConexao cx = new DAOConexao(DAOBanco.StringDeConexao); BLLCompra bblc = new BLLCompra(cx); //determina a quantidade de parcelas pagas qtde -= bblc.QtdeParcelasNaoPagas(codigo); if (qtde == 0)//parcela foi paga { cx.Conectar(); cx.IniciarTransacao(); try { //exlcuir as parcelas da compra BLLParcelasCompra bllp = new BLLParcelasCompra(cx); bllp.ExcluirTodasParcelas(codigo); //excluir itens da compra BLLItensCompra blli = new BLLItensCompra(cx); blli.ExcluirTodosItens(codigo); //excluir compra bblc.Excluir(codigo); MessageBox.Show("Registro excluído."); cx.TerminarTransacao(); cx.Desconectar(); this.LimpaTela(); this.alteraBotoes(1); } catch (Exception erro) { MessageBox.Show(erro.Message); cx.CancelarTransacao(); cx.Desconectar(); } } else { MessageBox.Show("Impossível excluir o registro. \n Registro possui parcelas pagas."); } } } catch { MessageBox.Show("Impossível excluir o registro. \n O registro está sendo utilizado em outro local."); this.alteraBotoes(3); } }
//------------------------------------------------------------------------------------------------------------------- private void btLocalizar_Click(object sender, EventArgs e) { try { frmConsultaCompra fc = new frmConsultaCompra(); fc.ShowDialog(); if (fc.codigo != -1) { this.operacao = "alteracao"; BLLCompra bll = new BLLCompra(); ModeloCompra modelo = bll.carregaModelo(fc.codigo); txtComCod.Text = modelo.com_cod.ToString(); txtNFiscal.Text = modelo.com_nfiscal.ToString(); txtForCod.Text = modelo.for_cod.ToString(); dtVenda.Value = modelo.com_data; txtTotal.Text = modelo.com_pagto_total.ToString(); nupParcelas.Value = modelo.com_nparcela; cbTipoPagamento.SelectedValue = modelo.tpa_cod; if (modelo.com_status == 2) { MessageBox.Show("Esta compra foi cancelada", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } this.txtCliCod_Leave(sender, e); //carrega os itens dgvItens.Rows.Clear(); BLLItensCompra it = new BLLItensCompra(); DataTable itens = it.ListagemComFiltro(modelo.com_cod); for (int i = 0; i < itens.Rows.Count; i++) { try { //gambi ModeloProduto p = new ModeloProduto(); BLLProduto bllp = new BLLProduto(); p = bllp.carregaModelo(Convert.ToInt32(itens.Rows[i]["pro_cod"])); double total = Convert.ToDouble(itens.Rows[i]["itc_valor"]) * Convert.ToDouble(itens.Rows[i]["itc_qtde"]); String[] k = new String[] { itens.Rows[i]["pro_cod"].ToString(), p.pro_nome, itens.Rows[i]["itc_qtde"].ToString(), itens.Rows[i]["itc_valor"].ToString(), total.ToString() }; this.dgvItens.Rows.Add(k); } catch (Exception error) { MessageBox.Show(error.Message); } } this.alteraBotoes(3); } else { this.alteraBotoes(1); } fc.Dispose(); }catch (Exception error) { MessageBox.Show(error.Message); } }
private void ItensCompra() { if (dgvCompras.RowCount > 0) { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexão); BLLItensCompra ibll = new BLLItensCompra(cx); dgvItens.DataSource = ibll.Localizar(Convert.ToInt32(dgvCompras.CurrentRow.Cells["CODIGO"].Value)); FormatarValoresCores(2); } }
private void btExcluir_Click(object sender, EventArgs e) { try { DialogResult d = MessageBox.Show("Deseja excluir o Registro?", "Aviso", MessageBoxButtons.YesNo); if (d.ToString() == "Yes") { int codigo = Convert.ToInt32(txtCodCom.Text); int qtde = Convert.ToInt32(cbNParcelas.Text); //conexao e bll da compra DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); BLLCompra bllc = new BLLCompra(cx); qtde -= bllc.QuantidadeParcelasNaoPagas(codigo); if (qtde == 0)//nao paguei nenhuma parcela { cx.Conectar(); cx.IniciarTransacao(); try { //excluir as parcelas da compra BLLParcelaCompra bllp = new BLLParcelaCompra(cx); bllp.ExcluirTodasAsParcelas(codigo); //excluir os itens da compra BLLItensCompra blli = new BLLItensCompra(cx); blli.ExcluirTodosOsItens(codigo); //excluir a compra bllc.Excluir(codigo); cx.TerminarTransacao(); cx.Desconectar(); this.LimpaTela(); this.alteraBotoes(1); } catch (Exception erro) { MessageBox.Show(erro.Message); cx.CancelaTransacao(); cx.Desconectar(); } } else { MessageBox.Show("Impossivel excluir o registro. \n O registro possui parcelas pagas"); } } } catch { MessageBox.Show("Impossivel excluir o registro. \n O registro esta sendo usado em outro local"); this.alteraBotoes(3); } }
private void GridCompra2_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { //itens da compra DALConexao conexao = new DALConexao(DadosDaConexao.StringDeConexao); BLLItensCompra compra = new BLLItensCompra(conexao); GridItens.DataSource = compra.Localizar(Convert.ToInt32(GridCompra2.Rows[e.RowIndex].Cells[0].Value)); //parcela da compra BLLParcelasCompra parcela = new BLLParcelasCompra(conexao); GridParcela2.DataSource = parcela.Localizar(Convert.ToInt32(GridCompra2.Rows[e.RowIndex].Cells[0].Value)); } }
private void dgvDados_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //itens da compra BLLItensCompra bllItens = new BLLItensCompra(cx); dgvItens.DataSource = bllItens.Localizar(Convert.ToInt32(dgvDados.Rows[e.RowIndex].Cells[0].Value)); //parcelas da compra BLLParcelasCompra bllParcelas = new BLLParcelasCompra(cx); dgvParcelas.DataSource = bllParcelas.Localizar(Convert.ToInt32(dgvDados.Rows[e.RowIndex].Cells[0].Value)); alteraCabecalhoItensParcelas(); } }
private void CarregaItensCompra() { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexão); BLLItensCompra bllItens = new BLLItensCompra(cx); DataTable tabela = bllItens.Localizar(codigo); for (int i = 0; i < tabela.Rows.Count; i++) { Double totalLocal = Convert.ToDouble(tabela.Rows[i]["QUANTIDADE"]) * Convert.ToDouble(tabela.Rows[i]["VALOR_UNITARIO"]); string icod = tabela.Rows[i]["CODIGO_PRODUTO"].ToString(); string inome = tabela.Rows[i]["NOME_PRODUTO"].ToString(); string iqtde = tabela.Rows[i]["QUANTIDADE"].ToString(); Double ivalor = Convert.ToDouble(tabela.Rows[i]["VALOR_UNITARIO"]); String[] it = new String[] { icod, inome, iqtde, ivalor.ToString("#.00"), totalLocal.ToString("#.00") }; dgvItensCompra.Rows.Add(it); } }
private void btLocalizar_Click(object sender, EventArgs e) { frmConsultaCompra f = new frmConsultaCompra(); f.ShowDialog(); if (f.codigo != 0) { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); BLLCompra bll = new BLLCompra(cx); ModeloCompra modelo = bll.CarregaModeloCompra(f.codigo); txtCodCom.Text = modelo.ComCod.ToString(); txtNFiscal.Text = modelo.ComNFiscal.ToString(); dtDataCompra.Value = modelo.ComData; txtForCod.Text = modelo.ForCod.ToString(); txtForCod_Leave(sender, e); // para escrever o nome do fornecedor na tela txtTotal.Text = modelo.ComTotal.ToString(); this.totalCompra = modelo.ComTotal; //armazena o valor total da compra cbTPagto.SelectedValue = modelo.TpaCod; cbNParcelas.Text = modelo.ComNParcelas.ToString(); //itens da compra BLLItensCompra bllitens = new BLLItensCompra(cx); DataTable tabela = bllitens.Localizar(modelo.ComCod); for (int i = 0; i < tabela.Rows.Count; i++) { string icod = tabela.Rows[i]["pro_cod"].ToString(); string inome = tabela.Rows[i]["pro_nome"].ToString(); string iqtd = tabela.Rows[i]["itc_qtde"].ToString(); string ivu = tabela.Rows[i]["itc_valor"].ToString(); Double TotalLocal = Convert.ToDouble(tabela.Rows[i]["itc_qtde"]) * Convert.ToDouble(tabela.Rows[i]["itc_valor"]); String[] it = new String[] { icod, inome, iqtd, ivu, TotalLocal.ToString() }; this.dgvItens.Rows.Add(it); } alteraBotoes(3); } else { this.LimpaTela(); this.alteraBotoes(1); } f.Dispose(); }
private void btnSalvarPagamento_Click(object sender, EventArgs e) { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexão); cx.Conectar(); cx.IniciaTransacao(); try { //Leitura de dados ModeloCompra modeloCompra = new ModeloCompra() { com_data = DateTime.Now, com_nfiscal = Convert.ToInt32(txtNFiscal.Text), com_total = Convert.ToDouble(lblTotalCompra.Text), com_nparcelas = Convert.ToInt32(nudNumeroParcelas.Text), for_cod = Convert.ToInt32(cbxFornecedor.SelectedValue), tpa_cod = Convert.ToInt32(cbxTipoPagamento.SelectedValue) }; //Objeto para gravar dados no banco BLLCompra bll = new BLLCompra(cx); //Cria o objeto Itens ModeloItensCompra mItens = new ModeloItensCompra(); BLLItensCompra bItens = new BLLItensCompra(cx); //Cria o objeto parcelas ModeloParcelasCompra mParcelas = new ModeloParcelasCompra(); BLLParcelasCompra bParcelas = new BLLParcelasCompra(cx); if (txtCodigo.Text == "") { bll.Inserir(modeloCompra); CadastrarItensCompra(mItens, modeloCompra, bItens, mParcelas, bParcelas); Mensagem("COMPRA EFETUADA: CÓDIGO: " + modeloCompra.com_cod.ToString(), Color.Blue); } else { modeloCompra.com_cod = Convert.ToInt32(txtCodigo.Text); bll.Alterar(modeloCompra); CadastrarItensCompra(mItens, modeloCompra, bItens, mParcelas, bParcelas); Mensagem("COMPRA ALTERADA ", Color.Blue); } LimpaTela(); alteraBotoes(); pnFinalizaCompra.Visible = false; cx.FinalizaTransacao(); } catch (Exception erro) { cx.CancelaTransacao(); if (erro.Message == "An invalid parameter or option was specified for procedure 'parcelas'.") { Erro("parcelas"); } else { Erro(erro.Message); } } finally { cx.Desconectar(); } }
//------------------------------------------------------------------------------------------------------------------- private void btSalvarParcela_Click(object sender, EventArgs e) { //criei a conexao SqlConnection cn = new SqlConnection(); cn.ConnectionString = DALDadosDoBanco.stringDeConexao; cn.Open(); //triar a transacao SqlTransaction tran = cn.BeginTransaction(); try { if (this.operacao == "inserir") { ModeloCompra compra = new ModeloCompra(); compra.com_nfiscal = Convert.ToInt32(txtNFiscal.Text); compra.for_cod = Convert.ToInt32(txtForCod.Text); compra.com_data = dtVenda.Value; compra.com_pagto_data = dtParcela.Value; if ((cbTipoPagamento.Text == "DINHEIRO") || (cbTipoPagamento.Text == "Dinheiro")) { compra.com_pagto_dinheiro = Convert.ToDouble(txtTotal.Text); } if ((cbTipoPagamento.Text == "CARTAO") || (cbTipoPagamento.Text == "CARTÃO") || (cbTipoPagamento.Text == "Cartão") || (cbTipoPagamento.Text == "Cartao")) { compra.com_pagto_cartao = Convert.ToDouble(txtTotal.Text); } compra.com_data = dtVenda.Value; compra.tpa_cod = Convert.ToInt32(cbTipoPagamento.SelectedValue); compra.com_nparcela = Convert.ToInt32(nupParcelas.Value); compra.com_status = 1; compra.com_pagto_total = Convert.ToDouble(txtTotal.Text); //inserindo a venda BLLCompra BLLcompra = new BLLCompra(); //BLLcompra.incluir(compra); BLLcompra.Incluir(compra, cn, tran); //inserir os itens ModeloItensCompra item = new ModeloItensCompra(); BLLItensCompra BllItem = new BLLItensCompra(); for (int i = 0; i < dgvItens.RowCount; i++) { item.itc_cod = i + 1; item.pro_cod = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value); item.com_cod = Convert.ToInt32(compra.com_cod); item.itc_qtde = Convert.ToInt32(dgvItens.Rows[i].Cells[2].Value); item.itc_valor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value); //BllItem.incluir(item); BllItem.Incluir(item, cn, tran); } ModeloParcelascompra pc = new ModeloParcelascompra(); BLLParcelasCompra bllpc = new BLLParcelasCompra(); for (int i = 0; i < dgvParcelas.RowCount; i++) { pc.pco_cod = i + 1; pc.com_cod = compra.com_cod; pc.pco_valor = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value); pc.pco_datavecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value); //bllpv.incluir(pv); bllpc.Incluir(pc, cn, tran); } tran.Commit(); MessageBox.Show("Registro incluido com sucesso \n Código Gerado: " + compra.com_cod, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception erro) { tran.Rollback(); MessageBox.Show(erro.Message); } finally { cn.Close(); } this.LimpaTela(); this.alteraBotoes(1); pnFinalizaVenda.Visible = false; }
private void CadastrarItensCompra(ModeloItensCompra mItens, ModeloCompra modeloCompra, BLLItensCompra bItens, ModeloParcelasCompra mParcelas, BLLParcelasCompra bParcelas) { DataRow linha; //Cadastrar os itens da compra for (int i = 0; i < dgvItensCompra.RowCount; i++) { linha = mItens.itenscompra.NewRow(); linha["itc_qtde"] = Convert.ToInt32(dgvItensCompra.Rows[i].Cells[2].Value); linha["itc_valor"] = Convert.ToDouble(dgvItensCompra.Rows[i].Cells[3].Value); linha["com_cod"] = Convert.ToInt32(modeloCompra.com_cod); linha["pro_cod"] = Convert.ToInt32(dgvItensCompra.Rows[i].Cells[0].Value); mItens.itenscompra.Rows.Add(linha); } bItens.ItensCadastrarAtualizar(mItens); linha = null; //Cadastrar as parcelas da compra for (int i = 0; i < dgvParcelas.RowCount; i++) { linha = mParcelas.parcelascompra.NewRow(); linha["pco_valor"] = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value); linha["pco_parcela"] = dgvParcelas.Rows[i].Cells[0].Value.ToString(); linha["pco_datavecto"] = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value); linha["com_cod"] = Convert.ToInt32(modeloCompra.com_cod); mParcelas.parcelascompra.Rows.Add(linha); } bParcelas.ParcelaCadastraAtualiza(mParcelas); }
private void btSalvarParcelas_Click(object sender, EventArgs e) { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); cx.Conectar(); cx.IniciarTransacao(); try { ModeloCompra modeloCompra = new ModeloCompra(); modeloCompra.ComData = dtDataCompra.Value; modeloCompra.ComNFiscal = Convert.ToInt32(txtNFiscal.Text); modeloCompra.ComNParcelas = Convert.ToInt32(cbNParcelas.Text); modeloCompra.ComStatus = "ativo"; modeloCompra.ComTotal = this.totalCompra; modeloCompra.ForCod = Convert.ToInt32(txtForCod.Text); modeloCompra.TpaCod = Convert.ToInt32(cbTPagto.SelectedValue); BLLCompra bll = new BLLCompra(cx); ModeloItensCompra mitens = new ModeloItensCompra(); BLLItensCompra bitens = new BLLItensCompra(cx); ModeloParcelaCompra mparcelas = new ModeloParcelaCompra(); BLLParcelaCompra bparcelas = new BLLParcelaCompra(cx); if (this.operacao == "inserir") { //cadastrar compra bll.Incluir(modeloCompra); //cadastrar itens das compras for (int i = 0; i < dgvItens.RowCount; i++) { mitens.ItcCod = i + 1; mitens.ComCod = modeloCompra.ComCod; mitens.ProCod = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value); mitens.ItcQtde = Convert.ToInt32(dgvItens.Rows[i].Cells[2].Value); mitens.ItcValor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value); bitens.Incluir(mitens); //trigger para alterar estoque foi feito no sqlserver } //inserir os itens na tabela parcelascompra for (int i = 0; i < dgvParcelas.RowCount; i++) { mparcelas.ComCod = modeloCompra.ComCod; mparcelas.PcoCod = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value); mparcelas.PcoValor = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value); mparcelas.PcoDataVecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value); bparcelas.Incluir(mparcelas); } //cadastrar parcelas da compra MessageBox.Show("Compra efetuada: Código " + modeloCompra.ComCod.ToString()); } else { //alterar modeloCompra.ComCod = Convert.ToInt32(txtCodCom.Text); bll.Alterar(modeloCompra); bitens.ExcluirTodosOsItens(modeloCompra.ComCod); //cadastrar itens das compras for (int i = 0; i < dgvParcelas.RowCount; i++) { mparcelas.ComCod = modeloCompra.ComCod; mparcelas.PcoCod = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value); mparcelas.PcoValor = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value); mparcelas.PcoDataVecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value); bparcelas.Incluir(mparcelas); } bparcelas.ExcluirTodasAsParcelas(modeloCompra.ComCod); //inserir os itens na tabela parcelascompra for (int i = 0; i < dgvParcelas.RowCount; i++) { mparcelas.ComCod = modeloCompra.ComCod; mparcelas.PcoCod = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value); mparcelas.PcoValor = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value); mparcelas.PcoDataVecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value); bparcelas.Incluir(mparcelas); } MessageBox.Show("Cadastro alterado! "); } this.LimpaTela(); pnFinalizaCompra.Visible = false; this.alteraBotoes(1); cx.TerminarTransacao(); cx.Desconectar(); } catch (Exception erro) { MessageBox.Show(erro.Message); cx.CancelaTransacao(); cx.Desconectar(); } }
//============================================================================================================= private void btExcluir_Click(object sender, EventArgs e) // https://youtu.be/U_JhTWIVRro?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA { //tem que excluir os itens relacionados em todas as tabelas em um sequencia logica: //tem que excluir na sequencia inversa em que se gravou a compra //----------------------------------------------------------------------------------------------------------------------- //CONEXAO: //----------------------------------------------------------------------------------------------------------------------- DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //Recebe a string da conexão da classe DadosDaConexão try //CONEXAO: { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: INCIAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cx.Conectar(); //CONECTAR NO BANCO - para poder usar a transação, tem que ser usado aénas uma conexao, antes cada tabela teinha seu conetar cx.IniciarTransacao(); //inicia transação no banco SQL - Feito para acoes que envolvem mais de uma tabela https://youtu.be/fA_T1ywEXqw //Validar, excluir compra se ja tiver sido efetuado alguma pagamento: try { DialogResult d = MessageBox.Show("Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo);//confirmar antes de excluir //caso responder sim... if (d.ToString() == "Yes") { //pega o codigo da compra: int CodigoCompra = Convert.ToInt32(txtComCod.Text); //criar objetos BLL: BLLParcelasCompra bllPar = new BLLParcelasCompra(cx); BLLItensCompra bllITen = new BLLItensCompra(cx); BLLCompra bllCP = new BLLCompra(cx); //passa a string de conexao //verificar se tem parcelas pagas: int Qtde = bllCP.QuantidadeParcePagas(CodigoCompra); if (Qtde > 0) //se tiver parcelas pagas { DialogResult g = MessageBox.Show("Esta Compra possui Parcelas Pagas Deseja! \n Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo); //confirmar antes de excluir //caso responder sim... if (g.ToString() == "No") { //cancela esta ação: cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco cx.Desconectar(); //desconetar do banco return; } } //--------------------------------------------------------------------------------------------------------------------------- //03 - Excluir as parcelas da compra: //--------------------------------------------------------------------------------------------------------------------------- bllPar.ExcluirTodasAsParcelas(CodigoCompra); //--------------------------------------------------------------------------------------------------------------------------- //02 - Excluir itens da compra: //--------------------------------------------------------------------------------------------------------------------------- bllITen.ExcluirTodosOsItens(CodigoCompra); //--------------------------------------------------------------------------------------------------------------------------- //01 - Excluir compra: //--------------------------------------------------------------------------------------------------------------------------- bllCP.Excluir(Convert.ToInt32(txtComCod.Text));//retorna erro se este codigo ja estiver sendo utilizado como chave em outra tabela //Mensagem de sucesso: MessageBox.Show("Cadastro excluido com sucesso!"); } } catch // sem o Exception, qualquer tipo de erro { MessageBox.Show("Impossível excluir o registro. \n O registro esta sendo utilizado em outro local."); this.alteraBotoes(3); cx.CancelarTransacao(); //caso de erro desfaz todas as ações cx.Desconectar(); //desconetar do banco } this.LimpaTela(); this.alteraBotoes(1); //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: TERMINAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //so vai gravar, se for nas tres tabelas cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco cx.Desconectar(); //desconetar do banco } catch (Exception erro) // caso der algum erro...(não limpa a tela) { MessageBox.Show("Erro ao gravar dados da Compra : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario cx.CancelarTransacao(); //caso de erro desfaz todas as ações cx.Desconectar(); //desconetar do banco } }
//============================================================================================================= private void btLocalizar_Click(object sender, EventArgs e) { //exiber o formulario de consulta compra: frmConsultaCompra f = new frmConsultaCompra(); f.ShowDialog(); //verificar se tem um codigo carregado:{diferente de zero} if (f.codigo != 0) { DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); BLLCompra bll = new BLLCompra(cx); ModeloCompra modelo = bll.CarregaModeloCompra(f.codigo);//carrega o modelo da comprea pelo codigo //-------------------------------------------------------------------------------------------------------- // CARREGAR OS DADOS DA COMPRA //-------------------------------------------------------------------------------------------------------- txtComCod.Text = modelo.ComCod.ToString(); txtNFiscal.Text = modelo.ComNfiscal.ToString(); dtDataCompra.Value = modelo.ComData; txtForCod.Text = modelo.ForCod.ToString(); txtForCod_Leave(sender, e);//evento escrever o nome do fornecedor //rodapé: cbNParcela.Text = modelo.ComNparcelas.ToString(); txtTotalCompra.Text = modelo.ComValorTotal.ToString(); //VALOR TOTAL this.totalCompra = modelo.ComValorTotal; //armazena o total na variavel //fazer um LOCALIZAR - select para trazer o numero de parcela //fazer um LOCALIZAR - select para trazer a data da primeira parcela //TIPO DE PAGAMENTO. cbTPagto.SelectedValue = modelo.TpaCod; //carregar itens da compra: https://youtu.be/rMOyapoHTx0?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=204 BLLItensCompra bLLIt = new BLLItensCompra(cx); DataTable tabelaIt = bLLIt.Localizar(modelo.ComCod); //passa os itens da compra para uma tabela: for (int i = 0; i < tabelaIt.Rows.Count; i++) //enquanto i for menos que o numero de linhas retornodo { //pega os valores: cada loop vai para a prox. linha = i string icod = tabelaIt.Rows[i]["pro_cod"].ToString(); string inome = tabelaIt.Rows[i]["pro_nome"].ToString(); string iqtd = tabelaIt.Rows[i]["itc_qtde"].ToString(); string ivund = tabelaIt.Rows[i]["itc_valor"].ToString(); //calcula o valor total de cada intem: Double TotalLocalx = Convert.ToDouble(tabelaIt.Rows[i]["itc_qtde"]) * Convert.ToDouble(tabelaIt.Rows[i]["itc_valor"]); //monta uma matriz da linha com os calores de cada coluna: String[] iten = new String[] { icod, inome, iqtd, ivund, txtTotalCompra.Text, TotalLocalx.ToString() }; this.dgvItens.Rows.Add(iten);//adicoina os itens da linha no datagrdi... } alteraBotoes(3); } else { this.LimpaTela(); this.alteraBotoes(1); } //destroi o obejto f.Dispose(); }
//Salvar compra: //Vai movimentar dados nas 4 tabelas: //select* from compra //select* from itenscompra //select* from parcelascompra //select* from produto -- atualiza Qtd. através de um tigger private void btSalvarCompra_Click(object sender, EventArgs e) { //----------------------------------------------------------------------------------------------------------------------- //CONEXAO: //----------------------------------------------------------------------------------------------------------------------- //Conexão - obj para gravar os dados no banco DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); //Recebe a string da conexão da classe DadosDaConexão try // conexao: { //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: INCIAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cx.Conectar(); //CONECTAR NO BANCO - para poder usar a transação, tem que ser usado aénas uma conexao, antes cada tabela teinha seu conetar cx.IniciarTransacao(); //inicia transação no banco SQL - Feito para acoes que envolvem mais de uma tabela https://youtu.be/fA_T1ywEXqw //----------------------------------------------------------------------------------------------------------------------- //SALVAMENTO PROCESSO DA COMPRA: //----------------------------------------------------------------------------------------------------------------------- try //tratamento de erro { //------------------------------------------------------------------------------------------------------------ //01 - COMPRA: //------------------------------------------------------------------------------------------------------------ //criar o modelo compra: ModeloCompra modeloCompra = new ModeloCompra();//cria uma objeto que representa os dados da tabela catagoria //Criar um BLL DA COMPRA BLLCompra bll = new BLLCompra(cx); //Carregar os campos da compra: modeloCompra.ComData = dtDataCompra.Value; modeloCompra.ComNfiscal = Convert.ToInt32(txtNFiscal.Text); modeloCompra.ComNparcelas = Convert.ToInt32(cbNParcela.Text); modeloCompra.ComStatus = "ativa";//pode controlar como pedito, e ainda nao finalizou a compra.. ver!! modeloCompra.ComValorTotal = Convert.ToDouble(txtTotalCompra.Text); modeloCompra.ForCod = Convert.ToInt32(txtForCod.Text); modeloCompra.TpaCod = Convert.ToInt32(cbTPagto.SelectedValue); //------------------------------------------------------------------------------------------------------------ // 02 - ITENS DA COMPRA: //------------------------------------------------------------------------------------------------------------ //criar o modelo itens compra: ModeloItensCompra ModItens = new ModeloItensCompra(); //Criar um BLL Itens BLLItensCompra bllItensc = new BLLItensCompra(cx); //------------------------------------------------------------------------------------------------------------ // 03 - PARCELAS COMPRA: //------------------------------------------------------------------------------------------------------------ //criar o modelo itens compra: https://youtu.be/oP5-jHpOhwE?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=255 ModeloParcelasCompra ModParcelas = new ModeloParcelasCompra(); //Criar um BLL Itens BLLParcelasCompra bllParcelas = new BLLParcelasCompra(cx); //------------------------------------------------------------------------------------------------------------ //verificar qual o tipo de operação que vai executar ao gravar if (this.operacao == "inserir")//valida se é um inserção, verificar o valor da variavel operação { //------------------------------------------------------------------------------------------------------------ //01 - cadastrar onformações da Compra - ok //------------------------------------------------------------------------------------------------------------ bll.Incluir(modeloCompra);//passa o nome para o metodo incluir // https://youtu.be/C6qCveils_o?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=1078 //------------------------------------------------------------------------------------------------------------ //02 - cadastrar os intens da compra //------------------------------------------------------------------------------------------------------------ for (int i = 0; i < dgvItens.RowCount; i++)//pelo numero de linhas de itens //https://youtu.be/TJ_jhtk1yN8?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=395 { //Carregar os campos dos iten compra https://youtu.be/NStzTZnp4nU?t=168 ModItens.ItcCod = i + 1; ModItens.ComCod = modeloCompra.ComCod;//retorna do Dall ModItens.ProCod = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value); ModItens.ItcQtde = Convert.ToDouble(dgvItens.Rows[i].Cells[2].Value); ModItens.ItcValor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value); //incluir itens da compra: bllItensc.Incluir(ModItens); //atualizar a qtd de produtos na tabela de produtos VIA SQL // https://youtu.be/NStzTZnp4nU + https://youtu.be/yhWGaBku24U?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=405 //trigger:gatilho no Banco, tabela itenscompra Nome: tgiIncrementarEstoqueProduto } //------------------------------------------------------------------------------------------------------------ //03 - cadastrar as parcelas da compra https://youtu.be/oP5-jHpOhwE?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=264 //------------------------------------------------------------------------------------------------------------ for (int i = 0; i < dgvParcelas.RowCount; i++)//pelo numero de linhas das parcelas { //Carregar os campos da parcelas ModParcelas.ComCod = modeloCompra.ComCod; ModParcelas.PcoCod = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value); ModParcelas.PcoValor = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value); ModParcelas.PcoDatavecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value); //incluir parcelas: bllParcelas.Incluir(ModParcelas); } //MENSAGEM DE SUCESSO: MessageBox.Show("Compra efetuada: Código " + modeloCompra.ComCod.ToString());//retorna a mensagem como o codigo do item que foi gerado } else //alterar uma Compra { //------------------------------------------------------------------------------------------------------------ //Alterar compra //------------------------------------------------------------------------------------------------------------ modeloCompra.ComCod = Convert.ToInt32(txtComCod.Text); //alterar a Compra correspondente ao codigo exixtente na tela bll.Alterar(modeloCompra); //alterar conforme codigo da compra na tela //------------------------------------------------------------------------------------------------------------ //Alterar os intens da compa //------------------------------------------------------------------------------------------------------------ bllItensc.ExcluirTodosOsItens(modeloCompra.ComCod); //excluir todos os itens for (int i = 0; i < dgvItens.RowCount; i++) //cadastra novamente as parcelas { //inserir os itens da compra na tabela https://youtu.be/NStzTZnp4nU?t=168 ModItens.ItcCod = i + 1; ModItens.ComCod = modeloCompra.ComCod;//retorna do Dall ModItens.ProCod = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value); ModItens.ItcQtde = Convert.ToDouble(dgvItens.Rows[i].Cells[2].Value); ModItens.ItcValor = Convert.ToDouble(dgvItens.Rows[i].Cells[3].Value); //incluir dados: bllItensc.Incluir(ModItens); //atualizar a qtd de produtos na tabela de produtos VIA SQL // https://youtu.be/NStzTZnp4nU + https://youtu.be/yhWGaBku24U?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=405 //trigger:gatilho no Banco, tabela itenscompra Nome: tgiIncrementarEstoqueProduto } //------------------------------------------------------------------------------------------------------------ //Alterar as parcelas da compra https://youtu.be/oP5-jHpOhwE?list=PLfvOpw8k80Wqj1a66Qsjh8jj4hlkzKSjA&t=264 //------------------------------------------------------------------------------------------------------------ bllParcelas.ExcluirTodasAsParcelas(modeloCompra.ComCod); //excluir todos as parcelas for (int i = 0; i < dgvParcelas.RowCount; i++) //cadastra novamente as parcelas { ModParcelas.ComCod = modeloCompra.ComCod; ModParcelas.PcoCod = Convert.ToInt32(dgvParcelas.Rows[i].Cells[0].Value); ModParcelas.PcoValor = Convert.ToDouble(dgvParcelas.Rows[i].Cells[1].Value); ModParcelas.PcoDatavecto = Convert.ToDateTime(dgvParcelas.Rows[i].Cells[2].Value); //incluir: bllParcelas.Incluir(ModParcelas); } MessageBox.Show("Cadastro alterado");//mostrar mensagem de confirmação } // limpar a tela this.LimpaTela(); //ocultar o painel de finalização: pnFinalizaCompra.Visible = false; //Mostrar dados da compra: pnDados.Visible = true; //Mostrar botoes: pnBotoes.Visible = true; this.alteraBotoes(1);//volta os botoes para o estado padrão //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //CONEXAO: TERMINAR TRANSAÇÃO //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //so vai gravar, se for nas tres tabelas cx.TerminarTransacao(); //Efetua um comit, confirmar as alterações no banco cx.Desconectar(); //desconetar do banco } catch (Exception erro) // caso der algum erro...(não limpa a tela) { MessageBox.Show("Erro ao gravar dados da Compra : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario cx.Desconectar(); //desconetar do banco } } catch (Exception erro) // casa der algum erro na conexao { MessageBox.Show("Erro ao conectar no Banco SQL : \n" + erro.Message); //retorna mensagem do sistema, melhorar mensagem para o usuario cx.CancelarTransacao(); //caso de erro desfaz todas as ações cx.Desconectar(); //desconetar do banco se der erro } }
//Evenoto click salvar private void btnSalvar_Click(object sender, EventArgs e) { if (btnSalvar.Text == "Salvar") { if (txtNotaFiscal.Text == "" || cbxQuantParcela.Text == "" || cbxStatus.Text == "" || cbxFornecedor.Text == "" || cbxTipoPagamento.Text == "") //Analisando se foi preenchido todos os dados { MessageBox.Show("Preencha todos os dados!"); } else if (DateTime.Today > dtpDataCompra.Value.Date) //Analisando se a data informada é maior ou igual a hora atual { MessageBox.Show("A Data da compra não pode ser menor que a data atual!"); } else if (dgvProduto.RowCount == 0) //Analisando se foi informado algum produto { MessageBox.Show("Adicione os produtos!", "OK"); } else { try { //Passando os dados da compra Compra.CompraData = dtpDataCompra.Value.Date; Compra.CompraNotaFiscal = txtNotaFiscal.Text; Compra.CompraValor = double.Parse(txtValor.Text); Compra.CompraParcelas = int.Parse(cbxQuantParcela.Text); Compra.CompraStatus = cbxStatus.Text; Compra.FornecedorCod = (int)cbxFornecedor.SelectedValue; Compra.TipoPagCod = (int)cbxTipoPagamento.SelectedValue; //Salnvando a compra BLLCompra.Incluir(Compra); //Pegando o id da compra salva Compra.CompraCod = int.Parse(DALCompra.PegarId()); //Criando um variavel para salvar a data da nova prestação DateTime ProximaPrestação = dtpDataCompra.Value.Date; //Criando e salvando as parcelas for (int i = 0; i < Compra.CompraParcelas; i++) { Compra.Parcelas.Add(new MParcelasCompra(double.Parse(txtValorParcela.Text), ProximaPrestação.AddMonths(i + 1), Compra.CompraCod)); //Instanciando a parcela //Salvando as Parcelas BLLParcelasCompras.Incluir(Compra.Parcelas[i]); } //Salvando os Produtos e consequentemente o item foreach (var item in Compra.Itens) { //Verificar se o produto não já existe, caso sim só será associado ao item compra if (item.Produto.CodigoProduto == 0) { //Analisando se a compra foi finalizada, pois caso seja o valor do produto será incrementado if (cbxStatus.Text != "FINALIZADA") { item.Produto.QuantProduto = 0; //Colando ele fora de Estoque, pois a compra não foi finalizada item.Produto.StatusProduto = "FORA DE ESTOQUE"; } //Chamando o metodo Incluir um produto BLLProduto.Incluir(item.Produto); } else //Significa que o produto já existe { var tabela = DALProduto.PegarDados(item.Produto.CodigoProduto); //Pegando os dados do produto já existente //Passando os dados para as variáveis int cod = int.Parse(tabela.Rows[0]["produto_cod"].ToString()); string nome = tabela.Rows[0]["produto_nome"].ToString(); string desc = item.Produto.DescricaoProduto; double valor = item.Produto.ValorVendaProduto; double quant = double.Parse(tabela.Rows[0]["produto_qtde"].ToString()); string status = item.Produto.StatusProduto; int codUni = item.Produto.CodigoUnidadeMedida; int codCat = item.Produto.CodigoCategoria; int codSub = 0; //Analisado se tem subcategoria if (tabela.Rows[0]["subCategoria_cod"].ToString() != "") { codSub = int.Parse(tabela.Rows[0]["subCategoria_cod"].ToString()); } //Analisando se a compra foi finalizada, pois caso seja o valor do produto será incrementado if (cbxStatus.Text == "FINALIZADA") { quant = quant + item.ItemCompraQuant; } else if (quant == 1) //Analizando se ainda tem produto em estoque, caso não ele terá seu status mudado { //Colando ele fora de Estoque, pois a compra não foi finalizada item.Produto.StatusProduto = "FORA DE ESTOQUE"; } //Instanciando o obj produto MProduto prodExiste = new MProduto(nome, desc, valor, quant, status, codUni, codCat, codSub); prodExiste.CodigoProduto = cod; //Pegando o id //Passando o id do produto item.Produto.CodigoProduto = cod; //Atualizando as informações BLLProduto.Alterar(prodExiste); } //Passando o id da compra item.CompraCodigo = Compra.CompraCod; //Salvando o produto na lista item BLLItensCompra.Incluir(item); } MessageBox.Show("Compra Salva Com Sucesso!"); dgvCompra.DataSource = DALCompra.CarregarGrid(); //Limpando os campos txtNotaFiscal.Clear(); txtValor.Clear(); txtValorParcela.Clear(); txtValor.Clear(); cbxQuantParcela.SelectedIndex = -1; cbxStatus.SelectedIndex = -1; cbxFornecedor.SelectedIndex = -1; cbxTipoPagamento.SelectedIndex = -1; dtpDataCompra.Value = DateTime.Today; Compra.Itens.Clear(); //Limpando os produtos CarregarGrid(); } catch (SqlException erro) { MessageBox.Show(erro.Message, "OK"); //Apagando tudo caso haja um erro DALCompra.Excluir(int.Parse(DALCompra.PegarId())); } catch (Exception erro) { MessageBox.Show(erro.Message, "OK"); //Apagando tudo caso haja um erro DALCompra.Excluir(int.Parse(DALCompra.PegarId())); } } } else { if (txtNotaFiscal.Text == "" || cbxQuantParcela.Text == "" || cbxStatus.Text == "" || cbxFornecedor.Text == "" || cbxTipoPagamento.Text == "") //Analisando se foi preenchido todos os dados { MessageBox.Show("Preencha todos os dados!"); } else if (DateTime.Today > dtpDataCompra.Value.Date) //Analisando se a data informada é maior ou igual a hora atual { MessageBox.Show("A Data da compra não pode ser menor que a data atual!"); } else if (dgvProduto.RowCount == 0) //Analisando se foi informado algum produto { MessageBox.Show("Adicione os produtos!", "OK"); } else { try { //if Compra.Itens. //Passando os dados da compra Compra.CompraCod = int.Parse(txtCodigo.Text); Compra.CompraData = dtpDataCompra.Value.Date; Compra.CompraNotaFiscal = txtNotaFiscal.Text; Compra.CompraValor = double.Parse(txtValor.Text); Compra.CompraParcelas = int.Parse(cbxQuantParcela.Text); Compra.CompraStatus = cbxStatus.Text; Compra.FornecedorCod = (int)cbxFornecedor.SelectedValue; Compra.TipoPagCod = (int)cbxTipoPagamento.SelectedValue; //Salnvando a compra BLLCompra.Alterar(Compra); MParcelasCompra parcelas = new MParcelasCompra(); parcelas.CompraCodigo = Compra.CompraCod; //Excluindo parcelas salvas BLLParcelasCompras.Excluir(parcelas); //Criando um variavel para salvar a data da nova prestação DateTime ProximaPrestação = dtpDataCompra.Value.Date; //Criando e salvando as parcelas for (int i = 0; i < int.Parse(cbxQuantParcela.Text); i++) { Compra.Parcelas.Add(new MParcelasCompra(double.Parse(txtValorParcela.Text), ProximaPrestação.AddMonths(i), Compra.CompraCod)); //Instanciando a parcela //Salvando as Parcelas BLLParcelasCompras.Incluir(Compra.Parcelas[i]); } //excluindo os itens da lista de excluidos foreach (var lista in ListaItensExcluidos) { //int teste = int.Parse(dgvProduto.CurrentRow.Cells[6].Value.ToString()); //BLLProduto.Alterar(int.Parse(dgvProduto.CurrentRow.Cells[6].Value.ToString())); BLLItensCompra.Excluir(lista); } foreach (var lista in ListaProdutosExcluidos) { BLLProduto.Alterar(lista); } //Salvando os Produtos e consequentemente o item foreach (var item in Compra.Itens) { //Analisando se a compra foi finalizada, pois caso seja o valor do produto será incrementado if (cbxStatus.Text != "FINALIZADA") { item.Produto.QuantProduto = 0; } else { item.Produto.QuantProduto = item.ItemCompraQuant; } if (item.Produto.QuantProduto == 0) { item.Produto.StatusProduto = "FORA DE ESTOQUE"; } //Chamando o metodo Alterar um produto BLLProduto.Alterar(item.Produto); //Passando o id da compra item.CompraCodigo = int.Parse(txtCodigo.Text); //Salvando o produto na lista item BLLItensCompra.Alterar(item); //Salva o produto caso durante a alteração tenha sido criado o novo produto if (item.Produto.CodigoProduto == 0) { //Analisando se a compra foi finalizada, pois caso seja o valor do produto será incrementado if (cbxStatus.Text != "FINALIZADA") { item.Produto.QuantProduto = 0; //Colando ele fora de Estoque, pois a compra não foi finalizada item.Produto.StatusProduto = "FORA DE ESTOQUE"; } //Chamando o metodo Incluir um produto BLLProduto.Incluir(item.Produto); //Passando o id da compra item.CompraCodigo = Compra.CompraCod; //Salvando o produto na lista item BLLItensCompra.Incluir(item); } else { bool verificaexistencia = true; foreach (var itensanterior in CompraAnterior.Itens) { if (itensanterior.ItemCompraCodigo == item.ItemCompraCodigo) { verificaexistencia = true; break; } else { verificaexistencia = false; } } if (verificaexistencia == false) { if (cbxStatus.Text != "FINALIZADA") { item.Produto.QuantProduto = 0; //Colando ele fora de Estoque, pois a compra não foi finalizada item.Produto.StatusProduto = "FORA DE ESTOQUE"; } //Chamando o metodo Incluir um produto BLLProduto.Incluir(item.Produto); //Passando o id da compra item.CompraCodigo = Compra.CompraCod; //Salvando o produto na lista item BLLItensCompra.Incluir(item); } } } MessageBox.Show("Compra Salva Com Sucesso!"); dgvCompra.DataSource = DALCompra.CarregarGrid(); //Limpando os campos txtNotaFiscal.Clear(); txtValor.Clear(); txtValorParcela.Clear(); txtValor.Clear(); cbxQuantParcela.SelectedIndex = -1; cbxStatus.SelectedIndex = -1; cbxFornecedor.SelectedIndex = -1; cbxTipoPagamento.SelectedIndex = -1; dtpDataCompra.Value = DateTime.Today; Compra.Itens.Clear(); //Limpando os produtos CarregarGrid(); //alterando botões btnSalvar.Text = "Salvar"; btnExcluir.Enabled = true; btnExcluirProduto.Enabled = true; btnAdicionarProduto.Enabled = true; //limpando lista ListaProdutosExcluidos.Clear(); ListaItensExcluidos.Clear(); Compra.Parcelas.Clear(); } catch (SqlException erro) { MessageBox.Show(erro.Message, "OK"); //Apagando tudo caso haja um erro DALCompra.Excluir(int.Parse(DALCompra.PegarId())); } catch (Exception erro) { MessageBox.Show(erro.Message, "OK"); //Apagando tudo caso haja um erro DALCompra.Excluir(int.Parse(DALCompra.PegarId())); } } } }