/// <summary> /// duplique la facture passée en paramètre /// </summary> /// <param name="itemToCopy">facture à dupliquer</param> private Facture_Libre duplicateCommande(Facture_Libre itemToCopy) { Facture_Libre tmp = new Facture_Libre(); tmp.Condition_Reglement1 = itemToCopy.Condition_Reglement1; tmp.Date_Facture = itemToCopy.Date_Facture; tmp.Numero = itemToCopy.Numero; tmp.Tva1 = itemToCopy.Tva1; return tmp; }
/// <summary> /// duplique une Commande_Fournisseur à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Facture_Libre 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 une facture en cours ..."); //Création de la fenêtre FactureLibreWindow factureWindow = new FactureLibreWindow(); //Duplication de la commande sélectionnée Facture_Libre tmp = new Facture_Libre(); tmp = duplicateCommande((Facture_Libre)this._DataGridMain.SelectedItem); //Association de l'élement dupliqué au datacontext de la fenêtre factureWindow.DataContext = tmp; //booléen nullable vrai ou faux ou null bool? dialogResult = factureWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { return (Facture_Libre)factureWindow.DataContext; } else { try { //On détache la commande ((App)App.Current).mySitaffEntities.Detach((Facture_Libre)factureWindow.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.changementTexteStatusBar("Dupliquer une facture annulé : " + this.listFacture.Count() + " / " + this.max); return null; } } else { MessageBox.Show("Vous ne devez sélectionner qu'une seule facture.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner une facture.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// Met à jour l'état en bas pour l'utilisateur /// </summary> /// <param name="typeEtat">texte : "Filtrage", "Ajout", "Modification", "Suppression", "Look", "" ("" = Chargement)</param> /// <param name="dao">un objet Commande_Fournisseur soit pour l'ajouter au listing, soit pour afficher qui a été modifié ou supprimé</param> public void MiseAJourEtat(string typeEtat, Facture_Libre fac) { //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 factures terminée : " + this.listFacture.Count() + " / " + this.max); } else if (typeEtat == "Ajout") { //J'ajoute la commande_fournisseur dans le linsting this.listFacture.Add(fac); //Je racalcul le nombre max d'élements après l'ajout this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'une facture numéro '" + fac.Numero + "' effectué avec succès. Nombre d'élements : " + this.listFacture.Count() + " / " + this.max); } else if (typeEtat == "Modification") { //Je raffraichis mon datagrid this._DataGridMain.Items.Refresh(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Modification de la facture numéro : '" + fac.Numero + "' effectuée avec succès. Nombre d'élements : " + this.listFacture.Count() + " / " + this.max); } else if (typeEtat == "Suppression") { //Je supprime de mon listing l'élément supprimé this.listFacture.Remove(fac); //Je racalcul le nombre max d'élements après la suppression this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Suppression de la facture numéro : '" + fac.Numero + "' effectuée avec succès. Nombre d'élements : " + this.listFacture.Count() + " / " + this.max); } else if (typeEtat == "Look") { } else if (typeEtat == "Duplicate") { //J'ajoute la commande_fournisseur dans le linsting this.listFacture.Add(fac); //Je racalcul le nombre max d'élements après l'ajout this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Dupliquer une facture numéro '" + fac.Numero + "' effectué avec succès. Nombre d'élements : " + this.listFacture.Count() + " / " + this.max); } else { ((App)App.Current)._theMainWindow.changementTexteStatusBar("Chargement des factures terminé : " + this.listFacture.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> /// Ajoute une nouvelle Facture à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Facture_Libre Add() { //Affichage du message "ajout en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'une facture en cours ..."); //Initialisation de la fenêtre FactureLibreWindow factureWindow = new FactureLibreWindow(); //Création de l'objet temporaire Facture_Libre tmp = new Facture_Libre(); //Mise de l'objet temporaire dans le datacontext factureWindow.DataContext = tmp; //booléen nullable vrai ou faux ou null bool? dialogResult = factureWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet Facture_Libre se trouvant dans le datacontext de la fenêtre return (Facture_Libre)factureWindow.DataContext; } else { try { //On détache la Facture_Libre ((App)App.Current).mySitaffEntities.Detach(((Facture_Libre)factureWindow.DataContext).Litige_Facture_Client_Libre); ((App)App.Current).mySitaffEntities.Detach((Facture_Libre)factureWindow.DataContext); } catch (Exception) { try { //On détache la Facture_Libre ((App)App.Current).mySitaffEntities.Detach((Facture_Libre)factureWindow.DataContext); ((App)App.Current).mySitaffEntities.Detach(((Facture_Libre)factureWindow.DataContext).Litige_Facture_Client_Libre); } 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.changementTexteStatusBar("Ajout d'une facture annulé : " + this.listFacture.Count() + " / " + this.max); return null; } }