/// <summary> /// Atualizar dados da conta no banco de dados. /// </summary> /// <param name="codSituacao">nova situação da conta</param> /// <param name="valorDesconto">novo valor de desconto</param> /// <param name="codConta">conta pesquisada</param> public void Atualizar(string codSituacao, decimal desconto, long codConta) { try { var query = from contaSet in saceContext.ContaSet where contaSet.codConta == codConta select contaSet; ContaE _conta = query.ToList().ElementAtOrDefault(0); _conta.codSituacao = codSituacao; _conta.desconto = desconto; var query2 = from contaSet in saceContext.ContaSet where contaSet.codSaida == _conta.codSaida select contaSet; decimal somaContas = query2.ToList().Sum(c => (c.valor - c.desconto)); var query3 = from saida in saceContext.tb_saida where saida.codSaida == _conta.codSaida select saida; tb_saida _saida = query3.ToList().ElementAtOrDefault(0); if (_saida != null) { _saida.totalAVista = somaContas; } saceContext.SaveChanges(); } catch (Exception e) { throw new DadosException("Conta", e.Message, e); } }
/// <summary> /// Substitui as contas associadas a um documento fiscal por uma lista de boletos /// </summary> /// <param name="cupomFiscal"></param> /// <param name="listaContaBoletos"></param> public void Substituir(string cupomFiscal, List <Conta> listaContaBoletos) { try { var query = from conta in saceContext.ContaSet where conta.numeroDocumento.Equals(cupomFiscal) select conta; List <ContaE> listaContas = query.ToList(); foreach (ContaE conta in listaContas) { conta.codSituacao = SituacaoConta.SITUACAO_SUBTITUIDA; } foreach (Conta boleto in listaContaBoletos) { ContaE _conta = new ContaE(); Atribuir(boleto, _conta); repConta.Inserir(_conta); } saceContext.SaveChanges(); } catch (Exception e) { throw new DadosException("Conta", e.Message, e); } }
/// <summary> /// Insere uma movimentacao na conta bancária e atualiza os dados da conta associada /// </summary> /// <param name="movimentacaoConta">movimentacao da conta</param> /// <param name="conta">conta associada</param> /// <returns></returns> public Int64 Inserir(MovimentacaoConta movimentacaoConta) { try { MovimentacaoContaE _movimentacaoContaE = new MovimentacaoContaE(); Atribuir(movimentacaoConta, _movimentacaoContaE); repMovimentacaoConta.Inserir(_movimentacaoContaE); saceContext.SaveChanges(); // Atualiza saldo da conta bancária var query = from conta in saceContext.ContaSet where conta.codConta == _movimentacaoContaE.codConta select conta; ContaE _contaE = query.FirstOrDefault(); if (_contaE != null) { AtualizaSituacaoConta(_contaE, _movimentacaoContaE, false); AtualizaSituacaoPagamentosEntrada(_contaE); AtualizaSituacaoPagamentosSaida(_contaE, _movimentacaoContaE, false); } return(_movimentacaoContaE.codMovimentacao); } catch (Exception e) { throw new DadosException("Movimentação de Conta", e.Message, e); } }
/// <summary> /// Atualiza conta para quitada quando todas a soma de todas as movimentacoes quitam a conta /// </summary> /// <param name="_contaE"></param> private ContaE AtualizaSituacaoConta(ContaE contaE, MovimentacaoContaE movimentacaoE, bool removeuMovimento) { if (contaE != null) { decimal valorConta = Math.Round(contaE.valor - contaE.desconto, 2); if (valorConta == movimentacaoE.valor) { if (removeuMovimento) { contaE.codSituacao = SituacaoConta.SITUACAO_ABERTA; } else { contaE.codSituacao = SituacaoConta.SITUACAO_QUITADA; } } else { decimal totalMovimentacoesConta = ObterPorConta(contaE.codConta).Sum(c => c.Valor); if (valorConta <= totalMovimentacoesConta) { contaE.codSituacao = SituacaoConta.SITUACAO_QUITADA; } else { contaE.codSituacao = SituacaoConta.SITUACAO_ABERTA; } } } saceContext.SaveChanges(); return(contaE); }
/// <summary> /// Atualiza Situacao dos pagamentos da entrada para quitado quando todas as contas estão quitadas /// </summary> /// <param name="_contaE"></param> private void AtualizaSituacaoPagamentosEntrada(ContaE _contaE) { var query = from entrada in saceContext.EntradaSet where entrada.codEntrada == _contaE.codEntrada select entrada; EntradaE _entradaE = query.ToList().ElementAtOrDefault(0); if (_entradaE != null) { if (!_contaE.codEntrada.Equals(Global.ENTRADA_PADRAO)) { var query2 = from conta in saceContext.ContaSet where conta.codSituacao.Equals(SituacaoConta.SITUACAO_ABERTA) && conta.codEntrada == _contaE.codEntrada select conta; if (query2.Count() == 0) { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA; } else { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS; } } } saceContext.SaveChanges(); }
/// <summary> /// Remover movimentacao /// </summary> /// <param name="codMovimentacaoConta"></param> public void Remover(Int64 codMovimentacaoConta) { try { var queryMovimentacao = from movimentacaoContaE in saceContext.MovimentacaoContaSet where movimentacaoContaE.codMovimentacao == codMovimentacaoConta select movimentacaoContaE; MovimentacaoContaE _movimentacaoContaE = queryMovimentacao.ToList().ElementAtOrDefault(0); if (_movimentacaoContaE != null) { long codConta = (long)_movimentacaoContaE.codConta; // Atualiza status da conta, entrada e saída var query = from conta in saceContext.ContaSet where conta.codConta == _movimentacaoContaE.codConta select conta; ContaE _contaE = query.FirstOrDefault(); repMovimentacaoConta.Remover(_movimentacaoContaE); saceContext.SaveChanges(); if (_contaE != null) { AtualizaSituacaoConta(_contaE, _movimentacaoContaE, true); AtualizaSituacaoPagamentosEntrada(_contaE); AtualizaSituacaoPagamentosSaida(_contaE, _movimentacaoContaE, true); } } } catch (Exception e) { throw new DadosException("Movimentação de Conta", e.Message, e); } }
/// <summary> /// Atualiza Situacao dos pagamentos da saída para quitado quando todas as contas estão quitadas /// </summary> /// <param name="_contaE"></param> private void AtualizaSituacaoPagamentosSaida(ContaE contaE, MovimentacaoContaE movimentacaoContaE, bool removeuMovimento) { if (!contaE.codSaida.Equals(Global.SAIDA_PADRAO)) { var query = from saida in saceContext.tb_saida where saida.codSaida == contaE.codSaida select saida; tb_saida _saidaE = query.FirstOrDefault(); if (_saidaE != null) { if (_saidaE.totalAVista == movimentacaoContaE.valor) { if (removeuMovimento) { _saidaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS; } else { _saidaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA; } } else { if (GerenciadorConta.GetInstance(saceContext).ObterPorSituacaoSaida(SituacaoConta.SITUACAO_ABERTA, (long)contaE.codSaida).ToList().Count == 0) { _saidaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA; IEnumerable <Conta> contas = GerenciadorConta.GetInstance(saceContext).ObterPorSaida(_saidaE.codSaida); List <long> listaCodContas = new List <long>(); foreach (Conta conta in contas) { listaCodContas.Add(conta.CodConta); } decimal somaMovimentacoes = 0; IEnumerable <MovimentacaoConta> listaMovimentacoes = ObterPorContas(listaCodContas); foreach (MovimentacaoConta movimentacao in listaMovimentacoes) { somaMovimentacoes += movimentacao.Valor; } GerenciadorSaida.GetInstance(saceContext).AtualizarTipoPedidoGeradoPorSaida(_saidaE.codTipoSaida, _saidaE.pedidoGerado, _saidaE.tipoDocumentoFiscal, somaMovimentacoes, _saidaE.codSaida); //_saidaE.totalAVista = somaMovimentacoes; } else { _saidaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS; } } saceContext.SaveChanges(); } } }
/// <summary> /// Atribui entidade à entidade persistente /// </summary> /// <param name="conta"></param> /// <param name="_conta"></param> private void Atribuir(Conta conta, ContaE _conta) { _conta.codConta = conta.CodConta; _conta.codEntrada = conta.CodEntrada; _conta.codPagamento = conta.CodPagamento; _conta.codPessoa = conta.CodPessoa; _conta.codPlanoConta = conta.CodPlanoConta; _conta.codSaida = conta.CodSaida; _conta.codSituacao = conta.CodSituacao.ToString(); _conta.dataVencimento = conta.DataVencimento; _conta.desconto = conta.Desconto; _conta.observacao = conta.Observacao; _conta.numeroDocumento = conta.NumeroDocumento; _conta.formatoConta = conta.FormatoConta; _conta.valor = conta.Valor; }
/// <summary> /// Insere conta na base de dados /// </summary> /// <param name="conta"></param> /// <returns></returns> public Int64 Inserir(Conta conta) { try { ContaE _conta = new ContaE(); Atribuir(conta, _conta); repConta.Inserir(_conta); saceContext.SaveChanges(); return(_conta.codConta); } catch (Exception e) { throw new DadosException("Conta", e.Message, e); } }
/// <summary> /// Atualizar dados da conta no banco de dados. /// </summary> /// <param name="codSituacao">nova situação da conta</param> /// <param name="codConta">conta pesquisada</param> public void AtualizarDadosCartaoCredito(Conta conta) { try { var query = from contaSet in saceContext.ContaSet where contaSet.codConta == conta.CodConta select contaSet; ContaE _conta = query.ToList().ElementAtOrDefault(0); Atribuir(conta, _conta); saceContext.SaveChanges(); } catch (Exception e) { throw new DadosException("Conta", e.Message, e); } }
/// <summary> /// Atualizar dados da conta no banco de dados. /// </summary> /// <param name="codSituacao">nova situação da conta</param> /// <param name="codConta">conta pesquisada</param> public void Atualizar(string codSituacao, long codConta) { try { var query = from contaSet in saceContext.ContaSet where contaSet.codConta == codConta select contaSet; ContaE _conta = query.ToList().ElementAtOrDefault(0); _conta.codSituacao = codSituacao; saceContext.SaveChanges(); } catch (Exception e) { throw new DadosException("Conta", e.Message, e); } }
/// <summary> /// Atualiza dados da conta no banco de dados /// </summary> /// <param name="conta"></param> public void Atualizar(Conta conta) { if ((conta.CodEntrada != 1) || (conta.CodSaida != 1)) { throw new NegocioException("Essa conta não pode ser alterada por estar associada a uma entrada / saída."); } try { var repConta = new RepositorioGenerico <ContaE>(); ContaE _conta = repConta.ObterEntidade(c => c.codConta == conta.CodConta); Atribuir(conta, _conta); repConta.SaveChanges(); } catch (Exception e) { throw new DadosException("Conta", e.Message, e); } }
public void Atualizar(long codPessoa, DateTime dataVencimento, string formatoConta, string nsuTransacao, decimal valor, long codConta) { try { var query = from contaSet in saceContext.ContaSet where contaSet.codConta == codConta select contaSet; ContaE _conta = query.ToList().ElementAtOrDefault(0); _conta.codPessoa = codPessoa; _conta.dataVencimento = dataVencimento; _conta.formatoConta = formatoConta; _conta.numeroDocumento = nsuTransacao.ToString(); _conta.valor = valor; saceContext.SaveChanges(); } catch (Exception e) { throw new DadosException("Conta", e.Message, e); } }
/// <summary> /// Atualiza Situacao dos pagamentos da entrada para quitado quando todas as contas estão quitadas /// </summary> /// <param name="_contaE"></param> private void AtualizaSituacaoPagamentosEntrada(ContaE _contaE) { var query = from entrada in saceContext.EntradaSet where entrada.codEntrada == _contaE.codEntrada select entrada; EntradaE _entradaE = query.ToList().ElementAtOrDefault(0); if (_entradaE != null) { if (!_contaE.codEntrada.Equals(Global.ENTRADA_PADRAO)) { if (GerenciadorConta.GetInstance(saceContext).ObterPorSituacaoEntrada(SituacaoConta.SITUACAO_ABERTA, (long)_contaE.codEntrada).ToList().Count == 0) { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.QUITADA; } else { _entradaE.codSituacaoPagamentos = SituacaoPagamentos.LANCADOS; } } } saceContext.SaveChanges(); }