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);
        }
示例#2
0
        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);
        }