/// <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)); }
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); }