I've spent several hours today trying to figure this out and running through several online resources here and SFDC forums to no avail.
I keep getting the following error:
List has no rows for assignment to SObject An unexpected error has occurred. Your development organization has been notified.
Here is my code:
public class SubscriptionAddProdExtension {
private Final Subscription__c sub;
public ApexPages.StandardController thisAddProdController {get; set;}
public Subscription_Additional_Products__c sAddProd {get; set;}
public ApexPages.StandardController standardContactController;
public SubscriptionAddProdExtension(ApexPages.StandardController cntrl) {
this.sub = (Subscription__c)cntrl.getRecord();
List<Subscription_Additional_Products__c> sap = [SELECT Name, Id, Expiry_Date__c, Subscription__c, Tax_Type__c, Name__c FROM Subscription_Additional_Products__c WHERE Subscription__c =:this.sub.Id];
if(sap.size() >0 ){
system.debug('Retrieved Subscription_Additional_Products__c ' + SAddProd.id);
return;
}
if(sap.size() == null ){
system.debug('Retrieved Subscription_Additional_Products__c ' + SAddProd.id);
return;
}
else{
sAddProd = [SELECT Name, Id, Expiry_Date__c, Subscription__c, Tax_Type__c, Name__c
FROM Subscription_Additional_Products__c WHERE Subscription__c = :this.sub.Id ];
system.debug('Displaying ' + SAddProd.id);
thisAddProdController = new ApexPages.StandardController(sAddProd);
}
}
public pageReference doSaveAll() {
standardContactController.save();
thisAddProdController.save();
return null;
}
}
VisualForce Markup:
<apex:pageBlock title="Aditional Products" mode="edit" >
<apex:pageBlockButtons>
<apex:commandButton action="{!save}" value="Save"/>
</apex:pageBlockButtons>
<apex:pageBlockSection title="Product Details" columns="2" >
<apex:outputField value="{!sAddProd.Name}"/>
<apex:outputField value="{!sAddProd.Tax_Type__c}"/>
<apex:outputField value="{!sAddProd.Expiry_Date__c}"/>
<apex:outputField value="{!sAddProd.Name__c}"/>
</apex:pageBlockSection>
</apex:pageBlock>