123
chenjingwu
2024-04-24 a84826c5bb3d309c05927e62a52431fe0caa1c69
force-app/main/default/classes/MaintenanceProductDataController.cls
@@ -437,7 +437,7 @@
            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) {
@@ -539,7 +539,7 @@
                // chenjingwu 3+2多年保修 20240417 start
                exmpdDetailsRecordsMap = new Map<String,List<ExMpdDetailsInfo>>(); 
                muCountMap = new Map<String,Integer>();
                List<Maintenance_Product_Data_Details__c> exDetailList = [select Id,MultiYearWarranty__c,AgeLimit__c,AgeLimit_Old__c,MultiOneYearWarrantyPrice__c,MultiOneYearWarrantyPrice_Old__c,AmountWithheld__c,AmountWithheld_Old__c,ProductsID__c from Maintenance_Product_Data_Details__c where ProductsID__c in:idList and RecordTypeId = '012C50000000jefIAA'];
                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){
                    for(String id: idList){
                        List<ExMpdDetailsInfo> exList = new List<ExMpdDetailsInfo>();
@@ -553,8 +553,10 @@
                        exmpdDetailsRecordsMap.put(id,exList);
                    }
                }
                System.debug('chenjingwu=>' + idList);
                System.debug('chenjingwu=>' + muCountMap);
                System.debug('chenjingwu=>' + exmpdDetailsRecordsMap);
                System.debug('chenjingwu=>' + mpdDetailsRecords);
                // chenjingwu 3+2多年保修   20240417 end
            } 
        }    
@@ -649,7 +651,8 @@
                //更新
                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 str = '%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:str order by Name desc Limit 1 ];
            if(mpdd_Name.size()>0){
                String[] nameI= mpdd_Name[0].Name.split('-');
                i = Integer.valueOf(nameI[1])+1;
@@ -905,15 +908,16 @@
                        // chenjingwu 3+2多年保修 20240417 end
                        // 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 i = 0;
                        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'+ i;
                            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;
@@ -921,27 +925,27 @@
                            insmpdd.AmountWithheld_Old__c = mu.AmountWithheld__c;
                            insmpdd.RecordTypeId = '012C50000000jefIAA';
                            exIntList.add(insmpdd);
                            i++;
                            str++;
                        }
                    } else{
                        Integer i = 0;
                        Integer str = 0;
                        for(List<ExMpdDetailsInfo> li: exmpdDetailsRecordsMap.values()){
                            for(ExMpdDetailsInfo ex: li){
                                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'+ i;
                                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);
                                i++;
                                str++;
                            }
                        }
                    }