global with sharing class CreateAppointmentOSController implements vlocity_ins.VlocityOpenInterface {
public Boolean invokeMethod(String methodName, Map<String, Object> input, Map<String, Object> outMap, Map<String, Object> options){
boolean flag=false;
System.debug('---invokeMethod---');
System.debug('input: '+input);
System.debug('methodName: '+methodName);
if(methodName.equals('getFreeSlots')){
flag=getFreeSlots(input,outMap,options);
}
return flag;
}
public boolean getFreeSlots(Map<String, Object> input, Map<String, Object> outMap, Map<String, Object> options){
boolean flag=true;
Map<String,Object> AppointmentDetails=new Map<String,Object>();
if(input.containsKey('AppointmentDetails'))
AppointmentDetails=(Map<String,Object>)input.get('AppointmentDetails');
Date startDate;
if(AppointmentDetails.containsKey('StartDate')){
String startDatestr=(String)AppointmentDetails.get('StartDate');
//Take only date from 2018-05-30T18:30:00.000Z
if(startDatestr.contains('T')){
startDate=Date.valueOf(startDatestr.split('T')[0]);
}
}
String ownerId=UserInfo.getUserId();
List<Map<String,String>> lookupoptions=new List<Map<String,String>>();
List<String> ctlist=new List<String>();
List<Event> evtlist=EmptyEventSlotManager.FindAllfreeSlots(startDate, ownerId);
String[] endTime;
String[] startTime;
for(Event e:evtlist){
try{
startTime=String.valueOf(e.ActivityDateTime).subStringAfter(' ').split(':'); //get hour
endTime=String.valueOf(e.EndDateTime).subStringAfter(' ').split(':'); //get hour
}catch(Exception ex){
system.debug('Exception: '+ex);
}
String tm='';
if(Integer.valueOf(endTime[0])<=12)
tm=' AM';
else
tm=' PM';
Integer hh=Integer.valueOf(startTime[0]);
Integer mm=Integer.valueOf(startTime[1]);
String mmstr=String.valueOf(mm);
for(integer i=1;i<=4;i++){ // 4x1/2 hr = 2hrs
if(mm==0)
mmstr=String.valueOf(mm+'0');
lookupoptions.add(new Map<String,String>{'OwnerId'=>String.valueOf(ownerId),'startTime'=>String.valueOf(hh+':'+mmstr+tm)});
mm+=30;
//1 hour completed
if(mm>=60){
mm=0;
hh++;
}
mmstr=String.valueOf(mm);
}
}
outMap.put('suggestions',lookupoptions);
return flag;
}
}
public Boolean invokeMethod(String methodName, Map<String, Object> input, Map<String, Object> outMap, Map<String, Object> options){
boolean flag=false;
System.debug('---invokeMethod---');
System.debug('input: '+input);
System.debug('methodName: '+methodName);
if(methodName.equals('getFreeSlots')){
flag=getFreeSlots(input,outMap,options);
}
return flag;
}
public boolean getFreeSlots(Map<String, Object> input, Map<String, Object> outMap, Map<String, Object> options){
boolean flag=true;
Map<String,Object> AppointmentDetails=new Map<String,Object>();
if(input.containsKey('AppointmentDetails'))
AppointmentDetails=(Map<String,Object>)input.get('AppointmentDetails');
Date startDate;
if(AppointmentDetails.containsKey('StartDate')){
String startDatestr=(String)AppointmentDetails.get('StartDate');
//Take only date from 2018-05-30T18:30:00.000Z
if(startDatestr.contains('T')){
startDate=Date.valueOf(startDatestr.split('T')[0]);
}
}
String ownerId=UserInfo.getUserId();
List<Map<String,String>> lookupoptions=new List<Map<String,String>>();
List<String> ctlist=new List<String>();
List<Event> evtlist=EmptyEventSlotManager.FindAllfreeSlots(startDate, ownerId);
String[] endTime;
String[] startTime;
for(Event e:evtlist){
try{
startTime=String.valueOf(e.ActivityDateTime).subStringAfter(' ').split(':'); //get hour
endTime=String.valueOf(e.EndDateTime).subStringAfter(' ').split(':'); //get hour
}catch(Exception ex){
system.debug('Exception: '+ex);
}
String tm='';
if(Integer.valueOf(endTime[0])<=12)
tm=' AM';
else
tm=' PM';
Integer hh=Integer.valueOf(startTime[0]);
Integer mm=Integer.valueOf(startTime[1]);
String mmstr=String.valueOf(mm);
for(integer i=1;i<=4;i++){ // 4x1/2 hr = 2hrs
if(mm==0)
mmstr=String.valueOf(mm+'0');
lookupoptions.add(new Map<String,String>{'OwnerId'=>String.valueOf(ownerId),'startTime'=>String.valueOf(hh+':'+mmstr+tm)});
mm+=30;
//1 hour completed
if(mm>=60){
mm=0;
hh++;
}
mmstr=String.valueOf(mm);
}
}
outMap.put('suggestions',lookupoptions);
return flag;
}
}
No comments:
Post a Comment