Untitled
unknown
plain_text
a year ago
3.0 kB
10
Indexable
system.debug('I am inside sendPdfEmail');
// Generate the PDF as an attachment
PageReference pdfPage = Page.Inv_QuoteGeneratePDF;
pdfPage.getParameters().put('id', workOrder.Id);
Blob pdfBlob = pdfPage.getContentAsPDF();
system.debug(pdfBlob);
// Set the email details
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
//mail.setToAddresses(new String[] {'mohim@inovisolutions.com'});
mail.setToAddresses(new String[] {workOrder.Contact.Email});
mail.setSubject('Your Quotation PDF');
mail.setPlainTextBody('Please find your quotation attached as a PDF.');
// Retrieve the Organization-Wide Email Address ID
List<OrgWideEmailAddress> orgWideEmail = [SELECT Id FROM OrgWideEmailAddress WHERE Address = 'hardwareservices@angiodynamics.com' LIMIT 1];
if (!orgWideEmail.isEmpty()) {
//mail.setOrgWideEmailAddressId(orgWideEmail[0].Id);
} else {
System.debug('No Org-Wide Email Address found.');
}
// Create the email attachment
Messaging.EmailFileAttachment attachment = new Messaging.EmailFileAttachment();
attachment.setBody(pdfBlob);
attachment.setContentType('application/pdf');
mail.setFileAttachments(new Messaging.EmailFileAttachment[] { attachment });
// Send the email
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.CONFIRM, 'Email sent successfully with the PDF attachment.'));
// Step 1: Create a new ContentVersion
ContentVersion contentVersion = new ContentVersion();
contentVersion.VersionData = pdfBlob;
contentVersion.Title = 'quotation.pdf';
contentVersion.PathOnClient = '/' + 'quotation.pdf';
insert contentVersion;
// Step 2: Query the ContentDocumentId from the ContentVersion
ContentVersion insertedContentVersion = [SELECT Id, ContentDocumentId,VersionDataUrl,Title
FROM ContentVersion
WHERE Id = :contentVersion.Id];
// Step 3: Create a ContentDocumentLink to associate the ContentDocument with the PaymentSummary record
ContentDocumentLink contentDocumentLink = new ContentDocumentLink();
contentDocumentLink.ContentDocumentId = insertedContentVersion.ContentDocumentId;
contentDocumentLink.LinkedEntityId = workOrder.id;
contentDocumentLink.ShareType = 'V'; // View Only
contentDocumentLink.Visibility = 'AllUsers';
insert contentDocumentLink;
Editor is loading...
Leave a Comment