コード例 #1
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <summary>
        /// BreakOff Canceled
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool TraineeBreakOffCancel(Guid id, string userID)
        {
            TraineeBreakOff traineebreakoff = db.TraineeBreakOffs.Find(id);

            if (traineebreakoff == null)
            {
                return false;
            }
            traineebreakoff.Status = "Cancel";

            t_AlertUser alert = new t_AlertUser();

            alert.ABID = 2;
            alert.UserID = traineebreakoff.UserID;
            alert.AUTitle = "TraineeBreakOff Canceled";
            alert.AUContent = "I have Canceled your BreakOff.";
            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;
        }
コード例 #2
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <summary>
        /// BreakOffApplication
        /// </summary>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool TraineeBreakOffApplication(DateTime start, DateTime end, string userID)
        {
            TraineeBreakOff traineeBreakOff = new TraineeBreakOff();

            traineeBreakOff.BreakOffGuid = Guid.NewGuid();
            traineeBreakOff.UserID = userID;
            traineeBreakOff.BreakOffFrom = start;
            traineeBreakOff.BreakOffTo = end;
            traineeBreakOff.Status = "Ask";

            db.TraineeBreakOffs.Add(traineeBreakOff);

            var user = db.Users.FirstOrDefault(o => o.UserID == userID);
            StringBuilder email = new StringBuilder();
            CaculateCost caculate = new CaculateCost();

            string time = caculate.Caculate(start, end).ToString() + "H";
            int timeCost = Convert.ToInt32(time.Substring(0, time.Length - 1));
            int days = timeCost / 8;
            timeCost = timeCost - days * 8;

            time = string.Empty;
            if (days > 0)
                time += " " + days.ToString() + (days > 1 ? " Days" : " Day");
            if (timeCost > 0)
                time += " " + timeCost.ToString() + (timeCost > 1 ? " Hours" : " Hour");

            if (end.Subtract(start).Days == 0)
                time = time + start.ToShortDateString() + ".";
            else
                time = time + start.ToShortDateString() + " to " + end.ToShortDateString() + ".";
            //email.Append("Hi Yemol, <br/><br/>");
            email.Append("I am going to take" + time);
            email.AppendFormat(" Could you please approve it?");//<br/><br/>Thanks,<br/><br/><br/>{0}", user.UserName);

                    t_AlertUser alert = new t_AlertUser();

                    alert.ABID = 1;
                    alert.UserID = "yemol";
                    alert.AUTitle = user.UserName + " TraineeBreakOff Application";
                    alert.AUContent = email.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;
        }
コード例 #3
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <summary>
        /// BreakOff Approved
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool TraineeBreakOffApprove(Guid id, string userID)
        {
            //update TrianeeBreakOff
            TraineeBreakOff traineebreakoff = db.TraineeBreakOffs.Find(id);
            CaculateCost caculate = new CaculateCost();

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

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

            alert.ABID = 2;
            alert.UserID = traineebreakoff.UserID;
            alert.AUTitle = "TraineeBreakOff Approved";
            alert.AUContent = "I have approved your BreakOff";
            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;
        }
コード例 #4
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <summary>
        /// OverTime Canceled
        /// </summary>
        /// <param name="id"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool OverTimeCancel(Guid id, string userID)
        {
            OverTime overtime = db.OverTimes.Find(id);

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

            t_AlertUser alert = new t_AlertUser();

            alert.ABID = 2;
            alert.UserID = overtime.UserID;
            alert.AUTitle = "OverTime Canceled";
            alert.AUContent = "I have Canceled 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;
        }
コード例 #5
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <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;
        }
コード例 #6
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <summary>
        /// BreakOffApplication
        /// </summary>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="cutFrom"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool BreakOffApplication(DateTime start, DateTime end, string cutFrom, string userID)
        {
            string cc = null;
            BreakOff breakOff = new BreakOff();

            breakOff.BreakOffGuid = Guid.NewGuid();
            breakOff.UserID = userID;
            breakOff.BreakOffFrom = start;
            breakOff.BreakOffTo = end;
            breakOff.CutFrom = cutFrom;
            breakOff.Status = "Ask";

            db.BreakOffs.Add(breakOff);

            var user = db.Users.FirstOrDefault(o => o.UserID == userID);
            var userRole = db.UserRoles.Where(o => o.UserID == userID).ToList();
            StringBuilder email = new StringBuilder();
            CaculateCost caculate = new CaculateCost();

            string time = caculate.Caculate(start, end).ToString() + "H";
            int timeCost = Convert.ToInt32(time.Substring(0, time.Length - 1));
            int days = timeCost / 8;
            timeCost = timeCost - days * 8;

            time = string.Empty;
            if (days > 0)
                time += " " + days.ToString() + (days > 1 ? " Days" : " Day");
            if (timeCost > 0)
                time += " " + timeCost.ToString() + (timeCost > 1 ? " Hours" : " Hour");

            if (end.Subtract(start).Days == 0)
                time = time + " off(" + cutFrom + ") on " + start.ToShortDateString() + ".";
            else
                time = time + " off(" + cutFrom + ") from " + start.ToShortDateString() + " to " + end.ToShortDateString() + ".";
            //email.Append("Hi Yemol, <br/><br/>");
            email.Append("I am going to take" + time);
            email.AppendFormat(" Could you please approve it?");//<br/><br/>Thanks,<br/><br/><br/>{0}", user.UserName);

            for (int i = 0; i < userRole.Count; i++)
            {
                string leaderID = null;
                string groupName = userRole[i].GroupName;
                var userLeader = db.UserRoles.Where(o => o.GroupName == groupName)
                    .Where(o => (o.RoleName == "Team Leader")).ToList();

                for (int j = 0; j < userLeader.Count; j++)
                {
                    if (leaderID == null || leaderID == String.Empty || userLeader[j].UserID == null)
                    {
                        leaderID += userLeader[j].UserID;
                    }
                    else
                    {
                        leaderID += ("," + userLeader[j].UserID);
                    }
                }

                if (cc == null || cc == String.Empty || leaderID == null)
                {
                    cc += leaderID;
                }
                else
                {
                    cc += ("," + leaderID);
                }

            }
            if (cc == null || cc == String.Empty)
            {
                cc += userID;
            }
            else
            {
                cc += ("," + userID);
            }

            t_AlertUser alert = new t_AlertUser();

            alert.ABID = 1;
            alert.UserID = "yemol";
            alert.CcUser = cc;
            alert.AUTitle = user.UserName + " BreakOff Application";
            alert.AUContent = email.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;
        }
コード例 #7
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <summary>
        /// OverTimeApplication
        /// </summary>
        /// <param name="date"></param>
        /// <param name="hours"></param>
        /// <param name="userID"></param>
        /// <returns></returns>
        public bool OverTimeApplication(DateTime date, int hours, string userID)
        {
            OverTime overTime = new OverTime();
            overTime.OverTimeGuid = Guid.NewGuid();
            overTime.UserID = userID;
            overTime.OnDate = date;
            overTime.Hours = hours;
            overTime.Status = "Ask";

            db.OverTimes.Add(overTime);

            var user = db.Users.FirstOrDefault(o => o.UserID == userID);
            StringBuilder email = new StringBuilder();
            string hourstr = " hours";
            if (overTime.Hours == 1)
                hourstr = " hour";
            hourstr = overTime.Hours.ToString() + hourstr;
            //email.Append("Hi Yemol, <br/><br/>");
            email.AppendFormat("I am going to overtime {0} hours at {1}.", hourstr, overTime.OnDate.ToShortDateString());
            email.AppendFormat(" Could you please approve it?");//<br/><br/>Thanks,<br/><br/><br/>{0}", user.UserName);
            t_AlertUser alert = new t_AlertUser();

            alert.ABID = 1;
            alert.UserID = "yemol";
            alert.AUTitle = user.UserName + " OverTime Application";
            alert.AUContent = email.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;
        }
コード例 #8
0
ファイル: MailEntity.cs プロジェクト: jxzly229190/TM
        /// <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;
        }