| | |
| | | global class OpportunityWebService { |
| | | |
| | | WebService static String changeTrade(String oppId){ |
| | | |
| | | List<Quote> quoList = [select id from Quote where OpportunityId = :oppId]; |
| | | List<OpportunityLineItem> oppLI = [select id from OpportunityLineItem where Opportunity.id = :oppId]; |
| | | WebService static String check(String oppId) { |
| | | String str = '1'; |
| | | List<OpportunityLineItem> oliList = [select id, Product2.If_Exempt_Product__c, Product2.If_Radiation_Product__c, Opportunity.DealerId__c from OpportunityLineItem where opportunityId = :oppId]; |
| | | Boolean hasA = false; |
| | | for (OpportunityLineItem oli : oliList) { |
| | | if (oli.Product2.If_Exempt_Product__c == false && oli.Product2.If_Radiation_Product__c == true) { |
| | | hasA = true; |
| | | } |
| | | } |
| | | if (hasA == true) { |
| | | str = LicenseCheckUtil.LicenseCheck1(oliList[0].Opportunity.DealerId__c); |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | WebService static String checkOly() { |
| | | return LicenseCheckUtil.LicenseCheckOly(); |
| | | } |
| | | |
| | | WebService static String UpdateStageName(String opportunityId, String targetStageName) { |
| | | Opportunity opp = new Opportunity(); |
| | | opp.id = oppId; |
| | | opp.Estimation_Decision__c = false; |
| | | opp.Estimation_Id__c = null; |
| | | opp.Quote_Update_Sum__c = null; |
| | | opp.Estimation_No__c = null; |
| | | opp.Estimation_Proposal_Date__c = null; |
| | | opp.Estimation_Name__c = null; |
| | | // LHJ SWAG-C9QAAJ 去掉 Start |
| | | // opp.Authorized_Finish_Sales__c = null; |
| | | // opp.Authorized_DB_No__c = null; |
| | | // opp.Authorized_Date__c = null; |
| | | // opp.Autholization_Activated_Date__c = null; |
| | | // opp.Bidding_Content__c = null; |
| | | // opp.Bid_Date__c = null; |
| | | // opp.Bidding_No__c = null; |
| | | // opp.Bidding_Project_Name__c = null; |
| | | // LHJ End |
| | | |
| | | Savepoint sp = Database.setSavepoint(); |
| | | opp.Id = opportunityId; |
| | | opp.StageName = targetStageName; |
| | | try { |
| | | delete quoList; |
| | | delete oppLI; |
| | | StaticParameter.StageProgressBarUpdate = true; |
| | | update opp; |
| | | return '1'; |
| | | } catch (Exception ex) { |
| | | return ex.getMessage(); |
| | | } |
| | | |
| | | return '1'; |
| | | } |
| | | |
| | | WebService static String UpdateShare(String opportunityId, String userId) { |
| | | try { |
| | | List<OpportunityShare> osList = [select Id, OpportunityId, UserOrGroupId, OpportunityAccessLevel, RowCause from OpportunityShare where OpportunityId = :opportunityId and UserOrGroupId = :userId and RowCause = 'Team' and OpportunityAccessLevel = 'Read']; |
| | | for (OpportunityShare os : osList) { |
| | | os.OpportunityAccessLevel = 'Edit'; |
| | | } |
| | | if (osList.size() > 0) { |
| | | update osList; |
| | | } |
| | | } catch (Exception ex) { |
| | | return ex.getMessage(); |
| | | } |
| | | |
| | | return '1'; |
| | | } |
| | | |
| | | WebService static String Upload2Sap(String opportunityId, String quoteNo, String quoteId) { |
| | | add(); |
| | | Savepoint sp = Database.setSavepoint(); |
| | | Opportunity oppor = [select id, AccountId, Dealer__r.DummyDealer__c, Dealer__r.ParentID, Account.MarketVerticals__c, Trade_Type_D__c from Opportunity where id = :opportunityId]; |
| | | if (oppor.Account.MarketVerticals__c == 'Clinical' && oppor.Trade_Type_D__c == 'Taxation') { |
| | | if (oppor.Dealer__r.DummyDealer__c == true) { |
| | | String backStr = LicenseCheckUtil.LicenseCheck(oppor.AccountId); |
| | | if (backStr != '1') { |
| | | return backStr + ',不能上传报价'; |
| | | } |
| | | } else { |
| | | String backStr = LicenseCheckUtil.LicenseCheck(oppor.Dealer__r.ParentID); |
| | | if (backStr != '1') { |
| | | return backStr + ',不能上传报价'; |
| | | } |
| | | } |
| | | } |
| | | try { |
| | | Opportunity opp = new Opportunity(); |
| | | opp.Id = opportunityId; |
| | | opp.the_Upload_of_quotation_number__c = quoteNo; |
| | | update opp; |
| | | |
| | | Quote quo = new Quote(); |
| | | quo.Id = quoteId; |
| | | quo.Is_upload__c = true; |
| | | update quo; |
| | | |
| | | } catch (Exception ex) { |
| | | Database.rollback(sp); |
| | | return ex.getMessage() + ' | Line:' + ex.getLineNumber(); |
| | | return ex.getMessage(); |
| | | } |
| | | } |
| | | |
| | | // LHJ CBPR Start |
| | | webservice String parameter { get; set; } |
| | | |
| | | public OpportunityWebService() { |
| | | this.parameter = 'value'; |
| | | return '1'; |
| | | } |
| | | |
| | | WebService static String oppCheck(String oppid, String saveFlg) { |
| | | |
| | | Map<Id, String> proMap= new Map<Id, String>(); |
| | | List<OpportunityLineItem> OppItemList = [select PricebookEntry.Product2Id, PricebookEntry.Product2.Name |
| | | From OpportunityLineItem |
| | | Where OpportunityId = :oppid]; |
| | | |
| | | if (OppItemList.size() > 0) { |
| | | for (OpportunityLineItem opl : OppItemList) { |
| | | proMap.put(opl.PricebookEntry.Product2Id, opl.PricebookEntry.Product2.Name); |
| | | } |
| | | WebService static String checkUpperLimitOfSales(String oppId, String dealerId) { |
| | | String result = ''; |
| | | String olympusAccountId = System.label.Olympus_Id; |
| | | Map<String, Integer> getModelQuantityMap = RadiationUtil.GetOpportunityLineMap(oppId); |
| | | String errorStr = RadiationUtil.GetCertificationDetail(dealerId, getModelQuantityMap); |
| | | if (errorStr != '') { |
| | | return '-1'; |
| | | } |
| | | |
| | | List<Opportunity> oppList = [select Agency1__c from Opportunity where id = :oppid]; |
| | | String angencyId = oppList[0].Agency1__c; |
| | | String strRet = ''; |
| | | |
| | | if (saveFlg == '1') { |
| | | strRet = checkProRegisterDecide(proMap, angencyId, oppid); |
| | | String accountDealerErrorMessage = RadiationUtil.updateCertificationDetails(dealerId, null, getModelQuantityMap, false); |
| | | //String olympusDealerErrorMessage = RadiationUtil.updateCertificationDetails(olympusAccountId, null, getModelQuantityMap, false); |
| | | result = accountDealerErrorMessage ; |
| | | //String flage = LicenseCheckUtil.LicenseCheckOly(); |
| | | Boolean temp = result.startsWith('你不能'); |
| | | if (temp) { |
| | | return '-1'; |
| | | } else { |
| | | strRet = checkProRegisterDecide(proMap, angencyId, ''); |
| | | } |
| | | return strRet; |
| | | } |
| | | |
| | | // LHJ 阿西赛多检查 Start |
| | | WebService static String checkDangerItem(String agency1) { |
| | | //没有危化品证照的提示信息 |
| | | String licenseStr = '第一经销商没有有效的危险化学品经营许可证。'; |
| | | //没有阿西赛多经销商协议的提示信息 |
| | | String accStr = '第一经销商没有阿西赛多经销商协议。'; |
| | | |
| | | //检查是否有证照 |
| | | List<License_Information__c> licenseList = [SELECT Id |
| | | FROM License_Information__c |
| | | WHERE LicenseAndAccount__c = :agency1 |
| | | AND LicenseType__c = '危险化学品经营许可证' |
| | | AND Is_Active_Formula__c = true |
| | | |
| | | ]; |
| | | //检查是否有阿西赛多协议 |
| | | List<Account> accountList = [SELECT Id |
| | | FROM Account |
| | | WHERE Parent.id = :agency1 |
| | | //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 start |
| | | AND Contract_Quote_Decide_Flag_checkbox__c =true |
| | | AND Assiesedo_Dealer__c = true |
| | | //阿西赛多 增加检索阿西赛多协议 以及 可以做报价(复选框) 精琢技术 wql 2021/01/04 end |
| | | ]; |
| | | |
| | | system.debug('licenseList:'+licenseList.size()); |
| | | system.debug('agency1:'+agency1); |
| | | //①既没有危化品证也没有阿西赛多协议 |
| | | if(licenseList.size() == 0 && accountList.size() ==0){ |
| | | return licenseStr+accStr; |
| | | } |
| | | //②没有危化品证 |
| | | else if(licenseList.size() ==0){ |
| | | return licenseStr; |
| | | } |
| | | //②没有阿西赛多经销商协议 |
| | | else if(accountList.size() ==0){ |
| | | return accStr; |
| | | } |
| | | //③全都有 |
| | | else{ |
| | | return 'OK'; |
| | | return result; |
| | | } |
| | | } |
| | | // LHJ 阿西赛多检查 End |
| | | |
| | | public static Map<String, String> MapCheckProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) { |
| | | |
| | | Map<String, String> retMap = new Map<String, String>(); |
| | | String errormessage = ''; |
| | | Boolean error = false; |
| | | Map<String,List<String>> proAllBSstrMap; |
| | | List<String> proNotNeedList = new List<String>(); |
| | | |
| | | Map<String,List<String>> old_newMap = new Map<String,List<String>>(); |
| | | Map<String,List<String>> new_oldMap = new Map<String,List<String>>(); |
| | | |
| | | // 取得 经营范围对应产品关系 |
| | | List<String> midStr = new List<String>(); |
| | | List<String> midStrO = new List<String>(); |
| | | |
| | | // List<Product_Register_contrast__c> rrList = Product_Register_contrast__c.getall().values(); |
| | | |
| | | // for (Product_Register_contrast__c rr : rrList) { |
| | | |
| | | // midStr = new List<String>(); |
| | | // midStrO = new List<String>(); |
| | | |
| | | // // 经营范围对应产品关系 Map作成 旧-新对照 |
| | | // if (old_newMap.containsKey(rr.Register_old__c)) { |
| | | // old_newMap.get(rr.Register_old__c).add(rr.Register_new__c); |
| | | // } else { |
| | | // midStrO.add(rr.Register_new__c); |
| | | // old_newMap.put(rr.Register_old__c, midStrO.clone()); |
| | | // } |
| | | |
| | | // // 经营范围对应产品关系 Map作成 新-旧对照 |
| | | // if (new_oldMap.containsKey(rr.Register_new__c)) { |
| | | // new_oldMap.get(rr.Register_new__c).add(rr.Register_old__c); |
| | | // } else { |
| | | // midStr.add(rr.Register_old__c); |
| | | // new_oldMap.put(rr.Register_new__c, midStr.clone()); |
| | | // } |
| | | |
| | | // } |
| | | // 取得经销商 医疗器械经营许可证 |
| | | List<License_Information__c> licenseList = [SELECT Id, |
| | | ScopeKey__c, |
| | | LicenseType__c |
| | | FROM License_Information__c |
| | | WHERE LicenseAndAccount__c = :agency1 |
| | | AND (LicenseType__c = '医疗器械经营许可证' |
| | | OR LicenseType__c = '第二类医疗器械经营备案凭证') |
| | | AND Is_Active_Formula__c = true |
| | | ]; |
| | | // 判断 医疗器械经营许可证 是否存在 |
| | | if (licenseList.size() == 0) { |
| | | error = true; |
| | | errormessage = '第一经销商没有有效的医疗器械经营许可证。'; |
| | | retMap.put('agency', '0'); |
| | | |
| | | WebService static String checkUpperLimitOfSalesOly(String oppId, String dealerId) { |
| | | String result = ''; |
| | | String olympusAccountId = System.label.Olympus_Id; |
| | | Map<String, Integer> getModelQuantityMap = RadiationUtil.GetOpportunityLineMap(oppId); |
| | | /*String errorStr = RadiationUtil.GetCertificationDetail(oppId,getModelQuantityMap); |
| | | if(errorStr != ''){ |
| | | return '-1'; |
| | | } |
| | | String accountDealerErrorMessage = RadiationUtil.updateCertificationDetails(dealerId, null, getModelQuantityMap, false);*/ |
| | | String olympusDealerErrorMessage = RadiationUtil.updateCertificationDetails(olympusAccountId, null, getModelQuantityMap, false); |
| | | result = olympusDealerErrorMessage == '' ? '' : '奥林巴斯可销售数量不足' ; |
| | | //String flage = LicenseCheckUtil.LicenseCheckOly(); |
| | | Boolean temp = result.startsWith('你不能'); |
| | | if (temp) { |
| | | return '-1'; |
| | | } else { |
| | | //经销商经营范围 |
| | | List<String> agListA = new List<String>(); |
| | | List<String> agListTemp = new List<String>(); |
| | | List<String> agList = new List<String>(); |
| | | return result; |
| | | } |
| | | } |
| | | |
| | | //取经销商下 所有医疗器械经营许可证、第二类医疗器械经营备案凭证 |
| | | for (License_Information__c li : licenseList) { |
| | | if (li.ScopeKey__c != null) { |
| | | agListA.addAll(li.ScopeKey__c.split(';')); |
| | | agListTemp.addAll(li.ScopeKey__c.split(';')); |
| | | } |
| | | } |
| | | for (String a : agListTemp) { |
| | | if (a.length() >= 6) { |
| | | agList.add(a.substring(0, a.length() - 1)); |
| | | WebService static String checkOrderStatus(String oppId, String stageName, String creuser) { |
| | | String temp = '1'; |
| | | Order ord = new Order(); |
| | | List<Order> ordList = new List<Order>(); |
| | | ordList = [select id, SAP_Order__c, ProductSegment__c, Is_TAX__c, SAP_Contract__c, ApproveStatus__c, CreatedById from Order where OpportunityId = : oppId and Status__c = 'Active']; |
| | | String userId = UserInfo.getUserId().substring(0, 15); |
| | | String roleId = UserInfo.getUserRoleId().substring(0, 15); |
| | | if (ordList.size() > 0) { |
| | | ord = ordList[0]; |
| | | |
| | | if ( (ord.ApproveStatus__c == 'CancelPass' || ord.ApproveStatus__c == 'OrderDraft' || ord.ApproveStatus__c == 'Draft' || ord.ApproveStatus__c == 'Reject') && creuser == userId ) { |
| | | StaticParameter.StageProgressBarUpdate = true; |
| | | |
| | | |
| | | |
| | | if (userId == '005280000037mrQ' || userId == '00528000002OAvH' || userId == '00528000000YSdB' || |
| | | roleId == '00E0K000001ywwz' || roleId == '00E0K000001jGiM' || roleId == '00E0K000001jGib' || |
| | | roleId == '00E0K000001ywgS' || roleId == '00E28000000knAm' || roleId == '00E28000000knAr' || |
| | | roleId == '00E28000000aKzn' || roleId == '00E0K000001jGhn' || roleId == '00E0K000001jGhs' || |
| | | roleId == '00E0K000001ywgN' || roleId == '00E0K000001PWuh' || roleId == '00E0K000001PWum' || |
| | | roleId == '00E0K000001PWur' || roleId == '00E280000015xus' || roleId == '00E280000015xux' || |
| | | roleId == '00E28000000aKzs' || roleId == '00E0K000001jGiC' || roleId == '00E0K000001jGiR' || |
| | | roleId == '00E0K000001ywgX' || roleId == '00E28000000knAc' || roleId == '00E28000000knAh' || |
| | | roleId == '00E28000000aKzx' || roleId == '00E28000000knAw' || roleId == '00E28000000knB1' || |
| | | roleId == '00E28000000aL02') { |
| | | |
| | | Opportunity opp = new Opportunity(); |
| | | opp.Id = oppId; |
| | | opp.Cancel_Fail_Approve__c = 'Pass'; |
| | | opp.StageName = stageName; |
| | | |
| | | try { |
| | | StaticParameter.StageProgressBarUpdate = true; |
| | | update opp; |
| | | } catch (Exception ex) { |
| | | return ex.getMessage(); |
| | | } |
| | | } else { |
| | | agList.add(a.trim()); |
| | | } |
| | | } |
| | | |
| | | //产品注册证 |
| | | Map<String,Map<String,String>> proBSMap = new Map<String,Map<String,String>>(); |
| | | |
| | | Map<String,String> proMidMap = null; |
| | | //产品所有有效注册证(可以和经销商匹配) |
| | | proAllBSstrMap = new Map<String,List<String>>(); |
| | | set<Id> proIdList = new set<Id>(); |
| | | |
| | | for (String qli : proMap.keySet()) { |
| | | proIdList.add(qli); |
| | | proBSMap.put(qli, proMidMap); |
| | | List<String> empList = new List<String>(); |
| | | proAllBSstrMap.put(qli, empList); |
| | | |
| | | } |
| | | |
| | | List<Product_Register_Link__c> prls = [ |
| | | Select Product2__c, |
| | | Product2__r.Asset_Model_No__c, |
| | | Product2__r.SFDA_Approbated_Status__c, |
| | | Product2__r.SFDA_Status_New__c, // 产品的CFDA最终状态 20181225 |
| | | Product_Register__r.Name, |
| | | Product_Register__r.BusinessScopeKey__c, |
| | | Product_Register__r.RegisterNoStatus__c, |
| | | Product_Register__r.MedPrdClass__c |
| | | From Product_Register_Link__c |
| | | where Product2__c in :proIdList |
| | | ]; |
| | | |
| | | // LHJ 20190102 增加跳过逻辑 Start |
| | | List<Product2> productList = [select ID,SFDA_Status__c from Product2 where id in :proIdList]; |
| | | for (Product2 pro : productList) { |
| | | if (pro.SFDA_Status__c == '不要') { |
| | | proNotNeedList.add(pro.ID); |
| | | temp = '0'; |
| | | } |
| | | } else { |
| | | temp = '0'; |
| | | } |
| | | // LHJ 20190102 增加跳过逻辑 End |
| | | |
| | | for (Product_Register_Link__c prl : prls) { |
| | | |
| | | // 设置产品类别MAP |
| | | if (String.isNotBlank(prl.Product_Register__r.BusinessScopeKey__c)) { |
| | | system.debug('Product2 +++++++' + prl.Product2__c); |
| | | if (proBSMap.get(prl.Product2__c) != null) { |
| | | proBSMap.get(prl.Product2__c).put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c); |
| | | |
| | | } else { |
| | | Map<String,String> toooMap = new Map<String,String>(); |
| | | toooMap.put(prl.Product_Register__r.Name, prl.Product_Register__r.BusinessScopeKey__c); |
| | | proBSMap.put(prl.Product2__c, toooMap.clone()); |
| | | } |
| | | } |
| | | |
| | | // 产品的产品注册证是"不要"状态 不需要匹配注册证 20181225 |
| | | if (prl.Product2__r.SFDA_Approbated_Status__c == '不要' |
| | | |
| | | || prl.Product_Register__r.MedPrdClass__c == '1') { |
| | | proNotNeedList.add(prl.Product2__c); |
| | | } |
| | | } |
| | | system.debug('proBSMap +++++++' + proBSMap); |
| | | for (String qli : proMap.keySet()) { |
| | | |
| | | String proId = qli; |
| | | String proName = proMap.get(proId); |
| | | |
| | | if (proId != null) { |
| | | Boolean haveBS = false; |
| | | |
| | | // 产品属于非医疗,不用判断经营范围 |
| | | if (proNotNeedList.contains(proId)) { |
| | | haveBS = true; |
| | | continue; |
| | | } |
| | | |
| | | if (proBSMap.get(proId) == null) { |
| | | error = true; |
| | | errormessage += '产品"' + proName + '"没有有效的产品注册证。\n'; |
| | | retMap.put(proId, '1'); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | if (proBSMap.get(proId) != null) { |
| | | system.debug('111 +++++++' + proBSMap); |
| | | Map<String,String> midMap = new Map<String,String>(); |
| | | midMap = proBSMap.get(proId); |
| | | |
| | | for (String str : midMap.keySet()) { |
| | | // LHJ 20200711 Start |
| | | String strMidMap = midMap.get(str); |
| | | List<String> proRegList = new List<String>(); |
| | | proRegList.addAll(strMidMap.split(';')); |
| | | // LHJ 20200711 End |
| | | for(String strReg:proRegList){ |
| | | // 被定义为"6815A"的产品类别,经营范围中必须有6815或者6815A外才可以匹配。 |
| | | if (strReg.length() == 6) { |
| | | |
| | | for(String strAg:agListA){ |
| | | if(strAg.length() >= 5 && midMap.get(str.substring(0, str.length() - 1)) == strAg.substring(0,5)){ |
| | | proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1)); |
| | | haveBS = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | /*if (agListA.contains(midMap.get(str.substring(0, str.length() - 1)))) { |
| | | proAllBSstrMap.get(proId).add(str.substring(0, str.length() - 1)); |
| | | haveBS = true; |
| | | }*/ |
| | | } else { |
| | | system.debug('agList +++++++' + agList); |
| | | system.debug('midMap +++++++' + strReg); |
| | | |
| | | if (agList.contains(strReg)) { |
| | | |
| | | //产品类别,匹配到经销商类别 |
| | | proAllBSstrMap.get(proId).add(str); |
| | | haveBS = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | if (!haveBS) { |
| | | error = true; |
| | | errormessage += '第一经销商的经营范围中不包含产品" ' + proName + '"。\n'; |
| | | retMap.put(proId, '2'); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (retMap.isEmpty() == false) { |
| | | //return errormessage; |
| | | |
| | | } else { |
| | | if (OppId != '') { |
| | | // 更新所有注册证信息 |
| | | String strRegister_alleffective; |
| | | List<Product2> pro2List = new List<Product2>(); |
| | | Map<String, Product2> pro2Map = new Map<String, Product2>(); |
| | | List<OpportunityLineItem> updList = new List<OpportunityLineItem>(); |
| | | List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c,PricebookEntry.Product2Id |
| | | From OpportunityLineItem |
| | | Where OpportunityId = :OppId]; |
| | | // 非医疗或1类产品,取得 |
| | | if (proNotNeedList != null && proNotNeedList.size() > 0) { |
| | | pro2List = [select id, SFDA_Approbated_Status__c, RegisterNo_ALL__c from Product2 where Id in :proNotNeedList]; |
| | | } |
| | | for (Product2 pro2 : pro2List) { |
| | | pro2Map.put(pro2.Id, pro2); |
| | | } |
| | | if (userId == '005280000037mrQ' || userId == '00528000002OAvH' || userId == '00528000000YSdB' || |
| | | roleId == '00E0K000001ywwz' || roleId == '00E0K000001jGiM' || roleId == '00E0K000001jGib' || |
| | | roleId == '00E0K000001ywgS' || roleId == '00E28000000knAm' || roleId == '00E28000000knAr' || |
| | | roleId == '00E28000000aKzn' || roleId == '00E0K000001jGhn' || roleId == '00E0K000001jGhs' || |
| | | roleId == '00E0K000001ywgN' || roleId == '00E0K000001PWuh' || roleId == '00E0K000001PWum' || |
| | | roleId == '00E0K000001PWur' || roleId == '00E280000015xus' || roleId == '00E280000015xux' || |
| | | roleId == '00E28000000aKzs' || roleId == '00E0K000001jGiC' || roleId == '00E0K000001jGiR' || |
| | | roleId == '00E0K000001ywgX' || roleId == '00E28000000knAc' || roleId == '00E28000000knAh' || |
| | | roleId == '00E28000000aKzx' || roleId == '00E28000000knAw' || roleId == '00E28000000knB1' || |
| | | roleId == '00E28000000aL02') { |
| | | |
| | | for (OpportunityLineItem ol : OppItemList) { |
| | | if (proAllBSstrMap.containsKey(ol.PricebookEntry.Product2Id)) { |
| | | ol.Register_alleffective__c = ''; |
| | | for(String str: proAllBSstrMap.get(ol.PricebookEntry.Product2Id)) { |
| | | Opportunity opp = new Opportunity(); |
| | | opp.Id = oppId; |
| | | opp.Cancel_Fail_Approve__c = 'Pass'; |
| | | opp.StageName = stageName; |
| | | |
| | | if (String.isNotBlank(ol.Register_alleffective__c)) { |
| | | ol.Register_alleffective__c += ';' + str; |
| | | } else { |
| | | ol.Register_alleffective__c = str; |
| | | } |
| | | } |
| | | // 非医疗或1类产品 |
| | | if (pro2Map.containskey(ol.PricebookEntry.Product2Id)) { |
| | | if (pro2Map.get(ol.PricebookEntry.Product2Id).SFDA_Approbated_Status__c == '不要') { |
| | | ol.Register_alleffective__c = 'FYL'; |
| | | } else { |
| | | ol.Register_alleffective__c = pro2Map.get(ol.PricebookEntry.Product2Id).RegisterNo_ALL__c; |
| | | } |
| | | } |
| | | } |
| | | updList.add(ol); |
| | | try { |
| | | StaticParameter.StageProgressBarUpdate = true; |
| | | update opp; |
| | | } catch (Exception ex) { |
| | | return ex.getMessage(); |
| | | } |
| | | if (updList.size() > 0) update updList; |
| | | } else { |
| | | temp = '0'; |
| | | } |
| | | } |
| | | //如果不满足阿西赛多的条件,进入这个变量 20200821 ljh |
| | | return retMap; |
| | | return temp; |
| | | |
| | | } |
| | | |
| | | public static String checkProRegisterDecide(Map<Id, String> proMap, String agency1, String OppId) { |
| | | |
| | | String errormessage = ''; |
| | | Boolean error = false; |
| | | |
| | | Map<String, String> CheckMap = new Map<String, String>(); |
| | | CheckMap = MapCheckProRegisterDecide(proMap, agency1, OppId); |
| | | if (CheckMap.isEmpty()) { |
| | | return 'OK'; |
| | | } else { |
| | | return '有不可销售产品或超出经销商经营范围,请更新报价单' + CheckMap; |
| | | } |
| | | |
| | | } |
| | | WebService static String updReg(String oppid) { |
| | | |
| | | List<OpportunityLineItem> updList = new List<OpportunityLineItem>(); |
| | | List<OpportunityLineItem> OppItemList = [select id, Id__c, Register_alleffective__c, |
| | | PricebookEntry.Product2.RegisterNo_ALL__c |
| | | From OpportunityLineItem |
| | | Where OpportunityId = :oppid]; |
| | | for (OpportunityLineItem ol : OppItemList) { |
| | | ol.Register_alleffective__c = ol.PricebookEntry.Product2.RegisterNo_ALL__c; |
| | | updList.add(ol); |
| | | } |
| | | if (updList.size() > 0) update updList; |
| | | return 'OK'; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | private static void add() { |
| | | Integer i = 0; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | i++; |
| | | } |
| | | } |