예제 #1
0
        public void FormulierInvullen(FormulierSoort soort, DateTime datum, string naam, string bankrekening, string reden, bool contant, string route, decimal bedrag, decimal geredenKm, string getekendDoor)
        {
            try
            {
                if (_formulieren != null)
                {
                    Formulier formulier = new Formulier(0, soort, datum, naam, bankrekening, reden, contant, route, geredenKm, bedrag, getekendDoor);
                    _formulieren.Add(formulier);
                    switch (soort)
                    {
                    case FormulierSoort.Declaratieformulier:
                        NeemBedragUitKas(bedrag, KassaSoortEnum.DECLARATIE, " euro verwijderd uit de kas");
                        break;

                    case FormulierSoort.Voorschotformulier:
                        NeemBedragUitKas(bedrag, KassaSoortEnum.VOORSCHOT, " euro verwijderd uit de kas");
                        break;
                    }
                }
                else
                {
                    _formulieren = GetFormulieren();
                    FormulierInvullen(soort, datum, naam, bankrekening, reden, contant, route, geredenKm, bedrag, getekendDoor);
                }
            }
            catch (Exception exception)
            {
                if (Database.GetIsConnected())
                {
                    ExceptionThrower(exception);
                }
            }
        }
예제 #2
0
        public void Formulier_can_afsluiten()
        {
            // Arrange
            var formulier = new Formulier();

            // Act
            formulier.Afsluiten();

            // Assert
            Assert.AreEqual(EnumStatusRf.Afgesloten, formulier.StatusRfEnum);
            Assert.AreEqual(DateTime.Now.Date, formulier.AfwerkingsDatum);
        }
예제 #3
0
        public void Formulier_can_afsluiten()
        {
            // Arrange
            var formulier = new Formulier();
            
            // Act
            formulier.Afsluiten();

            // Assert
            Assert.AreEqual(EnumStatusRf.Afgesloten, formulier.StatusRfEnum);
            Assert.AreEqual(DateTime.Now.Date, formulier.AfwerkingsDatum);
        }
예제 #4
0
        /// <summary>
        /// Verzamelt de URL delen in een URL.
        /// </summary>
        /// <param name="huidigeFormulier">huidigeFormulier.</param>
        /// <returns>De URL.</returns>
        protected string GetUrl(Formulier huidigeFormulier)
        {
            int formulierNummer = -1;

            foreach (Formulier eenformulier in this.formulieren)
            {
                formulierNummer++;
                if (huidigeFormulier != this.oldFormulier && huidigeFormulier == eenformulier)
                {
                    this.oldFormulier = huidigeFormulier;
                    return(this.HashTagName = "/" + formulierNummer.ToString());
                }
            }

            return(string.Empty);
        }
예제 #5
0
        public ActionResult KlachtVanKlant(int id)
        {
            var resultRf = new Formulier();
            resultRf = FormulierRepository.GetFirstOrDefault(f => f.Id == id);
            var modelRf = resultRf.ToModel<FormulierModel>();
            var referenceData = GetReferenceDataModel();

            var model = new RapporteringsFormulierViewModel
            {
                RapporteringsFormulier = modelRf,
                ReferenceData = referenceData
            };

            MapSelections(model);

            return View(model);
        }
예제 #6
0
        public ActionResult KlachtVanKlant(int id)
        {
            var resultRf = new Formulier();

            resultRf = FormulierRepository.GetFirstOrDefault(f => f.Id == id);
            var modelRf       = resultRf.ToModel <FormulierModel>();
            var referenceData = GetReferenceDataModel();

            var model = new RapporteringsFormulierViewModel
            {
                RapporteringsFormulier = modelRf,
                ReferenceData          = referenceData
            };

            MapSelections(model);

            return(View(model));
        }
예제 #7
0
        /// <summary>
        /// Verzamelt de URL delen in een URL.
        /// </summary>
        /// <param name="sectie">Huidige sectie.</param>
        /// <param name="huidigeFormulierVanUitNav">Een formulier.</param>
        /// <returns>De URL van deze adress.</returns>
        protected string GetUrl(FormulierSectie sectie, Formulier huidigeFormulierVanUitNav)
        {
            int formulierNummer = -1;

            foreach (Formulier huidigeFormulier in this.formulieren)
            {
                formulierNummer++;
                if (huidigeFormulierVanUitNav == huidigeFormulier)
                {
                    foreach (FormulierSectie huidigeSectie in huidigeFormulier.Kinderen)
                    {
                        if (sectie == huidigeSectie)
                        {
                            return(this.HashTagName = "/" + formulierNummer.ToString() + "#" + sectie.SectionNumber.ToString());
                        }
                    }
                }
            }

            return(this.HashTagName);
        }
예제 #8
0
        /// <summary>
        /// Toon of verstoppen de data van een formulier.
        /// </summary>
        /// <param name="huidigeFormulier">Huidige formulier.</param>
        protected void ToggleDataList(Formulier huidigeFormulier)
        {
            if (huidigeFormulier != this.formulier)
            {
                this.oldFormulier = this.formulier;
            }

            this.formulier = huidigeFormulier;
            if (this.formulierElementenGroup == null)
            {
                // bringt de element van de huidige formulier.
                // Sorteert de element bij groepen.
                this.formulierElementenGroup = this.formulier.Kinderen.GroupBy(g => g.Row).OrderBy(o => o.Key);
            }
            else
            {
                this.formulierElementenGroup = null;
            }

            this.StateHasChanged();
        }
예제 #9
0
        private void ApplyChanges(RapporteringsFormulierViewModel model, Formulier formulier)
        {
            var opstellerId = model.SelectedOpstellerId;
            var ontvangerId = model.SelectedOntvangerId.GetValueOrDefault(0);
            var ontvangerQlId = model.SelectedOntvangerQLId.GetValueOrDefault(0);
            var afdelingId = model.SelectedAfdelingId.GetValueOrDefault(0);
            var voertuigId = model.SelectedVoertuigId.GetValueOrDefault(0);
            var klachtSoortId = model.SelectedKlachtSoortId.GetValueOrDefault(0);
            var detailCodeId = model.SelectedDetailCodeId.GetValueOrDefault(0);
            var rpId = model.SelectedRpId.GetValueOrDefault(0);
            var qualityProcedureId = model.SelectedQualityProcedureId.GetValueOrDefault(0);
            var UnitId = model.SelectedUnitId.GetValueOrDefault(0);
            var hoofdCodeId = model.SelectedHoofdCodeId.GetValueOrDefault(0);

            formulier.Afdeling = AfdelingenRepository.GetFirstOrDefault(a => a.Id == afdelingId);
            formulier.Voertuig = VoertuigenRepository.GetFirstOrDefault(v => v.Id == voertuigId);
            formulier.Soortklacht = KlachtSoortenRepository.GetFirstOrDefault(ks => ks.Id == klachtSoortId);
            formulier.Opsteller = PersonenRepository.GetFirstOrDefault(p => p.Id == opstellerId);
            formulier.Ontvanger = PersonenRepository.GetFirstOrDefault(p => p.Id == ontvangerId);
            formulier.OntvangerQL = PersonenRepository.GetFirstOrDefault(p => p.Id == ontvangerQlId);
            formulier.DetailCode = DetailCodesRepository.GetFirstOrDefault(dc => dc.Id == detailCodeId);
            formulier.Rp = RpRepository.GetFirstOrDefault(rp => rp.Id == rpId);
            formulier.QualityProcedure = QualityProceduresRepository.GetFirstOrDefault(qp => qp.Id == qualityProcedureId);
            formulier.Unit = UnitRepository.GetFirstOrDefault(u => u.Id == UnitId);
            formulier.HoofdCode = HoofdCodesRepository.GetFirstOrDefault(hc => hc.Id == hoofdCodeId);
            formulier.Omschrijving = model.RapporteringsFormulier.Omschrijving;
            formulier.Gevolg = model.RapporteringsFormulier.Gevolg;
            formulier.Referentie = model.RapporteringsFormulier.Referentie;
            formulier.KlachtGeuitDoor = model.RapporteringsFormulier.KlachtGeuitDoor;
            formulier.OorzaakOmschrijving = model.RapporteringsFormulier.OorzaakOmschrijving;
            formulier.Oplossing = model.RapporteringsFormulier.Oplossing;
            formulier.Leverancier = model.RapporteringsFormulier.Leverancier;
            formulier.ContainerNummer = model.RapporteringsFormulier.ContainerNummer;
            formulier.TruckNummer = model.RapporteringsFormulier.TruckNummer;
            formulier.Batch = model.RapporteringsFormulier.Batch;
            formulier.ExceptieRapporteringsNummer = model.RapporteringsFormulier.ExceptieRapporteringsNummer;
            formulier.Kost = model.RapporteringsFormulier.Kost;
            formulier.FactuurNummer = model.RapporteringsFormulier.FactuurNummer;
            formulier.ClaimNummer = model.RapporteringsFormulier.ClaimNummer;
            formulier.AkmOmschrijving = model.RapporteringsFormulier.AkmOmschrijving;
            formulier.Dossiernummers = model.RapporteringsFormulier.Dossiernummers;
            formulier.AantalUnits = model.RapporteringsFormulier.AantalUnits;
            formulier.OorzaakAchterliggend = model.RapporteringsFormulier.OorzaakAchterliggend;
            formulier.ControleReferentieOntvanger = model.RapporteringsFormulier.ControleReferentieOntvanger;
            formulier.ControleReferentieOpsteller = model.RapporteringsFormulier.ControleReferentieOpsteller;
            formulier.AoNummer = model.RapporteringsFormulier.AoNummer;
            formulier.Opmerking = model.RapporteringsFormulier.Opmerking;
            formulier.QualityDocumentNaam = model.RapporteringsFormulier.QualityDocumentNaam;
            formulier.OplossingsDatum = model.RapporteringsFormulier.OplossingsDatum;
            formulier.OplossingsDatumQL = model.RapporteringsFormulier.OplossingsDatumQL;
            formulier.VaststellingsDatum = model.RapporteringsFormulier.VaststellingsDatum;

            EnumBooleanModel communicatieKlantOpsteller = model.RapporteringsFormulier.CommunicatieKlantOpsteller;
            switch (communicatieKlantOpsteller)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.CommunicatieKlantOpsteller = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.CommunicatieKlantOpsteller = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.CommunicatieKlantOpsteller = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.CommunicatieKlantOpsteller = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel isQualityDocumentVolledig = model.RapporteringsFormulier.IsQualityDocumentVolledig;
            switch (isQualityDocumentVolledig)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.IsQualityDocumentVolledig = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.IsQualityDocumentVolledig = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.IsQualityDocumentVolledig = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.IsQualityDocumentVolledig = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel systematischeControleOntvanger = model.RapporteringsFormulier.SystematischeControleOntvanger;
            switch (systematischeControleOntvanger)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.SystematischeControleOntvanger = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.SystematischeControleOntvanger = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.SystematischeControleOntvanger = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.SystematischeControleOntvanger = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel systematischeControleOpsteller = model.RapporteringsFormulier.SystematischeControleOpsteller;
            switch (systematischeControleOpsteller)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.SystematischeControleOpsteller = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.SystematischeControleOpsteller = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.SystematischeControleOpsteller = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.SystematischeControleOpsteller = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel doorrekenenKost = model.RapporteringsFormulier.DoorrekenenKost;
            switch (doorrekenenKost)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.DoorrekenenKost = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.DoorrekenenKost = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.DoorrekenenKost = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.DoorrekenenKost = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel isNieuwQualityDocumentNodig = model.RapporteringsFormulier.IsNieuwQualityDocumentNodig;
            switch (isNieuwQualityDocumentNodig)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.IsNieuwQualityDocumentNodig = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.IsNieuwQualityDocumentNodig = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.IsNieuwQualityDocumentNodig = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.IsNieuwQualityDocumentNodig = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel isQualityDocumentBeschreven = model.RapporteringsFormulier.IsQualityDocumentBeschreven;
            switch (isQualityDocumentBeschreven)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.IsQualityDocumentBeschreven = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.IsQualityDocumentBeschreven = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.IsQualityDocumentBeschreven = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.IsQualityDocumentBeschreven = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel isSystematischeControleVolledig = model.RapporteringsFormulier.IsSystematischeControleVolledig;
            switch (isSystematischeControleVolledig)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.IsSystematischeControleVolledig = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.IsSystematischeControleVolledig = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.IsSystematischeControleVolledig = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.IsSystematischeControleVolledig = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel beveiligingsIncident = model.RapporteringsFormulier.BeveiligingsIncident;
            switch (beveiligingsIncident)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.BeveiligingsIncident = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.BeveiligingsIncident = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.BeveiligingsIncident = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.BeveiligingsIncident = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel communicatieKlantOntvanger = model.RapporteringsFormulier.CommunicatieKlantOntvanger;
            switch (communicatieKlantOntvanger)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.CommunicatieKlantOntvanger = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.CommunicatieKlantOntvanger = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.CommunicatieKlantOntvanger = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.CommunicatieKlantOntvanger = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel nieuweControle = model.RapporteringsFormulier.NieuweControle;
            switch (nieuweControle)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.NieuweControle = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.NieuweControle = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.NieuweControle = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.NieuweControle = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel voorstelAanvaard = model.RapporteringsFormulier.VoorstelAanvaard;
            switch (voorstelAanvaard)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.VoorstelAanvaard = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.VoorstelAanvaard = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.VoorstelAanvaard = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.VoorstelAanvaard = EnumBoolean.Unknown;
                    break;
            }

            EnumBooleanModel opnemenCa = model.RapporteringsFormulier.OpnemenCapa;
            switch(opnemenCa)
            {
                case EnumBooleanModel.NoSelection:
                    formulier.OpnemenCapa = EnumBoolean.NoSelection;
                    break;
                case EnumBooleanModel.No:
                    formulier.OpnemenCapa = EnumBoolean.No;
                    break;
                case EnumBooleanModel.Yes:
                    formulier.OpnemenCapa = EnumBoolean.Yes;
                    break;
                case EnumBooleanModel.Unknown:
                    formulier.OpnemenCapa = EnumBoolean.Unknown;
                    break;
            }

            EnumStatusRfModel statusRf = model.RapporteringsFormulier.StatusRfEnum;
            switch (statusRf)
            {
                case EnumStatusRfModel.Nieuw:
                    formulier.StatusRfEnum = EnumStatusRf.Nieuw;
                    break;
                case EnumStatusRfModel.Geregistreerd:
                    formulier.StatusRfEnum = EnumStatusRf.Geregistreerd;
                    break;
                case EnumStatusRfModel.Beantwoord:
                    formulier.StatusRfEnum = EnumStatusRf.Beantwoord;
                    break;
                case EnumStatusRfModel.Afgesloten:
                    formulier.StatusRfEnum = EnumStatusRf.Afgesloten;
                    break;
            }

            EnumAuditTypeModel auditType = model.RapporteringsFormulier.AuditTypeEnum;
            switch(auditType)
            {
                case EnumAuditTypeModel.NietsGeselecteerd:
                    formulier.AuditTypeEnum = EnumAuditType.NietsGeselecteerd;
                    break;
                case EnumAuditTypeModel.ExterneAudit:
                    formulier.AuditTypeEnum = EnumAuditType.ExterneAudit;
                    break;
                case EnumAuditTypeModel.InterneAudit:
                    formulier.AuditTypeEnum = EnumAuditType.InterneAudit;
                    break;
            }

            EnumDossierTypeModel dossierType = model.RapporteringsFormulier.DossierTypeEnum;
            switch (dossierType)
            {
                case EnumDossierTypeModel.NietsGeselecteerd:
                    formulier.DossierTypeEnum = EnumDossierType.NietsGeselecteerd;
                    break;
                case EnumDossierTypeModel.Import:
                    formulier.DossierTypeEnum = EnumDossierType.Import;
                    break;
                case EnumDossierTypeModel.Export:
                    formulier.DossierTypeEnum = EnumDossierType.Export;
                    break;
                case EnumDossierTypeModel.Andere:
                    formulier.DossierTypeEnum = EnumDossierType.Andere;
                    break;
            }

            EnumOngevalTypeModel ongevalType = model.RapporteringsFormulier.OngevalTypeEnum;
            switch (ongevalType)
            {
                case EnumOngevalTypeModel.NietsGeselecteerd:
                    formulier.OngevalTypeEnum = EnumOngevalType.NietsGeselecteerd;
                    break;
                case EnumOngevalTypeModel.Arbeidsongeval:
                    formulier.OngevalTypeEnum = EnumOngevalType.Arbeidsongeval;
                    break;
                case EnumOngevalTypeModel.Verkeersongeval:
                    formulier.OngevalTypeEnum = EnumOngevalType.Verkeersongeval;
                    break;
            }

            if (model.RapporteringsFormulier.StatusRfEnum == EnumStatusRfModel.Afgesloten)
            {
                formulier.Afsluiten();
            }

            var betrokkenen = BetrokkenenRepository.GetAll(b => model.SelectedBetrokkeneIds.Contains(b.Id));
            formulier.Betrokkenen.Clear();

            foreach (var betrokkene in betrokkenen)
            {
                formulier.Betrokkenen.Add(betrokkene);
            }

            var klantent = KlantenRepository.GetAll(k => model.SelectedKlantenIds.Contains(k.Id));
            formulier.Klanten.Clear();

            foreach (var klant in klantent)
            {
                formulier.Klanten.Add(klant);
            }

            var oorsprongen = OorsprongenRepository.GetAll(o => model.SelectedOorsprongIds.Contains(o.Id));
            formulier.Oorsprongen.Clear();

            foreach (var oorsprong in oorsprongen)
            {
                formulier.Oorsprongen.Add(oorsprong);
            }

            var bestemmingen = BestemmingenRepository.GetAll(b => model.SelectedBestemmingIds.Contains(b.Id));
            formulier.Bestemmingen.Clear();

            foreach (var bestemming in bestemmingen)
            {
                formulier.Bestemmingen.Add(bestemming);
            }

            var locaties = LocatiesRepository.GetAll(l => model.SelectedLocatieIds.Contains(l.Id));
            formulier.Locaties.Clear();

            foreach (var locatie in locaties)
            {
                formulier.Locaties.Add(locatie);
            }

            var oorzaken = OorzakenRepository.GetAll(o => model.SelectedOorzaakIds.Contains(o.Id));
            formulier.Oorzaken.Clear();

            foreach (var oorzaak in oorzaken)
            {
                formulier.Oorzaken.Add(oorzaak);
            }

            var cas = CasRepository.GetAll(c => model.SelectedCaIds.Contains(c.Id));
            formulier.Cas.Clear();

            foreach (var ca in cas)
            {
                formulier.Cas.Add(ca);
            }
        }
예제 #10
0
        private void ApplyChanges(RapporteringsFormulierViewModel model, Formulier formulier)
        {
            var opstellerId        = model.SelectedOpstellerId;
            var ontvangerId        = model.SelectedOntvangerId.GetValueOrDefault(0);
            var ontvangerQlId      = model.SelectedOntvangerQLId.GetValueOrDefault(0);
            var afdelingId         = model.SelectedAfdelingId.GetValueOrDefault(0);
            var voertuigId         = model.SelectedVoertuigId.GetValueOrDefault(0);
            var klachtSoortId      = model.SelectedKlachtSoortId.GetValueOrDefault(0);
            var detailCodeId       = model.SelectedDetailCodeId.GetValueOrDefault(0);
            var rpId               = model.SelectedRpId.GetValueOrDefault(0);
            var qualityProcedureId = model.SelectedQualityProcedureId.GetValueOrDefault(0);
            var UnitId             = model.SelectedUnitId.GetValueOrDefault(0);
            var hoofdCodeId        = model.SelectedHoofdCodeId.GetValueOrDefault(0);

            formulier.Afdeling                    = AfdelingenRepository.GetFirstOrDefault(a => a.Id == afdelingId);
            formulier.Voertuig                    = VoertuigenRepository.GetFirstOrDefault(v => v.Id == voertuigId);
            formulier.Soortklacht                 = KlachtSoortenRepository.GetFirstOrDefault(ks => ks.Id == klachtSoortId);
            formulier.Opsteller                   = PersonenRepository.GetFirstOrDefault(p => p.Id == opstellerId);
            formulier.Ontvanger                   = PersonenRepository.GetFirstOrDefault(p => p.Id == ontvangerId);
            formulier.OntvangerQL                 = PersonenRepository.GetFirstOrDefault(p => p.Id == ontvangerQlId);
            formulier.DetailCode                  = DetailCodesRepository.GetFirstOrDefault(dc => dc.Id == detailCodeId);
            formulier.Rp                          = RpRepository.GetFirstOrDefault(rp => rp.Id == rpId);
            formulier.QualityProcedure            = QualityProceduresRepository.GetFirstOrDefault(qp => qp.Id == qualityProcedureId);
            formulier.Unit                        = UnitRepository.GetFirstOrDefault(u => u.Id == UnitId);
            formulier.HoofdCode                   = HoofdCodesRepository.GetFirstOrDefault(hc => hc.Id == hoofdCodeId);
            formulier.Omschrijving                = model.RapporteringsFormulier.Omschrijving;
            formulier.Gevolg                      = model.RapporteringsFormulier.Gevolg;
            formulier.Referentie                  = model.RapporteringsFormulier.Referentie;
            formulier.KlachtGeuitDoor             = model.RapporteringsFormulier.KlachtGeuitDoor;
            formulier.OorzaakOmschrijving         = model.RapporteringsFormulier.OorzaakOmschrijving;
            formulier.Oplossing                   = model.RapporteringsFormulier.Oplossing;
            formulier.Leverancier                 = model.RapporteringsFormulier.Leverancier;
            formulier.ContainerNummer             = model.RapporteringsFormulier.ContainerNummer;
            formulier.TruckNummer                 = model.RapporteringsFormulier.TruckNummer;
            formulier.Batch                       = model.RapporteringsFormulier.Batch;
            formulier.ExceptieRapporteringsNummer = model.RapporteringsFormulier.ExceptieRapporteringsNummer;
            formulier.Kost                        = model.RapporteringsFormulier.Kost;
            formulier.FactuurNummer               = model.RapporteringsFormulier.FactuurNummer;
            formulier.ClaimNummer                 = model.RapporteringsFormulier.ClaimNummer;
            formulier.AkmOmschrijving             = model.RapporteringsFormulier.AkmOmschrijving;
            formulier.Dossiernummers              = model.RapporteringsFormulier.Dossiernummers;
            formulier.AantalUnits                 = model.RapporteringsFormulier.AantalUnits;
            formulier.OorzaakAchterliggend        = model.RapporteringsFormulier.OorzaakAchterliggend;
            formulier.ControleReferentieOntvanger = model.RapporteringsFormulier.ControleReferentieOntvanger;
            formulier.ControleReferentieOpsteller = model.RapporteringsFormulier.ControleReferentieOpsteller;
            formulier.AoNummer                    = model.RapporteringsFormulier.AoNummer;
            formulier.Opmerking                   = model.RapporteringsFormulier.Opmerking;
            formulier.QualityDocumentNaam         = model.RapporteringsFormulier.QualityDocumentNaam;
            formulier.OplossingsDatum             = model.RapporteringsFormulier.OplossingsDatum;
            formulier.OplossingsDatumQL           = model.RapporteringsFormulier.OplossingsDatumQL;
            formulier.VaststellingsDatum          = model.RapporteringsFormulier.VaststellingsDatum;

            EnumBooleanModel communicatieKlantOpsteller = model.RapporteringsFormulier.CommunicatieKlantOpsteller;

            switch (communicatieKlantOpsteller)
            {
            case EnumBooleanModel.NoSelection:
                formulier.CommunicatieKlantOpsteller = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.CommunicatieKlantOpsteller = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.CommunicatieKlantOpsteller = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.CommunicatieKlantOpsteller = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel isQualityDocumentVolledig = model.RapporteringsFormulier.IsQualityDocumentVolledig;

            switch (isQualityDocumentVolledig)
            {
            case EnumBooleanModel.NoSelection:
                formulier.IsQualityDocumentVolledig = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.IsQualityDocumentVolledig = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.IsQualityDocumentVolledig = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.IsQualityDocumentVolledig = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel systematischeControleOntvanger = model.RapporteringsFormulier.SystematischeControleOntvanger;

            switch (systematischeControleOntvanger)
            {
            case EnumBooleanModel.NoSelection:
                formulier.SystematischeControleOntvanger = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.SystematischeControleOntvanger = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.SystematischeControleOntvanger = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.SystematischeControleOntvanger = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel systematischeControleOpsteller = model.RapporteringsFormulier.SystematischeControleOpsteller;

            switch (systematischeControleOpsteller)
            {
            case EnumBooleanModel.NoSelection:
                formulier.SystematischeControleOpsteller = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.SystematischeControleOpsteller = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.SystematischeControleOpsteller = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.SystematischeControleOpsteller = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel doorrekenenKost = model.RapporteringsFormulier.DoorrekenenKost;

            switch (doorrekenenKost)
            {
            case EnumBooleanModel.NoSelection:
                formulier.DoorrekenenKost = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.DoorrekenenKost = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.DoorrekenenKost = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.DoorrekenenKost = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel isNieuwQualityDocumentNodig = model.RapporteringsFormulier.IsNieuwQualityDocumentNodig;

            switch (isNieuwQualityDocumentNodig)
            {
            case EnumBooleanModel.NoSelection:
                formulier.IsNieuwQualityDocumentNodig = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.IsNieuwQualityDocumentNodig = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.IsNieuwQualityDocumentNodig = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.IsNieuwQualityDocumentNodig = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel isQualityDocumentBeschreven = model.RapporteringsFormulier.IsQualityDocumentBeschreven;

            switch (isQualityDocumentBeschreven)
            {
            case EnumBooleanModel.NoSelection:
                formulier.IsQualityDocumentBeschreven = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.IsQualityDocumentBeschreven = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.IsQualityDocumentBeschreven = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.IsQualityDocumentBeschreven = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel isSystematischeControleVolledig = model.RapporteringsFormulier.IsSystematischeControleVolledig;

            switch (isSystematischeControleVolledig)
            {
            case EnumBooleanModel.NoSelection:
                formulier.IsSystematischeControleVolledig = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.IsSystematischeControleVolledig = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.IsSystematischeControleVolledig = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.IsSystematischeControleVolledig = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel beveiligingsIncident = model.RapporteringsFormulier.BeveiligingsIncident;

            switch (beveiligingsIncident)
            {
            case EnumBooleanModel.NoSelection:
                formulier.BeveiligingsIncident = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.BeveiligingsIncident = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.BeveiligingsIncident = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.BeveiligingsIncident = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel communicatieKlantOntvanger = model.RapporteringsFormulier.CommunicatieKlantOntvanger;

            switch (communicatieKlantOntvanger)
            {
            case EnumBooleanModel.NoSelection:
                formulier.CommunicatieKlantOntvanger = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.CommunicatieKlantOntvanger = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.CommunicatieKlantOntvanger = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.CommunicatieKlantOntvanger = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel nieuweControle = model.RapporteringsFormulier.NieuweControle;

            switch (nieuweControle)
            {
            case EnumBooleanModel.NoSelection:
                formulier.NieuweControle = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.NieuweControle = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.NieuweControle = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.NieuweControle = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel voorstelAanvaard = model.RapporteringsFormulier.VoorstelAanvaard;

            switch (voorstelAanvaard)
            {
            case EnumBooleanModel.NoSelection:
                formulier.VoorstelAanvaard = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.VoorstelAanvaard = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.VoorstelAanvaard = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.VoorstelAanvaard = EnumBoolean.Unknown;
                break;
            }

            EnumBooleanModel opnemenCa = model.RapporteringsFormulier.OpnemenCapa;

            switch (opnemenCa)
            {
            case EnumBooleanModel.NoSelection:
                formulier.OpnemenCapa = EnumBoolean.NoSelection;
                break;

            case EnumBooleanModel.No:
                formulier.OpnemenCapa = EnumBoolean.No;
                break;

            case EnumBooleanModel.Yes:
                formulier.OpnemenCapa = EnumBoolean.Yes;
                break;

            case EnumBooleanModel.Unknown:
                formulier.OpnemenCapa = EnumBoolean.Unknown;
                break;
            }

            EnumStatusRfModel statusRf = model.RapporteringsFormulier.StatusRfEnum;

            switch (statusRf)
            {
            case EnumStatusRfModel.Nieuw:
                formulier.StatusRfEnum = EnumStatusRf.Nieuw;
                break;

            case EnumStatusRfModel.Geregistreerd:
                formulier.StatusRfEnum = EnumStatusRf.Geregistreerd;
                break;

            case EnumStatusRfModel.Beantwoord:
                formulier.StatusRfEnum = EnumStatusRf.Beantwoord;
                break;

            case EnumStatusRfModel.Afgesloten:
                formulier.StatusRfEnum = EnumStatusRf.Afgesloten;
                break;
            }

            EnumAuditTypeModel auditType = model.RapporteringsFormulier.AuditTypeEnum;

            switch (auditType)
            {
            case EnumAuditTypeModel.NietsGeselecteerd:
                formulier.AuditTypeEnum = EnumAuditType.NietsGeselecteerd;
                break;

            case EnumAuditTypeModel.ExterneAudit:
                formulier.AuditTypeEnum = EnumAuditType.ExterneAudit;
                break;

            case EnumAuditTypeModel.InterneAudit:
                formulier.AuditTypeEnum = EnumAuditType.InterneAudit;
                break;
            }

            EnumDossierTypeModel dossierType = model.RapporteringsFormulier.DossierTypeEnum;

            switch (dossierType)
            {
            case EnumDossierTypeModel.NietsGeselecteerd:
                formulier.DossierTypeEnum = EnumDossierType.NietsGeselecteerd;
                break;

            case EnumDossierTypeModel.Import:
                formulier.DossierTypeEnum = EnumDossierType.Import;
                break;

            case EnumDossierTypeModel.Export:
                formulier.DossierTypeEnum = EnumDossierType.Export;
                break;

            case EnumDossierTypeModel.Andere:
                formulier.DossierTypeEnum = EnumDossierType.Andere;
                break;
            }

            EnumOngevalTypeModel ongevalType = model.RapporteringsFormulier.OngevalTypeEnum;

            switch (ongevalType)
            {
            case EnumOngevalTypeModel.NietsGeselecteerd:
                formulier.OngevalTypeEnum = EnumOngevalType.NietsGeselecteerd;
                break;

            case EnumOngevalTypeModel.Arbeidsongeval:
                formulier.OngevalTypeEnum = EnumOngevalType.Arbeidsongeval;
                break;

            case EnumOngevalTypeModel.Verkeersongeval:
                formulier.OngevalTypeEnum = EnumOngevalType.Verkeersongeval;
                break;
            }

            if (model.RapporteringsFormulier.StatusRfEnum == EnumStatusRfModel.Afgesloten)
            {
                formulier.Afsluiten();
            }

            var betrokkenen = BetrokkenenRepository.GetAll(b => model.SelectedBetrokkeneIds.Contains(b.Id));

            formulier.Betrokkenen.Clear();

            foreach (var betrokkene in betrokkenen)
            {
                formulier.Betrokkenen.Add(betrokkene);
            }

            var klantent = KlantenRepository.GetAll(k => model.SelectedKlantenIds.Contains(k.Id));

            formulier.Klanten.Clear();

            foreach (var klant in klantent)
            {
                formulier.Klanten.Add(klant);
            }

            var oorsprongen = OorsprongenRepository.GetAll(o => model.SelectedOorsprongIds.Contains(o.Id));

            formulier.Oorsprongen.Clear();

            foreach (var oorsprong in oorsprongen)
            {
                formulier.Oorsprongen.Add(oorsprong);
            }

            var bestemmingen = BestemmingenRepository.GetAll(b => model.SelectedBestemmingIds.Contains(b.Id));

            formulier.Bestemmingen.Clear();

            foreach (var bestemming in bestemmingen)
            {
                formulier.Bestemmingen.Add(bestemming);
            }

            var locaties = LocatiesRepository.GetAll(l => model.SelectedLocatieIds.Contains(l.Id));

            formulier.Locaties.Clear();

            foreach (var locatie in locaties)
            {
                formulier.Locaties.Add(locatie);
            }

            var oorzaken = OorzakenRepository.GetAll(o => model.SelectedOorzaakIds.Contains(o.Id));

            formulier.Oorzaken.Clear();

            foreach (var oorzaak in oorzaken)
            {
                formulier.Oorzaken.Add(oorzaak);
            }

            var cas = CasRepository.GetAll(c => model.SelectedCaIds.Contains(c.Id));

            formulier.Cas.Clear();

            foreach (var ca in cas)
            {
                formulier.Cas.Add(ca);
            }
        }