关于触发电子邮件

时间:2016-12-14 11:08:53

标签: triggers bulk

我有一个触发器代码:

Trigger AutoEmailsending on Order (after update) 
{
    Map<Id,Order> Orderdetail = new Map<Id,Order>();
    Set<Id> Accountid = new Set<Id>();
    for(order or1 : Trigger.new)
    {
        if(or1.Status == 'Submitted' && (or1.Subtype__c =='Offer' || or1.Subtype__c =='ASP'))
        {
            Orderdetail.put(or1.id,or1);
            Accountid.add (or1.accountid);
        }
    }
    List<Attachment> Attachmentlst = [Select Id,
                                             ParentId, 
                                             Name,
                                             BodyLength,
                                             Body,
                                             Description 
                                        From Attachment 
                                        where ParentId=:Orderdetail.keyset()];

    Map<String, Blob> resources = new Map<String, Blob>();
    for(StaticResource resource:[SELECT Name, Body FROM StaticResource where Name IN ('TC_for_France','TC_for_Italy')]) 
    {
        resources.put(resource.Name, resource.Body);
    }
    User currentUser = [Select Id,Phone,name from User where Id =:System.UserInfo.getUserId()];

    for (attachment attachmentlst1 : attachmentlst )
    {
        List<String> Toaddress = new List<String>();
        List<String> CCaddress = new List<String>(); 
        String Orderid = attachmentlst1.ParentId;
        String ResourceName;
        String TCname;
        string  strHtmlBody;

        String Emailaddress = UserInfo.getUserEmail();
        String CustomerServiceEmail =         Order_Configuration__c.getInstance().Customer_Service_Email__c;
        string SellingOfficePhone =         Order_Configuration__c.getInstance().Selling_Office_Phone__c;
        String OrderNumber = Orderdetail.get(attachmentlst1.ParentId).OrderNumber;

        List<Messaging.Emailfileattachment> fileAttachments = new List <Messaging.Emailfileattachment>();
        if(Accountmap.get(Orderdetail.get(attachmentlst1.ParentId).accountid).Email_Address__c != null)
        {
            Toaddress.add(Accountmap.get(Orderdetail.get(attachmentlst1.ParentId).accountid).Email_Address__c);
        }
        String Market = Accountmap.get(Orderdetail.get(attachmentlst1.ParentId).accountid).Market__c;
        CCaddress.add(emailaddress);
        if(CustomerServiceEmail !=null)
        CCaddress.add(CustomerServiceEmail);

        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        mail.setToAddresses(Toaddress);
        mail.setCcAddresses(CCaddress);
        if(Orderdetail.get(attachmentlst1.ParentId).Subtype__c =='Offer' || Market=='FR')
        {
            mail.setSenderDisplayName('Trade Order-FR'); 
            ResourceName = 'TC_for_France';
            TCname = 'CONDITIONS_GENERALES_DEVENTE.pdf';

        }

}

触发器应该为特定订单的创建用户发送邮件,它不应该为特定订单的最后修改用户发送邮件如何过来这个场景,不需要关于我必须在触发器中添加行的逻辑代码

0 个答案:

没有答案