Beispiel #1
0
        /// <summary>
        /// 作廢 (保留資料)
        /// </summary>
        /// <param name="searchData">金庫物品存取主畫面查詢ViewModel</param>
        /// <param name="data">申請表單查詢顯示區塊ViewModel</param>
        /// <returns></returns>
        public MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> > Invalidate(TreasuryAccessSearchViewModel searchData, TreasuryAccessSearchDetailViewModel data)
        {
            var result = new MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> >();

            result.RETURN_FLAG = false;
            result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription();
            DateTime dt     = DateTime.Now;
            string   logStr = string.Empty;
            //取得流水號
            var _status = Ref.AccessProjectFormStatus.E02.ToString();

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var _TREA_APLY_REC = db.TREA_APLY_REC.FirstOrDefault(x => x.APLY_NO == data.vAPLY_NO);
                if (_TREA_APLY_REC != null)
                {
                    if (_TREA_APLY_REC.LAST_UPDATE_DT > data.vLast_Update_Time)
                    {
                        return(result);
                    }
                    _TREA_APLY_REC.LAST_UPDATE_UID = AccountController.CurrentUserId;
                    _TREA_APLY_REC.LAST_UPDATE_DT  = dt;
                    _TREA_APLY_REC.APLY_STATUS     = _status;
                    logStr += _TREA_APLY_REC.modelToString(logStr);

                    #region 作廢
                    var sampleFactory = new SampleFactory();
                    var getAgenct     = sampleFactory.GetAgenct(EnumUtil.GetValues <Ref.TreaItemType>().First(x => x.ToString() == _TREA_APLY_REC.ITEM_ID));
                    if (getAgenct != null)
                    {
                        var _recover = getAgenct.ObSolete(db, _TREA_APLY_REC.APLY_NO, _TREA_APLY_REC.ACCESS_TYPE, logStr, dt);
                        if (!_recover.Item1) //失敗
                        {
                            return(result);
                        }
                        logStr += _recover.Item2;
                    }
                    else
                    {
                        return(result);
                    }
                    #endregion

                    #region 申請單歷程檔
                    //「取消申請」:新增「E02」申請人刪除的狀態資料。
                    var ARH = new APLY_REC_HIS()
                    {
                        APLY_NO     = _TREA_APLY_REC.APLY_NO,
                        APLY_STATUS = _status,
                        PROC_UID    = searchData.vCreateUid,
                        PROC_DT     = dt
                    };
                    logStr += ARH.modelToString(logStr);

                    db.APLY_REC_HIS.Add(ARH);

                    #endregion

                    var validateMessage = db.GetValidationErrors().getValidateString();
                    if (validateMessage.Any())
                    {
                        result.DESCRIPTION = validateMessage;
                    }
                    else
                    {
                        try
                        {
                            db.SaveChanges();

                            #region LOG
                            //新增LOG
                            Log log = new Log();
                            log.CFUNCTION = "作廢-金庫物品存取申請作業";
                            log.CACTION   = "U";
                            log.CCONTENT  = logStr;
                            LogDao.Insert(log, searchData.vCreateUid);
                            #endregion

                            result.RETURN_FLAG = true;
                            result.DESCRIPTION = $@"單號{data.vAPLY_NO} 已作廢!";
                        }
                        catch (DbUpdateException ex)
                        {
                            result.DESCRIPTION = ex.exceptionMessage();
                        }
                    }
                }
                if (result.RETURN_FLAG)
                {
                    result.Datas = GetSearchDetail(searchData);
                }
            }
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// 刪除申請 (刪除資料)
        /// </summary>
        /// <param name="searchData">金庫物品存取主畫面查詢ViewModel</param>
        /// <param name="data">申請表單查詢顯示區塊ViewModel</param>
        /// <returns></returns>
        public MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> > Cancel(TreasuryAccessSearchViewModel searchData, TreasuryAccessSearchDetailViewModel data)
        {
            var result = new MSGReturnModel <List <TreasuryAccessSearchDetailViewModel> >();

            result.RETURN_FLAG = false;
            result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription();
            DateTime dt     = DateTime.Now;
            string   logStr = string.Empty;
            //取得流水號
            SysSeqDao sysSeqDao = new SysSeqDao();
            String    qPreCode  = DateUtil.getCurChtDateTime().Split(' ')[0];

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var _TREA_APLY_REC = db.TREA_APLY_REC.FirstOrDefault(x => x.APLY_NO == data.vAPLY_NO);
                if (_TREA_APLY_REC != null)
                {
                    if (_TREA_APLY_REC.LAST_UPDATE_DT > data.vLast_Update_Time)
                    {
                        return(result);
                    }
                    logStr += _TREA_APLY_REC.modelToString();


                    #region 刪除申請
                    var sampleFactory = new SampleFactory();
                    var getAgenct     = sampleFactory.GetAgenct(EnumUtil.GetValues <Ref.TreaItemType>().First(x => x.ToString() == _TREA_APLY_REC.ITEM_ID));
                    if (getAgenct != null)
                    {
                        var _recover = getAgenct.CancelApply(db, _TREA_APLY_REC.APLY_NO, _TREA_APLY_REC.ACCESS_TYPE, logStr, dt);
                        if (!_recover.Item1) //失敗
                        {
                            return(result);
                        }
                        logStr = _recover.Item2;
                    }
                    else
                    {
                        return(result);
                    }
                    #endregion

                    #region 刪除 申請單歷程檔
                    db.APLY_REC_HIS.RemoveRange(db.APLY_REC_HIS.Where(x => x.APLY_NO == _TREA_APLY_REC.APLY_NO));
                    #endregion

                    #region 刪除 申請單紀錄檔
                    db.TREA_APLY_REC.Remove(_TREA_APLY_REC);
                    #endregion

                    var validateMessage = db.GetValidationErrors().getValidateString();
                    if (validateMessage.Any())
                    {
                        result.DESCRIPTION = validateMessage;
                    }
                    else
                    {
                        try
                        {
                            db.SaveChanges();

                            #region LOG
                            //新增LOG
                            Log log = new Log();
                            log.CFUNCTION = "刪除申請-金庫物品存取申請作業";
                            log.CACTION   = "D";
                            log.CCONTENT  = logStr;
                            LogDao.Insert(log, searchData.vCreateUid);
                            #endregion

                            result.RETURN_FLAG = true;
                            result.DESCRIPTION = $@"單號{data.vAPLY_NO} 已刪除!";
                        }
                        catch (DbUpdateException ex)
                        {
                            result.DESCRIPTION = ex.exceptionMessage();
                        }
                    }
                }
                if (result.RETURN_FLAG)
                {
                    result.Datas = GetSearchDetail(searchData);
                }
            }
            return(result);
        }