• Sai Subhash 6
  • NEWBIE
  • 10 Points
  • Member since 2018

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 5
    Questions
  • 1
    Replies
Selected radio button value save to field and update the record

I tried this
Component:

<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction">
 <fieldset class="slds-form-element">
     <div class="slds-form-element__control">
        <div class="slds-radio_button-group">
            <legend class="slds-form-element__legend slds-form-element__label">Please Rate Technician</legend><br/>
            <ui:inputRadio text="1" label="1" name="Role" change="{!c.onGroup}"/>
            <ui:inputRadio text="2" label="2" name="Role" change="{!c.onGroup}"/>
            <ui:inputRadio text="3" label="3" name="Role" change="{!c.onGroup}"/>
            <ui:inputRadio text="4" label="4" name="Role" change="{!c.onGroup}"/>
            <ui:inputRadio text="5" label="5" name="Role" change="{!c.onGroup}"/>
        </div>
     </div>
 </fieldset>
</aura:component>

Controller:
({
    onGroup: function(cmp, evt) {
        var selected = evt.getSource().get("v.text");
        //alert(selected);
    }

})
public class UploadAttachment
{
   @AuraEnabled
    public static Id saveChunk(Id parentId, String fileName, String base64Data, String contentType, String fileId) {
        // check if fileId id ''(Always blank in first chunk), then call the saveTheFile method,
        //  which is save the check data and return the attachemnt Id after insert, 
        //  next time (in else) we are call the appentTOFile() method
        //   for update the attachment with reamins chunks   
        if (fileId == '') {
            fileId = saveTheFile(parentId, fileName, base64Data, contentType);
        } else {
            appendToFile(fileId, base64Data);
        }
 
        return Id.valueOf(fileId);
    }
 
    public static Id saveTheFile(Id parentId, String fileName, String base64Data, String contentType) {
        base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
       
        ServiceAppointment sa = [SELECT id,ParentRecordId,Work_Order__c FROM ServiceAppointment WHERE id =:parentId];
        workorder wo=[select id,Uploaded_Invoice__c from workorder where id=:sa.Work_Order__c];
         
        Attachment oAttachment = new Attachment();
        oAttachment.parentId = sa.ParentRecordId;
 
        oAttachment.Body = EncodingUtil.base64Decode(base64Data);
        oAttachment.Name = 'Uploaded Image_' +''+fileName;
        oAttachment.ContentType = contentType;
 
        wo.Uploaded_Invoice__c =true;
        update wo;
        insert oAttachment;
 
        return oAttachment.Id;
    }
 
    private static void appendToFile(Id fileId, String base64Data) {
        base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
 
        Attachment a = [
            SELECT Id, Body
            FROM Attachment
            WHERE Id =: fileId
        ];
 
        String existingBody = EncodingUtil.base64Encode(a.Body);
 
        a.Body = EncodingUtil.base64Decode(existingBody + base64Data);
 
        update a;
    }
    
    @AuraEnabled
    public static String return_ServiceAppointment(String parentId)
     {
         /*Schema.DescribeSObjectResult result = ServiceAppointment.SObjectType.getDescribe();
         String objectIdPrefix = result.getKeyPrefix();
         
         String returnprtab ='/'+objectIdPrefix+'/o';*/
         
        ServiceAppointment sa = [SELECT id,ParentRecordId,Work_Order__c FROM ServiceAppointment WHERE id =:parentId];
        workorder wo=[select id,Uploaded_Invoice__c from workorder where id=:sa.Work_Order__c];
      
         return sa.Work_Order__c;
     } 
}
public class UploadAttachments
{
   @AuraEnabled
    public static Id saveChunk(Id parentId, String fileName, String base64Data, String contentType, String fileId) {
        // check if fileId id ''(Always blank in first chunk), then call the saveTheFile method,
        //  which is save the check data and return the attachemnt Id after insert, 
        //  next time (in else) we are call the appentTOFile() method
        //   for update the attachment with reamins chunks   
        if (fileId == '') {
            fileId = saveTheFile(parentId, fileName, base64Data, contentType);
        } else {
            appendToFile(fileId, base64Data);
        }
 
        return Id.valueOf(fileId);
    }
 
    public static Id saveTheFile(Id parentId, String fileName, String base64Data, String contentType) {
        base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
        
        Attachment oAttachment = new Attachment();
        oAttachment.parentId = parentId;
 
        oAttachment.Body = EncodingUtil.base64Decode(base64Data);
        oAttachment.Name = fileName;
        oAttachment.ContentType = contentType;

        insert oAttachment;
 
        return oAttachment.Id;
    }
 
    private static void appendToFile(Id fileId, String base64Data) {
        base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
 
        Attachment a = [
            SELECT Id, Body
            FROM Attachment
            WHERE Id =: fileId
        ];
 
        String existingBody = EncodingUtil.base64Encode(a.Body);
 
        a.Body = EncodingUtil.base64Decode(existingBody + base64Data);
 
        update a;
    }
    
    @AuraEnabled
    public static String return_account()
     {
         Schema.DescribeSObjectResult result = account.SObjectType.getDescribe();
         String objectIdPrefix = result.getKeyPrefix();
         
         String returnprtab ='/'+objectIdPrefix+'/o';
         
      
         return returnprtab;
     } 
}
User-added image
User-added image
Apex Class:
public with sharing class CreateOpportunityRecord 
{
    /**
   * Create a new Opportunity Record
   *
   * @param Opportunity record to be inserted
   * 
   */
    @AuraEnabled
    public static String createRecord(Opportunity opp)
    {   
        try
        {
            System.debug('CreateOpportunityRecord::createRecord::opp'+opp);
            
            if(opp!= null)
                insert opp;
        } 
        catch (Exception ex)
        {
           ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,string.valueof(ex)));
             return null; 
        }
        return null; 
    }      
}
Component:
<aura:component controller="CreateOpportunityRecord" 
                implements="lightning:actionOverride,force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes" 
                access="global" >
    
    <!-- Include Static Resource-->
    <ltng:require styles="/resource/bootstrap1/css/bootstrap.min.css" 
                  scripts="/resource/bootstrap1/js/jquery.js,/resource/bootstrap/js/bootstrap.min.js"/>
    
    <!-- Define Attribute-->
    <aura:attribute name="selectedLookUpRecord" type="sObject" default="{}"/>
    <aura:attribute name="number" type="integer"/>
    <aura:attribute name="recType" type="RecordType"/>
    <aura:attribute name="myText" type="String"/>

    <aura:attribute name="opp" type="Opportunity" default="{'sobjectType': 'Opportunity',
                                                                     'Owner': '',
                                                                  'Name': '',  
                                                                     'RecordType': '',
                                                                  'Account__c': '', 
                                                                  'LeadSource': '',
                                                                     'Amount': '',
                                                                  'StageName': '',
                                                                  'CloseDate': '',
                                                                  'Description': '', 
                                                               }"/><br/>
    <div style="background-color:white;padding:10pt;border-radius:5px;">    
    <div>
            <table>
                <tr>
                    <td>
                        <h2 style="font-weight:bold;font-size:12px;margin-left:5%">New Opportunity Edit</h2>
                        <h1 style="font-weight:bold;font-size:18px;margin-left:5%">New Opportunity</h1>
                    </td>
                </tr>
            </table>
    </div><br/>
        <table>
            <tr>
                <td width="45%">
        <h1 style="font-weight:bold;font-size:12px;margin-left:5%">Opportunity Edit</h1>
       </td>
         <td width="55%">
              <lightning:button variant="brand" label="Save" onclick="{!c.create}"/>
            <lightning:button variant="brand" label="Cancel" onclick="{!c.cancel}"/>
        </td>
      </tr>
    </table><br/>
    <h3 class="slds-section__title slds-theme_shade">
           <span class="slds-truncate slds-p-horizontal_small" title="Opportunity Information">Opportunity Information</span>
       </h3>
    <div class="slds-grid slds-gutters">
        <div class="slds-col" style="width:500px;">
            <table class="slds-table slds-table--bordered slds-table--cell-buffer"> 
              <thead>
                 <tr>
                 <td width="45%">
                  <table>
                      <tr>
                        <td>
                            <p class="title">Owner</p>
                            <ui:outputText value="{!v.opp.Owner}"/>
                        </td>
                    </tr>
                      <tr>
                        <td>
                            <p class="title">Opportunity Name</p>
                            <ui:inputText value="{!v.opp.Name}"/>
                        </td>
                    </tr>
                      <tr>
                        <td><c:customLookup objectAPIName="account" IconName="standard:account" label="Account" selectedRecord="{!v.selectedLookUpRecord}"/></td>
                    </tr>
                          <div class="form-group">
                            <tr>
                            <td>
                        <p class="title">Lead Source</p>
                        <ui:inputSelect aura:id="InputSelectSingle" change="{!c.onSingleSelectChange}"  value="{!v.opp.LeadSource}">
                            <ui:inputSelectOption text="None"/>
                            <ui:inputSelectOption text="Web"/>
                            <ui:inputSelectOption text="Phone Enquiry"/>
                            <ui:inputSelectOption text="Partner Refferal"/>
                            <ui:inputSelectOption text="Purchased List"/>
                            <ui:inputSelectOption text="Other"/>
                        </ui:inputSelect>
                     </td>
                     </tr>
                    </div>   
                    </table>
                    </td>
                    <td width="10%"></td>
                    <td width="45%">
                        <table>
                         <tr>
                        <td>
                            <p class="title">Opportunity Record Type</p>
                            <ui:outputText value="{!v.opp.RecordType}"/>
                        </td>
                    </tr>
                         <tr>
                        <td> 
                            <p class="title">Amount</p>
                        <ui:inputNumber value="{!v.opp.Amount}"/>
                        </td>
                     </tr>
                      <div class="form-group">
                        <tr>
                            <td>
                        <p class="title">Stage</p>
                        <ui:inputSelect aura:id="InputSelectSingle" change="{!c.onSingleSelectChange}"  value="{!v.opp.StageName}">
                            <ui:inputSelectOption text="None"/>
                            <ui:inputSelectOption text="Prospecting"/>
                            <ui:inputSelectOption text="Qualification"/>
                            <ui:inputSelectOption text="Needs Analysis"/>
                            <ui:inputSelectOption text="Value Proposition"/>
                            <ui:inputSelectOption text="Id. Decision Makers"/>
                            <ui:inputSelectOption text="Perception Analysis"/>
                            <ui:inputSelectOption text="Proposal/Price Quote"/>
                            <ui:inputSelectOption text="Negotiation/Review"/>
                            <ui:inputSelectOption text="Closed Won"/>
                            <ui:inputSelectOption text="Closed Lost"/>
                        </ui:inputSelect>
                        </td>
                      </tr>
                     </div>
                        <tr>
                            <td>
                        <label>Close Date</label>
                        <ui:inputDate displayDatePicker="true" value="{!v.opp.CloseDate}"/>
                               </td>
                         </tr>
                </table>
                </td>
               
                  </tr>
                </thead>
            </table>
             <h3 class="slds-section__title slds-theme_shade">
                   <span class="slds-truncate slds-p-horizontal_small" title="Description Information">Description Information</span>
               </h3>
            <table class="slds-table slds-table--bordered slds-table--cell-buffer"> 
              <thead>
                <tr>
                 <td>
                     <p class="title">Description</p>
                    <ui:inputTextArea value="{!v.opp.Description}" rows="5" class="desc"/>
                 </td>
                </tr>
               </thead>
            </table>
            <br/>
                    <div class="de">
                        <lightning:button variant="brand" label="Save" onclick="{!c.create}"/>
                        <lightning:button variant="brand" label="Cancel" onclick="{!c.cancel}"/>
                </div>
            <br/>
        </div>
        </div>  
      </div>
</aura:component>
Controller:
({
    create : function(component, event, helper) {
        console.log('Create record');
        
        //getting the opportunity information
        var opp = component.get("v.opp");
        opp.Account__c = null;
        
        /***************Validation
        if($A.util.isEmpty(opp.Account__c) || $A.util.isUndefined(opp.Account__c)){
            alert('Account Name is Required');
            return;           
        }*************************************************/
        /*if(component.find("LeadSource").get("v.value") == ''){
            alert('picklist field is required');
        }*/
        if(component.get("v.selectedLookUpRecord").Id != undefined){
            opp.Account__c = component.get("v.selectedLookUpRecord").Id;
        }
        
        //Calling the Apex Function
        var action = component.get("c.createRecord");
        
        //Setting the Apex Parameter
        action.setParams({
            opp : opp
        });
        
        //Setting the Callback
        action.setCallback(this,function(a){
            //get the response state
            var state = a.getState();
            
            //check if result is successfull
            if(state == "SUCCESS"){
                //Reset Form
                var newOpportunity = {'sobjectType': 'Opportunity',
                                                                  'Name': '',   
                                                                  'Account__c': '', 
                                                                  'LeadSource': '',
                                                                     'Amount': '',
                                                                  'StageName': '',
                                                                  'CloseDate': '',
                                                                  'Description': '', 
                                                               };
                //resetting the Values in the form
                component.set("v.opp",newOpportunity);
                var urlEvent = $A.get("e.force:navigateToURL");
                    urlEvent.setParams({
                          "url": "/006/o"
                    });
                urlEvent.fire(); 
                //alert('Record is Created Successfully');
            } else if(state == "ERROR"){
                alert('Please enter Name,Account,Stage and Close Date');
            }
        });
        
        //adds the server-side action to the queue        
        $A.enqueueAction(action);  
    },
    cancel : function (component, event, helper) {
        var urlEvent = $A.get("e.force:navigateToURL");
            urlEvent.setParams({
              "url": "/006/o"
        });
    urlEvent.fire();
},
     onSingleSelectChange: function(cmp,event,helper) {
         var selectCmpValue = event.getSource().get("v.value");
         //alert(selectCmpValue);
     },
    /*onSingleSelectChange: function(cmp) {
         var selectCmp = cmp.find("InputSelectSingle");
         var resultCmp = cmp.find("singleResult");
         resultCmp.set("v.value", selectCmp.get("v.value"));
     },*/
     onChange: function(cmp) {
         var dynamicCmp = cmp.find("InputSelectDynamic");
         var resultCmp = cmp.find("dynamicResult");
         resultCmp.set("v.value", dynamicCmp.get("v.value"));
     }
})
public class UploadAttachment
{
   @AuraEnabled
    public static Id saveChunk(Id parentId, String fileName, String base64Data, String contentType, String fileId) {
        // check if fileId id ''(Always blank in first chunk), then call the saveTheFile method,
        //  which is save the check data and return the attachemnt Id after insert, 
        //  next time (in else) we are call the appentTOFile() method
        //   for update the attachment with reamins chunks   
        if (fileId == '') {
            fileId = saveTheFile(parentId, fileName, base64Data, contentType);
        } else {
            appendToFile(fileId, base64Data);
        }
 
        return Id.valueOf(fileId);
    }
 
    public static Id saveTheFile(Id parentId, String fileName, String base64Data, String contentType) {
        base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
       
        ServiceAppointment sa = [SELECT id,ParentRecordId,Work_Order__c FROM ServiceAppointment WHERE id =:parentId];
        workorder wo=[select id,Uploaded_Invoice__c from workorder where id=:sa.Work_Order__c];
         
        Attachment oAttachment = new Attachment();
        oAttachment.parentId = sa.ParentRecordId;
 
        oAttachment.Body = EncodingUtil.base64Decode(base64Data);
        oAttachment.Name = 'Uploaded Image_' +''+fileName;
        oAttachment.ContentType = contentType;
 
        wo.Uploaded_Invoice__c =true;
        update wo;
        insert oAttachment;
 
        return oAttachment.Id;
    }
 
    private static void appendToFile(Id fileId, String base64Data) {
        base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
 
        Attachment a = [
            SELECT Id, Body
            FROM Attachment
            WHERE Id =: fileId
        ];
 
        String existingBody = EncodingUtil.base64Encode(a.Body);
 
        a.Body = EncodingUtil.base64Decode(existingBody + base64Data);
 
        update a;
    }
    
    @AuraEnabled
    public static String return_ServiceAppointment(String parentId)
     {
         /*Schema.DescribeSObjectResult result = ServiceAppointment.SObjectType.getDescribe();
         String objectIdPrefix = result.getKeyPrefix();
         
         String returnprtab ='/'+objectIdPrefix+'/o';*/
         
        ServiceAppointment sa = [SELECT id,ParentRecordId,Work_Order__c FROM ServiceAppointment WHERE id =:parentId];
        workorder wo=[select id,Uploaded_Invoice__c from workorder where id=:sa.Work_Order__c];
      
         return sa.Work_Order__c;
     } 
}