示例#1
0
        /// <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);
        }
示例#2
0
        /// <summary>
        /// </summary>
        public List <OutApplication> GetAllOutApplicationByAccountID(int accountID)
        {
            List <OutApplication> applicationList = new List <OutApplication>();
            SqlCommand            cmd             = new SqlCommand();

            cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = accountID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetAllOutApplicationByAccountID", cmd))
            {
                while (sdr.Read())
                {
                    Account account = new Account();
                    account.Id = Convert.ToInt32(sdr[_DbAccountID]);
                    OutApplication application =
                        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]),
                                           GetOutApplicationItemByOutApplicationID(Convert.ToInt32(sdr[_DbPKID])),
                                           sdr[_DbOutLocation].ToString(),
                                           OutType.GetOutTypeByID(Convert.ToInt32(sdr[_DbOutType])));
                    applicationList.Add(application);
                }
            }
            return(applicationList);
        }
        /// <summary>
        /// </summary>
        public OutApplication GetOutApplicationByOutApplicationID(int pKID)
        {
            OutApplication outapplication = _OutApplicationDal.GetOutApplicationByOutApplicationID(pKID);

            outapplication.Account = _AccountBll.GetAccountById(outapplication.Account.Id);
            return(outapplication);
        }
示例#4
0
        public List <OutApplication> GetConfirmHistroy(int accountID, DateTime fromTime, DateTime toTime)
        {
            List <OutApplication> iRet = new List <OutApplication>();
            SqlCommand            cmd  = new SqlCommand();

            cmd.Parameters.Add(_OperatorID, SqlDbType.Int).Value = accountID;
            cmd.Parameters.Add(_From, SqlDbType.DateTime).Value  = fromTime;
            cmd.Parameters.Add(_To, SqlDbType.DateTime).Value    = toTime;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetOutConfirmHistroy", cmd))
            {
                while (sdr.Read())
                {
                    Account account = new Account();
                    account.Id = Convert.ToInt32(sdr[_DbAccountID]);
                    OutApplication application =
                        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]),
                                           GetOutApplicationItemByOutApplicationID(Convert.ToInt32(sdr[_DbPKID])),
                                           sdr[_DbOutLocation].ToString(),
                                           OutType.GetOutTypeByID(Convert.ToInt32(sdr[_DbOutType])));
                    iRet.Add(application);
                }
                return(iRet);
            }
        }
示例#5
0
 private void InitPresenter(bool ispostback)
 {
     _View.ReasonMessage      = string.Empty;
     _View.ResultMessage      = string.Empty;
     _View.OutLocationMessage = string.Empty;
     if (!ispostback)
     {
         OutApplication outApplication =
             _IOutApplication.GetOutApplicationByOutApplicationID(_View.ApplicationID);
         _View.OutType             = outApplication.OutType;
         _View.EmployeeName        = outApplication.Account.Name;
         _View.EmployeeID          = outApplication.Account.Id;
         _View.ApplicationItemList = outApplication.Item;
         _View.TimeSpan            = outApplication.FromDate + " ~ " + outApplication.ToDate;
         _View.CostTime            = outApplication.CostTime.ToString();
         _View.OutLocation         = outApplication.OutLocation;
         _View.Reason        = outApplication.Reason;
         _View.SubmitDate    = outApplication.SubmitDate;
         _View.btnOKText     = "暂  存";
         _View.btnCancelText = "提  交";
         _View.OperationType = "修改外出";
         _View.SetReadOnly   = false;
         if (outApplication.IfAutoCancel)
         {
             _View.Remind = "注:当前外出单已有提交记录,如果再次编辑,系统将自动取消之前的所有流程,并以编辑后的信息为准重新进行“暂存”/“提交”操作。";
         }
     }
 }
 public void SetCanChangeAdjust(OutApplication outApplication)
 {
     foreach (OutApplicationItem item in outApplication.Item)
     {
         item.CanChangeAdjust = new OutApplicationUtility().CanChangeAdjust(outApplication.DiyProcess, item);
     }
 }
 private void InitPresenter(bool ispostback)
 {
     AttachViewEvent();
     _View.ReasonMessage      = string.Empty;
     _View.ResultMessage      = string.Empty;
     _View.OutLocationMessage = string.Empty;
     _View.NotCalculate       = true;
     if (!ispostback)
     {
         GetFlowList();
         OutApplication outApplication =
             _IOutApplication.GetOutApplicationByOutApplicationID(_View.ApplicationID);
         _View.EmployeeName        = outApplication.Account.Name;
         _View.EmployeeID          = outApplication.Account.Id;
         _View.ApplicationItemList = outApplication.Item;
         _View.TimeSpan            = outApplication.FromDate + " ~ " + outApplication.ToDate;
         _View.CostTime            = outApplication.CostTime.ToString();
         _View.OutLocation         = outApplication.OutLocation;
         _View.Reason        = outApplication.Reason;
         _View.SubmitDate    = outApplication.SubmitDate;
         _View.OutType       = outApplication.OutType;
         _View.OperationType = "外出详情";
         _View.btnOKText     = "确  定";
         _View.btnCancelText = "取  消";
         _View.SetReadOnly   = true;
     }
 }
示例#8
0
        /// <summary>
        ///
        /// </summary>
        public OutApplication GetOutApplicationByOutApplicationID(int pKID)
        {
            OutApplication application = null;
            SqlCommand     cmd         = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = pKID;

            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetOutApplicationByOutApplicationID", cmd))
            {
                while (sdr.Read())
                {
                    List <OutApplicationItem> applicationItem =
                        GetOutApplicationItemByOutApplicationID(Convert.ToInt32(sdr[_DbPKID]));
                    Account account = new Account();
                    account.Id  = Convert.ToInt32(sdr[_DbAccountID]);
                    application =
                        new OutApplication(pKID, account, Convert.ToDateTime(sdr[_DbSubmitDate]),
                                           sdr[_DbReason].ToString(), Convert.ToDateTime(sdr[_DbFrom]),
                                           Convert.ToDateTime(sdr[_DbTo]), Convert.ToDecimal(sdr[_DbCostTime]),
                                           applicationItem, sdr[_DbOutLocation].ToString(),
                                           OutType.GetOutTypeByID(Convert.ToInt32(sdr[_DbOutType])));
                    application.DiyProcess = RequestUtility.GetDiyProcess(sdr[_DbDiyProcess].ToString());
                    break;
                }
            }
            return(application);
        }
示例#9
0
        /// <summary>
        /// µÃµ½ËùÓдýÉóºËµÄÇë¼Ùµ¥
        /// </summary>
        /// <returns></returns>
        public List <OutApplication> GetNeedConfirmOutApplication()
        {
            List <OutApplication> iRet = new List <OutApplication>();
            SqlCommand            cmd  = new SqlCommand();

            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetNeedConfirmOutApplication", cmd))
            {
                while (sdr.Read())
                {
                    Account account = new Account();
                    account.Id = Convert.ToInt32(sdr[_DbAccountID]);
                    OutApplication application =
                        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]),
                                           GetOutApplicationItemByOutApplicationID(Convert.ToInt32(sdr[_DbPKID])),
                                           sdr[_DbOutLocation].ToString(),
                                           OutType.GetOutTypeByID(Convert.ToInt32(sdr[_DbOutType])));
                    application.DiyProcess = RequestUtility.GetDiyProcess(sdr[_DbDiyProcess].ToString());
                    iRet.Add(application);
                }
                return(iRet);
            }
        }
示例#10
0
 protected override void Validation()
 {
     _OutApplication = _DalOutApplication.GetOutApplicationByOutApplicationID(_OutApplicationID);
     if (_OutApplication == null)
     {
         HrmisUtility.ThrowException(HrmisUtility._OutApplication_Not_Exit);
     }
 }
示例#11
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>
 /// </summary>
 public ApproveOutApplicationItem(int itemID, int accountID, bool isAgree,
                                  string remark, int outApplicationID, bool isAdjust, decimal adjustHour)
 {
     _Account        = _DalAccountBll.GetAccountById(accountID);
     _OutApplication = _DalOutApplication.GetOutApplicationByOutApplicationID(outApplicationID);
     _ItemID         = itemID;
     _Remark         = remark;
     _IsAgree        = isAgree;
     _IsAdjust       = isAdjust;
     _AdjustHour     = adjustHour;
 }
 /// <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;
 }
示例#14
0
        private void Init()
        {
            OutApplication outApplication =
                _IOutApplication.GetOutApplicationByOutApplicationID(_View.ApplicationID);

            _View.EmployeeName        = outApplication.Account.Name;
            _View.EmployeeID          = outApplication.Account.Id;
            _View.TimeSpan            = outApplication.FromDate + " ~ " + outApplication.ToDate;
            _View.CostTime            = outApplication.CostTime.ToString();
            _View.OutLocation         = outApplication.OutLocation;
            _View.OperationType       = OperationType.Cancel;
            _View.ApproveStatusSource = RequestUtility.GetCancelChose();
            _View.Reason = outApplication.Reason;
            _View.ApplicationItemList = outApplication.Item;
            _View.OutType             = outApplication.OutType;
        }
示例#15
0
        /// <summary>
        /// </summary>
        public int UpdateOutApplication(OutApplication outapplication)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value                  = outapplication.PKID;
            cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value             = outapplication.Account.Id;
            cmd.Parameters.Add(_SubmitDate, SqlDbType.DateTime).Value       = outapplication.SubmitDate;
            cmd.Parameters.Add(_From, SqlDbType.DateTime).Value             = outapplication.FromDate;
            cmd.Parameters.Add(_To, SqlDbType.DateTime).Value               = outapplication.ToDate;
            cmd.Parameters.Add(_CostTime, SqlDbType.Decimal).Value          = outapplication.CostTime;
            cmd.Parameters.Add(_Reason, SqlDbType.Text).Value               = outapplication.Reason;
            cmd.Parameters.Add(_OutLocation, SqlDbType.NVarChar, 250).Value = outapplication.OutLocation;
            cmd.Parameters.Add(_OutType, SqlDbType.Int).Value               = outapplication.OutType.ID;
            cmd.Parameters.Add(_DiyProcess, SqlDbType.Text).Value           =
                RequestUtility.DiyProcessToString(outapplication.DiyProcess);
            return(SqlHelper.ExecuteNonQuery("OutApplicationUpdate", cmd));
        }
示例#16
0
        public List <OutApplication> GetOutApplicationDetailByEmployee(int accountID, DateTime date)
        {
            List <OutApplication> applicationList = new List <OutApplication>();
            SqlCommand            cmd             = new SqlCommand();

            cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = accountID;
            cmd.Parameters.Add(_Date, SqlDbType.DateTime).Value = date;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetOutApplicationDetailByEmployee", cmd))
            {
                while (sdr.Read())
                {
                    OutApplication application = GetOutApplicationByOutApplicationID(Convert.ToInt32(sdr[_DbPKID]));
                    applicationList.Add(application);
                }
            }
            return(applicationList);
        }
示例#17
0
        public OutApplication OutCollector(RequestStatus status)
        {
            Account account = new Account(_View.EmployeeID, "", _View.EmployeeName);
            List <OutApplicationItem> applicationitems = _View.ApplicationItemList;

            foreach (OutApplicationItem item in applicationitems)
            {
                item.Status = status;
            }
            OutApplication outApplicatin =
                new OutApplication(_View.ApplicationID, account, _View.SubmitDate, _View.Reason,
                                   GetFromDate(applicationitems),
                                   GetToDate(applicationitems),
                                   GetCostTime(applicationitems),
                                   applicationitems, _View.OutLocation, _View.OutType);

            return(outApplicatin);
        }
示例#18
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);
            }
        }
        /// <summary>
        ///
        /// </summary>
        public static string BuildBody(OutApplication outApplication)
        {
            StringBuilder mailContent = new StringBuilder();

            mailContent.AppendFormat("外出员工:{0}", outApplication.Account.Name);
            mailContent.Append("<br/>");
            mailContent.AppendFormat("外出地点:{0}", outApplication.OutLocation);
            mailContent.Append("<br/>");
            mailContent.AppendFormat("外出理由:{0}", outApplication.Reason);
            mailContent.Append("<br/>");
            mailContent.AppendFormat("子项:");
            mailContent.Append("<br />");
            foreach (OutApplicationItem item in outApplication.Item)
            {
                mailContent.AppendFormat("从{0}到{1},外出{2}小时,状态为{3}", item.FromDate, item.ToDate, item.CostTime, RequestStatus.FindRequestStatus(item.Status.Id).Name);
                mailContent.Append("<br />");
            }
            return(mailContent.ToString());
        }
示例#20
0
        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);
        }
示例#21
0
        /// <summary>
        ///
        /// </summary>
        public List <OutApplication> GetOutApplicationByCondition(int employeeID, DateTime formTime, DateTime toTime,
                                                                  RequestStatus status, OutType type)
        {
            List <OutApplication> applicationList = new List <OutApplication>();
            SqlCommand            cmd             = new SqlCommand();

            cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = employeeID;
            cmd.Parameters.Add(_From, SqlDbType.DateTime).Value = formTime;
            cmd.Parameters.Add(_To, SqlDbType.DateTime).Value   = toTime;
            cmd.Parameters.Add(_Status, SqlDbType.Int).Value    = status.Id;
            cmd.Parameters.Add(_OutType, SqlDbType.Int).Value   = type.ID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetOutApplicationByCondition", cmd))
            {
                while (sdr.Read())
                {
                    OutApplication application = GetOutApplicationByOutApplicationID(Convert.ToInt32(sdr[_DbPKID]));
                    applicationList.Add(application);
                }
            }
            return(applicationList);
        }
 /// <summary>
 /// </summary>
 public ValidateRequestItemRepeat(OutApplication outApplication, bool isAdd)
 {
     _IsAdd            = isAdd;
     _Request          = new Request(outApplication);
     _IsOutJoinToCheck = true;
 }
示例#23
0
 /// <summary>
 ///
 /// </summary>
 public OutConfirmMail(int outApplicationId)
 {
     _OutApplication         = _OutApplicationDal.GetOutApplicationByOutApplicationID(outApplicationId);
     _OutApplication.Account = _AccountBll.GetAccountById(_OutApplication.Account.Id);
 }
示例#24
0
 /// <summary>
 ///
 /// </summary>
 public AddOutApplication(OutApplication outapplication, List <Account> ccList)
 {
     _OutApplication = outapplication;
     _CCList         = ccList;
 }
        /// <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);
        }
示例#26
0
 /// <summary>
 /// test
 /// </summary>
 public AddOutApplication(OutApplication outapplication, List <Account> ccList, IOutApplication mockDal)
     : this(outapplication, ccList)
 {
     _OutApplicationDal = mockDal;
 }
示例#27
0
 /// <summary>
 ///
 /// </summary>
 public OutErrorMail(int applicationID)
 {
     _OutApplication         = _OutApplicationDal.GetOutApplicationByOutApplicationID(applicationID);
     _OutApplication.Account = _AccountBll.GetAccountById(_OutApplication.Account.Id);
     _Accounts = _GetDiyProcess.GetHRPrincipalByAccountID(_OutApplication.Account.Id);
 }
 /// <summary>
 ///
 /// </summary>
 public UpdateOutApplication(OutApplication outapplication, List <Account> ccList)
 {
     _OutApplication    = outapplication;
     _CCList            = ccList;
     _OldOutApplication = _OutApplicationDal.GetOutApplicationByOutApplicationID(outapplication.PKID);
 }
示例#29
0
 /// <summary>
 ///
 /// </summary>
 public OutConfirmPhone(int outApplicationId, int itemid)
 {
     _OutApplication         = _OutApplicationDal.GetOutApplicationByOutApplicationID(outApplicationId);
     _OutApplicationItem     = _OutApplicationDal.GetOutApplicationItemByItemID(itemid);
     _OutApplication.Account = _AccountBll.GetAccountById(_OutApplication.Account.Id);
 }
示例#30
0
 /// <summary>
 /// </summary>
 public OutSubmitPhone(int outApplicationId)
 {
     _OutApplication         = _OutApplicationDal.GetOutApplicationByOutApplicationID(outApplicationId);
     _OutApplication.Account = _AccountBll.GetAccountById(_OutApplication.Account.Id);
 }