| | |
| | | public class SearchSetProductController { |
| | | public Product_Set__c rc {get;set;} |
| | | public Product_Set__c sc {get;set;} |
| | | public List<Product_Set__c> cl {get;set;} |
| | | |
| | | public List<productSet__c> cl {get;set;} |
| | | |
| | | public String SearchName {get;set;} |
| | | public String SearchCode {get;set;} |
| | | public String SearchPrice {get;set;} |
| | | public String SearchQuantity {get;set;} |
| | | public String SearchName {get;set;} |
| | | public String SearchCode {get;set;} |
| | | |
| | | public String baseUrl {get;set;} |
| | | public String reportid {get;set;} |
| | | public Integer activitiesSize {get;set;} |
| | | public List<QELine> activities {get;set;} |
| | | public String setPFString {get;set;} |
| | | public String gainQuoteSetNameAndSetQty; |
| | | public Map<String,Decimal> setNameAndSetQtyMap; |
| | | public Map<String,Decimal> setNameAndSetDiscountMap; |
| | | public SearchSetProductController(){ |
| | | this.setNameAndSetQtyMap = new Map<String,Decimal>(); |
| | | this.setNameAndSetDiscountMap = new Map<String,Decimal>(); |
| | | cl = new List<productSet__c>(); |
| | | //获取从前一个页面传过来的"产品配套名称"和"产品配套数量" |
| | | this.gainQuoteSetNameAndSetQty = Apexpages.currentPage().getParameters().get('gainQuoteSetNameAndSetQty'); |
| | | system.debug('gainQuoteSetNameAndSetQty_Test_0_' + gainQuoteSetNameAndSetQty); |
| | | if (gainQuoteSetNameAndSetQty.length() >0) { |
| | | |
| | | //public List<SSPLine> activities {get;set;} |
| | | public List<String> setProductidFullList{get;set;} |
| | | public List<SSPLine> activities {get;set;} |
| | | public String setPFString {get;set;} |
| | | public String DataStatus {get;set;} |
| | | |
| | | //选项名称 |
| | | public String filterName { get; set; } |
| | | |
| | | |
| | | for (String setNameAndSetQty : gainQuoteSetNameAndSetQty.split(';')) { |
| | | setNameAndSetQtyMap.put(setNameAndSetQty.split(',')[0],Decimal.valueOf(setNameAndSetQty.split(',')[1])); |
| | | setNameAndSetDiscountMap.put(setNameAndSetQty.split(',')[0], Decimal.valueOf(setNameAndSetQty.split(',')[2])); |
| | | } |
| | | } |
| | | system.debug('setNameAndSetQtyMap_Test_0_' + setNameAndSetQtyMap); |
| | | } |
| | | public SearchSetProductController(ApexPages.StandardController controller){ |
| | | |
| | | rc = new Product_Set__c(); |
| | | sc = new Product_Set__c(); |
| | | cl = new List<Product_Set__c>(); |
| | | baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); |
| | | this(); |
| | | } |
| | | |
| | | public void init(){ |
| | | Report r = new Report(); |
| | | List<Report> rs = new List<Report>(); |
| | | rs=[Select id,DeveloperName,Name,NamespacePrefix from Report Where DeveloperName='Set_Product_Detail']; |
| | | if (rs.size()>0){ |
| | | //system.debug('DeveloperName=' + rs[0].DeveloperName); |
| | | //system.debug('Name=' + rs[0].Name); |
| | | //system.debug('NamespacePrefix=' + rs[0].NamespacePrefix); |
| | | reportid = rs[0].id; |
| | | reportid = reportid.substring(0,15); |
| | | } |
| | | } |
| | | system.debug('gainQuoteSetNameAndSetQty_Test' + gainQuoteSetNameAndSetQty); |
| | | system.debug('setNameAndSetQtyMap_Test' + setNameAndSetQtyMap); |
| | | activitiesSize = 0; |
| | | |
| | | searchproductSet(); |
| | | activitiesSize = activities.size(); |
| | | } |
| | | |
| | | public PageReference serContact(){ |
| | | String searchSql = 'Select id, name, Price__c, Product_Set_CD__c, Quantity__c,Valid_Status__c,Quote_Select_Info__c From Product_Set__c '; |
| | | String whereStr = 'Where Valid_Status__c = true '; |
| | | String whereSql = ''; |
| | | public PageReference searchproductSet() { |
| | | |
| | | if(SearchName != null && SearchName != ''){ |
| | | whereSql += 'and name Like ' + '\'%' + SearchName + '%\' '; |
| | | } |
| | | //查找有效的"产品配套" |
| | | cl = [Select id, Name,Code__c From productSet__c Where IsValid__c = true order by Name]; |
| | | |
| | | if(filterName != null && filterName != ''){ |
| | | whereSql += 'and Applicable_Department__c =\'' + filterName + '\''; |
| | | } |
| | | activities = new List<QELine>(); |
| | | List<QELine> selectedActivities = new List<QELine>(); |
| | | //将上个页面传过来的产品配套选中,并放到前面 |
| | | for(productSet__c psl : cl){ |
| | | if (setNameAndSetQtyMap.containsKey(psl.Name)) { |
| | | QELine a = new QELine(psl); |
| | | a.Quantity = setNameAndSetQtyMap.get(psl.Name); |
| | | a.QuantityReference = setNameAndSetQtyMap.get(psl.Name); |
| | | a.Discount = setNameAndSetDiscountMap.get(psl.Name); |
| | | a.isSelected = true; |
| | | selectedActivities.add(a); |
| | | } |
| | | |
| | | } |
| | | for(productSet__c psl : cl){ |
| | | |
| | | if (!setNameAndSetQtyMap.containsKey(psl.Name)) { |
| | | QELine a = new QELine(psl); |
| | | a.Quantity = 0; |
| | | a.QuantityReference = 0; |
| | | a.Discount = 0 ; |
| | | selectedActivities.add(a); |
| | | } else { |
| | | continue; |
| | | } |
| | | } |
| | | activities = selectedActivities; |
| | | return null; |
| | | } |
| | | |
| | | if(SearchCode != null && SearchCode != ''){ |
| | | whereSql += 'and Product_Set_CD__c like ' + '\'%' + SearchCode + '%\' '; |
| | | } |
| | | /* |
| | | if(SearchPrice != null && SearchPrice != ''){ |
| | | whereSql += 'and Price__c = \'' + SearchPrice + '\' '; |
| | | } |
| | | public PageReference serContact(){ |
| | | |
| | | String searchSql = 'Select id,Code__c,Name From productSet__c '; |
| | | String whereStr = 'Where IsValid__c = true '; |
| | | String whereSql = ''; |
| | | |
| | | if(SearchQuantity != null && SearchQuantity != ''){ |
| | | whereSql += 'and Quantity__c = \'' + SearchQuantity + '\' '; |
| | | } |
| | | */ |
| | | searchSql = searchSql + whereStr + whereSql; |
| | | if(SearchName != null && SearchName != ''){ |
| | | whereSql += ' and Name Like ' + '\'%' + SearchName + '%\' '; |
| | | } |
| | | |
| | | searchSql += ' order by Product_Set_CD__c limit 500'; |
| | | if(SearchCode != null && SearchCode != ''){ |
| | | whereSql += 'and Code__c like ' + '\'%' + SearchCode + '%\' '; |
| | | } |
| | | |
| | | cl = Database.query(searchSql); |
| | | activities = New List<SSPLine>(); |
| | | // SSPLine a = new SSPLine(); |
| | | for(Product_Set__c psl : cl){ |
| | | SSPLine a = new SSPLine(psl); |
| | | activities.add(a); |
| | | } |
| | | return null; |
| | | searchSql = searchSql + whereStr + whereSql; |
| | | |
| | | searchSql += ' order by Code__c limit 500'; |
| | | |
| | | cl = Database.query(searchSql); |
| | | |
| | | Map<String,QELine> selectedQELineMap = new Map<String,QELine>(); |
| | | if (activities.size() >0 ) { |
| | | for (QELine q :activities) { |
| | | if (q.isSelected == true) { |
| | | selectedQELineMap.put(q.setProductidFull, q); |
| | | } |
| | | } |
| | | } |
| | | |
| | | for(productSet__c psl : cl){ |
| | | |
| | | if (!setNameAndSetQtyMap.containsKey(psl.Name)) { |
| | | QELine a = new QELine(psl); |
| | | if (selectedQELineMap.containsKey(a.setProductidFull)) { |
| | | continue; |
| | | } else { |
| | | a.Quantity = 0 ; |
| | | selectedQELineMap.put(a.setProductidFull, a); |
| | | } |
| | | |
| | | } else { |
| | | continue; |
| | | } |
| | | |
| | | |
| | | } |
| | | activities = selectedQELineMap.values(); |
| | | return null; |
| | | } |
| | | public void SelectDone(){ |
| | | setPFString = ''; |
| | | setProductidFullList = New List<String>(); |
| | | if(activities.size()==1){ |
| | | setPFString = activities[0].setProductidFull; |
| | | }else{ |
| | | for(SSPLine arc : activities){ |
| | | String idAndQuantity ; |
| | | |
| | | for (QELine arc :activities) { |
| | | |
| | | if(arc.isSelected==true){ |
| | | if(String.isblank(setPFString)||setPFString==null){ |
| | | setPFString = arc.setProductidFull; |
| | | }else{ |
| | | setPFString = setPFString+','+arc.setProductidFull; |
| | | } |
| | | |
| | | |
| | | if (arc.Quantity > 0) { |
| | | idAndQuantity = arc.setProductidFull +','+ arc.Quantity +','+ arc.Discount; |
| | | |
| | | if(String.isblank(setPFString)||setPFString==null){ |
| | | |
| | | setPFString = idAndQuantity; |
| | | }else{ |
| | | |
| | | setPFString = setPFString +';'+ idAndQuantity; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | DataStatus = 'Fin'; |
| | | |
| | | } |
| | | |
| | | //选项卡集合 |
| | | public static List<SelectOption> getlistViewOptions() { |
| | | List<SelectOption> listViewOptions = new List<SelectOption>(); |
| | | listViewOptions.add(new SelectOption('', '--无--')); |
| | | listViewOptions.add(new SelectOption('消化科','消化科')); |
| | | listViewOptions.add(new SelectOption('呼吸科','呼吸科')); |
| | | listViewOptions.add(new SelectOption('普外科','普外科')); |
| | | listViewOptions.add(new SelectOption('泌尿科','泌尿科')); |
| | | listViewOptions.add(new SelectOption('妇科','妇科')); |
| | | listViewOptions.add(new SelectOption('耳鼻喉科','耳鼻喉科')); |
| | | listViewOptions.add(new SelectOption('能量','能量')); |
| | | listViewOptions.add(new SelectOption('SI','SI')); |
| | | listViewOptions.add(new SelectOption('外科通用','外科通用')); |
| | | return listViewOptions; |
| | | } |
| | | |
| | | public class SSPLine { |
| | | public class QELine { |
| | | public Boolean isSelected {get;set;} |
| | | public String setProductid { get; set; } |
| | | public String setProductidFull { get; set; } |
| | | public Decimal Quantity { get; set; } |
| | | public Product_Set__c theObject { get; set; } |
| | | public Decimal QuantityReference { get; set; } |
| | | public Decimal Discount { get; set; } |
| | | public String Name { get; set; } |
| | | public String Product_Set_CD_c { get; set; } |
| | | public String Quote_Select_Info_c { get; set; } |
| | | public Boolean Valid_c { get; set; } |
| | | public String Code { get; set; } |
| | | |
| | | public SSPLine(Product_Set__c psl) { |
| | | isSelected = false; |
| | | setProductid = psl.id; |
| | | setProductid = setProductid.substring(0,15); |
| | | public QELine(productSet__c psl) { |
| | | isSelected = false; |
| | | setProductidFull = psl.id; |
| | | Name = psl.Name; |
| | | Product_Set_CD_c= psl.Product_Set_CD__c; |
| | | Quantity = psl.Quantity__c; |
| | | Quote_Select_Info_c = psl.Quote_Select_Info__c; |
| | | Valid_c = psl.Valid_Status__c; |
| | | Code = psl.Code__c; |
| | | |
| | | } |
| | | } |
| | | } |