private List <EmployePrelevementDto> FillPrelevementSpecialDto() { List <EmployePrelevementDto> lst = new List <EmployePrelevementDto>(); foreach (Control c in PlaceHolderPrelevementSpecial.Controls) { //Traiter seulement les prélèvement cochés if (c is Prelevement) { Prelevement cuc = (Prelevement)c; if (cuc.PrelevementChecked) { EmployePrelevementDto pre = new EmployePrelevementDto(); pre.PrelevementID = cuc.PrelevementID; pre.TypePeriodeID = cuc.SelectedPeriode1; pre.TypeSalaireID = cuc.TypeSalaireID; pre.Pourcentage = cuc.SelectedPourcentage1; lst.Add(pre); //Si il y a plus qu'une période, ajouter un enregistrement pour la seconde période if (cuc.TypePeriodes.Count() > 1) { EmployePrelevementDto pre2 = new EmployePrelevementDto(); pre2.PrelevementID = cuc.PrelevementID; pre2.TypePeriodeID = cuc.SelectedPeriode2; pre2.TypeSalaireID = cuc.TypeSalaireID; pre2.Pourcentage = cuc.SelectedPourcentage2; lst.Add(pre2); } } } } return(lst); }
private void SetPrelevementsSpecials(IEnumerable <EmployePrelevementDto> empPrelevements) { // Sélection des prélèvements proprement dits (sans les type de période et les pourcentages) var prelevements = (from EmployePrelevementDto c in empPrelevements select new { c.PrelevementID }).Distinct(); // Vérifier la conformité de chaque prélèvement en fonction des pourcentages par période choisis foreach (var c in prelevements) { //Types de période et pourcentages pour prélevement en cours var query = (from p in empPrelevements where p.PrelevementID == c.PrelevementID select new { p.PrelevementID, p.TypePeriodeID, p.Pourcentage }).ToList(); //Il ne peut y avoir, au plus, que 2 enregistrements car un prélèvement ne peut // concerner que 2 périodes maximum // Comparer le ID de chaque usercontrol pour retrouver celui correspondant au prélèvement foreach (Control ctl in PlaceHolderPrelevementSpecial.Controls) { //Traiter seulement les usercontols de type Prelevement if (ctl is Prelevement) { // Si la 1ère partie de l'ID du control correspond, renseigner les champs correspondant if (String.Compare(ctl.ID.Split('_')[0], query[0].PrelevementID.ToString()) == 0) { Prelevement cuc = (Prelevement)ctl; cuc.PrelevementChecked = true; cuc.TypePeriodeID1 = query[0].TypePeriodeID; cuc.Pourcentage1 = query[0].Pourcentage; // si le prélèvement concerne 2 période, renseigner les champs correspondant if (query.Count() > 1) { cuc.PrelevementChecked = true; cuc.TypePeriodeID2 = query[1].TypePeriodeID; cuc.Pourcentage2 = query[1].Pourcentage; } break; // arrêter la recherche (usercontrol déjà trouvé) } } } } }