From 90dabd7560b524dacf0b754da8ea795e271db41a Mon Sep 17 00:00:00 2001 From: Bohung Date: Wed, 23 Feb 2022 17:36:59 +0800 Subject: [PATCH] Fix hire check bug. --- app/models/property.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/models/property.rb b/app/models/property.rb index a82eaa3..1bfd21c 100644 --- a/app/models/property.rb +++ b/app/models/property.rb @@ -271,11 +271,9 @@ class Property time_now = Time.now.to_datetime if self.can_hire_before_months != 0 return 2 if ((stime - (self.can_hire_before_months).month) > time_now) - available = 1 end if self.need_hire_before != 0 return 3 if (time_now + (self.need_hire_before).send(self.need_hire_before_unit) > stime) - available = 1 end startt = self.start_date.nil? ? stime : self.start_date endt = self.end_date.nil? ? etime : self.end_date @@ -293,14 +291,17 @@ class Property end time_weekdays.uniq! weekdays = weekdays & time_weekdays - available = 1 if weekdays.blank? - startt = DateTime.parse(stime.strftime("%Y-%m-%d " + (self.start_time.blank? ? "00:00" : self.start_time) + Time.zone.to_s)) - endt = DateTime.parse(etime.strftime("%Y-%m-%d " + (self.end_time.blank? ? "23:59" : self.end_time) + Time.zone.to_s)) - common_dates = (startt..endt) & (stime..etime) - available = common_dates.nil? + if weekdays.blank? + available = 1 + else + startt = DateTime.parse(stime.strftime("%Y-%m-%d " + (self.start_time.blank? ? "00:00" : self.start_time) + Time.zone.to_s)) + endt = DateTime.parse(etime.strftime("%Y-%m-%d " + (self.end_time.blank? ? "23:59" : self.end_time) + Time.zone.to_s)) + common_dates = (startt..endt) & (stime..etime) + available = common_dates.nil? ? 1 : 0 + end end end - if available + if available == 1 if !recurring_end_date.blank? case interval when 'week'