Esempio n. 1
0
 /// <summary>
 ///
 /// </summary>
 protected override void ExcuteSelf()
 {
     try
     {
         DiyStep currentStep = _PositionApplication.DiyProcess.FindCancelStep();
         DiyStep nextStep    = _PositionApplication.DiyProcess.FindCancelNextStep();
         using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
         {
             _PositionApplicationDal.UpdatePositionApplicationStatusByPositionApplicationID(_PositionApplicationID,
                                                                                            _RequestStatus, nextStep.DiyStepID);
             PositionApplicationFlow flow = new PositionApplicationFlow(0, _PositionApplicationID,
                                                                        new Account(_OperatorID, "", ""),
                                                                        DateTime.Now, _RequestStatus, _Reason, _PositionApplication);
             _PositionApplicationDal.InsertPositionApplicationFlow(flow);
             ts.Complete();
         }
         List <string> accounts =
             new GetDiyProcess(_DalEmployeeDiyProcess).GetAccountMailListByDiyProcessIDAccountID(
                 currentStep, _PositionApplication.Account.Id);
         new PositionApplicationMailAndPhoneDelegate().CancelMail(_PositionApplication.PKID, accounts, nextStep);
     }
     catch
     {
         BllUtility.ThrowException(BllExceptionConst._DbError);
     }
 }
        public PositionApplicationViewModel(PositionApplicationFlow positionApplicationFlow)
        {
            _PositionApplicationFlow = positionApplicationFlow;
            _PositionApplication     = _PositionApplicationFlow.Detail ?? new PositionApplication();
            _Position = _PositionApplication.Position ?? new Position();

            _PKID = _PositionApplicationFlow.PKID.ToString();
        }
 public PositionApplicationViewModel(PositionApplication positionApplication)
 {
     _PositionApplicationFlow =
         new PositionApplicationFlow(0, 0, new Account(-9, "", ""), DateTime.Now, RequestStatus.Approving, "",
                                     null);
     _PositionApplication = positionApplication;
     _PKID     = positionApplication.PKID.ToString();
     _Position = _PositionApplication.Position ?? new Position();
 }
        private void AutoCancelPositionApplication()
        {
            _PositionApplication.Status = RequestStatus.ApproveCancelPass;
            PositionApplicationFlow flow =
                new PositionApplicationFlow(0, _PositionApplication.PKID, new Account(-9, "", ""),
                                            DateTime.Now, RequestStatus.ApproveCancelPass,
                                            _PositionApplication.Account.Name + "已经重新编辑职位申请" +
                                            _OldPositionApplication.PKID + ",系统自动批准取消。", _PositionApplication);

            _PositionApplicationDal.InsertPositionApplicationFlow(flow);
        }
Esempio n. 5
0
        /// <summary>
        ///
        /// </summary>
        private void ConfirmItem(out DiyStep cstep, out DiyStep nstep)
        {
            Validation();
            cstep = null;
            nstep = null;
            try
            {
                DiyStep currentStep = _PositionApplication.DiyProcess.FindStep(_PositionApplication.CurrentStep.DiyStepID);
                DiyStep nextStep    = _PositionApplication.DiyProcess.FindNextStep(_PositionApplication.CurrentStep.DiyStepID);
                if (nextStep == null)
                {
                    nextStep = new DiyStep(0, "结束", OperatorType.Others, 0);
                }

                ChangeRequestStatus(nextStep);

                if (_RequestStatus.Id == RequestStatus.ApproveFail.Id ||
                    _RequestStatus.Id == RequestStatus.ApproveCancelFail.Id)
                {
                    nextStep = new DiyStep(0, "结束", OperatorType.Others, 0);
                }

                _PositionApplication.Status = _RequestStatus;
                using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    _PositionApplicationDal.UpdatePositionApplication(_PositionApplication);
                    _PositionApplicationDal.UpdatePositionApplicationStatusByPositionApplicationID(_PositionApplication.PKID,
                                                                                                   _RequestStatus, nextStep.DiyStepID);
                    PositionApplicationFlow flow = new PositionApplicationFlow(0, _PositionApplication.PKID,
                                                                               new Account(_OperatorID, "", ""),
                                                                               DateTime.Now, _RequestStatus, _Reason, _PositionApplication);
                    _PositionApplicationDal.InsertPositionApplicationFlow(flow);
                    ts.Complete();
                }
                new PositionApplicationMailAndPhoneDelegate().ConfirmOperationMail(_PositionApplication, _OperatorID, currentStep, nextStep);
                cstep = currentStep;
                nstep = nextStep;
            }
            catch
            {
                BllUtility.ThrowException(BllExceptionConst._DbError);
            }
        }
        /// <summary>
        /// 修改
        /// </summary>
        protected override void ExcuteSelf()
        {
            try
            {
                using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (_OldPositionApplication.IfAutoCancel)
                    {
                        AutoCancelPositionApplication();
                    }
                    if (_IfSubmit)
                    {
                        _PositionApplication.Status = RequestStatus.Submit;
                        DiyStep currentStep = _PositionApplication.DiyProcess.FindFirstStep();
                        DiyStep nextStep    = _PositionApplication.DiyProcess.FindSecondStep();
                        _PositionApplication.NextStep = nextStep;
                        _PositionApplicationDal.UpdatePositionApplication(_PositionApplication);
                        PositionApplicationFlow flow = new PositionApplicationFlow(0, _PositionApplication.PKID,
                                                                                   _PositionApplication.Account,
                                                                                   DateTime.Now, RequestStatus.Submit, "", _PositionApplication);
                        _PositionApplicationDal.InsertPositionApplicationFlow(flow);

                        List <string> accounts =
                            new GetDiyProcess(_DalEmployeeDiyProcess).GetAccountMailListByDiyProcessIDAccountID(
                                currentStep, _PositionApplication.Account.Id);
                        new PositionApplicationMailAndPhoneDelegate().SubmitOperation(_PositionApplication.PKID, accounts, nextStep);
                    }
                    else
                    {
                        _PositionApplication.Status   = RequestStatus.New;
                        _PositionApplication.NextStep = _PositionApplication.DiyProcess.FindFirstStep();
                        _PositionApplicationDal.UpdatePositionApplication(_PositionApplication);
                    }
                    ts.Complete();
                }
            }
            catch
            {
                HrmisUtility.ThrowException(HrmisUtility._DbError);
            }
        }
Esempio n. 7
0
        public int InsertPositionApplicationFlow(PositionApplicationFlow flow)
        {
            int        pkid;
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.AddWithValue("@PositionAppID", flow.PositionApplicationID);
            cmd.Parameters.AddWithValue("@OperatorID", flow.Account.Id);
            cmd.Parameters.AddWithValue("@Operation", flow.Status.Id);
            cmd.Parameters.AddWithValue("@OperationTime", flow.OperationTime);
            cmd.Parameters.AddWithValue("@Remark", flow.Remark);
            PositionApplication pa = new PositionApplication();

            if (flow.Detail != null && flow.Detail.Position != null)
            {
                pa.Position = flow.Detail.Position;
            }
            cmd.Parameters.AddWithValue("@Detail", EncryptFlowDetail(pa));
            cmd.Parameters.Add("@PKID", SqlDbType.Int).Direction = ParameterDirection.Output;
            SqlHelper.ExecuteNonQueryReturnPKID("InsertPositionApplicationFlow", cmd, out pkid);
            return(pkid);
        }
        /// <summary>
        ///
        /// </summary>
        protected override void ExcuteSelf()
        {
            try
            {
                using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
                {
                    _PositionApplicationDal.UpdatePositionApplicationStatusByPositionApplicationID(_PositionApplicationID,
                                                                                                   _RequestStatus, 0);
                    PositionApplicationFlow flow = new PositionApplicationFlow(0, _PositionApplication.PKID,
                                                                               new Account(_OperatorID, "", ""),
                                                                               DateTime.Now, _RequestStatus, _Reason, _PositionApplication);
                    _PositionApplicationDal.InsertPositionApplicationFlow(flow);

                    ts.Complete();
                }
            }
            catch
            {
                BllUtility.ThrowException(BllExceptionConst._DbError);
            }
        }