public void SearchArticleComposition() { if (SelectedF_TAXE == null) { MessageBox.Show("Veuillez sélectionner une taxe !", "Recherche article", MessageBoxButton.OK, MessageBoxImage.Error); } else { List <Model.Sage.F_ARTICLE_Composition> temp = new Model.Sage.F_ARTICLERepository().ListComposition(); // Filtres sommeil et publié bool sommeil = Core.Global.GetConfig().ArticleEnSommeil; bool nonpublie = Core.Global.GetConfig().ArticleNonPublieSurLeWeb; // <JG> 19/12/2016 ajout filtre gammes temp = temp.Where(ar => (sommeil || ar.AR_Sommeil == 0) && (nonpublie || ar.AR_Publie == 1) && (sommeil || ar.AE_Sommeil != 1)).ToList(); Model.Local.CompositionArticleRepository CompositionArticleRepository = new Model.Local.CompositionArticleRepository(); Model.Local.ArticleRepository ArticleRepository = new Model.Local.ArticleRepository(); // FILTRE TAXE OBLIGATOIRE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #region Taxes switch (Core.Global.GetConfig().TaxSageTVA) { case PRESTACONNECT.Core.Parametres.TaxSage.CodeTaxe1: temp = temp.Where(a => a.TA_Code1 == SelectedF_TAXE.TA_Code || (string.IsNullOrEmpty(a.TA_Code1) && a.TA_CodeFamille1 == SelectedF_TAXE.TA_Code)).ToList(); break; case PRESTACONNECT.Core.Parametres.TaxSage.CodeTaxe2: temp = temp.Where(a => a.TA_Code2 == SelectedF_TAXE.TA_Code || (string.IsNullOrEmpty(a.TA_Code2) && a.TA_CodeFamille2 == SelectedF_TAXE.TA_Code)).ToList(); break; case PRESTACONNECT.Core.Parametres.TaxSage.CodeTaxe3: temp = temp.Where(a => a.TA_Code3 == SelectedF_TAXE.TA_Code || (string.IsNullOrEmpty(a.TA_Code3) && a.TA_CodeFamille3 == SelectedF_TAXE.TA_Code)).ToList(); break; case PRESTACONNECT.Core.Parametres.TaxSage.Empty: default: temp = new List <Model.Sage.F_ARTICLE_Composition>(); break; } #endregion if (temp.Count == 0) { MessageBox.Show("Aucun résultat pour la taxe sélectionnée !", "Recherche article", MessageBoxButton.OK, MessageBoxImage.Error); } else { // filtres if (SelectedF_FAMILLE != null) { temp = temp.Where(ar => ar.FA_CodeFamille == SelectedF_FAMILLE.FA_CodeFamille).ToList(); } if (SelectedP_GAMME1 != null) { temp = temp.Where(ar => ar.AR_Gamme1 == SelectedP_GAMME1.cbMarq).ToList(); } if (SelectedP_GAMME2 != null) { temp = temp.Where(ar => ar.AR_Gamme2 == SelectedP_GAMME1.cbMarq).ToList(); } if (SelectedP_CONDITIONNEMENT != null) { temp = temp.Where(ar => ar.AR_Condition == SelectedP_CONDITIONNEMENT.cbMarq).ToList(); } if (!string.IsNullOrWhiteSpace(FilterReferenceValue)) { if (FilterReferenceContains) { temp = temp.Where(ar => ar.AR_Ref.Contains(FilterReferenceValue)).ToList(); } if (FilterReferenceStartWith) { temp = temp.Where(ar => ar.AR_Ref.StartsWith(FilterReferenceValue)).ToList(); } } if (!string.IsNullOrWhiteSpace(FilterDesignationValue)) { if (FilterDesignationContains) { temp = temp.Where(ar => ar.AR_Design.ToLower().Contains(FilterDesignationValue.ToLower())).ToList(); } if (FilterDesignationStartWith) { temp = temp.Where(ar => ar.AR_Design.ToLower().StartsWith(FilterDesignationValue.ToLower())).ToList(); } } List <Int32> ListF_ARTICLE_SagId = null; List <Int32> ListF_ARTENUMREF_SagId = null; List <Int32> ListF_CONDITION_SagId = null; if (FilterComposition) { ListF_ARTICLE_SagId = CompositionArticleRepository.ListSageF_ARTICLE(); ListF_ARTENUMREF_SagId = CompositionArticleRepository.ListSageF_ARTENUMREF(); ListF_CONDITION_SagId = CompositionArticleRepository.ListSageF_CONDITION(); } if (FilterArticle) { if (ListF_ARTICLE_SagId != null) { ListF_ARTICLE_SagId.AddRange(ArticleRepository.ListSageId()); } else { ListF_ARTICLE_SagId = ArticleRepository.ListSageId(); } } if (ListF_ARTICLE_SagId != null) { temp = temp.Where(ar => !ListF_ARTICLE_SagId.Contains(ar.cbMarq)).ToList(); } if (ListF_ARTENUMREF_SagId != null) { temp = temp.Where(ar => ar.F_ARTENUMREF_SagId == null || (ar.F_ARTENUMREF_SagId != null && !ListF_ARTENUMREF_SagId.Contains(ar.F_ARTENUMREF_SagId.Value))).ToList(); } if (ListF_CONDITION_SagId != null) { temp = temp.Where(ar => ar.F_CONDITION_SagId == null || (ar.F_CONDITION_SagId != null && !ListF_CONDITION_SagId.Contains(ar.F_CONDITION_SagId.Value))).ToList(); } // filtres exclusion int count = temp.Count; List <Model.Sage.F_ARTICLE_Composition> results = Core.Tools.FiltreImportSage.ImportSageFilter(temp); StrCompositionFilteredProducts = (results.Count < count) ? ((count - results.Count) + " résultats dans les filtres d'exclusion") : string.Empty; if (!ShowResultInImportSageFilter) { temp = results; } ListResultSearchCompositionArticle = new ObservableCollection <Model.Sage.F_ARTICLE_Composition>(temp); } } }