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