Пример #1
0
        /// <summary>
        /// 删除工时
        /// </summary>
        /// <param name="batchId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool DeleteWorkEntry(long batchId, long userId)
        {
            var weList = dal.FindListBySql($"select * from sdk_work_entry where batch_id={batchId} and delete_time=0");

            if (weList.Count == 0)
            {
                return(false);
            }

            int  type;
            long id;

            if (!GetWorkEntryType(batchId, out type, out id))
            {
                return(false);
            }

            bool rtn     = true;
            var  bll     = new TimeOffPolicyBLL();
            var  taskbll = new TaskBLL();
            tst_timeoff_balance_dal balDal = new tst_timeoff_balance_dal();
            string reason;

            foreach (var we in weList)
            {
                if (type == 1)  // 常规工时
                {
                    we.delete_time    = Tools.Date.DateHelper.ToUniversalTimeStamp();
                    we.delete_user_id = userId;
                    dal.Update(we);
                    OperLogBLL.OperLogDelete <sdk_work_entry>(we, we.id, userId, DicEnum.OPER_LOG_OBJ_CATE.SDK_WORK_ENTRY, "删除工时");

                    if (we.task_id == (long)CostCode.Sick)  // 病假需要在假期余额表删除记录
                    {
                        bll.UpdateTimeoffBalance(we.resource_id.Value, Tools.Date.DateHelper.TimeStampToUniversalDateTime(we.start_time.Value), (CostCode)we.task_id);
                        //var balance = bll.UpdateTimeoffBalance((long)we.resource_id, Tools.Date.DateHelper.TimeStampToDateTime((long)we.start_time), (decimal)we.hours_billed);
                        //balDal.ExecuteSQL($"delete from tst_timeoff_balance where object_id={we.id}");
                    }
                }
                else if (type == 2) // 休假请求
                {
                    bll.CancleTimeoffRequest(we.timeoff_request_id.Value, userId);
                }
                else    // 任务工时和工单工时
                {
                    if (!taskbll.DeleteEntry(we.id, userId, out reason))
                    {
                        rtn = false;
                    }
                }
            }

            return(rtn);
        }
Пример #2
0
        /// <summary>
        /// 取消休假请求
        /// </summary>
        /// <param name="context"></param>
        private void CancleTimeoffRequest(HttpContext context)
        {
            long id = long.Parse(context.Request.QueryString["id"]);

            context.Response.Write(new Tools.Serialize().SerializeJson(bll.CancleTimeoffRequest(id, LoginUserId)));
        }