public with sharing class NewDBPaymentPlanLoadController { public String idl {get; set;} public String statusSave {get; set;} public Datetime testDateTime {set; get;} public MaintanceContractPack__c PageMCEElement {get; set;} public List MC {get; set;} public Boolean printContract { get; private set; } public Boolean printAgent { get; private set; } public Boolean limitPrice { get; private set; } public Integer Contract_validMonth {get; set;} public Boolean UpperLimitPrice { get; private set; } public NewDBPaymentPlanLoadController() { idl = ApexPages.currentPage().getParameters().get('id'); } public void init() { statusSave = 'Fin'; testDateTime = system.now(); //printContract = true; List PageMCE = [select id, Name, RecordTypeId, Contract_Type__c, Is_Standard_Contract__c, Small_Repair_Time__c, Big_Repair_Time__c, Live_Technical_Support_Time__c, Tour_Check__c, URF_Contract__c, Engineer_Name__c, Phone_Number__c, Inspection_Time__c, Dedust__c, First_Party_Contract_Number__c, Second_Party_Contract_Number__c, Negotiate_Mean__c, Term_Of_Payment__c, old_Is_RecognitionModel__c, Total_Payment_Time__c, Payment_Plan_Sum_First__c, Payment_Plan_Date_First__c, Payment_Plan_Sum_Fifth__c, Payment_Plan_Date_Fifth__c, Payment_Plan_Sum_Third__c, Payment_Plan_Date_Third__c, Payment_Plan_Sum_Forth__c, Payment_Plan_Date_Forth__c, Payment_Plan_Sum_Second__c, Payment_Plan_Date_Second__c, Payment_Plan_Sum_Sixth__c, Payment_Plan_Date_Sixth__c, Payment_Plan_Sum_First_in_Word__c, Payment_Plan_Sum_Second_in_Word__c, Payment_Plan_Sum_Third_in_Word__c, Payment_Plan_Sum_Forth_in_Word__c, Payment_Plan_Sum_Fifth_in_Word__c, Payment_Plan_Sum_Sixth_in_Word__c, Amount_Warranty_Coverage__c, Amount_Warranty_Coverage_In_Word__c, Total_Contract_Amount_In_Words__c, Contract_Amount__c, Limit_Price_Amount__c, Contract_Range__c, one_off_payment_agreed_period__c, Service_contract_target_number__c, Contract_End_Date__c, Contract_Start_Date__c, Estimation_Id__c, Estimation_Id__r.Estimate_Target__c, Estimate_Target__c, Decided_Estimation__c, FieldRequest_quotation_Amount__c, Total_FieldRequest_quotation_In_Words__c, Limit_Price_Amount_In_Words__c from MaintanceContractPack__c where id = :idl]; //小合同 List MCList = [select id, Name, Payment_Plan_Sum_First__c, Payment_Plan_Date_First__c, Payment_Plan_Sum_Fifth__c, Payment_Plan_Date_Fifth__c, Payment_Plan_Sum_Third__c, Payment_Plan_Date_Third__c, Payment_Plan_Sum_Forth__c, Payment_Plan_Date_Forth__c, Payment_Plan_Sum_Second__c, Payment_Plan_Date_Second__c, Payment_Plan_Sum_Sixth__c, Payment_Plan_Date_Sixth__c, Payment_Plan_Sum_First_in_Word__c, Payment_Plan_Sum_Second_in_Word__c, Payment_Plan_Sum_Third_in_Word__c, Payment_Plan_Sum_Forth_in_Word__c, Payment_Plan_Sum_Fifth_in_Word__c, Payment_Plan_Sum_Sixth_in_Word__c, Management_Code__c, Contract_Amount__c, Contract_Amount_Text__c, Total_Contract_Amount_In_Words__c, Service_contract_target_number__c, Contract_End_Date__c, Contract_Start_Date__c, Contract_Range__c, Contract_Period__c from Maintenance_Contract__c where MaintanceContractPack__c = :idl]; if (MCList.size()>0) { MC = MCList; } //权限管理-Denid if (PageMCE.size() == 1) { PageMCEElement = PageMCE[0]; } else { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '找不到对应的维修合同')); statusSave = 'Denied'; } if (statusSave.equals('Fin') && PageMCEElement.RecordTypeId.equals('012C80000000NHZIA2')) { printContract = true; printAgent = false; } if (statusSave.equals('Fin') && PageMCEElement.RecordTypeId.equals('012C80000000NHYIA2')) { printContract = false; printAgent = true; } if (PageMCEElement.Contract_Type__c == '上限合同') { limitPrice = true; } if (PageMCEElement.Contract_End_Date__c != null || PageMCEElement.Contract_Start_Date__c != null) { Contract_validMonth = Integer.valueOf(PageMCEElement.Contract_Range__c); // Contract_validMonth = PageMCEElement.Contract_Start_Date__c.monthsBetween(PageMCEElement.Contract_End_Date__c); System.debug('Contract_validMonth:'+Contract_validMonth); } } public PageReference save() { /*验证是否输入付款计划 *多次付款至少输入付款计划1和付款计划1金额 *一次性付款需要输入一次性付款约定期限 */ if (PageMCEElement.Is_Standard_Contract__c == null ) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '请选择是否标准合同!')); statusSave = 'Denied'; return null; } if (PageMCEElement.Term_Of_Payment__c != null && '多次付款'.equals(PageMCEElement.Term_Of_Payment__c)) { if (PageMCEElement.Payment_Plan_Sum_First__c == null || PageMCEElement.Payment_Plan_Date_First__c == null || PageMCEElement.Payment_Plan_Sum_First__c == 0) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '请输入至少一个付款计划!')); statusSave = 'Denied'; return null; } } else if (PageMCEElement.Term_Of_Payment__c != null && '一次性付款'.equals(PageMCEElement.Term_Of_Payment__c) && PageMCEElement.one_off_payment_agreed_period__c == null ) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '请输入付款计划!')); statusSave = 'Denied'; return null; } // gzw fix 验证设置为全局 if ((PageMCEElement.Inspection_Time__c == null || ''.equals(PageMCEElement.Inspection_Time__c) || '0'.equals(PageMCEElement.Inspection_Time__c)) //URF限次合同2期 LY 20220811 start && !PageMCEElement.URF_Contract__c) { //URF限次合同2期 LY 20220811 end System.debug('11111111111' + PageMCEElement.Inspection_Time__c); PageMCEElement.Inspection_Time__c.adderror('点检次数必选项'); statusSave = 'Denied'; return null; } // 点检次数必须填 Star // saveErrorflag = false; // if (PageMCEElement.Is_Standard_Contract__c == '是') { // if (PageMCEElement.Contract_End_Date__c == null || PageMCEElement.Contract_Start_Date__c == null) { // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '请审批报价并decide')); // statusSave = 'Denied'; // return null; // } // } // 点检次数必须填 end Savepoint sp = Database.setSavepoint(); try { // // 对于标准合同进行验证必填项 string requiredInput = ''; if (PageMCEElement.Is_Standard_Contract__c.equals('是')) { if (PageMCEElement.Engineer_Name__c == null || ''.equals(PageMCEElement.Engineer_Name__c)) { requiredInput += '工程师姓名'; } if (PageMCEElement.Small_Repair_Time__c == null || ''.equals(PageMCEElement.Small_Repair_Time__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '小修理时限'; } if (PageMCEElement.Big_Repair_Time__c == null || ''.equals(PageMCEElement.Big_Repair_Time__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '大修理时限'; } if (PageMCEElement.Live_Technical_Support_Time__c == null || ''.equals(PageMCEElement.Live_Technical_Support_Time__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '现场技术支持时限'; } if (PageMCEElement.Tour_Check__c == null || ''.equals(PageMCEElement.Tour_Check__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '巡回'; } if (PageMCEElement.Inspection_Time__c == null || ''.equals(PageMCEElement.Inspection_Time__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '点检'; } if (PageMCEElement.Dedust__c == null || ''.equals(PageMCEElement.Dedust__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '除尘'; } if (PageMCEElement.First_Party_Contract_Number__c == null || ''.equals(PageMCEElement.First_Party_Contract_Number__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '合同份数:甲方:'; } if (PageMCEElement.Second_Party_Contract_Number__c == null || ''.equals(PageMCEElement.Second_Party_Contract_Number__c)) { if (!''.equals(requiredInput)) { requiredInput += '、'; } requiredInput += '合同份数:乙方:'; } if (!''.equals(requiredInput)) { statusSave = 'Denied'; ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.ERROR, '该合同是标准合同,请输入:' + requiredInput)); return null; } } List listMc = new List(); // 处理大合同 若付款计划金额为空,则对应的付款计划日也为空 if (PageMCEElement.Payment_Plan_Sum_First__c == null) { PageMCEElement.Payment_Plan_Date_First__c = null; } if (PageMCEElement.Payment_Plan_Sum_Second__c == null) { PageMCEElement.Payment_Plan_Date_Second__c = null; } if (PageMCEElement.Payment_Plan_Sum_Third__c == null) { PageMCEElement.Payment_Plan_Date_Third__c = null; } if (PageMCEElement.Payment_Plan_Sum_Forth__c == null) { PageMCEElement.Payment_Plan_Date_Forth__c = null; } if (PageMCEElement.Payment_Plan_Sum_Fifth__c == null) { PageMCEElement.Payment_Plan_Date_Fifth__c = null; } if (PageMCEElement.Payment_Plan_Sum_Sixth__c == null) { PageMCEElement.Payment_Plan_Date_Sixth__c = null; } // 处理 将大合同的文本信息 录入小合同中 start wu for (Maintenance_Contract__c m : MC) { // 文本信息 m.Small_Repair_Time__c = PageMCEElement.Small_Repair_Time__c; m.Engineer_Name__c = PageMCEElement.Engineer_Name__c; m.Big_Repair_Time__c = PageMCEElement.Big_Repair_Time__c; m.Live_Technical_Support_Time__c = PageMCEElement.Live_Technical_Support_Time__c; m.Tour_Check__c = PageMCEElement.Tour_Check__c; m.Dedust__c = PageMCEElement.Dedust__c; m.First_Party_Contract_Number__c = PageMCEElement.First_Party_Contract_Number__c; m.Second_Party_Contract_Number__c = PageMCEElement.Second_Party_Contract_Number__c; m.Phone_Number__c = PageMCEElement.Phone_Number__c; m.Inspection_Time__c = PageMCEElement.Inspection_Time__c; m.Negotiate_Mean__c = PageMCEElement.Negotiate_Mean__c; // 日期 小合同付款金额不为空 方可给日期赋值 if (m.Payment_Plan_Sum_First__c != null) { m.Payment_Plan_Date_First__c = PageMCEElement.Payment_Plan_Date_First__c; } if (m.Payment_Plan_Sum_Second__c != null) { m.Payment_Plan_Date_Second__c = PageMCEElement.Payment_Plan_Date_Second__c; } if (m.Payment_Plan_Sum_Third__c != null) { m.Payment_Plan_Date_Third__c = PageMCEElement.Payment_Plan_Date_Third__c; } if (m.Payment_Plan_Sum_Forth__c != null) { m.Payment_Plan_Date_Forth__c = PageMCEElement.Payment_Plan_Date_Forth__c; } if (m.Payment_Plan_Sum_Fifth__c != null) { m.Payment_Plan_Date_Fifth__c = PageMCEElement.Payment_Plan_Date_Fifth__c; } if (m.Payment_Plan_Sum_Sixth__c != null) { m.Payment_Plan_Date_Sixth__c = PageMCEElement.Payment_Plan_Date_Sixth__c; } if (PageMCEElement.Term_Of_Payment__c != null && '多次付款'.equals(PageMCEElement.Term_Of_Payment__c)) { // 判断每一期的金额总额是否等于最终用户合同金额 Contract_Amount__c decimal PriceSum2 = (m.Payment_Plan_Sum_First__c == null ? 0 : m.Payment_Plan_Sum_First__c) + (m.Payment_Plan_Sum_Second__c == null ? 0 : m.Payment_Plan_Sum_Second__c) + (m.Payment_Plan_Sum_Third__c == null ? 0 : m.Payment_Plan_Sum_Third__c) + (m.Payment_Plan_Sum_Forth__c == null ? 0 : m.Payment_Plan_Sum_Forth__c) + (m.Payment_Plan_Sum_Fifth__c == null ? 0 : m.Payment_Plan_Sum_Fifth__c) + (m.Payment_Plan_Sum_Sixth__c == null ? 0 : m.Payment_Plan_Sum_Sixth__c); if (PriceSum2 != m.Contract_Amount__c ) { System.debug('总金额:'+PriceSum2); ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '编号为:'+m.Management_Code__c+'付款总金额与合同金额不符。')); statusSave = 'Denied'; return null; } } if (PageMCEElement.Inspection_Time__c != null) { if (m.Contract_End_Date__c != null || m.Contract_Start_Date__c != null) { // 总年数 //合同总月数 Integer Contract_validMonth = Integer.valueOf(m.Contract_Period__c); // add 一年内点检区间不够生成一次点检计划,默认生成一个点检计划,计划区间为合同开始日-结束日 if((Integer.valueOf(PageMCEElement.Inspection_Time__c) == 1 && Contract_validMonth < 9) || (Integer.valueOf(PageMCEElement.Inspection_Time__c) == 2 && Contract_validMonth < 6) || (Integer.valueOf(PageMCEElement.Inspection_Time__c) == 3 && Contract_validMonth < 4) || (Integer.valueOf(PageMCEElement.Inspection_Time__c) == 4 && Contract_validMonth < 3)){ m.Service_contract_target_number__c = 1; }else{ // add 一年内点检区间不够生成一次点检计划,默认生成一个点检计划,计划区间为合同开始日-结束日 Integer All_check; //24 if (Contract_validMonth - Integer.valueOf(Contract_validMonth / 12) * 12 >= 6 && Integer.valueOf(PageMCEElement.Inspection_Time__c) == 1) { All_check = (Contract_validMonth * Integer.valueOf(PageMCEElement.Inspection_Time__c)) / 12 + 1; } else { All_check = (Contract_validMonth * Integer.valueOf(PageMCEElement.Inspection_Time__c)) / 12; } // Integer All_check = (Contract_validMonth * Integer.valueOf(PageMCEElement.Inspection_Time__c)) / 12; m.Service_contract_target_number__c = All_check; } } } list args = new String[]{'0','number','###,###,###,###,##0'}; // 处理小合同的金额文字 if (m.Contract_Amount__c != null) { m.Contract_Amount_Text__c = String.format(m.Contract_Amount__c.format(),args); m.Total_Contract_Amount_In_Words__c = convertNumberToChinese(m.Contract_Amount__c+''); } System.debug('点检次数:'+m.Service_contract_target_number__c); listMc.add(m); } System.debug('update listMc>>>>>>>>'); // 更新 小合同 update listMc; System.debug('update listMc end>>>>>>>>'); // 处理 将大合同的文本信息 录入小合同中 end wu if (PageMCEElement.Term_Of_Payment__c != null && '多次付款'.equals(PageMCEElement.Term_Of_Payment__c)) { decimal PriceSum = (PageMCEElement.Payment_Plan_Sum_First__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_First__c) + (PageMCEElement.Payment_Plan_Sum_Second__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Second__c) + (PageMCEElement.Payment_Plan_Sum_Third__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Third__c) + (PageMCEElement.Payment_Plan_Sum_Forth__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Forth__c) + (PageMCEElement.Payment_Plan_Sum_Fifth__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Fifth__c) + (PageMCEElement.Payment_Plan_Sum_Sixth__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Sixth__c); // 2023-11-17 WYL 修改 申请报价金额改为最终用户合同金额 FieldRequest_quotation_Amount__c =》Contract_Amount__c if (PriceSum != PageMCEElement.Contract_Amount__c ) { System.debug('总金额:'+PriceSum); ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '付款总金额与合同金额不符。')); statusSave = 'Denied'; return null; } } if (PageMCEElement.Term_Of_Payment__c != null && '一次性付款'.equals(PageMCEElement.Term_Of_Payment__c)) { // 2023-11-17 WYL 修改 申请报价金额改为最终用户合同金额 FieldRequest_quotation_Amount__c =》Contract_Amount__c PageMCEElement.Payment_Plan_Sum_First__c = PageMCEElement.Contract_Amount__c; PageMCEElement.Payment_Plan_Sum_Second__c = null; PageMCEElement.Payment_Plan_Sum_Third__c = null; PageMCEElement.Payment_Plan_Sum_Forth__c = null; PageMCEElement.Payment_Plan_Sum_Fifth__c = null; PageMCEElement.Payment_Plan_Sum_Sixth__c = null; PageMCEElement.Payment_Plan_Date_First__c = null; PageMCEElement.Payment_Plan_Date_Second__c = null; PageMCEElement.Payment_Plan_Date_Third__c = null; PageMCEElement.Payment_Plan_Date_Forth__c = null; PageMCEElement.Payment_Plan_Date_Fifth__c = null; PageMCEElement.Payment_Plan_Date_Sixth__c = null; PageMCEElement.Total_Payment_Time__c = null; // 合同为一次付款需要清空小合同上的所有付款日期和金额 List listMc2 = new List(); for (Maintenance_Contract__c m : MC) { m.Payment_Plan_Date_First__c = null; m.Payment_Plan_Sum_First__c = m.Contract_Amount__c; m.Payment_Plan_Sum_First_in_Word__c = null; m.Payment_Plan_Date_Third__c = null; m.Payment_Plan_Sum_Third__c = null; m.Payment_Plan_Sum_Third_in_Word__c = null; m.Payment_Plan_Date_Second__c = null; m.Payment_Plan_Sum_Second__c = null; m.Payment_Plan_Sum_Second_in_Word__c = null; m.Payment_Plan_Date_Fifth__c = null; m.Payment_Plan_Sum_Fifth__c = null; m.Payment_Plan_Sum_Fifth_in_Word__c = null; m.Payment_Plan_Date_Sixth__c = null; m.Payment_Plan_Sum_Sixth__c = null; m.Payment_Plan_Sum_Sixth_in_Word__c = null; m.Payment_Plan_Date_Forth__c = null; m.Payment_Plan_Sum_Forth__c = null; m.Payment_Plan_Sum_Forth_in_Word__c = null; listMc2.add(m); } update listMc2; } else { PageMCEElement.one_off_payment_agreed_period__c = null; } if (PageMCEElement.Is_Standard_Contract__c != null && PageMCEElement.Is_Standard_Contract__c.equals('否')) { System.debug('-------1-------'+PageMCEElement.Is_Standard_Contract__c); PageMCEElement.Engineer_Name__c = null; PageMCEElement.Phone_Number__c = null; PageMCEElement.Small_Repair_Time__c = null; PageMCEElement.Big_Repair_Time__c = null; PageMCEElement.Live_Technical_Support_Time__c = null; PageMCEElement.Tour_Check__c = null; // gzw fix 20210929 追加非标准合同点检次数 // PageMCEElement.Inspection_Time__c = null; PageMCEElement.Dedust__c = null; PageMCEElement.First_Party_Contract_Number__c = null; PageMCEElement.Second_Party_Contract_Number__c = null; // gzw fix 20210929 追加非标准合同点检次数 // PageMCEElement.Service_contract_target_number__c = null; } System.debug('update PageMCEElement>>>>>>>>'); System.debug('PageMCEElement>>>>>>>>' + PageMCEElement); update PageMCEElement; System.debug('update PageMCEElement end>>>>>>>>'); statusSave = 'Fin'; // // NFM118Controller.sendPostRequest(); // return null; } catch (exception ex) { statusSave = 'Denied'; Database.rollback(sp); ApexPages.addmessages(ex); System.debug('=========>' + ex.getLineNumber()); return null; } // return null; } public void print() { System.debug('print start'); save(); System.debug('save end'); if (PageMCEElement.Term_Of_Payment__c != null && '多次付款'.equals(PageMCEElement.Term_Of_Payment__c)) { decimal PriceSum = (PageMCEElement.Payment_Plan_Sum_First__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_First__c) + (PageMCEElement.Payment_Plan_Sum_Second__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Second__c) + (PageMCEElement.Payment_Plan_Sum_Third__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Third__c) + (PageMCEElement.Payment_Plan_Sum_Forth__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Forth__c) + (PageMCEElement.Payment_Plan_Sum_Fifth__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Fifth__c) + (PageMCEElement.Payment_Plan_Sum_Sixth__c == null ? 0 : PageMCEElement.Payment_Plan_Sum_Sixth__c); // 2023-11-17 WYL 修改 申请报价金额改为最终用户合同金额 FieldRequest_quotation_Amount__c =》Contract_Amount__c if (PriceSum != PageMCEElement.Contract_Amount__c ) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '付款总金额与合同金额不符。')); statusSave = 'Denied'; } // // HWAG-BHT7XX 2019-12-09 by vivek start Integer payTimeSum = 0; if (PageMCEElement.Payment_Plan_Sum_First__c != null && PageMCEElement.Payment_Plan_Date_First__c != null) { payTimeSum++; } if (PageMCEElement.Payment_Plan_Sum_Second__c != null && PageMCEElement.Payment_Plan_Date_Second__c != null) { payTimeSum++; } if (PageMCEElement.Payment_Plan_Sum_Third__c != null && PageMCEElement.Payment_Plan_Date_Third__c != null) { payTimeSum++; } if (PageMCEElement.Payment_Plan_Sum_Forth__c != null && PageMCEElement.Payment_Plan_Date_Forth__c != null) { payTimeSum++; } if (PageMCEElement.Payment_Plan_Sum_Fifth__c != null && PageMCEElement.Payment_Plan_Date_Fifth__c != null) { payTimeSum++; } if (PageMCEElement.Payment_Plan_Sum_Sixth__c != null && PageMCEElement.Payment_Plan_Date_Sixth__c != null) { payTimeSum++; } if (PageMCEElement.Total_Payment_Time__c != null) { system.debug(payTimeSum + '======' + Integer.valueOf(PageMCEElement.Total_Payment_Time__c)); if (Integer.valueOf(PageMCEElement.Total_Payment_Time__c) != payTimeSum) { System.debug(Integer.valueOf(PageMCEElement.Total_Payment_Time__c) + '======'); ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '付款期数和付款计划数目不符。')); statusSave = 'Denied'; } } // // HWAG-BHT7XX 2019-12-09 by vivek end } if (statusSave.equals('Fin') && PageMCEElement.RecordTypeId.equals('012C80000000NHZ')) { printContract = true; printAgent = false; } if (statusSave.equals('Fin') && PageMCEElement.RecordTypeId.equals('012C80000000NHYIA2')) { printContract = false; printAgent = true; } System.debug(statusSave); System.debug('print end111111111111'+printContract); System.debug('print end111111111111'+printAgent); System.debug('print end'+PageMCEElement); } public List getSmall_Repair_Time() { List options = new List(); options.add(new SelectOption('5', '5')); options.add(new SelectOption('7', '7')); options.add(new SelectOption('10', '10')); return options; } public List getLive_Technical_Support_Time() { List options = new List(); options.add(new SelectOption('24', '24')); options.add(new SelectOption('48', '48')); options.add(new SelectOption('72', '72')); return options; } public List getBig_Repair_Time() { List options = new List(); options.add(new SelectOption('7', '7')); options.add(new SelectOption('10', '10')); options.add(new SelectOption('15', '15')); options.add(new SelectOption('20', '20')); options.add(new SelectOption('25', '25')); options.add(new SelectOption('30', '30')); return options; } public List getTour_Check() { List options = new List(); if (PageMCEElement.URF_Contract__c ){ options.add(new SelectOption('0', '0')); }else { options.add(new SelectOption('0', '0')); options.add(new SelectOption('1', '1')); options.add(new SelectOption('2', '2')); options.add(new SelectOption('3', '3')); options.add(new SelectOption('4', '4')); } return options; } public List getDedust() { List options = new List(); options.add(new SelectOption('0', '0')); options.add(new SelectOption('1', '1')); options.add(new SelectOption('2', '2')); return options; } public List getFirst_Party_Contract_Number() { List options = new List(); options.add(new SelectOption('1', '1')); options.add(new SelectOption('2', '2')); options.add(new SelectOption('3', '3')); options.add(new SelectOption('4', '4')); options.add(new SelectOption('5', '5')); options.add(new SelectOption('6', '6')); options.add(new SelectOption('7', '7')); options.add(new SelectOption('8', '8')); options.add(new SelectOption('9', '9')); options.add(new SelectOption('10', '10')); return options; } public List getNegotiate_Mean() { List options = new List(); options.add(new SelectOption('1', '1')); options.add(new SelectOption('2', '2')); options.add(new SelectOption('3', '3')); return options; } public List getTerm_Of_Payment() { List options = new List(); options.add(new SelectOption('一次性付款', '一次性付款')); if (!PageMCEElement.URF_Contract__c){ options.add(new SelectOption('多次付款', '多次付款')); } return options; } public boolean getCheck_Of_Payment() { boolean Check_Of_Payment = true; System.debug('uuuu2'+PageMCEElement.Term_Of_Payment__c); if (PageMCEElement.Term_Of_Payment__c != null && '多次付款'.equals(PageMCEElement.Term_Of_Payment__c)) { Check_Of_Payment = false; } System.debug('uuuu1'+Check_Of_Payment); return Check_Of_Payment; } public List getTotal_Payment_Time() { List options = new List(); options.add(new SelectOption('1', '1')); options.add(new SelectOption('2', '2')); options.add(new SelectOption('3', '3')); options.add(new SelectOption('4', '4')); options.add(new SelectOption('5', '5')); options.add(new SelectOption('6', '6')); return options; } public void dummy() { PageMCEElement.Payment_Plan_Sum_First__c = null; PageMCEElement.Payment_Plan_Sum_Second__c = null; PageMCEElement.Payment_Plan_Sum_Third__c = null; PageMCEElement.Payment_Plan_Sum_Forth__c = null; PageMCEElement.Payment_Plan_Sum_Fifth__c = null; PageMCEElement.Payment_Plan_Sum_Sixth__c = null; PageMCEElement.Payment_Plan_Date_First__c = null; PageMCEElement.Payment_Plan_Date_Second__c = null; PageMCEElement.Payment_Plan_Date_Third__c = null; PageMCEElement.Payment_Plan_Date_Forth__c = null; PageMCEElement.Payment_Plan_Date_Fifth__c = null; PageMCEElement.Payment_Plan_Date_Sixth__c = null; List listMc2 = new List(); for (Maintenance_Contract__c m : MC) { m.Payment_Plan_Date_First__c = null; m.Payment_Plan_Sum_First__c = null; m.Payment_Plan_Sum_First_in_Word__c = null; m.Payment_Plan_Date_Third__c = null; m.Payment_Plan_Sum_Third__c = null; m.Payment_Plan_Sum_Third_in_Word__c = null; m.Payment_Plan_Date_Second__c = null; m.Payment_Plan_Sum_Second__c = null; m.Payment_Plan_Sum_Second_in_Word__c = null; m.Payment_Plan_Date_Fifth__c = null; m.Payment_Plan_Sum_Fifth__c = null; m.Payment_Plan_Sum_Fifth_in_Word__c = null; m.Payment_Plan_Date_Sixth__c = null; m.Payment_Plan_Sum_Sixth__c = null; m.Payment_Plan_Sum_Sixth_in_Word__c = null; m.Payment_Plan_Date_Forth__c = null; m.Payment_Plan_Sum_Forth__c = null; m.Payment_Plan_Sum_Forth_in_Word__c = null; listMc2.add(m); } update listMc2; } public void Dummy2(){} public List getone_off_payment_agreed_period() { //LJPH-BT535P 《委托》 付款计划的字段更新 精琢技术 wql 2020/09/04 start map> pickerFields = new map>(); // 维修合同 一次性付款约定期限 选项值获取 list taskStatusOptions = new list(); Schema.DescribeFieldResult taskStatusfieldResult = Maintenance_Contract__c.one_off_payment_agreed_period__c.getDescribe(); List taskStatusple = taskStatusfieldResult.getPicklistValues(); for ( Schema.PicklistEntry pickListVal : taskStatusple) { pickerWrapper temppickerWrapper = new pickerWrapper(pickListVal.getLabel(), pickListVal.getValue()); taskStatusOptions.add(temppickerWrapper); } pickerFields.put('taskStatusOptions', taskStatusOptions); List pickerWrapperList = pickerFields.get('taskStatusOptions'); List options = new List(); List filedList = new List(); List selectOptionList = new List(); for (pickerWrapper pw : pickerWrapperList) { // options.add(new SelectOption(pw.label, pw.value)); filedList.add(pw.value); } system.debug('PageMCEElement:' + PageMCEElement); system.debug('Estimate_Target__c:' + PageMCEElement.Estimate_Target__c); //LJPH-BV8ABG 《委托》当报价提交对象为医院时,付款天数增加【90】日内。 2020/11/11 start if (PageMCEElement.Estimate_Target__c != null && PageMCEElement.Estimate_Target__c == '医院') { filedList.add('90'); } //LJPH-BV8ABG 《委托》当报价提交对象为医院时,付款天数增加【90】日内。 2020/11/11 end System.debug('PageMCEElement111:' + PageMCEElement); if (PageMCEElement.one_off_payment_agreed_period__c != null) { if (!filedList.contains(PageMCEElement.one_off_payment_agreed_period__c)) { filedList.add(PageMCEElement.one_off_payment_agreed_period__c); // options.add(new SelectOption(PageMCEElement.one_off_payment_agreed_period__c, PageMCEElement.one_off_payment_agreed_period__c)); } } system.debug('filedList:' + filedList); //冒泡排序 selectOptionList = BubbleSort(filedList); system.debug('selectOptionList :' + selectOptionList); for (String sol : selectOptionList) { options.add(new SelectOption(sol, sol)); } return options; //LJPH-BT535P 《委托》 付款计划的字段更新 精琢技术 wql 2020/09/04 end } public class pickerWrapper { @AuraEnabled public string label; @AuraEnabled public string value; public pickerWrapper(string label, string value) { this.label = label; this.value = value; } } //冒泡排序 public List BubbleSort(List arrayList) { //外层循环控制排序趟数 for (Integer i = 1; i < arrayList.size(); i++) { //内层循环控制每一趟排序多少次 。 每次最后面的值都是最大值了 。 所以后面的都可以不用排序了。 for (Integer j = 0; j < arrayList.size() - 1; j++) { if (arrayList[j] > arrayList[i]) { String temp = arrayList[j]; arrayList[j] = arrayList[i]; arrayList[i] = temp; } } } return arrayList; } // 处理数字转中文 public String convertNumberToChinese(String inputNumber) { String[] CN_NUMERIC = new String[]{'零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'}; String[] CN_UNIT = new String[]{'', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟'}; String result = ''; // 删除可能的逗号 inputNumber = inputNumber.replace(',', ''); // 处理小数部分 String[] parts = inputNumber.split('\\.'); if (parts.size() > 2) { return '无法处理的数字格式'; } String integerPart = parts[0]; // 处理整数部分 if (!integerPart.equals('')) { Integer numLen = integerPart.length(); for (Integer i = 0; i < numLen; i++) { Integer digit = Integer.valueOf(integerPart.substring(i, i + 1)); String digitCn = CN_NUMERIC[digit]; Integer unitPos = numLen - i - 1; String unit = CN_UNIT[unitPos]; if (digit == 0) { if (unitPos == 8 || unitPos == 4 || unitPos == 0) { result += unit; } } else { result += digitCn + unit; } } result += '元整'; // 添加"整"字表示整数金额 } else { return '零元整'; } return result; } }