//renvoi True si ca met en Affichage Administrateur, voir initialisationListAdministrateur() pour les noms des administrateurs private bool ChoixAffichage() { bool estAdministrateur = false; FraisWindow ftemp = new FraisWindow(); if (((App)App.Current)._connectedUser != null) { if (((App)App.Current)._connectedUser.Nom_Utilisateur != null && !String.IsNullOrEmpty(((App)App.Current)._connectedUser.Nom_Utilisateur)) { if (ftemp.GetListAdministrateur().Contains(((App)App.Current)._connectedUser.Nom_Utilisateur)) { AffichageAdministration(); estAdministrateur = true; } else { AffichageSalarie(); } } else { MessageBox.Show("Votre nom d'utilisateur n'a pas été trouver en base de donnée. Veuillez contacter un administrateur", "Compte", MessageBoxButton.OK, MessageBoxImage.Error); this.DialogResult = false; this.Close(); } } else { MessageBox.Show("Erreur compte. Veuillez contacter un administrateur", "Compte", MessageBoxButton.OK, MessageBoxImage.Error); this.DialogResult = false; this.Close(); } try { //Detachement de tous les éléments de ftemp ((App)App.Current).mySitaffEntities.Detach((Frais)ftemp.DataContext); } catch (Exception) { } return estAdministrateur; }
/// <summary> /// Ouvre le Frais séléctionné à l'aide d'une nouvelle fenêtre /// </summary> public Frais Open() { if (this._DataGridMain.SelectedItem != null) { if (this._DataGridMain.SelectedItems.Count == 1) { //Affichage du message "modification en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Modification d'un Frais en cours ..."; bool EstAutoriser = false; FraisWindow fraisWindowtemp = new FraisWindow(); //test si le frais est rattacher a l'utilisateur courant ou si l'utilisateur courant est un administrateur du module if (((Frais)this._DataGridMain.SelectedItem).Salarie1 != null && ((Frais)this._DataGridMain.SelectedItem).Salarie1.Salarie_Interne != null && ((Frais)this._DataGridMain.SelectedItem).Salarie1.Salarie_Interne.Utilisateur != null && ((Frais)this._DataGridMain.SelectedItem).Salarie1.Salarie_Interne.Utilisateur.Contains(((App)App.Current)._connectedUser) || fraisWindowtemp.GetListAdministrateur().Contains(((App)App.Current)._connectedUser.Salarie_Interne1.Utilisateur.ElementAtOrDefault(0).Nom_Utilisateur)) { EstAutoriser = true; } if (EstAutoriser) { //Création de la fenêtre FraisWindow fraisWindow = new FraisWindow(); fraisWindow._comboBoxNomSalarie.IsEnabled = false; fraisWindow._datePickerDateDeDebut.IsEnabled = true; //Initialisation du Datacontext en Frais et association au Frais sélectionné fraisWindow.DataContext = new Frais(); fraisWindow.DataContext = (Frais)this._DataGridMain.SelectedItem; //booléen nullable vrai ou faux ou null bool? dialogResult = fraisWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet Frais dans le datacontext de la fenêtre return (Frais)fraisWindow.DataContext; } else { //Je récupère les anciennes données de la base sur les modifications effectuées ((App)App.Current).mySitaffEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, (Frais)(this._DataGridMain.SelectedItem)); //je refresh l'edmx et je relance le filtrage s'il y en avait un afin d'avoir les mêmes infos (invisible pour l'user) ((App)App.Current).refreshEDMXSansVidage(); this.filtrage(); //Si j'appuie sur le bouton annuler, je préviens que j'annule ma modification ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; this.recalculMax(); ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Modification d'un Frais annulé : " + this.Frais.Count() + " / " + this.max; return null; } } else { MessageBox.Show("Ce n'est pas un de vos frais.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous ne devez sélectionner qu'un Frais.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner un Frais.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// duplique (a voir quoi dupliqué) à l'aide d'une nouvelle fenêtre /// </summary> public Frais Duplicate() { if (this._DataGridMain.SelectedItem != null) { if (this._DataGridMain.SelectedItems.Count == 1) { //Affichage du message "ajout en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Dupliquer un frais en cours ..."; //Création de la fenêtre FraisWindow fraisWindow = new FraisWindow(); //Duplication du frais sélectionnée Frais tmp = new Frais(); tmp = duplicateFrais((Frais)this._DataGridMain.SelectedItem); //Association de l'élement dupliqué au datacontext de la fenêtre fraisWindow.DataContext = tmp; //booléen nullable vrai ou faux ou null bool? dialogResult = fraisWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { return (Frais)fraisWindow.DataContext; } else { try { foreach (Fiche_Frais ff in ((Frais)fraisWindow.DataContext).Fiche_Frais.OfType<Fiche_Frais>()) { foreach (Ligne_Fiche_Frais lff in ff.Ligne_Fiche_Frais.OfType<Ligne_Fiche_Frais>()) { ((App)App.Current).mySitaffEntities.Detach(((Frais)fraisWindow.DataContext).Fiche_Frais.FirstOrDefault().Ligne_Fiche_Frais.First()); } ((App)App.Current).mySitaffEntities.Detach(((Frais)fraisWindow.DataContext).Fiche_Frais.FirstOrDefault()); } ((App)App.Current).mySitaffEntities.Detach((Frais)fraisWindow.DataContext); } catch (Exception) { } //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; this.recalculMax(); ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Duplication d'un frais annulé : " + this.Frais.Count() + " / " + this.max; return null; } } else { MessageBox.Show("Vous ne devez sélectionner qu'un seul frais.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner un frais.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// Ouvre le Frais séléctionné en lecture seule à l'aide d'une nouvelle fenêtre /// </summary> public Frais Look(Frais frais) { if (this._DataGridMain.SelectedItem != null || frais != null) { if (this._DataGridMain.SelectedItems.Count == 1 || frais != null) { //Affichage du message "affichage en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Affichage d'un frais en cours ..."; //Création de la fenêtre FraisWindow fraisWindow = new FraisWindow(); //Initialisation du Datacontext en Frais fraisWindow.DataContext = new Frais(); if (frais != null) { fraisWindow.DataContext = frais; } else { fraisWindow.DataContext = (Frais)this._DataGridMain.SelectedItem ; } //Je positionne la lecture seule sur la fenêtre fraisWindow.lectureSeule(); //J'affiche la fenêtre bool? dialogResult = fraisWindow.ShowDialog(); //Affichage du message "affichage en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Affichage d'un frais terminé : " + this.Frais.Count() + " / " + this.max; //Renvoi null return null; } else { MessageBox.Show("Vous ne devez sélectionner qu'un seul frais.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner un frais.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// Ajoute un nouveau Frais à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Frais Add() { bool FraisExist = false; //Affichage du message "ajout en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Ajout d'un Frais en cours ..."; //Initialisation de la fenêtre FraisWindow fraisWindow = new FraisWindow(); foreach (Frais f in Frais.OfType<Frais>()) { if (f.Date_Debut.Value.Month == DateTime.Today.Month) { if (fraisWindow.GetListAdministrateur() != null && f.Salarie1 != null && f.Salarie1.Salarie_Interne != null && f.Salarie1.Salarie_Interne.Utilisateur != null && f.Salarie1.Salarie_Interne.Utilisateur.Contains(((App)App.Current)._connectedUser) && !fraisWindow.GetListAdministrateur().Contains(((App)App.Current)._connectedUser.Salarie_Interne1.Utilisateur.ElementAtOrDefault(0).Nom_Utilisateur)) { FraisExist = true; this._DataGridMain.SelectedItem = f; break; } else { FraisExist = false; } } } if (FraisExist) { MessageBox.Show("Il existe déjà un frais pour ce mois.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); } if (!FraisExist) { if (fraisWindow.GetListAdministrateur().Contains(((App)App.Current)._connectedUser.Salarie_Interne1.Utilisateur.ElementAtOrDefault(0).Nom_Utilisateur)) { fraisWindow._comboBoxNomSalarie.IsEnabled = true; } fraisWindow._datePickerDateDeDebut.IsEnabled = true; //booléen nullable vrai ou faux ou null bool? dialogResult = fraisWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet frais dans le datacontext de la fenêtre return ((Frais)fraisWindow.DataContext); } else { try { //Detachement de tous les éléments ((App)App.Current).mySitaffEntities.Detach((Frais)fraisWindow.DataContext); } catch (Exception) { } //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; this.recalculMax(); ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Ajout d'un Frais annulé : " + this.Frais.Count() + " / " + this.max; return null; } } else { try { //Detachement de tous les éléments ((App)App.Current).mySitaffEntities.Detach((Frais)fraisWindow.DataContext); } catch (Exception) { } //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; this.recalculMax(); ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Ajout d'un Frais annulé : " + this.Frais.Count() + " / " + this.max; return null; } }