public void CarregarTabelaVendaProdutos()
        {
            using (GestaoContext contexto = new GestaoContext())
            {
                var vendProd = contexto.VendaProdutos.OrderBy(c => c.cliente.nome).Include(c => c.cliente).ToList();
                dataRelatorios.DataSource = vendProd;

                //Organiza colunas
                dataRelatorios.Columns["cliente"].DisplayIndex       = 1;
                dataRelatorios.Columns["produto"].DisplayIndex       = 2;
                dataRelatorios.Columns["precoUnitario"].DisplayIndex = 3;
                dataRelatorios.Columns["quantidade"].DisplayIndex    = 4;
                dataRelatorios.Columns["observacao"].DisplayIndex    = 5;
                dataRelatorios.Columns["codigo"].DisplayIndex        = 6;

                //Exclui colunas
                dataRelatorios.Columns["id"].Visible   = false;
                dataRelatorios.Columns["tipo"].Visible = false;

                //renomeia colunas
                dataRelatorios.Columns["cliente"].HeaderText       = "CLIENTE";
                dataRelatorios.Columns["produto"].HeaderText       = "PRODUTO";
                dataRelatorios.Columns["precoUnitario"].HeaderText = "PREÇO";
                dataRelatorios.Columns["quantidade"].HeaderText    = "QUANTIDADE COMPRADA";
                dataRelatorios.Columns["observacao"].HeaderText    = "DETALHES";
                dataRelatorios.Columns["codigo"].HeaderText        = "COD. PRODUTO";
                dataRelatorios.Columns["dataVenda"].HeaderText     = "DATA";
            }
        }
 private void RegistrarRecebimento_Load(object sender, EventArgs e)
 {
     using (GestaoContext contexto = new GestaoContext())
     {
         comboClientes.DataSource    = contexto.Clientes.OrderBy(c => c.nome).ToList();
         comboClientes.ValueMember   = "id";
         comboClientes.DisplayMember = "nome";
         comboClientes.Refresh();
         comboClientes.SelectedIndex = -1;
     }
 }
        public void CarregarTabelaClientes()
        {
            using (GestaoContext contexto = new GestaoContext())
            {
                var clientes = contexto.Clientes.OrderBy(c => c.nome).ToList();
                dataRelatorios.DataSource      = clientes;
                dataRelatorios.BackgroundColor = Color.White;

                dataRelatorios.Columns["id"].Visible           = false;
                dataRelatorios.Columns["nome"].HeaderText      = "CLIENTE";
                dataRelatorios.Columns["divida"].HeaderText    = "DIVIDA";
                dataRelatorios.Columns["ultimoRec"].HeaderText = "ULTIMO PAGAMENTO";
            }
        }
        public Cliente AtualizaDivida()
        {
            using (GestaoContext contexto = new GestaoContext())
            {
                double precoUnitario = Convert.ToDouble(txtPrecoUnit.Text);
                int    qtd           = Convert.ToInt16(txtQtd.Text);
                var    clienteID     = Convert.ToInt32(comboClientes.SelectedValue);
                var    clienteChange = (Cliente)comboClientes.SelectedItem;

                var cliente = contexto.Clientes.Where(c => c.id == clienteID).FirstOrDefault();
                cliente.divida = cliente.divida + (precoUnitario * qtd);
                return(cliente);
            }
        }
        private void CadastrarVenda_Load(object sender, EventArgs e)
        {
            using (GestaoContext contexto = new GestaoContext())
            {
                comboClientes.DataSource    = contexto.Clientes.OrderBy(x => x.nome).ToList(); // lambda - linq
                comboClientes.ValueMember   = "id";
                comboClientes.DisplayMember = "nome";
                comboClientes.Refresh();
                comboClientes.SelectedIndex = -1;

                comboTipo.DataSource    = contexto.Tipos.OrderBy(x => x.descricao).ToList(); // lambda - linq
                comboTipo.ValueMember   = "id";
                comboTipo.DisplayMember = "descricao";
                comboTipo.Refresh();
                comboTipo.SelectedIndex = -1;
            }
        }
        public void CadastraVenda()
        {
            if (txtCodigo.Text == "" || txtPrecoUnit.Text == "" || txtProduto.Text == "" || txtQtd.Text == "")
            {
                MessageBox.Show("Preencha todos os campos");
            }
            else
            {
                try
                {
                    VendaProduto produto = new VendaProduto()
                    {
                        codigo        = Convert.ToInt32(txtCodigo.Text),
                        produto       = txtProduto.Text,
                        observacao    = txtObservacoes.Text,
                        precoUnitario = Convert.ToDouble(txtPrecoUnit.Text),
                        quantidade    = Convert.ToInt32(txtQtd.Text),
                        cliente       = comboClientes.SelectedItem as Cliente,
                        tipo          = comboTipo.SelectedItem as Tipo,
                        dataVenda     = Convert.ToString(DateTime.Now)
                    };

                    using (GestaoContext contexto = new GestaoContext())
                    {
                        contexto.Clientes.Update(AtualizaDivida());

                        contexto.VendaProdutos.Add(produto);
                        contexto.Remove(produto.tipo);
                        contexto.SaveChanges();
                        MessageBox.Show("Venda Registrada com Sucesso");
                        LimparCampos();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        public void ReceberPagamento()
        {
            if (txtValorRecebido.Text != "")
            {
                try
                {
                    double valorRecebido = Convert.ToDouble(txtValorRecebido.Text);
                    var    cliente       = (Cliente)comboClientes.SelectedItem;
                    if (cliente.divida >= valorRecebido)
                    {
                        cliente.divida    = cliente.divida - valorRecebido;
                        cliente.ultimoRec = Convert.ToString(DateTime.Now);

                        using (GestaoContext contexto = new GestaoContext())
                        {
                            contexto.Clientes.Update(cliente);
                            contexto.SaveChanges();
                        }
                        MessageBox.Show("Recebimento Registrado com Sucesso");
                        LimparCampos();
                    }
                    else
                    {
                        MessageBox.Show("O Valor recebido é maior que a divida do Cliente");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Insira o valor à receber");
            }
        }