2017-01-20 09:02:50 +00:00
|
|
|
module Admin::PropertyHiresHelper
|
|
|
|
|
2018-01-24 08:29:28 +00:00
|
|
|
def check_for_availability(stime, etime, pid, interval, recurring_end_date)
|
2017-01-20 09:02:50 +00:00
|
|
|
property = Property.find(pid)
|
|
|
|
return {"success" => false, "msg" => "Values are not ok."} if property.nil? || stime.blank? || etime.blank?
|
|
|
|
stime = DateTime.parse(stime + Time.zone.to_s) rescue nil
|
|
|
|
etime = DateTime.parse(etime + Time.zone.to_s) rescue nil
|
2018-01-24 08:29:28 +00:00
|
|
|
recurring_end_date = DateTime.parse(recurring_end_date + Time.zone.to_s) rescue nil
|
2017-01-20 09:02:50 +00:00
|
|
|
data = {}
|
|
|
|
return {"success" => false, "msg" => "Starting time cannot be greater than ending time."} if stime > etime
|
|
|
|
if property.is_available_for_hire?(stime, etime)
|
2018-01-24 08:29:28 +00:00
|
|
|
if property.is_already_hired?(stime, etime, interval, recurring_end_date)
|
2017-01-20 09:02:50 +00:00
|
|
|
data = {"success" => true}
|
|
|
|
else
|
|
|
|
data = {"success" => false, "msg" => "Property is already hired during this time."}
|
|
|
|
end
|
|
|
|
else
|
|
|
|
data = {"success" => false, "msg" => "Property is unavailable during this time."}
|
|
|
|
end
|
|
|
|
return data
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|