/// <summary>
 /// Atribui a entidade à entidade persistente
 /// </summary>
 /// <param name="planoConta"></param>
 /// <param name="_planoContaE"></param>
 private static void Atribuir(PlanoConta planoConta, PlanoContaE _planoContaE)
 {
     _planoContaE.codPlanoConta = planoConta.CodPlanoConta;
     _planoContaE.codTipoConta  = planoConta.TipoConta;
     _planoContaE.descricao     = planoConta.Descricao;
     _planoContaE.diaBase       = planoConta.DiaBase;
 }
        /// <summary>
        /// Insere um novo plano de contas
        /// </summary>
        /// <param name="planoConta"></param>
        /// <returns></returns>
        public Int64 Inserir(PlanoConta planoConta)
        {
            try
            {
                var repPlanoConta = new RepositorioGenerico <PlanoContaE>();

                PlanoContaE _planoContaE = new PlanoContaE();
                Atribuir(planoConta, _planoContaE);

                repPlanoConta.Inserir(_planoContaE);
                repPlanoConta.SaveChanges();

                return(_planoContaE.codPlanoConta);
            }
            catch (Exception e)
            {
                throw new DadosException("Plano de Contas", e.Message, e);
            }
        }
        /// <summary>
        /// Atualiza os dados do plano de contas
        /// </summary>
        /// <param name="planoConta"></param>
        public void Atualizar(PlanoConta planoConta)
        {
            if ((planoConta.CodPlanoConta == 1) || (planoConta.CodPlanoConta == 2))
            {
                throw new NegocioException("O plano de conta não pode ser editado para manter a consitência da base de dados.");
            }

            try
            {
                var repPlanoConta = new RepositorioGenerico <PlanoContaE>();

                PlanoContaE _planoContaE = repPlanoConta.ObterEntidade(pc => pc.codPlanoConta == planoConta.CodPlanoConta);
                Atribuir(planoConta, _planoContaE);

                repPlanoConta.SaveChanges();
            }
            catch (Exception e)
            {
                throw new DadosException("Plano de Contas", e.Message, e);
            }
        }