Advertisement
Guest User

Untitled

a guest
Mar 1st, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. public class BillingCalloutService {
  2.  
  3. @future(callout=true)
  4. public static void callBillingService(String projectRef, Decimal billingAmount){
  5.  
  6. ServiceCredentials__c servCred = ServiceCredentials__c.getValues('BillingServiceCredential');
  7.  
  8. BillingServiceProxy.project project = new BillingServiceProxy.project();
  9. project.username = servCred.Username__c;
  10. project.password = servCred.Password__c;
  11. project.projectRef = projectRef;
  12. project.billAmount = billingAmount;
  13.  
  14. BillingServiceProxy.InvoicesPortSoap11 invoiceCall = new BillingServiceProxy.InvoicesPortSoap11();
  15. String response = invoiceCall.billProject(project);
  16.  
  17. List<Project__c> proj;
  18. if (response != null && response.equalsIgnoreCase('OK')){
  19. proj = [SELECT Status__c FROM Project__c WHERE ProjectRef__c =: projectRef];
  20. if(proj.size() > 0){
  21. proj[0].Status__c = 'Billed';
  22. }
  23. update proj;
  24. }
  25.  
  26.  
  27. }
  28. }
  29.  
  30. @RestResource(urlMapping='/project/*')
  31. global with sharing class ProjectRESTService {
  32. @HttpPost
  33. global static String postProjectData(String ProjectRef, String ProjectName, String OpportunityId, Date StartDate, Date EndDate, Double Amount, String Status) {
  34. List<Project__c> projects = [SELECT Billable_Amount__c,End_Date__c,Id,Name,Opportunity__c,ProjectRef__c,Start_Date__c,Status__c FROM Project__c WHERE ProjectRef__c = :ProjectRef];
  35. Project__c project = new Project__c();
  36. if(projects.size() > 0)project = projects.get(0);
  37.  
  38. Savepoint sp = Database.setSavepoint();
  39. try{
  40. project.Billable_Amount__c = Amount;
  41. project.End_Date__c = EndDate;
  42. project.Name = ProjectName;
  43. project.Opportunity__c = OpportunityId;
  44. project.ProjectRef__c = ProjectRef;
  45. project.Start_Date__c = StartDate;
  46. project.Status__c = Status;
  47. upsert project;
  48.  
  49. //Update Opportunity
  50. Opportunity opportunity = [SELECT Id, DeliveryInstallationStatus__c FROM Opportunity WHERE Id = :OpportunityId];
  51. opportunity.DeliveryInstallationStatus__c = 'In progress';
  52. update opportunity;
  53. If(Test.isRunningTest()){Integer i=10/0; return 'OK';}return 'OK';
  54. }
  55. catch(exception ex){
  56. Database.rollback(sp);
  57. return ex.getMessage();
  58. }
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement