public ActionResult VisualizarDetalheLancamento(Lancamento lancamento)
        {
            List <Lancamento> lancamentos = new List <Lancamento>();

            try
            {
                if (default(DateTime) != lancamento.data)
                {
                    lancamento.area_id = ClasseAuxiliar.AreaSelecionada.ID;
                    ILancamentoProcesso processo = LancamentoProcesso.Instance;
                    var resultado = processo.Consultar(lancamento, TipoPesquisa.E);
                    lancamentos             = resultado;
                    ViewData["lancamentos"] = lancamentos;
                    return(View(lancamento));
                }
                else
                {
                    throw new Exception("Data do lançamento não informada ou inválida");
                }
            }
            catch (Exception e)
            {
                ViewData["lancamentos"] = lancamentos;
                ModelState.AddModelError("data", e.Message);
                return(View(lancamento));
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        long   id   = Convert.ToInt64(Request.QueryString.Get("Id"));
        string tipo = Request.QueryString.Get("tipo");

        //string nome= Request.QueryString["comp"];
        //Response.Write("<div style=position:absolute><img src='" + nome + ".jpg' /></div>");
        //System.IO.Stream comp = ((System.IO.Stream)Session["comp"]);
        //byte[] oc = new byte[comp.Length];
        //int i = 0;
        //while (comp.Position < comp.Length){
        //    oc[i] = (byte)comp.ReadByte();
        //    i++;
        //}
        Response.Clear();
        Context.Response.ContentType = "image/GIF";
        //bmp.Save(context.Response.OutputStream, ImageFormat.Gif);
        Lancamento l = FabricaLancamento.fabricarLancamento(tipo, id);
        //System.Drawing.Image comp = (System.Drawing.Image)Session["comp"];
        MemoryStream ms = new MemoryStream();

        l.Comprovante.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        //  Response.BinaryWrite((byte[])Session["comp"]);
//Pode ser isso que está faltando!!
        //Response.ContentType = "jpg"; // myDataReader.Item("PersonImageType")
        Response.OutputStream.Write(ms.ToArray(), 0, (int)ms.Length);
        Response.Flush();
        Response.Close();
    }
        private void btn_CadastrarLancamento_Click(object sender, RoutedEventArgs e)
        {
            if (drop_SelectCategoria.SelectedItem == null || drop_SelectConta.SelectedItem == null || input_LancamentoValue.Text == "")
            {
                MessageBox.Show("Erro : Campo vazio", "Cadastrar lançamento - Erro ", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                int CategoriaId = (int)drop_SelectCategoria.SelectedValue;

                int ContaId = (int)drop_SelectConta.SelectedValue;

                double valor = Convert.ToDouble(input_LancamentoValue.Text);

                Lancamento c = new Lancamento();

                c.ContaId = ContaId;

                c.CategoriaId = CategoriaId;

                c.Valor = valor;

                LancamentoDAO.Create(c);

                MessageBox.Show("Lançamento no valor de " + c.Valor + " na Categoria " + LancamentoDAO.ReadById(c.Id).Categoria.Nome + " para a Conta " + LancamentoDAO.ReadById(c.Id).Conta.Nome + " Cadastrado com sucesso!!", "Listar Categorias", MessageBoxButton.OK, MessageBoxImage.Information);

                clearForm();
            }
        }
        public ActionResult Alterar(int id, Lancamento lancamento)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    lancamento.ID = id;
                    ILancamentoProcesso processo = LancamentoProcesso.Instance;
                    lancamento.timeUpdated = DateTime.Now;
                    processo.Alterar(lancamento);
                    processo.Confirmar();
                    // TODO: Add update logic here

                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View(lancamento));
                }
            }
            catch
            {
                return(View());
            }
        }
Beispiel #5
0
        public void ValidarCampos(Lancamento lancamento)
        {
            try
            {
                if (lancamento == null)
                {
                    throw new ArgumentException("Lançamento inválido");
                }

                if (String.IsNullOrEmpty(lancamento.Descricao))
                {
                    throw new ArgumentException("Campo Descrição é obrigatório");
                }

                if (!String.IsNullOrEmpty(lancamento.Descricao) && lancamento.Descricao.Length > 300)
                {
                    throw new ArgumentException("Máximo de 300 caracteres - Campo Descrição");
                }

                if (!String.IsNullOrEmpty(lancamento.Observacoes) && lancamento.Observacoes.Length > 500)
                {
                    throw new ArgumentException("Máximo de 500 caracteres - Campo Observações");
                }

                if (lancamento.Valor <= 0)
                {
                    throw new ArgumentException("Valor inválido");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #6
0
        public void SalvarLancamento(Lancamento lancamento)
        {
            try
            {
                using (var ts = new TransactionScope())
                {
                    var sql        = @"INSERT [dbo].[Lancamentos] ([IdCliente], [ContaOrigem], [ContaDestino], [Data], [Tipo], [Descricao], [Valor])
                        VALUES (@idCliente, @contaOrigem, @contaDestino, @data, @tipo, @descricao, @valor)";
                    var parametros = new DynamicParameters();
                    parametros.Add("@idCliente", lancamento.IdCliente, DbType.Guid);
                    parametros.Add("@contaOrigem", lancamento.ContaOrigem, DbType.String);
                    parametros.Add("@contaDestino", lancamento.ContaDestino, DbType.String);
                    parametros.Add("@data", lancamento.Data, DbType.DateTime);
                    parametros.Add("@tipo", lancamento.Tipo, DbType.Int16);
                    parametros.Add("@descricao", lancamento.Descricao, DbType.String);
                    parametros.Add("@valor", lancamento.Valor, DbType.Double);

                    _dbConnection.Execute(sql, parametros);

                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                throw ex;
            }
        }
Beispiel #7
0
        public async Task <Pagamento> Apply(Consolidacao consolidacao, Lancamento lancamento)
        {
            try
            {
                var contaBancaria = _contas.FindAll(new ContaBancaria.ByNumero(lancamento.ContaDestino)).FirstOrDefault();
                var saldo         = _calcularSaldo.Apply(contaBancaria);

                if (contaBancaria == null)
                {
                    throw new Exception("Conta Bancária inválida");
                }

                if (!contaBancaria.Tipo.Equals(lancamento.TipoConta))
                {
                    throw new Exception("Tipo de conta inválido");
                }

                var pagamento = new Pagamento(lancamento, contaBancaria);

                if (!saldo.Has(pagamento.Valor))
                {
                    throw new Exception("Não há limite disponível");
                }

                _lancamentos.AddPagamento(pagamento);

                consolidacao.Pagamentos.Add(pagamento);

                return(pagamento);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #8
0
 public void FazerLancamento(Lancamento lancamento)
 {
     if (lancamento.ContaOrigem.Id == contaInvalida)
     {
         throw new Exception("erro ao inserir lancamento");
     }
 }
Beispiel #9
0
        public ICollection <string> Efetuar(int Id, double valor)
        {
            var listaErros = new List <string>();

            var conta = _contaClienteRepository.Find(Id);

            foreach (var spec in _regrasNegocio)
            {
                if (spec.IsSatisfiedBy(conta, valor))
                {
                    listaErros.Add(spec.Mensagem);
                }
            }

            if (listaErros.Count == 0)
            {
                conta.Saldo += valor;
                _contaClienteRepository.Update(conta);

                var lancamento = new Lancamento()
                {
                    ContaClienteId = Id,
                    TipoOperacao   = TipoOperacao.Credito,
                    Valor          = valor
                };

                _lancamentoRepository.Add(lancamento);
            }

            return(listaErros);
        }
        private async void PageLoadExecute()
        {
            var lista = new List <ListaSelecao>();

            lista.Add(new ListaSelecao()
            {
                Id = 1, Nome = "Receita"
            });
            lista.Add(new ListaSelecao()
            {
                Id = 2, Nome = "Despesa"
            });
            Tipos = lista;

            await CarregarDadosAuxiliares();

            if (Parametro != null)
            {
                var id = int.Parse(Parametro.ToString());

                Detalhe = await _contaRepositorio.ObterDetalhesLancamento(id);

                ContaSelecionada     = Contas.FirstOrDefault(c => c.ContaId == Detalhe.ContaId);
                CategoriaSelecionada = Categorias.FirstOrDefault(c => c.CategoriaId == Detalhe.CategoriaId);
                TipoSelecionado      = Tipos.FirstOrDefault(c => c.Id == (Detalhe.Tipo == "+" ? 1 : 2));
            }
            else
            {
                Detalhe = new Lancamento()
                {
                    DataLancamento = DateTime.Now, DataVencimento = DateTime.Now
                };
            }
        }
        private void PagarProximaParcela(Parcela parcela, float valorRestante)
        {
            Parcela p = new Parcela();

            p.emprestimo_id = parcela.emprestimo_id;
            List <Parcela> resultado = this.Consultar(p, TipoPesquisa.E);

            p = this.verificarProximaParcela(resultado);

            if (p != null)
            {
                p.data_pagamento   = DateTime.Now;
                p.statusparcela_id = 2;
                p.valor_pago       = valorRestante;
                if (valorRestante > parcela.valor)
                {
                    //valorRestante = parcela.valor_pago.Value - parcela.valor;
                    //p.valor_pago = parcela.valor;
                    this.Alterar(p);
                    //this.PagarProximaParcela(p, valorRestante);
                }
                else if (valorRestante < parcela.valor)
                {
                    //p.valor_pago = valorRestante;
                    this.Alterar(p);
                    // this.AdicionarParcelaExtra(p);
                }
                else
                {
                    //p.valor_pago = valorRestante;
                    this.Alterar(p);
                }
            }
            else
            {
                ILancamentoProcesso processoLancamento = LancamentoProcesso.Instance;
                Lancamento          lancamento         = new Lancamento();

                lancamento.valor             = parcela.valor_pago.Value;
                lancamento.lancamentotipo_id = 1;
                lancamento.data        = parcela.data_pagamento.Value;
                lancamento.fonte       = "parcela";
                lancamento.timeCreated = DateTime.Now;
                lancamento.usuario_id  = ClasseAuxiliar.UsuarioLogado.ID;
                processoLancamento.Incluir(lancamento);
                processoLancamento.Confirmar();
                parcela.statusparcela_id = 1;
                Parcela p2 = new Parcela();
                p2.statusparcela_id = parcela.statusparcela_id;
                p2.sequencial       = parcela.sequencial + 1;
                p2.emprestimo_id    = parcela.emprestimo_id;
                p2.valor            = valorRestante;
                p2.valor_pago       = valorRestante;
                p2.data_pagamento   = DateTime.Now;
                p2.data_vencimento  = DateTime.Now;
                this.Incluir(p2);
                this.Confirmar();
            }
        }
Beispiel #12
0
        public async Task <ISaida> CadastrarLancamento(LancamentoEntrada entrada)
        {
            // Verifica se as informações para cadastro foram informadas corretamente
            if (entrada.Invalido)
            {
                return(new Saida(false, entrada.Mensagens, null));
            }

            // Verifica se a categoria existe a partir do ID informado.
            this.NotificarSeFalso(await _categoriaRepositorio.VerificarExistenciaPorId(entrada.IdUsuario, entrada.IdCategoria), CategoriaMensagem.Id_Categoria_Nao_Existe);

            // Verifica se a conta existe a partir do ID informado.
            this.NotificarSeFalso(await _contaRepositorio.VerificarExistenciaPorId(entrada.IdUsuario, entrada.IdConta), ContaMensagem.Id_Conta_Nao_Existe);

            // Verifica se a pessoa existe a partir do ID informado.
            if (entrada.IdPessoa.HasValue)
            {
                this.NotificarSeFalso(await _pessoaRepositorio.VerificarExistenciaPorId(entrada.IdUsuario, entrada.IdPessoa.Value), PessoaMensagem.Id_Pessoa_Nao_Existe);
            }

            // Verifica se a parcela existe a partir do ID informado.
            if (entrada.IdParcela.HasValue)
            {
                this.NotificarSeFalso(await _parcelaRepositorio.VerificarExistenciaPorId(entrada.IdUsuario, entrada.IdParcela.Value), ParcelaMensagem.Id_Parcela_Nao_Existe);
            }

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var conta = await _contaRepositorio.ObterPorId(entrada.IdConta);

            // Verifica se a quantidade de ações vendidas é maior que o total de ações disponíveis na carteira.
            if (conta.Tipo == TipoConta.Acoes && entrada.IdCategoria == (int)TipoCategoriaEspecial.VendaAcoes)
            {
                var operacoes = await _lancamentoRepositorio.ObterPorPeriodo(conta.Id, new DateTime(2019, 1, 1), DateTime.Today.AddHours(23).AddMinutes(59).AddSeconds(59));

                var qtdAcoesCompradas = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.CompraAcoes).Sum(x => x.QtdRendaVariavel.HasValue ? x.QtdRendaVariavel.Value : 0);
                var qtdAcoesVendidas  = operacoes.Where(x => x.IdCategoria == (int)TipoCategoriaEspecial.VendaAcoes).Sum(x => x.QtdRendaVariavel.HasValue ? x.QtdRendaVariavel.Value : 0);

                var qtdAcoesDisponivel = qtdAcoesCompradas - qtdAcoesVendidas;

                this.NotificarSeVerdadeiro(entrada.QuantidadeAcoes > qtdAcoesDisponivel, LancamentoMensagem.Qtd_Acoes_Venda_Maior_Disponivel_Carteira);

                if (this.Invalido)
                {
                    return(new Saida(false, this.Mensagens, null));
                }
            }

            var lancamento = new Lancamento(entrada);

            await _lancamentoRepositorio.Inserir(lancamento);

            await _uow.Commit();

            return(new Saida(true, new[] { LancamentoMensagem.Lancamento_Cadastrado_Com_Sucesso }, new LancamentoSaida(await _lancamentoRepositorio.ObterPorId(lancamento.Id))));
        }
Beispiel #13
0
        public async Task <Lancamento> CreateLancamento(Lancamento lancamento)
        {
            await _context.Lancamento.AddAsync(lancamento);

            await _context.SaveChangesAsync();

            return(lancamento);
        }
Beispiel #14
0
 private void Validate(Lancamento lancamento, LancamentoValidator validator)
 {
     if (lancamento == null)
     {
         throw new Exception("Lançamento não encontrado!");
     }
     validator.ValidateAndThrow(lancamento);
 }
Beispiel #15
0
 public void Cadastrar(Lancamento lancamentos)
 {
     using (OpFlixContext ctx = new OpFlixContext())
     {
         ctx.Lancamento.Add(lancamentos);
         ctx.SaveChanges();
     }
 }
Beispiel #16
0
    private void CarregarGrid()
    {
        Lancamento l = new Lancamento();

        l.usuario = Usuario;
        this.grdLancamento.DataSource = l.listar();
        this.grdLancamento.DataBind();
    }
        private void atualizarLista()
        {
            List <Lancamento> mLista = Lancamento.getLancamentos();

            AdapterLancamentos mBase = new AdapterLancamentos(mLista, this);

            lstConsultarLancamentos.Adapter = mBase;
        }
Beispiel #18
0
        //DELETE
        public IActionResult Delete(int Id)
        {
            Lancamento lancamento = _LancamentoDAO.FindById(Id);

            _LancamentoDAO.Delete(lancamento);

            return(RedirectToAction("Index", "Lancamento"));
        }
        public void Desativar(int id)
        {
            Lancamento lancamento = _contexto.Lancamentos.Find(id);

            lancamento.FlagAtivo    = false;
            lancamento.DataExclusao = DateTime.Now;
            Atualizar(lancamento);
        }
        public void AtualizarLancamento(Lancamento lancamento)
        {
            Lancamento LancamentoBuscado = ctx.Lancamento.FirstOrDefault(x => x.IdLancamentos == lancamento.IdLancamentos);

            LancamentoBuscado.Nome = lancamento.Nome;
            ctx.Lancamento.Update(LancamentoBuscado);
            ctx.SaveChanges();
        }
Beispiel #21
0
        public async Task Adicionar(Lancamento lancamento)
        {
            lancamento.id = GerarID.GerarObjectID();
            lancamento.idenficadorTransacao = Guid.NewGuid().ToString();

            var database = this.context.getDatabase();
            await database.GetCollection <Lancamento>(this.collectionName).InsertOneAsync(lancamento);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Lancamento lancamento = db.Lancamentos.Find(id);

            db.Lancamentos.Remove(lancamento);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public Chamado Selecionar(Chamado objEntrada)
        {
            MySqlCommand cmd;

            ConexaoBanco banco = new ConexaoBanco();

            banco.AbrirConexao();


            #region Carregando objeto chamado
            cmd = new MySqlCommand("SELECT id, descricao, dataAbertura, custo FROM chamado" +
                                   "WHERE id = @id");

            cmd.Parameters.Add(new MySqlParameter("@id", objEntrada.id));

            MySqlDataReader reader = banco.Pesquisar(cmd);

            reader.Read();

            Chamado obj = new Chamado();
            obj.id           = reader.GetInt32(0);
            obj.descricao    = reader.GetString(1);
            obj.dataAbertura = reader.GetDateTime(2);
            obj.custo        = reader.GetDouble(3);

            reader.Close();

            #endregion

            #region Carregando lista de lancamento
            cmd = new MySqlCommand("SELECT lancamento.data, status.id, status.descricao FROM lancamento" +
                                   "INNER JOIN status on lancamento.id_status = status.id" +
                                   "WHERE lancamento.id_chamado = @id_chamado");

            cmd.Parameters.Add(new MySqlParameter("@id_chamado", objEntrada.id));
            reader = banco.Pesquisar(cmd);

            obj.lancamentos = new List <Lancamento>();

            while (reader.Read())
            {
                Lancamento lancamento = new Lancamento();
                lancamento.status = new Status();

                lancamento.data             = reader.GetDateTime(0);
                lancamento.status.id        = reader.GetInt32(1);
                lancamento.status.descricao = reader.GetString(2);

                obj.lancamentos.Add(lancamento);
            }

            reader.Close();
            #endregion

            banco.FecharConexao();

            return(obj);
        }
Beispiel #24
0
        public void update(Lancamento lc, string ie)
        {
            Movimento movimento = oneConta(lc.Entidade.Id, lc.Conta.Id, lc.Data.Month, lc.Data.Year);

            if (ie == "I")
            {
                if (movimento.Id == 0)
                {
                    movimento.Entidade = lc.Entidade;
                    movimento.Conta    = lc.Conta;
                    movimento.Mes      = lc.Data.Month;
                    movimento.Ano      = lc.Data.Year;
                    if (lc.DC == "D")
                    {
                        movimento.Devedor = lc.Valor;
                    }
                    if (lc.DC == "C")
                    {
                        movimento.Credor = lc.Valor;
                    }

                    insert(movimento);
                }
                else
                {
                    if (lc.DC == "D")
                    {
                        movimento.Devedor += lc.Valor;
                    }
                    if (lc.DC == "C")
                    {
                        movimento.Credor += lc.Valor;
                    }

                    update(movimento);
                }
            }
            else
            {
                if (lc.DC == "D")
                {
                    movimento.Devedor -= lc.Valor;
                }
                if (lc.DC == "C")
                {
                    movimento.Credor -= lc.Valor;
                }

                if (movimento.Devedor == 0 && movimento.Credor == 0)
                {
                    delete(movimento);
                }
                else
                {
                    update(movimento);
                }
            }
        }
Beispiel #25
0
        public void ShowLancamentoView(Lancamento lancamentoView)
        {
            LancamentoOpen = new LancamentoOpenWindow()
            {
                DataContext = new LancamentoOpenViewModel(lancamentoView)
            };

            LancamentoOpen.ShowDialog();
        }
Beispiel #26
0
 /// <summary>
 /// Deletar um lançamento buscado por seu Id
 /// </summary>
 /// <param name="id"></param>
 public void Deletar(int id)
 {
     using (OpFlixContext ctx = new OpFlixContext())
     {
         Lancamento lancamentoBuscado = ctx.Lancamento.FirstOrDefault(x => x.IdLancamento == id);
         ctx.Lancamento.Remove(lancamentoBuscado);
         ctx.SaveChanges();
     }
 }
Beispiel #27
0
        public void Insert(Lancamento lancamento)
        {
            _context.Lancamentos.Add(lancamento);
            _context.SaveChanges();

            _auditService.Save(new AuditEvent {
                CreatedDate = DateTime.Now, Action = "Create", Entity = "Lancamento", Id = cc.Id
            });
        }
Beispiel #28
0
 /// MÉTODO PARA INSPEÇÃO POR IDENTIFICADOR NUMÉRICO E DELEÇÃO DE ITEM-LANÇAMENTO ESTRITO
 /// <summary>
 /// Inspeciona por identificador numérico e captura, porventura exista, o item-lançamento estrito: doravante deletando-o.
 /// </summary>
 /// <param name="id"></param>
 public void Deletar(int id)
 {
     using (OpflixContext ctx = new OpflixContext())
     {
         Lancamento lancamento = ctx.Lancamento.Find(id);
         ctx.Lancamento.Remove(lancamento);
         ctx.SaveChanges();
     }
 }
Beispiel #29
0
        //public void Deletar(int id)
        //{
        //    using (OpFlixContext ctx = new OpFlixContext())
        //    {
        //        Lancamento LancamentoBuscado = ctx.Lancamento.Find(id);
        //        ctx.Lancamento.Remove(LancamentoBuscado);
        //        ctx.SaveChanges();
        //    }
        //}

        public void Deletar(int id)
        {
            using (OpFlixContext ctx = new OpFlixContext())
            {
                Lancamento LancamentoBuscado = ctx.Lancamento.Find(id);
                ctx.Lancamento.Remove(LancamentoBuscado);
                ctx.SaveChanges();
            }
        }
        public void Incluir(Emprestimo emprestimo, List <DayOfWeek> diasUteis)
        {
            this.emprestimoRepositorio.Incluir(emprestimo);
            this.Confirmar();
            IParcelaProcesso        parcelaProcesso        = ParcelaProcesso.Instance;
            IPrazoPagamentoProcesso prazoPagamentoProcesso = PrazoPagamentoProcesso.Instance;

            PrazoPagamento prazo = new PrazoPagamento();

            prazo.ID = emprestimo.prazospagamento_id;

            prazo = prazoPagamentoProcesso.Consultar(prazo, TipoPesquisa.E)[0];
            LancamentoProcesso processoLancamento = LancamentoProcesso.Instance;

            Lancamento lancamento = new Lancamento();

            lancamento.valor             = emprestimo.valor;
            lancamento.lancamentotipo_id = 3;
            lancamento.data        = emprestimo.data_emprestimo;
            lancamento.fonte       = "Emprestimo";
            lancamento.timeCreated = DateTime.Now;
            lancamento.usuario_id  = ClasseAuxiliar.UsuarioLogado.ID;
            processoLancamento.Incluir(lancamento);
            processoLancamento.Confirmar();


            Parcela parcela;
            float   valorJuros = emprestimo.valor + (emprestimo.valor * emprestimo.juros / 100);
            float   valor      = valorJuros / emprestimo.qtde_parcelas;

            //if (valor % 2 == 1)
            //{

            //}

            DateTime dataAtual      = DateTime.Now;
            DateTime dataVencimento = DateTime.Now;

            for (int i = 1; i <= emprestimo.qtde_parcelas; i++)
            {
                parcela = new Parcela();
                parcela.emprestimo_id  = emprestimo.ID;
                parcela.data_pagamento = null;
                parcela.sequencial     = i;
                dataVencimento         = dataVencimento.AddDays(prazo.qtde_dias);

                //if (dataVencimento.DayOfWeek == System.DayOfWeek.Monday)
                //    dataVencimento = dataVencimento.AddDays(1);
                dataVencimento = VerificarProximaData(dataVencimento, diasUteis);

                parcela.data_vencimento  = dataVencimento;
                parcela.valor            = valor;
                parcela.statusparcela_id = 2;
                parcelaProcesso.Incluir(parcela);
                parcelaProcesso.Confirmar();
            }
        }
Beispiel #31
0
        public override Lancamento InitDto(IReader reader, Lancamento dto)
        {
            base.InitDto(reader, dto);

            // Sobreescreve a geração default para estes campos:
            dto.Vencimento = MockReader.GenerateDateTime(-5, 5);
            dto.Pagamento = MockReader.Maybe<int, DateTime>(MockReader.GenerateDateTime, -5, 50);
            dto.Total = MockReader.GenerateDecimal(20000);

            return dto;
        }
 public static void add(Lancamento lancamento)
 {
     try
     {
         using (OikoDataContext db = new OikoDataContext())
         {
             db.Lancamento.InsertOnSubmit(lancamento);
             db.SubmitChanges();
         }
     }
     catch (Exception ex)
     {
         throw new Exception("Ocorreu um erro ao tentar criar a lancamento", ex);
     }
 }
        public static void update(Lancamento nl)
        {
            try
            {
                using (OikoDataContext db = new OikoDataContext())
                {
                    Lancamento lancamento = db.Lancamento.SingleOrDefault(l => l.id == nl.id);
                    if (lancamento == null)
                    {
                        throw new Exception(
                            string.Format("O lancamento com id {0} não foi encontrado", nl.id)
                            );
                    }
                    lancamento.dataLancamento = nl.dataLancamento;
                    lancamento.valor = nl.valor;
                    lancamento.descricao = nl.descricao;
                    lancamento.idCategoria = nl.idCategoria;
                    lancamento.idConta = nl.idConta;
                    lancamento.idFormaPagamento = nl.idFormaPagamento;
                    lancamento.multa = nl.multa;
                    lancamento.jurosPorDia = nl.jurosPorDia;

                    db.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Ocorreu um erro ao tentar atualizar o lancamento", ex);
            }
        }