I have a VF page and on that VF page I select a project and click generate invoice, on that click an new VF page is displayed as PDF. I want to attach that generated PDF VF page to the selected project after the invoice is generated. How can I achieve it please guide me to get this problem solve.
1 Answer
Assuming "Project" is a custom object.
Enable notes and attachment for the custom object.
When you click 'generate invoice', just before redirecting to VF page use getContent()
method. E.g;
public PageReference generateInvoice()
{
Attachment att = new Attachment(name ='Invoice_AnyUniqueName.pdf');
PageReference invoicePage = Page.GeneratingInvoicePage;
invoicePage .getParameters().put('id',projectRecordId);
// return page content as blob type
// Alt: att.body = invoicePage .getContentAsPDF();
att.body = invoicePage .getContent();
// Associate with project's record Id
att.parentid = projectRecordId;
insert att;
return invoicePage ;
}