示例#1
0
        //ontleningen beheren
        public decimal Terugbrengen(Lid lid, Int32 exemplaarId, DateTime tot)
        {
            decimal _boetebedrag = 0.0M;
            //business opstarten

            Ontlening ontlening = lid.Terugbrengen(exemplaarId, tot); //saldo lid wordt indien nodig aangepast!
            Boete     boete     = ontlening.Boete;

            if (boete != null)
            {
                _boetebedrag = boete.Bedrag;
            }
            else
            {
                _boetebedrag = 0;
            }

            //gewijzigde objecten ook doorspelen aan db!!!
            if (boete != null)
            {
                Persistence.Controller.UpdateSaldoLidInDB(lid);
            }
            Persistence.Controller.DeleteOntleningFromDB(ontlening);

            return(_boetebedrag);
        }
示例#2
0
        //ontleen-methodes
        public Ontlening Ontlenen(Int32 lidId, int exemplaarId, DateTime vanaf)
        {
            Lid       lid       = (Lid)_gebruikersRepository.GetEntity(lidId);
            Ontlening ontlening = lid.NieuweOntlening(exemplaarId, vanaf);

            //alle wijzigingen opslaan in de database
            Persistence.Controller.AddOntleningToDB(lidId, ontlening);
            Persistence.Controller.UpdateSaldoLidInDB(lid);
            return(ontlening);
        }
示例#3
0
        internal Ontlening WijzigOntlening(Int32 exemplaarId, DateTime vanaf, DateTime?tot)
        {
            Ontlening ontlening = _ontleningen.Find(o => o.Exemplaar.Id == exemplaarId);

            ontlening.Vanaf = vanaf;
            if (tot != null)
            {
                ontlening.Tot = (DateTime)tot;
            }
            return(ontlening);
        }
示例#4
0
        //methods
        internal Ontlening NieuweOntlening(int exemplaarId, DateTime vanaf)
        {
            Ontlening ontlening = new Ontlening(exemplaarId, vanaf);

            Ontleningen.Add(ontlening);
            //saldo lid aanpassen
            decimal ontleenBedrag = ontlening.Exemplaar.Item.OntleenTarief;

            Saldo += ontleenBedrag;

            return(ontlening);
        }
示例#5
0
 public void WijzigOntlening(Int32 exemplaarId, DateTime vanaf, DateTime?tot = null, Lid lid = null, string titel = "")
 {
     if (lid == null)
     {
         lid = CurrentUser as Lid;
     }
     if (lid != null)
     {
         Ontlening ontlening = lid.WijzigOntlening(exemplaarId, vanaf, tot);
         Persistence.Controller.WijzigOntleningInDB(ontlening);
     }
 }
示例#6
0
        //method
        public static Boete BerekenBoete(Ontlening ontlening)
        {
            Boete    boete                     = null;
            decimal  bedrag                    = 0.0M;
            Item     t                         = ontlening.Exemplaar.Item;
            int      aantalDagenOK             = t.OntleenTermijn;
            TimeSpan ontleenPeriode            = ontlening.Tot - ontlening.Vanaf;
            int      aantalDagenOntleend       = ontleenPeriode.Days;
            int      aantalBegonnenWekenTeLaat = (int)Math.Ceiling((aantalDagenOntleend - aantalDagenOK) / 7.0);

            if (aantalDagenOntleend > aantalDagenOK)
            {
                decimal basisBedragPerWeek = t.BoeteTarief;
                bedrag = aantalBegonnenWekenTeLaat * t.BoeteTarief;
                boete  = new Boete(bedrag);
            }
            return(boete);
        }
示例#7
0
        /// <summary>
        /// Terugbrengen van een ontleend exemplaar door een lid
        /// </summary>
        /// <param name="exemplaar"></param>
        /// <param name="tot"></param>
        /// <returns>De boete die eventueel moet betaald worden (null indien geen boete).</returns>
        internal Ontlening Terugbrengen(Int32 exemplaarId, DateTime tot)
        {
            Ontlening ontlening = Ontleningen.Find(o => o.Exemplaar.Id == exemplaarId);

            if (ontlening == null)
            {
                throw new InvalidOperationException("Dit exemplaar is niet ontleend door dit lid");
            }

            Boete boete = ontlening.Terugbrengen(tot);

            if (boete != null)
            {
                Saldo += boete.Bedrag;
            }

            Ontleningen.Remove(ontlening);

            return(ontlening);
        }