Navigate to lightning web component to Visual Force page and generate pdf

Lwc.html:-

<lightning-button  label="download Invoice" variant="brand"   class="slds-float_right slds-p-right_medium" style="float: right;" onclick={navigateTovfpage}></lightning-button>


lwc.js:-

import { LightningElement,track,wire } from 'lwc';

import { CurrentPageReference , NavigationMixin } from 'lightning/navigation';

import { ShowToastEvent } from 'lightning/platformShowToastEvent'

import orderDetails from '@salesforce/apex/ProductImagesApexClass.orderDetails'

export default class KOrderDetailPage extends NavigationMixin(LightningElement) {

orderId='';


navigateTovfpage()

    {

        this[NavigationMixin.Navigate]({

            type: 'standard__webPage',

            attributes: {

                url: '/apex/invoicevfpage?recordId=' + this.orderId

            }

        });

        console.log('this.orderid1-->'+this.orderId)

    }



 getOrderDetails(){

        orderDetails({

            orderId : this.orderId

        })

        .then(result => {

            this.orderInfo = result.order;

            this.orderItems = result.Orderitems;

            console.log('this.orderInfo',this.orderInfo)

            console.log('this.orderItems',this.orderItems)

        })

        .catch( error => {

            console.error(error);

        })

    }

 connectedCallback() {

       

        

        this.getOrderDetails();

        

}

}


lwc.meta-data.xml:-

<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>55.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
    </targets>
</LightningComponentBundle>

<?xml version="1.0" encoding="UTF-8"?>

<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">

    <apiVersion>55.0</apiVersion>

    <isExposed>true</isExposed> 

    <targets> 

        <target>lightning__AppPage</target> 

        <target>lightning__RecordPage</target> 

    </targets>

</LightningComponentBundle>


visualforce page:-


<apex:page controller="orderidapex" sidebar="false" tabStyle="Account" renderAs="{!if($CurrentPage.parameters.isPdf == null, null, 'pdf')}"  id="myPage">

    <button onclick="navigateToLWC()">

         <div style="text-decoration:none" >

             Back

         </div></button>    

     <script>        

                 function navigateToLWC() {

            window.location.href = '/lightning/n/kOrderDetailPage';

        }

    </script>

<table style="font-family:sans-serif; padding-bottom:30px;">

<tr>

    <td><apex:image id="logo2" value="{!$Resource.logo2}" width="60" height="60"/></td>

    <td style="font:24pt; padding-left:10px; padding-right:250px; color:#1bc40c"><b>E-Zone</b></td>

    <td style="font:24pt;color:#ff4500;"><b>INVOICE</b></td>

</tr>

</table>


<table style="border:0.5px solid #fff; font-family:sans-serif;">

   <tr>

    

    <td style="test-align:left; padding-left:380px;"><b>Ordered Date :</b></td> 

    <td style="text-align:right;">

        <apex:outputtext value="{0,date,medium}">      

        <apex:param value="{!orderInfo.kOrdered_Date__c}"></apex:param>   

        </apex:outputtext>

       

    </td> 

  </tr>

  <tr>

    

    <td style="test-align:left; padding-left:380px;"><b>Delivery Date :</b></td>

    <td style="text-align:right;">

        <apex:outputtext value="{0, date, medium}">      

            <apex:param value="{!orderInfo.kEstimated_Delivery_Date__c}"></apex:param>    

        </apex:outputtext>

     </td>

  </tr>


</table>

<br></br>


<table style="border:0.5px solid #fff; font-family:sans-serif;">

<tr style="color:#fff; background-color:#ff4500;">

   <th style="padding-left:5px; padding-right:170px;">SHIPPING ADDRESS</th>  

</tr>

    <tr>

    <td style="padding-left:5px;"><apex:outputField value="{!orderInfo.kShipping_Address__r.Street__c}"/></td>

    </tr>

    <tr>

        <td style="padding-left:5px;"><apex:outputField value="{!orderInfo.kShipping_Address__r.City__c}"/></td>

    </tr>

    <tr>

        <td style="padding-left:5px;"><apex:outputField value="{!orderInfo.kShipping_Address__r.State__c}"/></td>

    </tr>

    <tr>

        <td style="padding-left:5px;"><apex:outputField value="{!orderInfo.kShipping_Address__r.Country__c}"/></td>

    </tr>

    <tr>

        <td style="padding-left:5px;"><apex:outputField value="{!orderInfo.kShipping_Address__r.PostalCode__c}"/></td>

    </tr>

   </table>

<br></br>

<table style="font-family:sans-serif;">

<tr style="color:#fff; background-color:#ff4500;">

    <th style="text-align:center; padding-left:5px; padding-right:280px;">Product Name</th>

    <th style="text-align:center; padding-left:5px; padding-right:5px;">Quantity</th>

    <th style="text-align:center; padding-left:20px; padding-right:15px;">Unit Price</th>

    <th style="text-align:center; padding-left:15px; padding-right:25px;">Amount</th>

</tr>

    <tbody>

  <apex:repeat value="{!orderlineitem}" var="item">

  <tr>

      <td style="padding-left:5px;">{!item.Product__r.Name}</td>

      <td style="text-align:center;">{!item.Quantity__c}</td>

      <td style="text-align:center;">{!item.UnitPrice__c}</td>

      <td style="text-align:center;">{!item.Total__c}</td>

  </tr>

  </apex:repeat>

    </tbody>

</table>


<table style="margin-left:450px; margin-top:20px; z-index:1; font-family:sans-serif;">

<tr>

    <td style="padding-right:20px; text-align:right;">Amount :</td>

    <td style="text-align:right;">

        <apex:outputText value="INR  {0, number}">

          <apex:param value="{!orderInfo.kTotalAmount__c}" />

        </apex:outputText>

    </td>

</tr>

<tr>

    <td style="padding-right:20px; text-align:right;">Discount Applied :</td>

    <td style="text-align:right;">

        <apex:outputText value="INR  {0, number}">

          <apex:param value="{!orderInfo.kDiscountApplied__c}" />

        </apex:outputText>

        

    </td>

</tr>

<tr>

    <td style="padding-right:20px; text-align:right;">Total Amount :</td>

    <td style="text-align:right;">

        <apex:outputText value="INR  {0, number}">

          <apex:param value="{!orderInfo.kAfterDiscount__c}" />

        </apex:outputText>

        

    </td>

</tr>

</table>

<table style="margin-left:180px; padding-top:40px; z-index:1;  font-family:sans-serif;">

<tr>

    <td style="color:#ed0cc8;font-style: italic;font:15pt;"><b>Thank you for Shopping with us!</b></td>

</tr>

</table>

<br></br>

<apex:form >

<apex:commandLink action="/apex/newinvoice?isPdf=true" target="_blank" style="text-decoration:none">

             <apex:commandButton value="Generate Pdf"/>

            </apex:commandLink>

 </apex:form>

</apex:page>


controller:-

-----------

public class orderidapex {

Public Order__c orderInfo {get;set;}

Public list<Order_Line_Item__c> orderlineitem{get;set;}


Public orderidapex()

{

orderInfo = new Order__c();

   orderlineitem=new list<Order_Line_Item__c>(); 

string recordid1 = ApexPages.CurrentPage().GetParameters().Get('recordId'); 

    if(recordid1 != null && recordid1 !='')

{

 orderInfo = [

            Select Id, Name, kUser__c,kOrdered_Date__c,kEstimated_Delivery_Date__c,Status__c, kShipping_Address__c,kTotalAmount__c,kAfterDiscount__c,

            kDiscountApplied__c,kShipping_Address__r.Street__c, kShipping_Address__r.City__c,PaymentMethod__c,PaymentStatus__c,

            kShipping_Address__r.Country__c,

            kShipping_Address__r.State__c,

            kShipping_Address__r.PostalCode__c

            From Order__c

            Where Id =: recordid1

        ];

orderlineitem=[Select Id, Name,Product__r.Name,Quantity__c, UnitPrice__c,Total__c,Order__c

                 From Order_Line_Item__c where Order__c =:recordid1];

  }

}

    

    Public PageReference back()

{

PageReference pgRef = new PageReference('https://wisseninfotech85--team5.sandbox.lightning.force.com/lightning/n/kOrderDetailPage'); 

    pgRef.SetRedirect(true);

return pgRef;

}

}

OutPut:-








    

Comments