Exemple #1
0
        public EmployeDto Authenticate(HttpContext context, string username, string password)
        {
            string     fullName = ValidateUserNamePassword(username, password);
            EmployeDto employe  = context.RequestServices.GetRequiredService <IEmployeService>().FindByFullName(fullName);

            return(employe);
        }
 public EmployeDto GetEmployeById(long employeID)
 {
     using (var context = new PayrollEntities())
     {
         EmployeDto query = (from t in context.Employes
                             where t.EmployeID == employeID
                             select new EmployeDto
         {
             AdresseRue1 = t.AdresseRue1,
             AdresseRue2 = t.AdresseRue2,
             AdresseVille = t.AdresseVille,
             CIN = t.Cin,
             CompagnieID = t.CompagnieID,
             DateEmbauche = t.DateEmbauche,
             DateNaissance = t.DateNaissance,
             DepartementID = t.DepartementID,
             Email = t.Email,
             Extension = t.Extension,
             ModifiePar = t.ModifiePar,
             NIF = t.Nif,
             Nom = t.Nom,
             NumeroEmploye = t.NumeroEmploye,
             Phone1 = t.Phone1,
             Phone2 = t.Phone2,
             PosteID = t.PosteID,
             Prenom = t.Prenom,
             Sexe = t.Sexe,
             StatutEmployeID = t.StatutEmployeID,
             StatutMatrimonialID = t.StatutMatrimonialID,
             TypeEmployeID = t.TypeEmployeID
         }).FirstOrDefault();
         return(query);
     }
 }
 public static void MapUpdate(Employe employe, EmployeDto employeDto)
 {
     employe.Name       = employeDto.Name;
     employe.Sex        = (int)employeDto.Sex;
     employe.Age        = employe.Age;
     employe.PositionId = employeDto.PositionId;
 }
 private void SetInformationPersonnelles(EmployeDto emp)
 {
     //Renseigner les champs avec les données personnelles de l'employé
     TxbAdresseRue1.Text           = emp.AdresseRue1;
     TxbAdresseRue2.Text           = emp.AdresseRue2;
     TxbCin.Text                   = emp.CIN;
     UctDateEmbauche.SelectedDate  = emp.DateEmbauche;
     UctDateNaissance.SelectedDate = emp.DateNaissance;
     DdlDepartement.SelectedValue  = emp.DepartementID.ToString();
     TxbEmail.Text                 = emp.Email;
     TxbNif.Text                   = emp.NIF;
     TxbNom.Text                   = emp.Nom;
     TxbPhone1.Text                = emp.Phone1;
     TxbPhone2.Text                = emp.Phone2;
     TxbPrenom.Text                = emp.Prenom;
     DdlPoste.SelectedValue        = emp.PosteID.ToString();
     if (emp.Sexe == LookupConst.Feminin)
     {
         RbtSexeFeminin.Checked = true;
     }
     else
     {
         if (emp.Sexe == LookupConst.Masculin)
         {
             RbtSexeMasculin.Checked = true;
         }
     }
     DdlStatutMatrimonial.SelectedValue = emp.StatutMatrimonialID.ToString();
     DdlTypeEmploye.SelectedValue       = emp.TypeEmployeID.ToString();
     TxbUrgenceNom.Text   = emp.UrgenceNom;
     TxbUrgencePhone.Text = emp.UrgencePhone;
 }
        public async Task Update(EmployeDto employe)
        {
            var result = await this.unitOfWork.EmployRepository.Get(employe.Id);

            EmployMapper.MapUpdate(result, employe);

            await this.unitOfWork.EmployRepository.Update(result);
        }
Exemple #6
0
        private bool SendNotification(NotificationType notificationType, EmployeDto loggedEmploye, EmployeDto targetEmploye, UpdatePlanResponse response)
        {
            bool send = notificationType == NotificationType.Approved || notificationType == NotificationType.Rejected;

            send &= (response.RemovedDates.Length > 0 || response.SavedDates.Length > 0);
            send &= loggedEmploye.Profile == EmployeProfile.Manager && loggedEmploye.Id != targetEmploye.Id;
            return(send);
        }
 public static void MapUpdate(Employe oldEmploye, EmployeDto newEmploye)
 {
     oldEmploye.FirstName          = newEmploye.FirstName;
     oldEmploye.LastName           = newEmploye.LastName;
     oldEmploye.Age                = newEmploye.Age;
     oldEmploye.IsHeadOfDepartment = newEmploye.IsManager;
     oldEmploye.CategoryId         = newEmploye.CategoryId;
     oldEmploye.DepartmentId       = newEmploye.DepartmentId;
     oldEmploye.ProjectId          = newEmploye.ProjectId;
 }
Exemple #8
0
        public void SendNotification(NotificationType notificationType, EmployeDto loggedEmploye, long targetEmployeId, UpdatePlanResponse response, string serverLink)
        {
            var targetEmploye = _employeService.GetWithArea(targetEmployeId);

            if (SendNotification(notificationType, loggedEmploye, targetEmploye, response))
            {
                var param = new ApprovationMailParams(notificationType, serverLink, new[] { GetRecipients(targetEmploye) }, GetNotificationMessage(response), GetSender(loggedEmploye));
                SendMail(param).ConfigureAwait(false);
            }
        }
 public static Employe Map(EmployeDto employe)
 {
     return(new Employe
     {
         Id = employe.Id,
         Name = employe.Name,
         Sex = (int)employe.Sex,
         Age = employe.Age,
         PositionId = employe.PositionId,
     });
 }
Exemple #10
0
        public async Task Create(EmployeDto entity)
        {
            var employe = EmployeMapper.Map(entity);

            await this.unitOfWork.Employes.Create(employe);

            var animalEmployes = entity.Animals.OrEmpty()
                                 .Select(p => EmployeMapper.MapAnimalEmploye(p, employe.Id))
                                 .ToArray();

            await this.unitOfWork.AnimalEmployes.CreateRange(animalEmployes);
        }
Exemple #11
0
        private void RemoveDuplicatedGroup(EmployeDto employe)
        {
            employe.Groups = employe.Groups.Distinct().OrderBy(e => e.Count).ToList();
            IList <EmployeBaseDto> smallestGroup = employe.Groups[0];

            employe.Groups = employe.Groups.Where(g => !smallestGroup.All(e => g.Contains(e))).ToList();
            if (employe.Groups.Count > 1)
            {
                RemoveDuplicatedGroup(employe);
            }
            employe.Groups.Insert(0, smallestGroup);
        }
 public static Employe MapCreate(EmployeDto employe)
 {
     return(new Employe
     {
         FirstName = employe.FirstName,
         LastName = employe.LastName,
         Age = employe.Age,
         IsHeadOfDepartment = employe.IsManager,
         CategoryId = employe.CategoryId,
         DepartmentId = employe.DepartmentId,
         ProjectId = employe.ProjectId,
     });
 }
Exemple #13
0
        public async Task <IActionResult> Create(EmployeDto employe)
        {
            if (employe.Id == 0)
            {
                await this.employService.Create(employe);
            }
            else
            {
                await this.employService.Update(employe);
            }

            return(RedirectToAction("Index"));
        }
Exemple #14
0
        public async Task Update(EmployeDto entity)
        {
            var employe = await this.unitOfWork.Employes.Get(entity.Id);

            EmployeMapper.MapUpdate(employe, entity);
            await this.unitOfWork.AnimalEmployes.RemoveRange(employe.AnimalEmployes.ToArray());

            var animalEmployes = entity.Animals.OrEmpty()
                                 .Select(p => EmployeMapper.MapAnimalEmploye(p, employe.Id))
                                 .ToArray();

            await this.unitOfWork.AnimalEmployes.CreateRange(animalEmployes);
        }
Exemple #15
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);
        }
        private EmployeDto FillEmployeDto()
        {
            EmployeDto emp = new EmployeDto();

            emp.AdresseRue1         = TxbAdresseRue1.Text.Trim();
            emp.AdresseRue2         = TxbAdresseRue2.Text.Trim();
            emp.CIN                 = TxbCin.Text.Trim();
            emp.CompagnieID         = SessionHelper.GetCompanyIDFromSession(HttpContext.Current);
            emp.DateEmbaucheString  = UctDateEmbauche.SelectedDateString;
            emp.DateNaissanceString = UctDateNaissance.SelectedDateString;
            emp.DepartementID       = Int32.Parse(DdlDepartement.SelectedValue);
            emp.Email               = TxbEmail.Text.Trim();
            emp.ModifiePar          = User.Identity.Name;
            emp.NIF                 = TxbNif.Text.Trim();
            emp.Nom                 = TxbNom.Text.ToTitleCase();
            emp.Phone1              = TxbPhone1.Text.Trim();
            emp.Phone2              = TxbPhone2.Text.Trim();
            emp.Prenom              = TxbPrenom.Text.ToTitleCase();
            emp.PosteID             = Int32.Parse(DdlPoste.SelectedValue);
            if (RbtSexeFeminin.Checked)
            {
                emp.Sexe = LookupConst.Feminin;
            }
            else
            {
                if (RbtSexeMasculin.Checked)
                {
                    emp.Sexe = LookupConst.Masculin;
                }
                else
                {
                    emp.Sexe = null;
                }
            }
            emp.StatutEmployeID     = (int)LookupEnum.StatutEmploye.Actif;
            emp.StatutMatrimonialID = Int32.Parse(DdlStatutMatrimonial.SelectedValue);
            emp.TypeEmployeID       = Int32.Parse(DdlTypeEmploye.SelectedValue);
            emp.UrgenceNom          = TxbUrgenceNom.Text.Trim();
            emp.UrgencePhone        = TxbUrgencePhone.Text.Trim();

            return(emp);
        }
Exemple #17
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);
        }
Exemple #18
0
        private void UpdateEntity(EmployeDto employeDto)
        {
            var entity = employeDto.Id > 0 ? _employeRepository.GetWithArea(employeDto.Id) : _mapper.Map <EmployeDto, Employe>(employeDto);

            entity.Surname = employeDto.Surname;
            entity.Name    = employeDto.Name;
            entity.Email   = employeDto.Email;
            var areas = _mapper.Map <IList <AreaBaseDto>, IList <Area> >(employeDto.AreaList).Select(a => new EmployeArea(a, entity)).ToList();

            if (employeDto.Id > 0)
            {
                var requestAreasDesc  = areas.Select(ea => ea.Area.Description).ToList();
                var existingAreasDesc = entity.EmployeArea.Select(ea => ea.Area.Description).ToList();
                var removedAreas      = entity.EmployeArea.Where(ea => !requestAreasDesc.Contains(ea.Area.Description)).ToList();
                var addedAreas        = areas.Where(ea => !existingAreasDesc.Contains(ea.Area.Description)).ToList();
                entity.EmployeArea.AddRange(addedAreas);
                _employeRepository.Update(entity, removedAreas);
            }
            else
            {
                entity.EmployeArea = areas;
                _employeRepository.Update(entity);
            }
        }
Exemple #19
0
 public IActionResult Post([FromBody] EmployeDto employe)
 {
     _employeService.Update(employe);
     return(new NoContentResult());
 }
Exemple #20
0
 private MailAddress GetSender(EmployeDto sender) => new MailAddress(sender.Email, string.Concat(sender.Surname, " ", sender.Name));
        public async Task Create(EmployeDto employe)
        {
            var result = EmployMapper.MapCreate(employe);

            await this.unitOfWork.EmployRepository.Create(result);
        }
Exemple #22
0
 public void Update(EmployeDto employe) => UpdateEntity(employe);
Exemple #23
0
 private MailAddress GetRecipients(EmployeDto recipient) => new MailAddress(recipient.Email, string.Concat(recipient.Surname, " ", recipient.Name));
Exemple #24
0
        public void UpdateEmploye(EmployeDto empDto, IEnumerable <EmployeSalaireDto> empSalairesDto,
                                  IEnumerable <CongeDto> congesDto, IEnumerable <EmployePrelevementDto> empPrelDto)
        {
            //Mettre à jour les informations d'un employé existant y compris ses salaires,ses congés et ses prélèvements
            //Attention: la mise à jour peut occasionner à des insertions, des suppressions et des mises à jour

            //Copier les données des Dto dans des Entity Objects
            var emp = new Employe();

            emp.EmployeID           = empDto.EmployeID;
            emp.AdresseRue1         = empDto.AdresseRue1;
            emp.AdresseRue2         = empDto.AdresseRue2;
            emp.AdresseVille        = empDto.AdresseVille;
            emp.Cin                 = empDto.CIN;
            emp.CompagnieID         = empDto.CompagnieID;
            emp.DateEmbauche        = empDto.DateEmbauche;
            emp.DateNaissance       = empDto.DateNaissance;
            emp.DepartementID       = empDto.DepartementID;
            emp.Email               = empDto.Email;
            emp.Extension           = empDto.Extension;
            emp.ModifiePar          = empDto.ModifiePar;
            emp.Nif                 = empDto.NIF;
            emp.Nom                 = empDto.Nom;
            emp.NumeroEmploye       = empDto.NumeroEmploye;
            emp.Phone1              = empDto.Phone1;
            emp.Phone2              = empDto.Phone2;
            emp.PosteID             = empDto.PosteID;
            emp.Prenom              = empDto.Prenom;
            emp.Sexe                = empDto.Sexe;
            emp.StatutEmployeID     = empDto.StatutEmployeID;
            emp.StatutMatrimonialID = empDto.StatutMatrimonialID;
            emp.TypeEmployeID       = empDto.TypeEmployeID;

            foreach (EmployeSalaireDto salDto in empSalairesDto)
            {
                var sal = new EmployeSalaire();
                sal.BanqueID       = salDto.BanqueID;
                sal.BonusFinAnnee  = salDto.BonusFinAnnee;
                sal.CompteBancaire = salDto.CompteBancaire;
                sal.HeureSupPaye   = salDto.HeureSupPaye;
                sal.ModifiePar     = salDto.ModifiePar;
                sal.MonnaieID      = salDto.MonnaieID;
                sal.Salaire        = salDto.Salaire;
                sal.TypePaiementID = salDto.TypePaiementID;
                sal.TypeSalaireID  = salDto.TypeSalaireID;
                emp.EmployeSalaires.Add(sal);
            }

            foreach (CongeDto congDto in congesDto)
            {
                var cong = new Conge();
                cong.AccumulableParAnnee  = congDto.AccumulableParAnnee;
                cong.IncrementableParMois = congDto.IncrementableParMois;
                cong.JourBalance          = congDto.JourBalance;
                cong.JourParAnnee         = congDto.JourParAnnee;
                cong.ModifiePar           = congDto.ModifiePar;
                cong.TypeCongeID          = congDto.TypeCongeID;
                emp.Conges.Add(cong);
            }

            foreach (EmployePrelevementDto prelDto in empPrelDto)
            {
                var prel = new EmployePrelevement();
                prel.PrelevementID = prelDto.PrelevementID;
                prel.TypePeriodeID = prelDto.TypePeriodeID;
                prel.TypeSalaireID = prelDto.TypeSalaireID;
                prel.Pourcentage   = prelDto.Pourcentage;
                emp.EmployePrelevements.Add(prel);
            }

            //Construire le "object graph" détaché de l'employé à mettre à jour

            try
            {
                //Mettre à jour, insérer ou supprimmer les données
                using (var context = new PayrollEntities())
                {
                    // Charger les données de l'employé se trouvant dans la base avec ses congés, ses prélevements et ses salaires
                    Employe existingEmp = context.Employes
                                          .Where(e => e.EmployeID == emp.EmployeID)
                                          .Include(e => e.Conges)
                                          .Include(e => e.EmployePrelevements)
                                          .Include(e => e.EmployeSalaires)
                                          .FirstOrDefault();
                    // Si l'employé a été trouvé, procéder à la mise à jour des ses données personnelles et annexes
                    if (existingEmp != null)
                    {
                        // ***Mettre à jour les données personnelles de l'employé***
                        var empEntry = context.Entry(existingEmp);
                        empEntry.CurrentValues.SetValues(emp);

                        // ***Mettre à jour les salaires de l'employé***

                        // Créer une instance du comparateur pour les salaires
                        EmployeSalaireEqualityComparer empSalEqC = new EmployeSalaireEqualityComparer();
                        // Chercher les nouvellement ajoutés
                        var addedEmpSals = emp.EmployeSalaires.Except(existingEmp.EmployeSalaires, empSalEqC);
                        // Chercher les supprimés
                        var deletedEmpSals = existingEmp.EmployeSalaires.Except(emp.EmployeSalaires, empSalEqC);
                        // Chercher les mis à jour
                        var modifiedEmpSals = emp.EmployeSalaires.Except(addedEmpSals, empSalEqC);
                        // Marquer tous les ajouts comme tels dans le contexte
                        addedEmpSals.ToList().ForEach(sal => context.Entry(sal).State = System.Data.EntityState.Added);
                        // Marquer toutes les suppressions comme telles dans le contexte
                        deletedEmpSals.ToList().ForEach(sal => context.Entry(sal).State = System.Data.EntityState.Deleted);
                        // Mettre à jour les propriétés modifiées par le client
                        foreach (EmployeSalaire epS in modifiedEmpSals)
                        {
                            var existingEmpSal = context.EmployeSalaires.Where(e => e.EmployeID == epS.EmployeID && e.TypeSalaireID == epS.TypeSalaireID);
                            if (existingEmpSal != null)
                            {
                                var empSalEntry = context.Entry(existingEmpSal);
                                empSalEntry.CurrentValues.SetValues(epS);
                            }
                        }

                        // ***Mettre à jour les congés de l'employé***

                        // Créer une instance du comparateur pour les congés
                        CongeEqualityComparer CongEqC = new CongeEqualityComparer();
                        // Chercher les nouvellement ajoutés
                        var addedCongs = emp.Conges.Except(existingEmp.Conges, CongEqC);
                        // Chercher les supprimés
                        var deletedCongs = existingEmp.Conges.Except(emp.Conges, CongEqC);
                        // Chercher les mis à jour
                        var modifiedCongs = emp.Conges.Except(addedCongs, CongEqC);
                        // Marquer tous les ajouts comme tels dans le contexte
                        addedCongs.ToList().ForEach(sal => context.Entry(sal).State = System.Data.EntityState.Added);
                        // Marquer toutes les suppressions comme telles dans le contexte
                        deletedCongs.ToList().ForEach(sal => context.Entry(sal).State = System.Data.EntityState.Deleted);
                        // Mettre à jour les propriétés modifiées par le client
                        foreach (Conge epS in modifiedCongs)
                        {
                            var existingCong = context.Conges.Where(e => e.EmployeID == epS.EmployeID && e.TypeCongeID == epS.TypeCongeID);
                            if (existingCong != null)
                            {
                                var CongEntry = context.Entry(existingCong);
                                CongEntry.CurrentValues.SetValues(epS);
                            }
                        }

                        // ***Mettre à jour les prélèvements de l'employé***

                        // Créer une instance du comparateur pour les prélèvements
                        EmployePrelevementEqualityComparer EmpPrelEqC = new EmployePrelevementEqualityComparer();
                        // Chercher les nouvellement ajoutés
                        var addedEmpPrels = emp.EmployePrelevements.Except(existingEmp.EmployePrelevements, EmpPrelEqC);
                        // Chercher les supprimés
                        var deletedEmpPrels = existingEmp.EmployePrelevements.Except(emp.EmployePrelevements, EmpPrelEqC);
                        // Chercher les mis à jour
                        var modifiedEmpPrels = emp.EmployePrelevements.Except(addedEmpPrels, EmpPrelEqC);
                        // Marquer tous les ajouts comme tels dans le contexte
                        addedEmpPrels.ToList().ForEach(sal => context.Entry(sal).State = System.Data.EntityState.Added);
                        // Marquer toutes les suppressions comme telles dans le contexte
                        deletedEmpPrels.ToList().ForEach(sal => context.Entry(sal).State = System.Data.EntityState.Deleted);
                        // Mettre à jour les propriétés modifiées par le client
                        foreach (EmployePrelevement epS in modifiedEmpPrels)
                        {
                            var existingEmpPrel = context.EmployePrelevements
                                                  .Where(e => e.EmployeID == epS.EmployeID && e.PrelevementID == epS.PrelevementID &&
                                                         e.TypePeriodeID == epS.TypePeriodeID && e.TypeSalaireID == epS.TypeSalaireID);
                            if (existingEmpPrel != null)
                            {
                                var EmpPrelEntry = context.Entry(existingEmpPrel);
                                EmpPrelEntry.CurrentValues.SetValues(epS);
                            }
                        }
                    }
                }
            }

            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }
        }
Exemple #25
0
        public void AddEmploye(EmployeDto empDto, IEnumerable <EmployeSalaireDto> empSalairesDto,
                               IEnumerable <CongeDto> congesDto, IEnumerable <EmployePrelevementDto> empPrelDto)
        {
            //Ajouter un nouvel employé avec son ou ses salaires,ses congés et ses prélèvements

            var emp = new Employe();

            emp.AdresseRue1         = empDto.AdresseRue1;
            emp.AdresseRue2         = empDto.AdresseRue2;
            emp.AdresseVille        = empDto.AdresseVille;
            emp.Cin                 = empDto.CIN;
            emp.CompagnieID         = empDto.CompagnieID;
            emp.DateEmbauche        = empDto.DateEmbauche;
            emp.DateNaissance       = empDto.DateNaissance;
            emp.DepartementID       = empDto.DepartementID;
            emp.Email               = empDto.Email;
            emp.Extension           = empDto.Extension;
            emp.ModifiePar          = empDto.ModifiePar;
            emp.Nif                 = empDto.NIF;
            emp.Nom                 = empDto.Nom;
            emp.NumeroEmploye       = empDto.NumeroEmploye;
            emp.Phone1              = empDto.Phone1;
            emp.Phone2              = empDto.Phone2;
            emp.PosteID             = empDto.PosteID;
            emp.Prenom              = empDto.Prenom;
            emp.Sexe                = empDto.Sexe;
            emp.StatutEmployeID     = empDto.StatutEmployeID;
            emp.StatutMatrimonialID = empDto.StatutMatrimonialID;
            emp.TypeEmployeID       = empDto.TypeEmployeID;


            foreach (EmployeSalaireDto salDto in empSalairesDto)
            {
                var sal = new EmployeSalaire();
                sal.BanqueID       = salDto.BanqueID;
                sal.BonusFinAnnee  = salDto.BonusFinAnnee;
                sal.CompteBancaire = salDto.CompteBancaire;
                sal.HeureSupPaye   = salDto.HeureSupPaye;
                sal.ModifiePar     = salDto.ModifiePar;
                sal.MonnaieID      = salDto.MonnaieID;
                sal.Salaire        = salDto.Salaire;
                sal.TypePaiementID = salDto.TypePaiementID;
                sal.TypeSalaireID  = salDto.TypeSalaireID;

                emp.EmployeSalaires.Add(sal);
            }

            foreach (CongeDto congDto in congesDto)
            {
                var cong = new Conge();
                cong.AccumulableParAnnee  = congDto.AccumulableParAnnee;
                cong.IncrementableParMois = congDto.IncrementableParMois;
                cong.JourBalance          = congDto.JourBalance;
                cong.JourParAnnee         = congDto.JourParAnnee;
                cong.ModifiePar           = congDto.ModifiePar;
                cong.TypeCongeID          = congDto.TypeCongeID;

                emp.Conges.Add(cong);
            }

            foreach (EmployePrelevementDto prelDto in empPrelDto)
            {
                var prel = new EmployePrelevement();
                prel.PrelevementID = prelDto.PrelevementID;
                prel.TypePeriodeID = prelDto.TypePeriodeID;
                prel.TypeSalaireID = prelDto.TypeSalaireID;
                prel.Pourcentage   = prelDto.Pourcentage;

                emp.EmployePrelevements.Add(prel);
            }

            try
            {
                //ajouter les informations du nouvel employé au context et sauvegarder
                using (var context = new PayrollEntities())
                {
                    context.Employes.Add(emp);
                    context.SaveChanges();
                }
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }
        }
Exemple #26
0
        public bool IsValid(EmployeDto emp, ref List <string> ErrorMessages)
        {
            //Les conditions pouvant être validées dans le formulaire lui-même
            // ne sont pas à priori testés ici

            bool isValid = true;

            // Abonnement
            AbonnementLogicielManager al = new AbonnementLogicielManager();

            if (!al.IsSubscriptionValid(emp.CompagnieID))
            {
                isValid = false;
                ErrorMessages.Add(@"Opération impossible: l'abonnement du logiciel a expiré.");
            }

            if (!al.CanAddEmploye(emp.CompagnieID))
            {
                isValid = false;
                ErrorMessages.Add(@"Opération impossible: le nombre maximum d'employés a été atteint.");
            }

            //Date naissance
            DateTime dateNaissance;

            if (!DateTime.TryParse(emp.DateNaissanceString, out dateNaissance))
            {
                isValid = false;
                ErrorMessages.Add(@"Date de naissance invalide");
            }
            else
            {
                if (dateNaissance.AddYears(18) > DateTime.Now)
                {
                    isValid = false;
                    ErrorMessages.Add(@"La date de naissance fait de l'employé un mineur");
                }
            }

            //Sexe
            if (emp.Sexe == null)
            {
                isValid = false;
                ErrorMessages.Add(@"Le sexe de l'employé n'est pas précisé");
            }

            //Email
            if (!String.IsNullOrEmpty(emp.Email))
            {
                // Renvoi true si l'email est valide.
                if (!Regex.IsMatch(emp.Email.ToString(), @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"))
                {
                    isValid = false;
                    ErrorMessages.Add("L'email de l'employé n'est pas correct");
                }
            }

            //Date Embauche
            DateTime dateEmbauche;

            if (!DateTime.TryParse(emp.DateNaissanceString, out dateEmbauche))
            {
                isValid = false;
                ErrorMessages.Add(@"Date d'embauche invalide");
            }

            //Departement
            if (emp.DepartementID == 0)
            {
                isValid = false;
                ErrorMessages.Add(@"Il faut choisir un département");
            }

            //Statut Matrimonial
            if (emp.StatutMatrimonialID == 0)
            {
                isValid = false;
                ErrorMessages.Add(@"Il faut choisir un statut matrimonial");
            }
            return(isValid);
        }
        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);
                }
            }
        }
Exemple #28
0
        public UpdatePlanResponse UpdateLeavesPlan(ICoverageService coverageService, LeavesPlanUpdate leaves, long employeId, EmployeDto loggedOne, bool force)
        {
            Employe currentEmploye = _employeRepository.GetWithArea(employeId);
            var     response       = force ? new UpdatePlanResponse() : AddRejectedLeavesToResponse(coverageService, leaves.AddedLeaves, currentEmploye);

            if (loggedOne.Profile == EmployeProfile.Manager)
            {
                _leaveRepository.InsertAll(GetLeavesEntity(leaves.AddedLeaves.Where(l => l.State == LeaveState.Approved).ToList(), currentEmploye, LeaveState.Approved));
                _leaveRepository.UpdateAll(GetLeavesEntity(leaves.AddedLeaves.Where(l => l.State == LeaveState.ToAdd).ToList(), currentEmploye, LeaveState.Approved));
                _leaveRepository.DeleteAll(GetLeavesEntity(leaves.RemovedLeaves, currentEmploye, LeaveState.Approved));
            }
            else
            {
                _leaveRepository.InsertAll(GetLeavesEntity(leaves.AddedLeaves, currentEmploye, LeaveState.ToAdd));
                _leaveRepository.DeleteAll(GetLeavesEntity(leaves.RemovedLeaves.Where(l => l.State == LeaveState.ToAdd).ToList(), currentEmploye, LeaveState.ToRemove));
                _leaveRepository.UpdateAll(GetLeavesEntity(leaves.RemovedLeaves.Where(l => l.State == LeaveState.Approved).ToList(), currentEmploye, LeaveState.ToRemove));
            }

            SetUpdatedDatesMessage(leaves.AddedLeaves, leaves.RemovedLeaves, response);
            return(response);
        }