public virtual VendorRefundInfo LoadVendorRefundInfo(int sysNo) { VendorRefundInfo refundInfo = new VendorRefundInfo() { NotPMAndPMD = false }; //加载供应商退款主信息: refundInfo = VendorRefundDA.LoadVendorRefundInfo(sysNo); //加载供应商退款Items: refundInfo.ItemList = new List <VendorRefundItemInfo>(); refundInfo.ItemList = VendorRefundDA.LoadVendorRefundItems(sysNo); //TODO:权限判断:PM,PMD,PMCC bool isPM = IMBizInteract.GetPMListByUserSysNo(ServiceContext.Current.UserSysNo).SysNo.HasValue ? true : false; if (isPM) { refundInfo.UserRole = "PM"; } if (0 < refundInfo.ItemList.Count && isPM) { int userSysNo = ServiceContext.Current.UserSysNo; //获取PM List: List <int> pmSysNo = VendorRefundDA.GetPMUserSysNoByRMAVendorRefundSysNo(refundInfo.SysNo.Value); //获得备份的PM: List <ProductManagerInfo> bankupPMSysNo = ExternalDomainBroker.GetPMList(userSysNo).ProductManagerInfoList; bankupPMSysNo.Add(new ProductManagerInfo() { UserInfo = new BizEntity.Common.UserInfo() { SysNo = userSysNo } }); foreach (var sysNoItem in pmSysNo) { bool temp = false; foreach (var pm in bankupPMSysNo) { if (sysNoItem == pm.UserInfo.SysNo.Value) { temp = true; } } if (!temp) { refundInfo.NotPMAndPMD = true; break; } } } return(refundInfo); }
/// <summary> /// 检查PM信息 /// </summary> /// <param name="refundInfo"></param> public void CheckRefundPM(VendorRefundInfo refundInfo) { int userSysNo = refundInfo.PMUserSysNo.Value; //获取PM List: List <int> pmSysNo = VendorRefundDA.GetPMUserSysNoByRMAVendorRefundSysNo(refundInfo.SysNo.Value); //获得备份的PM: List <ProductManagerInfo> getPMList = ExternalDomainBroker.GetPMList(userSysNo).ProductManagerInfoList; List <int> userSysNoList = new List <int>(); foreach (var dr in getPMList) { userSysNoList.Add(dr.UserInfo.SysNo.Value); } userSysNoList.Add(userSysNo); foreach (var sysNo in pmSysNo) { bool temp = false; foreach (var pm in userSysNoList) { if (sysNo == pm) { temp = true; } } if (!temp) { //您不是当前产品的PM,也不是当前产品PM的备份PM,无法操作! throw new BizException(GetMessageString("VendorRefund_CannotOperate")); } } }