/// <summary>
        /// Henter og returnerer er givent regnskab.
        /// </summary>
        /// <param name="nummer">Unik identifikation af regnskabet.</param>
        /// <returns>Regnskab.</returns>
        public virtual Regnskab RegnskabGetByNummer(int nummer)
        {
            var brevhovedlisteHelper = new BrevhovedlisteHelper(FællesRepository.BrevhovedGetAll());
            var adresselisteHelper   = new AdresselisteHelper(AdresseRepository.AdresseGetAll());

            return(Repository.RegnskabGet(nummer, brevhovedlisteHelper.GetById, adresselisteHelper.GetById));
        }
示例#2
0
        public void TestAtBogføringslinjeAddTilføjerBogføringslinjer()
        {
            // Hent regnskab og find nødvendige konti.
            var adresselisteHelper   = new AdresselisteHelper(_adresseRepository.AdresseGetAll());
            var brevhovedlisteHelper = new BrevhovedlisteHelper(_fællesRepository.BrevhovedGetAll());
            var regnskab             = _finansstyringRepository.RegnskabGet(1, brevhovedlisteHelper.GetById,
                                                                            adresselisteHelper.GetById);
            var kontoDankort = regnskab.Konti.OfType <Konto>().Single(m => m.Kontonummer == "DANKORT");
            var budgetkontoØvrigeUdgifter = regnskab.Konti.OfType <Budgetkonto>().Single(m => m.Kontonummer == "8990");
            var bogføringer = budgetkontoØvrigeUdgifter.Bogføringslinjer.Count();

            // Opret bogføringer.
            var result1 = _finansstyringRepository.BogføringslinjeAdd(DateTime.Now, null, kontoDankort,
                                                                      "Test fra Repositories", budgetkontoØvrigeUdgifter,
                                                                      5000M, 0M, null);

            Assert.That(result1, Is.Not.Null);
            Assert.That(result1.Løbenummer, Is.GreaterThan(0));
            var result2 = _finansstyringRepository.BogføringslinjeAdd(DateTime.Now, null, kontoDankort,
                                                                      "Test fra Repositories", budgetkontoØvrigeUdgifter,
                                                                      0M, 5000M, null);

            Assert.That(result2, Is.Not.Null);
            Assert.That(result2.Løbenummer, Is.GreaterThan(0));

            // Genindlæs regnskab og find nødvendige konti.
            regnskab = _finansstyringRepository.RegnskabGet(1, brevhovedlisteHelper.GetById, adresselisteHelper.GetById);
            budgetkontoØvrigeUdgifter = regnskab.Konti.OfType <Budgetkonto>().Single(m => m.Kontonummer == "8990");
            Assert.That(budgetkontoØvrigeUdgifter.Bogføringslinjer.Count(), Is.EqualTo(bogføringer + 2));
        }
        /// <summary>
        /// Henter og returnerer alle adressekonti i et givent regnskab.
        /// </summary>
        /// <param name="regnskabsnummer">Regnskabsnummer.</param>
        /// <returns>Alle adressekonti i et givent regnskab.</returns>
        public virtual IEnumerable <AdresseBase> AdressekontoGetAllByRegnskab(int regnskabsnummer)
        {
            var brevhovedlisteHelper = new BrevhovedlisteHelper(FællesRepository.BrevhovedGetAll());
            var adresselisteHelper   = new AdresselisteHelper(AdresseRepository.AdresseGetAll());

            Repository.RegnskabGet(regnskabsnummer, brevhovedlisteHelper.GetById, adresselisteHelper.GetById);
            return(adresselisteHelper.Adresser.ToList());
        }
示例#4
0
        public void TestAtRegnskabGetHenterRegnskab()
        {
            var adresselisteHelper   = new AdresselisteHelper(_adresseRepository.AdresseGetAll());
            var brevhovedlisteHelper = new BrevhovedlisteHelper(_fællesRepository.BrevhovedGetAll());
            var regnskab             = _finansstyringRepository.RegnskabGet(1, brevhovedlisteHelper.GetById,
                                                                            adresselisteHelper.GetById);

            Assert.That(regnskab, Is.Not.Null);
            Assert.That(regnskab.Nummer, Is.EqualTo(1));
        }
示例#5
0
        public void TestAtGetByIdKasterIntranetRepositoryExceptionHvisAdresseBaseIkkeFindes()
        {
            var fixture            = new Fixture();
            var adresser           = fixture.CreateMany <Person>(3).ToList();
            var adresselisteHelper = new AdresselisteHelper(adresser);

            Assert.That(adresselisteHelper, Is.Not.Null);

            Assert.Throws <IntranetRepositoryException>(() => adresselisteHelper.GetById(-1));
        }
示例#6
0
        public void TestAtConstructorInitiererAdresselisteHelper()
        {
            var fixture            = new Fixture();
            var adresser           = fixture.CreateMany <Person>(3).ToList();
            var adresselisteHelper = new AdresselisteHelper(adresser);

            Assert.That(adresselisteHelper, Is.Not.Null);
            Assert.That(adresselisteHelper.Adresser, Is.Not.Null);
            Assert.That(adresselisteHelper.Adresser.Count(), Is.EqualTo(adresser.Count()));
        }
示例#7
0
        /// <summary>
        /// Henter alle adresser.
        /// </summary>
        /// <returns>Liste af adresser.</returns>
        public IEnumerable <AdresseBase> AdresseGetAll()
        {
            var channel = _channelFactory.CreateChannel <IAdresseRepositoryService>(EndpointConfigurationName);

            try
            {
                // Henter alle adressegrupper.
                var adressegruppeQuery = new AdressegruppeGetAllQuery();
                var adressegruppeViews = channel.AdressegruppeGetAll(adressegruppeQuery);
                // Henter alle betalingsbetingelser.
                var betalingsbetingelseQuery = new BetalingsbetingelseGetAllQuery();
                var betalingsbetingelseViews = channel.BetalingsbetingelseGetAll(betalingsbetingelseQuery);
                // Henter alle firmaadresser.
                var firmaQuery = new FirmaGetAllQuery();
                var firmaViews = channel.FirmaGetAll(firmaQuery);
                // Henter alle personadresser.
                var personQuery = new PersonGetAllQuery();
                var personViews = channel.PersonGetAll(personQuery);
                // Mapper views til adresser.
                lock (SyncRoot)
                {
                    var adresser = new List <AdresseBase>();
                    var adressegruppelisteHelper       = new AdressegruppelisteHelper(_domainObjectBuilder.BuildMany <AdressegruppeView, Adressegruppe>(adressegruppeViews));
                    var betalingsbetingelselisteHelper = new BetalingsbetingelselisteHelper(_domainObjectBuilder.BuildMany <BetalingsbetingelseView, Betalingsbetingelse>(betalingsbetingelseViews));
                    var adresselisteHelper             = new AdresselisteHelper(adresser);
                    _domainObjectBuilder.GetAdressegruppeCallback       = adressegruppelisteHelper.GetById;
                    _domainObjectBuilder.GetBetalingsbetingelseCallback = betalingsbetingelselisteHelper.GetById;
                    _domainObjectBuilder.GetAdresseBaseCallback         = adresselisteHelper.GetById;
                    adresser.AddRange(_domainObjectBuilder.BuildMany <FirmaView, AdresseBase>(firmaViews));
                    adresser.AddRange(_domainObjectBuilder.BuildMany <PersonView, AdresseBase>(personViews));
                    return(adresser.OrderBy(m => m, new AdresseComparer()).ToList());
                }
            }
            catch (IntranetRepositoryException)
            {
                throw;
            }
            catch (FaultException ex)
            {
                throw new IntranetRepositoryException(ex.Message);
            }
            catch (Exception ex)
            {
                throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.RepositoryError, MethodBase.GetCurrentMethod().Name, ex.Message), ex);
            }
            finally
            {
                ChannelTools.CloseChannel(channel);
            }
        }
示例#8
0
        public void TestAtGetByIdHenterAdresseBase()
        {
            var fixture            = new Fixture();
            var adresser           = fixture.CreateMany <Person>(3).ToList();
            var adresselisteHelper = new AdresselisteHelper(adresser);

            Assert.That(adresselisteHelper, Is.Not.Null);

            var adresseBase = adresselisteHelper.GetById(adresser.ElementAt(1).Nummer);

            Assert.That(adresseBase, Is.Not.Null);
            Assert.That(adresseBase.Nummer, Is.EqualTo(adresser.ElementAt(1).Nummer));
            Assert.That(adresseBase.Navn, Is.Not.Null);
            Assert.That(adresseBase.Navn, Is.EqualTo(adresser.ElementAt(1).Navn));
        }
示例#9
0
        /// <summary>
        /// Henter og returnerer en given adresse.
        /// </summary>
        /// <param name="nummer">Unik identifikation af adressen.</param>
        /// <returns>Adresse.</returns>
        public virtual AdresseBase AdresseGetByNummer(int nummer)
        {
            var adresselisteHelper = new AdresselisteHelper(Repository.AdresseGetAll());

            return(adresselisteHelper.GetById(nummer));
        }
        /// <summary>
        /// Henter og returnerer en given adressekonto i et givent regnskab.
        /// </summary>
        /// <param name="regnskabsnummer">Regnskabsnummer.</param>
        /// <param name="nummer">Unik identifikation af adressekontoen.</param>
        /// <returns>Adressekonto.</returns>
        public virtual AdresseBase AdressekontoGetByRegnskabAndNummer(int regnskabsnummer, int nummer)
        {
            var adresselisteHelper = new AdresselisteHelper(AdressekontoGetAllByRegnskab(regnskabsnummer));

            return(adresselisteHelper.GetById(nummer));
        }
示例#11
0
        /// <summary>
        /// Evaluerer kommando til oprettelse af en bogføringslinje.
        /// </summary>
        /// <param name="command">Kommando til oprettelse af en bogføringslinje.</param>
        /// <param name="konto">Returnering af konto, hvorpå bogføringslinjen skal bogføres.</param>
        /// <param name="budgetkonto">Returnering af budgetkonto, hvorpå bogføringslinjen skal bogføres.</param>
        /// <param name="adressekonto">Returnering af adressekonto, hvorpå bogføringslinjen skal bogføres.</param>
        private void EvaluateCommand(BogføringslinjeOpretCommand command, out Konto konto, out Budgetkonto budgetkonto, out AdresseBase adressekonto)
        {
            var adresselisteHelper   = new AdresselisteHelper(AdresseRepository.AdresseGetAll());
            var brevhovedlisteHelper = new BrevhovedlisteHelper(FællesRepository.BrevhovedGetAll());
            var regnskab             = Repository.RegnskabGet(command.Regnskabsnummer, brevhovedlisteHelper.GetById, adresselisteHelper.GetById);

            var currentTime = DateTime.Now;

            if (command.Dato.Date < currentTime.AddDays(_konfigurationRepository.DageForBogføringsperiode * -1).Date)
            {
                throw new IntranetBusinessException(Resource.GetExceptionMessage(ExceptionMessage.BalanceLineDateToOld, _konfigurationRepository.DageForBogføringsperiode));
            }
            if (command.Dato.Date > currentTime.Date)
            {
                throw new IntranetBusinessException(Resource.GetExceptionMessage(ExceptionMessage.BalanceLineDateIsForwardInTime));
            }

            if (string.IsNullOrEmpty(command.Kontonummer))
            {
                throw new IntranetBusinessException(Resource.GetExceptionMessage(ExceptionMessage.BalanceLineAccountNumberMissing));
            }
            try
            {
                konto = regnskab.Konti.OfType <Konto>().Single(m => String.Compare(m.Kontonummer, command.Kontonummer, StringComparison.Ordinal) == 0);
            }
            catch (InvalidOperationException ex)
            {
                throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.CantFindObjectById, typeof(Konto).Name, command.Kontonummer), ex);
            }

            if (string.IsNullOrEmpty(command.Tekst))
            {
                throw new IntranetBusinessException(Resource.GetExceptionMessage(ExceptionMessage.BalanceLineTextMissing));
            }

            budgetkonto = null;
            if (!string.IsNullOrEmpty(command.Budgetkontonummer))
            {
                try
                {
                    budgetkonto = regnskab.Konti.OfType <Budgetkonto>().Single(m => String.Compare(m.Kontonummer, command.Budgetkontonummer, StringComparison.Ordinal) == 0);
                }
                catch (InvalidOperationException ex)
                {
                    throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.CantFindObjectById, typeof(Budgetkonto).Name, command.Budgetkontonummer), ex);
                }
            }

            if (command.Debit < 0M)
            {
                throw new IntranetBusinessException(Resource.GetExceptionMessage(ExceptionMessage.BalanceLineValueBelowZero));
            }
            if (command.Kredit < 0M)
            {
                throw new IntranetBusinessException(Resource.GetExceptionMessage(ExceptionMessage.BalanceLineValueBelowZero));
            }
            if (command.Debit == 0M && command.Kredit == 0M)
            {
                throw new IntranetBusinessException(Resource.GetExceptionMessage(ExceptionMessage.BalanceLineValueMissing));
            }

            adressekonto = null;
            if (command.Adressekonto == 0)
            {
                return;
            }
            adressekonto = adresselisteHelper.GetById(command.Adressekonto);
        }