Example #1
0
        /// <summary>
        /// 抓取權責部門,科別名稱
        /// </summary>
        /// <param name="type"></param>
        /// <param name="DEPT_ITEM">部門名稱</param>
        /// <returns></returns>
        public JsonResult GetCharge(Ref.TreaItemType type, string DEPT_ITEM)
        {
            var result = new List <SelectOption>();
            var All    = new SelectOption()
            {
                Text = "All", Value = "All"
            };

            // 190603 Edited by Biacno 非保管科只能顯示本科資料
            //var _CustodyFlag = Convert.ToBoolean(Session["CustodyFlag"]);
            var    _CustodyFlag = AccountController.CustodianFlag;
            string Det_cd       = new Service.Actual.Common().GetEmps()?.FirstOrDefault(x => x.USR_ID != null && x.USR_ID == AccountController.CurrentUserId)?.DPT_CD?.Trim();
            var    _Depts       = new Service.Actual.Common().GetDepts()?.FirstOrDefault(x => x.DPT_CD.Trim() == Det_cd);
            string branch       = "";
            string dept         = "";

            if (_Depts != null && _Depts.Dpt_type == "04")
            {
                branch = Det_cd;
                dept   = _Depts?.UP_DPT_CD?.Trim();
            }
            else if (_Depts != null)
            {
                branch = "";
                dept   = _Depts?.DPT_CD?.Trim();
            }
            else
            {
                branch = "";
                dept   = "";
            }

            //_Depts.UP_DPT_CD = "X0000";
            //Det_cd = "XQ000";
            ///////////////////////////////

            if (DEPT_ITEM.IsNullOrWhiteSpace())
            {
                result = TreasuryReport.getDEPT(type, _CustodyFlag, dept);
            }
            else
            {
                result = TreasuryReport.getSECT(DEPT_ITEM, type, _CustodyFlag, dept);
            }
            if (_CustodyFlag)
            {
                result.Insert(0, All);
            }
            return(Json(result));
        }
Example #2
0
        public List <SelectOption> getSECT(string DEPT_ITEM, Ref.TreaItemType type, bool IsCustody, string UserBranch)
        {
            var result = new List <SelectOption>();
            var strs   = new  List <string>();
            var deps   = new Treasury.Web.Service.Actual.Common().GetDepts();

            using (TreasuryDBEntities db = new TreasuryDBEntities())
            {
                if (IsCustody)
                {
                    switch (type)
                    {
                    case Ref.TreaItemType.D1008:    //印章
                    case Ref.TreaItemType.D1009:
                    case Ref.TreaItemType.D1010:
                    case Ref.TreaItemType.D1011:
                        var item = type.ToString();
                        strs = db.ITEM_SEAL.AsNoTracking()    //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1" && x.TREA_ITEM_NAME == item)
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1013:                  //定期存單
                        strs = db.ITEM_DEP_ORDER_M.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1014:                  //不動產
                        strs = db.ITEM_REAL_ESTATE.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1015:            //股票
                        strs = db.ITEM_STOCK.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1016:                     //存出保證金
                        strs = db.ITEM_REFUNDABLE_DEP.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1017:                   //存入保證金
                        strs = db.ITEM_DEP_RECEIVED.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1018:           //重要物品
                        strs = db.ITEM_IMPO.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1019:            //其他物品
                        strs = db.ITEM_OTHER.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1024:         //電子憑證
                        strs = db.ITEM_CA.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;
                    }
                }
                else
                {
                    switch (type)
                    {
                    case Ref.TreaItemType.D1008:    //印章
                    case Ref.TreaItemType.D1009:
                    case Ref.TreaItemType.D1010:
                    case Ref.TreaItemType.D1011:
                        var item = type.ToString();
                        strs = db.ITEM_SEAL.AsNoTracking()    //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1" && x.TREA_ITEM_NAME == item)
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1013:                  //定期存單
                        strs = db.ITEM_DEP_ORDER_M.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1014:                  //不動產
                        strs = db.ITEM_REAL_ESTATE.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1015:            //股票
                        strs = db.ITEM_STOCK.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1016:                     //存出保證金
                        strs = db.ITEM_REFUNDABLE_DEP.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1017:                   //存入保證金
                        strs = db.ITEM_DEP_RECEIVED.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1018:           //重要物品
                        strs = db.ITEM_IMPO.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1019:            //其他物品
                        strs = db.ITEM_OTHER.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;

                    case Ref.TreaItemType.D1024:         //電子憑證
                        strs = db.ITEM_CA.AsNoTracking() //抓取在庫的所有資料
                               .Where(x => x.INVENTORY_STATUS == "1")
                               .Where(x => x.CHARGE_DEPT == DEPT_ITEM && x.CHARGE_SECT == UserBranch)
                               .Select(x => x.CHARGE_SECT)
                               .Distinct()
                               .OrderBy(x => x).ToList();
                        break;
                    }
                }

                if (strs.Count <= 1 && strs.FirstOrDefault()?.Trim() == "")
                {
                }
                else
                {
                    result = strs
                             .Select(x => new SelectOption()
                    {
                        Value = x,
                        Text  = deps.FirstOrDefault(y =>
                                                    y.DPT_CD != null &&
                                                    y.DPT_CD.Trim() == x)?.DPT_NAME
                    }).ToList();
                }
            }
            return(result);
        }