/// <summary> /// /// </summary> public List <OutApplicationItem> GetAllOutApplicationForCalendar(int accountID, DateTime from, DateTime to) { List <OutApplicationItem> outApplicationItemList = new List <OutApplicationItem>(); SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = accountID; cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = from; cmd.Parameters.Add(_To, SqlDbType.DateTime).Value = to; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetAllOutApplicationForCalendar", cmd)) { while (sdr.Read()) { OutApplicationItem applicationItem = new OutApplicationItem(Convert.ToInt32(sdr[_DbTOutApplicationItemPKID]), Convert.ToDateTime(sdr[_DbTOutApplicationItemFrom]), Convert.ToDateTime(sdr[_DbTOutApplicationItemTo]), Convert.ToDecimal(sdr[_DbTOutApplicationItemCostTime]), RequestStatus.FindRequestStatus( Convert.ToInt32(sdr[_DbTOutApplicationItemStatus])), OverWorkItem.IntToAdjust(Convert.ToInt32(sdr[_DbTOutApplicationItemAdjust])), Convert.ToDecimal(sdr[_DbTOutApplicationItemAdjustHour])); applicationItem.OutApplicationID = Convert.ToInt32(sdr[_DbTOutApplicationItemOutApplicationID]); outApplicationItemList.Add(applicationItem); } return(outApplicationItemList); } }
///<summary> ///</summary> public void GetHourDesType(OutApplicationItem item, int accountid, out decimal putong, out decimal shuangxiu, out decimal jieri) { jieri = 0m; putong = 0m; shuangxiu = 0m; DateTime from = item.FromDate; DateTime to = item.ToDate; _CalculateDays = new CalculateDays(BllInstance.SpecialDateBllInstance.GetAllSpecialDate(null)); _PlanDutyDetailList = _PlanDutyDal.GetPlanDutyDetailByAccount(accountid, from, to); CalculateOutCityHour calculateOutCityHour = new CalculateOutCityHour(from, to, accountid); calculateOutCityHour.Excute(); foreach (DayAttendance attendance in calculateOutCityHour.DayAttendanceList) { PlanDutyDetail planDutyDetail = PlanDutyDetail.GetPlanDutyDetailByDate(_PlanDutyDetailList, attendance.Date); if (_CalculateDays.IsNationalHoliday(attendance.Date)) { jieri += attendance.Hours; } else if (planDutyDetail.PlanDutyClass.IsWeek) { shuangxiu += attendance.Hours; } else { putong += attendance.Hours; } } }
private List <OutApplicationItem> GetGridViewValue() { List <OutApplicationItem> iRet = new List <OutApplicationItem>(); for (int i = 0; i < gvOutApplication.Rows.Count; i++) { TextBox txtRemark = (TextBox)gvOutApplication.Rows[i].FindControl("txtRemark"); CheckBox chbId = (CheckBox)gvOutApplication.Rows[i].FindControl("chbId"); DropDownList ddlStatus = (DropDownList)gvOutApplication.Rows[i].FindControl("ddlStatus"); DropDownList ddlAdjust = (DropDownList)gvOutApplication.Rows[i].FindControl("ddlAdjust"); TextBox txtAdjustHour = (TextBox)gvOutApplication.Rows[i].FindControl("txtAdjustHour"); if (chbId.Checked) { OutApplicationItem item = new OutApplicationItem(Convert.ToInt32(chbId.Text)); List <OutApplicationFlow> outApplicationFlowList = new List <OutApplicationFlow>(); outApplicationFlowList.Add(new OutApplicationFlow(txtRemark.Text.Trim())); item.OutApplicationFlow = outApplicationFlowList; item.Status = new RequestStatus(Convert.ToInt32(ddlStatus.SelectedValue), ddlStatus.SelectedItem.Value); item.Adjust = ddlAdjust.SelectedIndex == 0; item.AdjustHour = Convert.ToDecimal(txtAdjustHour.Text); iRet.Add(item); } } return(iRet); }
/// <summary> /// </summary> public static bool CancelOneItem(OutApplicationItem item, Account account, string remark, IOutApplication dalOutApplication, OutDiyProcessUtility outDiyProcessUtility, OutApplication outApplication) { item = dalOutApplication.GetOutApplicationItemByItemID(item.ItemID); bool valide = RequestStatus.CanCancelStatus(item.Status); if (valide) { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { RequestStatus status = RequestStatus.Cancelled; if (outApplication.OutType.ID == OutType.InCity.ID || outApplication.OutType.ID == OutType.Train.ID) { status = RequestStatus.ApproveCancelPass; ConfirmMessage confirmmessage = new ConfirmMessage(); confirmmessage.FinishPhoneMessageOperation( new PhoneMessageType(PhoneMessageEnumType.OutApplication, item.ItemID)); valide = false; } dalOutApplication.UpdateOutApplicationItemStatusByItemID(item.ItemID, status); OutApplicationFlow OutApplicationFlow = new OutApplicationFlow(0, account, DateTime.Now, remark, RequestStatus.Cancelled, 1); dalOutApplication.InsertOutApplicationFlow(item.ItemID, OutApplicationFlow); ts.Complete(); } } return(valide); }
/// <summary> /// /// </summary> protected override void Validation() { _OutApplicationItem = _DalOutApplication.GetOutApplicationItemByItemID(_ItemID); if (_OutApplicationItem == null) { HrmisUtility.ThrowException(HrmisUtility._OutApplicationItem_Not_Exit); } }
/// <summary> /// /// </summary> public List <DayAttendance> GetAllCalendarByEmployee(int AccountID, DateTime fromDate, DateTime toDate) { List <DayAttendance> dayAttendance = new List <DayAttendance>(); List <OutApplicationItem> outApplicationItemList = new List <OutApplicationItem>(); List <OutApplicationItem> outApplicationItemFromDal = _OutApplicationDal.GetAllOutApplicationForCalendar(AccountID, fromDate, toDate); foreach (OutApplicationItem item in outApplicationItemFromDal) { OutApplicationItem outApplicationItem = _OutApplicationDal.GetOutApplicationItemByItemID(item.ItemID); item.OutApplicationID = outApplicationItem.OutApplicationID; outApplicationItemList.Add(item); //if (item.Status == RequestStatus.Cancelled || item.Status == RequestStatus.CancelApproving) //{ // OutApplicationItem outApplicationItem = // _OutApplicationDal.GetOutApplicationItemByItemID(item.ItemID); // if (OutApplicationUtility.IsAgreed(outApplicationItem)) // { // outApplicationItemList.Add(item); // } //} //else //{ // outApplicationItemList.Add(item); //} } foreach (OutApplicationItem item in outApplicationItemList) { OutType outType = _OutApplicationDal.GetOutApplicationByOutApplicationID(item.OutApplicationID).OutType; if (outType.ID == OutType.InCity.ID) { string typeName = "外出"; typeName = GetTypeName(item, typeName); CalculateOutHour cal = new CalculateOutHour(item.FromDate, item.ToDate, AccountID, typeName); cal.Excute(); dayAttendance.AddRange(cal.DayAttendanceList); } else if (outType.ID == OutType.OutCity.ID) { string typeName = OutType.OutCity.Name; typeName = GetTypeName(item, typeName); CalculateOutCityHour cal = new CalculateOutCityHour(item.FromDate, item.ToDate, typeName, AccountID); cal.Excute(); dayAttendance.AddRange(cal.DayAttendanceList); } else if (outType.ID == OutType.Train.ID) { string typeName = OutType.Train.Name; typeName = GetTypeName(item, typeName); CalculateOutHour cal = new CalculateOutHour(item.FromDate, item.ToDate, AccountID, typeName); cal.Excute(); dayAttendance.AddRange(cal.DayAttendanceList); } } return(dayAttendance); }
public static List <OutApplicationItem> AddNullItem(List <OutApplicationItem> items) { DateTime now = DateTime.Now; DateTime show = new DateTime(now.Year, now.Month, now.Day, now.Hour, 0, 0); OutApplicationItem item = new OutApplicationItem(-1, show, show, 0, RequestStatus.New, true, 0); items.Add(item); return(items); }
private void SendSubmitToPhone(OutApplicationItem outApplicationItem) { Account phoneToAccount = GetPhoneToAccount(); string contant = BuildBody(_OutApplication, outApplicationItem); ConfirmMessage confirmmessage = new ConfirmMessage(); confirmmessage.SendNewMessage(_OutApplication.Account, phoneToAccount, contant, new PhoneMessageType(PhoneMessageEnumType.OutApplication, outApplicationItem.ItemID)); }
/// <summary> /// /// </summary> public UpdateAdjustRestByOut(OutApplicationItem item, int accountid) { _OutApplicationItem = item; _AccountID = accountid; _AdjustRule = new GetEmployeeAdjustRule().GetAdjustRuleByAccountID(accountid); if (_AdjustRule == null) { _AdjustRule = new AdjustRule(0, "", 0, 0, 0, 0, 0, 0); } }
/// <summary> /// /// </summary> private static string BuildBody(OutApplication outApplication, OutApplicationItem outApplicationItem) { StringBuilder Content = new StringBuilder(); Content.AppendFormat("请审批{0}提交的外出申请,从{2}到{3},共{4}小时,地点{1},理由:{5}", outApplication.Account.Name, outApplication.OutLocation, outApplicationItem.FromDate, outApplicationItem.ToDate, outApplicationItem.CostTime , outApplication.Reason); return(Content.ToString()); }
/// <summary> /// -1 全部;0 新增;1 提交;2 审核不通过;3 审核通过;4 取消请假;5 拒绝取消假期;6 批准取消假期;7 审核中;8 审核取消中 /// </summary> /// <param name="item"></param> /// <param name="typeName"></param> /// <returns></returns> private static string GetTypeName(OutApplicationItem item, string typeName) { if (item.Status == RequestStatus.New || item.Status == RequestStatus.Submit || item.Status == RequestStatus.Approving || item.Status == RequestStatus.CancelApproving || item.Status == RequestStatus.Cancelled) { typeName = typeName + "(" + item.Status.Name + ")"; } return(typeName); }
/// <summary> /// </summary> public ApproveOutApplicationItem(int itemID, int accountID, bool isAgree, string remark) { _Account = _DalAccountBll.GetAccountById(accountID); _OutApplicationItem = _DalOutApplication.GetOutApplicationItemByItemID(itemID); _OutApplication = _DalOutApplication.GetOutApplicationByOutApplicationID(_OutApplicationItem.OutApplicationID); _ItemID = itemID; _Remark = remark; _IsAgree = isAgree; _IsAdjust = _OutApplicationItem.Adjust; _AdjustHour = _OutApplicationItem.AdjustHour; }
/// <summary> /// </summary> public int UpdateOutApplicationItem(int applicationID, OutApplicationItem item) { int pkid; SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = item.ItemID; cmd.Parameters.Add(_OutApplicationID, SqlDbType.Int).Value = applicationID; cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = item.FromDate; cmd.Parameters.Add(_To, SqlDbType.DateTime).Value = item.ToDate; cmd.Parameters.Add(_CostTime, SqlDbType.Decimal).Value = item.CostTime; cmd.Parameters.Add(_Status, SqlDbType.Int).Value = item.Status.Id; cmd.Parameters.Add(_Adjust, SqlDbType.Int).Value = OverWorkItem.AdjustToInt(item.Adjust); cmd.Parameters.Add(_AdjustHour, SqlDbType.Decimal).Value = item.AdjustHour; return(SqlHelper.ExecuteNonQuery("UpdateOutApplicationItem", cmd)); }
///<summary> /// ²éѯÉêÇë ///</summary> ///<param name="employeeID"></param> ///<param name="formTime"></param> ///<param name="toTime"></param> ///<param name="status"></param> ///<returns></returns> #endregion #region item /// <summary> /// </summary> public int InsertOutApplicationItem(int applicationID, OutApplicationItem item) { int pkid; SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output; cmd.Parameters.Add(_OutApplicationID, SqlDbType.Int).Value = applicationID; cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = item.FromDate; cmd.Parameters.Add(_To, SqlDbType.DateTime).Value = item.ToDate; cmd.Parameters.Add(_CostTime, SqlDbType.Decimal).Value = item.CostTime; cmd.Parameters.Add(_Status, SqlDbType.Int).Value = item.Status.Id; cmd.Parameters.Add(_Adjust, SqlDbType.Int).Value = OverWorkItem.AdjustToInt(item.Adjust); cmd.Parameters.Add(_AdjustHour, SqlDbType.Decimal).Value = item.AdjustHour; SqlHelper.ExecuteNonQueryReturnPKID("InsertOutApplicationItem", cmd, out pkid); return(pkid); }
/// <summary> /// /// </summary> public List <OutApplication> GetOutApplicationByAccountAndRelatedDate(int accountID, DateTime from, DateTime to) { List <OutApplication> outApplicationList = new List <OutApplication>(); SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = accountID; cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = from; cmd.Parameters.Add(_To, SqlDbType.DateTime).Value = to; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetAllOutApplicationForCalendar", cmd)) { while (sdr.Read()) { OutApplication outApplication = OutApplication.FindOverWorkByPKID(outApplicationList, Convert.ToInt32(sdr[_DbPKID])); if (outApplication == null) { Account account = new Account(); account.Id = Convert.ToInt32(sdr[_DbAccountID]); outApplication = new OutApplication(Convert.ToInt32(sdr[_DbPKID]), account, Convert.ToDateTime(sdr[_DbSubmitDate]), sdr[_DbReason].ToString(), Convert.ToDateTime(sdr[_DbFrom]), Convert.ToDateTime(sdr[_DbTo]), Convert.ToDecimal(sdr[_DbCostTime]), new List <OutApplicationItem>(), sdr[_DbOutLocation].ToString(), OutType.GetOutTypeByID(Convert.ToInt32(sdr[_DbOutType]))); outApplicationList.Add(outApplication); } OutApplicationItem applicationItem = new OutApplicationItem(Convert.ToInt32(sdr[_DbTOutApplicationItemPKID]), Convert.ToDateTime(sdr[_DbTOutApplicationItemFrom]), Convert.ToDateTime(sdr[_DbTOutApplicationItemTo]), Convert.ToDecimal(sdr[_DbTOutApplicationItemCostTime]), RequestStatus.FindRequestStatus( Convert.ToInt32(sdr[_DbTOutApplicationItemStatus])), OverWorkItem.IntToAdjust(Convert.ToInt32(sdr[_DbTOutApplicationItemAdjust])), Convert.ToDecimal(sdr[_DbTOutApplicationItemAdjustHour])); applicationItem.OutApplicationID = Convert.ToInt32(sdr[_DbTOutApplicationItemOutApplicationID]); outApplication.Item.Add(applicationItem); } return(outApplicationList); } }
/// <summary> /// /// </summary> public List <DayAttendance> GetCalendarByEmployee(int AccountID, DateTime fromDate, DateTime toDate) { List <DayAttendance> dayAttendance = new List <DayAttendance>(); List <OutApplicationItem> outApplicationItemList = new List <OutApplicationItem>(); List <OutApplicationItem> outApplicationItemFromDal = _OutApplicationDal.GetOutApplicationForCalendar(AccountID, fromDate, toDate); foreach (OutApplicationItem item in outApplicationItemFromDal) { OutApplicationItem outApplicationItem = _OutApplicationDal.GetOutApplicationItemByItemID(item.ItemID); item.OutApplicationID = outApplicationItem.OutApplicationID; if (item.Status == RequestStatus.Cancelled || item.Status == RequestStatus.CancelApproving) { if (OutApplicationUtility.IsAgreed(outApplicationItem)) { outApplicationItemList.Add(item); } } else { outApplicationItemList.Add(item); } } foreach (OutApplicationItem item in outApplicationItemList) { OutType outType = _OutApplicationDal.GetOutApplicationByOutApplicationID(item.OutApplicationID).OutType; if (outType.ID == OutType.InCity.ID || outType.ID == OutType.OutCity.ID) { CalculateOutHour cal = new CalculateOutHour(item.FromDate, item.ToDate, AccountID); cal.Excute(); dayAttendance.AddRange(cal.DayAttendanceList); } else if (outType.ID == OutType.OutCity.ID) { CalculateOutCityHour cal = new CalculateOutCityHour(item.FromDate, item.ToDate, AccountID); cal.Excute(); dayAttendance.AddRange(cal.DayAttendanceList); } } return(dayAttendance); }
/// <summary> /// /// </summary> public OutApplicationItem GetOutApplicationItemByItemID(int itemID) { OutApplicationItem applicationItem = null; SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = itemID; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetOutApplicationItemByItemID", cmd)) { while (sdr.Read()) { applicationItem = new OutApplicationItem(Convert.ToInt32(sdr[_DbPKID]), Convert.ToDateTime(sdr[_DbFrom]), Convert.ToDateTime(sdr[_DbTo]), Convert.ToDecimal(sdr[_DbCostTime]), RequestStatus.FindRequestStatus(Convert.ToInt32(sdr[_DbStatus])), OverWorkItem.IntToAdjust(Convert.ToInt32(sdr[_DbAdjust])), Convert.ToDecimal(sdr[_DbAdjustHour])); applicationItem.OutApplicationID = Convert.ToInt32(sdr[_DbOutApplicationID]); applicationItem.OutApplicationFlow = GetOutApplicationFlowByItemID(Convert.ToInt32(sdr[_DbPKID])); } } return(applicationItem); }
/// <summary> /// /// </summary> public static bool ApproveOneItem(OutApplicationItem item, bool isAgree, Account account, OutApplication outApplication, string remark, IOutApplication dalOutApplication, OutDiyProcessUtility outDiyProcess, bool isAdjust, bool isChangeAdjust, decimal adjustHour, out Account nextOperator) { if (!isAdjust) { adjustHour = 0; } nextOperator = null; item = dalOutApplication.GetOutApplicationItemByItemID(item.ItemID); item.AdjustHour = adjustHour; bool ans = RequestStatus.CanApproveStatus(item.Status) && account.Id == outDiyProcess.GetNextOperator(outApplication.DiyProcess, item, outApplication.Account.Id).Id; if (ans) { if (!isAgree) { using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { RequestStatus requestStatus = RequestUtility.GetStatus(item.Status, isAgree, 1); dalOutApplication.UpdateOutApplicationItemStatusByItemID(item.ItemID, requestStatus); dalOutApplication.InsertOutApplicationFlow(item.ItemID, new OutApplicationFlow(0, account, DateTime.Now, remark, requestStatus, -1)); nextOperator = null; item.Status = requestStatus; if (outApplication.OutType.ID == OutType.OutCity.ID) { if (isChangeAdjust) { dalOutApplication.UpdateOutApplicationItemAdjustByItemID(item.ItemID, isAdjust, adjustHour); item.Adjust = isAdjust; } new UpdateAdjustRestByOut(item, outApplication.Account.Id).Excute(); } ts.Complete(); } } else { //现在做到第几步,就是上一步加1 int step = outDiyProcess.GetNextStep(item.OutApplicationFlow, outApplication.DiyProcess); RequestStatus requestStatus = RequestUtility.GetStatus(item.Status, isAgree, step); OutApplicationFlow OutApplicationFlow = new OutApplicationFlow(0, account, DateTime.Now, remark, requestStatus, step); using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required)) { dalOutApplication.InsertOutApplicationFlow(item.ItemID, OutApplicationFlow); dalOutApplication.UpdateOutApplicationItemStatusByItemID(item.ItemID, requestStatus); item.Status = requestStatus; if (outApplication.OutType.ID == OutType.OutCity.ID) { if (isChangeAdjust) { dalOutApplication.UpdateOutApplicationItemAdjustByItemID(item.ItemID, isAdjust, adjustHour); item.Adjust = isAdjust; } new UpdateAdjustRestByOut(item, outApplication.Account.Id).Excute(); } ts.Complete(); } nextOperator = outDiyProcess.GetNextOperator(outApplication.DiyProcess, step, outApplication.Account.Id); } } return(ans); }
/// <summary> /// /// </summary> /// <param name="diyProcess"></param> /// <param name="item"></param> /// <param name="accountId">谁都流程</param> /// <returns></returns> public Account GetNextOperator(DiyProcess diyProcess, OutApplicationItem item, int accountId) { int nowStep = item.OutApplicationFlow[item.OutApplicationFlow.Count - 1].Step; return(_RequestFindOperator.GetNextOperator(diyProcess, nowStep, accountId)); }
/// <summary> /// /// </summary> public OutCityUpdateAdjust(OutApplicationItem item, Account beAdjustAccount) { _BeAdjustAccount = beAdjustAccount; _OutApplicationItem = item; _AdjustRule = new GetEmployeeAdjustRule().GetAdjustRuleByAccountID(beAdjustAccount.Id); }
private static void CreateOutApplicationInfoInADay(List <CalendarADay> retList, DateTime date, decimal hour, OutApplication originalData, OutApplicationItem originalDataItem, DateTime from, DateTime to) { CalendarADay calendarADay = CalendarADay.CreateOrGetCalendarADayByDate(retList, date.Date); string typeName = originalData.OutType.Name; // -1 全部;0 新增;1 提交;2 审核不通过;3 审核通过;4 取消请假;5 拒绝取消假期;6 批准取消假期;7 审核中;8 审核取消中 if (originalDataItem.Status == RequestStatus.New || originalDataItem.Status == RequestStatus.Submit || originalDataItem.Status == RequestStatus.Approving || originalDataItem.Status == RequestStatus.CancelApproving || originalDataItem.Status == RequestStatus.Cancelled) { typeName = typeName + "(" + originalDataItem.Status.Name + ")"; } DayItem day = new DayItem(); day.ObjectID = originalDataItem.ItemID; day.CType = CalendarShowType.Out; day.Start = from; day.End = to; day.DayDetail = typeName + " " + Convert.ToSingle(hour) + "小时<br>地点:" + originalData.OutLocation + "<br>理由:" + originalData.Reason; calendarADay.DayItems.Add(day); MonthItem month = new MonthItem(); month.ObjectID = originalDataItem.ItemID; month.CType = CalendarShowType.Out; month.Title = typeName + " " + Convert.ToSingle(hour) + "小时"; month.Date = date; month.Detail = typeName + " 时段:" + originalDataItem.FromDate.ToShortDateString() + " " + originalDataItem.FromDate.ToShortTimeString() + "--" + originalDataItem.ToDate.ToShortDateString() + " " + originalDataItem.ToDate.ToShortTimeString() + " 外出时间(小时):" + originalDataItem.CostTime + " 地点:" + originalData.OutLocation + " 理由:" + originalData.Reason; calendarADay.MonthItems.Add(month); Utility.Clean(calendarADay); }
/// <summary> /// /// </summary> public OutConfirmPhone(int outApplicationId, int itemid) { _OutApplication = _OutApplicationDal.GetOutApplicationByOutApplicationID(outApplicationId); _OutApplicationItem = _OutApplicationDal.GetOutApplicationItemByItemID(itemid); _OutApplication.Account = _AccountBll.GetAccountById(_OutApplication.Account.Id); }