You need to sign in to do that
Don't have an account?
Melanie VOYMANT
Update a field after clicking on a button that generates a VF PDF
Good morning all,
I can't seem to figure out what's wrong with my code, could you help me please? I would like in my controller to update a field after generating my pdf. Did I do well?
My code below :
Apex Class :
I can't seem to figure out what's wrong with my code, could you help me please? I would like in my controller to update a field after generating my pdf. Did I do well?
My code below :
Apex Class :
public with sharing class LC_QuoteController { @AuraEnabled public static Quote generateQuoteDate(Quote quote, Id recordId) { Datetime refNow = System.now(); Quote updatedQuo = new Quote( Id = recordId, Devis_edite_le__c = refNow ); update updatedQuo; return updatedQuo; } @AuraEnabled public static Id genererPDF(Id idDevis, Boolean showPrices, Boolean isEstimation) { List<Quote> quotes = [ SELECT Id, Name, QuoteNumber, Account.Name, Editer_enUS__c, Devis_edite_le__c FROM Quote WHERE Id = :idDevis]; if(quotes.isEmpty()) { throw new AuraHandledException('Aucun devis'); } Quote quote = quotes.get(0); // Appellation String quoteName = quote.QuoteNumber + ' - ' + quote.Account.Name; DocumentPageHelper pageHelper = null; if (quote.Editer_enUS__c) { pageHelper = new DocumentPageHelper(Page.VF03_QuotePDF_enUS); } else { pageHelper = new DocumentPageHelper(Page.VF02_DevisPDF); } Map<String, String> mapParams = new Map<String, String> { 'id' => String.valueOf(idDevis) }; if (!showPrices) { mapParams.put('showPrices', 'false'); } if (isEstimation) { mapParams.put('esti', 'true'); } return pageHelper.getDocumentFromPage(mapParams, quoteName, idDevis); } }Aura component JS :
({ handleRecordUpdated: function (component, event, helper) { var eventParams = event.getParams(); if (eventParams.changeType === 'LOADED') { component.set('v.showSpinner', false); var visiteEff = component.get('v.simpleRecord.Date_visite_F_operationnelle__c'); component.set('v.isEstimation', $A.util.isUndefinedOrNull(visiteEff)); } else if (eventParams.changeType === 'CHANGED') { } else if (eventParams.changeType === 'REMOVED') { } else if (eventParams.changeType === 'ERROR') { component.set('v.showSpinner', false); component.set('v.hasError', true); component.set('v.errorCode', 'Erreur Lightning Data Service'); component.set('v.errorDescription', component.get('v.recordError')); } }, confirm: function (component, event, helper) { component.set('v.confirmed', true); component.set('v.showSpinner', true); var action = component.get('c.generateQuoteDate'); var recordId = component.get('v.recordId'); action.setParams({ idDevis: recordId }); helper .invokeApexMethod(action) .then(function (retour) { action = component.get('c.genererPDF'); var recordId = component.get('v.recordId'); var showPrices = component.get('v.showPrices'); var isEstimation = component.get('v.isEstimation'); action.setParams({ idDevis: recordId, showPrices: showPrices, isEstimation: isEstimation }); helper.invokeApexMethod(action).then(function (retour) { component.set('v.showSpinner', false); component.set('v.hasError', false); var navEvt = $A.get('e.force:navigateToSObject'); navEvt.setParams({ recordId: retour }); navEvt.fire(); }); }) ['catch'](function (errors) { component.set('v.showSpinner', false); component.set('v.hasError', true); if (errors) { console.log('errors', errors); if (!$A.util.isUndefinedOrNull(errors[0].message)) { var msg = errors[0].message.split(';'); switch (msg[0]) { case 'Aucun devis': component.set('v.errorCode', 'Aucun devis ne correspond.'); component.set( 'v.errorDescription', "Vérifier que le devis ne vient pas d'être supprimé." ); break; } } else if (!$A.util.isUndefinedOrNull(errors[0].pageErrors)) { component.set('v.errorCode', errors[0].pageErrors[0].statusCode); component.set('v.errorDescription', errors[0].pageErrors[0].message); } } }); } });Thank you guys !
Hi Melanie,
Please let me know what error you are getting.
Regards,
Priya Ranjan
Thanks for your help,
I have this :