Example #1
0
        public JsonResult ApplyDbData()
        {
            MSGReturnModel <IEnumerable <ICDCItem> > result = new MSGReturnModel <IEnumerable <ICDCItem> >();

            result.RETURN_FLAG = false;
            var _detail = (List <CDCEstateViewModel>)Cache.Get(CacheList.CDCEstateData);

            if (!_detail.Any(x => x.vAftFlag))
            {
                result.DESCRIPTION = "無申請任何資料";
            }
            else if (Cache.IsSet(CacheList.CDCSearchViewModel))
            {
                CDCSearchViewModel data = (CDCSearchViewModel)Cache.Get(CacheList.CDCSearchViewModel);
                result = Estate.CDCApplyAudit(_detail.Where(x => x.vAftFlag).ToList(), data);
                if (result.RETURN_FLAG)
                {
                    Cache.Invalidate(CacheList.CDCEstateData);
                    Cache.Set(CacheList.CDCEstateData, result.Datas);
                }
            }
            else
            {
                result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription();
            }
            return(Json(result));
        }
Example #2
0
        public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type)
        {
            var _data = ((List <CDCSealViewModel>)Seal.GetCDCSearchData(data, AplyNo));

            ViewBag.Sataus   = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE");
            ViewBag.type     = type;
            ViewBag.IO       = data.vTreasuryIO;
            data.vCreate_Uid = AccountController.CurrentUserId;
            Cache.Invalidate(CacheList.CDCSearchViewModel);
            Cache.Set(CacheList.CDCSearchViewModel, data);
            Cache.Invalidate(CacheList.CDCSEALData);
            Cache.Set(CacheList.CDCSEALData, _data);
            return(PartialView());
        }
Example #3
0
        public JsonResult GetCDCStockDetailDate(int Group_No, int Trea_Batch_No, string Aply_No)
        {
            MSGReturnModel <StockDetailViewModel> result = new MSGReturnModel <StockDetailViewModel>();

            result.RETURN_FLAG = false;
            result.DESCRIPTION = Ref.MessageType.login_Time_Out.GetDescription();

            CDCSearchViewModel data = (CDCSearchViewModel)Cache.Get(CacheList.CDCSearchViewModel);
            var _data = Stock.GetCDCDetailData(data, Group_No, Trea_Batch_No, Aply_No);

            Cache.Invalidate(CacheList.CDCStockDataD);
            Cache.Set(CacheList.CDCStockDataD, _data);
            return(Json(result));
        }
Example #4
0
        public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type)
        {
            var _data = ((List <CDCEstateViewModel>)Estate.GetCDCSearchData(data, AplyNo));

            ViewBag.Sataus = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE");
            ViewBag.type   = type;
            ViewBag.IO     = data.vTreasuryIO;
            ViewBag.dEstate_Building_Name = new SelectList(Estate.GetBuildName(), "Value", "Text");
            ViewBag.dEstate_From_No       = new SelectList(Estate.GetEstateFromNo(), "Value", "Text");
            data.vCreate_Uid = AccountController.CurrentUserId;
            Cache.Invalidate(CacheList.CDCSearchViewModel);
            Cache.Set(CacheList.CDCSearchViewModel, data);
            Cache.Invalidate(CacheList.CDCEstateData);
            Cache.Set(CacheList.CDCEstateData, _data);
            return(PartialView());
        }
Example #5
0
        public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type)
        {
            var _data = ((List <CDCMarginpViewModel>)Marginp.GetCDCSearchData(data, AplyNo));

            ViewBag.Sataus = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE");
            ViewBag.type   = type;
            ViewBag.IO     = data.vTreasuryIO;
            ViewBag.dMargin_Take_Of_Type = new SelectList(Marginp.GetMarginp_Take_Of_Type(), "Value", "Text");
            ViewBag.dMargin_Item         = new SelectList(Marginp.GetMarginpItem(), "Value", "Text");
            data.vCreate_Uid             = AccountController.CurrentUserId;
            Cache.Invalidate(CacheList.CDCSearchViewModel);
            Cache.Set(CacheList.CDCSearchViewModel, data);
            Cache.Invalidate(CacheList.CDCMarginpData);
            Cache.Set(CacheList.CDCMarginpData, _data);
            return(PartialView());
        }
Example #6
0
        public ActionResult CDCView(string AplyNo, CDCSearchViewModel data, Ref.OpenPartialViewType type)
        {
            var _data = ((List <CDCBillViewModel>)Bill.GetCDCSearchData(data, AplyNo));

            ViewBag.Sataus             = new Service.Actual.Common().GetSysCode("INVENTORY_TYPE");
            ViewBag.type               = type;
            ViewBag.IO                 = data.vTreasuryIO;
            ViewBag.dBILL_Check_Type   = new SelectList(Bill.GetCheckType(), "Value", "Text");
            ViewBag.dBILL_Issuing_Bank = new SelectList(Bill.GetIssuing_Bank(), "Value", "Text");
            data.vCreate_Uid           = AccountController.CurrentUserId;
            Cache.Invalidate(CacheList.CDCSearchViewModel);
            Cache.Set(CacheList.CDCSearchViewModel, data);
            Cache.Invalidate(CacheList.CDCBILLData);
            Cache.Set(CacheList.CDCBILLData, _data);
            Cache.Invalidate(CacheList.CDCBILLAllData);
            Cache.Set(CacheList.CDCBILLAllData, ((List <CDCBillViewModel>)Bill.GetCDCSearchData(new CDCSearchViewModel()
            {
                vTreasuryIO = "Y"
            }, null)));
            return(PartialView());
        }
Example #7
0
        /// <summary>
        /// 共用存檔 資料庫異動申請單紀錄檔 回傳參數1 (APLY_NO) 回傳參數2 (log訊息)
        /// </summary>
        /// <param name="db">Entity</param>
        /// <param name="data">viewModel</param>
        /// <param name="logStr">紀錄訊息</param>
        /// <param name="dt">時間</param>
        /// <param name="CHG_AUTH_UNIT">權責單位異動</param>
        /// <returns></returns>
        protected Tuple <string, string> SaveINVENTORY_CHG_APLY(TreasuryDBEntities db, CDCSearchViewModel data, string logStr, DateTime dt, string CHG_AUTH_UNIT = "N")
        {
            //取得流水號
            SysSeqDao sysSeqDao = new SysSeqDao();
            String    qPreCode  = DateUtil.getCurChtDateTime().Split(' ')[0];
            var       cId       = sysSeqDao.qrySeqNo("G8", qPreCode).ToString().PadLeft(3, '0');

            #region 資料庫異動申請單紀錄檔
            var ICA = new INVENTORY_CHG_APLY()
            {
                APLY_NO       = $@"G8{qPreCode}{cId}", //申請單號 G8+系統日期YYYMMDD(民國年)+3碼流水號
                ITEM_ID       = data.vJobProject,
                APPR_STATUS   = "1",                   //表單申請
                CHG_AUTH_UNIT = CHG_AUTH_UNIT,         //權責單位異動
                CREATE_UID    = data.vCreate_Uid,
                CREATE_Date   = dt.Date,
                CREATE_Time   = dt.TimeOfDay
            };
            db.INVENTORY_CHG_APLY.Add(ICA);
            logStr += ICA.modelToString(logStr);
            #endregion
            return(new Tuple <string, string>(ICA.APLY_NO, logStr));
        }
Example #8
0
        /// <summary>
        /// 庫存異動資料-申請覆核
        /// </summary>
        /// <param name="saveData"></param>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public MSGReturnModel <IEnumerable <ICDCItem> > CDCApplyAudit(IEnumerable <ICDCItem> saveData, CDCSearchViewModel searchModel)
        {
            MSGReturnModel <IEnumerable <ICDCItem> > result = new MSGReturnModel <IEnumerable <ICDCItem> >();

            result.RETURN_FLAG = false;
            string   logStr = string.Empty;
            DateTime dt     = DateTime.Now;

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                bool changFlag = false;
                var  _data     = SaveINVENTORY_CHG_APLY(db, searchModel, logStr, dt);
                logStr = _data.Item2;
                foreach (CDCCAViewModel model in saveData)
                {
                    var _CA = db.ITEM_CA.FirstOrDefault(x => x.ITEM_ID == model.vItemId);
                    if (_CA != null && !changFlag)
                    {
                        if (_CA.LAST_UPDATE_DT > model.vLast_Update_Time || _CA.INVENTORY_STATUS != "1")
                        {
                            changFlag = true;
                        }
                        if (!changFlag)
                        {
                            _CA.INVENTORY_STATUS = "8"; //庫存狀態改為「8」資料庫異動中。
                            _CA.CA_USE_AFT       = model.vCA_Use_AFT;
                            _CA.CA_DESC_AFT      = model.vCA_Desc_AFT;
                            _CA.BANK_AFT         = model.vCA_Bank_AFT;
                            _CA.CA_NUMBER_AFT    = model.vCA_Number_AFT;
                            _CA.MEMO_AFT         = model.vCA_Memo_AFT;
                            _CA.LAST_UPDATE_DT   = dt;

                            logStr = _CA.modelToString(logStr);

                            var _OIA = new OTHER_ITEM_APLY()
                            {
                                APLY_NO = _data.Item1,
                                ITEM_ID = _CA.ITEM_ID
                            };

                            db.OTHER_ITEM_APLY.Add(_OIA);

                            logStr = _OIA.modelToString(logStr);
                        }
                    }
                    else
                    {
                        changFlag = true;
                    }
                }
                if (changFlag)
                {
                    result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription();
                }
                else
                {
                    db.SaveChanges();
                    #region LOG
                    //新增LOG
                    Log log = new Log();
                    log.CFUNCTION = "申請覆核-資料庫異動:電子憑證";
                    log.CACTION   = "A";
                    log.CCONTENT  = logStr;
                    LogDao.Insert(log, searchModel.vCreate_Uid);
                    #endregion
                    result.RETURN_FLAG = true;
                    result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"申請單號:{_data.Item1}");
                    result.Datas       = GetCDCSearchData(searchModel);
                }
            }
            return(result);
        }
Example #9
0
        /// <summary>
        /// 查詢CDC資料
        /// </summary>
        /// <param name="searchModel">CDC 查詢畫面條件</param>
        /// <param name="aply_No">資料庫異動申請單紀錄檔  INVENTORY_CHG_APLY 單號</param>
        /// <returns></returns>
        public IEnumerable <ICDCItem> GetCDCSearchData(CDCSearchViewModel searchModel, string aply_No = null, string charge_Dept = null, string charge_Sect = null)
        {
            List <CDCCAViewModel> result = new List <CDCCAViewModel>();

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                var emps  = GetEmps();
                var depts = GetDepts();
                if (aply_No.IsNullOrWhiteSpace())
                {
                    var PUT_DATE_From = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_DT_From);
                    var PUT_DATE_To   = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_DT_To).DateToLatestTime();
                    var GET_DATE_From = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_ODT_From);
                    var GET_DATE_To   = TypeTransfer.stringToDateTimeN(searchModel.vAPLY_ODT_To).DateToLatestTime();
                    result.AddRange(db.ITEM_CA.AsNoTracking()
                                    .Where(x => TreasuryIn.Contains(x.INVENTORY_STATUS), searchModel.vTreasuryIO == "Y")
                                    .Where(x => x.INVENTORY_STATUS == TreasuryOut, searchModel.vTreasuryIO == "N")
                                    .Where(x => x.PUT_DATE != null && x.PUT_DATE.Value >= PUT_DATE_From.Value, PUT_DATE_From != null)
                                    .Where(x => x.PUT_DATE != null && x.PUT_DATE.Value <= PUT_DATE_To.Value, PUT_DATE_To != null)
                                    .Where(x => x.GET_DATE != null && x.GET_DATE.Value >= GET_DATE_From.Value, GET_DATE_From != null)
                                    .Where(x => x.GET_DATE != null && x.GET_DATE.Value <= GET_DATE_To.Value, GET_DATE_To != null)
                                    .Where(x => x.CHARGE_DEPT == charge_Dept, !charge_Dept.IsNullOrWhiteSpace())
                                    .Where(x => x.CHARGE_SECT == charge_Sect, !charge_Sect.IsNullOrWhiteSpace())
                                    .AsEnumerable()
                                    .Select((x) => new CDCCAViewModel()
                    {
                        vItemId               = x.ITEM_ID,
                        vStatus               = x.INVENTORY_STATUS,
                        vPUT_Date             = x.PUT_DATE?.dateTimeToStr(),
                        vGet_Date             = x.GET_DATE?.dateTimeToStr(),
                        vAPLY_UID             = x.APLY_UID,
                        vAPLY_UID_Name        = emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim(),
                        vCharge_Dept          = x.CHARGE_DEPT,
                        vCharge_Dept_AFT      = x.CHARGE_DEPT_AFT,
                        vCharge_Dept_Name     = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT)?.DPT_NAME?.Trim(),
                        vCharge_Dept_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT_AFT)?.DPT_NAME?.Trim(),
                        vCharge_Sect          = x.CHARGE_SECT,
                        vCharge_Sect_AFT      = x.CHARGE_SECT_AFT,
                        vCharge_Sect_Name     = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT)?.DPT_NAME?.Trim(),
                        vCharge_Sect_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT_AFT)?.DPT_NAME?.Trim(),
                        vCA_Use               = x.CA_USE,
                        vCA_Use_AFT           = x.CA_USE_AFT,
                        vCA_Desc              = x.CA_DESC,
                        vCA_Desc_AFT          = x.CA_DESC_AFT,
                        vCA_Bank              = x.BANK,
                        vCA_Bank_AFT          = x.BANK_AFT,
                        vCA_Number            = x.CA_NUMBER,
                        vCA_Number_AFT        = x.CA_NUMBER_AFT,
                        vCA_Memo              = x.MEMO,
                        vCA_Memo_AFT          = x.MEMO_AFT,
                        vLast_Update_Time     = x.LAST_UPDATE_DT
                    }).ToList());

                    if (searchModel.vTreasuryIO == "N") //取出
                    {
                        if (result.Any())
                        {
                            var itemIds = result.Select(x => x.vItemId).ToList();
                            var uids    = GetAplyUidName(itemIds);
                            result.ForEach(x =>
                            {
                                x.vGet_Uid_Name = uids.FirstOrDefault(y => y.itemId == x.vItemId)?.getAplyUidName;
                            });
                        }
                    }
                }
                else
                {
                    var itemIds = db.OTHER_ITEM_APLY.AsNoTracking()
                                  .Where(x => x.APLY_NO == aply_No).Select(x => x.ITEM_ID).ToList();
                    result.AddRange(db.ITEM_CA.AsNoTracking()
                                    .Where(x => itemIds.Contains(x.ITEM_ID))
                                    .AsEnumerable()
                                    .Select((x) => new CDCCAViewModel()
                    {
                        vItemId               = x.ITEM_ID,
                        vStatus               = x.INVENTORY_STATUS,
                        vPUT_Date             = x.PUT_DATE?.dateTimeToStr(),
                        vGet_Date             = x.GET_DATE?.dateTimeToStr(),
                        vAPLY_UID             = x.APLY_UID,
                        vAPLY_UID_Name        = emps.FirstOrDefault(y => y.USR_ID == x.APLY_UID)?.EMP_NAME?.Trim(),
                        vCharge_Dept          = x.CHARGE_DEPT,
                        vCharge_Dept_AFT      = x.CHARGE_DEPT_AFT,
                        vCharge_Dept_Name     = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT)?.DPT_NAME?.Trim(),
                        vCharge_Dept_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_DEPT_AFT)?.DPT_NAME?.Trim(),
                        vCharge_Sect          = x.CHARGE_SECT,
                        vCharge_Sect_AFT      = x.CHARGE_SECT_AFT,
                        vCharge_Sect_Name     = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT)?.DPT_NAME?.Trim(),
                        vCharge_Sect_Name_AFT = depts.FirstOrDefault(y => y.DPT_CD.Trim() == x.CHARGE_SECT_AFT)?.DPT_NAME?.Trim(),
                        vCA_Use               = x.CA_USE,
                        vCA_Use_AFT           = x.CA_USE_AFT,
                        vCA_Desc              = x.CA_DESC,
                        vCA_Desc_AFT          = x.CA_DESC_AFT,
                        vCA_Bank              = x.BANK,
                        vCA_Bank_AFT          = x.BANK_AFT,
                        vCA_Number            = x.CA_NUMBER,
                        vCA_Number_AFT        = x.CA_NUMBER_AFT,
                        vCA_Memo              = x.MEMO,
                        vCA_Memo_AFT          = x.MEMO_AFT,
                        vLast_Update_Time     = x.LAST_UPDATE_DT
                    }).ToList());
                }
                result.ForEach(x =>
                {
                    x.vCharge_Name     = !x.vCharge_Sect_Name.IsNullOrWhiteSpace() ? x.vCharge_Sect_Name : x.vCharge_Dept_Name;
                    x.vCharge_Name_AFT = !x.vCharge_Sect_Name_AFT.IsNullOrWhiteSpace() ? x.vCharge_Sect_Name_AFT : (!x.vCharge_Dept_Name_AFT.IsNullOrWhiteSpace() ? x.vCharge_Dept_Name_AFT : null);
                });
            }
            return(result);
        }
Example #10
0
        /// <summary>
        /// 庫存異動資料-申請覆核
        /// </summary>
        /// <param name="saveData"></param>
        /// <param name="searchModel"></param>
        /// <returns></returns>
        public MSGReturnModel <IEnumerable <ICDCItem> > CDCApplyAudit(IEnumerable <ICDCItem> saveData, CDCSearchViewModel searchModel)
        {
            MSGReturnModel <IEnumerable <ICDCItem> > result = new MSGReturnModel <IEnumerable <ICDCItem> >();

            result.RETURN_FLAG = false;
            string   logStr = string.Empty;
            DateTime dt     = DateTime.Now;

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                bool changFlag = false;
                var  _data     = SaveINVENTORY_CHG_APLY(db, searchModel, logStr, dt);
                logStr = _data.Item2;
                foreach (CDCBillViewModel model in saveData)
                {
                    var _Bill = db.ITEM_BLANK_NOTE.FirstOrDefault(x => x.ITEM_ID == model.vItemId);
                    if (_Bill != null && !changFlag)
                    {
                        if (_Bill.LAST_UPDATE_DT > model.vLast_Update_Time || _Bill.INVENTORY_STATUS != "1")
                        {
                            changFlag = true;
                        }
                        if (!changFlag)
                        {
                            _Bill.INVENTORY_STATUS   = "8"; //庫存狀態改為「8」資料庫異動中。
                            _Bill.ISSUING_BANK_AFT   = model.vBill_Issuing_Bank_AFT;
                            _Bill.CHECK_TYPE_AFT     = model.vBill_Check_Type_AFT;
                            _Bill.CHECK_NO_TRACK_AFT = model.vBill_Check_No_Track_AFT;
                            _Bill.CHECK_NO_B_AFT     = model.vBill_Check_No_B_AFT;
                            _Bill.CHECK_NO_E_AFT     = model.vBill_Check_No_E_AFT;
                            _Bill.LAST_UPDATE_DT     = dt;

                            logStr += _Bill.modelToString(logStr);

                            var _BNA = new BLANK_NOTE_APLY()
                            {
                                APLY_NO        = _data.Item1,
                                ITEM_ID        = _Bill.ITEM_ID,
                                ISSUING_BANK   = model.vBill_Issuing_Bank_AFT,
                                CHECK_TYPE     = model.vBill_Check_Type_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_Type_AFT,
                                CHECK_NO_TRACK = model.vBill_Check_No_Track_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_No_Track_AFT,
                                CHECK_NO_B     = model.vBill_Check_No_B_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_No_B_AFT,
                                CHECK_NO_E     = model.vBill_Check_No_E_AFT.IsNullOrEmpty() ? string.Empty : model.vBill_Check_No_E_AFT
                            };

                            db.BLANK_NOTE_APLY.Add(_BNA);

                            logStr += _BNA.modelToString(logStr);
                        }
                    }
                    else
                    {
                        changFlag = true;
                    }
                }
                if (changFlag)
                {
                    result.DESCRIPTION = Ref.MessageType.already_Change.GetDescription();
                }
                else
                {
                    db.SaveChanges();
                    #region LOG
                    //新增LOG
                    Log log = new Log();
                    log.CFUNCTION = "申請覆核-資料庫異動:空白票據";
                    log.CACTION   = "A";
                    log.CCONTENT  = logStr;
                    LogDao.Insert(log, searchModel.vCreate_Uid);
                    #endregion
                    result.RETURN_FLAG = true;
                    result.DESCRIPTION = Ref.MessageType.Apply_Audit_Success.GetDescription(null, $@"申請單號:{_data.Item1}");
                    result.Datas       = GetCDCSearchData(searchModel);
                }
            }
            return(result);
        }