public static void SaveInTransaction(ISession session, Transferencia entity) { var lancamento = new Lancamento(); var partida = new PartidasLancamento(); var contraPartida = new PartidasLancamento(); // Criação do lançamento. //lancamento.Pessoa = Utils.Configuracao.PessoaPadrao; lancamento.DataLancamento = DateTime.Now; lancamento.Valor = entity.Valor; // Criação das partidas. partida.PlanoConta = entity.ContaOrigem; partida.Valor = entity.Valor; contraPartida.PlanoConta = entity.ContaDestino; contraPartida.Valor = entity.Valor; // Coloca as partidas no lançamento. lancamento.Partidas.Add(partida); lancamento.Partidas.Add(contraPartida); // Salva o lançamento. using (new LancamentoRepository()) { LancamentoRepository.Save(lancamento); } // Passa o lançamento para a transferência. entity.Lancamentos.Add(lancamento); // Salva a transferência. session.Save(entity); }
public static PartidasLancamento VerificaPartida(Lancamento lanc, PlanoContaReferencial planoConta) { if (planoConta == null) { return(null); } foreach (var partida in lanc.Partidas.Where(partida => partida.PlanoConta.Codigo.Equals(planoConta.Codigo))) { return(partida); } // Caso não encontre uma partida correspondente ao código no lançamento cria uma nova partida. var p = new PartidasLancamento { PlanoConta = PlanoContaReferencialRepository.GetByCodigoConta(planoConta.Codigo) }; lanc.Partidas.Add(p); return(p); }