예제 #1
0
        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);
        }
예제 #2
0
        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é)
                        }
                    }
                }
            }
        }