コード例 #1
0
        private void btnResetProjectleiders_Click(object sender, RoutedEventArgs e)
        {
            dbRepository dbrep = new dbRepository();

            foreach (Gebruiker gebruiker in dbrep.datacontext.Gebruikers)
            {
                if (gebruiker.ProjectleiderId < 50)
                {
                    Projectleider pl = dbrep.datacontext.Projectleiders.Where(p => p.ProjectleiderId == gebruiker.ProjectleiderId).FirstOrDefault();

                    gebruiker.ProjectleiderId    = 100 + gebruiker.GebruikerId;
                    gebruiker.ContactIdOrigineel = pl.ContactIdOrigineel;


                    foreach (Project project in dbrep.datacontext.Projects.Where(p => p.ProjectleiderId == pl.ProjectleiderId))
                    {
                        project.ProjectleiderId = gebruiker.ProjectleiderId;
                    }

                    foreach (Mandagen mandag in dbrep.datacontext.Mandagens.Where(m => m.ProjectleiderId == pl.ProjectleiderId))
                    {
                        mandag.ProjectleiderId            = gebruiker.ProjectleiderId;
                        mandag.MutatieDoorProjectleiderId = gebruiker.ProjectleiderId;
                    }

                    dbrep.datacontext.SubmitChanges();
                }
            }

            Load();
        }
コード例 #2
0
        public void LoadVakmandagenView()
        {
            spVakmanDagen.Children.Clear();

            dbRepository dbrep       = new dbRepository();
            bool         blnThisWeek = false;


            // 0:00 uur de dag beginnen
            Weekstart = CalculateWeekstart(Weekstart);

            // is this week?
            if (Weekstart < DateTime.Now && DateTime.Now < Weekstart.AddDays(7))
            {
                blnThisWeek = true;
            }


            // automatically confirm my previous changes
            //dbrep.AutoConfirmMandagenForWeekView(intVakmanId, intProjectleider);
            intVakmanId      = ApplicationState.GetValue <int>("intVakmanId");
            intProjectleider = ApplicationState.GetValue <int>("intProjectleider");

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

            lblVakmanNaam.Content = objVakman.Bsn + " : " + objVakman.VakmanId.ToString();



            // overzichtskolom toevoegen
            VakmanDagOverzicht vakmandagoverzicht = new VakmanDagOverzicht();

            vakmandagoverzicht.listProjecten    = listProjecten;
            vakmandagoverzicht.objProjectleider = objProjectleider;
            vakmandagoverzicht.LoadVakmanDagOverzicht();
            spVakmanDagen.Children.Add(vakmandagoverzicht);


            listProjectenAll = dbrep.GetProjectsToAddByVakmanId(intVakmanId, Weekstart);

            ddlProjecten.ItemsSource       = listProjectenAll;
            ddlProjecten.DisplayMemberPath = "Naam";
            ddlProjecten.SelectedValuePath = "ProjectId";



            // 7 dagen van de week toevoegen
            for (int i = 0; i < 7; i++)
            {
                VakmanDag vakmandag = new VakmanDag();

                vakmandag.OnVakmanDagUpdate += vakmandag_OnVakmanDagUpdate;
                vakmandag.OnVakmanDagSelect += vakmandag_OnVakmanDagSelect;
                vakmandag.objProjectleider   = objProjectleider;
                vakmandag.listProjecten      = listProjecten;
                vakmandag.dtBegintijd        = Weekstart.AddDays(i);
                vakmandag.Vakman             = objVakman;

                if (blnThisWeek && Weekstart.AddDays(i).DayOfWeek == DateTime.Now.DayOfWeek)
                {
                    vakmandag.IsSelected = true; //select this one
                }
                else if (!blnThisWeek)
                {
                    vakmandag.IsSelected = (i == 0); //select first one
                }

                vakmandag.LoadVakmanDag();

                // CultureInfo ciCurr = CultureInfo.CurrentCulture;
                vakmandag.lblDag.Content = CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int)Weekstart.AddDays(i).DayOfWeek].ToString();
                spVakmanDagen.Children.Add(vakmandag);
            }

            LoadWeekInfo();
        }
コード例 #3
0
        public void LoadProjectDagenView()
        {
            intProjectleider = ApplicationState.GetValue <int>("intProjectleider");
            intProjectId     = ApplicationState.GetValue <int>("intProjectId");

            spProjecten.Children.Clear();

            dbRepository dbrep = new dbRepository();

            listVakmannenAll               = dbrep.GetVakmannenToAddByProjectId(intProjectId);
            ddlVakmannen.ItemsSource       = listVakmannenAll;
            ddlVakmannen.DisplayMemberPath = "Bsn";
            ddlVakmannen.SelectedValuePath = "VakmanId";

            objProject = dbrep.GetProject(intProjectId);
            //intProjectleider = objProject.ProjectleiderId;

            objProjectleider = dbrep.GetProjectleider(intProjectleider);
            listVakmannen    = dbrep.GetVakmannenByProjectId(intProjectId, Weekstart);

            // set projectinfo
            lblProjectnaam.Content   = objProject.Naam + " : " + objProject.ProjectId.ToString();
            lblProjectId.Content     = objProject.ProjectId;
            lblProjectleider.Content = objProject.ProjectleiderId;

            if (Weekstart.DayOfWeek != DayOfWeek.Monday)
            {
                for (int i = 6; i > 0; i--)
                {
                    if (Weekstart.AddDays(-i).DayOfWeek == DayOfWeek.Monday)
                    {
                        Weekstart = Weekstart.AddDays(-i);
                        break;
                    }
                }
            }



            //// overzichtskolom toevoegen
            ProjectDagOverzicht vakmandagoverzicht = new ProjectDagOverzicht();

            vakmandagoverzicht.listVakmannen    = listVakmannen;
            vakmandagoverzicht.objProjectleider = objProjectleider;
            vakmandagoverzicht.objProject       = objProject;
            vakmandagoverzicht.LoadProjectDagOverzicht();
            spProjecten.Children.Add(vakmandagoverzicht);

            // 7 dagen van de week toevoegen
            for (int i = 0; i < 7; i++)
            {
                try
                {
                    ProjectDag projectdag = new ProjectDag();
                    projectdag.OnProjectDagUpdate += projectdag_OnProjectDagUpdate;
                    projectdag.objProjectleider    = objProjectleider;
                    projectdag.listVakmannen       = listVakmannen;
                    projectdag.objProject          = objProject;
                    projectdag.dtBegintijd         = Weekstart.AddDays(i);
                    projectdag.LoadProjectDag();

                    projectdag.lblDag.Content = CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int)Weekstart.AddDays(i).DayOfWeek].ToString();
                    spProjecten.Children.Add(projectdag);
                }
                catch (Exception ex)
                {
                }
            }

            LoadWeekInfo();
        }
コード例 #4
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;
            //}
        }