private void btnFecharVenda_Click(object sender, EventArgs e)
        {
            Controller.AgendaController        ac  = new Controller.AgendaController();
            Controller.VendaController         vc  = new Controller.VendaController();
            Controller.ContasReceberController crc = new Controller.ContasReceberController();

            if (listapag != null && listapag.Count > 0)
            {
                string status = "";
                double rec    = Convert.ToDouble(mskRecebido.Text.ToString());
                double tot    = Convert.ToDouble(mskTotal.Text.ToString());
                if (tot > rec)
                {
                    status = "aberta";
                }
                else
                {
                    status = "fechada";
                }
                int i = 0;
                if (status.Equals("fechada"))
                {
                    if (this.codFechamento > 0)
                    {
                        if (crc.verificaParcelas(this.codConta))
                        {
                            if (listaAgenda != null && listaAgenda.Count > 0)
                            {
                                bool teste = false;
                                while (i < listaAgenda.Count && !teste)
                                {
                                    listaAgenda.ElementAt(i).Status = status;
                                    int rest = ac.atualizaStatus(listaAgenda.ElementAt(i));
                                    if (rest > 0)
                                    {
                                        i++;
                                    }
                                    else
                                    {
                                        teste = true;
                                    }
                                }
                            }
                            if (i < listaAgenda.Count)
                            {
                                MessageBox.Show("Erro ao atualizar serviços!");
                            }
                            else
                            {
                                this.parct.DataPagamento = DateTime.Now;
                                if (tot > rec)
                                {
                                    this.parct.ValorPago = rec;
                                }
                                else
                                {
                                    this.parct.ValorPago = tot;
                                }
                                this.parct.Forma = listapag.ElementAt(0).Forma;
                                int ver = crc.realizarRecebimento(this.parct, this.codConta);
                                if (ver <= 0)
                                {
                                    MessageBox.Show("Erro ao receber parcela");
                                }
                                else
                                {
                                    //int per = crc.atualizaStatus(this.codConta, status);

                                    if (crc.verificaParcelas(this.codConta))
                                    {
                                        int per = crc.atualizaStatus(this.codConta, status);
                                        if (per > 0)
                                        {
                                            int tes = vc.atualizaStatus(this.codVenda, status);
                                            if (tes > 0)
                                            {
                                                MessageBox.Show("Conta recebida com sucesso!");
                                                limpatela();
                                            }
                                            else
                                            {
                                                MessageBox.Show("Erro ao receber conta!!!");
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if (listaAgenda != null && listaAgenda.Count > 0)
                        {
                            bool teste = false;
                            while (i < listaAgenda.Count && !teste)
                            {
                                listaAgenda.ElementAt(i).Status = status;
                                int rest = ac.atualizaStatus(listaAgenda.ElementAt(i));
                                if (rest > 0)
                                {
                                    i++;
                                }
                                else
                                {
                                    teste = true;
                                }
                            }
                        }
                        if (i < listaAgenda.Count)
                        {
                            MessageBox.Show("Erro ao atualizar serviços!");
                        }
                        else
                        {
                            this.parct.DataPagamento = DateTime.Now;
                            if (tot > rec)
                            {
                                this.parct.ValorPago = rec;
                            }
                            else
                            {
                                this.parct.ValorPago = tot;
                            }
                            this.parct.Forma = listapag.ElementAt(0).Forma;
                            int ver = crc.realizarRecebimento(this.parct, this.codConta);
                            if (ver <= 0)
                            {
                                MessageBox.Show("Erro ao receber parcela");
                            }
                            else
                            {
                                //int per = crc.atualizaStatus(this.codConta, status);

                                if (crc.verificaParcelas(this.codConta))
                                {
                                    int per = crc.atualizaStatus(this.codConta, status);
                                    if (per > 0)
                                    {
                                        int tes = vc.atualizaStatus(this.codVenda, status);
                                        if (tes > 0)
                                        {
                                            MessageBox.Show("Conta recebida com sucesso!");
                                            limpatela();
                                        }
                                        else
                                        {
                                            MessageBox.Show("Erro ao receber conta!!!");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    this.parct.DataPagamento = DateTime.Now;
                    if (tot > rec)
                    {
                        this.parct.ValorPago = rec;
                    }
                    else
                    {
                        this.parct.ValorPago = tot;
                    }
                    this.parct.Forma = listapag.ElementAt(0).Forma;
                    int ver = crc.realizarRecebimento(this.parct, this.codConta);
                    if (ver <= 0)
                    {
                        MessageBox.Show("Erro ao receber parcela");
                    }
                    else
                    {
                        int per = crc.atualizaStatus(this.codConta, status);
                        if (per > 0)
                        {
                            MessageBox.Show("Conta recebida com sucesso!");
                        }
                        else
                        {
                            MessageBox.Show("Erro ao receber Conta!");
                        }
                    }
                }

                MessageBox.Show("Fechamento realizado com sucesso!");
                limpatela();
                Close();
            }
        }
        private void btnQuitarComissao_Click(object sender, EventArgs e)
        {
            Controller.ContasPagarController   cpc = new Controller.ContasPagarController();
            Controller.ContasReceberController crc = new Controller.ContasReceberController();

            Entidades.Caixa          _caixa   = new Entidades.Caixa();
            Entidades.Pessoa         _pessoa  = new Entidades.Pessoa();
            Entidades.Usuario        _usuario = new Entidades.Usuario();
            Entidades.Comissao       cm       = new Entidades.Comissao();
            Entidades.Despesa        _despesa = new Entidades.Despesa();
            Entidades.FormaPagamento forma    = new Entidades.FormaPagamento();

            if (listaaux != null && listaaux.Count > 0)
            {
                int  i     = 0;
                bool teste = false;
                while (i < listaaux.Count && !teste)
                {
                    forma.Codigo = 3;

                    DataTable dtCaixa = new Controller.CaixaController().retornacaixaAbetoDia();
                    if (dtCaixa != null && dtCaixa.Rows.Count > 0)
                    {
                        DataRow drCaixa = dtCaixa.Rows[0];
                        _caixa.CodCaixa       = Convert.ToInt32(drCaixa["codcaixa"].ToString());
                        _caixa.DataAbertura   = Convert.ToDateTime(drCaixa["caixa_datahoraabertura"].ToString());
                        _caixa.DataFechamento = Convert.ToDateTime(drCaixa["caixa_datahorafecha"].ToString());
                        _caixa.SaldoInicial   = Convert.ToDouble(drCaixa["caixa_saldoinicial"].ToString());
                        _caixa.Troco          = Convert.ToDouble(drCaixa["caixa_troco"].ToString());
                        _caixa.TotalEntrada   = Convert.ToDouble(drCaixa["caixa_totalentra"].ToString());
                        _caixa.TotalSaida     = Convert.ToDouble(drCaixa["caixa_totalsaida"].ToString());
                        DataTable dtPessoa = new Controller.PessoaController().retornaPessoaCod(drCaixa["codpessoa"].ToString());
                        if (dtPessoa != null && dtPessoa.Rows.Count > 0)
                        {
                            _pessoa = new Entidades.Pessoa();
                            DataRow drPessoa = dtPessoa.Rows[0];
                            _pessoa.Codigo       = Convert.ToInt32(drPessoa["codpessoa"].ToString());
                            _pessoa.Nome         = drPessoa["pes_nome"].ToString();
                            _pessoa.DataCadastro = Convert.ToDateTime(drPessoa["pes_datacadastro"].ToString());
                            _pessoa.TipoPessoa   = drPessoa["pes_tipopessoa"].ToString();
                            _pessoa.StatusPessoa = Convert.ToBoolean(drPessoa["pes_statuspessoa"].ToString());
                            _pessoa.Observacao   = drPessoa["pes_obs"].ToString();
                            _pessoa.Fiado        = Convert.ToBoolean(drPessoa["pes_fiado"].ToString());
                            _pessoa.Email        = drPessoa["pes_email"].ToString();
                            _pessoa.Telefone     = drPessoa["pes_fone"].ToString();
                            _pessoa.Celular      = drPessoa["pes_cel"].ToString();
                        }
                        _caixa.Pessoa = _pessoa;
                        DataTable dtUsuario = new Controller.UsuarioController().retornaObjUsuario(Convert.ToInt32(drCaixa["codusuario"].ToString()));
                        if (dtUsuario != null && dtUsuario.Rows.Count > 0)
                        {
                            DataRow drUsuario = dtUsuario.Rows[0];
                            _usuario.UsuarioCodigo = Convert.ToInt32(drUsuario["codusuario"].ToString());
                            _usuario.Login         = drUsuario["usu_usuario"].ToString();
                            _usuario.Senha         = drUsuario["usu_senha"].ToString();
                            _usuario.Nivel         = Convert.ToInt32(drUsuario["usu_nivel"].ToString());
                        }
                        _caixa.Usuario = _usuario;
                    }

                    DataTable dtDespesa = new Controller.ContasPagarController().retornaDespesaNome("Comissão");
                    if (dtDespesa != null && dtDespesa.Rows.Count > 0)
                    {
                        DataRow dr = dtDespesa.Rows[0];
                        _despesa.Codigo    = Convert.ToInt32(dr["coddespesa"].ToString());
                        _despesa.Descricao = dr["desp_descricao"].ToString();
                        _despesa.Status    = dr["desp_status"].ToString();
                    }

                    cm.CodigoComissao = listaaux.ElementAt(i).CodComis;
                    if (listaaux.ElementAt(i).Status.Equals("PAGAR"))
                    {
                        cm.ValorPago     = listaaux.ElementAt(i).Valor;
                        cm.ValorDevolver = 0;
                    }
                    else
                    {
                        cm.ValorDevolver = listaaux.ElementAt(i).Valor;
                        cm.ValorPago     = 0;
                    }
                    cm.DataPagamento   = listaaux.ElementAt(i).Data;
                    cm.StatusPagamento = "fechada";
                    int k = cc.atualizaComissao(cm);
                    if (k > 0)
                    {
                        if (listaaux.ElementAt(i).Status.Equals("PAGAR"))
                        {
                            Entidades.ContasPagar cp = new Entidades.ContasPagar();
                            cp.DataPagamento      = DateTime.Now;
                            cp.CodigoContasaPagar = cpc.retornaMax() + 1;
                            cp.DataVencimento     = listaaux.ElementAt(i).Data;
                            cp.ValorPago          = listaaux.ElementAt(i).Valor;
                            cp.ValorTotal         = listaaux.ElementAt(i).Valor;
                            cp.ValorParcela       = listaaux.ElementAt(i).Valor;
                            cp.Observacao         = "";
                            cp.Status             = true;
                            cp.Parcela            = 1;
                            cp.Compra             = new Entidades.Compra();
                            cp.Comissao           = cm;
                            cp.Caixa          = _caixa;
                            cp.CodParcela     = 1;
                            cp.Despesa        = _despesa;
                            cp.FormaPagamento = forma;
                            int p = cpc.insereLancamento(cp);
                            if (p > 0)
                            {
                                i++;
                            }
                            else
                            {
                                teste = true;
                            }
                        }
                        else
                        {
                            Entidades.ContasReceber cr = new Entidades.ContasReceber();
                            cr.DtVencimento = listaaux.ElementAt(i).Data;
                            cr.ValorTotal   = listaaux.ElementAt(i).Valor;
                            cr.Obs          = "fechada";
                            DataTable dtPessoa = new Controller.PessoaController().retornaPessoaCod(cbbParceiro.SelectedValue.ToString());
                            if (dtPessoa != null && dtPessoa.Rows.Count > 0)
                            {
                                _pessoa = new Entidades.Pessoa();
                                DataRow drPessoa = dtPessoa.Rows[0];
                                _pessoa.Codigo       = Convert.ToInt32(drPessoa["codpessoa"].ToString());
                                _pessoa.Nome         = drPessoa["pes_nome"].ToString();
                                _pessoa.DataCadastro = Convert.ToDateTime(drPessoa["pes_datacadastro"].ToString());
                                _pessoa.TipoPessoa   = drPessoa["pes_tipopessoa"].ToString();
                                _pessoa.StatusPessoa = Convert.ToBoolean(drPessoa["pes_statuspessoa"].ToString());
                                _pessoa.Observacao   = drPessoa["pes_obs"].ToString();
                                _pessoa.Fiado        = Convert.ToBoolean(drPessoa["pes_fiado"].ToString());
                                _pessoa.Email        = drPessoa["pes_email"].ToString();
                                _pessoa.Telefone     = drPessoa["pes_fone"].ToString();
                                _pessoa.Celular      = drPessoa["pes_cel"].ToString();
                            }
                            cr.Pessoaf          = _pessoa;
                            cr.Contrato         = new Entidades.Contrato();
                            cr.Venda            = new Entidades.Venda();
                            cr.CodigoFechamento = 0;
                            cr.Comissao         = cm;
                            cr.Lista            = new List <Entidades.Parcela>();
                            int tes = crc.gerarContasReceber(cr);
                            if (tes > 0)
                            {
                                i++;
                            }
                            else
                            {
                                teste = true;
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Erro ao finalizar comissão!");
                        teste = true;
                    }
                }
                if (i < listaaux.Count)
                {
                    MessageBox.Show("Erro ao finalizar Comissões!");
                }
                else
                {
                    MessageBox.Show("Acerto de comissão finalizado com sucesso!");
                    listaaux      = new List <Entidades.TabelaComissao>();
                    listaComissao = new List <Entidades.TabelaComissao>();
                    carregaDGV();
                    carregaDGVAux();
                    mskTotal.Text        = somaValor() + "";
                    mskTotal.Text        = Convert.ToDouble(mskTotal.Text).ToString("###,###,##0.00");
                    mskTotalPagar.Text   = somaPagar() + "";
                    mskTotalPagar.Text   = Convert.ToDouble(mskTotalPagar.Text).ToString("###,###,##0.00");
                    mskTotalReceber.Text = somaReceber() + "";
                    mskTotalReceber.Text = Convert.ToDouble(mskTotalReceber.Text).ToString("###,###,##0.00");
                }
            }
            else
            {
                MessageBox.Show("Nenhuma comissão na lista para acerto");
            }
        }
        private void carregaTela(int codD, int codP)
        {
            Controller.ContasReceberController crc  = new Controller.ContasReceberController();
            Controller.PessoaController        pc   = new Controller.PessoaController();
            Controller.VendaController         vc   = new Controller.VendaController();
            Controller.ComissaoController      cmc  = new Controller.ComissaoController();
            Controller.PacoteController        pacc = new Controller.PacoteController();
            Controller.AgendaController        agc  = new Controller.AgendaController();

            Entidades.ContasReceber  cr       = new Entidades.ContasReceber();
            Entidades.Pessoa         _pessoa  = new Entidades.Pessoa();
            Entidades.Caixa          cx       = new Entidades.Caixa();
            Entidades.Parcela        parc     = new Entidades.Parcela();
            Entidades.FormaPagamento forma    = new Entidades.FormaPagamento();
            Entidades.Venda          venda    = new Entidades.Venda();
            Entidades.Comissao       cm       = new Entidades.Comissao();
            Entidades.Contrato       ct       = new Entidades.Contrato();
            Entidades.Usuario        _usuario = new Entidades.Usuario();

            DataTable dtContaRec = crc.retornaContasCod(codD);

            if (dtContaRec != null && dtContaRec.Rows.Count > 0)
            {
                DataRow drContasRec = dtContaRec.Rows[0];
                cr.Codigo           = Convert.ToInt32(drContasRec["codcontareceber"].ToString());
                cr.DtVencimento     = Convert.ToDateTime(drContasRec["contrec_datavencimento"].ToString());
                cr.ValorTotal       = Convert.ToDouble(drContasRec["contrec_valortotal"].ToString());
                cr.Obs              = drContasRec["contrec_obs"].ToString();
                cr.CodigoFechamento = Convert.ToInt32(drContasRec["codfiado"].ToString());

                DataTable dtPessoa = pc.retornaPessoaCod(drContasRec["codpessoa"].ToString());
                if (dtPessoa != null && dtPessoa.Rows.Count > 0)
                {
                    DataRow drPessoa = dtPessoa.Rows[0];
                    _pessoa.Codigo       = Convert.ToInt32(drPessoa["codpessoa"].ToString());
                    _pessoa.Nome         = drPessoa["pes_nome"].ToString();
                    _pessoa.DataCadastro = Convert.ToDateTime(drPessoa["pes_datacadastro"].ToString());
                    _pessoa.TipoPessoa   = drPessoa["pes_tipopessoa"].ToString();
                    _pessoa.StatusPessoa = Convert.ToBoolean(drPessoa["pes_statuspessoa"].ToString());
                    _pessoa.Observacao   = drPessoa["pes_obs"].ToString();
                    _pessoa.Fiado        = Convert.ToBoolean(drPessoa["pes_fiado"].ToString());
                    _pessoa.Email        = drPessoa["pes_email"].ToString();
                    _pessoa.Telefone     = drPessoa["pes_fone"].ToString();
                    _pessoa.Celular      = drPessoa["pes_cel"].ToString();
                }
                cr.Pessoaf      = _pessoa;
                ttbCliente.Text = _pessoa.Nome;

                DataTable dtVenda = vc.retornaVendaCod(Convert.ToInt32(drContasRec["codvenda"].ToString()));
                if (dtVenda != null && dtVenda.Rows.Count > 0)
                {
                    DataRow drVenda = dtVenda.Rows[0];
                    venda.Codigo           = Convert.ToInt32(drVenda["codvenda"].ToString());
                    venda.Data             = Convert.ToDateTime(drVenda["vend_datavenda"].ToString());
                    venda.Situacao         = drVenda["vend_situacao"].ToString();
                    venda.ValorTotal       = Convert.ToDouble(drVenda["vend_valortotal"].ToString());
                    venda.Observacao       = drVenda["vend_obs"].ToString();
                    venda.CodigoFechamento = Convert.ToInt32(drVenda["codfechamento"].ToString());
                    venda.Pessoa           = _pessoa;
                    this.codVenda          = venda.Codigo;
                    this.codFechamento     = venda.CodigoFechamento;
                }
                cr.Venda = venda;
                DataTable dtProdutosVenda = vc.retornaProdutos(venda.Codigo);
                // carregaGridProduto(dtProdutosVenda);

                DataTable dtComissao = cmc.retornaComissao(Convert.ToInt32(drContasRec["codcomissao"].ToString()));
                if (dtComissao != null && dtComissao.Rows.Count > 0)
                {
                    DataRow drComissao = dtComissao.Rows[0];
                    cm.CodigoComissao  = Convert.ToInt32(drComissao["codcomissao"].ToString());
                    cm.DataPagamento   = Convert.ToDateTime(drComissao["comis_datapagamento"].ToString());
                    cm.ValorTotal      = Convert.ToDouble(drComissao["comis_valortotal"].ToString());
                    cm.ValorPago       = Convert.ToDouble(drComissao["comis_valorpago"].ToString());
                    cm.ValorDevolver   = Convert.ToDouble(drComissao["comis_valordevedor"].ToString());
                    cm.StatusComissao  = drComissao["comis_statuscomissao"].ToString();
                    cm.StatusPagamento = drComissao["comis_statuspagamento"].ToString();
                }
                cr.Comissao = cm;
                cr.Contrato = ct;
                List <Entidades.Parcela> lista = new List <Entidades.Parcela>();
                DataTable dtParcela            = crc.retornaParcelaContaReceber(codD, codP);
                if (dtParcela != null && dtParcela.Rows.Count > 0)
                {
                    DataRow drParcela = dtParcela.Rows[0];
                    parc.Codigo         = codP;
                    parc.DataPagamento  = Convert.ToDateTime(drParcela["parc_datapagamento"].ToString());
                    parc.DataVencimento = Convert.ToDateTime(drParcela["parc_datavencimento"].ToString());
                    parc.ValorPago      = Convert.ToDouble(drParcela["parc_valorpago"].ToString());
                    parc.ValorReceber   = Convert.ToDouble(drParcela["parc_valor"].ToString());

                    DataTable dtCaixa = new Controller.CaixaController().retornacaixaAbetoDia();
                    if (dtCaixa != null && dtCaixa.Rows.Count > 0)
                    {
                        DataRow drCaixa = dtCaixa.Rows[0];
                        cx.CodCaixa       = Convert.ToInt32(drCaixa["codcaixa"].ToString());
                        cx.DataAbertura   = Convert.ToDateTime(drCaixa["caixa_datahoraabertura"].ToString());
                        cx.DataFechamento = Convert.ToDateTime(drCaixa["caixa_datahorafecha"].ToString());
                        cx.SaldoInicial   = Convert.ToDouble(drCaixa["caixa_saldoinicial"].ToString());
                        cx.Troco          = Convert.ToDouble(drCaixa["caixa_troco"].ToString());
                        cx.TotalEntrada   = Convert.ToDouble(drCaixa["caixa_totalentra"].ToString());
                        cx.TotalSaida     = Convert.ToDouble(drCaixa["caixa_totalsaida"].ToString());
                        DataTable dtP = new Controller.PessoaController().retornaPessoaCod(drCaixa["codpessoa"].ToString());
                        if (dtP != null && dtP.Rows.Count > 0)
                        {
                            _pessoa = new Entidades.Pessoa();
                            DataRow drPessoa = dtPessoa.Rows[0];
                            _pessoa.Codigo       = Convert.ToInt32(drPessoa["codpessoa"].ToString());
                            _pessoa.Nome         = drPessoa["pes_nome"].ToString();
                            _pessoa.DataCadastro = Convert.ToDateTime(drPessoa["pes_datacadastro"].ToString());
                            _pessoa.TipoPessoa   = drPessoa["pes_tipopessoa"].ToString();
                            _pessoa.StatusPessoa = Convert.ToBoolean(drPessoa["pes_statuspessoa"].ToString());
                            _pessoa.Observacao   = drPessoa["pes_obs"].ToString();
                            _pessoa.Fiado        = Convert.ToBoolean(drPessoa["pes_fiado"].ToString());
                            _pessoa.Email        = drPessoa["pes_email"].ToString();
                            _pessoa.Telefone     = drPessoa["pes_fone"].ToString();
                            _pessoa.Celular      = drPessoa["pes_cel"].ToString();
                        }
                        cx.Pessoa = _pessoa;
                        DataTable dtUsuario = new Controller.UsuarioController().retornaObjUsuario(Convert.ToInt32(drCaixa["codusuario"].ToString()));
                        if (dtUsuario != null && dtUsuario.Rows.Count > 0)
                        {
                            DataRow drUsuario = dtUsuario.Rows[0];
                            _usuario.UsuarioCodigo = Convert.ToInt32(drUsuario["codusuario"].ToString());
                            _usuario.Login         = drUsuario["usu_usuario"].ToString();
                            _usuario.Senha         = drUsuario["usu_senha"].ToString();
                            _usuario.Nivel         = Convert.ToInt32(drUsuario["usu_nivel"].ToString());
                        }
                        cx.Usuario = _usuario;
                    }
                    parc.Caixa = cx;

                    DataTable dtForma = new Controller.PagamentoController().retornaObjFormaPagamento(Convert.ToInt32(drParcela["codformapag"].ToString()));
                    if (dtForma != null && dtForma.Rows.Count > 0)
                    {
                        if (dtForma != null && dtForma.Rows.Count > 0)
                        {
                            DataRow drForma = dtForma.Rows[0];
                            forma.Codigo = Convert.ToInt32(drForma["codformapag"].ToString());
                            forma.Forma  = drForma["formpag_descricao"].ToString();
                        }
                    }
                    parc.Forma = forma;
                    lista.Add(parc);
                    this.listaparcela = lista;
                    this.parct        = parc;
                    this.codConta     = cr.Codigo;
                }
                cr.Lista = lista;
                DataTable dtServicos = agc.retornaServicosCliente(cr.Pessoaf.Codigo);
                if (dtServicos != null && dtServicos.Rows.Count > 0)
                {
                    convertLista(dtServicos);
                    //carregaGridServico(dtServicos);
                }
                mskSubtotal.Text = somaSubtotal(dtServicos) + this.parct.ValorReceber + "";
                mskSubtotal.Text = Convert.ToDouble(mskSubtotal.Text).ToString("###,###,##0.00");

                mskTotal.Text = somaSubtotal(dtServicos) + this.parct.ValorReceber + "";
                mskTotal.Text = Convert.ToDouble(mskTotal.Text).ToString("###,###,##0.00");

                mskRecebido.Text = "0.00";
                mskRestante.Text = "0.00";
                mskTroco.Text    = "0.00";
            }
        }