private void preencheGrid(int tpConsulta)
        {
            List <ProdModelo> prods = new List <ProdModelo>();

            table.Clear();
            if (tpConsulta == 1)
            {
                prods = EstoqueDataAcess.ConsultaEstTotal();
            }
            if (tpConsulta == 2)
            {
                prods = EstoqueDataAcess.ConsultaEstPorNome(tbox_NomeDesc.Text);
            }
            if (tpConsulta == 3)
            {
                prods = EstoqueDataAcess.ConsultaEstPorModel(Convert.ToInt32(cmb_modeloVeic.SelectedValue));
            }
            if (tpConsulta == 4)
            {
                prods = EstoqueDataAcess.ConsultaEstPorTpProd(Convert.ToInt32(cmb_tpProd.SelectedValue));
            }
            if (tpConsulta == 5)
            {
                prods = EstoqueDataAcess.ConsultaEstPorMarcaVeic(Convert.ToInt32(cmb_VeicMarca.SelectedValue));
            }

            for (int x = 0; x < prods.Count; x++)
            {
                // DataRow é o objeto para linha no Datatable
                DataRow row;
                row                     = table.NewRow(); // Adicionamos uma linha do DataTable
                row["Id"]               = prods[x].id;
                row["Código"]           = prods[x].codigo;
                row["Produto"]          = prods[x].descricao;
                row["Modelo Veículo"]   = prods[x].NomeModelo;
                row["Quantidade C"]     = prods[x].QtdeEstoqueC;
                row["Quantidade S"]     = prods[x].QtdeEstoqueS;
                row["Quantidade Total"] = prods[x].QtdeEstoque;;
                if (prods[x].DataUltComp != null)
                {
                    row["Última Entrada"] = prods[x].DataUltComp;
                }
                table.Rows.Add(row);             // No final adicionamos a linha no Datatable.
            }
            DataView view = new DataView(table); // O View recebe o Datatable Preenchido

            dataGridViewEstoque.DataSource            = view;
            dataGridViewEstoque.Columns["Id"].Visible = false;
            dataGridViewEstoque.MultiSelect           = false;

            dataGridViewEstoque.Columns["Produto"].DefaultCellStyle.WrapMode        = DataGridViewTriState.True;
            dataGridViewEstoque.Columns["Modelo Veículo"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            dataGridViewEstoque.AutoSizeRowsMode                = DataGridViewAutoSizeRowsMode.AllCells;
            dataGridViewEstoque.Columns["Produto"].Width        = 270;
            dataGridViewEstoque.Columns["Modelo Veículo"].Width = 200;
            dataGridViewEstoque.Columns["Código"].Width         = 60;
            dataGridViewEstoque.Columns["Quantidade Total"].DefaultCellStyle.BackColor = Color.Yellow;
            dataGridViewEstoque.Columns["Quantidade C"].DefaultCellStyle.BackColor     = Color.YellowGreen;
            dataGridViewEstoque.Columns["Quantidade S"].DefaultCellStyle.BackColor     = Color.YellowGreen;
        }
Beispiel #2
0
        private void btn_cancelar_Click(object sender, EventArgs e)
        {
            if (Convert.ToBoolean(dataGridViewVend.CurrentRow.Cells["Venda Ativa ?"].Value))
            {
                DialogResult confirm = MessageBox.Show("Deseja confirmar o cancelamento da venda ?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
                if (confirm.ToString().ToUpper() == "YES")
                {
                    VendaCancel VendaCancel = new VendaCancel();
                    if (Application.OpenForms.OfType <MotivoCancel>().Count() == 0)
                    {
                        MotivoCancel motCancel = new MotivoCancel();
                        motCancel.ShowDialog();
                        VendaCancel.motivo   = motCancel.motivo;
                        VendaCancel.id_venda = Convert.ToInt32(dataGridViewVend.CurrentRow.Cells[0].Value);
                        VendaCancel.data     = DateTime.Now.Date;

                        // busca registro de intesvenda para somar no estoque
                        List <ItensVenda> itens       = ItensVendaDataAcess.BuscaItens(Convert.ToInt32(dataGridViewVend.CurrentRow.Cells[0].Value));
                        List <Estoque>    estoqueList = new List <Estoque>();
                        foreach (ItensVenda i in itens)
                        {
                            Estoque estoque = new Estoque();
                            estoque.id_produto = i.id_produto;
                            estoque.qtde_C     = 0;
                            estoque.qtde_S     = 0;
                            if (i.C_ou_S == 'C')
                            {
                                estoque.qtde_C = i.qtde;
                            }
                            if (i.C_ou_S == 'S')
                            {
                                estoque.qtde_S = i.qtde;
                            }
                            estoqueList.Add(estoque);
                        }
                        //grava na tabela Venda_Cancel
                        bool a = VendaCancelDataAcess.Inserir(VendaCancel);
                        //atualiza regristro na tabela Venda
                        bool b = VendaDataAcess.CancelaVenda(Convert.ToInt32(dataGridViewVend.CurrentRow.Cells[0].Value));
                        //soma no estoque
                        bool c = EstoqueDataAcess.GravaEstoque(estoqueList);

                        if (a && b && c)
                        {
                            MessageBox.Show("Cancelamento realizado com sucesso ! ", "Concluído", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            preencheGridVendas(VendaDataAcess.ConsultaVenda(dataInicial.Date, dataFinal.Date));
                        }
                        else
                        {
                            MessageBox.Show("Erro ao cancelar a Venda ! ", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Essa Venda já foi Cancelada ! ", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btn_cancelar_Click(object sender, EventArgs e)
        {
            if (Convert.ToBoolean(dataGridViewEnt.CurrentRow.Cells["Entrada Ativa ?"].Value))
            {
                EntradaCancel EntCancel = new EntradaCancel();
                if (Application.OpenForms.OfType <MotivoCancel>().Count() == 0)
                {
                    MotivoCancel motCancel = new MotivoCancel();
                    motCancel.ShowDialog();
                    EntCancel.motivo     = motCancel.motivo;
                    EntCancel.id_entrada = Convert.ToInt32(dataGridViewEnt.CurrentRow.Cells[0].Value);
                    EntCancel.data       = DateTime.Now.Date;

                    // busca registro de entrada para diminuir no estoque
                    Entrada entrada = EntradaDataAcess.BuscaEntrada(Convert.ToInt32(dataGridViewEnt.CurrentRow.Cells[0].Value));


                    List <Estoque> estoque = new List <Estoque>();
                    Estoque        est     = new Estoque();
                    est.qtde_C = 0;
                    est.qtde_S = 0;
                    if (entrada.C_ou_S.Equals('S'))
                    {
                        est.qtde_S = entrada.qtde;
                    }
                    if (entrada.C_ou_S.Equals('C'))
                    {
                        est.qtde_C = entrada.qtde;
                    }
                    est.id_produto = entrada.id_produto;
                    estoque.Add(est);

                    //grava na tabela Entrada_Cancel
                    bool a = EntradaCancelDataAcess.Inserir(EntCancel);
                    //atualiza regristro na Entrada
                    bool b = EntradaDataAcess.CancelaEntrada(Convert.ToInt32(dataGridViewEnt.CurrentRow.Cells[0].Value));
                    //diminui no estoque
                    bool c = EstoqueDataAcess.DiminuiEstoque(estoque);

                    if (a && b && c)
                    {
                        MessageBox.Show("Cancelamento realizado com sucesso ! ", "Concluído", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        preencheGrid(EntradaDataAcess.ConsultaEnt(dataInicial.Date, dataFinal.Date));
                    }
                    else
                    {
                        MessageBox.Show("Erro ao cancelar a Entrada ! ", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            else
            {
                MessageBox.Show("Essa Entrada já foi Cancelada ! ", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void preencheTabela(Produto prod)
        {
            bool controle = true;

            foreach (DataRow dr in table.Rows)
            {
                if ((int)dr[0] == prod.id)
                {
                    controle = false;
                    MessageBox.Show("Esse produto já foi Inserido na Lista !", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            if (!prod.id.Equals(null) && prod.id != 0 && controle)
            {
                // DataRow é o objeto para linha no Datatable
                DataRow row;

                row                     = table.NewRow(); // Adicionamos uma linha do DataTable
                row["Id"]               = prod.id;
                row["Código"]           = prod.codigo;
                row["Descrição"]        = prod.descricao;
                row["Marca - Catálogo"] = prod.marca;
                //row["Espécie"] = prod.especie;
                row["Valor"]          = prod.valor;
                row["Qtde Estoque"]   = EstoqueDataAcess.ConsultaEstoque(prod.id).qtde;
                row["Estoque C"]      = EstoqueDataAcess.ConsultaEstoque(prod.id).qtde_C;
                row["Estoque S"]      = EstoqueDataAcess.ConsultaEstoque(prod.id).qtde_S;
                row["Quantidade"]     = 0;
                row["Preço de Custo"] = 0;
                table.Rows.Add(row); // No final adicionamos a linha no Datatable.

                // Create a DataView using the DataTable.
                DataView view = new DataView(table); // O View recebe o Datatable Preenchido
                dataGridViewProdEst.DataSource               = view;
                dataGridViewProdEst.Columns[0].Visible       = false;
                dataGridViewProdEst.Columns["Valor"].Visible = false;
                dataGridViewProdEst.Columns["Preço de Custo"].DefaultCellStyle.Format    = "N2";
                dataGridViewProdEst.Columns["Quantidade"].DefaultCellStyle.BackColor     = Color.Yellow;
                dataGridViewProdEst.Columns["Preço de Custo"].DefaultCellStyle.BackColor = Color.Yellow;
                dataGridViewProdEst.Columns["\"C\" ou \"S\""].DefaultCellStyle.BackColor = Color.Yellow;
                dataGridViewProdEst.Columns["Qtde Estoque"].DefaultCellStyle.BackColor   = Color.Green;
                dataGridViewProdEst.Columns["Preço de Custo"].DefaultCellStyle.Format    = "N2";
                dataGridViewProdEst.Columns["Quantidade"].DefaultCellStyle.Format        = "N";
                dataGridViewProdEst.MultiSelect = false;

                dataGridViewProdEst.Columns["Estoque C"].DefaultCellStyle.BackColor = Color.YellowGreen;
                dataGridViewProdEst.Columns["Estoque S"].DefaultCellStyle.BackColor = Color.YellowGreen;
                dataGridViewProdEst.ColumnHeadersDefaultCellStyle.Alignment         = DataGridViewContentAlignment.MiddleCenter;
                dataGridViewProdEst.Columns["Descrição"].DefaultCellStyle.WrapMode  = DataGridViewTriState.True;
                dataGridViewProdEst.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

                dataGridViewProdEst.Columns["Descrição"].Width = 300;
            }
        }
        private void btn_salvar_Click(object sender, EventArgs e)
        {
            DialogResult confirm = MessageBox.Show("Deseja confirmar a entrada da lista de produtos  ?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);

            if (confirm.ToString().ToUpper() == "YES")
            {
                if (valida())
                {
                    List <Entrada> prodsEntrada = new List <Entrada>();
                    List <Estoque> estoques     = new List <Estoque>();

                    DataGridViewRow linha = null;

                    for (int j = 0; j < dataGridViewProdEst.RowCount; j++)
                    {
                        linha = dataGridViewProdEst.Rows[j];
                        Entrada entrada = new Entrada();


                        if (!DBNull.Value.Equals(linha.Cells["Id"].Value))
                        {
                            entrada.id_produto = Convert.ToInt32(linha.Cells["Id"].Value);
                        }

                        if (!DBNull.Value.Equals(linha.Cells["Quantidade"].Value))
                        {
                            entrada.qtde = Convert.ToInt32(linha.Cells["Quantidade"].Value);
                        }
                        else
                        {
                            entrada.qtde = 0;
                        }
                        if (!DBNull.Value.Equals(linha.Cells["Preço de Custo"].Value))
                        {
                            entrada.valor_compra = Convert.ToDecimal(linha.Cells["Preço de Custo"].Value);
                        }
                        else
                        {
                            entrada.valor_compra = 0;
                        }
                        if (!DBNull.Value.Equals(linha.Cells["\"C\" ou \"S\""].Value))
                        {
                            entrada.C_ou_S = Convert.ToChar(Convert.ToString(linha.Cells["\"C\" ou \"S\""].Value).ToUpper());
                        }

                        entrada.ativo = true;
                        entrada.data  = DateTime.Now.Date;
                        prodsEntrada.Add(entrada);


                        Estoque estoque = new Estoque();
                        estoque.id_produto = entrada.id_produto;
                        estoque.qtde_C     = 0;
                        estoque.qtde_S     = 0;
                        if (entrada.C_ou_S == 'S')
                        {
                            estoque.qtde_S = entrada.qtde;
                        }
                        if (entrada.C_ou_S == 'C')
                        {
                            estoque.qtde_C = entrada.qtde;
                        }

                        estoques.Add(estoque);
                    }

                    //grava produtos listados na tabela entrada, com a respectiva quantidade e preco de custo
                    bool a = EntradaDataAcess.Inserir(prodsEntrada);
                    //adiciona a quantidade no estoque
                    bool b = EstoqueDataAcess.GravaEstoque(estoques);
                    if (a && b)
                    {
                        MessageBox.Show("Entrada de produtos realizada com sucesso ! ", "Concluído", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Erro ao cadastrar Produtos no estoque ! ", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    table.Clear();
                }
            }
        }
        private void btn_finalizaVenda_Click(object sender, EventArgs e)
        {
            if (dataGridViewVend.RowCount == 0)
            {
                MessageBox.Show("Adicione pelo menos um produto para realizar a venda !", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (validaQtde())
            {
                Venda venda = new Venda();
                calculaTotal();
                venda.valortotal = total;
                venda.data       = DateTime.Now.Date;
                venda.ativo      = true;
                if (cliente.id != 0)
                {
                    venda.id_cliente = cliente.id;
                }

                //grava na tabela vendas
                int idVenda = VendaDataAcess.Inserir(venda);

                if (idVenda != 0)
                {
                    List <ItensVenda> itens   = new List <ItensVenda>();
                    List <Estoque>    estoque = new List <Estoque>();
                    foreach (DataGridViewRow row in this.dataGridViewVend.Rows)
                    {
                        ItensVenda item = new ItensVenda();
                        item.id_produto  = Convert.ToInt32(row.Cells["Id"].Value);
                        item.valor_venda = Convert.ToDecimal(row.Cells["Preço de Venda"].Value);
                        item.id_venda    = idVenda;
                        item.qtde        = Convert.ToInt32(row.Cells["Quantidade"].Value);
                        item.C_ou_S      = Convert.ToChar(Convert.ToString(row.Cells["\"C\" ou \"S\""].Value).ToUpper());
                        itens.Add(item);
                        Estoque est = new Estoque();
                        est.id_produto = Convert.ToInt32(row.Cells["Id"].Value);
                        est.qtde_C     = 0;
                        est.qtde_S     = 0;
                        if (item.C_ou_S == 'C')
                        {
                            est.qtde_C = item.qtde;
                        }
                        if (item.C_ou_S == 'S')
                        {
                            est.qtde_S = item.qtde;
                        }
                        estoque.Add(est);
                    }
                    //grava itens na tabela itens venda
                    bool a = ItensVendaDataAcess.Inserir(itens);
                    //atualiza a quantidade no estoque (diminui) o estoque.
                    bool b = EstoqueDataAcess.DiminuiEstoque(estoque);
                    if (a && b) //colocar o B
                    {
                        MessageBox.Show("Venda realizada com sucesso ! ", "Concluído", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        tbox_nroVenda.Text        = idVenda.ToString();
                        btn_finalizaVenda.Enabled = false;
                    }
                    else
                    {
                        MessageBox.Show("Problema ao realizar a Venda ! ", "Atenção !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
        // o parametro cod esta relacionado com tipo de busca, ou seja, por nome, codigo, marca/modelo
        // 1 - busca por codigo / 2 - busca por nome / 3 - busca por marca/modelo
        private void preencheGrid(int cod)
        {
            // Criando um Datatable
            DataTable table = new DataTable();

            DataColumn colunaId = new DataColumn();

            colunaId.DataType   = System.Type.GetType("System.Int32");
            colunaId.ColumnName = "Id";
            table.Columns.Add(colunaId);

            DataColumn colunaCod = new DataColumn();

            colunaCod.DataType   = System.Type.GetType("System.String");
            colunaCod.ColumnName = "Código";
            table.Columns.Add(colunaCod);

            DataColumn colunaDesc = new DataColumn();

            colunaDesc.DataType   = System.Type.GetType("System.String");
            colunaDesc.ColumnName = "Descrição";
            table.Columns.Add(colunaDesc);

            DataColumn colunaMarca = new DataColumn();

            colunaMarca.DataType   = System.Type.GetType("System.String");
            colunaMarca.ColumnName = "Marca - Catálogo";
            table.Columns.Add(colunaMarca);


            DataColumn colunaValor = new DataColumn();

            colunaValor.DataType   = System.Type.GetType("System.Decimal");
            colunaValor.ColumnName = "Valor";
            table.Columns.Add(colunaValor);

            DataColumn colunaMod = new DataColumn();

            colunaMod.DataType   = System.Type.GetType("System.String");
            colunaMod.ColumnName = "Modelo Veículo";
            table.Columns.Add(colunaMod);

            DataColumn colunaEst = new DataColumn();

            colunaEst.DataType   = System.Type.GetType("System.Int32");
            colunaEst.ColumnName = "Qtde Estoque";
            table.Columns.Add(colunaEst);

            DataColumn colunaEstC = new DataColumn();

            colunaEstC.DataType   = System.Type.GetType("System.Int32");
            colunaEstC.ColumnName = "Estoque C";
            colunaEstC.ReadOnly   = true;
            table.Columns.Add(colunaEstC);

            DataColumn colunaEstS = new DataColumn();

            colunaEstS.DataType   = System.Type.GetType("System.Int32");
            colunaEstS.ColumnName = "Estoque S";
            colunaEstS.ReadOnly   = true;
            table.Columns.Add(colunaEstS);

            // DataRow é o objeto para linha no Datatable
            DataRow row;

            if (cod == 1)
            {
                ProdporModelos = ProdutoDataAcess.BuscaProdporCodigo(tbox_codigo.Text);
            }
            if (cod == 2)
            {
                ProdporModelos = ProdutoDataAcess.BuscaProdporNome(tbox_nome.Text);
            }
            // Iniciamos um For para Adicionar  itens no DataTable
            for (int i = 0; i < ProdporModelos.Count; i++)
            {
                row                     = table.NewRow(); // Adicionamos uma linha do DataTable
                row["Id"]               = ProdporModelos[i].id;
                row["Código"]           = ProdporModelos[i].codigo;
                row["Descrição"]        = ProdporModelos[i].descricao;
                row["Marca - Catálogo"] = ProdporModelos[i].marca;
                //row["Espécie"] = ProdporModelos[i].especie;
                row["Valor"]          = ProdporModelos[i].valor;
                row["Modelo Veículo"] = ProdporModelos[i].NomeModelo;
                row["Qtde Estoque"]   = EstoqueDataAcess.ConsultaEstoque(ProdporModelos[i].id).qtde;
                row["Estoque C"]      = EstoqueDataAcess.ConsultaEstoque(ProdporModelos[i].id).qtde_C;
                row["Estoque S"]      = EstoqueDataAcess.ConsultaEstoque(ProdporModelos[i].id).qtde_S;
                table.Rows.Add(row); // No final adicionamos a linha no Datatable.
            }

            // Create a DataView using the DataTable.
            DataView view = new DataView(table); // O View recebe o Datatable Preenchido

            dataGridViewSelProd.DataSource         = view;
            dataGridViewSelProd.Columns[0].Visible = false;
            dataGridViewSelProd.Columns["Valor"].DefaultCellStyle.Format           = "N2";
            dataGridViewSelProd.Columns["Qtde Estoque"].DefaultCellStyle.BackColor = Color.Green;
            dataGridViewSelProd.Columns["Estoque C"].DefaultCellStyle.BackColor    = Color.YellowGreen;
            dataGridViewSelProd.Columns["Estoque S"].DefaultCellStyle.BackColor    = Color.YellowGreen;
            dataGridViewSelProd.ColumnHeadersDefaultCellStyle.Alignment            = DataGridViewContentAlignment.MiddleCenter;
            dataGridViewSelProd.MultiSelect = false;
            dataGridViewSelProd.Columns["Modelo Veículo"].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            dataGridViewSelProd.Columns["Descrição"].DefaultCellStyle.WrapMode      = DataGridViewTriState.True;
            dataGridViewSelProd.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

            dataGridViewSelProd.Columns["Descrição"].Width      = 300;
            dataGridViewSelProd.Columns["Valor"].Width          = 70;
            dataGridViewSelProd.Columns["Modelo Veículo"].Width = 120;
        }