| | |
| | | public List<MultiYearWarranty__c> muList { get; set; } |
| | | public Map<String,List<MultiYearWarranty__c>> muMap { get; set; } |
| | | public Map<String,Integer> muCountMap {get; set; } |
| | | public Map<String,Integer> muCountViewMap {get; set; } |
| | | public Map<String,List<ExMpdDetailsInfo>> exmpdDetailsRecordsMap { get; set; } |
| | | public Map<String,List<ExMpdDetailsInfo>> exmpdDetailsRecordsViewMap { get; set; } |
| | | // chenjingwu 3+2多年保修 end |
| | | |
| | | /*****************画面表示Bean******************/ |
| | |
| | | for (Integer i=0;i<column_Old.size();i++) { |
| | | mpdsoql += ',' + column_Old[i]; |
| | | } |
| | | mpdsoql += ' from Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c = \''+id+'\''; |
| | | mpdsoql += ' from Maintenance_Product_Data_Details__c where RecordTypeId != \'012C50000000jefIAA\' and Maintenance_Product_Data__c = \''+id+'\''; |
| | | // 選択済みの明细を取得 |
| | | mpdDetailsSelected = Database.query(mpdsoql); |
| | | for (Maintenance_Product_Data_Details__c mpdd1 : mpdDetailsSelected) { |
| | |
| | | ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '还没有上传附件,请上传附件!')); |
| | | } |
| | | } |
| | | //System.debug('============02:'+mpdDetailsRecords); |
| | | //System.debug('============02:'+mpdDetailsRecords); |
| | | if(mpdDetailsRecords.size() > 0 && RecordTypeName.equals('GuranteeMain')){ |
| | | // chenjingwu 3+2多年保修 20240417 start |
| | | List<String> idList = new List<String>(); |
| | | for(MpdDetailsInfo mp :mpdDetailsRecords){ |
| | | idList.add(mp.mpded.ProductsID__c); |
| | | } |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | // chenjingwu 3+2多年保修 20240417 start |
| | | exmpdDetailsRecordsMap = new Map<String,List<ExMpdDetailsInfo>>(); |
| | | exmpdDetailsRecordsViewMap = new Map<String,List<ExMpdDetailsInfo>>(); |
| | | muCountMap = new Map<String,Integer>(); |
| | | muCountViewMap = new Map<String,Integer>(); |
| | | List<Maintenance_Product_Data_Details__c> exDetailList = [select Id,MultiYearWarranty__c,MultiYearWarranty__r.AgeLimit__c,MultiYearWarranty__r.MultiOneYearWarrantyPrice__c,MultiYearWarranty__r.AmountWithheld__c,AgeLimit__c,AgeLimit_Old__c,MultiOneYearWarrantyPrice__c,MultiOneYearWarrantyPrice_Old__c,AmountWithheld__c,AmountWithheld_Old__c,ProductsID__c,ProductsID__r.Name from Maintenance_Product_Data_Details__c where ProductsID__c in:idList and RecordTypeId = '012C50000000jefIAA']; |
| | | for(String id: idList){ |
| | | List<ExMpdDetailsInfo> exList = new List<ExMpdDetailsInfo>(); |
| | | List<ExMpdDetailsInfo> exViewList = new List<ExMpdDetailsInfo>(); |
| | | for(Maintenance_Product_Data_Details__c mpdd: exDetailList){ |
| | | if(id == mpdd.ProductsID__c){ |
| | | exList.add(new ExMpdDetailsInfo(mpdd)); |
| | | exViewList.add(new ExMpdDetailsInfo(mpdd)); |
| | | } |
| | | } |
| | | if(exList.size() <= 0){ |
| | | exViewList.add(new ExMpdDetailsInfo()); |
| | | } |
| | | ExMpdDetailsInfo exd = new ExMpdDetailsInfo(); |
| | | exd.mpdrdd.ProductsID__c = id; |
| | | exList.add(exd); |
| | | muCountMap.put(id,exList.size()); |
| | | muCountViewMap.put(id,exViewList.size()); |
| | | exmpdDetailsRecordsMap.put(id,exList); |
| | | exmpdDetailsRecordsViewMap.put(id,exViewList); |
| | | } |
| | | System.debug('chenjingwu=>' + idList); |
| | | System.debug('chenjingwu=>' + muCountMap); |
| | | System.debug('chenjingwu=>' + exmpdDetailsRecordsMap); |
| | | System.debug('chenjingwu=>' + mpdDetailsRecords); |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | } |
| | | } |
| | | } |
| | | // 检索 |
| | |
| | | //更新 |
| | | mpd_Name = [SELECT id,Name FROM Maintenance_Product_Data__c WHERE id =:id]; |
| | | } |
| | | List<Maintenance_Product_Data_Details__c> mpdd_Name = [SELECT id,Name FROM Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c =:id order by Name desc Limit 1 ]; |
| | | String str1 = '%ex%'; |
| | | List<Maintenance_Product_Data_Details__c> mpdd_Name = [SELECT id,Name FROM Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c =:id and (NOT Name like:str1) order by Name desc Limit 1 ]; |
| | | if(mpdd_Name.size()>0){ |
| | | String[] nameI= mpdd_Name[0].Name.split('-'); |
| | | i = Integer.valueOf(nameI[1])+1; |
| | |
| | | //20200618 类型一致不一致不能保存 add start |
| | | Boolean isWarning = false; |
| | | String contentWarning = ''; |
| | | // chenjingwu 3+2多年保修 20240417 start |
| | | List<String> idList = new List<String>(); |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | for (MaintenanceProductDataDetailsInfo ass : mpdDetailsRecordsView) { |
| | | Roll = Roll+1; |
| | | if(ass.check == true){ |
| | |
| | | InsAfterDel.Maintenance_Product_Data__c = mpd_Name[0].id; |
| | | InsAfterDel.Name = mpd_Name[0].Name + '-'+ str; |
| | | InsAfterDel.ProductsID__c = ass.Prod.id; |
| | | // chenjingwu 3+2多年保修 20240417 start |
| | | idList.add(ass.Prod.id); |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | switch on RecordTypeName { |
| | | when 'ImportantProduct'{ |
| | | //InsAfterDel.RecordTypeName__c = 'ImportantProduct'; |
| | |
| | | Ins.add(InsAfterDel); |
| | | } |
| | | } |
| | | // chenjingwu 3+2多年保修 20240417 start |
| | | // muCountMap = new Map<String,Integer>(); |
| | | muList = [select Id,AgeLimit__c,MultiOneYearWarrantyPrice__c,AmountWithheld__c,ProductName__r.Name,ProductName__c from MultiYearWarranty__c where ProductName__c in: idList order By ProductName__c]; |
| | | for(AggregateResult objAgr: [select ProductName__c,COUNT(Id) total from MultiYearWarranty__c where ProductName__c in:idList group by ProductName__c]){ |
| | | muCountMap.put((String)objAgr.get('ProductName__c'), (Integer)objAgr.get('total') + 1); |
| | | } |
| | | // muMap = new Map<String,List<MultiYearWarranty__c>>(); |
| | | for(String id: idList){ |
| | | List<MultiYearWarranty__c> mus = new List<MultiYearWarranty__c>(); |
| | | for(MultiYearWarranty__c mu: muList){ |
| | | if(id == mu.ProductName__c){ |
| | | mus.add(mu); |
| | | List<Maintenance_Product_Data_Details__c> exIntList = new List<Maintenance_Product_Data_Details__c>(); |
| | | if(RecordTypeName.equals('GuranteeMain')){ |
| | | // chenjingwu 3+2多年保修 20240417 start |
| | | List<String> idList = new List<String>(); |
| | | for(MaintenanceProductDataDetailsInfo ass :mpdDetailsRecordsView){ |
| | | if(ass.check == true){ |
| | | idList.add(ass.Prod.id); |
| | | } |
| | | } |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | List<Maintenance_Product_Data_Details__c> exDetailList = [select Id,MultiYearWarranty__c,MultiYearWarranty__r.AgeLimit__c,MultiYearWarranty__r.MultiOneYearWarrantyPrice__c,MultiYearWarranty__r.AmountWithheld__c,AgeLimit__c,AgeLimit_Old__c,MultiOneYearWarrantyPrice__c,MultiOneYearWarrantyPrice_Old__c,AmountWithheld__c,AmountWithheld_Old__c,ProductsID__c,ProductsID__r.Name from Maintenance_Product_Data_Details__c where ProductsID__c in:idList and RecordTypeId = '012C50000000jefIAA']; |
| | | if(exDetailList.size() <= 0){ |
| | | // chenjingwu 3+2多年保修 20240417 start |
| | | muList = [select Id,AgeLimit__c,MultiOneYearWarrantyPrice__c,AmountWithheld__c,ProductName__r.Name,ProductName__c from MultiYearWarranty__c where ProductName__c in: idList order By ProductName__c]; |
| | | Integer str = 0; |
| | | for(MultiYearWarranty__c mu: muList){ |
| | | Maintenance_Product_Data_Details__c insmpdd = new Maintenance_Product_Data_Details__c(); |
| | | insmpdd.Maintenance_Product_Data__c = mpd_Name[0].id; |
| | | insmpdd.Name = mpd_Name[0].Name + '-ex'+ str; |
| | | insmpdd.AgeLimit__c = mu.AgeLimit__c; |
| | | insmpdd.MultiYearWarranty__c = mu.Id; |
| | | insmpdd.MultiOneYearWarrantyPrice__c = mu.MultiOneYearWarrantyPrice__c; |
| | | insmpdd.AmountWithheld__c = mu.AmountWithheld__c; |
| | | insmpdd.ProductsID__c = mu.ProductName__c; |
| | | |
| | | |
| | | insmpdd.AgeLimit_Old__c = mu.AgeLimit__c; |
| | | insmpdd.MultiOneYearWarrantyPrice_Old__c = mu.MultiOneYearWarrantyPrice__c; |
| | | insmpdd.AmountWithheld_Old__c = mu.AmountWithheld__c; |
| | | insmpdd.RecordTypeId = '012C50000000jefIAA'; |
| | | exIntList.add(insmpdd); |
| | | str++; |
| | | } |
| | | } else{ |
| | | delete exDetailList; |
| | | Integer str = 0; |
| | | for(List<ExMpdDetailsInfo> li: exmpdDetailsRecordsMap.values()){ |
| | | for(ExMpdDetailsInfo ex: li){ |
| | | if(ex.mpdrdd.AgeLimit__c > 0){ |
| | | Maintenance_Product_Data_Details__c InsAfterDel = new Maintenance_Product_Data_Details__c(); |
| | | InsAfterDel.Maintenance_Product_Data__c = mpd_Name[0].id; |
| | | InsAfterDel.Name = mpd_Name[0].Name + '-ex'+ str; |
| | | InsAfterDel.AgeLimit__c = ex.mpdrdd.AgeLimit__c; |
| | | InsAfterDel.MultiYearWarranty__c = ex.mpdrdd.MultiYearWarranty__c; |
| | | InsAfterDel.MultiOneYearWarrantyPrice__c = ex.mpdrdd.MultiOneYearWarrantyPrice__c; |
| | | InsAfterDel.AmountWithheld__c = ex.mpdrdd.AmountWithheld__c; |
| | | InsAfterDel.ProductsID__c = ex.mpdrdd.ProductsID__c; |
| | | |
| | | InsAfterDel.AgeLimit_Old__c = ex.Prod.AgeLimit__c; |
| | | InsAfterDel.MultiOneYearWarrantyPrice_Old__c = ex.Prod.MultiOneYearWarrantyPrice__c; |
| | | InsAfterDel.AmountWithheld_Old__c = ex.Prod.AmountWithheld__c; |
| | | InsAfterDel.RecordTypeId = '012C50000000jefIAA'; |
| | | exIntList.add(InsAfterDel); |
| | | str++; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | mus.add(new MultiYearWarranty__c(ProductName__c = id)); |
| | | muMap.put(id,mus); |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | } |
| | | System.debug('chenjingwu=>' + muCountMap); |
| | | System.debug('chenjingwu=>' + muMap); |
| | | System.debug('chenjingwu=>' + mpdDetailsRecordsView); |
| | | |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | if(isWarning){ |
| | | return null; |
| | | }else{ |
| | | if(Ins.size()>0){ |
| | | upsert Ins; |
| | | upsert exIntList; |
| | | return setEditAble(); |
| | | }else{ |
| | | return null; |
| | |
| | | } |
| | | Ins.add(upMpd); |
| | | } |
| | | List<Maintenance_Product_Data_Details__c> exIntList = new List<Maintenance_Product_Data_Details__c>(); |
| | | List<Maintenance_Product_Data_Details__c> exDetailList = new List<Maintenance_Product_Data_Details__c>(); |
| | | if(RecordTypeName.equals('GuranteeMain')){ |
| | | List<Maintenance_Product_Data__c> mpd_Name = new List<Maintenance_Product_Data__c>(); |
| | | mpd_Name = [SELECT id,Name FROM Maintenance_Product_Data__c WHERE id =:id]; |
| | | exDetailList = [SELECT id,Name FROM Maintenance_Product_Data_Details__c where Maintenance_Product_Data__c =:id and RecordTypeId = '012C50000000jefIAA']; |
| | | Integer str = 0; |
| | | for(List<ExMpdDetailsInfo> li: exmpdDetailsRecordsMap.values()){ |
| | | for(ExMpdDetailsInfo ex: li){ |
| | | if(ex.mpdrdd.AgeLimit__c > 0){ |
| | | Maintenance_Product_Data_Details__c InsAfterDel = new Maintenance_Product_Data_Details__c(); |
| | | InsAfterDel.Maintenance_Product_Data__c = mpd_Name[0].id; |
| | | InsAfterDel.Name = mpd_Name[0].Name + '-ex'+ str; |
| | | InsAfterDel.AgeLimit__c = ex.mpdrdd.AgeLimit__c; |
| | | InsAfterDel.MultiYearWarranty__c = ex.mpdrdd.MultiYearWarranty__c; |
| | | InsAfterDel.MultiOneYearWarrantyPrice__c = ex.mpdrdd.MultiOneYearWarrantyPrice__c; |
| | | InsAfterDel.AmountWithheld__c = ex.mpdrdd.AmountWithheld__c; |
| | | InsAfterDel.ProductsID__c = ex.mpdrdd.ProductsID__c; |
| | | |
| | | InsAfterDel.AgeLimit_Old__c = ex.Prod.AgeLimit__c; |
| | | InsAfterDel.MultiOneYearWarrantyPrice_Old__c = ex.Prod.MultiOneYearWarrantyPrice__c; |
| | | InsAfterDel.AmountWithheld_Old__c = ex.Prod.AmountWithheld__c; |
| | | InsAfterDel.RecordTypeId = '012C50000000jefIAA'; |
| | | exIntList.add(InsAfterDel); |
| | | str++; |
| | | } |
| | | } |
| | | } |
| | | // chenjingwu 3+2多年保修 20240417 end |
| | | } |
| | | System.debug('chenjingwu=>' + exIntList); |
| | | if(isWarning){ |
| | | return null; |
| | | }else{ |
| | | if(Ins.size()>0){ |
| | | update Ins; |
| | | if(exIntList.size() > 0){ |
| | | delete exDetailList; |
| | | upsert exIntList; |
| | | } |
| | | return UnabletoEdit(); |
| | | } |
| | | else{ |
| | |
| | | } |
| | | ref.setRedirect(true); |
| | | return ref; |
| | | } |
| | | public String ProId {get;set;} |
| | | public Integer index{get;set;} |
| | | public PageReference addEx(){ |
| | | ExMpdDetailsInfo ex = new ExMpdDetailsInfo(); |
| | | ex.mpdrdd.ProductsID__c = ProId; |
| | | exmpdDetailsRecordsMap.get(ProId).add(ex); |
| | | muCountMap.get(ProId); |
| | | return null; |
| | | } |
| | | public PageReference deleteEx(){ |
| | | exmpdDetailsRecordsMap.get(ProId).remove(index); |
| | | muCountMap.get(ProId); |
| | | return null; |
| | | } |
| | | |
| | | //搜索时的sql |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | class ExMpdDetailsInfo { |
| | | public Boolean check { get; set; } |
| | | public Boolean oldCheck { get; set; } |
| | | public Boolean canSelect { get; set; } |
| | | public MultiYearWarranty__c Prod { get; set; } |
| | | public Maintenance_Product_Data_Details__c mpdrdd {get; set;} |
| | | |
| | | public ExMpdDetailsInfo(Maintenance_Product_Data_Details__c e) { |
| | | check = true; |
| | | oldCheck = true; |
| | | mpdrdd = e; |
| | | Prod = e.MultiYearWarranty__r; |
| | | canSelect = true; |
| | | } |
| | | public ExMpdDetailsInfo(MultiYearWarranty__c e) { |
| | | check = false; |
| | | oldCheck = false; |
| | | mpdrdd = new Maintenance_Product_Data_Details__c(); |
| | | Prod = e; |
| | | canSelect = true; |
| | | } |
| | | public ExMpdDetailsInfo() { |
| | | check = false; |
| | | oldCheck = false; |
| | | mpdrdd = new Maintenance_Product_Data_Details__c(); |
| | | Prod = new MultiYearWarranty__c(); |
| | | canSelect = true; |
| | | } |
| | | } |
| | | |
| | | } |