Ejemplo n.º 1
0
        public List <OverWorkItem> GetAllOverWorkForCalendar(int accountID, DateTime from, DateTime to)
        {
            List <OverWorkItem> overWorkItemList = new List <OverWorkItem>();
            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("GetAllOverWorkForCalendar", cmd))
            {
                while (sdr.Read())
                {
                    OverWorkItem overworkItem =
                        new OverWorkItem(Convert.ToInt32(sdr[_DbTOverWorkItemPKID]),
                                         Convert.ToDateTime(sdr[_DbTOverWorkItemFrom]),
                                         Convert.ToDateTime(sdr[_DbTOverWorkItemTo]),
                                         Convert.ToDecimal(sdr[_DbTOverWorkItemCostTime]),
                                         RequestStatus.FindRequestStatus(Convert.ToInt32(sdr[_DbTOverWorkItemStatus])),
                                         (OverWorkType)sdr[_DbTOverWorkItemOverWorkType],
                                         OverWorkItem.IntToAdjust(Convert.ToInt32(sdr[_DbTOverWorkItemAdjust])),
                                         Convert.ToDecimal(sdr[_DbTOverWorkItemAdjustHour]));
                    overworkItem.OverWorkID = Convert.ToInt32(sdr[_DbTOverWorkItemOverWorkID]);
                    overWorkItemList.Add(overworkItem);
                }
                return(overWorkItemList);
            }
        }
Ejemplo n.º 2
0
        private List <OverWorkItem> GetGridViewValue()
        {
            List <OverWorkItem> iRet = new List <OverWorkItem>();

            for (int i = 0; i < gvOverWork.Rows.Count; i++)
            {
                TextBox      txtRemark     = (TextBox)gvOverWork.Rows[i].FindControl("txtRemark");
                CheckBox     chbId         = (CheckBox)gvOverWork.Rows[i].FindControl("chbId");
                DropDownList ddlAdjust     = (DropDownList)gvOverWork.Rows[i].FindControl("ddlAdjust");
                DropDownList ddlStatus     = (DropDownList)gvOverWork.Rows[i].FindControl("ddlStatus");
                TextBox      txtAdjustHour = (TextBox)gvOverWork.Rows[i].FindControl("txtAdjustHour");
                if (chbId.Checked)
                {
                    OverWorkItem        item             = new OverWorkItem(Convert.ToInt32(chbId.Text));
                    List <OverWorkFlow> OverWorkFlowList = new List <OverWorkFlow>();
                    OverWorkFlowList.Add(new OverWorkFlow(txtRemark.Text.Trim()));
                    item.OverWorkFlow = OverWorkFlowList;
                    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);
        }
Ejemplo n.º 3
0
 protected override void Validation()
 {
     _OverWorkItem = _OverWorkDal.GetOverWorkItemByItemID(_ItemID);
     if (_OverWorkItem == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._OverWorkItem_Not_Exit);
     }
 }
Ejemplo n.º 4
0
        public static List <OverWorkItem> AddNullItem(List <OverWorkItem> items)
        {
            DateTime     now  = DateTime.Now;
            DateTime     show = new DateTime(now.Year, now.Month, now.Day, now.Hour, 0, 0);
            OverWorkItem item = new OverWorkItem(-1, show, show, 0, RequestStatus.New, OverWorkType.PuTong, true, 0);

            items.Add(item);
            return(items);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// </summary>
        public int UpdateOverWorkItemAdjustByItemID(int itemID, bool isAdjust, decimal adjustHour)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value           = itemID;
            cmd.Parameters.Add(_Adjust, SqlDbType.Int).Value         = OverWorkItem.AdjustToInt(isAdjust);
            cmd.Parameters.Add(_AdjustHour, SqlDbType.Decimal).Value = adjustHour;
            return(SqlHelper.ExecuteNonQuery("UpdateOverWorkItemAdjustByItemID", cmd));
        }
Ejemplo n.º 6
0
        private void SendSubmitToPhone(OverWorkItem item)
        {
            Account        phoneToAccount = GetPhoneToAccount();
            string         contant        = BuildBody(_OverWork, item);
            ConfirmMessage confirmmessage = new ConfirmMessage();

            confirmmessage.SendNewMessage(_OverWork.Account, phoneToAccount, contant,
                                          new PhoneMessageType(PhoneMessageEnumType.OverWork, item.ItemID));
        }
 /// <summary>
 ///
 /// </summary>
 public UpdateAdjustRestByOverWork(OverWorkItem item, int accountid)
 {
     _OverWorkItem = item;
     _AccountID    = accountid;
     _AdjustRule   = new GetEmployeeAdjustRule().GetAdjustRuleByAccountID(accountid);
     if (_AdjustRule == null)
     {
         _AdjustRule = new AdjustRule(0, "", 0, 0, 0, 0, 0, 0);
     }
 }
Ejemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        private static string BuildBody(OverWork overWork, OverWorkItem item)
        {
            StringBuilder Content = new StringBuilder();

            Content.AppendFormat("请审批{0}提交的{6}申请,从{2}到{3},共{4}小时,项目:{1},理由:{5}",
                                 overWork.Account.Name, overWork.ProjectName, item.FromDate,
                                 item.ToDate, item.CostTime
                                 , overWork.Reason, OverWorkUtility.GetOverWorkTypeName(item.OverWorkType));
            return(Content.ToString());
        }
Ejemplo n.º 9
0
 /// <summary>
 /// </summary>
 public ApproveOverWorkItem(int itemID, int accountID, bool isAgree, string remark)
 {
     _Account      = _DalAccountBll.GetAccountById(accountID);
     _OverWorkItem = _OverWorkDal.GetOverWorkItemByItemID(itemID);
     _OverWork     = _OverWorkDal.GetOverWorkByOverWorkID(_OverWorkItem.OverWorkID);
     _ItemID       = itemID;
     _Remark       = remark;
     _IsAgree      = isAgree;
     _IsAdjust     = _OverWorkItem.Adjust;
     _AdjustHour   = _OverWorkItem.AdjustHour;
 }
Ejemplo n.º 10
0
        /// <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));
        }
Ejemplo n.º 11
0
        ///<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);
        }
Ejemplo n.º 12
0
        /// <summary>
        ///
        /// </summary>
        public List <DayAttendance> GetCalendarByEmployee(int AccountID, DateTime fromDate, DateTime toDate)
        {
            List <DayAttendance> dayAttendanceList   = new List <DayAttendance>();
            List <OverWorkItem>  OverWorkItemList    = new List <OverWorkItem>();
            List <OverWorkItem>  OverWorkItemFromDal =
                _OverWorkDal.GetOverWorkForCalendar(AccountID, fromDate, toDate);

            foreach (OverWorkItem item in OverWorkItemFromDal)
            {
                if (item.Status == RequestStatus.Cancelled || item.Status == RequestStatus.CancelApproving)
                {
                    OverWorkItem OverWorkItem =
                        _OverWorkDal.GetOverWorkItemByItemID(item.ItemID);
                    if (OverWorkUtility.IsAgreed(OverWorkItem))
                    {
                        OverWorkItemList.Add(item);
                    }
                }
                else
                {
                    OverWorkItemList.Add(item);
                }
            }
            //由于加班的一项只能是一天,所以直接加就可以了
            foreach (OverWorkItem item in OverWorkItemList)
            {
                DayAttendance dayAttendance;
                if (!item.Adjust)
                {
                    dayAttendance =
                        new DayAttendance(-1, OverWorkUtility.GetOverWorkTypeNotAdjustName(item.OverWorkType),
                                          item.CostTime, 0, item.FromDate, "", CalendarType.OverTime);
                    dayAttendance.FromTime = fromDate;
                    dayAttendance.ToTime   = toDate;
                    dayAttendanceList.Add(dayAttendance);
                }
                dayAttendance =
                    new DayAttendance(-1, OverWorkUtility.GetOverWorkTypeName(item.OverWorkType), item.CostTime, 0,
                                      item.FromDate, "", CalendarType.OverTime);
                dayAttendance.FromTime = fromDate;
                dayAttendance.ToTime   = toDate;
                dayAttendanceList.Add(dayAttendance);
            }
            return(dayAttendanceList);
        }
        /// <summary>
        ///
        /// </summary>
        private static decimal GetMagnification(OverWorkItem overWorkItem, AdjustRule adjustRule)
        {
            decimal magnification = 0;

            if (overWorkItem.OverWorkType == OverWorkType.PuTong)
            {
                magnification = adjustRule.OverWorkPuTongRate;
            }
            else if (overWorkItem.OverWorkType == OverWorkType.ShuangXiu)
            {
                magnification = adjustRule.OverWorkShuangXiuRate;
            }
            else if (overWorkItem.OverWorkType == OverWorkType.JieRi)
            {
                magnification = adjustRule.OverWorkJieRiRate;
            }
            return(magnification);
        }
Ejemplo n.º 14
0
        /// <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);
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// </summary>
        public static bool CancelOneItem(OverWorkItem item, Account account, string remark,
                                         IOverWork dalOverWork, OverWorkDiyProcessUtility OverWorkDiyProcessUtility)
        {
            item = dalOverWork.GetOverWorkItemByItemID(item.ItemID);
            bool valide = RequestStatus.CanCancelStatus(item.Status);

            if (valide)
            {
                using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    dalOverWork.UpdateOverWorkItemStatusByItemID(item.ItemID, RequestStatus.Cancelled);
                    OverWorkFlow OverWorkFlow =
                        new OverWorkFlow(0, account, DateTime.Now, remark,
                                         RequestStatus.Cancelled, 1);
                    dalOverWork.InsertOverWorkFlow(item.ItemID, OverWorkFlow);
                    ts.Complete();
                }
            }
            return(valide);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// </summary>
        public OverWorkItem GetOverWorkItemByItemID(int itemID)
        {
            OverWorkItem overworkItem = null;
            SqlCommand   cmd          = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = itemID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetOverWorkItemByItemID", cmd))
            {
                while (sdr.Read())
                {
                    overworkItem =
                        new OverWorkItem(Convert.ToInt32(sdr[_DbPKID]), Convert.ToDateTime(sdr[_DbFrom]),
                                         Convert.ToDateTime(sdr[_DbTo]), Convert.ToDecimal(sdr[_DbCostTime]),
                                         RequestStatus.FindRequestStatus(Convert.ToInt32(sdr[_DbStatus])),
                                         (OverWorkType)sdr[_DbOverWorkType],
                                         OverWorkItem.IntToAdjust(Convert.ToInt32(sdr[_DbAdjust])), Convert.ToDecimal(sdr[_DbAdjustHour]));
                    overworkItem.OverWorkID   = Convert.ToInt32(sdr[_DbOverWorkID]);
                    overworkItem.OverWorkFlow = GetOverWorkFlowByItemID(Convert.ToInt32(sdr[_DbPKID]));
                }
            }
            return(overworkItem);
        }
Ejemplo n.º 17
0
        public List <OverWork> GetOverWorkByAccountAndRelatedDate(int accountID, DateTime from, DateTime to)
        {
            List <OverWork> overWorkList = new List <OverWork>();
            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("GetAllOverWorkForCalendar", cmd))
            {
                while (sdr.Read())
                {
                    OverWork overwork = OverWork.FindOverWorkByPKID(overWorkList, Convert.ToInt32(sdr[_DbPKID]));
                    if (overwork == null)
                    {
                        Account account = new Account();
                        account.Id = Convert.ToInt32(sdr[_DbAccountID]);
                        overwork   =
                            new OverWork(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 <OverWorkItem>(), sdr[_DbProjectName].ToString());
                        overWorkList.Add(overwork);
                    }
                    OverWorkItem overworkItem =
                        new OverWorkItem(Convert.ToInt32(sdr[_DbTOverWorkItemPKID]),
                                         Convert.ToDateTime(sdr[_DbTOverWorkItemFrom]),
                                         Convert.ToDateTime(sdr[_DbTOverWorkItemTo]),
                                         Convert.ToDecimal(sdr[_DbTOverWorkItemCostTime]),
                                         RequestStatus.FindRequestStatus(Convert.ToInt32(sdr[_DbTOverWorkItemStatus])),
                                         (OverWorkType)sdr[_DbTOverWorkItemOverWorkType],
                                         OverWorkItem.IntToAdjust(Convert.ToInt32(sdr[_DbTOverWorkItemAdjust])),
                                         Convert.ToDecimal(sdr[_DbTOverWorkItemAdjustHour]));
                    overworkItem.OverWorkID = Convert.ToInt32(sdr[_DbTOverWorkItemOverWorkID]);
                    overwork.Item.Add(overworkItem);
                }
                return(overWorkList);
            }
        }
Ejemplo n.º 18
0
        /// <summary>
        /// </summary>
        public List <OverWorkItem> GetOverWorkItemByOverWorkID(int overWorkID)
        {
            List <OverWorkItem> applicationList = new List <OverWorkItem>();
            SqlCommand          cmd             = new SqlCommand();

            cmd.Parameters.Add(_OverWorkID, SqlDbType.Int).Value = overWorkID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetOverWorkItemByOverWorkID", cmd))
            {
                while (sdr.Read())
                {
                    OverWorkItem applicationItem =
                        new OverWorkItem(Convert.ToInt32(sdr[_DbPKID]), Convert.ToDateTime(sdr[_DbFrom]),
                                         Convert.ToDateTime(sdr[_DbTo]), Convert.ToDecimal(sdr[_DbCostTime]),
                                         RequestStatus.FindRequestStatus(Convert.ToInt32(sdr[_DbStatus])),
                                         (OverWorkType)sdr[_DbOverWorkType],
                                         OverWorkItem.IntToAdjust(Convert.ToInt32(sdr[_DbAdjust])), Convert.ToDecimal(sdr[_DbAdjustHour]));
                    applicationItem.OverWorkFlow = GetOverWorkFlowByItemID(Convert.ToInt32(sdr[_DbPKID]));
                    applicationList.Add(applicationItem);
                }
            }
            return(applicationList);
        }
        /// <summary>
        /// </summary>
        public bool CanChangeAdjust(DiyProcess diyProcess, OverWorkItem item)
        {
            if (item.Status.Id == RequestStatus.Cancelled.Id || item.Status.Id == RequestStatus.CancelApproving.Id)
            {
                return(false);
            }
            List <OverWorkFlow> flowList = item.OverWorkFlow;

            if (flowList != null && diyProcess != null && diyProcess.DiySteps != null && flowList.Count > 0)
            {
                int step = flowList[flowList.Count - 1].Step;
                if (step == -1)
                {
                    return(false);
                }
                int nowStep = step + 1;
                if (diyProcess.DiySteps[nowStep - 1].Status.Contains("Еїан"))
                {
                    return(true);
                }
            }
            return(false);
        }
Ejemplo n.º 20
0
        /// <summary>
        ///
        /// </summary>
        public List <OutApplicationItem> GetOutApplicationForCalendar(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("GetOutApplicationForCalendar", cmd))
            {
                while (sdr.Read())
                {
                    OutApplicationItem 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]));
                    outApplicationItemList.Add(applicationItem);
                }
                return(outApplicationItemList);
            }
        }
        /// <summary>
        ///
        /// </summary>
        public Account GetNextOperator(DiyProcess diyProcess, OverWorkItem item, int accountId)
        {
            int nowStep = item.OverWorkFlow[item.OverWorkFlow.Count - 1].Step;

            return(_RequestFindOperator.GetNextOperator(diyProcess, nowStep, accountId));
        }
Ejemplo n.º 22
0
 /// <summary>
 ///
 /// </summary>
 public OverWorkConfirmPhone(int overWorkId, int itemID)
 {
     _OverWork         = _OverWorkDal.GetOverWorkByOverWorkID(overWorkId);
     _OverWorkItem     = _OverWorkDal.GetOverWorkItemByItemID(itemID);
     _OverWork.Account = _AccountBll.GetAccountById(_OverWork.Account.Id);
 }
Ejemplo n.º 23
0
        /// <summary>
        /// </summary>
        public bool ApproveOneItem(OverWorkItem item, bool isAgree, Account account,
                                   OverWork overWork, string remark,
                                   IOverWork dalOverWork, OverWorkDiyProcessUtility overWorkDiyProcessUtility,
                                   bool isAdjust, bool isChangeAdjust, decimal adjustHour, out Account nextOperator)
        {
            if (!isAdjust)
            {
                adjustHour = 0;
            }
            nextOperator    = null;
            item            = dalOverWork.GetOverWorkItemByItemID(item.ItemID);
            item.AdjustHour = adjustHour;
            bool valide = RequestStatus.CanApproveStatus(item.Status) &&
                          account.Id ==
                          overWorkDiyProcessUtility.GetNextOperator(overWork.DiyProcess, item, overWork.Account.Id).Id;

            if (valide)
            {
                if (!isAgree)
                {
                    using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                    {
                        RequestStatus requestStatus = RequestUtility.GetStatus(item.Status, isAgree, 1);
                        dalOverWork.UpdateOverWorkItemStatusByItemID(item.ItemID, requestStatus);
                        item.Status = requestStatus;
                        if (isChangeAdjust)
                        {
                            dalOverWork.UpdateOverWorkItemAdjustByItemID(item.ItemID, isAdjust, adjustHour);
                            item.Adjust = isAdjust;
                        }
                        dalOverWork.InsertOverWorkFlow(item.ItemID,
                                                       new OverWorkFlow(0, account,
                                                                        DateTime.Now,
                                                                        remark,
                                                                        requestStatus,
                                                                        -1));

                        new UpdateAdjustRestByOverWork(item, overWork.Account.Id).Excute();
                        ts.Complete();
                    }
                    nextOperator = null;
                }
                else
                {
                    int step =
                        overWorkDiyProcessUtility.GetNextStep(item.OverWorkFlow, overWork.DiyProcess);
                    RequestStatus requestStatus = RequestUtility.GetStatus(item.Status, isAgree, step);
                    OverWorkFlow  OverWorkFlow  =
                        new OverWorkFlow(0, account, DateTime.Now, remark, requestStatus, step);
                    using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                    {
                        dalOverWork.InsertOverWorkFlow(item.ItemID, OverWorkFlow);
                        dalOverWork.UpdateOverWorkItemStatusByItemID(item.ItemID, requestStatus);
                        item.Status = requestStatus;
                        if (isChangeAdjust)
                        {
                            dalOverWork.UpdateOverWorkItemAdjustByItemID(item.ItemID, isAdjust, adjustHour);
                            item.Adjust = isAdjust;
                        }
                        new UpdateAdjustRestByOverWork(item, overWork.Account.Id).Excute();
                        ts.Complete();
                    }
                    nextOperator =
                        overWorkDiyProcessUtility.GetNextOperator(overWork.DiyProcess, step, overWork.Account.Id);
                }
            }
            return(valide);
        }
Ejemplo n.º 24
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="overWorkItem"></param>
 /// <param name="beAdjustAccount">要调整的人</param>
 public OverWorkUpdateAdjust(OverWorkItem overWorkItem, Account beAdjustAccount)
 {
     _OverWorkItem    = overWorkItem;
     _BeAdjustAccount = beAdjustAccount;
     _AdjustRule      = new GetEmployeeAdjustRule().GetAdjustRuleByAccountID(beAdjustAccount.Id);
 }