2017-12-12 15 views
-1

일부 시간대에 예약을 만들려고하지만 해당 시간대를 사용할 수 있는지 잘 모르겠습니다. 그래서 슬롯 가용성을 확인해야합니다.Groovy에서 시간 슬롯 가용성을 얻기 위해 사용하는 루프

1 단계 : 현재 시작 및 종료 시간을 변수로 설정하십시오. 예 : startDateTime (SDT) 및 endDateTime (EDT)

2 단계 : DB의 슬롯 가용성을 확인하십시오. 예 :

def res = con.firstRow("select * from tblbookingitem where active=1 and fkItemID=$roomID and DateTimeFrom=$SDT and DateTimeTo=$EDT") 

단계 3 : 슬롯 가능한 후 DB의 가용성을 확인 다시

주 임시 변수 startDateTime 및 endDateTime을 증가시키고 그렇지 않으면이 가능한 슬롯

4 단계까지 루프이어야 : 슬롯이 사용 가능하면 속성으로 설정하십시오.

나는 모든 단계에 대한 코드를 작성하고 어떻게 루프를 사용하여이를 수행 할 필요가 있습니다.

답변

1
def isAvailable = false 
def SDT = context.expand('${#Project#StartDateTime}') 
def EDT = context.expand('${#Project#EndDateTime}') 
while(isAvailable==false) 
{ 
//Running while loop and checking slot availability. 
def res = con.firstRow("select * from tblbookingitem where active=1 and fkItemID=$roomID and DateTimeFrom='$SDT' and DateTimeTo='$EDT'") 

if(res== null) // if null that means slot is available 
    { 
     //Time slot is available." 
     isAvailable=true; // you can use even break statment here 
     context.testCase.testSuite.project.setPropertyValue('StartDateTime', SDT) 
     context.testCase.testSuite.project.setPropertyValue('EndDateTime', EDT) 
     log.info SDT 
     log.info EDT 
     break;  
    } 
else 
    { 
     //Increment Start and End Time 
     SDT=EDT 
     def slotinterval = context.expand('${#Project#SlotInterval}').toInteger() 
     log.info "Slot Interval : " + slotinterval 

     date1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").parse(EDT) 
     use(TimeCategory) 
     { 
      def date2 = date1 + slotinterval.minutes 
      def outputDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 
      EDT = "${date2.format(outputDateFormat)}"      
     } 

    } 

} 
1

아래의 방법으로 for 루프를 사용하면 얻을 수 있습니다.

def flag = false 

for(x=startdatetime,y=enddatetime;flag!=true ; x++ , y++) // you can change x++ and y++ for the the way you want to increase time limit each time 
{ 

// check slot available 
def res = con.firstRow("select * from tblbookingitem where active=1 and 
fkItemID=$roomID and DateTimeFrom=$SDT and DateTimeTo=$EDT") 

if(res!= null) // you can put the condition which says slot is available 
{ 
flag=true; // you can use even break statment here 
} 

} 

유사한 논리는 while 루프뿐만 아니라와 조금 다른 문법 아이디어에 대한

+1

감사에 의해 구현 될 수있다. – rAJ