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); }
public static void PlanoContaReferencial(ISession session) { try { string path = AppDomain.CurrentDomain.BaseDirectory + "arquivos\\"; var serializer = new XmlSerializer(typeof(PlanoContaReferencialXml)); string arquivo = path + "plano_conta.xml"; var reader = new StreamReader(arquivo); List <Conta> contas = ((PlanoContaReferencialXml)serializer.Deserialize(reader)).Contas; reader.Close(); foreach (Conta conta in contas) { if (!chavesExistentes.ContainsKey(conta.Codigo) && conta.DataValidade.Equals("")) { using (var ct = new PlanoContaReferencial()) { ct.Codigo = conta.Codigo; ct.Descricao = conta.Descricao; string sCod = "0"; if (conta.Codigo.Contains(".")) { sCod = conta.Codigo.Substring(0, conta.Codigo.IndexOf(".", StringComparison.Ordinal)); } else { sCod = conta.Codigo; } int cod = int.Parse(sCod); switch (cod) { case 1: ct.NaturezaConta = NaturezaConta.Ativo; break; case 2: ct.NaturezaConta = NaturezaConta.Passivo; break; case 3: ct.NaturezaConta = NaturezaConta.ResultadoLiquido; break; case 4: ct.NaturezaConta = NaturezaConta.SuperavitDeficit; break; case 5: ct.NaturezaConta = NaturezaConta.CustosProducao; break; default: ct.NaturezaConta = NaturezaConta.Outras; break; } session.Save(ct); chavesExistentes.Add(ct.Codigo, conta); } } } } catch (Exception exception) { throw new Exception("Não foi possível carregar o plano de contas referêncial para o " + "banco de dados.\n Erro: " + exception.Message); throw; } }