//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); }
//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); }
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); }
//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); }
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); } }
//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); }
/// <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); }