/// <summary> /// Les Informtions d'une renumeration /// </summary> /// <param name="salary"></param> public SalaryCard(Salary salary) { SalaryGuid = salary.SalaryGuid; Denomination = salary.Designation; Description = salary.Remuneration + " dhs ("; using (var db = new StationContext()) Description += db.Employments.Find(salary.EmploymentGuid).SalaryRecurrence.GetEnumDescription() + ")"; DateString = salary.StartDate.GetValueOrDefault().ToShortDateString() + " -> " + salary.EndDate.GetValueOrDefault().ToShortDateString(); IsExpiredColor = salary.EndDate.GetValueOrDefault() < DateTime.Today ? "Beige" : "LightGray"; }
/// <summary> /// Ajouter nouvelle renumeration /// </summary> /// <param name="employGuid"></param> /// <param name="salaryToModGuid"></param> public AddSalary(Guid employGuid, Guid salaryToModGuid) { InitializeComponent(); new Task(() => { Dispatcher.BeginInvoke(new Action(() => { if (employGuid == Guid.Empty) { ModernDialog.ShowMessage("Employment Reference Invalid", "ERREUR", MessageBoxButton.OK); Close(); return; } var employ = App.Store.Economat.PayRoll.GetEmployment(employGuid); _START_SALARY.DisplayDateStart = DateTime.Today; _END_SALARY.DisplayDateStart = DateTime.Today; _START_SALARY.DisplayDateEnd = employ.EndDate; _END_SALARY.DisplayDateEnd = employ.EndDate; if (salaryToModGuid == Guid.Empty) { _isAdd = true; var data = new Salary { EmploymentGuid = employGuid, Designation = "", Remuneration = 0, StartDate = employ.StartDate, EndDate = employ.EndDate, Description = "" }; _GRID.DataContext = data; } else { var data = App.Store.Economat.PayRoll.GetSalary(salaryToModGuid); _TITLE_TEXT.Text = "MODIFICATION"; _GRID.DataContext = data; _START_SALARY.IsEnabled = false; _END_SALARY.IsEnabled = false; _REMUNERATION.IsEnabled = false; } })); }).Start(); }
/// <summary> /// Verifie L'existence d'une Salaire /// </summary> /// <param name="salary"></param> /// <returns>True pour oui</returns> protected internal static bool SalaryExist(Salary salary) { using (var db = new StationContext()) { if (db.Salaries.Find(salary.SalaryGuid) != null) return true; return db.Salaries.Any(r => r.EmploymentGuid == salary.EmploymentGuid && r.Designation.Equals(salary.Designation) && r.StartDate == salary.StartDate && r.EndDate == salary.EndDate && Math.Abs(r.Remuneration - salary.Remuneration) < .001); } }
/// <summary> /// /// </summary> /// <param name="salary"></param> /// <returns></returns> protected internal static bool StaticAddSalary(Salary salary) { if (SalaryExist(salary)) return true; if (string.IsNullOrEmpty(salary.Designation)) throw new InvalidOperationException("DESIGNATION_CAN_NOT_BE_EMPTY"); if (salary.StartDate > salary.EndDate) throw new InvalidOperationException("START_DATE_SUPERIOR_TO_END_DATE"); Employment emp; using (var db = new StationContext()) emp = db.Employments.Find(salary.EmploymentGuid); if (emp == null) throw new InvalidOperationException("EMPLOYEMENT_REFERENCE_NOT_FOUND"); if ((salary.StartDate < emp.StartDate) || (salary.EndDate > emp.EndDate)) throw new InvalidOperationException("DATES_CAN_NOT_BE_OUT_OF_EMPLOYMENT_BOUNDRIES"); using (var db = new StationContext()) { if (salary.SalaryGuid == Guid.Empty) salary.SalaryGuid = Guid.NewGuid(); if (salary.Description == string.Empty) salary.Description = salary.Designation; salary.DateAdded = DateTime.Now; salary.AddUserGuid = Guid.Empty; salary.LastEditDate = DateTime.Now; salary.LastEditUserGuid = Guid.Empty; db.Salaries.Add(salary); return db.SaveChanges() > 0; } }
/// <summary> /// Modifier les information d'un salaire /// </summary> /// <param name="salary"></param> /// <exception cref="NotImplementedException"></exception> public bool CancelSalary(Salary salary) { if (string.IsNullOrEmpty(salary.Designation)) throw new InvalidOperationException("DESIGNATION_CAN_NOT_BE_EMPTY"); if (salary.StartDate > salary.EndDate) throw new InvalidOperationException("START_DATE_SUPERIOR_TO_END_DATE"); if (salary.EndDate < DateTime.Today) throw new InvalidOperationException("END_DATE_CAN_NOT_BE_LESS_THAN_TODAY"); Employment emp; using (var db = new StationContext()) emp = db.Employments.Find(salary.EmploymentGuid); if (emp == null) throw new InvalidOperationException("EMPLOYEMENT_REFERENCE_NOT_FOUND"); if ((salary.StartDate < emp.StartDate) || (salary.EndDate > emp.EndDate)) throw new InvalidOperationException("DATES_CAN_NOT_BE_OUT_OF_EMPLOYMENT_BOUNDRIES"); using (var db = new StationContext()) { var newSalary = db.Salaries.Find(salary.SalaryGuid); if (newSalary == null) throw new InvalidOperationException("SALARY_REFERENCE_NOT_FOUND"); newSalary.EndDate = salary.EndDate; newSalary.Description = salary.Description; var user = Membership.GetUser(); if (user == null) throw new SecurityException("USER_CAN_NOT_DETERMINED"); // ReSharper disable once PossibleNullReferenceException newSalary.LastEditUserGuid = (Guid)user.ProviderUserKey; newSalary.LastEditDate = DateTime.Now; db.Salaries.Attach(newSalary); db.Entry(newSalary).State = EntityState.Modified; return db.SaveChanges() > 0; } }
/// <summary> /// Ajouter Une Renumeration Pour un Staff /// </summary> /// <param name="salary"></param> /// <returns>True pour Success</returns> public bool AddSalary(Salary salary) { return StaticAddSalary(salary); }
/// <summary> /// /// </summary> /// <param name="salary"></param> public ViewCard(Salary salary) { Info1 = salary.Designation; Info3 = salary.Remuneration.ToString("0.##", CultureInfo.CurrentCulture) + " dhs"; }