private void barBtnParcelarLancto_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
 {
     if (gridViewLancamentos.IsSelectOneRowWarning())
     {
         var row = LancamentoDaoManager.Find(gridViewLancamentos.GetFocusedRow <LancamentoFinanceiro>());
         new XFrmAssitenteLancamentoFinanceiro(row, FormTypeAction.Alterar).ShowDialog();
     }
 }
        private void barBtnBaixarLancamento_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            using (var ctx = new BalcaoContext())
            {
                ctx.LazyLoading(false);
                //verifica se existe pelo menos uma conta
                if (ctx.ContaBancariaDao.CheckFirst())
                {
                    List <LancamentoFinanceiro> lanctos =
                        gridViewLancamentos.GetSelectedItens <LancamentoFinanceiro>();

                    if (lanctos.Exists(l => l.StatusLancamento == TypeStatusLancamentoFinanceiro.Cancelado))
                    {
                        XMessageIts.Advertencia("Existem lançamentos cancelados selecionados, e não pode ser baixados!",
                                                "Atenção - Operação cancelada");
                    }
                    else if (lanctos.Exists(l => l.StatusLancamento == TypeStatusLancamentoFinanceiro.Pago))
                    {
                        XMessageIts.Advertencia("Existem lançamentos já baixados selecionados, por favor volte a tela do grid e desmarque esses lançamentos!",
                                                "Atenção - Operação cancelada");
                    }
                    else
                    {
                        if (lanctos.Count > 0)
                        {
                            XFrmWizardBaixaLancamento wizard = new XFrmWizardBaixaLancamento(lanctos);

                            wizard.ShowDialog();

                            if (wizard.IsBaixa)
                            {
                                //deixe o grid exatamente como no banco
                                foreach (var l in lanctos)
                                {
                                    l.Update(LancamentoDaoManager.Find(l));
                                }

                                gridViewLancamentos.RefreshData();
                            }
                        }
                        else
                        {
                            XMessageIts.Mensagem("Nenhum lançamento(s) a ser baixado!");
                        }
                    }
                }
                else//nao existe avise
                {
                    XMessageIts.Advertencia("Para a baixa de lançamento(s) é necessário cadastrar "
                                            + "uma conta para crédito/débito.", "Aviso");
                }
            }
        }
        private void barBtnEditViewLancamento_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            LancamentoFinanceiro lan = gridViewLancamentos.GetFocusedRow() as LancamentoFinanceiro;

            if (lan != null)
            {
                //passa o lancamento completo
                var current = LancamentoDaoManager.FindCpl(lan);

                var frm = new XFrmAddLancamentoFinanceiro(current, this._user);

                frm.ShowDialog();

                //atualiza no grid conforme no banco
                lan.Update(LancamentoDaoManager.Find(lan), true);

                //notifica o grid
                //gridViewLancamentos.RefreshData();
            }
        }
        //Cancelamento de baixas/pagamentos
        private void barBtnCancelaBaixa_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (gridViewLancamentos.IsEmptyWarning())
            {
                List <LancamentoFinanceiro> lanctos = gridViewLancamentos.GetSelectedItens <LancamentoFinanceiro>();

                //verifica a lista de lancs selecionados, se houver algum lancamento com status != Pago, entra no if e exibe a mensagem
                var countStatus = lanctos.Count(p => p.StatusLancamento != TypeStatusLancamentoFinanceiro.Pago);

                if (countStatus > 0)
                {
                    XMessageIts.Advertencia("O cancelamento da baixa pode ser executado somente para lançamentos com status \"Pago\"." +
                                            "\nPor favor revise os lançamentos que foram selecionados.", "Atenção!");
                }
                else
                {
                    var msg = "Tem certeza que deseja cancelar a baixa dos lançamentos selecionados?";
                    var op  = XMessageIts.Confirmacao(msg);
                    if (op == DialogResult.Yes)
                    {
                        //nao gostei disso
                        var result = _lanManager.CancelarBaixa(lanctos, DateTime.Now.Date);
                        if (result)
                        {
                            XMessageIts.Mensagem("Baixa(s) cancelada(s) com sucesso!");
                            //deixe o grid exatamente como no banco
                            foreach (var l in lanctos)
                            {
                                l.Update(LancamentoDaoManager.Find(l));
                            }

                            gridViewLancamentos.RefreshData();
                        }
                    }
                }
            }
        }