Ejemplo n.º 1
0
        /// <summary>
        /// OverTime Approved
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool OverTimeApprove(Guid id, string userID)
        {
            OverTime overtime = db.OverTimes.Find(id);

            if (overtime == null)
            {
                return false;
            }
            overtime.Status = "Approve";

            //update UserLeave
            var userLeave = db.UserLeaves.Where(o => o.UserID == overtime.UserID).FirstOrDefault();
            userLeave.OverTime += overtime.Hours;
            userLeave.OverTimeRest += overtime.Hours;
            userLeave.UpdateTime = DateTime.Now;

            //Add UserLeaveLog
            UserLeaveCutLog log = new UserLeaveCutLog();
            log.BreakOFFID = Guid.NewGuid();
            log.CutDateTime = DateTime.Now;
            log.UserID = overtime.UserID;
            log.CutHour = overtime.Hours;
            log.LeaveType = "OverTime";
            db.UserLeaveCutLogs.Add(log);

            //Add t_AlertUser
            t_AlertUser alert = new t_AlertUser();

            alert.ABID = 2;
            alert.UserID = overtime.UserID;
            alert.AUTitle = "OverTime Approved";
            alert.AUContent = "I have approved your OverTime.";
            alert.AUType = 0;
            alert.AUStatus = 1;
            alert.AUInterval = 0;
            alert.AUUnitNum = 0;
            alert.AUTime = DateTime.Now;
            alert.CreateBy = userID;
            alert.CreateDate = DateTime.Now;

            db.t_AlertUser.Add(alert);
            try
            {
                db.SaveChanges();
            }
            catch
            {
                return false;
            }

            return true;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// BreakOff Approved
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool BreakOffApprove(Guid id, string userID)
        {
            //update BreakOff
            BreakOff breakoff = db.BreakOffs.Find(id);
            CaculateCost caculate = new CaculateCost();

            if (breakoff == null)
            {
                return false;
            }
            breakoff.Status = "Approve";

            //Add UserLeaveLog
            UserLeaveCutLog log = new UserLeaveCutLog();
            log.BreakOFFID = Guid.NewGuid();
            log.CutDateTime = DateTime.Now;
            log.UserID = breakoff.UserID;
            log.CutHour = caculate.Caculate(breakoff.BreakOffFrom, breakoff.BreakOffTo);
            StringBuilder content = new StringBuilder();
            content.Append("I have approved your BreakOff.");

            //update UserLeave
            var userLeave = db.UserLeaves.Where(o => o.UserID == breakoff.UserID).FirstOrDefault();
            if (breakoff.CutFrom == "Annual Leave")
            {
                content.Append("Your Annual Leave time has decreased "+ log.CutHour.ToString()+" hours,");
                content.Append(" it used to be " +userLeave.AnnualDaysRest.ToString()+" hours,");
                userLeave.AnnualDaysRest -= log.CutHour; // caculate.Caculate(breakoff.BreakOffFrom, breakoff.BreakOffTo);
                log.LeaveType = "Annual Leave";
                if (userLeave.AnnualDaysRest <= 0)
                    content.Append("now you don't have time");
                else
                    content.Append("now is " + userLeave.AnnualDaysRest.ToString() + " hours.");

            }
            else
            {
                string time;
                if (log.CutHour == 1)
                    time = " hour,";
                else
                    time = " hours,";
                content.Append("Your Change off time has decreased " + log.CutHour.ToString() + time);
                if(userLeave.OverTimeRest == 1)
                    time = " hour,";
                else
                    time = " hours,";
                content.Append(" it used to be " + userLeave.OverTimeRest.ToString() + time);
                userLeave.OverTimeRest -= log.CutHour;// caculate.Caculate(breakoff.BreakOffFrom, breakoff.BreakOffTo);
                log.LeaveType = "Change Off";
                if (userLeave.OverTimeRest <= 0)
                    content.Append("now you don't have time");
                else
                {
                    if (userLeave.OverTimeRest == 1)
                        time = " hour.";
                    else
                        time = " hours.";
                    content.Append("now is " + userLeave.OverTimeRest.ToString() + time);
                }
            }
            userLeave.UpdateTime = DateTime.Now;
            db.UserLeaveCutLogs.Add(log);

            //Add t_AlertUser
            t_AlertUser alert = new t_AlertUser();

            alert.ABID = 2;
            alert.UserID = breakoff.UserID;
            alert.AUTitle = "BreakOff Approved";
            alert.AUContent = content.ToString();
            alert.AUType = 0;
            alert.AUStatus = 1;
            alert.AUInterval = 0;
            alert.AUUnitNum = 0;
            alert.AUTime = DateTime.Now;
            alert.CreateBy = userID;
            alert.CreateDate = DateTime.Now;

            db.t_AlertUser.Add(alert);
            try
            {
                db.SaveChanges();
            }
            catch
            {
                return false;
            }

            return true;
        }