You need to sign in to do that
Don't have an account?
azar khasim
Was getting some error while using as rendered as PDF
I was facing some error while using this visualforce page with adding Rendered as PDF. Please Help me out.
VF Page:
<!-- RecieptForMail -->
<apex:page standardController="Reciept__c" extensions="Reciepts" showHeader="false" applyBodyTag="true" applyHtmlTag="true" renderAs="pdf">
<apex:form >
<div style="font-size:13px;">
<center>
<h2 style="color:green;">
Receipt
</h2>
</center>
<img src="https://bren--c.ap5.visual.force.com/resource/1523623530000/BrenLogo" width="150" height="60"/>
<br/>
<div align="right">
#61,Bren Balavana Koramangala,<br/>
5th 'A' Block,Bangalore 560095<br/>
Tool free : 18001028800
</div><br/><br/>
<b><br/>
RECEIVED WITH THANKS FROM :<br/><br/>
</b>
<b>{!ua.emtcustomername__c} {!coownerName}</b><br/>
{!ua.DMNCustomerStreet__c}<br/>
{!ua.DMNCustomercity__c}<br/>
{!ua.DMNCustomerstate__c}<br/>
{!ua.DMNCustomercountry__c}-{!ua.DMNCustomerpostalcode__c}<br/><br/>
<b>
THE SUM OF {!wordText}<br/>
VIDE Wire Transfer No.{!rc.InstrumentNumber__c} DATED <apex:outputText value="{0,date,dd'/'MM'/'yyyy}">
<apex:param value="{!rc.InstrumentDate__c}" />
</apex:outputText> DRAWN ON {!rc.DrawnonBank__c}<br/></b>
{!ua.unit__R.name} {!ua.project__R.name}<br/>
On A/c of {!rc.CRMComments__c} payment of purchase price of Unit Number {!ua.unit__r.name},
Block No {!ua.Block__r.name} at {!ua.project__r.name}. <br/><br/>
<table border="1" cellspacing="0" align="left">
<tr>
<td width="190" height="40" style="font-size:15px;">
Rs.
<apex:outputText value="{0,number,###,###.00}">
<apex:param value="{!rc.Amount__c}" />
</apex:outputText>
</td>
</tr>
</table>
<div align="right">
<b>
{!ua.project__r.Legal_Entity__c} <br/><br/>
Authorised signatory
</b>
</div><br/>
<div style="font-size:10px;"> Payments by Cheque are subject to realisation</div>
<div style="font-size:8px;" align="center"> <span style="color:#848484"> Customer Copy</span></div>
<hr/>
</div>
</apex:form>
</apex:page>
VF Page:
<!-- RecieptForMail -->
<apex:page standardController="Reciept__c" extensions="Reciepts" showHeader="false" applyBodyTag="true" applyHtmlTag="true" renderAs="pdf">
<apex:form >
<div style="font-size:13px;">
<center>
<h2 style="color:green;">
Receipt
</h2>
</center>
<img src="https://bren--c.ap5.visual.force.com/resource/1523623530000/BrenLogo" width="150" height="60"/>
<br/>
<div align="right">
#61,Bren Balavana Koramangala,<br/>
5th 'A' Block,Bangalore 560095<br/>
Tool free : 18001028800
</div><br/><br/>
<b><br/>
RECEIVED WITH THANKS FROM :<br/><br/>
</b>
<b>{!ua.emtcustomername__c} {!coownerName}</b><br/>
{!ua.DMNCustomerStreet__c}<br/>
{!ua.DMNCustomercity__c}<br/>
{!ua.DMNCustomerstate__c}<br/>
{!ua.DMNCustomercountry__c}-{!ua.DMNCustomerpostalcode__c}<br/><br/>
<b>
THE SUM OF {!wordText}<br/>
VIDE Wire Transfer No.{!rc.InstrumentNumber__c} DATED <apex:outputText value="{0,date,dd'/'MM'/'yyyy}">
<apex:param value="{!rc.InstrumentDate__c}" />
</apex:outputText> DRAWN ON {!rc.DrawnonBank__c}<br/></b>
{!ua.unit__R.name} {!ua.project__R.name}<br/>
On A/c of {!rc.CRMComments__c} payment of purchase price of Unit Number {!ua.unit__r.name},
Block No {!ua.Block__r.name} at {!ua.project__r.name}. <br/><br/>
<table border="1" cellspacing="0" align="left">
<tr>
<td width="190" height="40" style="font-size:15px;">
Rs.
<apex:outputText value="{0,number,###,###.00}">
<apex:param value="{!rc.Amount__c}" />
</apex:outputText>
</td>
</tr>
</table>
<div align="right">
<b>
{!ua.project__r.Legal_Entity__c} <br/><br/>
Authorised signatory
</b>
</div><br/>
<div style="font-size:10px;"> Payments by Cheque are subject to realisation</div>
<div style="font-size:8px;" align="center"> <span style="color:#848484"> Customer Copy</span></div>
<hr/>
</div>
</apex:form>
</apex:page>
Error is in expression '{!sendmail}' in component <apex:commandButton> in page recieptindexpage: Class.Reciepts.sendmail: line 87, column 1
Class.Reciepts.sendmail: line 87, column 1
I have marked some of my code in Bold that i was hoping the error has occured and the Line 87 was in it only.
My Controller Class :
public class Reciepts {
public string RecID;
public reciept__c rc{set;get;}
public unitallocation__c ua{set;get;}
public string wordtext{set;get;}
public boolean includecoowner{set;get;}
public string coownerName{set;get;}
public Reciepts(apexpages.StandardController sc){
RecID=apexpages.currentPage().getparameters().get('id');
//RecID= 'a0E5D000002Gqoy';
rc=[SELECT id,name,Amount__c,ApprovalStatus__c,
unitallocation__c,InstrumentType__c,InstrumentNumber__c,drawnonbank__c,InstrumentDate__c,ReceiptDate__c,
BankClearanceDate__c,FinanceCommentstoCustomer__c,CRMComments__c
FROM reciept__c WHERE id=:RecID];
ua=[SELECT id,unit__r.name,DMNSecondApplicantName__c,Block__r.name,customeremailDMN__c,emtcustomername__c,DMNCustomerStreet__c,DMNCustomerCity__c,
DMNCustomerState__c,DMNCustomerCountry__c,DMNCustomerPostalCode__c,
project__r.name,project__r.Legal_Entity__c,CustomerEmailWF__c,DMNSecondApplicantEmail__c,owner.email,DMN_Second_Applicant_Name_Frm__c
FROM unitallocation__c WHERE id=:rc.UnitAllocation__c];
wordText=convert(integer.valueof(rc.amount__c));
wordtext=wordtext+' Rupees only';
}
//----------------------------------------------------------
//----------------------------------------------------------
public String[] units = new String[]{'Zero ','One ','Two ','Three ','Four ','Five ','Six ','Seven ','Eight ','Nine ','Ten ',
'Eleven ','Twelve ','Thirteen ','Fourteen ','Fifteen ',
'Sixteen ','Seventeen ','Eighteen ','Nineteen '};
public String[] tens = new String[]{'','','Twenty ','Thirty ','Forty ','Fifty ','Sixty ','Seventy ','Eighty ','Ninety '};
//This method is used to convert the integer to words
public string convert(long i) {
//
if( i < 20) return units[integer.valueOf(i)];
if( i < 100) return tens[integer.valueOf(i)/10] + ((math.mod(i , 10) > 0)? '' + convert(math.mod(i , 10)):'');
if( i < 1000) return units[integer.valueOf(i)/100] + ' Hundred ' + ((math.mod(i , 100) > 0)?' and ' + convert(math.mod(i , 100)):'');
if( i < 10000) return units[integer.valueOf(i)/1000] + ' Thousand ' + ((math.mod(i , 1000) > 0)?' ' + convert(math.mod(i , 1000)):'');
if( i < 100000) return convert(i / 1000) + ' Thousand ' + ((math.mod(i , 1000) > 0)? '' + convert(math.mod(i ,1000)):'') ;
if( i < 1000000) return units[integer.valueOf(i)/100000] + ' Lakh ' + ((math.mod(i , 100000) > 0)? '' + convert(math.mod(i ,100000)):'') ;
if( i < 10000000) return convert(i / 100000) + ' Lakh ' + ((math.mod(i , 100000) > 0)? '' + convert(math.mod(i ,100000)):'') ;
if(i < 100000000) return units[integer.valueOf(i)/10000000] + ' Crore ' + ((math.mod(i , 10000000) > 0)? '' + convert(math.mod(i , 10000000)):'') ;
if(i < 1000000000) return convert(i / 10000000) + 'Crore ' + ((math.mod(i , 10000000) > 0)? '' + convert(math.mod(i , 10000000)):'') ;
return convert(i / 1000000000) + ' Crore ' + ((math.mod(i , 1000000000) > 0) ? '' + convert(math.mod(i , 1000000000)):'') ;
}
public pagereference sendmail(){
list<string> toadd=new list<string>();
if(IncludeCoowner == true){
coownerName='& '+ua.DMN_Second_Applicant_Name_Frm__c;
if(!test.isRunningTest())
toadd.add(ua.DMNSecondApplicantEmail__c);
}
Id profileId;
if(!test.isRunningTest()){
profileId=userinfo.getProfileId();
}
string profileName;
if(test.isRunningTest()){
profileName='Bren Crm Standard User';
}else{
profileName=[Select Id,Name from Profile where Id=:profileId].Name;
}
if(rc.ApprovalStatus__c != 'applied' && profileName == 'Bren Crm Standard User' && !test.isrunningtest()){
apexpages.Message m=new apexpages.Message(apexpages.Severity.ERROR,'This Reciept Still Not Approved by Finance');
apexpages.addMessage(m);
}else{
List<Messaging.Emailfileattachment> fileAttachments = new List<Messaging.Emailfileattachment>();
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
Messaging.EmailFileAttachment efa1 = new Messaging.EmailFileAttachment();
PageReference pr = Page.RecieptForMail;
String pageAsString;
if(test.isRunningTest()){
pageAsString = 'TEST';
}else{
pageAsString= pr.getContent().tostring(); <=========Line 87
}
PageReference ref = Page.RecieptForMail;
blob br;
if(test.isRunningTest()){
br = blob.valueOf('test');
}else{
br = ref.getContentAsPDF();
}
efa1.setFileName('Reciept.pdf');
efa1.setBody(br);
toadd.add(ua.CustomerEmailWF__c);
email.setSubject('Reciept Details');
email.setToAddresses(toadd);
email.setSenderDisplayName('Bren Service');
email.setReplyTo('Query@bren.com');
if(!test.isRunningTest())
email.setCcAddresses(new list<string>{'erp.alert@bren.com',ua.owner.email});
email.setHtmlBody(pageAsString);
fileAttachments.add(efa1);
email.setFileAttachments(fileAttachments);
Messaging.SendEmailResult [] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
//for creating task
task tk=new task();
tk.WhatId=rc.id;
tk.TaskInfo__c='Receipt';
tk.OwnerId=userinfo.getUserId();
tk.Subject = 'Reciept Sent to Customer';
tk.Priority='normal';
tk.Status='completed';
insert tk;
pagereference p=new pagereference('/'+RecID);
return p;
}
return null;
}
public pagereference printreciept(){
if(IncludeCoowner == true){
coownerName='& '+ua.DMN_Second_Applicant_Name_Frm__c;
}
Id profileId=userinfo.getProfileId();
String profileName=[Select Id,Name from Profile where Id=:profileId].Name;
if(rc.ApprovalStatus__c != 'applied' && profileName == 'Bren Crm Standard User'){
apexpages.Message m=new apexpages.Message(apexpages.Severity.ERROR,'This Reciept Still Not Approved by Finance');
apexpages.addMessage(m);
}else{
//for creating task
task tk=new task();
tk.WhatId=rc.id;
tk.TaskInfo__c='Receipt';
tk.OwnerId=userinfo.getUserId();
tk.Subject = 'Reciept Print Taken';
tk.Priority='normal';
tk.Status='completed';
insert tk;
pagereference p=new pagereference('/apex/RecieptForPrint');
return p;
}
return null;
}
}
Please Have a Look and help me out
pageAsString = EncodingUtil.base64Encode(pr.getContent());