查看Apartment的可用性

时间:2012-10-11 11:01:13

标签: salesforce apex-code

我有以下表格

  1. 床(床号,价格,is_active,状态)

  2. 房间(房间ID,价格,is_active,状态,床位ID)

  3. 公寓(公寓ID,价格,is_active,状态,公寓ID)

  4. 预订(预订ID,开始日期,结束日期,公寓ID,房间ID,床位ID)

  5. 预订公寓时,公寓内的所有房间都应该可用。并且公寓客房内的所有床铺都应该可用。

    预订房间时,应该提供该房间的所有床位。

    我必须这样做才能批量更新预订记录。检查for循环中的可用性是不可行的。如下所示

    for(Booking bookingObj:AllBookings){

    checkAvailability(预订身份证,床位,房间,公寓)

    }

    代码将写入触发器。

1 个答案:

答案 0 :(得分:0)

我曾经像你一样问人们如何编写代码,但这是一种蝙蝠习惯,必须改变。尝试依靠自己并编写一些代码;然后问别人。从伪代码开始,查看示例 - 从长远来看,这可能会对您有所帮助。

根据问题,请在下面找到一些代码。我没有给你完整的代码,因为我希望你学习!

trigger CheckBooking on Booking__c (after update){
    for(Booking__c booking : trigger.new){
    //Check if the booking is updated   
    If(Updated){
        //Grab the booking Id into a string var, example below:
        String bookingId = booking.Id;
        //Grab the room Id into a string var
        //Grab the Apartment Id into a string var
        //Grab the bed Id into a string var
    }
  // Do SOQL to check if the room, Apartment, bed are available 
   /*SOQL goes here*/

   //Check to make sure the availability 
    if(available){
        //do your logic
    }
    else{
        //do your logic
    }
  }        
}

注意:批量大小为1时执行此更新,因此此触发器针对EACH记录执行,即事务大小为1.

如果您想使交易规模更大,请执行以下操作:
 1.将房间,apt。,床ID添加到列表中,然后使用SOQL检查它们是否可用

这两者都应该可以正常工作。试试看。干杯!