/// <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); }
/// <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))); }