private void btnAddVakman_Click(object sender, RoutedEventArgs e)
        {
            dbRepository dbrep = new dbRepository();

            Mandagen mandag = new Mandagen();

            mandag.VakmanId                   = Convert.ToInt32(ddlVakmannen.SelectedValue);
            mandag.ProjectId                  = objProject.ProjectId;
            mandag.Begintijd                  = Weekstart;
            mandag.Eindtijd                   = Weekstart;
            mandag.Uren                       = 0;
            mandag.UrenGewijzigd              = 0;
            mandag.Minuten                    = 0;
            mandag.MinutenGewijzigd           = 0;
            mandag.Mutatiedatum               = DateTime.Now;
            mandag.MutatieDoorProjectleiderId = objProject.ProjectleiderId;
            mandag.ProjectleiderId            = objProject.ProjectleiderId;
            mandag.VakmansoortId              = 1;
            mandag.VakmanstatusId             = 1;
            mandag.Gewijzigd                  = false;
            mandag.IsChauffeurHeen            = false;
            mandag.IsChauffeurTerug           = false;
            mandag.KentekenHeen               = "";
            mandag.KentekenTerug              = "";
            mandag.Geannulleerd               = false;
            mandag.Definitief                 = false;
            mandag.Bevestigd                  = true;
            mandag.Bevestigingsdatum          = DateTime.Now;

            dbrep.InsertMandag(mandag);

            LoadProjectDagenView();
        }
        //public static int CalculateUren(Mandagen mandag)
        //{

        //    if (mandag.Status)
        //    {
        //        long lnMandagTicks = (mandag.Eindtijd.Ticks - mandag.Begintijd.Ticks);


        //        TimeSpan tsMandag = TimeSpan.FromTicks(lnMandagTicks);

        //        return ((int)Math.Ceiling(tsMandag.TotalHours));
        //    }
        //    else
        //    {
        //        return 0;
        //    }

        //}

        //public static int CalculateUren(List<Mandagen> mandagen)
        //{
        //    long lnMandagTicks = 0;

        //    foreach (Mandagen mandag in mandagen)
        //    {
        //        if (mandag.Status)
        //        {
        //            lnMandagTicks += (mandag.Eindtijd.Ticks - mandag.Begintijd.Ticks);
        //        }
        //    }

        //    TimeSpan tsMandag = TimeSpan.FromTicks(lnMandagTicks);

        //    return ((int)Math.Ceiling(tsMandag.TotalHours));

        //}

        //public static string CalculateUrenExact(List<Mandagen> mandagen)
        //{
        //    long lnMandagTicks = 0;

        //    foreach (Mandagen mandag in mandagen)
        //    {
        //        if (mandag.Status)
        //        {
        //            lnMandagTicks += (mandag.Eindtijd.Ticks - mandag.Begintijd.Ticks);
        //        }
        //    }

        //    TimeSpan tsMandag = TimeSpan.FromTicks(lnMandagTicks);

        //    if (tsMandag.TotalHours == 0 && tsMandag.Minutes == 0)
        //    {
        //        return string.Empty;
        //    }
        //    else
        //    {
        //        return ((int)(Math.Floor(tsMandag.TotalHours))).ToString() + ":" + (tsMandag.Minutes < 10 ? "0" + tsMandag.Minutes.ToString() : tsMandag.Minutes.ToString());
        //    }

        //}

        public static int CalculateUren(Mandagen mandag)
        {
            if (mandag.Status)
            {
                if (mandag.Minuten == 0)
                {
                    return(mandag.Uren);
                }
                else
                {
                    return(mandag.Uren + 1);
                }
            }
            else
            {
                return(0);
            }
        }
        public void LoadProjectDag()
        {
            // intialize
            spProjectDag.Children.Clear();
            dbRepository dbrep = new dbRepository();

            listMandagen = dbrep.GetMandagenByProject(objProject.ProjectId);

            DateTime startDatum = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day);
            DateTime eindDatum  = startDatum.AddDays(1);

            listMandagen = listMandagen.Where(p => p.Begintijd >= startDatum && p.Begintijd < eindDatum && p.ProjectId == objProject.ProjectId).ToList();

            bool blnIsOwner = false;

            // als ik (degene die dit scherm bekijkt) de projectleider ben
            blnIsOwner = objProject.ProjectleiderId == objProjectleider.ProjectleiderId;


            // voor alle vakammen van dit project
            foreach (vwVakman vakman in listVakmannen)
            {
                // ziek en vakantie toevoegen
                VakmanDagProject vakmandagproject = new VakmanDagProject();

                // als ik (degene die dit scherm bekijkt) de projectleider ben
                vakmandagproject.IsGroen  = blnIsOwner;
                vakmandagproject.ReadOnly = true;
                //vakmandagproject.IsSolid = true;

                // kijken of hij ingepland is voor dit project
                Mandagen mandag = listMandagen.Where(m => m.VakmanId == vakman.VakmanId && m.VakmanstatusId == 1).FirstOrDefault();

                // als hij ingepland is
                if (mandag != null)
                {
                    vakmandagproject.IsSolid = !mandag.Gewijzigd;

                    vakmandagproject.Duration = mandag.Gewijzigd ? mandag.UrenGewijzigd : mandag.Uren;
                }

                bool blnIsEditor;

                // als hij ingepland is
                if (mandag != null)
                {
                    blnIsEditor = mandag.MutatieDoorProjectleiderId == objProjectleider.ProjectleiderId;



                    if (mandag.Geannulleerd && !blnIsEditor)
                    {
                        vakmandagproject.IsOranje = true;
                        vakmandagproject.Duration = mandag.UrenGewijzigd;
                        vakmandagproject.IsSolid  = false;

                        // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                        IsGewijzigd = true;
                    }
                    // als de mandag bevestigd is, niks aan de hand, gewoon de normale uren weergeven
                    else if (mandag.Bevestigd)
                    {
                        vakmandagproject.Duration = mandag.Uren;
                        vakmandagproject.IsSolid  = true;
                    }
                    else // als niet bevestigd, dan is er iets gewijzigd, hetzij een wijziging, hetzij een nieuwe invoer
                    {
                        vakmandagproject.Duration = mandag.UrenGewijzigd;
                        vakmandagproject.IsSolid  = false;

                        // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                        IsGewijzigd = true;

                        // bij gewijzigde items de gewijzigde uren weergeven
                    }
                }
                else
                {
                    vakmandagproject.Duration = 0;
                }

                // klaar met instellingen, vakmandagproject toevoegen
                spProjectDag.Children.Add(vakmandagproject);
            }
        }
        /// <summary>
        /// Toevoegen van een mandag aan de mandag
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void recDag_MouseDown(object sender, RoutedEventArgs e)
        {
            // set status gewijzigd is true
            IsGewijzigd = true;
            dbRepository dbrep = new dbRepository();

            if (((VakmanDagProject)sender).IsNietIngevuld)
            {
                dbrep.ResetMandagenNietIngevuldVoorVakmanId(objVakman.VakmanId, dtBegintijd, objProjectleider.ProjectleiderId);
            }
            else
            {
                bool canPerformAndConfirmChange = true; //
                dbrep.ResetMandagenVoorVakmanId(objVakman.VakmanId, dtBegintijd, objProjectleider.ProjectleiderId);

                Mandagen mandag = new Mandagen();
                mandag.VakmanId  = objVakman.VakmanId;
                mandag.ProjectId = ((VakmanDagProject)sender).ProjectId;
                mandag.Begintijd = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day, 8, 0, 0);
                mandag.Bevestigd = false;
                mandag.Gewijzigd = true;
                //mandag.Bevestigd = canPerformAndConfirmChange;
                //mandag.Gewijzigd = !canPerformAndConfirmChange;
                mandag.Bevestigingsdatum = DateTime.Now;
                mandag.Eindtijd          = dtBegintijd.AddHours(8);

                mandag.IsChauffeurHeen  = false;
                mandag.IsChauffeurTerug = false;
                mandag.KentekenHeen     = "";
                mandag.KentekenTerug    = "";

                //if (canPerformAndConfirmChange)
                //{
                //    mandag.Minuten = 0;
                //    mandag.Uren = 8;
                //    mandag.MinutenGewijzigd = 0;
                //    mandag.UrenGewijzigd = 0;
                //}
                //else
                //{


                //int intUren = Convert.ToInt32(((VakmanDagProject)sender).lblVakmandagUren.Content);
                //int intMinuten = Convert.ToInt32(((VakmanDagProject)sender).lblVakmandagMinuten.Content);

                mandag.Minuten          = 0;
                mandag.Uren             = 0;
                mandag.MinutenGewijzigd = 0;
                mandag.UrenGewijzigd    = 8;

                //mandag.MinutenGewijzigd = intMinuten;
                //mandag.UrenGewijzigd = intUren;

                //}

                mandag.Mutatiedatum               = DateTime.Now;
                mandag.Definitief                 = false;
                mandag.ProjectleiderId            = objProjectleider.ProjectleiderId;
                mandag.MutatieDoorProjectleiderId = objProjectleider.ProjectleiderId;
                mandag.VakmansoortId              = 1;
                mandag.VakmanstatusId             = 1;
                if (((VakmanDagProject)sender).IsZiek)
                {
                    mandag.VakmanstatusId = 2;
                }
                else if (((VakmanDagProject)sender).IsVakantie)
                {
                    mandag.VakmanstatusId = 3;
                }

                dbrep.InsertMandag(mandag);
                // nieuwe mandag toevoegen

                // eigen project OF ziekte OF vakantie inplannen moet automatisch confirmed worden
                // if (canPerformAndConfirmChange && ((VakmanDagProject)sender).Project.ProjectleiderId == objProjectleider.ProjectleiderId || (((VakmanDagProject)sender).IsZiek || ((VakmanDagProject)sender).IsVakantie))

                if ((canPerformAndConfirmChange && ((VakmanDagProject)sender).ProjectId != 0 && ((VakmanDagProject)sender).Project.ProjectleiderId == objProjectleider.ProjectleiderId) || canPerformAndConfirmChange && ((VakmanDagProject)sender).ProjectId == 0)

                //if (canPerformAndConfirmChange && (((VakmanDagProject)sender).IsZiek || ((VakmanDagProject)sender).IsVakantie))
                {
                    //confirm myself
                    dbrep.ConfirmMandagenVoorVakmanId(objVakman.VakmanId, dtBegintijd, objProjectleider.ProjectleiderId);
                }
            }

            LoadVakmanDag();

            RoutedEventArgs args = new RoutedEventArgs(VakmanDagSelectEvent, sender);

            args.RoutedEvent = VakmanDagSelectEvent;
            RaiseEvent(args);
        }
        public void LoadVakmanDag()
        {
            // intialize
            spVakmanDag.Children.Clear();
            dbRepository dbrep = new dbRepository();

            listMandagen = dbrep.GetMandagen(objVakman.VakmanId, dtBegintijd);
            bool blnIsOpVreemdProjectIngepland   = false;
            bool blnIsOpVreemdProjectAangevraagd = false;
            bool blnIsOpProjectAangevraagd       = false;
            bool blnIsOpProjectIngepland;
            bool blnIsNotOwner = false;

            DateTime startDatum = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day);
            DateTime eindDatum  = startDatum.AddDays(1);

            listMandagen = listMandagen.Where(p => p.Begintijd >= startDatum && p.Begintijd < eindDatum).ToList();

            blnIsOpVreemdProjectIngepland   = listMandagen.Any(m => m.Uren > 0 && m.Project.ProjectleiderId != objProjectleider.ProjectleiderId && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));
            blnIsOpProjectAangevraagd       = listMandagen.Any(m => m.Gewijzigd && m.UrenGewijzigd > 0 && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));
            blnIsOpVreemdProjectAangevraagd = listMandagen.Any(m => m.Gewijzigd && m.UrenGewijzigd > 0 && m.MutatieDoorProjectleiderId != objProjectleider.ProjectleiderId && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));
            blnIsOpProjectIngepland         = listMandagen.Any(m => m.Bevestigd && m.Uren > 0 && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));
            blnIsNotOwner = !listMandagen.Any(m => m.Bevestigd && m.Uren > 0 && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));


            bool blnIsAllowedToCancel              = false;
            bool blnIsAllowedToConfirm             = false;
            bool blnIsAllowedToAcceptAnnulleringen = false;

            bool blnIsAllowedToSetZiek     = true;
            bool blnIsAllowedToSetVakantie = true;


            // voor alle projecten van deze vakman
            foreach (Project project in listProjecten)
            {
                bool blnIsOwner  = false;
                bool blnIsEditor = false;

                // als ik (degene die dit scherm bekijkt) de projectleider ben
                blnIsOwner = project.ProjectleiderId == objProjectleider.ProjectleiderId;

                VakmanDagProject vakmandagproject = new VakmanDagProject();
                vakmandagproject.ProjectId = project.ProjectId;
                vakmandagproject.OnVakmanDagProjectUpdate += new RoutedEventHandler(recDag_MouseDown);
                vakmandagproject.OnVakmanDagProjectSelect += new RoutedEventHandler(spVakmandagProject_OnVakmanDagSelectEvent);

                // als ik (degene die dit scherm bekijkt) de projectleider ben
                vakmandagproject.IsGroen = blnIsOwner;

                // als het niet mijn project is EN er ergens uren staan ingevuld op een (ANDER) project
                vakmandagproject.ReadOnly = (!blnIsOwner && blnIsOpVreemdProjectIngepland) || (blnIsOpProjectAangevraagd);

                // kijken of hij ingepland is voor dit project
                Mandagen mandag = listMandagen.Where(m => m.ProjectId == project.ProjectId && m.VakmanstatusId == 1).FirstOrDefault();

                // als hij ingepland is
                if (mandag != null)
                {
                    blnIsEditor = mandag.MutatieDoorProjectleiderId == objProjectleider.ProjectleiderId;

                    // iemand geeft een vakman aan mij
                    // stippelijn door iemand anders bij mij geplaatst
                    // niet bevestigd wel owner en gewijzigd door iemand anders
                    // als het project gewijzigd is, door iemand anders, en de wijziging mijn uren betreft
                    if (!mandag.Bevestigd && blnIsOwner && mandag.Gewijzigd && !blnIsEditor && mandag.UrenGewijzigd > 0)
                    {
                        blnIsAllowedToConfirm = true;
                        blnIsAllowedToCancel  = true;
                    }

                    // iemand pakt een vakman van mij
                    // solid lijn
                    // wel bevestigd, maar gemuteerd door iemand anders en ik ben owner
                    if (mandag.Bevestigd && blnIsOwner && mandag.Gewijzigd && !blnIsEditor && mandag.Uren > 0)
                    {
                        blnIsAllowedToConfirm = true;
                        blnIsAllowedToCancel  = true;
                    }

                    if (mandag.Geannulleerd && !blnIsEditor)
                    {
                        vakmandagproject.IsOranje         = true;
                        vakmandagproject.Duration         = mandag.UrenGewijzigd;
                        vakmandagproject.IsSolid          = false;
                        blnIsAllowedToAcceptAnnulleringen = blnIsOwner;
                        // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                        IsGewijzigd = true;
                    }
                    // als de mandag bevestigd is, niks aan de hand, gewoon de normale uren weergeven
                    else if (mandag.Bevestigd)
                    {
                        vakmandagproject.Duration = mandag.Uren;
                        vakmandagproject.IsSolid  = true;

                        // if (!blnIsOwner && vakmandagproject.Duration > 0)
                        if (blnIsOpVreemdProjectIngepland && !blnIsOwner)
                        {
                            vakmandagproject.ReadOnly = true;
                            blnIsAllowedToSetZiek     = false;
                            blnIsAllowedToSetVakantie = false;
                        }
                        else if (blnIsOwner && vakmandagproject.Duration > 0)
                        {
                            // TODO: weeer aanzetten, nu even uitzetten
                            // vakmandagproject.spVakmanDagUren.Visibility = System.Windows.Visibility.Visible;
                            //vakmandagproject.lblVakmandagUren.Content = mandag.Uren;
                            //vakmandagproject.lblVakmandagMinuten.Content = mandag.Minuten;
                        }
                    }
                    else // als niet bevestigd, dan is er iets gewijzigd, hetzij een wijziging, hetzij een nieuwe invoer
                    {
                        vakmandagproject.Duration = mandag.UrenGewijzigd;
                        vakmandagproject.IsSolid  = false;

                        if (blnIsOwner || blnIsEditor)
                        {
                            blnIsAllowedToCancel = true;
                        }

                        // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                        IsGewijzigd = true;

                        // bij gewijzigde items de gewijzigde uren weergeven
                    }
                }
                else // niet ingepland, dus niks veranderen aan default situatie, duration = 0
                {
                    vakmandagproject.Duration = 0;
                }

                // klaar met instellingen, vakmandagproject toevoegen
                spVakmanDag.Children.Add(vakmandagproject);
            }



            // ziek en vakantie toevoegen
            VakmanDagProject vakmandagprojectZiek = new VakmanDagProject();

            vakmandagprojectZiek.ProjectId = 0;
            vakmandagprojectZiek.OnVakmanDagProjectUpdate += new RoutedEventHandler(recDag_MouseDown);
            vakmandagprojectZiek.IsZiek = true;
            bool blnIsZiek = false;

            // als ik (degene die dit scherm bekijkt) de projectleider ben
            vakmandagprojectZiek.IsGroen = false; // blnIsOwner;

            // TEST
            //vakmandagprojectZiek.ReadOnly = !blnIsAllowedToSetZiek;
            vakmandagprojectZiek.ReadOnly = !blnIsAllowedToSetZiek || blnIsAllowedToCancel || blnIsAllowedToConfirm || blnIsAllowedToAcceptAnnulleringen;
            //vakmandagprojectZiek.ReadOnly = (!blnIsOwner && blnIsOpVreemdProjectIngepland) || (blnIsOpVreemdProjectAangevraagd);


            // kijken of hij ingepland is voor dit project
            Mandagen mandagZiek = listMandagen.Where(m => m.ProjectId == 0 && m.VakmanstatusId == 2).FirstOrDefault();

            // als hij ingepland is
            if (mandagZiek != null)
            {
                bool blnIsOwner;
                bool blnIsEditor;

                blnIsOwner  = mandagZiek.Project.ProjectleiderId == objProjectleider.ProjectleiderId;
                blnIsEditor = mandagZiek.MutatieDoorProjectleiderId == objProjectleider.ProjectleiderId;

                // iemand geeft een vakman aan mij
                // stippelijn door iemand anders bij mij geplaatst
                // niet bevestigd wel owner en gewijzigd door iemand anders
                // als het project gewijzigd is, door iemand anders, en de wijziging mijn uren betreft
                if (!mandagZiek.Bevestigd && blnIsOwner && mandagZiek.Gewijzigd && !blnIsEditor && mandagZiek.UrenGewijzigd > 0)
                {
                    blnIsAllowedToConfirm = true;
                    blnIsAllowedToCancel  = true;
                }

                // iemand pakt een vakman van mij
                // solid lijn
                // wel bevestigd, maar gemuteerd door iemand anders en ik ben owner
                if (mandagZiek.Bevestigd && blnIsOwner && mandagZiek.Gewijzigd && !blnIsEditor && mandagZiek.Uren > 0)
                {
                    blnIsAllowedToConfirm = true;
                    blnIsAllowedToCancel  = true;
                }


                if (mandagZiek.Geannulleerd && !blnIsEditor)
                {
                    vakmandagprojectZiek.Duration = mandagZiek.UrenGewijzigd;
                    vakmandagprojectZiek.IsOranje = true;
                    vakmandagprojectZiek.IsSolid  = false;
                    // blnIsAllowedToAcceptAnnulleringen = true;
                    // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                    IsGewijzigd = true;
                }
                // als de mandag bevestigd is, niks aan de hand, gewoon de normale uren weergeven
                else if (mandagZiek.Bevestigd)
                {
                    blnIsZiek = mandagZiek.Uren > 0;

                    vakmandagprojectZiek.Duration = mandagZiek.Uren;
                    vakmandagprojectZiek.IsSolid  = true;
                }
                else // als niet bevestigd, dan is er iets gewijzigd, hetzij een wijziging, hetzij een nieuwe invoer
                {
                    vakmandagprojectZiek.IsSolid = false;

                    if (blnIsOwner || blnIsEditor)
                    {
                        blnIsAllowedToCancel = true;
                    }

                    // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                    IsGewijzigd = true;

                    // bij gewijzigde items de gewijzigde uren weergeven
                    vakmandagprojectZiek.Duration = mandagZiek.UrenGewijzigd;
                }
            }
            else // niet ingepland, dus niks veranderen aan default situatie, duration = 0
            {
                vakmandagprojectZiek.Duration = 0;
            }

            // klaar met instellingen, vakmandagproject toevoegen
            spVakmanDag.Children.Add(vakmandagprojectZiek);



            // ziek en vakantie toevoegen
            // ziek en vakantie toevoegen
            VakmanDagProject vakmandagprojectVakantie = new VakmanDagProject();

            vakmandagprojectVakantie.ProjectId = 0;
            vakmandagprojectVakantie.OnVakmanDagProjectUpdate += new RoutedEventHandler(recDag_MouseDown);
            vakmandagprojectVakantie.IsVakantie = true;
            bool blnIsVakantie = false;

            // als ik (degene die dit scherm bekijkt) de projectleider ben
            vakmandagprojectVakantie.IsGroen = false; // blnIsOwner;

            // TEST
            vakmandagprojectVakantie.ReadOnly = !blnIsAllowedToSetVakantie || blnIsAllowedToCancel || blnIsAllowedToConfirm || blnIsAllowedToAcceptAnnulleringen;
            //vakmandagprojectVakantie.ReadOnly = (!blnIsOwner && blnIsOpVreemdProjectIngepland) || (blnIsOpVreemdProjectAangevraagd);

            // kijken of hij ingepland is voor dit project
            Mandagen mandagVakantie = listMandagen.Where(m => m.ProjectId == 0 && m.VakmanstatusId == 3).FirstOrDefault();

            // als hij ingepland is
            if (mandagVakantie != null)
            {
                bool blnIsOwner;
                bool blnIsEditor;

                blnIsEditor = mandagVakantie.MutatieDoorProjectleiderId == objProjectleider.ProjectleiderId;
                blnIsOwner  = mandagVakantie.Project.ProjectleiderId == objProjectleider.ProjectleiderId;

                // iemand geeft een vakman aan mij
                // stippelijn door iemand anders bij mij geplaatst
                // niet bevestigd wel owner en gewijzigd door iemand anders
                // als het project gewijzigd is, door iemand anders, en de wijziging mijn uren betreft
                if (!mandagVakantie.Bevestigd && blnIsOwner && mandagVakantie.Gewijzigd && !blnIsEditor && mandagVakantie.UrenGewijzigd > 0)
                {
                    blnIsAllowedToConfirm = true;
                    blnIsAllowedToCancel  = true;
                }

                // iemand pakt een vakman van mij
                // solid lijn
                // wel bevestigd, maar gemuteerd door iemand anders en ik ben owner
                if (mandagVakantie.Bevestigd && blnIsOwner && mandagVakantie.Gewijzigd && !blnIsEditor && mandagVakantie.Uren > 0)
                {
                    blnIsAllowedToConfirm = true;
                    blnIsAllowedToCancel  = true;
                }

                if (mandagVakantie.Geannulleerd && !blnIsEditor)
                {
                    vakmandagprojectVakantie.Duration = mandagVakantie.UrenGewijzigd;
                    vakmandagprojectVakantie.IsOranje = true;
                    vakmandagprojectVakantie.IsSolid  = false;
                    blnIsAllowedToAcceptAnnulleringen = true;
                    // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                    IsGewijzigd = true;
                }
                // als de mandag bevestigd is, niks aan de hand, gewoon de normale uren weergeven
                else if (mandagVakantie.Bevestigd)
                {
                    blnIsVakantie = mandagVakantie.Uren > 0;

                    vakmandagprojectVakantie.Duration = mandagVakantie.Uren;
                    vakmandagprojectVakantie.IsSolid  = true;
                }
                else // als niet bevestigd, dan is er iets gewijzigd, hetzij een wijziging, hetzij een nieuwe invoer
                {
                    vakmandagprojectVakantie.IsSolid = false;

                    if (blnIsOwner || blnIsEditor)
                    {
                        blnIsAllowedToCancel = true;
                    }

                    // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                    IsGewijzigd = true;

                    // bij gewijzigde items de gewijzigde uren weergeven
                    vakmandagprojectVakantie.Duration = mandagVakantie.UrenGewijzigd;
                }
            }
            else // niet ingepland, dus niks veranderen aan default situatie, duration = 0
            {
                vakmandagprojectVakantie.Duration = 0;
            }

            // klaar met instellingen, vakmandagproject toevoegen
            spVakmanDag.Children.Add(vakmandagprojectVakantie);



            // Niet ingevuld toevoegen
            VakmanDagProject vakmandagprojectNietIngevuld = new VakmanDagProject();

            vakmandagprojectNietIngevuld.ProjectId = 0;
            vakmandagprojectNietIngevuld.OnVakmanDagProjectUpdate += new RoutedEventHandler(recDag_MouseDown);
            vakmandagprojectNietIngevuld.IsNietIngevuld            = true;

            // als ik (degene die dit scherm bekijkt) de projectleider ben
            vakmandagprojectNietIngevuld.IsGroen  = false;
            vakmandagprojectNietIngevuld.ReadOnly = blnIsAllowedToCancel || blnIsAllowedToAcceptAnnulleringen || ((blnIsOpVreemdProjectIngepland || blnIsNotOwner) && !blnIsZiek && !blnIsVakantie);
            //vakmandagprojectNietIngevuld.ReadOnly = (blnIsNotOwner && blnIsOpVreemdProjectIngepland) || (blnIsOpVreemdProjectAangevraagd);

            vakmandagprojectNietIngevuld.IsSolid  = true;
            vakmandagprojectNietIngevuld.Duration = blnIsOpProjectIngepland ? 0 : 8;;

            // klaar met instellingen, vakmandagproject toevoegen
            spVakmanDag.Children.Add(vakmandagprojectNietIngevuld);



            // visibility van knoppen instellen
            if (blnIsAllowedToConfirm)
            {
                recOK.Visibility = System.Windows.Visibility.Visible;
            }
            else
            {
                recOK.Visibility = System.Windows.Visibility.Hidden;
            }

            // visibility van knoppen instellen
            if (blnIsAllowedToCancel)
            {
                recCancel.Visibility = System.Windows.Visibility.Visible;
            }
            else
            {
                recCancel.Visibility = System.Windows.Visibility.Hidden;
            }

            if (blnIsAllowedToAcceptAnnulleringen)
            {
                recReadGeannulleerd.Visibility = System.Windows.Visibility.Visible;
            }
            else
            {
                recReadGeannulleerd.Visibility = System.Windows.Visibility.Hidden;
            }
        }
Beispiel #6
0
        private void btnConfirm_Click(object sender, RoutedEventArgs e)
        {
            int intCountMandagen = 0;
            int i = -1;
            int intCountQuarters = 0;

            bool blnIsMandagFound = false;

            List <Mandagen> listMandagen = new List <Mandagen>();

            foreach (VakmanDagViewProjectUur vpu in spVakmanDag.Children)
            {
                //
                if (vpu.Q1Selected && !blnIsMandagFound)
                {
                    Mandagen mandag = new Mandagen();
                    listMandagen.Add(mandag);
                    intCountMandagen++;
                    i++;
                    intCountQuarters++;

                    blnIsMandagFound = true;

                    // info die je bij adden al weet:
                    mandag.VakmanId     = vpu.vakman.VakmanId;
                    mandag.ProjectId    = vpu.project.ProjectId;
                    mandag.Mutatiedatum = DateTime.Now;
                    mandag.MutatieDoorProjectleiderId = objProjectleider.ProjectleiderId;
                    mandag.ProjectleiderId            = vpu.project.ProjectleiderId;
                    mandag.VakmansoortId     = 1;
                    mandag.VakmanstatusId    = 1;
                    mandag.Gewijzigd         = false;
                    mandag.IsChauffeurHeen   = false;
                    mandag.IsChauffeurTerug  = false;
                    mandag.KentekenHeen      = "";
                    mandag.KentekenTerug     = "";
                    mandag.Geannulleerd      = false;
                    mandag.Definitief        = false;
                    mandag.Bevestigd         = true;
                    mandag.Bevestigingsdatum = DateTime.Now;

                    // velden te berekenen
                    mandag.Begintijd = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day, vpu.Uur, 0, 0);
                }
                else if (vpu.Q1Selected)
                {
                    intCountQuarters++;
                }
                else if (!vpu.Q1Selected)
                {
                    if (i >= 0 && blnIsMandagFound)
                    {
                        // velden te berekenen
                        listMandagen[i].Eindtijd         = listMandagen[i].Begintijd.AddMinutes(intCountQuarters * 15);
                        listMandagen[i].Uren             = Convert.ToInt32(Math.Floor(Convert.ToDouble(intCountQuarters / 4)));
                        listMandagen[i].UrenGewijzigd    = listMandagen[i].Uren;
                        listMandagen[i].Minuten          = (intCountQuarters * 15) - (listMandagen[i].Uren * 60);
                        listMandagen[i].MinutenGewijzigd = listMandagen[i].Minuten;

                        intCountQuarters = 0;
                    }

                    blnIsMandagFound = false;
                }

                if (vpu.Q2Selected && !blnIsMandagFound)
                {
                    Mandagen mandag = new Mandagen();
                    listMandagen.Add(mandag);
                    intCountMandagen++;
                    i++;
                    intCountQuarters++;

                    blnIsMandagFound = true;

                    // info die je bij adden al weet:
                    mandag.VakmanId     = vpu.vakman.VakmanId;
                    mandag.ProjectId    = vpu.project.ProjectId;
                    mandag.Mutatiedatum = DateTime.Now;
                    mandag.MutatieDoorProjectleiderId = objProjectleider.ProjectleiderId;
                    mandag.ProjectleiderId            = vpu.project.ProjectleiderId;
                    mandag.VakmansoortId     = 1;
                    mandag.VakmanstatusId    = 1;
                    mandag.Gewijzigd         = false;
                    mandag.IsChauffeurHeen   = false;
                    mandag.IsChauffeurTerug  = false;
                    mandag.KentekenHeen      = "";
                    mandag.KentekenTerug     = "";
                    mandag.Geannulleerd      = false;
                    mandag.Definitief        = false;
                    mandag.Bevestigd         = true;
                    mandag.Bevestigingsdatum = DateTime.Now;

                    // velden te berekenen
                    mandag.Begintijd = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day, vpu.Uur, 15, 0);
                }
                else if (vpu.Q2Selected)
                {
                    intCountQuarters++;
                }
                else if (!vpu.Q2Selected)
                {
                    if (i >= 0 && blnIsMandagFound)
                    {
                        listMandagen[i].Eindtijd         = listMandagen[i].Begintijd.AddMinutes(intCountQuarters * 15);
                        listMandagen[i].Uren             = Convert.ToInt32(Math.Floor(Convert.ToDouble(intCountQuarters / 4)));
                        listMandagen[i].UrenGewijzigd    = listMandagen[i].Uren;
                        listMandagen[i].Minuten          = (intCountQuarters * 15) - (listMandagen[i].Uren * 60);
                        listMandagen[i].MinutenGewijzigd = listMandagen[i].Minuten;

                        intCountQuarters = 0;
                    }

                    blnIsMandagFound = false;
                }

                if (vpu.Q3Selected && !blnIsMandagFound)
                {
                    Mandagen mandag = new Mandagen();
                    listMandagen.Add(mandag);
                    intCountMandagen++;
                    i++;
                    intCountQuarters++;

                    blnIsMandagFound = true;

                    // info die je bij adden al weet:
                    mandag.VakmanId     = vpu.vakman.VakmanId;
                    mandag.ProjectId    = vpu.project.ProjectId;
                    mandag.Mutatiedatum = DateTime.Now;
                    mandag.MutatieDoorProjectleiderId = objProjectleider.ProjectleiderId;
                    mandag.ProjectleiderId            = vpu.project.ProjectleiderId;
                    mandag.VakmansoortId     = 1;
                    mandag.VakmanstatusId    = 1;
                    mandag.Gewijzigd         = false;
                    mandag.IsChauffeurHeen   = false;
                    mandag.IsChauffeurTerug  = false;
                    mandag.KentekenHeen      = "";
                    mandag.KentekenTerug     = "";
                    mandag.Geannulleerd      = false;
                    mandag.Definitief        = false;
                    mandag.Bevestigd         = true;
                    mandag.Bevestigingsdatum = DateTime.Now;

                    // velden te berekenen
                    mandag.Begintijd = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day, vpu.Uur, 30, 0);
                }
                else if (vpu.Q3Selected)
                {
                    intCountQuarters++;
                }
                else if (!vpu.Q3Selected)
                {
                    if (i >= 0 && blnIsMandagFound)
                    {
                        listMandagen[i].Eindtijd         = listMandagen[i].Begintijd.AddMinutes(intCountQuarters * 15);
                        listMandagen[i].Uren             = Convert.ToInt32(Math.Floor(Convert.ToDouble(intCountQuarters / 4)));
                        listMandagen[i].UrenGewijzigd    = listMandagen[i].Uren;
                        listMandagen[i].Minuten          = (intCountQuarters * 15) - (listMandagen[i].Uren * 60);
                        listMandagen[i].MinutenGewijzigd = listMandagen[i].Minuten;

                        intCountQuarters = 0;
                    }

                    blnIsMandagFound = false;
                }

                if (vpu.Q4Selected && !blnIsMandagFound)
                {
                    Mandagen mandag = new Mandagen();
                    listMandagen.Add(mandag);
                    intCountMandagen++;
                    i++;
                    intCountQuarters++;

                    blnIsMandagFound = true;

                    // info die je bij adden al weet:
                    mandag.VakmanId     = vpu.vakman.VakmanId;
                    mandag.ProjectId    = vpu.project.ProjectId;
                    mandag.Mutatiedatum = DateTime.Now;
                    mandag.MutatieDoorProjectleiderId = objProjectleider.ProjectleiderId;
                    mandag.ProjectleiderId            = vpu.project.ProjectleiderId;
                    mandag.VakmansoortId     = 1;
                    mandag.VakmanstatusId    = 1;
                    mandag.Gewijzigd         = false;
                    mandag.IsChauffeurHeen   = false;
                    mandag.IsChauffeurTerug  = false;
                    mandag.KentekenHeen      = "";
                    mandag.KentekenTerug     = "";
                    mandag.Geannulleerd      = false;
                    mandag.Definitief        = false;
                    mandag.Bevestigd         = true;
                    mandag.Bevestigingsdatum = DateTime.Now;

                    // velden te berekenen
                    mandag.Begintijd = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day, vpu.Uur, 45, 0);
                }
                else if (vpu.Q4Selected)
                {
                    intCountQuarters++;
                }
                else if (!vpu.Q4Selected)
                {
                    if (i >= 0 && blnIsMandagFound)
                    {
                        listMandagen[i].Eindtijd         = listMandagen[i].Begintijd.AddMinutes(intCountQuarters * 15);
                        listMandagen[i].Uren             = Convert.ToInt32(Math.Floor(Convert.ToDouble(intCountQuarters / 4)));
                        listMandagen[i].UrenGewijzigd    = listMandagen[i].Uren;
                        listMandagen[i].Minuten          = (intCountQuarters * 15) - (listMandagen[i].Uren * 60);
                        listMandagen[i].MinutenGewijzigd = listMandagen[i].Minuten;

                        intCountQuarters = 0;
                    }

                    blnIsMandagFound = false;
                }
            }

            lblVakmanBsn.Content = intCountMandagen.ToString();



            dbRepository dbrep = new dbRepository();

            dbrep.ResetMandagenNietIngevuldVoorVakmanId(objVakman.VakmanId, dtBegintijd, objProjectleider.ProjectleiderId);

            // allemaal toevoegen
            foreach (Mandagen mandag in listMandagen)
            {
                dbrep.InsertMandag(mandag);
            }
        }
Beispiel #7
0
        public void LoadVakmanDagView()
        {
            dtBegintijd = ApplicationState.GetValue <DateTime>("dtSelectedDay");


            //lblDagInfo.Content =

            // intialize
            spVakmanDag.Children.Clear();
            dbRepository dbrep = new dbRepository();

            intVakmanId      = ApplicationState.GetValue <int>("intVakmanId");
            intProjectleider = ApplicationState.GetValue <int>("intProjectleider");

            objVakman        = dbrep.GetVakman(intVakmanId);
            objProjectleider = dbrep.GetProjectleider(intProjectleider);
            listProjecten    = dbrep.GetProjectsByVakmanId(intVakmanId, Weekstart);

            listMandagen = dbrep.GetMandagen(objVakman.VakmanId);
            bool blnIsOpVreemdProjectIngepland   = false;
            bool blnIsOpVreemdProjectAangevraagd = false;
            bool blnIsOpProjectAangevraagd       = false;
            bool blnIsOpProjectIngepland;
            bool blnIsNotOwner = false;


            // load overzicht
            spOverzicht.Children.Clear();

            foreach (Project project in listProjecten)
            {
                VakmanDagProjectHeader vakmandagprojectheader = new VakmanDagProjectHeader();
                if (project.ProjectId == ApplicationState.GetValue <int>("intProjectId"))
                {
                    vakmandagprojectheader.btnGoToProject.Content = "<";
                }

                vakmandagprojectheader.Project = project;
                spOverzicht.Children.Add(vakmandagprojectheader);
            }



            bool blnIsOpMijnProjectIngepland;

            DateTime startDatum = new DateTime(dtBegintijd.Year, dtBegintijd.Month, dtBegintijd.Day);
            DateTime eindDatum  = startDatum.AddDays(1);

            listMandagen = listMandagen.Where(p => p.Begintijd >= startDatum && p.Begintijd < eindDatum).ToList();

            blnIsOpVreemdProjectIngepland   = listMandagen.Any(m => m.Uren > 0 && m.Project.ProjectleiderId != objProjectleider.ProjectleiderId && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));
            blnIsOpProjectAangevraagd       = listMandagen.Any(m => m.Gewijzigd && m.UrenGewijzigd > 0 && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));
            blnIsOpVreemdProjectAangevraagd = listMandagen.Any(m => m.Gewijzigd && m.UrenGewijzigd > 0 && m.MutatieDoorProjectleiderId != objProjectleider.ProjectleiderId && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));
            blnIsOpProjectIngepland         = listMandagen.Any(m => m.Bevestigd && m.Uren > 0 && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));

            // volgens mij klopt deze query alleen toevallig omdat je in de weekview alle mandagen van 1 projectleider zijn
            blnIsNotOwner = !listMandagen.Any(m => m.Bevestigd && m.Uren > 0 && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));

            blnIsOpMijnProjectIngepland = listMandagen.Any(m => m.Uren > 0 && m.Project.ProjectleiderId == objProjectleider.ProjectleiderId && (m.VakmanstatusId == 1 || m.VakmanstatusId == 2 || m.VakmanstatusId == 3));

            bool blnIsAllowedToCancel              = false;
            bool blnIsAllowedToConfirm             = false;
            bool blnIsAllowedToAcceptAnnulleringen = false;

            bool blnIsAllowedToSetZiek     = true;
            bool blnIsAllowedToSetVakantie = true;


            // voor alle projecten van deze vakman
            foreach (Project project in listProjecten)
            {
                bool blnIsOwner  = false;
                bool blnIsEditor = false;

                // als ik (degene die dit scherm bekijkt) de projectleider ben
                blnIsOwner = project.ProjectleiderId == objProjectleider.ProjectleiderId;

                //VakmanDagViewProjectUren vakmandagproject = new VakmanDagViewProjectUren();
                //vakmandagproject.ProjectId = project.ProjectId;
                ////vakmandagproject.OnVakmanDagProjectUpdate += new RoutedEventHandler(recDag_MouseDown);
                ////vakmandagproject.OnVakmanDagProjectSelect += new RoutedEventHandler(spVakmandagProject_OnVakmanDagSelectEvent);

                //// als ik (degene die dit scherm bekijkt) de projectleider ben
                //vakmandagproject.IsGroen = blnIsOwner;

                //// als het niet mijn project is EN er ergens uren staan ingevuld op een (ANDER) project
                //vakmandagproject.ReadOnly = (!blnIsOwner && blnIsOpVreemdProjectIngepland) || (blnIsOpProjectAangevraagd);

                // kijken of hij ingepland is voor dit project
                Mandagen mandag = listMandagen.Where(m => m.ProjectId == project.ProjectId && m.VakmanstatusId == 1).FirstOrDefault();

                foreach (VakmanDagViewProjectUur vpu in GetProjectUren(listMandagen.Where(m => m.ProjectId == project.ProjectId && m.VakmanstatusId == 1).ToList(), project, dtBegintijd))
                {
                    vpu.project = project;
                    vpu.vakman  = objVakman;

                    // oneven uren 'arceren'
                    if (vpu.Uur % 2 == 1)
                    {
                        vpu.spUur.Background = new SolidColorBrush(Colors.Beige);
                    }



                    // als hij ingepland is
                    if (mandag != null)
                    {
                        blnIsEditor = mandag.MutatieDoorProjectleiderId == objProjectleider.ProjectleiderId;

                        // iemand geeft een vakman aan mij
                        // stippelijn door iemand anders bij mij geplaatst
                        // niet bevestigd wel owner en gewijzigd door iemand anders
                        // als het project gewijzigd is, door iemand anders, en de wijziging mijn uren betreft
                        if (!mandag.Bevestigd && blnIsOwner && mandag.Gewijzigd && !blnIsEditor && mandag.UrenGewijzigd > 0)
                        {
                            blnIsAllowedToConfirm = true;
                            blnIsAllowedToCancel  = true;
                        }

                        // iemand pakt een vakman van mij
                        // solid lijn
                        // wel bevestigd, maar gemuteerd door iemand anders en ik ben owner
                        if (mandag.Bevestigd && blnIsOwner && mandag.Gewijzigd && !blnIsEditor && mandag.Uren > 0)
                        {
                            blnIsAllowedToConfirm = true;
                            blnIsAllowedToCancel  = true;
                        }

                        if (mandag.Geannulleerd && !blnIsEditor)
                        {
                            //vakmandagproject.IsOranje = true;
                            //vakmandagproject.Duration = mandag.UrenGewijzigd;
                            //vakmandagproject.IsSolid = false;
                            blnIsAllowedToAcceptAnnulleringen = blnIsOwner;
                            // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                            IsGewijzigd = true;
                        }
                        // als de mandag bevestigd is, niks aan de hand, gewoon de normale uren weergeven
                        else if (mandag.Bevestigd)
                        {
                            //vakmandagproject.Duration = mandag.Uren;
                            //vakmandagproject.IsSolid = true;

                            // if (!blnIsOwner && vakmandagproject.Duration > 0)
                            if (blnIsOpVreemdProjectIngepland && !blnIsOwner)
                            {
                                //vakmandagproject.ReadOnly = true;
                                blnIsAllowedToSetZiek     = false;
                                blnIsAllowedToSetVakantie = false;
                            }
                            //else if (blnIsOwner && vakmandagproject.Duration > 0)
                            //{
                            //    // TODO: weeer aanzetten, nu even uitzetten
                            //    // vakmandagproject.spVakmanDagUren.Visibility = System.Windows.Visibility.Visible;
                            //    //vakmandagproject.lblVakmandagUren.Content = mandag.Uren;
                            //    //vakmandagproject.lblVakmandagMinuten.Content = mandag.Minuten;
                            //}
                        }
                        else // als niet bevestigd, dan is er iets gewijzigd, hetzij een wijziging, hetzij een nieuwe invoer
                        {
                            //vakmandagproject.Duration = mandag.UrenGewijzigd;
                            //vakmandagproject.IsSolid = false;

                            if (blnIsOwner || blnIsEditor)
                            {
                                blnIsAllowedToCancel = true;
                            }

                            // flag op true zetten, zorgt er automatisch voor dat cancel en confirm buttons weergegeven kunnen worden
                            IsGewijzigd = true;

                            // bij gewijzigde items de gewijzigde uren weergeven
                        }
                    }
                    else // niet ingepland, dus niks veranderen aan default situatie, duration = 0
                    {
                        //vakmandagproject.Duration = 0;
                    }

                    vpu.blnIsEnabled = blnIsOwner || blnIsOpMijnProjectIngepland;

                    // uiteindelijk toevoegen
                    // altijd 24x, voor elk uur 1
                    spVakmanDag.Children.Add(vpu);
                }


                // klaar met instellingen, vakmandagproject toevoegen
                // spVakmanDag.Children.Add(GetProjectUren();
            }



            // Niet ingevuld toevoegen
            VakmanDagProject vakmandagprojectNietIngevuld = new VakmanDagProject();

            vakmandagprojectNietIngevuld.ProjectId = 0;
            //vakmandagprojectNietIngevuld.OnVakmanDagProjectUpdate += new RoutedEventHandler(recDag_MouseDown);
            vakmandagprojectNietIngevuld.IsNietIngevuld = true;

            // als ik (degene die dit scherm bekijkt) de projectleider ben
            vakmandagprojectNietIngevuld.IsGroen  = false;
            vakmandagprojectNietIngevuld.ReadOnly = blnIsAllowedToCancel || blnIsAllowedToAcceptAnnulleringen || ((blnIsOpVreemdProjectIngepland || blnIsNotOwner));
            //vakmandagprojectNietIngevuld.ReadOnly = blnIsAllowedToCancel || blnIsAllowedToAcceptAnnulleringen || ((blnIsOpVreemdProjectIngepland || blnIsNotOwner) && !blnIsZiek && !blnIsVakantie);


            vakmandagprojectNietIngevuld.IsSolid  = true;
            vakmandagprojectNietIngevuld.Duration = blnIsOpProjectIngepland ? 0 : 8;;

            // klaar met instellingen, vakmandagproject toevoegen
            //spVakmanDag.Children.Add(vakmandagprojectNietIngevuld);


            svScrollviewer.ScrollToHorizontalOffset(560);


            //// visibility van knoppen instellen
            //if (blnIsAllowedToConfirm)
            //{
            //    recOK.Visibility = System.Windows.Visibility.Visible;
            //}
            //else
            //{
            //    recOK.Visibility = System.Windows.Visibility.Hidden;
            //}

            //// visibility van knoppen instellen
            //if (blnIsAllowedToCancel)
            //{
            //    recCancel.Visibility = System.Windows.Visibility.Visible;
            //}
            //else
            //{
            //    recCancel.Visibility = System.Windows.Visibility.Hidden;
            //}

            //if (blnIsAllowedToAcceptAnnulleringen)
            //{
            //    recReadGeannulleerd.Visibility = System.Windows.Visibility.Visible;
            //}
            //else
            //{
            //    recReadGeannulleerd.Visibility = System.Windows.Visibility.Hidden;
            //}
        }
        //protected string AddTooltipAanvraag(List<Mandagen> listMandagenWaarDitDeAanvraagVanIs, Mandagen mandag, bool reverse)
        //{
        //    dbOriginalRepository dbrepOriginal = new dbOriginalRepository();
        //    MDRpersoon objVakman = dbrepOriginal.GetContact(mandag.Vakman.ContactIdOrigineel);
        //    DbTools dbtools = new DbTools();

        //    string strTooltipAanvraag = string.Empty;

        //    if (listMandagenWaarDitDeAanvraagVanIs.Count > 0)
        //    {
        //        strTooltipAanvraag += Environment.NewLine;
        //        strTooltipAanvraag += "Aanvraag " + (objVakman.voornaam + " " + objVakman.tussenvoegsel + " " + objVakman.achternaam).ToStringTrimmed();

        //        if (mandag.Geannulleerd)
        //        {
        //            strTooltipAanvraag += " AFGEWEZEN";
        //        }

        //        strTooltipAanvraag += Environment.NewLine;
        //        Mandagen origineel = listMandagenWaarDitDeAanvraagVanIs.FirstOrDefault(m => m.Begintijd <= mandag.Eindtijd && m.Eindtijd >= mandag.Begintijd && m.VakmanId == mandag.VakmanId);
        //        if (origineel != null)
        //        {
        //            Project objProjectVan = origineel.Project;
        //            MDRproject objProjectNaar = dbrepOriginal.GetProject((int)mandag.Project.ProjectNr, true);

        //            if (reverse)
        //            {
        //                strTooltipAanvraag += dbtools.GetIngeplandeTijd(mandag.Project, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + " + (" + ToonTijd(mandag) + ") " + objProjectNaar.naam_project + " (Project " + objProjectNaar.project_NR.ToString() + ")";
        //                strTooltipAanvraag += Environment.NewLine;
        //                strTooltipAanvraag += dbtools.GetIngeplandeTijd(objProjectVan, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + " \u2212 (" + ToonTijd(mandag) + ") " + objProjectVan.Naam + " (Project " + objProjectVan.ProjectNr.ToString() + ")";
        //            }
        //            else
        //            {
        //                strTooltipAanvraag += dbtools.GetIngeplandeTijd(objProjectVan, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + " \u2212 (" + ToonTijd(mandag) + ") " + objProjectVan.Naam + " (Project " + objProjectVan.ProjectNr.ToString() + ")";
        //                strTooltipAanvraag += Environment.NewLine;
        //                strTooltipAanvraag += dbtools.GetIngeplandeTijd(mandag.Project, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + " + (" + ToonTijd(mandag) + ") " + objProjectNaar.naam_project + " (Project " + objProjectNaar.project_NR.ToString() + ")";
        //            }
        //        }
        //    }

        //    return strTooltipAanvraag;
        //}

        protected string ToonTijd(Mandagen mandag)
        {
            return(mandag.Uren.ToString() + ":" + (mandag.Minuten < 10 ? "0" : "") + mandag.Minuten.ToString());
        }