• karicheti pavani
  • NEWBIE
  • 10 Points
  • Member since 2023

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 6
    Questions
  • 2
    Replies
[3:12 PM] Gutta Pavani
<apex:page standardController="Account" extensions="MonthlyInvoicePDFController" renderAs="Pdf">
    <div style="text-align:center;">
                <apex:outputText style="color:blue; font-size:12px;">
                    <p style="color:blue;font-size:18px">SD Dental Lab.</p>
                    <p >62 Nav ipeth, LBS Road, Pune - 411030<br/>
                        Maharashtra code 27<br/>
                        Phone: 8600744647, Mobile:8600744647<br/>
                        Email Id: sddenta@gmail.com. GSTNo: 27AABFZ2582R1ZC</p>
                </apex:outputText> 
            </div>

        <hr/>
        <p style="font-size:15px;text-align:center;">BILL OF SUPPLY</p>        

        <body>
            <table style="width:100%; border-collapse: collapse;border: 1px solid black;" border="1">
                <td style="width:50%; border-collapse: collapse;border: 1px solid black;"><div style="padding-top:12px;padding-left:12px;">
                    To<p style="text-align:center;"><strong>{!Account.Name}</strong></p>
                    </div></td>
                <td style="border-collapse: collapse;border: 1px solid black;"><strong>Invoice No:</strong> {!invoice.Name}<br/> <strong>Invoice Date:</strong> {!CurrentDate}</td>
            </table>

            <!--table to show the actual data-->
            <table style="width:100%; border-collapse: collapse;border: 1px solid black;" border="1">
                <tr>
                    <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="SI No." escape="false"/></strong></center></td>
                        <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="Date" escape="false"/></strong></center></td>
                        <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="Patient Name" escape="false"/></strong></center></td>
                            <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="Work Type" escape="false"/></strong></center></td>
                            <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="Shade Guide" escape="false"/></strong></center></td>
                            <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="Region" escape="false"/></strong></center></td>                      
                            <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="Unit Price" escape="false"/></strong></center></td>
                            <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="QTY" escape="false"/></strong></center></td>
                            <td style="border-collapse: collapse;border: 1px solid black;"><center><strong><apex:outputText value="Total" escape="false"/></strong></center></td>

                </tr>

                <apex:variable value="{!1}" var="rowNumber" />

                <apex:repeat value="{!orders}" var="order">            
                    <tr style="border-collapse: collapse;border: 1px solid black;">
                        <td style="border-collapse: collapse;border: 1px solid black;"><apex:outputText value="{!rowNumber}" escape="false"/></td>

                        <td  style="border-collapse: collapse;border: 1px solid black;">
                            <apex:outputText value="{0,date,dd/MM/yyyy}">
                                <apex:param value="{!order.Order_Date__c}" />
                            </apex:outputText>
                        </td>



                        <td style="border-collapse: collapse;border: 1px solid black;"><apex:outputText value="{!order.Patient_Name__c}"/></td>

                        <td style="border-collapse: collapse;border: 1px solid black;"><apex:outputText value="{!order.Work_Type_1__c}"/></td>

                        <td style="border-collapse: collapse;border: 1px solid black;"><apex:outputText value="{!order.Shade_Guide__c}"/></td>


                       <td>
<table style="border-collapse: collapse;border: 1px solid black;"><tr><td><apex:outputText value="{!order.Region_1__c}"/></td>
<td><apex:outputText value="{!order.Region_2_c}"/></td>
<td><apex:outputText value="{!order.Region_3__c}"/></td></tr></table></User-added imagetd>

                        <td style="border-collapse: collapse;border: 1px solid black;"><apex:outputText value="{!order.Unit_Price_1__c}"/></td>

                        <td style="border-collapse: collapse;border: 1px solid black;"><apex:outputText value="{!order.Number_of_Teeths_1__c}"/></td>

                        <td style="border-collapse: collapse;border: 1px solid black;"><apex:outputText value="{!order.Total_Amount__c}"/></td>
                    </tr>

                    <apex:variable value="{!rowNumber + 1}" var="rowNumber" />
                </apex:repeat>


                <tr>
                    <th colspan="8" font="10pt" align="right" style="padding-left:20px;text-allign:Right;border-top: 1.5px solid black;border-left: 1.5px  solid black; padding-right:10px;" ><apex:outputLabel value="Total Value"/></th>
                    <td style="text-allign:Right;border: 1.5px solid black;"><apex:outputText value="{!TotalAmount}"/></td>
                </tr>
                <tr>
                    <th colspan="8" font="10pt" align="right" style="padding-left:20px;text-allign:Right; border-top: 1.5px solid black;border-left : 1.5px  solid black; padding-right:10px;"><apex:outputLabel value="Arrears"/></th>
                    <td style="text-allign:Right;border: 1.5px solid black;"><apex:outputText value="{!RemainingAmount}"/></td>
                </tr>
                <tr>
                    <th colspan="8" font="10pt" align="right" style="padding-left:20px;text-allign:Right;border-top: 1.5px solid black; border-left: 1.5px  solid black;padding-right:10px;"><apex:outputLabel value="Grand Total"/></th>
                    <td style="text-allign:Right;border: 1.5px solid black;"><apex:outputText value="{!TotalAmount+RemainingAmount}"/></td>
                </tr>
                <tr>
                    <th colspan="9" font="10pt" align="left" style="padding-left:20px;text-allign:Right;border-top: 1.5px solid black; border-left: 1.5px  solid black;"><srong>Grand Total IN Words :</srong> {!inWords} Only</th>
                </tr>

            </table>

            <div>


            <table width="100%; border-collapse: collapse;">
                <tr>
                    <th style="border-collapse: collapse; padding:10px;"><strong>Bank Details</strong></th></tr>
                <tr>
                    <td Style="padding-left:10px" width="40%">Name : SD Dental Lab <br/>
                        Account Number: 7900909090909<br/>
                        Branch : Pune<br/>
                    </td>
                    <td Style="padding-left:10px" class="td2" width="40%">
                        Bank Name: HDFC Bank<br/>
                        IFSC Code: HDFCTEST234<br/><br/>
                    </td>
                </tr>
                <tr>
                    <td  Style="padding-left:10px" class="td1">

                    </td>
                    <td Style="padding-left:10px" class="td1"></td>
                    <td class="td1" colspan="2" style=" padding-top:50px;"><center> For SD Dental Lab<br/><br/><br/>
                        Authorized Signatory</center>

                    </td>
                </tr>
            </table>
            </div>

        </body>

</apex:page>
I created screenflow in that flow i have two screens one screen i am upload files and other one review Screen in the review screen i can saw the file name which i upload how can i get Dynamically.

Any one help me on this
Hi,
I create date Field when the recorder is submitted and after i created 3 formula fields for 3,5,6,days using that Date field Like Below,But still i receiving the mails on sunday i need only Business days mon-fri
For Example i submit the record on friday i receive 3 day mail on wed,5day fri,6day mon(next week) like  
any one Help on this
3DAYS Reminder Business Days Only.
CASE(
WEEKDAY(Submitted_Date_For_Approval__c + 3),
1, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(3/5)*2,
2, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(4/5)*2,
3, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(5/5)*2,
4, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(6/5)*2,
5, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(7/5)*2,
6, (Submitted_Date_For_Approval__c + 3) + 1 + CEILING(4/5)*2,
7, (Submitted_Date_For_Approval__c + 3) - IF(1>0,1,0) + 1 + CEILING(4/5)*2,
null
)


5DAYS Reminder Business Days Only.
CASE(
WEEKDAY(Submitted_Date_For_Approval__c + 5),
1, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(3/5)*2,
2, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(4/5)*2,
3, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(5/5)*2,
4, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(6/5)*2,
5, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(7/5)*2,
6, (Submitted_Date_For_Approval__c + 5) + 1 + CEILING(4/5)*2,
7, (Submitted_Date_For_Approval__c + 5) - IF(1>0,1,0) + 1 + CEILING(4/5)*2,
null
)


6DAYS Reminder Business Days Only.
CASE(
WEEKDAY(Submitted_Date_For_Approval__c + 6),
1, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(3/5)*2,
2, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(4/5)*2,
3, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(5/5)*2,
4, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(6/5)*2,
5, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(7/5)*2,
6, (Submitted_Date_For_Approval__c + 6) + 1 + CEILING(4/5)*2,
7, (Submitted_Date_For_Approval__c + 6) - IF(1>0,1,0) + 1 + CEILING(4/5)*2,
null
)
public class NonRevenueOrder_ItemsToApproveController {
      //Method to fetch all the records which are submitted for approval
    @AuraEnabled
    public static List<SubmittedRecordsWrapper> getSubmittedRecords(){
        List<SubmittedRecordsWrapper> lstSubmissionWrapper = new List<SubmittedRecordsWrapper>();
        //Process instance stores the info of records submitted for approval,
        // Process instance work item are the records an approver sees while approving/rejecting, Process instance step stores approved/rejected record including approva;/rejection comments
        for(ProcessInstance ps : [SELECT Id,TargetObjectId,TargetObject.Name,CreatedDate,
                                 (SELECT ID FROM WorkItems WHERE OriginalActorId = : UserInfo.getUserId()),  (SELECT OriginalActor.Name FROM Steps WHERE StepStatus = 'Started') FROM ProcessInstance]){
            if(!ps.WorkItems.isEmpty()){
                SubmittedRecordsWrapper objSubmittedRecordsWrapper = new SubmittedRecordsWrapper();
                objSubmittedRecordsWrapper.workItemId = ps.WorkItems[0].Id;
                objSubmittedRecordsWrapper.recordId = ps.TargetObjectId;
                objSubmittedRecordsWrapper.recordName = ps.TargetObject.Name;
                objSubmittedRecordsWrapper.relatedTo = getObjectName(ps.TargetObjectId);//get the object name using the record id
                objSubmittedRecordsWrapper.submittedDate = Date.newInstance(ps.CreatedDate.year(),ps.CreatedDate.month(),ps.CreatedDate.day());
                if(!ps.steps.isEmpty()){
                    objSubmittedRecordsWrapper.submittedBy = ps.steps[0].OriginalActor.Name;
                    lstSubmissionWrapper.add(objSubmittedRecordsWrapper);
                }
            }
        }
        return lstSubmissionWrapper;
    }
    
    public static String getObjectName(String recordId){
        //To get the label of the object name using Schema methods
        String keyPrefix = recordId.subString(0,3);
        String objectName = '';
        Map<String,Schema.SObjectType> sobjectTypeMap = Schema.getGlobalDescribe();
        for(String obj : sobjectTypeMap.keySet()){
            Schema.DescribeSObjectResult sobjectResult = sobjectTypeMap.get(obj).getDescribe();
            if(sobjectResult.getKeyPrefix() == keyPrefix){
                objectName = sobjectResult.getLabel();
                break;
            }
        }
        return objectName;
    }
 /*   //Method to Approve the selected records
    @AuraEnabled
    public static void approveRecord(String i){
        system.debug('ddddd:' +i);
        String keyPrefix = i.subString(0,1);
          system.debug('keyyy:' +keyPrefix);
        Approval.ProcessWorkitemRequest req = new Approval.ProcessWorkitemRequest();
        req.setComments('Approved');
        req.setAction('Approve');
        req.setWorkitemId(keyPrefix);     
        Approval.ProcessResult result = Approval.process(req);
        if (result.isSuccess()){
            system.debug('Approval Process was Successfull');
        }
        else{
            system.debug('Approval Process failed');
            throw new AuraHandledException('Approval process failed: ' +result.getErrors()[0].getMessage());
        }
    } */
     //Method to Approve or Reject the selected records
    @AuraEnabled
    public static String processRecords(List<String> lstWorkItemIds,String processType){
       List<String> newlstWorkItemIds = new List<String>();
        system.debug('listttt: '+newlstWorkItemIds);
        for(String s : lstWorkItemIds){
            newlstWorkItemIds.add(s.remove('/mysbd/s/workorder/'));
        } 
        String message = '';
        Integer recordsProcessed = 0;
        String comments = processType == 'Approve' ? 'Approved' : 'Rejected';
        List<Approval.ProcessWorkitemRequest> lstWorkItemRequest = new List<Approval.ProcessWorkitemRequest>();//ProcessWorkitemRequest class has methods to programmatically process submitted records
      for(String workItemId : newlstWorkItemIds){
            Approval.ProcessWorkitemRequest objWorkItemRequest = new Approval.ProcessWorkitemRequest();
            objWorkItemRequest.setComments(comments);
            objWorkItemRequest.setAction(processType);//approve or reject
            objWorkItemRequest.setWorkitemId(workItemId);
            lstWorkItemRequest.add(objWorkItemRequest);
       }
        Approval.ProcessResult[] lstProcessResult = Approval.process(lstWorkItemRequest,FALSE);//process method is used for approving/rejecting records depending on setAction attribute
        for(Approval.ProcessResult processResult : lstProcessResult){
            if(processResult.isSuccess()){
                recordsProcessed++;
            }
            else{
                for(Database.Error error : processResult.getErrors()){
                    message += error.getMessage();
                }
            }
        }
       if(recordsProcessed == lstWorkItemIds.size()){
            message = 'Selected Records '+comments+' successfully';
       }
        return message;
    }
    
    //Wrapper class to store the column values of data table
    public class SubmittedRecordsWrapper{
        @AuraEnabled public Id workItemId;
        @AuraEnabled public String recordId;
        @AuraEnabled public String relatedTo;
        @AuraEnabled public String recordName;
        @AuraEnabled public String submittedBy;
        @AuraEnabled public Date submittedDate;
    }

}
public class WorkOrderCompcontroller {
    
    public Id currentRecId{get;set;}
  
    public List<WorkOrder> getlistworkorder(){
       
        return [SELECT Id,WorkOrderNumber, Requester_Email__c, Submitter_Email__c, Requester_Name__c, Total_Cost__c  FROM WorkOrder where Id  =: currentRecId];
    }
     public List<WorkOrderLineItem> getlistWorkOrderLineItem(){
      
        return [SELECT Id,LineItemNumber,Product_Name__c, Order_Quantity__c,Unit_Price__c ,Total_Cost__c FROM WorkOrderLineItem Where WorkOrderId =:currentRecId];
    
    }
Hoping someone can help. I am creating a visual force email template add that template to approval process to get 2 different object details.
<messaging:emailTemplate subject="Email to Notify the Work order has been Submitted" recipientType="User" relatedToType="WorkOrder">
<messaging:plainTextEmailBody >
    <html>  
    Hi,
    // Please review this<a href="https://sbd3--gpsnonrev.sandbox.my.site.com/mysbd/s/workorder/{!ProcessInstance.TargetObjectId}/detail"> request </a>and approve/reject.
     <style type="text/css">
     body {font-family: Courier; size: 12pt;}
      table {
      border-width: 5px;
      border-spacing: 5px;
      border-style: dashed;
      border-color:#000000;
      background-color: #FFFFFF;
      }
      
      td {
      border-width: 1px;
      padding: 4px;
      border-style: solid;
      border-color: #000000;
      background-color: #FFFFFF;
      }
      
      th { 
      color: #000000;
      border-width: 1px ;
      padding: 4px ;
      border-style: solid ;
      border-color: #000000;
      background-color: #FFFFFF;
      }
      </style>
        <body>
                <table border="0" >  
                <tr>             
                        <th>WorkOrder</th>
                        <th>Total Cost</th>
                        <th>Item number</th>
                        <th>Order Quantity</th>
                        <th>product Name </th>
                </tr>
                <tr>
                    <td>{!WorkOrder.WorkOrderNumber}</td>
                    <td>{!WorkOrder.Total_Cost__c}</td>
                    <td>{!WorkOrderLineItem.Item_Number__c}</td>
                    <td>{!WorkOrderLineItem.Order_Quantity__c}</td>
                    <td>{!WorkOrderLineItem.Product_Name__c}</td>
                   
                </tr>
              </table>
            </body>
        </html>
Hi,
I create date Field when the recorder is submitted and after i created 3 formula fields for 3,5,6,days using that Date field Like Below,But still i receiving the mails on sunday i need only Business days mon-fri
For Example i submit the record on friday i receive 3 day mail on wed,5day fri,6day mon(next week) like  
any one Help on this
3DAYS Reminder Business Days Only.
CASE(
WEEKDAY(Submitted_Date_For_Approval__c + 3),
1, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(3/5)*2,
2, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(4/5)*2,
3, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(5/5)*2,
4, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(6/5)*2,
5, (Submitted_Date_For_Approval__c + 3) + 1 + FLOOR(7/5)*2,
6, (Submitted_Date_For_Approval__c + 3) + 1 + CEILING(4/5)*2,
7, (Submitted_Date_For_Approval__c + 3) - IF(1>0,1,0) + 1 + CEILING(4/5)*2,
null
)


5DAYS Reminder Business Days Only.
CASE(
WEEKDAY(Submitted_Date_For_Approval__c + 5),
1, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(3/5)*2,
2, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(4/5)*2,
3, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(5/5)*2,
4, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(6/5)*2,
5, (Submitted_Date_For_Approval__c + 5) + 1 + FLOOR(7/5)*2,
6, (Submitted_Date_For_Approval__c + 5) + 1 + CEILING(4/5)*2,
7, (Submitted_Date_For_Approval__c + 5) - IF(1>0,1,0) + 1 + CEILING(4/5)*2,
null
)


6DAYS Reminder Business Days Only.
CASE(
WEEKDAY(Submitted_Date_For_Approval__c + 6),
1, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(3/5)*2,
2, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(4/5)*2,
3, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(5/5)*2,
4, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(6/5)*2,
5, (Submitted_Date_For_Approval__c + 6) + 1 + FLOOR(7/5)*2,
6, (Submitted_Date_For_Approval__c + 6) + 1 + CEILING(4/5)*2,
7, (Submitted_Date_For_Approval__c + 6) - IF(1>0,1,0) + 1 + CEILING(4/5)*2,
null
)