Example #1
0
        /// <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";

        }
Example #2
0
        /// <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();
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <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;
            }
        }
Example #5
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;
            }
        }
Example #6
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);
 }
Example #7
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="salary"></param>
 public ViewCard(Salary salary)
 {
     Info1 = salary.Designation;
     Info3 = salary.Remuneration.ToString("0.##", CultureInfo.CurrentCulture) + " dhs";
 }