public with sharing class OrderShippingNotificationController { public String type { get; set; } // 订单 public Order ra { get; set; } // 订单ID public Id raid { get; private set; } // 订单记录类型 public String recordtype { get; private set; } public Boolean hasError { get; private set; } public String baseUrl { get; private set; } public OrderShippingNotificationController() { //Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); raid = ApexPages.currentPage().getParameters().get('raid'); type = ApexPages.currentPage().getParameters().get('recordtype'); } public OrderShippingNotificationController(ApexPages.StandardController stdController) { //Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8'); baseUrl = URL.getSalesforceBaseUrl().toExternalForm(); raid = ApexPages.currentPage().getParameters().get('raid'); type = ApexPages.currentPage().getParameters().get('recordtype'); } // 画面初始化 public void init() { hasError = false; ra = new Order(); List raList = [select Id, Name,ContractCode__c, ShippingNotes__c,RecordTypeId,ShippingRecieverEmailAdr__c, OppExpectedDeliveryDate__c, ContractLink__c from Order where Id = :raid]; if (raList.size() > 0) { ra = raList[0]; } ra.ShippingNotes__c = '期望发货日期:' + ra.OppExpectedDeliveryDate__c; } // 保存按钮 public PageReference saveBtn() { hasError = false; String ShippingNotes = ra.ShippingNotes__c; if (ShippingNotes == null || ShippingNotes.trim().length() == 0) { ra.ShippingNotes__c.addError('请输入内容。'); hasError=true; return null; } // 送信者 String username = UserInfo.getName(); // 发送时间 Datetime dt = Datetime.now(); // 相关用户检索 List ccList = new List(); // ccList.add(ra.Person_In_Charge__c); // ccList.add(ra.ApplyUser__c); // if (cc.JingliApprovalManager__c != null) { // ccList.add(cc.JingliApprovalManager__c); // } // if (cc.SalesManager__c != null) { // ccList.add(cc.SalesManager__c); // } // if (cc.BuchangApprovalManager__c != null) { // ccList.add(cc.BuchangApprovalManager__c); // } // if (cc.BuchangApprovalManagerSales__c != null) { // ccList.add(cc.BuchangApprovalManagerSales__c); // } // if (cc.ZongjianApprovalManager__c != null) { // ccList.add(cc.ZongjianApprovalManager__c); // } Map userMap = new Map([ select Id, Name, Email from User where Id in :ccList ]); // 收信者 String toName = ''; List toMailList = new List(); toName = ra.ShippingRecieverEmailAdr__c; toMailList.add(ra.ShippingRecieverEmailAdr__c); // 原应答沟通信息 // String oldShippingNotes = ra.ShippingNotes__c; // 现应答沟通信息 // String URL = baseUrl + '/production/' + ra.Id; String temp = ''; temp += ra.ShippingNotes__c; /*** if (oldShippingNotes != null && oldShippingNotes.trim().length() > 0) { temp += '\n\n' + oldShippingNotes; } else { //于2016-07-01加入 temp += '\n\n备品借出申请链接: ' + baseUrl + '/' + ra.Id +' '; } ***/ try { // 更新应答沟通 ra.ShippingNotes__c = temp; // update ra; // ra.ShippingNotes__c = ''; //Create a dummy instance of outbound email object // Messaging.SingleEmailMessage message= new Messaging.SingleEmailMessage(); //set a roolback point // Savepoint sp = Database.setSavepoint(); //set desired email template id // message.templateId = 'xxxxxx'; //set the target object record id(this is mandatory while using email template) // Id recId = [select Id from Contact where Email != null limit 1].id; // message.targetObjectId = recId; //fire dummy email // messaging.sendEmail(new Messaging.SingleEmailMessage[] {message}); //roll back to savepoint so that email is not sent // Database.rollback(sp); //Create insatnce of actual email Messaging.SingleEmailMessage messageNEW= new Messaging.SingleEmailMessage(); //get the bode from above dummy instance and set it to your actual email //messageNEW.HTMLBody = message.getHtmlBody(); messageNEW.HTMLBody = temp; messageNEW.Subject = '发货提醒:订单'+ ra.ContractCode__c; //messageNEW.PlainTextBody = temp; //set desired email addresses messageNEW.setCharset('UTF-8'); messageNEW.toAddresses = toMailList; // messageNEW.ccAddresses = ccMailList; //send the mail messaging.sendEmail(new Messaging.SingleEmailMessage[] {messageNEW}); ra.ShippingNotes__c = ''; } catch (Exception ex) { system.debug('=====' + ex.getMessage()); hasError = true; ApexPages.addMessages(ex); return null; } return null; } }