Untitled
unknown
plain_text
a year ago
1.8 kB
9
Indexable
@api.model
def is_weekend(self, date):
weekdays = self.env.company._get_renting_forbidden_days()
if isinstance(date, str):
date = fields.Date.from_string(date)
if time.strptime(date.strftime("%Y-%m-%d"), "%Y-%m-%d").tm_wday in (6, 7):
return True
return False
@api.depends('rental_start_date', 'rental_return_date')
def _compute_duration(self):
weekends = []
self.duration_days = 0
self.remaining_hours = 0
for order in self:
if order.rental_start_date and order.rental_return_date:
order.rental_start_date = order.rental_start_date.replace(hour=18, minute=30, second=0)
order.rental_return_date = order.rental_return_date.replace(hour=18, minute=29, second=0)
date_first = order.rental_start_date + relativedelta(days=1)
date_last = order.rental_return_date
date_next = date_first
weekend_day_count = 0
while date_next <= date_last:
if self.is_weekend(date_next):
weekends.append(date_next)
weekend_day_count += 1
date_next = date_next + timedelta(days=1)
print ('>>>>>>>>>>>>>>>>>>>>>>>weekend_day_count>>>', weekend_day_count)
duration = order.rental_return_date - order.rental_start_date
vals = dict(hour=(duration.days * 24 + duration.seconds / 3600))
vals['weekend_duration'] = dict(hour=(weekend_day_count * 24))
duration_days = math.ceil(vals['hour'] / 24) - math.ceil(vals['weekend_duration']['hour'] / 24)
order.duration_days = duration_days
order.remaining_hours = 00Editor is loading...
Leave a Comment