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); } }
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); }
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); } } }