/// <summary>
        /// Vul detailregel (Alle 'maandagen' bij elkaar opgeteld voor de hele periode)
        /// </summary>
        /// <param name="selxMANDAGEN"></param>
        /// <param name="DitProject"></param>
        /// <param name="_ArbeidsRelatieVW"></param>
        /// <param name="poortViewVakman"></param>
        /// <param name="_AllArbeidsrelaties"></param>
        private string Vul_DetailRegel(List <PoortViewMandagen> selxMANDAGEN, PoortViewProject DitProject, PoortViewVakman poortViewVakman, ref string tabel)
        {
            // Om de 3 regels de kleur van de kleur van de detailregel omwisselen
            string regel = DetailRegel.Replace("Detailregel", "DetailregelColor" + ((Detailregels++ % 6) / 3).ToString());

            //regel = regel.Replace("{Relatie}", _Ketenpartner);
            regel = regel.Replace("{BSN}", poortViewVakman.BSNLandcode + " " + poortViewVakman.Bsn);
            regel = regel.Replace("{Naam}", poortViewVakman.Naam);
            DateTime EenWillekeurigeMaandag = new DateTime(2013, 10, 21).Date;

            int TOTAAL = 0;

            for (int Weekdag = 0; Weekdag <= 6; Weekdag++)
            {
                var DagNR  = EenWillekeurigeMaandag.AddDays(Weekdag).DayOfWeek;
                int totaal = selxMANDAGEN
                             .Where(x =>
                                    x.ProjectId == DitProject.ProjectId &&
                                    x.VakmanId == poortViewVakman.VakmanId &&
                                    x.Begintijd.DayOfWeek == DagNR)
                             .Select(x => x.Uren * 60 + x.Minuten).Sum();
                TOTAAL += totaal;
                regel   = regel.Replace("{" + DagNR.ToString() + "}", Uurformaat(totaal));
            }
            return(TOTAAL > 0 ? regel.Replace("{Totaal}", Uurformaat(TOTAAL)) : "");
        }
        /// <summary>
        /// Vul Detailregel (Losse dagen binnen één week)
        /// </summary>
        /// <param name="selxMANDAGEN"></param>
        /// <param name="DitProject"></param>
        /// <param name="_ArbeidsRelatieVW"></param>
        /// <param name="poortViewVakman"></param>
        /// <param name="_AllArbeidsrelaties"></param>
        /// <param name="pStartDatum"></param>
        /// <param name="pEindDatum"></param>
        private string Vul_DetailRegel(List <PoortViewMandagen> selxMANDAGEN, PoortViewProject DitProject, PoortViewVakman poortViewVakman, DateTime pStartDatum, DateTime pEindDatum, ref string tabel)
        {
            // Om de 3 regels de kleur van de kleur van de detailregel omwisselen
            string regel = DetailRegel.Replace("Detailregel", "DetailregelColor" + ((Detailregels++ % 6) / 3).ToString());

            if (DetailregelsLeft-- == 3) // Neem nu extra grote rowspan om vorige rowspans waar deze rij in zit soort van te 'overrulen'
            {
                regel = regel.Replace("</tr>", "<td rowspan=\"100\" style=\"page-break-inside:avoid\" > </td></tr>");
            }

            //regel = regel.Replace("{Relatie}", _Ketenpartner );
            regel = regel.Replace("{BSN}", poortViewVakman.BSNLandcode + " " + poortViewVakman.Bsn);
            regel = regel.Replace("{Naam}", poortViewVakman.Naam);

            int TOTAAL = 0;

            for (DateTime dag = pStartDatum; dag < pEindDatum; dag = dag.AddDays(1))
            {
                int totaal = selxMANDAGEN
                             .Where(x =>
                                    x.ProjectId == DitProject.ProjectId &&
                                    x.VakmanId == poortViewVakman.VakmanId &&
                                    x.Begintijd.Date == dag.Date)
                             .Select(x => x.Uren * 60 + x.Minuten).Sum();
                TOTAAL += totaal;
                regel   = regel.Replace("{" + dag.DayOfWeek + "}", Uurformaat(totaal));
            }
            return(TOTAAL > 0 ? (regel.Replace("{Totaal}", Uurformaat(TOTAAL))) : "");
        }
        private string Vul_VakmanRegel(string _RelatieNaam, PoortViewVakman DezeVakman, int _ArbeidsRelatie, List <PoortViewBedrijf> Bedrijven, List <PoortViewMandagen> Mandagen)
        {
            var _ZijnBedrijf = Bedrijven.Where(x => x.bedrijf_nr == DezeVakman.bedrijf_nr).FirstOrDefault();
            int _ZijnMinuten = Mandagen.Where(x => x.ArbeidsrelatieVW == _ArbeidsRelatie).Select(x => x.Uren * 60 + x.Minuten).Sum();

            BTotaal += _ZijnMinuten;

            // Sla naam vd vakman op als gegevens ontbreken
            if ((_ZijnBedrijf == null || _ZijnBedrijf.naam.Length < 1) && !VakmannenWithNoBedrijf.Contains(DezeVakman.Naam))
            {
                VakmannenWithNoBedrijf += (VakmannenWithNoBedrijf.Length > 0 ? ", " : "") + DezeVakman.Naam;
            }
            if ((DezeVakman.Bsn == null || DezeVakman.Bsn.Length < 1) && !VakmannenWithNoBsn.Contains(DezeVakman.Naam))
            {
                VakmannenWithNoBsn += (VakmannenWithNoBsn.Length > 0 ? ", " : "") + DezeVakman.Naam;
            }
            if (DezeVakman.geboortedatum == null && !VakmannenWithNoGeboortedatum.Contains(DezeVakman.Naam))
            {
                VakmannenWithNoGeboortedatum += (VakmannenWithNoGeboortedatum.Length > 0 ? ", " : "") + DezeVakman.Naam;
            }

            // Check if ID ongeldig of verlopen
            if (DezeVakman.SoortID == null || DezeVakman.IDstring == null || DezeVakman.GeldigTot == null || DezeVakman.IDstring.Length < 1)
            {
                if (!VakmannenWithNoID.Contains(DezeVakman.Naam))
                {
                    VakmannenWithNoID += (VakmannenWithNoID.Length > 0 ? ", " : "") + DezeVakman.Naam;
                }
                DezeVakman.IDstring = string.Empty;
            }
            else
            {
                if (DezeVakman.GeldigTot < DezeVakman.LastDate)
                {
                    if (!VakmannenWithVerlopenID.Contains(DezeVakman.Naam))
                    {
                        VakmannenWithVerlopenID += (VakmannenWithVerlopenID.Length > 0 ? ", " : "") + DezeVakman.Naam;
                    }
                    //DezeVakman.IDstring += string.Format("{0} \n(geldig tot {1:d MMMM yyy})",DezeVakman.IDstring,DezeVakman.GeldigTot);
                    DezeVakman.IDstring = string.Empty;
                }
            }

            string regel = VakmanRegel;

            regel = regel.Replace("{Nr}", (++VakmanNr).ToString());
            regel = regel.Replace("{Vakman}", DezeVakman.Naam);
            regel = regel.Replace("{Bsn}", DezeVakman.BSNLandcode + " " + DezeVakman.Bsn ?? "");
            regel = regel.Replace("{GebDatum}", string.Format("{0:dd-MM-yyyy}", DezeVakman.geboortedatum));
            if (DezeVakman.IDstring.Length < 2)
            {
                regel = regel.Replace("{IDNummer}", "");
            }
            else
            {
                regel = regel.Replace("{IDNummer}", string.Format("{0} {1} {2}", DezeVakman.SoortID ?? "", DezeVakman.IDstring == null ? "" : "nr:", DezeVakman.IDstring ?? ""));
            }
            regel = regel.Replace("{BedrijfsAdres}", _ZijnBedrijf == null ? "" : _ZijnBedrijf.straat);// DezeVakman.Adres);
            string pc = _ZijnBedrijf == null || _ZijnBedrijf.postcode == null ? "" : _ZijnBedrijf.postcode.Trim().ToUpper();

            regel = regel.Replace("{BedrijfsAdresPostcode}", pc.Length == 6 ? pc.Substring(0, 4) + " " + pc.Substring(4, 2) : pc);
            regel = regel.Replace("{BedrijfsAdresPlaats}", _ZijnBedrijf == null ? "" : _ZijnBedrijf.plaats);
            regel = regel.Replace("{BedrijfsLand}", _ZijnBedrijf == null ? "" : _ZijnBedrijf.land);
            string bedrijfsnaam = _ZijnBedrijf == null || _ZijnBedrijf.naam == null ? "<Geen Bedrijf geregistreerd>" : _ZijnBedrijf.naam;

            regel = regel.Replace("{T}", Uurformaat(_ZijnMinuten, true));
            switch (_ArbeidsRelatie)
            {
            case 1:     // Intern
                regel    = regel.Replace("{Dienstverband}", "In loondienst bij:");
                regel    = regel.Replace("{Bedrijf}", bedrijfsnaam);
                regel    = regel.Replace("{G}", Uurformaat(_ZijnMinuten, true));
                GTotaal += _ZijnMinuten;
                break;

            case 2:     //ZZP
                regel = regel.Replace("{Dienstverband}", "ZZP'er");
                regel = regel.Replace("{Bedrijf}", bedrijfsnaam);
                regel = regel.Replace("{G}", "0:00");
                break;

            //case 3: // Uitzendkracht
            //    regel = regel.Replace("{Dienstverband}", "Ingeleende uitzendkrecht of zo");
            //    regel = regel.Replace("{Bedrijf}", bedrijfsnaam);
            //    regel = regel.Replace("{G}", Uurformaat( _ZijnMinuten,true ));
            //    GTotaal += _ZijnMinuten;
            //    break;
            default:
                regel = regel.Replace("{Dienstverband}", "Arbeidsrelatie onbekend");
                regel = regel.Replace("{Bedrijf}", bedrijfsnaam);
                regel = regel.Replace("{G}", "??:??");
                break;
            }
            return(regel);
        }