| | |
| | | if(NeedCreateNMC.size()>0){ |
| | | //遍历需要创建报告书的合同 |
| | | for(Maintenance_Contract__c tempNMC : NeedCreateNMC){ |
| | | //定义变量,判断是否需要顺延 |
| | | // //定义变量,判断是否需要顺延 |
| | | Boolean isDelay = false; |
| | | //第一版:当合同生效日晚于【合同开始日+3个月】,第一次发放计划顺延为4/1~6/30 (下一季度)。 |
| | | //第二版:合同盖章完毕日晚于【合同开始日+3个月】,不生成第一个区间(即 顺延为下一季度)。 |
| | | //第三版:盖章完毕日晚于合同开始日1个月以上,自动从第二季度开始 |
| | | // //第一版:当合同生效日晚于【合同开始日+3个月】,第一次发放计划顺延为4/1~6/30 (下一季度)。 |
| | | // //第二版:合同盖章完毕日晚于【合同开始日+3个月】,不生成第一个区间(即 顺延为下一季度)。 |
| | | // //第三版:盖章完毕日晚于合同开始日1个月以上,自动从第二季度开始 |
| | | if(tempNMC.Contract_print_completed__c > tempNMC.Contract_Start_Date__c.addMonths(1)){ |
| | | isDelay = true; |
| | | } |
| | | |
| | | //获取当前遍历的合同的季度数 并遍历 生成报告书 |
| | | for(Integer qnum = 1;qnum <= QuarterNumMap.get(tempNMC.Id);qnum++){ |
| | | //如果 当合同生效日晚于【合同开始日+3个月】, 顺延为第二季度 |
| | | // //如果 当合同生效日晚于【合同开始日+3个月】, 顺延为第二季度 |
| | | if(isDelay){ |
| | | isDelay = false; |
| | | continue; |
| | | } |
| | | |
| | | //2022-03-01 mzy SLA报告书上线后问题 start |
| | | //合同日 |
| | | Date ContractConclusionDate = tempNMC.Contract_Conclusion_Date__c; |
| | | //2022-03-01 mzy SLA报告书上线后问题 end |
| | | |
| | | //计算开始日期 |
| | | Date DistributionStartDate= tempNMC.Contract_Start_Date__c.addMonths((qnum-1) * 3); |
| | | //计算结束日期 |
| | | Date DistributionEndDate = tempNMC.Contract_Start_Date__c.addMonths((qnum) * 3).addDays(-1); |
| | | |
| | | //2022-03-01 mzy SLA报告书上线后问题 start |
| | | //合同日到满一个季度的期间大于2个月则需要生成发放计划,小于2个月则不需要生成计划 |
| | | //为了防止出现 55485 的那种情况(合同日所在区间之前的季度不再生成) |
| | | if ((ContractConclusionDate.addMonths(2)>DistributionEndDate) || (ContractConclusionDate > DistributionEndDate)) { |
| | | continue; |
| | | } |
| | | //2022-03-01 mzy SLA报告书上线后问题 end |
| | | |
| | | //开始生成服务合同报告书 |
| | | NewMaintenanceReport_Task__c tempNMCT = new NewMaintenanceReport_Task__c(); |
| | | //报告书名字 |