• Anil D
  • NEWBIE
  • 0 Points
  • Member since 2012

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 3
    Replies

Hi All,

 

I have a condition where i need to save Opportuinty data with two custom lists "Airline" and "Traveler"

 

Here is my Apex code

 

<apex:page controller="MultiRowInsert"  >
   <apex:form >
       <apex:pageblock id="pb"  title="Opportunity Detail">
           <apex:pageBlockSection title="Order Details" columns="1">
                <apex:inputField value="{!opp.OrderID__c}" label="Id:"/>
                <apex:outputField value="{!opp.Status__c}" label="Status:"/>
                <apex:outputField value="{!opp.Date_Sold__c}" label="Date Sold:"/>
           </apex:pageBlockSection>
           <apex:pageBlockSection title="Agents Info" columns="1">
                <apex:inputField value="{!opp.Agent_Name__c}" label="Agent Name:"/>
                <apex:inputText value="{!opp.Agent_Email__c}" label="Agent Email:"/>
                <apex:inputText value="{!opp.Agent_Phone__c}" label="Agent Phone:"/>
            </apex:pageBlockSection>
            <apex:pageBlockSection title="Flight Info" columns="2">
                 <apex:inputField value="{!opp.Region__c}" label="Region:"/>
                 <br />
                 <apex:pageBlockTable value="{!listAir}" var="a" id="table">
                    <apex:facet name="footer">
                        <apex:commandLink value="Add Row" action="{!AddAirlineRow}" rerender="table,error"/>
                    </apex:facet>
                 <apex:column headerValue="Airline Name">
                    <apex:inputHidden value="{!a.id}"/>
                    <apex:inputHidden value="{!a.Opportunity__c}"/>
                    <apex:inputText value="{!a.Name__c}"/>
                 </apex:column>
                 <apex:column headerValue="PNR">
                    <apex:inputText value="{!a.PNR__c}"/>
                 </apex:column>
                 </apex:pageBlockTable>
                 <br />
            </apex:pageBlockSection>
            <apex:pageBlockSection title="Passengers Info" columns="2">
                 <apex:pageBlockTable value="{!listTvl}" var="tvl" id="tvlTable">
                    <apex:facet name="footer">
                        <apex:commandLink value="Add Row" action="{!AddTravellerRow}" rerender="tvlTable,error"/>
                    </apex:facet>
                 <apex:column headerValue="First Name">
                    <apex:inputHidden value="{!tvl.id}"/>
                    <apex:inputHidden value="{!tvl.Opportunity__c}"/>
                    <apex:inputText value="{!tvl.First_Name__c}"/>
                 </apex:column>
                 <apex:column headerValue="Middle Name">
                    <apex:inputText value="{!tvl.Middle_Name__c}"/>
                 </apex:column>
                  <apex:column headerValue="Last Name">
                    <apex:inputText value="{!tvl.Last_Name__c}"/>
                 </apex:column>
                 <apex:column headerValue="DOB">
                    <apex:inputField value="{!tvl.DOB__c}" required="false"/>
                 </apex:column>
                 <apex:column headerValue="Gender">
                    <apex:inputField value="{!tvl.Gender__c}"/>
                 </apex:column>
                 </apex:pageBlockTable>
            </apex:pageBlockSection>
            <apex:pageBlockSection title="Opportunity Info" columns="2">
                <apex:inputField value="{!opp.Name}" label="Opportunity Name:"/>
                <apex:inputField value="{!opp.CloseDate}" label="Close Date:"/>
                <apex:inputField value="{!opp.AccountId}" label="Account Name"/>
                <apex:inputField value="{!opp.Probability}" label="Probability (%)"/>
            </apex:pageBlockSection>     
            <apex:pageBlockButtons >
                <apex:commandButton value="Save" action="{!save}" id="saveButton" />
                <apex:commandButton value="Cancel" action="{!cancel}" id="cancelButton" />
            </apex:pageBlockButtons>
        </apex:pageblock>
    </apex:form>
</apex:page>

 

And Here is Apex Class

 

public class MultiRowInsert {

    Opportunity opp;
    public List<Airline__c> listAir {get; set;}
    public List<Traveler__c> listTvl {get; set;}
    public String ID  {get; set;}
    
    public Opportunity getOpp(){
        if(opp == null)
            opp = new Opportunity();
            
        ID = ApexPages.currentPage().getParameters().get('id');        

        if(ID != '' && ID != null)
        {
            opp = [select id,Name,OrderID__c,Airline_Name__c,Agent_Name__c ,Region__c,Date_and_Time_Expires__c ,Total_Net__c ,Depart_Home__c ,Return_Home__c
            ,Engineer__c ,Seat_Preference__c ,Card_Type__c ,Billing_Country__c ,Notes__c ,First_Name__c,Country__c ,Account_Type__c ,CloseDate ,AccountId ,Probability
            ,Status__c, Date_Sold__c ,Agent_Email__c ,Agent_Phone__c ,Total_Taxes_and_Fees__c ,Total_Miles_Needed__c ,Total_Charge__c ,Total_GP__c ,Lead_ID__c
            ,Lead_Date_Time__c ,Meal_Preference__c ,Complete_Itinerary_Information__c ,Is_there_internal_flights_issued_not_usi__c ,Billing_Name__c ,Billing_Address_1__c
            ,Billing_Address_2__c ,Billing_City__c ,Billing_State__c ,Billing_Zip__c ,Pax_Email_separate_by_comma__c ,Middle_Name__c ,Last_Name__c ,Opportunity.Address__c
            ,Opportunity.City__c ,Opportunity.State__c ,Opportunity.Zip__c ,DOB__c ,Email__c,Phone__c ,Alt_Phone__c ,Account_Number__c ,Password__c
                from Opportunity where id = :ID];
        }
            
        return opp;
    }
    
    public MultiRowInsert()
    {
        ID = ApexPages.currentPage().getParameters().get('id');
        listAir = [select id , Name__c, PNR__c , Opportunity__C from Airline__c where Opportunity__C = :ID];
        listAir.add(New Airline__c());

        listTvl = [select id , First_Name__c, Middle_Name__c , Last_Name__c, DOB__c, Gender__c , Opportunity__C from Traveler__c where Opportunity__C = :ID];
        listTvl.add(New Traveler__c());
    }
    
    public void AddAirlineRow(){
        Airline__c ar = new Airline__c();
        ar.Opportunity__C = ApexPages.currentPage().getParameters().get('id');
        listAir.add(ar);
    }
    
    public void AddTravellerRow(){
        Traveler__c tr = new Traveler__c();
        tr.Opportunity__C = ApexPages.currentPage().getParameters().get('id');
        listTvl.add(tr);
    }
    
    public PageReference save()
    {
       try{
           update opp;
           for(Airline__c air : listAir)
           {  
               update air;
           }
           
           for(Traveler__c tvl : listTvl)
           {  
               update tvl;
           }
        }
        catch(DmlException ex){
            ApexPages.addMessages(ex);  
        }

        PageReference pr = new PageReference('/'+  opp.id);
        pr.setRedirect(true);
        return pr;
    }

    public PageReference cancel()
    {
        PageReference pr = new PageReference('/'+  opp.id);
        pr.setRedirect(true);
        return pr;
    }
}

 

Using above code, Opportunity update and Airline records also updated successfully but Traveller records are not updating.

 

Also i woulld like to save new record for Airline and Traveller too

 

Please help me how can i acheve this?

 

Thanks

 

  • February 17, 2012
  • Like
  • 0

Hi All,

 

I have a condition where i need to save Opportuinty data with two custom lists "Airline" and "Traveler"

 

Here is my Apex code

 

<apex:page controller="MultiRowInsert"  >
   <apex:form >
       <apex:pageblock id="pb"  title="Opportunity Detail">
           <apex:pageBlockSection title="Order Details" columns="1">
                <apex:inputField value="{!opp.OrderID__c}" label="Id:"/>
                <apex:outputField value="{!opp.Status__c}" label="Status:"/>
                <apex:outputField value="{!opp.Date_Sold__c}" label="Date Sold:"/>
           </apex:pageBlockSection>
           <apex:pageBlockSection title="Agents Info" columns="1">
                <apex:inputField value="{!opp.Agent_Name__c}" label="Agent Name:"/>
                <apex:inputText value="{!opp.Agent_Email__c}" label="Agent Email:"/>
                <apex:inputText value="{!opp.Agent_Phone__c}" label="Agent Phone:"/>
            </apex:pageBlockSection>
            <apex:pageBlockSection title="Flight Info" columns="2">
                 <apex:inputField value="{!opp.Region__c}" label="Region:"/>
                 <br />
                 <apex:pageBlockTable value="{!listAir}" var="a" id="table">
                    <apex:facet name="footer">
                        <apex:commandLink value="Add Row" action="{!AddAirlineRow}" rerender="table,error"/>
                    </apex:facet>
                 <apex:column headerValue="Airline Name">
                    <apex:inputHidden value="{!a.id}"/>
                    <apex:inputHidden value="{!a.Opportunity__c}"/>
                    <apex:inputText value="{!a.Name__c}"/>
                 </apex:column>
                 <apex:column headerValue="PNR">
                    <apex:inputText value="{!a.PNR__c}"/>
                 </apex:column>
                 </apex:pageBlockTable>
                 <br />
            </apex:pageBlockSection>
            <apex:pageBlockSection title="Passengers Info" columns="2">
                 <apex:pageBlockTable value="{!listTvl}" var="tvl" id="tvlTable">
                    <apex:facet name="footer">
                        <apex:commandLink value="Add Row" action="{!AddTravellerRow}" rerender="tvlTable,error"/>
                    </apex:facet>
                 <apex:column headerValue="First Name">
                    <apex:inputHidden value="{!tvl.id}"/>
                    <apex:inputHidden value="{!tvl.Opportunity__c}"/>
                    <apex:inputText value="{!tvl.First_Name__c}"/>
                 </apex:column>
                 <apex:column headerValue="Middle Name">
                    <apex:inputText value="{!tvl.Middle_Name__c}"/>
                 </apex:column>
                  <apex:column headerValue="Last Name">
                    <apex:inputText value="{!tvl.Last_Name__c}"/>
                 </apex:column>
                 <apex:column headerValue="DOB">
                    <apex:inputField value="{!tvl.DOB__c}" required="false"/>
                 </apex:column>
                 <apex:column headerValue="Gender">
                    <apex:inputField value="{!tvl.Gender__c}"/>
                 </apex:column>
                 </apex:pageBlockTable>
            </apex:pageBlockSection>
            <apex:pageBlockSection title="Opportunity Info" columns="2">
                <apex:inputField value="{!opp.Name}" label="Opportunity Name:"/>
                <apex:inputField value="{!opp.CloseDate}" label="Close Date:"/>
                <apex:inputField value="{!opp.AccountId}" label="Account Name"/>
                <apex:inputField value="{!opp.Probability}" label="Probability (%)"/>
            </apex:pageBlockSection>     
            <apex:pageBlockButtons >
                <apex:commandButton value="Save" action="{!save}" id="saveButton" />
                <apex:commandButton value="Cancel" action="{!cancel}" id="cancelButton" />
            </apex:pageBlockButtons>
        </apex:pageblock>
    </apex:form>
</apex:page>

 

And Here is Apex Class

 

public class MultiRowInsert {

    Opportunity opp;
    public List<Airline__c> listAir {get; set;}
    public List<Traveler__c> listTvl {get; set;}
    public String ID  {get; set;}
    
    public Opportunity getOpp(){
        if(opp == null)
            opp = new Opportunity();
            
        ID = ApexPages.currentPage().getParameters().get('id');        

        if(ID != '' && ID != null)
        {
            opp = [select id,Name,OrderID__c,Airline_Name__c,Agent_Name__c ,Region__c,Date_and_Time_Expires__c ,Total_Net__c ,Depart_Home__c ,Return_Home__c
            ,Engineer__c ,Seat_Preference__c ,Card_Type__c ,Billing_Country__c ,Notes__c ,First_Name__c,Country__c ,Account_Type__c ,CloseDate ,AccountId ,Probability
            ,Status__c, Date_Sold__c ,Agent_Email__c ,Agent_Phone__c ,Total_Taxes_and_Fees__c ,Total_Miles_Needed__c ,Total_Charge__c ,Total_GP__c ,Lead_ID__c
            ,Lead_Date_Time__c ,Meal_Preference__c ,Complete_Itinerary_Information__c ,Is_there_internal_flights_issued_not_usi__c ,Billing_Name__c ,Billing_Address_1__c
            ,Billing_Address_2__c ,Billing_City__c ,Billing_State__c ,Billing_Zip__c ,Pax_Email_separate_by_comma__c ,Middle_Name__c ,Last_Name__c ,Opportunity.Address__c
            ,Opportunity.City__c ,Opportunity.State__c ,Opportunity.Zip__c ,DOB__c ,Email__c,Phone__c ,Alt_Phone__c ,Account_Number__c ,Password__c
                from Opportunity where id = :ID];
        }
            
        return opp;
    }
    
    public MultiRowInsert()
    {
        ID = ApexPages.currentPage().getParameters().get('id');
        listAir = [select id , Name__c, PNR__c , Opportunity__C from Airline__c where Opportunity__C = :ID];
        listAir.add(New Airline__c());

        listTvl = [select id , First_Name__c, Middle_Name__c , Last_Name__c, DOB__c, Gender__c , Opportunity__C from Traveler__c where Opportunity__C = :ID];
        listTvl.add(New Traveler__c());
    }
    
    public void AddAirlineRow(){
        Airline__c ar = new Airline__c();
        ar.Opportunity__C = ApexPages.currentPage().getParameters().get('id');
        listAir.add(ar);
    }
    
    public void AddTravellerRow(){
        Traveler__c tr = new Traveler__c();
        tr.Opportunity__C = ApexPages.currentPage().getParameters().get('id');
        listTvl.add(tr);
    }
    
    public PageReference save()
    {
       try{
           update opp;
           for(Airline__c air : listAir)
           {  
               update air;
           }
           
           for(Traveler__c tvl : listTvl)
           {  
               update tvl;
           }
        }
        catch(DmlException ex){
            ApexPages.addMessages(ex);  
        }

        PageReference pr = new PageReference('/'+  opp.id);
        pr.setRedirect(true);
        return pr;
    }

    public PageReference cancel()
    {
        PageReference pr = new PageReference('/'+  opp.id);
        pr.setRedirect(true);
        return pr;
    }
}

 

Using above code, Opportunity update and Airline records also updated successfully but Traveller records are not updating.

 

Also i woulld like to save new record for Airline and Traveller too

 

Please help me how can i acheve this?

 

Thanks

 

  • February 17, 2012
  • Like
  • 0

Hi all,

 

I need to add the Orders__c.ID value to every Ordered_SKU__c.Order__c field on save.  I can't figure out how to get it in there... Any suggestions?

 

 

public class orderInsert {

Orders__c orders;
List<Ordered_SKU__c> skus {get; set;}

public Orders__c getOrders(){
if(orders == null){
orders = new Orders__c();
}
return orders;
}

public orderInsert(){
skus = new List<Ordered_SKU__c>();
skus.add(New Ordered_SKU__c()); // I've tried (New Ordered_SKU__c(Order__c = orders.id)); but obviously that returns a null value.
}

public void addrow(){
skus.add(new Ordered_SKU__c());
}

public PageReference save() {
try{
insert orders;
insert skus;
}
catch(DmlException ex){
ApexPages.addMessages(ex);
}
PageReference pr = new PageReference('/'+orders.id);
pr.setRedirect(true);
return pr;
}
}

 

 

  • June 29, 2010
  • Like
  • 0