Ejemplo n.º 1
0
        /// <summary>
        /// Registreert een membership in de Chirocivi voor het gegeven <paramref name="lid"/>
        /// </summary>
        /// <param name="lid">Lid waarvoor membership geregistreerd moet worden</param>
        public void MembershipRegistreren(Lid lid)
        {
            var persoon  = lid.GelieerdePersoon.Persoon;
            int werkJaar = lid.GroepsWerkJaar.WerkJaar;

            if (persoon.AdNummer != null)
            {
                var gedoe = new MembershipGedoe
                {
                    Gratis         = _ledenManager.GratisAansluiting(lid),
                    MetLoonVerlies = _groepsWerkJarenManager.IsVerzekerd(lid, Verzekering.LoonVerlies),
                    StamNummer     = _ledenManager.StamNummer(lid)
                };
                ServiceHelper.CallService <ISyncPersoonService>(
                    svc => svc.MembershipBewaren(persoon.AdNummer.Value, werkJaar, gedoe));
            }
            else
            {
                var gelieerdePersoon = lid.GelieerdePersoon;

                var  details     = MappingHelper.Map <GelieerdePersoon, PersoonDetails>(gelieerdePersoon);
                bool isVerzekerd = _groepsWerkJarenManager.IsVerzekerd(lid, Verzekering.LoonVerlies);

                var gedoe = new MembershipGedoe
                {
                    Gratis         = _ledenManager.GratisAansluiting(lid),
                    MetLoonVerlies = isVerzekerd,
                    StamNummer     = _ledenManager.StamNummer(lid)
                };
                ServiceHelper.CallService <ISyncPersoonService>(
                    svc => svc.MembershipNieuwePersoonBewaren(details, werkJaar, gedoe));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Zet de gegeven <paramref name="persoonsVerzekering"/> over naar Kipadmin.
        /// </summary>
        /// <param name="persoonsVerzekering">Over te zetten persoonsverzekering</param>
        /// <param name="gwj">Bepaalt werkJaar en groep die factuur zal krijgen</param>
        public void Bewaren(PersoonsVerzekering persoonsVerzekering, GroepsWerkJaar gwj)
        {
            Debug.Assert(persoonsVerzekering.Persoon.InSync);
            if (persoonsVerzekering.Persoon.AdNummer.HasValue)
            {
                bool gratis = persoonsVerzekering.Persoon.GelieerdePersoon.Any(
                    gp => gp.Lid.Any(l => l.GroepsWerkJaar.ID == gwj.ID && _ledenManager.GratisAansluiting(l)));
                ServiceHelper.CallService <ISyncPersoonService>(svc => svc.LoonVerliesVerzekeren(
                                                                    persoonsVerzekering.Persoon.AdNummer.Value,
                                                                    gwj.Groep.Code,
                                                                    gwj.WerkJaar,
                                                                    gratis));
            }
            else
            {
                // Verzekeren op basis van details.
                // Een verzekering loonverlies (de enige die we voorlopig ondersteunen) is
                // alleen mogelijk voor leden. Sinds gap 1.x ergens in het verleden, krijgen
                // probeerleden ook al een AD-nr. Dus mogen we ervanuit gaan dat het AD-nummer
                // al in aanvraag is.
                // Niet dat dat nog relevant is eigenlijk.

                var gelieerdePersoon = (from gp in persoonsVerzekering.Persoon.GelieerdePersoon
                                        where Equals(gp.Groep, gwj.Groep)
                                        select gp).Single();

                bool gratis =
                    gelieerdePersoon.Lid.Any(l => l.GroepsWerkJaar.ID == gwj.ID && _ledenManager.GratisAansluiting(l));

                ServiceHelper.CallService <ISyncPersoonService>(
                    svc =>
                    svc.LoonVerliesVerzekerenAdOnbekend(MappingHelper.Map <GelieerdePersoon, PersoonDetails>(gelieerdePersoon),
                                                        gwj.Groep.Code, gwj.WerkJaar, gratis));
            }
        }