private void SetEmployeInformation()
        {
            //Charger les données de l'employé dans les différents champs

            BtnCreateEmployee.Text = "Mettre à Jour";                    // Changer le libellé du bouton
            long longEmployeID = Int64.Parse(Request.QueryString["Id"]); // Id de l'employé

            // Créer les Dto pour recevoir les informations de l'employé
            EmployeDto        emp;
            EmployeSalaireDto empSalReg = new EmployeSalaireDto();
            EmployeSalaireDto empSalSpe = new EmployeSalaireDto();
            IEnumerable <EmployePrelevementDto> empPrelReg;
            IEnumerable <EmployePrelevementDto> empPrelSpe;
            IEnumerable <CongeDto> empConges;

            EmployeManager empMan = new EmployeManager();

            empMan.GetEmployeDetailsByID(longEmployeID, out emp, out empSalReg, out empSalSpe, out empConges,
                                         out empPrelReg, out empPrelSpe);

            SetInformationPersonnelles(emp);
            SetSalaireRegulier(empSalReg);
            SetConges(empConges);
            SetPrelevementsReguliers(empPrelReg);
            // Renseigner les champs du Salaire Spécial et des Prélèvements correspondant si le type de l'employe est "Special"
            if (emp.TypeEmployeID == (int)LookupEnum.TypeEmploye.Special)
            {
                SetSalaireSpecial(empSalSpe);
                SetPrelevementsSpecials(empPrelSpe);
            }
        }
Exemple #2
0
        public int AddEmploye(EmployeDto empDto, EmployeSalaireDto empSalReg, EmployeSalaireDto empSalSpe,
                              IEnumerable <CongeDto> congesDto, IEnumerable <EmployePrelevementDto> empPrelReg,
                              IEnumerable <EmployePrelevementDto> empPrelSpe)
        {
            //Obtenir un numéro interne pour l'employé
            int numInterne = new EmployeRepository().GetNewNumeroInterne(empDto.CompagnieID);

            //Ajouter numero interne pour l'employé
            empDto.NumeroEmploye = numInterne;
            //Ajouter les dates d'embauche et de naissance de l'employé à partir des champs string correspondant
            empDto.DateEmbauche  = DateTime.Parse(empDto.DateEmbaucheString);
            empDto.DateNaissance = DateTime.Parse(empDto.DateNaissanceString);

            //Déterminer si le type de l'employé
            bool isSpecial = false;

            if (empDto.TypeEmployeID == (int)LookupEnum.TypeEmploye.Special)
            {
                isSpecial = true;
            }

            //Ajouter les salaires régulier et spécial dans une liste
            List <EmployeSalaireDto> empSalaires = new List <EmployeSalaireDto>();

            empSalaires.Add(empSalReg);
            if (isSpecial)
            {
                empSalaires.Add(empSalSpe);
            }

            //Fusionner les listes de prélèvement des salaires réguliers et spéciaux s'il ya lieu
            List <EmployePrelevementDto> empPrelList = empPrelReg.ToList();

            if (isSpecial)
            {
                empPrelList.AddRange(empPrelSpe);
            }

            //Ajouter l'employé
            EmployeRepository empRep = new EmployeRepository();

            empRep.AddEmploye(empDto, empSalaires, congesDto, empPrelList);

            //Renvoyer le numéro interne de l'employé
            return(numInterne);
        }
        public bool IsValid(EmployeSalaireDto emp, ref List <string> errorMessages)
        {
            //Les conditions pouvant être validées dans le formulaire lui-même
            // ne sont pas à priori testées ici

            //Déterminer si on a à faire à un salaire régulier ou spécial
            //pour personnaliser les messages d'erreurs
            string typeSalaire;

            if (emp.TypeSalaireID == (int)LookupEnum.TypeSalaire.Regulier)
            {
                typeSalaire = @"régulier";
            }
            else
            {
                typeSalaire = @"spécial";
            }

            bool isValid = true;

            // Salaire
            if (new CompagnieRepository().GetSalaireNormalMaxForCompany(emp.CompagnieID, emp.MonnaieID) < emp.Salaire)
            {
                isValid = false;
                errorMessages.Add(String.Format("Vous n'avez pas l'autorisation d'assigner un salaire {0} de ce montant", typeSalaire));
            }

            // Type Paiement
            if (emp.TypeSalaireID == (int)LookupEnum.TypePaiement.Virement)
            {
                if (emp.BanqueID == 0)
                {
                    isValid = false;
                    errorMessages.Add(String.Format("Il faut choisir une banque pour le virement du salaire {0} ", typeSalaire));
                }
                if (String.IsNullOrEmpty(emp.CompteBancaire))
                {
                    isValid = false;
                    errorMessages.Add(String.Format("Le compte bancaire pour le virement du salaire {0} est obligatoire", typeSalaire));
                }
            }
            return(isValid);
        }
        private EmployeSalaireDto FillEmployeSalaireSpecialDto()
        {
            EmployeSalaireDto empSal = new EmployeSalaireDto();

            empSal.BanqueID = Int32.Parse(DdlBanqueSalaireSpecial.SelectedValue);
            if (ChkBonusFinAnneeSpecial.Checked)
            {
                empSal.BonusFinAnnee = true;
            }
            else
            {
                empSal.BonusFinAnnee = false;
            }
            empSal.CompagnieID    = SessionHelper.GetCompanyIDFromSession(HttpContext.Current);
            empSal.CompteBancaire = TxbCompteBancaireSalaireSpecial.Text.Trim();
            if (ChkHeureSupSpecial.Checked)
            {
                empSal.HeureSupPaye = true;
            }
            else
            {
                empSal.HeureSupPaye = false;
            }
            empSal.ModifiePar     = User.Identity.Name;
            empSal.MonnaieID      = Int32.Parse(DdlMonnaieSalaireSpecial.SelectedValue);
            empSal.TypePaiementID = Int32.Parse(DdlTypePaiementSalaireSpecial.SelectedValue);

            Decimal salReg;

            if ((!String.IsNullOrEmpty(TxbSalaireSpecial.Text.Trim())) && (Decimal.TryParse(TxbSalaireSpecial.Text.Trim(), out salReg)))
            {
                empSal.Salaire = salReg;
            }

            empSal.TypeSalaireID = (Int32)LookupEnum.TypeSalaire.Special;

            return(empSal);
        }
Exemple #5
0
        public void GetEmployeDetailsByID(long employeID, out EmployeDto emp, out EmployeSalaireDto empSalReg,
                                          out EmployeSalaireDto empSalSpe, out IEnumerable <CongeDto> empConge, out IEnumerable <EmployePrelevementDto> empPrelReg,
                                          out IEnumerable <EmployePrelevementDto> empPrelSpe)
        {
            //Renvoyer toutes les données personnelles de l'employe à partir de sa clé primaire
            EmployeRepository empRep = new EmployeRepository();

            emp        = empRep.GetEmployeById(employeID);
            empSalReg  = empRep.GetSalaireByType(employeID, (int)LookupEnum.TypeSalaire.Regulier);
            empPrelReg = empRep.GetPrelevementByTypeSalaire(employeID, (int)LookupEnum.TypeSalaire.Regulier);

            if (emp.TypeEmployeID == (int)LookupEnum.TypeEmploye.Special)
            {
                empSalSpe  = empRep.GetSalaireByType(employeID, (int)LookupEnum.TypeSalaire.Special);
                empPrelSpe = empRep.GetPrelevementByTypeSalaire(employeID, (int)LookupEnum.TypeSalaire.Special);
            }
            else
            {
                empSalSpe  = null;
                empPrelSpe = null;
            }
            empConge = empRep.GetConge(employeID);
        }
        public EmployeSalaireDto GetSalaireByType(long employeID, int typeSalaire)
        {
            using (PayrollEntities context = new PayrollEntities())
            {
                EmployeSalaireDto query = (from s in context.EmployeSalaires
                                           where s.EmployeID == employeID &&
                                           s.TypeSalaireID == typeSalaire
                                           select new EmployeSalaireDto
                {
                    BanqueID = s.BanqueID,
                    BonusFinAnnee = (bool)s.BonusFinAnnee,
                    CompteBancaire = s.CompteBancaire,
                    EmployeID = s.EmployeID,
                    HeureSupPaye = (bool)s.HeureSupPaye,
                    MonnaieID = s.MonnaieID,
                    Salaire = s.Salaire,
                    TypePaiementID = s.TypePaiementID,
                    TypeSalaireID = s.TypeSalaireID
                }).FirstOrDefault();

                return(query);
            }
        }
 private void SetSalaireSpecial(EmployeSalaireDto empSal)
 {
     DdlBanqueSalaireSpecial.SelectedValue = empSal.BanqueID.ToString();
     if (empSal.BonusFinAnnee)
     {
         ChkBonusFinAnneeSpecial.Checked = true;
     }
     else
     {
         ChkBonusFinAnneeSpecial.Checked = false;
     }
     TxbCompteBancaireSalaireSpecial.Text = empSal.CompteBancaire;
     if (empSal.HeureSupPaye)
     {
         ChkHeureSupSpecial.Checked = true;
     }
     else
     {
         ChkHeureSupSpecial.Checked = false;
     }
     DdlMonnaieSalaireSpecial.SelectedValue      = empSal.MonnaieID.ToString();
     DdlTypePaiementSalaireSpecial.SelectedValue = empSal.TypePaiementID.ToString();
     TxbSalaireSpecial.Text = empSal.Salaire.ToString();
 }
        protected void CreateEmployeeButton_Click(object sender, EventArgs ev)
        {
            //Vérifier d'abord que les validations au niveau du formulaire sont correctes
            if (IsValid)
            {
                //Remplir les Dto avec les données du formulaire pour permettre la validation et la sauvegarde
                EmployeDto                   emp = FillEmployeDto();
                EmployeSalaireDto            empSalaireRegulier     = FillEmployeSalaireRegulierDto();
                List <CongeDto>              empConges              = FillCongeDto();
                List <EmployePrelevementDto> empPrelevementRegulier = FillPrelevementRegulierDto();

                // Remplir les Dto dans le cas d'un employé spécial
                EmployeSalaireDto            empSalaireSpecial     = null;
                List <EmployePrelevementDto> empPrelevementSpecial = null;
                if (Int32.Parse(DdlTypeEmploye.SelectedValue) == (int)LookupEnum.TypeEmploye.Special)
                {
                    empSalaireSpecial     = FillEmployeSalaireSpecialDto();
                    empPrelevementSpecial = FillPrelevementSpecialDto();
                }

                //Validation des règles (business rules)
                List <String> errorMessages = new List <string>(); // Pour conserver les messages d'erreurs éventuels
                // Validation employé données personnelles
                bool isValidEmp = new EmployeManager().IsValid(emp, ref errorMessages);
                // Validation salaire régulier
                bool isValidSalReg = new EmployeSalaireManager().IsValid(empSalaireRegulier, ref errorMessages);
                // Validation salaire spécial si on a à faire à ce type d'employé
                bool isValidSalSpe = true;
                if (Int32.Parse(DdlTypeEmploye.SelectedValue) == (int)LookupEnum.TypeEmploye.Special)
                {
                    isValidSalSpe = new EmployeSalaireManager().IsValid(empSalaireSpecial, ref errorMessages);
                }
                // Validation congés
                bool isValidConge = true;
                isValidConge = new CongeManager().IsValid(empConges, ref errorMessages);

                //Validation prélèvements régulier
                bool isValidPrelevementRegulier = new EmployePrelevementManager().IsValid(empPrelevementRegulier, ref errorMessages);
                // Validation prélèvements spécial si on a à faire à ce type d'employé
                bool isValidPrelevementSpecial = true;
                if (Int32.Parse(DdlTypeEmploye.SelectedValue) == (int)LookupEnum.TypeEmploye.Special)
                {
                    isValidPrelevementSpecial = new EmployePrelevementManager().IsValid(empPrelevementRegulier, ref errorMessages);
                }

                // Si les données sont correctes, sauvegarder les, sinon afficher les messages d'erreurs
                if (isValidEmp && isValidSalReg && isValidSalSpe && isValidConge && isValidPrelevementRegulier && isValidPrelevementSpecial)
                {
                    EmployeManager empMan = new EmployeManager();
                    //Insérer ou mettre à jour
                    if (_isEdit)
                    {
                        emp.EmployeID = Int64.Parse(Request.QueryString["Id"]);
                        empMan.UpdateEmploye(emp, empSalaireRegulier, empSalaireSpecial, empConges,
                                             empPrelevementRegulier, empPrelevementSpecial);
                        UctMessage.Show(UserControls.MessageType.Success,
                                        String.Format("L'employé {0} {1} a été mise à jour avec succès.", emp.Prenom, emp.Nom));
                    }
                    else
                    {
                        int numInterne = empMan.AddEmploye(emp, empSalaireRegulier, empSalaireSpecial, empConges,
                                                           empPrelevementRegulier, empPrelevementSpecial);
                        UctMessage.Show(UserControls.MessageType.Success,
                                        String.Format("L'employé {0} {1} a été créé avec succès. Son numéro interne est: {2}", emp.Prenom, emp.Nom, numInterne));
                        //Nettoyer la forme pour prochaine saisie
                        CleanForm();
                    }
                }
                else
                {
                    UctMessage.Show(Payroll.UserControls.MessageType.Error, @"Oops... des erreurs sont survenues:", errorMessages);
                }
            }
        }