Ejemplo n.º 1
0
        public void CancelarLancamento(LancamentoFinanceiro lancamento)
        {
            using (var ctx = new BalcaoContext())
            {
                ctx.LazyLoading(false);

                var current = ctx.LancamentoFinanceiroDao.Find(lancamento.IdLancamento);
                current.StatusLancamento = TypeStatusLancamentoFinanceiro.Cancelado;

                if (!current.DataCancelamento.HasValue)
                {
                    current.DataCancelamento = DateTime.Now;
                }

                //me ajuda quando eu faço coisa errada
                if (lancamento.MotivoCancelamento.ToUpper().Equals("DELETE ON CASCADE"))
                {
                    string procedure = "[" + ctx.DatabaseName + "].[dbo].[P_DELETAR_LANCAMENTO]";
                    try
                    {
                        ctx.ConnectionSql.ExecuteProcedure(procedure, new SqlParameter("p_idLancamento", lancamento.IdLancamento));
                        XMessageIts.Mensagem("Lançamento " + lancamento.IdLancamento + " totalmente excluído com sucesso", "Atenção !!!");
                    }
                    catch (SqlException)
                    {
                    }
                }
                else
                {
                    if (ctx.LancamentoFinanceiroDao.Update(current))
                    {
                        lancamento.Update(current);
                    }

                    try
                    {
                        var v = ctx.VendaDao.Find(current.IdVenda);
                        v.ValidarStatus();
                        ctx.VendaDao.Update(v);
                    }
                    catch
                    {
                    }
                }
            }
        }
        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();
            }
        }
        private void gerarParcelamento(int numParcelas, int intervalDias)
        {
            //calcule o prazo em cima da data do primeiro lançamento
            var row = gridView1.GetRow(0) as LancamentoFinanceiro;

            if (row == null)
            {
                row = this._lancamentoAtual;
            }

            DateTime dtParcela = row.DataLancamento;

            //limpo a lista de lancamentos anterior, se tiver.
            _lancamentoList.Clear();

            //valor informado
            var valor = ParseUtil.ToDecimal(txtTotalLancamento.Text);

            for (int i = 1; i <= numParcelas; i++)
            {
                //retorna a data com o intervalo de dias escolhido
                DateTime dtVencimento = DataUtil.GetNextDate(dtParcela);

                if (intervalDias != 30)
                {
                    dtVencimento = DataUtil.CalcularData(dtParcela, intervalDias);
                }

                //lançamento identico
                var parcela = new LancamentoFinanceiro();

                parcela.Update(_lancamentoAtual);

                //usuario que criou
                parcela.RecCreatedBy   = _lancamentoAtual.RecCreatedBy;
                parcela.RecCreatedDate = _lancamentoAtual.RecCreatedDate;

                //usuario que modificou
                parcela.RecModifyBy   = _lancamentoAtual.RecModifyBy;
                parcela.RecModifyDate = _lancamentoAtual.RecModifyDate;

                parcela.DataVencimento    = dtVencimento;
                parcela.SequencialParcela = i;
                parcela.ValorLancamento   = valor / numParcelas;

                if (_lancamentoAtual.IdLancamento == 0)
                {
                    parcela.Observacao += " | PARCELA " + i;
                }
                else
                {
                    parcela.Observacao += " | REPARCELAMENTO " + i;
                }

                parcela.ValidarLancamento();

                //add a nova parcela
                _lancamentoList.Add(parcela);

                if (intervalDias > 0)
                {
                    //a data atual passa ser a data do vencimento da parcela
                    //na proxima interação sera calcula mais 1 mes a frente e os dias desse periodo
                    dtParcela = dtVencimento;
                }
            }


            //atualize o lançamento atual com o valor dividido por nº de parcelas escolhido.
            //lancamento.ValorLancamento = lancamento.ValorLancamento / numParcelas;
            this.txtTotalLancamento.Text = _lancamentoList.Sum(l => l.TotalLancamento).ToString("n2");
            this.gridControl1.DataSource = this._lancamentoList;
            this.gridView1.RefreshData();
        }
Ejemplo n.º 4
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (btnSalvar.Text.Equals("OK") && _lancAnt != null &&
                _lancAnt.StatusLancamento == TypeStatusLancamentoFinanceiro.Pago)
            {
                this.Dispose();
            }
            else
            {
                LancamentoFinanceiro novo = indexarDados();
                var status = (TypeStatusLancamentoFinanceiro)cbStatusLancamento.SelectedIndex;

                if (novo != null)
                {
                    try
                    {
                        var  manager = new LancamentoDaoManager();
                        bool flag    = false;
                        if (_lancAnt == null)
                        {
                            flag = manager.SaveLancamento(novo);
                            if (flag)
                            {
                                XMessageIts.Mensagem("Lancamento incluso com sucesso!\n\n"
                                                     + "Nº Lançamento: " + novo.IdLancamento);
                            }
                        }
                        else
                        {
                            flag = manager.UpdateLancamento(novo);
                            if (flag)
                            {
                                XMessageIts.Mensagem("Lancamento atualizado com sucesso!");

                                //atualiza no grid
                                this._lancAnt = novo;
                            }
                        }
                        if (flag)
                        {
                            //se setei como pago
                            if (status == TypeStatusLancamentoFinanceiro.Pago)
                            {
                                var lista = new List <LancamentoFinanceiro>();

                                //use esse status pq ainda nao foi pago se nao ira confundir o usuario
                                //verificar se eh null, pq na criacao do lancamento ele eh null, somenta na edicao ele é 'fill'
                                if (this._lancAnt != null)
                                {
                                    novo.StatusLancamento = _lancAnt.StatusLancamento;
                                }

                                //recupera o lancto
                                var r = LancamentoDaoManager.FindCpl(novo);

                                lista.Add(r);
                                //chama o wizard para realizar a baixa
                                var wizard = new XFrmWizardBaixaLancamento(lista);
                                wizard.ShowDialog();

                                //se foi cancelada a baixa
                                if (wizard.IsBaixa == false)
                                {
                                    //consistencia o status do lançamento
                                    novo.StatusLancamento = TypeStatusLancamentoFinanceiro.Aberto;
                                    //invoca o validar lançamento
                                    manager.UpdateLancamento(novo);
                                }
                                novo.Update(r);
                            }
                            //always
                            this.Dispose();
                        }
                    }
                    catch (Exception ex)
                    {
                        XMessageIts.ExceptionJustMessage(ex, "Falha durante a persistência do lançamento!");
                        this.Dispose();
                    }
                }
            }
        }