/// <summary> /// Met à jour l'état en bas pour l'utilisateur /// </summary> /// <param name="typeEtat">texte : "Filtrage", "Ajout", "Modification", "Suppression", "Look", "" ("" = Chargement)</param> /// <param name="rhf">un objet Releve_heure_forfait soit pour l'ajouter au listing, soit pour afficher qui a été modifié ou supprimé</param> public void MiseAJourEtat(string typeEtat, Releve_Heure_Forfait rhf) { //Je racalcul le nombre max d'élements this.recalculMax(); //En fonction de l'action, j'affiche le message if (typeEtat == "Filtrage") { ((App)App.Current)._theMainWindow.changementTexteStatusBar("filtrage des Relevés d'heures de chantier terminé : " + this.listReleveHeureForfait.Count() + " / " + this.max); } else if (typeEtat == "Ajout") { //J'ajoute la commande_fournisseur dans le linsting this.listReleveHeureForfait.Add(rhf); //Je racalcul le nombre max d'élements après l'ajout this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'un Relevés d'heures de chantier supervisé par '" + rhf.Salarie1.Personne.fullname + "' effectué avec succès. Nombre d'élements : " + this.listReleveHeureForfait.Count() + " / " + this.max); } else if (typeEtat == "Modification") { //Je raffraichis mon datagrid this._DataGridMain.Items.Refresh(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Modification du Relevés d'heures de chantier supervisé par '" + rhf.Salarie1.Personne.fullname + "' effectuée avec succès. Nombre d'élements : " + this.listReleveHeureForfait.Count() + " / " + this.max); } else if (typeEtat == "Suppression") { //Je supprime de mon listing l'élément supprimé this.listReleveHeureForfait.Remove(rhf); //Je racalcul le nombre max d'élements après la suppression this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Suppression du Relevés d'heures de chantier effectuée avec succès. Nombre d'élements : " + this.listReleveHeureForfait.Count() + " / " + this.max); } else if (typeEtat == "Look") { } else if (typeEtat == "Duplicate") { //J'ajoute la commande_fournisseur dans le linsting this.listReleveHeureForfait.Add(rhf); //Je racalcul le nombre max d'élements après l'ajout this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Dupliquer un Relevés d'heures de chantier effectué avec succès. Nombre d'élements : " + this.listReleveHeureForfait.Count() + " / " + this.max); } else { ((App)App.Current)._theMainWindow.changementTexteStatusBar("Chargement des Relevés d'heures de chantier terminé : " + this.listReleveHeureForfait.Count() + " / " + this.max); } //Je retri les données dans le sens par défaut this.triDatas(); //J'arrete la progressbar ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; }
/// <summary> /// duplique la commande passée en paramètre /// </summary> /// <param name="commande1">commande à dupliquer</param> private Releve_Heure_Forfait duplicateReleve(Releve_Heure_Forfait itemToCopy) { Releve_Heure_Forfait tmp = new Releve_Heure_Forfait(); tmp.Affaire1 = itemToCopy.Affaire1; tmp.Salarie1 = itemToCopy.Salarie1; foreach (Heure_Forfait ccf in itemToCopy.Heure_Forfait) { Heure_Forfait toAdd = new Heure_Forfait(); toAdd.Salarie1 = ccf.Salarie1; toAdd.Heures_Dimanche_Jour = ccf.Heures_Dimanche_Jour; toAdd.Heures_Dimanche_Nuit = ccf.Heures_Dimanche_Nuit; toAdd.Heures_Jeudi_Jour = ccf.Heures_Jeudi_Jour; toAdd.Heures_Jeudi_Nuit = ccf.Heures_Jeudi_Nuit; toAdd.Heures_Lundi_Jour = ccf.Heures_Lundi_Jour; toAdd.Heures_Lundi_Nuit = ccf.Heures_Lundi_Nuit; toAdd.Heures_Mardi_Jour = ccf.Heures_Mardi_Jour; toAdd.Heures_Mardi_Nuit = ccf.Heures_Mardi_Nuit; toAdd.Heures_Mercredi_Jour = ccf.Heures_Mercredi_Jour; toAdd.Heures_Mercredi_Nuit = ccf.Heures_Mercredi_Nuit; toAdd.Heures_Samedi_Jour = ccf.Heures_Samedi_Jour; toAdd.Heures_Samedi_Nuit = ccf.Heures_Samedi_Nuit; toAdd.Heures_Vendredi_Jour = ccf.Heures_Vendredi_Jour; toAdd.Heures_Vendredi_Nuit = ccf.Heures_Vendredi_Nuit; toAdd.Vehicule_Dimanche = ccf.Vehicule_Dimanche; toAdd.Vehicule_Jeudi = ccf.Vehicule_Jeudi; toAdd.Vehicule_Lundi = ccf.Vehicule_Lundi; toAdd.Vehicule_Mardi = ccf.Vehicule_Mardi; toAdd.Vehicule_Mercredi = ccf.Vehicule_Mercredi; toAdd.Vehicule_Samedi = ccf.Vehicule_Samedi; toAdd.Vehicule_Vendredi = ccf.Vehicule_Vendredi; tmp.Heure_Forfait.Add(toAdd); } return tmp; }
/// <summary> /// duplique un relevé à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Releve_Heure_Forfait 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.changementTexteStatusBar("Dupliquer un relevé d'heures forfait en cours ..."); //Création de la fenêtre ReleveHeureForfaitWindow releveHeureForfaitWindow = new ReleveHeureForfaitWindow(); //Duplication de la commande sélectionnée Releve_Heure_Forfait tmp = new Releve_Heure_Forfait(); tmp = duplicateReleve((Releve_Heure_Forfait)this._DataGridMain.SelectedItem); //Association de l'élement dupliqué au datacontext de la fenêtre releveHeureForfaitWindow.DataContext = tmp; //booléen nullable vrai ou faux ou null bool? dialogResult = releveHeureForfaitWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet se trouvant dans le datacontext de la fenêtre return (Releve_Heure_Forfait)releveHeureForfaitWindow.DataContext; } else { try { //On détache tous les élements liés au relevé Heure_Forfait ObservableCollection<Heure_Forfait> toRemove = new ObservableCollection<Heure_Forfait>(); foreach (Heure_Forfait item in ((Releve_Heure_Forfait)releveHeureForfaitWindow.DataContext).Heure_Forfait) { toRemove.Add(item); } foreach (Heure_Forfait item in toRemove) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés au relevé Heure_Regie ObservableCollection<Heure_Regie> toRemove1 = new ObservableCollection<Heure_Regie>(); foreach (Heure_Regie item in ((Releve_Heure_Forfait)releveHeureForfaitWindow.DataContext).Heure_Regie) { toRemove1.Add(item); } foreach (Heure_Regie item in toRemove1) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés au relevé Travail_Sur_Regie ObservableCollection<Travail_Sur_Regie> toRemove2 = new ObservableCollection<Travail_Sur_Regie>(); foreach (Travail_Sur_Regie item in ((Releve_Heure_Forfait)releveHeureForfaitWindow.DataContext).Travail_Sur_Regie) { toRemove2.Add(item); } foreach (Travail_Sur_Regie item in toRemove2) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés au relevé Releve_Heure_Forfait_Bouteille_Gaz ObservableCollection<Releve_Heure_Forfait_Bouteille_Gaz> toRemove3 = new ObservableCollection<Releve_Heure_Forfait_Bouteille_Gaz>(); foreach (Releve_Heure_Forfait_Bouteille_Gaz item in ((Releve_Heure_Forfait)releveHeureForfaitWindow.DataContext).Releve_Heure_Forfait_Bouteille_Gaz) { toRemove3.Add(item); } foreach (Releve_Heure_Forfait_Bouteille_Gaz item in toRemove3) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache le relevé ((App)App.Current).mySitaffEntities.Detach((Releve_Heure_Forfait)releveHeureForfaitWindow.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; ((App)App.Current)._theMainWindow.changementTexteStatusBar("Dupliquer un relevé d'heures forfait annulé."); return null; } } else { MessageBox.Show("Vous ne devez sélectionner qu'un seul relevé.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner un relevé.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }