public ActionResult CreateAnalysis([Bind(Prefix = "models")] List <Att_OvertimeModel> attOvertime, [Bind(Prefix = "params")] Att_OvertimeModel model)
        {
            Att_OvertimeModel result = new Att_OvertimeModel();
            var lstAttOvertime       = new List <Att_OvertimeModel>();

            if (attOvertime == null || attOvertime.Count() <= 0)
            {
                attOvertime = new List <Att_OvertimeModel>();

                if (model != null)
                {
                    attOvertime.Add(model);
                }
            }
            var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);

            service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);

            if (attOvertime != null)
            {
                var user = Session[SessionObjects.UserId].ToString();
                attOvertime.ForEach(s => s.UserRegister = s.UserCreate = s.UserUpdate = s.UserLoginID = user);
                attOvertime.ForEach(s => s.Host         = _hrm_Main_Web);

                result = service.Post(_Hrm_Hre_Service, "api/Att_Overtime/", attOvertime);
            }
            return(Json(result));
        }
示例#2
0
        public Att_OvertimeModel Post([Bind] List <Att_OvertimeModel> lstModel)
        {
            ActionService service = new ActionService(UserLogin);
            Att_ProcessApprovedServices smService = new Att_ProcessApprovedServices();
            List <Att_OvertimeEntity>   lstSM     = new List <Att_OvertimeEntity>();
            Att_OvertimeModel           result    = new Att_OvertimeModel();

            foreach (var model in lstModel)
            {
                if (model.WorkDateTime != null && model.WorkDateTime.Length < 8)
                {
                    model.WorkDateTime = model.WorkDateTime + ":00";
                }

                //[Hien.Nguyen] reset hours datetime
                //model.WorkDate = new DateTime(model.WorkDate.Year, model.WorkDate.Month, model.WorkDate.Day, 12, 0, 0);
                //model.WorkDate = Common.JoinTimeInDate(model.WorkDate, model.WorkDateTime);

                model.WorkDateRoot = model.WorkDate;
                if (model.Status == EnumDropDown.OverTimeStatus.E_APPROVED.ToString() &&
                    model.RegisterHours != model.ApproveHours)
                {
                    model.ApproveHours = model.RegisterHours;
                }
                result = service.UpdateOrCreate <Att_OvertimeEntity, Att_OvertimeModel>(model);
                if (result.ActionStatus == "Success")
                {
                    lstSM.Add(model.Copy <Att_OvertimeEntity>());
                }
            }
            smService.GetEmailToSend_Overtime(lstSM, UserLogin);
            return(result);
        }
示例#3
0
        /// <summary>
        /// Tạo mời một AttOvertime
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ActionResult Add([Bind] Att_OvertimeModel model)
        {
            var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);

            service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
            var result = service.Put(_Hrm_Hre_Service, "api/Att_Overtime/", model);

            return(Json(result));
        }
示例#4
0
 public ActionResult Edit([DataSourceRequest] DataSourceRequest request, Att_OvertimeModel AttOvertime)
 {
     if (ModelState.IsValid)
     {
         var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);
         service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
         var result = service.Put(_Hrm_Hre_Service, "api/Att_Overtime/", AttOvertime);
         ViewBag.MsgUpdate = ConstantDisplay.HRM_Attendance_Overtime_UpdateSuccess.TranslateString();
     }
     return(View());
 }
示例#5
0
 public ActionResult Create(Att_OvertimeModel model)
 {
     if (ModelState.IsValid)
     {
         var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);
         service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
         var result = service.Put(_Hrm_Hre_Service, "api/Att_Overtime/", model);
         ViewBag.MsgInsert = ConstantDisplay.HRM_Attendance_Overtime_CreateSuccess.TranslateString();
     }
     return(View());
 }
示例#6
0
        /// <summary>
        /// Xử lí lưu xác nhận tăng ca
        /// </summary>
        /// <param name="contract"></param>
        /// <returns></returns>
        public Att_OvertimeModel Post(IEnumerable <Att_OvertimeModel> listmodel)
        {
            Att_OvertimeModel model = new Att_OvertimeModel();
            var    service          = new Att_OvertimeServices();
            string result           = service.SaveOvertimeConfirm(listmodel.Select(item => new Att_OvertimeEntity
            {
                ID           = item.ID,
                ConfirmHours = item.ConfirmHours
            }
                                                                                   ));

            return(model);
        }
示例#7
0
        public ActionResult SetMethodPaymentSelected(List <Guid> selectedIds, string status)
        {
            var model = new Att_OvertimeModel();

            if (selectedIds != null || selectedIds.Count > 0)
            {
                var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);
                service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
                model.ProfileIds    = String.Join(",", selectedIds);
                model.MethodPayment = status;
                model = service.Put(_Hrm_Hre_Service, "api/Att_Overtime/", model);
            }
            return(Json(model));
        }
示例#8
0
        /// <summary>
        /// [Hieu.Van] - Lấy dữ liệu theo Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Att_OvertimeModel GetById(Guid id)
        {
            string        status  = string.Empty;
            var           model   = new Att_OvertimeModel();
            ActionService service = new ActionService(userLogin);
            var           entity  = service.GetByIdUseStore <Att_OvertimeEntity>(id, ConstantSql.hrm_att_sp_get_OvertimeById, ref status);

            if (entity != null)
            {
                model = entity.CopyData <Att_OvertimeModel>();
            }
            model.ActionStatus = status;
            return(model);
        }
示例#9
0
        public ActionResult RemoveSelected(List <Guid> selectedIds)
        {
            var ot = new Att_OvertimeModel();

            if (selectedIds != null || selectedIds.Count > 0)
            {
                var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);
                service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
                foreach (var id in selectedIds)
                {
                    service.Delete(_Hrm_Hre_Service, "api/Att_Overtime/", id);
                }
            }
            return(Json(""));
        }
示例#10
0
 public string Edit(Att_OvertimeModel model)
 {
     model = Validate <Att_OvertimeModel>(model, "Att_Overtime");
     if (!string.IsNullOrEmpty(model.ActionStatus))
     {
         if (model != null)
         {
             ActionService service = new ActionService(UserLogin);
             service.UpdateOrCreate <Att_OvertimeEntity, Att_OvertimeModel>(model);
             if (model.ID != Guid.Empty)
             {
                 return(model.ID.ToString());
             }
         }
     }
     return(model.ActionStatus);
 }
示例#11
0
        /// <summary>
        /// Xử lí thay doi trang thai cua overtime
        /// </summary>
        /// <param name="contract"></param>
        /// <returns></returns>
        public ActionResult SetStatusSelected(string selectedIds, string status)
        {
            var ot = new Att_OvertimeModel();

            if (selectedIds != null)
            {
                var lstSelectedIds = selectedIds.Split(',');
                var service        = new RestServiceClient <Att_OvertimeModel>(UserLogin);
                service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
                foreach (var id in lstSelectedIds)
                {
                    ot.ID     = Guid.Parse(id);
                    ot.Status = status;
                    service.Put(_Hrm_Hre_Service, "api/Att_OvertimeCustom/", ot);
                }
            }
            return(Json(""));
        }
示例#12
0
        public ActionResult Edit(Guid id)
        {
            if (!CheckPermission())
            {
                return(RedirectToAction("Denied", "Portal"));
            }
            string        status  = string.Empty;
            var           model   = new Att_OvertimeModel();
            ActionService service = new ActionService(UserLogin);
            var           entity  = service.GetByIdUseStore <Att_OvertimeEntity>(id, ConstantSql.hrm_att_sp_get_OvertimeById, ref status);

            if (entity != null)
            {
                model = entity.CopyData <Att_OvertimeModel>(UserLogin);
            }
            model.ActionStatus = status;
            return(GetOnlyView(model));
        }
示例#13
0
        public ActionResult SetAllowOvertimeSelected(List <Guid> selectedIds, string status)
        {
            var model = new Att_OvertimeModel();

            if (selectedIds != null || selectedIds.Count > 0)
            {
                var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);
                service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
                model.ProfileIds = String.Join(",", selectedIds);
                if (status == "true")
                {
                    model.IsNonOvertime = false;
                }
                else
                {
                    model.IsNonOvertime = true;
                }
                model = service.Put(_Hrm_Hre_Service, "api/Att_Overtime/", model);
            }
            return(Json(model));
        }
示例#14
0
        /// <summary>
        /// Xử lí thay doi trang thai cua overtime
        /// </summary>
        /// <param name="contract"></param>
        /// <returns></returns>
        ///
        public ActionResult SetStatusSelected(List <Guid> selectedIds, string status, string userApproved)
        {
            var model = new Att_OvertimeModel();

            if (selectedIds != null)
            {
                var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);
                service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
                model.ProfileIds = String.Join(",", selectedIds);
                model.Status     = status;
                Guid Approved = Guid.Empty;
                Guid.TryParse(userApproved, out Approved);
                if (Approved == Guid.Empty)
                {
                    model.ActionStatus = "NoPermission";
                    return(Json(model));
                }
                model.UserApproveID  = Approved;
                model.UserApproveID2 = Approved;
                model = service.Put(_Hrm_Hre_Service, "api/Att_Overtime/", model);
            }
            return(Json(model));
        }
示例#15
0
        /// <summary>
        /// [Hieu.Van] Update status
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        //[System.Web.Mvc.HttpPost]
        //[System.Web.Mvc.RouteAttribute("api/Att_Overtime")]
        public Att_OvertimeModel Put([Bind] Att_OvertimeModel model)
        {
            model.ProfileIds = Common.DotNetToOracle(model.ProfileIds);
            BaseService service = new BaseService();
            string      status  = string.Empty;

            List <object> lstObj = new List <object>();

            if (string.IsNullOrEmpty(model.Status) && string.IsNullOrEmpty(model.MethodPayment))
            {
                lstObj.AddRange(new object[2]);
                lstObj[0] = model.ProfileIds;
                lstObj[1] = model.IsNonOvertime;
                var rs = new List <Att_OvertimeModel>();
                rs = service.UpdateData <Att_OvertimeModel>(lstObj, ConstantSql.Att_sp_Set_Overtime_AllowOvertime, ref status);
                model.ActionStatus = status;
                return(model);
            }
            else
            {
                lstObj.AddRange(new object[3]);
                lstObj[0] = model.ProfileIds;
                lstObj[1] = model.Status;
                lstObj[2] = model.MethodPayment;
                var rs = new List <Att_OvertimeModel>();
                if (model.MethodPayment == "E_CASHOUT" || model.MethodPayment == "E_TIMEOFF")
                {
                    #region Change MethodPayment
                    rs = service.UpdateData <Att_OvertimeModel>(lstObj, ConstantSql.hrm_att_sp_Set_Overtime_Payment, ref status);
                    model.ActionStatus = status;
                    #endregion
                }
                else
                {
                    #region  không cho phép duyệt ot cho bản thân
                    var  checkConfigApp  = service.GetData <Sys_AllSettingModel>(AppConfig.HRM_ATT_OT_DONOTAPPROVEOTMYSELF.ToString(), ConstantSql.hrm_sys_sp_get_AllSettingByKey, UserLogin, ref status);
                    var  checkUserLG     = service.GetData <Sys_UserModel>(model.UserApproveID, ConstantSql.hrm_sys_sp_get_UserbyId, UserLogin, ref status);
                    bool APPROVEOTMYSELF = false;

                    Guid?ProIDofUserLG = checkUserLG.Select(s => s.ProfileID).FirstOrDefault();
                    if (ProIDofUserLG != null && ProIDofUserLG != Guid.Empty)
                    {
                        if (checkConfigApp != null && checkConfigApp.Select(s => s.Value1).FirstOrDefault() == bool.TrueString)
                        {
                            APPROVEOTMYSELF = true;
                        }
                    }
                    #endregion

                    #region Change Status
                    var lstCheck = service.GetData <Att_RosterModel>(model.ProfileIds, ConstantSql.hrm_att_sp_get_OvertimeByIds, UserLogin, ref status);
                    if (status == NotificationType.Success.ToString())
                    {
                        status = "";
                    }
                    else
                    {
                        model.ActionStatus = status;
                        return(model);
                    }
                    string lstFirstApprove = "";
                    string lstNormal       = "";
                    foreach (var item in lstCheck)
                    {
                        if (APPROVEOTMYSELF == true && ProIDofUserLG == item.ProfileID)
                        {
                            model.ActionStatus = "NoApproveOTMySelf";
                            return(model);
                        }
                        if (item.UserApproveID != model.UserApproveID && item.UserApproveID2 != model.UserApproveID2)
                        {
                            model.ActionStatus = "NoPermission";
                            return(model);
                        }
                        if (model.Status == AttendanceDataStatus.E_APPROVED.ToString())
                        {
                            if (item.UserApproveID == model.UserApproveID)
                            {
                                lstFirstApprove += Common.DotNetToOracle(item.ID.ToString()) + ",";
                            }
                            if (item.UserApproveID2 == model.UserApproveID2 && (item.Status == AttendanceDataStatus.E_FIRST_APPROVED.ToString() || item.UserApproveID == model.UserApproveID))
                            {
                                lstNormal += Common.DotNetToOracle(item.ID.ToString()) + ",";
                            }
                        }
                        else
                        if (model.Status == AttendanceDataStatus.E_WAIT_APPROVED.ToString())
                        {
                            if (item.UserApproveID == model.UserApproveID)
                            {
                                lstNormal += Common.DotNetToOracle(item.ID.ToString()) + ",";
                            }
                        }
                        else
                        {
                            lstNormal += Common.DotNetToOracle(item.ID.ToString()) + ",";
                        }

                        //if (item.UserApproveID2 == model.UserApproveID2 && (item.Status == AttendanceDataStatus.E_FIRST_APPROVED.ToString() || item.UserApproveID == model.UserApproveID))
                        //{
                        //    lstFirstApprove += Common.DotNetToOracle(item.ID.ToString()) + ",";
                        //}
                        //else
                        //{
                        //    if (item.UserApproveID == model.UserApproveID)
                        //        lstNormal += Common.DotNetToOracle(item.ID.ToString()) + ",";
                        //}
                    }
                    if (lstFirstApprove != "")
                    {
                        lstFirstApprove = lstFirstApprove.Substring(0, lstFirstApprove.Length - 1);
                        lstObj[0]       = lstFirstApprove;
                        lstObj[1]       = AttendanceDataStatus.E_FIRST_APPROVED.ToString();
                        service.UpdateData <Att_OvertimeModel>(lstObj, ConstantSql.hrm_att_sp_Set_Overtime_Status, ref status);
                    }
                    if (lstNormal != "")
                    {
                        lstNormal = lstNormal.Substring(0, lstNormal.Length - 1);
                        lstObj[0] = lstNormal;
                        lstObj[1] = model.Status;
                        service.UpdateData <Att_OvertimeModel>(lstObj, ConstantSql.hrm_att_sp_Set_Overtime_Status, ref status);
                    }
                    //rs = service.UpdateData<Att_OvertimeModel>(lstObj, ConstantSql.hrm_att_sp_Set_Overtime_Status, ref status);
                    if (status == "")
                    {
                        status = "NoPermission";
                    }
                    model.ActionStatus = status;
                    #endregion
                }
            }
            return(model);
        }
示例#16
0
        public ActionResult Create([Bind(Prefix = "totalRecord")] List <Att_OvertimeModel> TotalAtt_OvertimeModel, [Bind(Prefix = "models")] List <Att_OvertimeModel> updatedAtt_OvertimeModel)
        {
            List <Att_OvertimeModel> lstReturn = new List <Att_OvertimeModel>();
            Att_OvertimeModel        _return   = new Att_OvertimeModel();

            var service = new RestServiceClient <Att_OvertimeModel>(UserLogin);

            service.SetCookies(this.Request.Cookies, _Hrm_Hre_Service);
            if (updatedAtt_OvertimeModel != null)
            {
                for (int i = 0; i < updatedAtt_OvertimeModel.Count; i++)
                {
                    #region [Hien.Nguyen] xử lý gộp time vào datetime
                    //Nếu date == null
                    if (updatedAtt_OvertimeModel[i].InTime == null)
                    {
                        updatedAtt_OvertimeModel[i].InTime = updatedAtt_OvertimeModel[i].WorkDate; //gán bằng với workdate
                        if (updatedAtt_OvertimeModel[i].TempTimeIn != null)                        //Nếu giờ khác null thì gán giờ vào
                        {
                            updatedAtt_OvertimeModel[i].InTime = new DateTime(updatedAtt_OvertimeModel[i].InTime.Value.Year, updatedAtt_OvertimeModel[i].InTime.Value.Month,
                                                                              updatedAtt_OvertimeModel[i].InTime.Value.Day, int.Parse(updatedAtt_OvertimeModel[i].TempTimeIn.Split(':').ToList()[0]),
                                                                              int.Parse(updatedAtt_OvertimeModel[i].TempTimeIn.Split(new char[] { ':' }).ToList()[1]), int.Parse(updatedAtt_OvertimeModel[i].TempTimeIn.Split(':').ToList()[2]));
                        }
                    }
                    else//Nếu date != null
                    {
                        if (updatedAtt_OvertimeModel[i].TempTimeIn != null)//Nếu time khác null thì gán time vào cho date
                        {
                            updatedAtt_OvertimeModel[i].InTime = new DateTime(updatedAtt_OvertimeModel[i].InTime.Value.Year, updatedAtt_OvertimeModel[i].InTime.Value.Month,
                                                                              updatedAtt_OvertimeModel[i].InTime.Value.Day, int.Parse(updatedAtt_OvertimeModel[i].TempTimeIn.Split(':').ToList()[0]),
                                                                              int.Parse(updatedAtt_OvertimeModel[i].TempTimeIn.Split(':').ToList()[1]), int.Parse(updatedAtt_OvertimeModel[i].TempTimeIn.Split(':').ToList()[2]));
                        }
                    }
                    if (updatedAtt_OvertimeModel[i].OutTime == null)
                    {
                        updatedAtt_OvertimeModel[i].OutTime = updatedAtt_OvertimeModel[i].WorkDate; //gán bằng với workdate
                        if (updatedAtt_OvertimeModel[i].TempTimeOut != null)                        //Nếu giờ khác null thì gán giờ vào
                        {
                            updatedAtt_OvertimeModel[i].OutTime = new DateTime(updatedAtt_OvertimeModel[i].OutTime.Value.Year, updatedAtt_OvertimeModel[i].OutTime.Value.Month,
                                                                               updatedAtt_OvertimeModel[i].OutTime.Value.Day, int.Parse(updatedAtt_OvertimeModel[i].TempTimeOut.Split(':').ToList()[0]),
                                                                               int.Parse(updatedAtt_OvertimeModel[i].TempTimeOut.Split(':').ToList()[1]), int.Parse(updatedAtt_OvertimeModel[i].TempTimeOut.Split(':').ToList()[2]));
                        }
                    }
                    else
                    {
                        if (updatedAtt_OvertimeModel[i].TempTimeOut != null)//Nếu time khác null thì gán time vào cho date
                        {
                            updatedAtt_OvertimeModel[i].OutTime = new DateTime(updatedAtt_OvertimeModel[i].OutTime.Value.Year, updatedAtt_OvertimeModel[i].OutTime.Value.Month,
                                                                               updatedAtt_OvertimeModel[i].OutTime.Value.Day, int.Parse(updatedAtt_OvertimeModel[i].TempTimeOut.Split(':').ToList()[0]),
                                                                               int.Parse(updatedAtt_OvertimeModel[i].TempTimeOut.Split(':').ToList()[1]), int.Parse(updatedAtt_OvertimeModel[i].TempTimeOut.Split(':').ToList()[2]));
                        }
                    }
                    #endregion
                    #region [Kiet.Chung] Compare lại code bảng 7 update luỹ kế
                    Att_OvertimeModel        DataChange = updatedAtt_OvertimeModel[i];
                    double                   denta      = DataChange.ApproveHours.HasValue ? DataChange.ApproveHours.Value - DataChange.RegisterHours : 0 - DataChange.RegisterHours;
                    List <Att_OvertimeModel> lstUpdate  = TotalAtt_OvertimeModel.Where(d => d.ProfileID == DataChange.ProfileID && d.WorkDate.Date >= DataChange.WorkDate.Date).ToList();
                    foreach (var item in lstUpdate)
                    {
                        if (item.WorkDate == DataChange.WorkDate && item.ID == DataChange.ID)
                        {
                            item.RegisterHours = item.RegisterHours + denta;
                        }
                        if (item.WorkDate.Date == DataChange.WorkDate.Date)
                        {
                            if (item.udHourByDate != null)
                            {
                                item.udHourByDate = item.udHourByDate + denta;
                            }
                        }
                        if (item.WorkDate.Month == DataChange.WorkDate.Month && item.WorkDate.Year == DataChange.WorkDate.Year)
                        {
                            if (item.udHourByMonth != null)
                            {
                                item.udHourByMonth = item.udHourByMonth + denta;
                            }
                        }
                        if (item.WorkDate.Year == DataChange.WorkDate.Year)
                        {
                            if (item.udHourByYear != null)
                            {
                                item.udHourByYear = item.udHourByYear + denta;
                            }
                        }

                        lstReturn.Add(item);
                    }
                    // Cần bind lại Gird sau khi update
                    #endregion
                }

                // Lấy nhân viên ko thuộc edit list add vào return
                List <Guid> _lstProId = lstReturn.Select(s => s.ProfileID).Distinct().ToList();
                var         temp      = TotalAtt_OvertimeModel.Where(d => !_lstProId.Contains(d.ProfileID)).ToList();
                if (temp != null && temp.Count > 0)
                {
                    lstReturn.AddRange(temp);
                }

                foreach (var rs in updatedAtt_OvertimeModel)
                {
                    var lstUp = TotalAtt_OvertimeModel.Where(d => d.ProfileID == rs.ProfileID && d.WorkDate.Date < rs.WorkDate.Date).ToList();
                    if (lstUp != null && lstUp.Count > 0)
                    {
                        lstReturn.AddRange(lstUp);
                    }
                }
            }

            DataSourceRequest request = new DataSourceRequest()
            {
                Page     = 1,
                PageSize = 50
            };
            return(Json(lstReturn.ToDataSourceResult(request)));
        }
示例#17
0
 public ActionResult GetOvertimeList([DataSourceRequest] DataSourceRequest request, Att_OvertimeModel model123)
 {
     return(View());
 }
示例#18
0
 public ActionResult Save([Bind(Prefix = "models")] List <Att_OvertimeModel> attOvertime, [Bind(Prefix = "params")] Att_OvertimeModel model)
 {
     model = Validate <Att_OvertimeModel>(model, "Att_Overtime");
     if (!string.IsNullOrEmpty(model.ActionStatus))
     {
         if (attOvertime == null || attOvertime.Count() <= 0)
         {
             attOvertime = new List <Att_OvertimeModel>();
             if (model != null)
             {
                 attOvertime.Add(model);
             }
         }
         if (attOvertime != null)
         {
             foreach (var item in attOvertime)
             {
                 item.WorkDate     = Common.JoinTimeInDate(item.WorkDate, item.WorkDateTime);
                 item.WorkDateRoot = item.WorkDate;
                 ActionService service = new ActionService(UserLogin);
                 service.UpdateOrCreate <Att_OvertimeEntity, Att_OvertimeModel>(item);
             }
         }
     }
     return(Json(attOvertime));
 }