function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ECoronaECorona 

Checkbox Visualforce page

Hello!

I have this VFP and i would like to add checkboxes for every row and create and opportunity but, i can't figure out how to do it... any ideas?

I'll really appreciate your help!

<apex:page standardController="Account" extensions="OrderSummaryAccount" >
    <apex:form >
        <apex:pageBlock title="Summary of products and services">
            <apex:pageBlockTable value="{!os.accountServicesSummaries}" var="item">
              <apex:column headerValue="Service ID">{!item.ServiceId}</apex:column>
                <apex:column headerValue="Service Name">{!item.serviceName}</apex:column>
                <apex:column headerValue="Quantity">{!item.quantity}</apex:column>
                <apex:column headerValue="Price">  <apex:outputText value="{0,number,$#,###,###.00}"><apex:param value="{!item.price}" /></apex:outputText></apex:column>
            </apex:pageBlockTable>
        </apex:pageBlock>
    </apex:form>
</apex:page>

And this extension

public with sharing class OrderSummaryAccount {
    public OrderSummary os {get;set;}    
    
    public OrderSummaryAccount(ApexPages.StandardController stdController) {
        Account a = (Account) stdController.getRecord();
        os = OrderSummary.getOrderSummary(a.id);
    }
}

And this class


public class OrderSummary {

    public String accountId {get;set;}
    public List<AccountServicesSummaries> accountServicesSummaries {get;set;}
  public List<AccountNonBillablesSummaries> accountNonBillablesSummaries {get;set;}
  public List<AccountServiceLocationsSummaries> accountServiceLocationsSummaries {get;set;}   
    
    public OrderSummary(){
        accountId = '';
        accountServicesSummaries = new List<AccountServicesSummaries>();
        accountNonBillablesSummaries = new List<AccountNonBillablesSummaries>();
        accountServiceLocationsSummaries = new List<AccountServiceLocationsSummaries>();
    }
    
  public class AccountNonBillablesSummaries {
    public String id {get;set;}
    public String eqpId {get;set;}
    public String eqpName {get;set;}
  }

  public class AccountServicesSummaries {
    public String id {get;set;}
    public String serviceId {get;set;}
    public String serviceName {get;set;}
    public Double quantity {get;set;}
    public Double price {get;set;}
  }

  public class AccountServiceLocationsSummaries {
    public String id {get;set;}
    public String locationName {get;set;}
  }
  
  public static OrderSummary parse(String json) {
    return (OrderSummary) System.JSON.deserialize(json, OrderSummary.class);
  }
    
    public static OrderSummary getOrderSummary(String accountId){
        
        OrderSummary r = new OrderSummary();
        
        Http http = new Http();
    HttpRequest request = new HttpRequest();
    request.setEndpoint('https://provision-gateway.develop.embrix.org/getOrderSummaryByAccountId');
    request.setMethod('POST');
        // Set the body as a JSON object
        request.setHeader('Content-Type', 'application/json;charset=UTF-8');
        request.setBody('{"accountId":"'+accountId+'"}');
    HttpResponse response = http.send(request);
    // If the request is successful, parse the JSON response.
        if (response.getStatusCode() == 200) {
            // Deserialize the JSON string into collections of primitive data types.
            r = parse(response.getBody());
            // Cast the values in the 'animals' key as a list            
    }

        return r;
    }
}
Suraj Tripathi 47Suraj Tripathi 47
Hi ECorona,
Greeting!

To create a button in Visualforce you can try this
<apex:column >
<apex:commandButton>
<apex:outputfield value="{//action you want to perform or any URL}"/>
</apex:commandButton>
</apex:column>
If you find your solution mark this as the best answer.

Thank you!
Regards,
Suraj Tripathi