-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProjectRESTService.cls
42 lines (38 loc) · 1.42 KB
/
ProjectRESTService.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
@RestResource(urlMapping='/project/*')
global with sharing class ProjectRESTService {
@HttpPost
global static String postProjectData(String ProjectRef,
String ProjectName,
String OpportunityId,
Date StartDate,
Date EndDate,
Double Amount,
String Status) {
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];
Project__c project = new Project__c();
if(projects.size() > 0)
project = projects.get(0);
Savepoint sp = Database.setSavepoint();
try{
project.Billable_Amount__c = Amount;
project.End_Date__c = EndDate;
project.Name = ProjectName;
project.Opportunity__c = OpportunityId;
project.ProjectRef__c = ProjectRef;
project.Start_Date__c = StartDate;
project.Status__c = Status;
upsert project;
Opportunity opportunity = [SELECT Id, DeliveryInstallationStatus__c FROM Opportunity WHERE Id = :OpportunityId];
opportunity.DeliveryInstallationStatus__c = 'In progress';
update opportunity;
return 'OK';
}
catch(exception ex){
Database.rollback(sp);
return ex.getMessage();
}
}
}