public ActionResult LoonVerliesVerzekeren(BevestigingsModel model, int groepID, int id) { try { ServiceHelper.CallService <ILedenService, int>(svc => svc.LoonVerliesVerzekeren(id)); TempData["succes"] = Resources.WijzigingenOpgeslagenFeedback; } catch (FaultException <FoutNummerFault> ex) { switch (ex.Detail.FoutNummer) { case FoutNummer.GroepInactief: TempData["fout"] = String.Format(Resources.GroepInactief); break; case FoutNummer.ChronologieFout: var url = Url.Action("Index", "JaarOvergang"); var werkJaar = VeelGebruikt.GroepsWerkJaarOphalen(groepID).WerkJaar; TempData["fout"] = String.Format(Resources.WerkJaarInOvergang, werkJaar + 1, werkJaar + 2, url); break; default: throw; } } catch (FaultException <BestaatAlFault <String> > ) { TempData["fout"] = String.Format(Resources.VerzekeringBestaatAl); } // TODO (#1031): DetailsOphalen is eigenlijk overkill; we hebben enkel de volledige naam en het GelieerdePersoonID nodig. var info = ServiceHelper.CallService <ILedenService, PersoonInfo>(svc => svc.PersoonOphalen(id)); return(RedirectToAction("Bewerken", "Personen", new { id = info.GelieerdePersoonID })); }
public ActionResult TerugDraaien(MasterViewModel model, int groepID) { BaseModelInit(model, groepID); ServiceHelper.CallService <IGroepenService>( svc => svc.JaarOvergangTerugDraaien(VeelGebruikt.GroepsWerkJaarOphalen(groepID).WerkJaarID)); // Clear cache voor groep. VeelGebruikt.AllesResetten(groepID); return(RedirectToAction("Index", "Leden", new { groepID })); }
public override ActionResult Index(int groepID) { var gwj = VeelGebruikt.GroepsWerkJaarOphalen(groepID); var werkjaarID = gwj.WerkJaarID; var model = new GroepsInstellingenModel { Titel = Properties.Resources.GroepsInstellingenTitel, Detail = ServiceHelper.CallService <IGroepenService, GroepDetail>(svc => svc.DetailOphalen(groepID)), NonActieveAfdelingen = ServiceHelper.CallService <IGroepenService, List <AfdelingInfo> >( svc => svc.OngebruikteAfdelingenOphalen(werkjaarID)), IsLive = VeelGebruikt.IsLive() }; BaseModelInit(model, groepID); return(View(model)); }
public ActionResult Download([RouteValue] int id, [QueryStringValue] int afdelingID, [QueryStringValue] int functieID, [RouteValue] int groepID, [QueryStringValue] LidInfoModel.SpecialeLedenLijst ledenLijst, [QueryStringValue] LidEigenschap sortering) { WerkJaarInfo werkJaarInfo; int groepsWerkJaarID; // Als geen groepswerkjaar gegeven is: haal recentste op if (id == 0) { var gwj = VeelGebruikt.GroepsWerkJaarOphalen(groepID); werkJaarInfo = new WerkJaarInfo { WerkJaar = gwj.WerkJaar, ID = gwj.WerkJaarID }; groepsWerkJaarID = werkJaarInfo.ID; } else { var gwjs = ServiceHelper.CallService <IGroepenService, IEnumerable <WerkJaarInfo> >(svc => svc.WerkJarenOphalen(groepID)); werkJaarInfo = (from wj in gwjs where wj.ID == id select wj).FirstOrDefault(); groepsWerkJaarID = id; } // Haal de op te lijsten leden op; de filter wordt bepaald uit de method parameters. var leden = ServiceHelper.CallService <ILedenService, IList <PersoonLidInfo> >( svc => svc.LijstZoekenPersoonLidInfo( FilterMaken(afdelingID, functieID, ledenLijst, groepsWerkJaarID))); // Alle afdelingen is eigenlijk overkill. De actieve zou genoeg zijn. Maar meestal // zal daar niet zo' n verschil opzitten. var alleAfdelingen = ServiceHelper.CallService <IGroepenService, IList <AfdelingInfo> >( svc => svc.AlleAfdelingenOphalen(groepID)); const string bestandsNaam = "leden.xlsx"; var pkg = GapExcelManip.LidExcelDocument(leden, alleAfdelingen); return(new ExcelResult(pkg, bestandsNaam)); }
protected void BaseModelInit(MasterViewModel model, int?groepID) { // Werken we op test of live? string login = User == null ? null : User.Identity.Name; model.IsLive = VeelGebruikt.IsLive(); model.DeveloperMode = Authenticator.WieBenIk().DeveloperMode; int adnr = Authenticator.WieBenIk().AdNr; model.Ik = VeelGebruikt.GebruikersDetail(adnr); if (!groepID.HasValue) { // De Gekozen groep is nog niet gekend, zet defaults model.GroepsNaam = Resources.GroepsnaamDefault; model.Plaats = Resources.GroepPlaatsDefault; model.StamNummer = Resources.StamNrDefault; model.MeerdereGroepen = false; // model.GroepsCategorieen = new List<SelectListItem>(); } else { #region gekozen groep en werkJaar var gwjDetail = VeelGebruikt.GroepsWerkJaarOphalen((int)groepID); model.GroepsNaam = gwjDetail.GroepNaam; model.GroepsNiveau = gwjDetail.GroepNiveau; model.Plaats = gwjDetail.GroepPlaats; model.StamNummer = gwjDetail.GroepCode; model.GroepID = gwjDetail.GroepID; model.HuidigWerkJaar = gwjDetail.WerkJaar; model.WerkJaarStatus = gwjDetail.Status; #endregion #region GAV over meerdere groepen? // Als UniekeGroepGav een waarde heeft, is er maar één groep. Bij 0 zijn er meerdere. model.MeerdereGroepen = (VeelGebruikt.UniekeGroepGav(login) == 0); #endregion #region Mededelingen // Eerst algemene mededelingen if (gwjDetail.Status == WerkJaarStatus.InOvergang) { var url = Url.Action("Index", "JaarOvergang"); model.Mededelingen.Add(new Mededeling { Type = MededelingsType.Probleem, Info = String.Format( Resources.WerkJaarInOvergang, gwjDetail.WerkJaar + 1, gwjDetail.WerkJaar + 2, url) }); } var bivakstatus = VeelGebruikt.BivakStatusHuidigWerkjaarOphalen((int)groepID); VoegBivakStatusMededelingenToe(bivakstatus, model.Mededelingen); // Problemen opvragen var functieProblemen = VeelGebruikt.FunctieProblemenOphalen(gwjDetail.GroepID); var ledenProblemen = VeelGebruikt.LedenProblemenOphalen(gwjDetail.GroepID); // Problemen vertalen naar model if (functieProblemen != null) { foreach (var p in functieProblemen) { var bekijkMetFunctieUrl = Url.Action("Functie", "Leden", new { groepsWerkJaarID = gwjDetail.WerkJaarID, id = p.ID, groepID = groepID, }); // Eerst een paar specifieke en veelvoorkomende problemen apart behandelen. if (p.MinAantal > 0 && p.EffectiefAantal == 0) { var statusToekennenUrl = Url.Action("ZelfFunctiesToekennen", "Leden", new { groepID = groepID, }); model.Mededelingen.Add(new Mededeling { Type = MededelingsType.Probleem, Info = string.Format(Resources.FunctieOntbreekt, p.Naam, p.Code, bekijkMetFunctieUrl, statusToekennenUrl) }); } else if (p.MaxAantal == 1 && p.EffectiefAantal > 1) { model.Mededelingen.Add(new Mededeling { Type = MededelingsType.Probleem, Info = string.Format(Resources.FunctieMeerdereKeren, p.Naam, p.Code, p.EffectiefAantal, bekijkMetFunctieUrl) }); } // Dan de algemene foutmeldingen else if (p.MinAantal > p.EffectiefAantal) { model.Mededelingen.Add(new Mededeling { Type = MededelingsType.Probleem, Info = string.Format(Resources.FunctieTeWeinig, p.Naam, p.Code, p.EffectiefAantal, p.MinAantal, bekijkMetFunctieUrl) }); } else if (p.EffectiefAantal > p.MaxAantal) { model.Mededelingen.Add(new Mededeling { Type = MededelingsType.Probleem, Info = string.Format(Resources.FunctieTeVeel, p.Naam, p.Code, p.EffectiefAantal, p.MinAantal, bekijkMetFunctieUrl) }); } } } if (ledenProblemen != null) { foreach (var p in ledenProblemen) { string boodschap = String.Empty; string url = String.Empty; switch (p.Probleem) { case LidProbleem.AdresOntbreekt: boodschap = Resources.LedenZonderAdres; url = Url.Action("ZonderAdres", "Leden"); break; case LidProbleem.EmailOntbreekt: boodschap = Resources.LeidingZonderEmail; url = Url.Action("LeidingZonderMail", "Leden"); break; case LidProbleem.EmailIsVerdacht: boodschap = Resources.LedenMetVerdachteEmail; url = Url.Action("LedenMetVerdachteEmail", "Leden"); break; case LidProbleem.TelefoonNummerOntbreekt: boodschap = Resources.LedenZonderTelefoonNummer; url = Url.Action("ZonderTelefoon", "Leden"); break; default: Debug.Assert(false); break; } model.Mededelingen.Add(new Mededeling { Type = MededelingsType.Probleem, Info = String.Format(boodschap, p.Aantal, url) }); } } #endregion } }