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(); }
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(); }
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(); }
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; //} }