/// <summary> /// ReadPackElements /// </summary> /// <param name="ArticleRepository"></param> /// <param name="Article"></param> /// <param name="PackElements"></param> /// <remarks>Récupération des id des éléments du pack</remarks> internal static void ReadPackElements(Model.Local.ArticleRepository ArticleRepository, Model.Local.Article Article, out List <Int32> PackElements) { PackElements = new List <Int32>(); Model.Sage.F_ARTICLERepository F_ARTICLERepository = new Model.Sage.F_ARTICLERepository(); Model.Sage.F_ARTICLE F_ARTICLE = F_ARTICLERepository.ReadArticle(Article.Sag_Id); Model.Sage.F_ARTICLE F_ARTICLENOMENCLAT; Model.Local.Article ArticleNomenclat; foreach (Model.Sage.F_NOMENCLAT F_NOMENCLAT in new Model.Sage.F_NOMENCLATRepository().ListRef(F_ARTICLE.AR_Ref)) { if (F_ARTICLERepository.ExistReference(F_NOMENCLAT.NO_RefDet)) { F_ARTICLENOMENCLAT = F_ARTICLERepository.ReadReference(F_NOMENCLAT.NO_RefDet); if (ArticleRepository.ExistSag_Id(F_ARTICLENOMENCLAT.cbMarq) && F_ARTICLENOMENCLAT.AR_SuiviStock != (short)ABSTRACTION_SAGE.F_ARTICLE.Obj._Enum_AR_SuiviStock.Aucun) // pour ne pas prendre en compte les articles non suivi en stock { ArticleNomenclat = ArticleRepository.ReadSag_Id(F_ARTICLENOMENCLAT.cbMarq); if (ArticleNomenclat.Art_Sync == true || (ArticleNomenclat.Pre_Id != null && ArticleNomenclat.Pre_Id.Value != 0)) { if (ArticleNomenclat.Art_Pack) { List <Int32> PackPackElements = new List <Int32>(); ReadPackElements(ArticleRepository, ArticleNomenclat, out PackPackElements); PackElements.AddRange(PackPackElements); } PackElements.Add(ArticleNomenclat.Art_Id); } } } } }