private void _buttonEquCommande_Click(object sender, RoutedEventArgs e) { if (this._comboBoxNumeroAffaire.SelectedItem != null) { //Instancie une nouvelle fenêtre CommandeOrdreMissionWindow comWindow = new CommandeOrdreMissionWindow(); if (((Ordre_Mission)this.DataContext).Mission_Tiers1.Commande_Fournisseur1 == null) { //Nouvelle commande Commande_Fournisseur item = new Commande_Fournisseur(); item.Mission_Tiers.Add(((Ordre_Mission)this.DataContext).Mission_Tiers1); if (this._textBoxLibelleMission.Text.Trim() != "") { Contenu_Commande_Fournisseur temp = new Contenu_Commande_Fournisseur(); temp.Designation = this._textBoxLibelleMission.Text; temp.Quantite = 1; item.Contenu_Commande_Fournisseur.Add(temp); } if (this._datePickerDateDebut.SelectedDate != null) { item.Date_Commande = this._datePickerDateDebut.SelectedDate; item.Date_Livraison_Prevu = this._datePickerDateDebut.SelectedDate; } //Instancie le nouveau data context comWindow.DataContext = item; } else { //Instancie le data context déjà exitant comWindow.DataContext = ((Ordre_Mission)this.DataContext).Mission_Tiers1.Commande_Fournisseur1; } //booléen nullable vrai ou faux ou null bool? dialogResult = comWindow.ShowDialog(); //Vérifie le retour if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet ordreMission dans le datacontext de la fenêtre ((Ordre_Mission)this.DataContext).Mission_Tiers1.Commande_Fournisseur1 = (Commande_Fournisseur)comWindow.DataContext; } else if (comWindow.creation == true) { ((Ordre_Mission)this.DataContext).Mission_Tiers1.Commande_Fournisseur1 = null; } this.verif_buttonEquCommande(); } }
private bool Verif_comboBoxCommande() { bool verif = true; if (this._comboBoxCommande.SelectedItem == null) { if (testSupp == false) { verif = true; this.commande_fournisseur = null; } else { verif = false; this.commande_fournisseur = null; } } else { verif = true; this.commande_fournisseur = (Commande_Fournisseur)this._comboBoxCommande.SelectedItem; this._comboBoxAffaire.SelectedItem = this.commande_fournisseur.Affaire1; this._comboBoxDonneurOrdre.SelectedItem = this.commande_fournisseur.Salarie; } ((App)App.Current).verifications.MettreComboxEnCouleur(this._comboBoxCommande, this._textBlockCommande, verif); return verif; }
/// <summary> /// duplique la commande passée en paramètre /// </summary> /// <param name="commande1">commande à dupliquer</param> private Commande_Fournisseur duplicateCommande(Commande_Fournisseur itemToCopy) { Commande_Fournisseur tmp = new Commande_Fournisseur(); tmp.Affaire1 = itemToCopy.Affaire1; tmp.Contact1 = itemToCopy.Contact1; tmp.Entreprise = itemToCopy.Entreprise; tmp.Entreprise1 = itemToCopy.Entreprise1; tmp.Adresse = itemToCopy.Adresse; tmp.Fournisseur1 = itemToCopy.Fournisseur1; tmp.Salarie = itemToCopy.Salarie; tmp.Personne = itemToCopy.Personne; tmp.Total_Commande = itemToCopy.Total_Commande; tmp.Total_Ramene_A = itemToCopy.Total_Ramene_A; tmp.Remise = itemToCopy.Remise; tmp.Nature = itemToCopy.Nature; tmp.Type_Commande1 = itemToCopy.Type_Commande1; tmp.Franco = itemToCopy.Franco; tmp.Contact2 = itemToCopy.Contact2; tmp.Remise_Somme = itemToCopy.Remise_Somme; tmp.Liv_Atelier = itemToCopy.Liv_Atelier; tmp.Liv_Autre = itemToCopy.Liv_Autre; tmp.Liv_Chantier = itemToCopy.Liv_Chantier; tmp.Divers = itemToCopy.Divers; tmp.Stock = itemToCopy.Stock; tmp.Entreprise_Mere1 = itemToCopy.Entreprise_Mere1; foreach (Contenu_Commande_Fournisseur ccf in itemToCopy.Contenu_Commande_Fournisseur) { Contenu_Commande_Fournisseur toAdd = new Contenu_Commande_Fournisseur(); toAdd.Reference = ccf.Reference; toAdd.Designation = ccf.Designation; toAdd.Quantite = ccf.Quantite; toAdd.Prix_Remise = ccf.Prix_Remise; toAdd.Prix_Unitaire = ccf.Prix_Unitaire; toAdd.Prix_Total = ccf.Prix_Total; toAdd.Taux_Remise = ccf.Taux_Remise; toAdd.Description = ccf.Description; tmp.Contenu_Commande_Fournisseur.Add(toAdd); } foreach (Commande_Fournisseur_Condition_Reglement cr in itemToCopy.Commande_Fournisseur_Condition_Reglement) { Commande_Fournisseur_Condition_Reglement toAdd = new Commande_Fournisseur_Condition_Reglement(); toAdd.Condition_Reglement1 = cr.Condition_Reglement1; toAdd.Commentaire = cr.Commentaire; tmp.Commande_Fournisseur_Condition_Reglement.Add(toAdd); } tmp.Utilisateur1 = ((App)App.Current)._connectedUser; return tmp; }
/// <summary> /// Ajoute une nouvelle Commande_Fournisseur à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Commande_Fournisseur Add() { //Affichage du message "ajout en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'une commande fournisseur en cours ..."); //Initialisation de la fenêtre ChoixTypeCommandeWindow choixTypeCommandeWindows = new ChoixTypeCommandeWindow(); CommandeWindow commandeWindow = new CommandeWindow(); //Création de l'objet temporaire Commande_Fournisseur tmp = new Commande_Fournisseur(); tmp.Utilisateur1 = ((App)App.Current)._connectedUser; //Mise de l'objet temporaire dans le datacontext commandeWindow.DataContext = tmp; //Définition du type de commande bool? dialogChoix = choixTypeCommandeWindows.ShowDialog(); if (dialogChoix.HasValue && dialogChoix.Value == true) { if (choixTypeCommandeWindows.affaire != null) { ((Commande_Fournisseur)commandeWindow.DataContext).Affaire1 = choixTypeCommandeWindows.affaire; } if (choixTypeCommandeWindows.stock == true) { ((Commande_Fournisseur)commandeWindow.DataContext).Stock = true; } if (choixTypeCommandeWindows.divers == true) { ((Commande_Fournisseur)commandeWindow.DataContext).Divers = true; } ((Commande_Fournisseur)commandeWindow.DataContext).Entreprise_Mere1 = choixTypeCommandeWindows.entreprise_mere; //booléen nullable vrai ou faux ou null bool? dialogResult = commandeWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet commande se trouvant dans le datacontext de la fenêtre return (Commande_Fournisseur)commandeWindow.DataContext; } else { try { //On détache tous les élements liés à la commande Commande_Fournisseur_Condition_Reglement ObservableCollection<Commande_Fournisseur_Condition_Reglement> toRemove = new ObservableCollection<Commande_Fournisseur_Condition_Reglement>(); foreach (Commande_Fournisseur_Condition_Reglement item in ((Commande_Fournisseur)commandeWindow.DataContext).Commande_Fournisseur_Condition_Reglement) { toRemove.Add(item); } foreach (Commande_Fournisseur_Condition_Reglement item in toRemove) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la commande Contenu_Commande_Fournisseur ObservableCollection<Contenu_Commande_Fournisseur> toRemove1 = new ObservableCollection<Contenu_Commande_Fournisseur>(); foreach (Contenu_Commande_Fournisseur item in ((Commande_Fournisseur)commandeWindow.DataContext).Contenu_Commande_Fournisseur) { toRemove1.Add(item); } foreach (Contenu_Commande_Fournisseur item in toRemove1) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la commande Bon_Livraison ObservableCollection<Bon_Livraison> toRemove2 = new ObservableCollection<Bon_Livraison>(); foreach (Bon_Livraison item in ((Commande_Fournisseur)commandeWindow.DataContext).Bon_Livraison) { toRemove2.Add(item); } foreach (Bon_Livraison item in toRemove2) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la commande Facture_Proforma ObservableCollection<Facture_Proforma> toRemove3 = new ObservableCollection<Facture_Proforma>(); foreach (Facture_Proforma item in ((Commande_Fournisseur)commandeWindow.DataContext).Facture_Proforma) { toRemove3.Add(item); } foreach (Facture_Proforma item in toRemove3) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache la commande ((App)App.Current).mySitaffEntities.Detach((Commande_Fournisseur)commandeWindow.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("Ajout d'une commande fournisseur annulé : " + this.listCommandes.Count() + " / " + this.max); return null; } } else { try { ((App)App.Current).mySitaffEntities.Detach((Commande_Fournisseur)commandeWindow.DataContext); //Pas besoin de détacher le reste car ici l'utilisateur annule avant qu'il n'ait pu insérer quoi que ce soit } 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 commande fournisseur annulé : " + this.listCommandes.Count() + " / " + this.max); 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, Commande_Fournisseur cf) { //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 commandes fournisseur terminée : " + this.listCommandes.Count() + " / " + this.max); } else if (typeEtat == "Ajout") { //J'ajoute la commande_fournisseur dans le linsting this.listCommandes.Add(cf); //Je racalcul le nombre max d'élements après l'ajout this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Ajout d'une commande fournisseur numéro '" + cf.Numero + "' effectué avec succès. Nombre d'élements : " + this.listCommandes.Count() + " / " + this.max); try { this._DataGridMain.SelectedItem = cf; } catch (Exception) { } } else if (typeEtat == "Modification") { //Je raffraichis mon datagrid this._DataGridMain.Items.Refresh(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Modification de la commande fournisseur numéro : '" + cf.Numero + "' effectuée avec succès. Nombre d'élements : " + this.listCommandes.Count() + " / " + this.max); } else if (typeEtat == "Suppression") { //Je supprime de mon listing l'élément supprimé this.listCommandes.Remove(cf); //Je racalcul le nombre max d'élements après la suppression this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Suppression de la commande fournisseur numéro : '" + cf.Numero + "' effectuée avec succès. Nombre d'élements : " + this.listCommandes.Count() + " / " + this.max); } else if (typeEtat == "Look") { } else if (typeEtat == "Duplicate") { //J'ajoute la commande_fournisseur dans le linsting this.listCommandes.Add(cf); //Je racalcul le nombre max d'élements après l'ajout this.recalculMax(); ((App)App.Current)._theMainWindow.changementTexteStatusBar("Dupliquer une commande fournisseur numéro '" + cf.Numero + "' effectué avec succès. Nombre d'élements : " + this.listCommandes.Count() + " / " + this.max); } else { ((App)App.Current)._theMainWindow.changementTexteStatusBar("Chargement des commandes fournisseur terminé : " + this.listCommandes.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> /// Ouvre la commande fournisseur séléctionnée en lecture seule à l'aide d'une nouvelle fenêtre /// </summary> public Commande_Fournisseur Look(Commande_Fournisseur commande_fournisseur) { if (this._DataGridMain.SelectedItem != null || commande_fournisseur != null) { if (this._DataGridMain.SelectedItems.Count == 1 || commande_fournisseur != null) { //Affichage du message "affichage en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.changementTexteStatusBar("Affichage d'une commande fournisseur en cours ..."); //Création de la fenêtre CommandeWindow commandeWindow = new CommandeWindow(); //Initialisation du Datacontext en Commande_Fournisseur et association à la Commande_Fournisseur sélectionnée commandeWindow.DataContext = new Commande_Fournisseur(); if (commande_fournisseur != null) { commandeWindow.DataContext = commande_fournisseur; } else { commandeWindow.DataContext = (Commande_Fournisseur)this._DataGridMain.SelectedItem; } //Je positionne la lecture seule sur la fenêtre commandeWindow.lectureSeule(); commandeWindow.soloLecture = true; //J'affiche la fenêtre bool? dialogResult = commandeWindow.ShowDialog(); //Affichage du message "affichage en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; ((App)App.Current)._theMainWindow.changementTexteStatusBar("Affichage d'une commande fournisseur terminé : " + this.listCommandes.Count() + " / " + this.max); //Renvoi null return null; } else { MessageBox.Show("Vous ne devez sélectionner qu'une seule commande fournisseur.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner une commande fournisseur.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// duplique une Commande_Fournisseur à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Commande_Fournisseur 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 commande fournisseur en cours ..."); //Création de la fenêtre CommandeWindow commandeWindow = new CommandeWindow(); //Duplication de la commande sélectionnée Commande_Fournisseur tmp = new Commande_Fournisseur(); tmp = duplicateCommande((Commande_Fournisseur)this._DataGridMain.SelectedItem); //Activation de la comboBox Affaire si la commande sélectionnée était sur une affaire if (((Commande_Fournisseur)this._DataGridMain.SelectedItem).Affaire1 != null) { commandeWindow._comboBoxAffaire.IsEnabled = true; } //Association de l'élement dupliqué au datacontext de la fenêtre commandeWindow.DataContext = tmp; //booléen nullable vrai ou faux ou null bool? dialogResult = commandeWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { return (Commande_Fournisseur)commandeWindow.DataContext; } else { try { //On détache tous les élements liés à la commande Commande_Fournisseur_Condition_Reglement ObservableCollection<Commande_Fournisseur_Condition_Reglement> toRemove = new ObservableCollection<Commande_Fournisseur_Condition_Reglement>(); foreach (Commande_Fournisseur_Condition_Reglement item in ((Commande_Fournisseur)commandeWindow.DataContext).Commande_Fournisseur_Condition_Reglement) { toRemove.Add(item); } foreach (Commande_Fournisseur_Condition_Reglement item in toRemove) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la commande Contenu_Commande_Fournisseur ObservableCollection<Contenu_Commande_Fournisseur> toRemove1 = new ObservableCollection<Contenu_Commande_Fournisseur>(); foreach (Contenu_Commande_Fournisseur item in ((Commande_Fournisseur)commandeWindow.DataContext).Contenu_Commande_Fournisseur) { toRemove1.Add(item); } foreach (Contenu_Commande_Fournisseur item in toRemove1) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la commande Bon_Livraison ObservableCollection<Bon_Livraison> toRemove2 = new ObservableCollection<Bon_Livraison>(); foreach (Bon_Livraison item in ((Commande_Fournisseur)commandeWindow.DataContext).Bon_Livraison) { toRemove2.Add(item); } foreach (Bon_Livraison item in toRemove2) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la commande Facture_Proforma ObservableCollection<Facture_Proforma> toRemove3 = new ObservableCollection<Facture_Proforma>(); foreach (Facture_Proforma item in ((Commande_Fournisseur)commandeWindow.DataContext).Facture_Proforma) { toRemove3.Add(item); } foreach (Facture_Proforma item in toRemove3) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache la commande ((App)App.Current).mySitaffEntities.Detach((Commande_Fournisseur)commandeWindow.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 commande fournisseur annulé : " + this.listCommandes.Count() + " / " + this.max); return null; } } else { MessageBox.Show("Vous ne devez sélectionner qu'une seule commande fournisseur.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner une commande fournisseur.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }