138 lines
4.5 KiB
Python
138 lines
4.5 KiB
Python
# -*- encoding: utf-8 -*-
|
|
|
|
import time
|
|
from odoo import api, models, _
|
|
from odoo.exceptions import UserError
|
|
|
|
class reservation_detail_report1(models.AbstractModel):
|
|
_name = 'report.hotel_management.hotel_reservation_report'
|
|
_description = 'report hotel_management hotel_reservation_report'
|
|
|
|
# @api.multi
|
|
def _get_report_values(self, docids, data=None):
|
|
order = self.env['hotel.reservation.wizard'].browse(docids)
|
|
return {
|
|
'doc_ids': docids,
|
|
'doc_model': 'hotel.reservation.wizard',
|
|
'data': data,
|
|
'docs': order,
|
|
'time': time,
|
|
'get_data': self.get_data,
|
|
}
|
|
|
|
# @api.multi
|
|
def get_data(self, obj):
|
|
res = self.env['hotel.reservation.line'].search([('checkin', '>=', obj.date_start), ('checkout', '<=', obj.date_end)])
|
|
rec = []
|
|
for data_list in res:
|
|
if data_list.line_id.state in ['confirm', 'done']:
|
|
rec.append(data_list)
|
|
return rec
|
|
|
|
|
|
class reservation_detail_report2(models.AbstractModel):
|
|
_name = 'report.hotel_management.hotel_reservation_checkin_report'
|
|
_description= 'report hotel_management hotel_reservation_checkin_report'
|
|
|
|
# @api.multi
|
|
def _get_report_values(self, docids, data=None):
|
|
order = self.env['hotel.reservation.wizard'].browse(docids)
|
|
return {
|
|
'doc_ids': docids,
|
|
'doc_model': 'hotel.reservation.wizard',
|
|
'data': data,
|
|
'docs': order,
|
|
'time': time,
|
|
'get_checkin': self.get_checkin,
|
|
}
|
|
|
|
# @api.multi
|
|
def get_checkin(self, obj):
|
|
res = self.env['hotel.reservation.line'].search(
|
|
[('checkin', '>=', obj.date_start), ('checkin', '<=', obj.date_end)])
|
|
rec = []
|
|
for data_list in res:
|
|
if data_list.line_id.state in ['confirm', 'done']:
|
|
rec.append(data_list)
|
|
return rec
|
|
|
|
|
|
class reservation_detail_report3(models.AbstractModel):
|
|
_name = 'report.hotel_management.hotel_reservation_checkout_report'
|
|
_description ='report hotel_management hotel_reservation_checkout_report'
|
|
|
|
|
|
# @api.multi
|
|
def _get_report_values(self, docids, data=None):
|
|
order = self.env['hotel.reservation.wizard'].browse(docids)
|
|
return {
|
|
'doc_ids': docids,
|
|
'doc_model': 'hotel.reservation.wizard',
|
|
'data': data,
|
|
'docs': order,
|
|
'time': time,
|
|
'get_checkout': self.get_checkout,
|
|
}
|
|
|
|
# @api.multi
|
|
def get_checkout(self, obj):
|
|
# print ("Chck outttttttt ",obj)
|
|
res = self.env['hotel.reservation.line'].search([('checkout', '>=', obj.date_start), ('checkout', '<=', obj.date_end)])
|
|
rec = []
|
|
for data_list in res:
|
|
if data_list.line_id.state in ['confirm', 'done']:
|
|
rec.append(data_list)
|
|
return rec
|
|
|
|
|
|
class reservation_detail_report4(models.AbstractModel):
|
|
_name = 'report.hotel_management.hotel_reservation_room_report'
|
|
_description = 'hotel reservation room report'
|
|
|
|
# @api.multi
|
|
def _get_report_values(self, docids, data=None):
|
|
order = self.env['hotel.reservation.wizard'].browse(docids)
|
|
return {
|
|
'doc_ids': docids,
|
|
'doc_model': 'hotel.reservation.wizard',
|
|
'data': data,
|
|
'docs': order,
|
|
'time': time,
|
|
'get_room1': self.get_room1,
|
|
}
|
|
|
|
|
|
# @api.multi
|
|
def get_room1(self, obj):
|
|
res = self.env['hotel.reservation.line'].search([('checkin', '>=', obj.date_start), ('checkout', '<=', obj.date_end)])
|
|
room_list = []
|
|
rec = []
|
|
for room in res:
|
|
if room.line_id.state in ['confirm', 'done']:
|
|
rec.append(room)
|
|
present = False
|
|
for room_list_data in room_list:
|
|
if room_list_data == room.room_number.name:
|
|
present = True
|
|
if present == False:
|
|
room_list.append(room.room_number.name)
|
|
result = []
|
|
|
|
for room_data in room_list:
|
|
count = 0
|
|
for room in rec:
|
|
if room.room_number.name == room_data:
|
|
count += 1
|
|
res22 = {
|
|
'room_data': room_data,
|
|
'no_of_times': count
|
|
}
|
|
result.append(res22)
|
|
if not result:
|
|
res22 = {
|
|
'room_data': '',
|
|
'no_of_times': ''
|
|
}
|
|
result.append(res22)
|
|
return result
|