//Pesquisa pelo campo que estiver preenchido private void btnPesquisarNome_Click(object sender, EventArgs e) { var classeProdutos = new ClasseProdutos(); string descricao = txtpesqProdu.Text; //Se o campo Descricao estiver preenchido, pesquisa por ele if (descricao != "") { int IdProduto = classeProdutos.RetornaIdProduto(descricao); BindingSourceProdutos.DataSource = classeProdutos.RetornaDadosProduto(IdProduto); DataGridProdutos.DataSource = BindingSourceProdutos; DataGridProdutos.RowHeadersVisible = false; DataGridProdutos.AllowUserToAddRows = false; DataGridProdutos.SelectionMode = DataGridViewSelectionMode.FullRowSelect; DataGridProdutos.Columns[0].Visible = false; DataGridProdutos.Columns[1].HeaderText = "Codigo"; DataGridProdutos.Columns[2].HeaderText = "Descricao"; DataGridProdutos.Columns[3].HeaderText = "Quantidade"; DataGridProdutos.Columns[4].HeaderText = "Tipo Produto"; DataGridProdutos.Columns[5].HeaderText = "Sub Gênero"; DataGridProdutos.Columns[6].HeaderText = "Valor Unitário"; DataGridProdutos.Columns[7].HeaderText = "Disponivel Venda"; DataGridProdutos.Columns[7].Visible = false; DataGridProdutos.AutoResizeColumns( DataGridViewAutoSizeColumnsMode.DisplayedCells); DataGridProdutos.ReadOnly = true; } string codigo = txtpesqCod.Text; //Se o campo Codigo estiver preenchido, pesquisa por ele if (codigo != "") { if (!int.TryParse(codigo, out int Incorreto)) { string Retorno = "Preencha Corretamente o Codigo da Venda"; MessageBox.Show(Retorno); return; } int codigoProduto = Convert.ToInt32(codigo); int IdProduto = classeProdutos.RetornaIdProduto(codigoProduto); BindingSourceProdutos.DataSource = classeProdutos.RetornaDadosProduto(IdProduto); DataGridProdutos.DataSource = BindingSourceProdutos; DataGridProdutos.RowHeadersVisible = false; DataGridProdutos.AllowUserToAddRows = false; DataGridProdutos.SelectionMode = DataGridViewSelectionMode.FullRowSelect; DataGridProdutos.Columns[0].Visible = false; DataGridProdutos.Columns[1].HeaderText = "Codigo"; DataGridProdutos.Columns[2].HeaderText = "Descricao"; DataGridProdutos.Columns[3].HeaderText = "Quantidade"; DataGridProdutos.Columns[4].HeaderText = "Tipo Produto"; DataGridProdutos.Columns[5].HeaderText = "Sub Gênero"; DataGridProdutos.Columns[6].HeaderText = "Valor Unitário"; //DataGridProdutos.Columns[7].HeaderText = "Disponivel Venda"; DataGridProdutos.AutoResizeColumns( DataGridViewAutoSizeColumnsMode.DisplayedCells); DataGridProdutos.ReadOnly = true; } }
//Localiza o nome do produto pelo código public string LocalizarNomeProduto() { int CodigoProduto; string Retorno = ""; //Testa campo em branco if (txtCodigoVendas.Text == "") { Retorno = "Preencha o Código do Produto"; MessageBox.Show(Retorno); return(Retorno); } else { //Valida se o código possui apenas numeros if (!int.TryParse(txtCodigoVendas.Text, out CodigoProduto)) { Retorno = "O Código Deve Possuir Apenas Números"; MessageBox.Show(Retorno); return(Retorno); } else { //Se apenas possui números, converte pra int CodigoProduto = Convert.ToInt32(txtCodigoVendas.Text); int IdProduto = classeProdutos.RetornaIdProduto(CodigoProduto); string DescricaoProduto = classeProdutos.RetornaDescricaoProduto(IdProduto); //Se retornou Erro é pq não existe na tabela. if (DescricaoProduto == "Erro") { Retorno = "Produto não Encontrado"; MessageBox.Show(Retorno); return(Retorno); } else { //Se achou, verifica se o produto está com a opção disponível para venda (da tela de produtos) marcada. bool produto_disponivel = classeProdutos.ProdutoDisponivel(IdProduto); if (produto_disponivel) { Retorno = DescricaoProduto; txtNomeProd.Text = Retorno; return(Retorno); } else { Retorno = "Produto não Disponivel para Vendas"; MessageBox.Show(Retorno); return(Retorno); } } } } }
public string IncluirVenda(int CodigoProduto, string DescricaoProduto, string CPF, string RazaoSocial, string Quantidade, double ValorTotal, string DataVenda) { int IdProduto = classeProdutos.RetornaIdProduto(CodigoProduto); int IdCliente = classeClientes.RetornaIdCliente(CPF); var MsgRetorno = "Venda Concluida com Êxito"; //Transforma quantidade em inteiro pra poder inserir no banco int quantidade = Convert.ToInt32(Quantidade); int QuantidadeAtual = CalcularNovaQuantidadeProduto(IdProduto, quantidade); //Se passar nas validações, insere no banco e retorna ok string ResultadoValidacao = (ValidarCamposVenda(DescricaoProduto, CPF, quantidade, DataVenda, ValorTotal)); if (QuantidadeAtual < 0) { ResultadoValidacao = "Não é possível efetuar essa venda, pois não há produto em quantidade suficiente no estoque"; } //Se a validacao deu certo, pode inserir os dados no banco if (ResultadoValidacao == "ok") { //Força o separador do float como . para não dar erro na hora de inserir no banco string CultureName = Thread.CurrentThread.CurrentCulture.Name; CultureInfo ci = new CultureInfo(CultureName); if (ci.NumberFormat.NumberDecimalSeparator != ".") { ci.NumberFormat.NumberDecimalSeparator = "."; Thread.CurrentThread.CurrentCulture = ci; } DateTime Data = Convert.ToDateTime(DataVenda); try { AbrirConexao(); RodarScript( $"Insert into vendas (data, produto_id, cliente_id, quantidade, valor_total) values (convert(datetime, '{Data}', 103),'{IdProduto}','{IdCliente}',{quantidade},{ValorTotal})"); FecharConexao(); AbrirConexao(); RodarScript( $"update produtos set quantidade = '{QuantidadeAtual}' where produtos.id ={IdProduto}"); FecharConexao(); } //Se gerar erro, a função retorna o erro gerado. catch (Exception MsgErro) { //Se cair aqui, retorna o erro e sai da função return(MsgErro.ToString()); } //Se chegar até aqui, retorna OK. return(MsgRetorno); } //Não passou na validacao, retorna a mensagem return(ResultadoValidacao); }
//Localiza o produto. public string LocalizarProduto() { int CodigoProduto; string Retorno = ""; //Se o código estiver em branco, avisa e não faz nada. if (txtCodigoCompras.Text == "") { Retorno = "Preencha o Código do Produto"; MessageBox.Show(Retorno); return(Retorno); } else { //Valida se o código é numérico. if (!int.TryParse(txtCodigoCompras.Text, out CodigoProduto)) { Retorno = "O Código Deve Possuir Apenas Números"; MessageBox.Show(Retorno); //Sai da função se não for e retorna a mensagem de erro. return(Retorno); } else { //Se chegou aqui, o código é um numero válido. Então converte pra inteiro. CodigoProduto = Convert.ToInt32(txtCodigoCompras.Text); int IdProduto = classeProdutos.RetornaIdProduto(CodigoProduto); string DescricaoProduto = classeProdutos.RetornaDescricaoProduto(IdProduto); //Se retornou erro, é pq o select não encontrou nenhum item. if (DescricaoProduto == "Erro") { Retorno = "Produto não Encontrado"; MessageBox.Show(Retorno); return(Retorno); } else { Retorno = DescricaoProduto; txtDescProduto.Text = Retorno; return(Retorno); } } } }
//Pesquisa pelo campo que estiver preenchido private void pesqCompras_Click(object sender, EventArgs e) { var classeCompras = new ClasseCompras(); var classeClientes = new ClasseClientes(); var classeFornecedores = new ClasseFornecedores(); var classeProdutos = new ClasseProdutos(); string cnpj = mskPesqCNPJ.Text; string fornecedor = TxtPesqFornecedor.Text; string produto = textpesqNome.Text; //Se o CNPJ estiver preenchido, pesquisa por ele if (cnpj != "") { if (classeClientes.ValidarCPFCNPJ(cnpj, false) == true) { int IdFornecedor = classeFornecedores.RetornaIdFornecedor(cnpj); BindingSourceCompras.DataSource = classeCompras.RetornaDadosCompraPorFornecedor(IdFornecedor); DataGridCompras.DataSource = BindingSourceCompras; DataGridCompras.RowHeadersVisible = false; DataGridCompras.AllowUserToAddRows = false; DataGridCompras.SelectionMode = DataGridViewSelectionMode.FullRowSelect; DataGridCompras.Columns[0].Visible = false; DataGridCompras.Columns[1].HeaderText = "Data da Compra"; DataGridCompras.Columns[2].HeaderText = "Codigo do Produto"; DataGridCompras.Columns[3].HeaderText = "Produto"; DataGridCompras.Columns[4].HeaderText = "Fornecedor"; DataGridCompras.Columns[5].HeaderText = "CNPJ"; DataGridCompras.Columns[6].HeaderText = "Quantidade"; DataGridCompras.Columns[7].HeaderText = "Valor Total"; DataGridCompras.AutoResizeColumns( DataGridViewAutoSizeColumnsMode.DisplayedCells); DataGridCompras.ReadOnly = true; } else { string Retorno = "Preencha Corretamente o CPF"; MessageBox.Show(Retorno); return; } } else { { //Se a razão social do fornecedor estiver preenchido, pesquisa por ele if (fornecedor != "") { int IdFornecedor = classeFornecedores.RetornaIdFornecedorPelaRazaoSocial(fornecedor); BindingSourceCompras.DataSource = classeCompras.RetornaDadosCompraPorFornecedor(IdFornecedor); DataGridCompras.DataSource = BindingSourceCompras; DataGridCompras.RowHeadersVisible = false; DataGridCompras.AllowUserToAddRows = false; DataGridCompras.SelectionMode = DataGridViewSelectionMode.FullRowSelect; DataGridCompras.Columns[0].Visible = false; DataGridCompras.Columns[1].HeaderText = "Data da Compra"; DataGridCompras.Columns[2].HeaderText = "Codigo do Produto"; DataGridCompras.Columns[3].HeaderText = "Produto"; DataGridCompras.Columns[4].HeaderText = "Fornecedor"; DataGridCompras.Columns[5].HeaderText = "CNPJ"; DataGridCompras.Columns[6].HeaderText = "Quantidade"; DataGridCompras.Columns[7].HeaderText = "Valor Total"; DataGridCompras.AutoResizeColumns( DataGridViewAutoSizeColumnsMode.DisplayedCells); DataGridCompras.ReadOnly = true; } else { //Se o nome do produto estiver preenchido, pesquisa por ele if (produto != "") { int IdProduto = classeProdutos.RetornaIdProduto(produto); BindingSourceCompras.DataSource = classeCompras.RetornaDadosCompraPorProduto(IdProduto); DataGridCompras.DataSource = BindingSourceCompras; DataGridCompras.RowHeadersVisible = false; DataGridCompras.AllowUserToAddRows = false; DataGridCompras.SelectionMode = DataGridViewSelectionMode.FullRowSelect; DataGridCompras.Columns[0].Visible = false; DataGridCompras.Columns[1].HeaderText = "Data da Compra"; DataGridCompras.Columns[2].HeaderText = "Codigo do Produto"; DataGridCompras.Columns[3].HeaderText = "Produto"; DataGridCompras.Columns[4].HeaderText = "Fornecedor"; DataGridCompras.Columns[5].HeaderText = "CNPJ"; DataGridCompras.Columns[6].HeaderText = "Quantidade"; DataGridCompras.Columns[7].HeaderText = "Valor Total"; DataGridCompras.AutoResizeColumns( DataGridViewAutoSizeColumnsMode.DisplayedCells); DataGridCompras.ReadOnly = true; } } } } }