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;
            }
        }
示例#2
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;
            //}
        }